POSIX: Portable Operating System Interface
Windows Console App vs Service
GUI程序和CUI程序:php
控制檯應用程序多了一個控制檯(那個黑黑的Dos窗口)。程序的文件頭某個位置指定了該程序是IMAGE_SUBSYSTEM_WINDOWS_GUI仍是IMAGE_SUBSYSTEM_WINDOWS_CUI。若是是CUI,那麼該程序就是控制檯程序,它啓動的時候就會被自動分配給一個控制檯(Console)。在GUI程序中,窗口不是必要的,雖然絕大部分程序都有html
如何將java控制檯程序作成windows服務
snapshot:快照技術,在backup時被普遍採用。關鍵在於state的抓取和保存。
後來擴展到軟件描述上:vue
Maven快照機制(SNAPSHOT)
ps - report a snapshot of the current processes.java
What is the difference between standard syntax and BSD syntax?python
深刻理解虛擬存儲器mysql
文件描述符表、文件表、索引結點表linux
Linux經常使用命令
linux目錄結構—小哥整理的很棒🐼,參考之
linux中幾個簡單命令
如何記住linux命令
What is the difference between standard syntax and BSD syntax?ios
What does the ‘rc’ in .bashrc
, etc. mean:run command
Linux下環境變量配置方法梳理(.bash_profile和.bashrc的區別)git
1. 查看當前發行版可使用的shell: cat /etc/shells
查看正在使用的shell
查看正在使用的shell版本:bash -version或者echo BASH_VERSION—
BASH_VERSION是本地定義的shell變量,可用set查看所有本地定義的shell變量切換shell最簡單:輸入shellName便可切換
2.linux查看本機ip地址:ifconfig -a
3.linux使用命令:man+command查看某一個命令的使用方式; 查看後按「q」退出
4.linux使用which命令查看可執行文件位置,對應windows中爲where
5.linux查看某個某個進程屬於哪一個程序:ps列出|grep篩選
which processes are running and who own the process?
ServicesVSprocess
6.查看linux系統版本信息uname -a
顯示電腦以及操做系統的相關信息cat /proc/version
正在運行的內核版本。 proc - process information pseudo-filesystem pseudo-filesystemSystem callcat/etc/issue
發行版本信息lsb_release -a
print all the distribution-specific information
7.chkconfig -list: updates and queries runlevel information for system services
chkconfig配置工具chkconfig —list 能夠列出sysV和xinet服務在各個runlevel的默認啓動狀態
hostname — set or print name of current host system
check running services on linux
8.linux查看文件信息的三個命令
9.查看linux服務器當前時間和啓動時間# date
—查看linux當前時間# last reboot
—-查看privious boot time 通常列出以前五次
10.linux列出可安裝的軟件包:listing packages
經常使用:# yum list java\*
—列出名字內包含java的安裝包
11.linux ps -ef|grep processName
各類Linux發行版一般都內置了Python,故使用此方法很是方便。在其它OS(好比Windows)此方法也有效,可是要麻煩一些,必須先搭建Python環境。參考:python搭建靜態服務器若是你安裝的是phthon3那麼命令就不是python -m SimpleHTTPServer而是要改爲python -m http.server,效果是同樣的。
How to download a file from server using SSH?
三.待整理
5.echo 命令:linux echo commandWhy is there a /bin/echo and why would I want to use it?
6.linux中變量命令規範naming conventions for variables in shell:Environment variables or shell variables that are introduced by the operating system or shell startup scripts etc. are usually all in CAPITALS.To prevent your own variables from conflicting with these variables, it is a good practice to use lower case.(conflicting evidence:衝突證據)
Eg:/bin/echo'the value of $PATH is’$PATH
path是環境變量,必須大寫Reference Artical&google’s shell style guide
8./usr/bin和 /usr/local/bin的區別:
/usr/bin目錄下的可執行文件是系統預裝,升級會變,而/usr/local/bin是用戶放置本身可執行程序的地方,升級不會被覆蓋並且/usr/local/bin中的可執行文件優先於/usr/bin執行
參考:Linux Programmer’s Manual
unzip apache-maven-3.6.0-bin.zip
tar xzvf apache-maven-3.6.0-bin.tar.gz
GNU ‘tar’ saves many files together into a single tape or disk archive, and can restore individual
files from the archive.
zip
對應的是unzip
,而tar
命令既是打包命令又是解壓縮命令
linux查找文件兩個命令:locate
和find
Refs:1.10 Useful ‘locate’ Command Practical Examples for Linux Newbies
clear
==Ctrl+L
reset
—清除全部操做信息alias cls='clear'
—而後既能夠用cls來替代clear
echo alias cls='clear'>>~/.bash_profile source ~/.bash_profile
1.ps -ef|grep java
Linux中怎麼經過PID號找到對應的進程名及所在目錄方法
1.輸出項含義2.命令解釋
[root@localhost ~]# ps -ef|grep javatomcat 1251 1 0 Nov30 ? 00:02:03 /usr/lib/jvm/jre/bin/java -classpath :/usr/share/tomcat/bin/bootstrap.jar:/usr/share/tomcat/bin/tomcat-juli.jar:/usr/share/java/commons-daemon.jar -Dcatalina.base=/usr/share/tomcat -Dcatalina.home=/usr/share/tomcat -Djava.endorsed.dirs= -Djava.io.tmpdir=/var/cache/tomcat/temp -Djava.util.logging.config.file=/usr/share/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager org.apache.catalina.startup.Bootstrap startroot 1606 1579 0 04:36 pts/0 00:00:00 grep java[root@localhost ~]# ps aux|grep tomcattomcat 1251 0.0 14.7 2092836 38668 ? Sl Nov30 2:03 /usr/lib/jvm/jre/bin/java -classpath :/usr/share/tomcat/bin/bootstrap.jar:/usr/share/tomcat/bin/tomcat-juli.jar:/usr/share/java/commons-daemon.jar -Dcatalina.base=/usr/share/tomcat -Dcatalina.home=/usr/share/tomcat -Djava.endorsed.dirs= -Djava.io.tmpdir=/var/cache/tomcat/temp -Djava.util.logging.config.file=/usr/share/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager org.apache.catalina.startup.Bootstrap start[root@localhost ~]#
echo $PATH
—/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
List of Environment Variables in Linux/Unix
linux添加PATH環境變量
Linux將命令路徑添加到PATH中
- System wide
/etc/environment: specifically meant for environment variables
/etc/env.d/: environment variables, split in multiple files
/etc/profile: all types of initialization scripts
/etc/profile.d/: initialization scripts
/etc/bashrc: meant for functions and aliases
1.查看path環境變量的值
#echo $PATH
||
printf "%s\n" $PATH
|| # cat /etc/paths
—mac中
2.找出PATH變量值的存儲文件位置(這個是比較難的?直接google吧···)
How to determine where an environment variable came from
3.修改path環境變量
MAC中PATH存儲在/etc/paths
文件中,故修改之便可# sudo vim /etc/paths
set 用來顯示本地變量
env 用來顯示環境變量
export 用來顯示和設置環境變量set 顯示當前shell的變量,包括當前用戶的變量
env 顯示當前用戶的變量
export 顯示當前導出成用戶變量的shell變量每一個shell有本身特有的變量(set)顯示的變量,這個和用戶變量是不一樣的,當前用戶變量和你用什麼shell無關,無論你用什麼shell都在,好比HOME,SHELL等這些變量,但shell本身的變量不一樣shell是不一樣的,好比BASH_ARGC, BASH等,這些變量只有set纔會顯示,是bash特有的,export不加參數的時候,顯示哪些變量被導出成了用戶變量,由於一個shell本身的變量能夠經過export 「導出」變成一個用戶變量
(此部分用於整理macos相關)
Bourne:shell的開發者
dmg就是disk image的意思,即磁盤影像,至關於在Windows上常見的iso文件
特殊符號:按下 Control-Command-空格鍵。此時會顯示「字符檢視器」彈出式窗口
Mac中的快捷鍵:https://support.apple.com/zh-cn/HT201236
Mac鍵盤符號:https://blog.csdn.net/xi_mi_/article/details/72312584
蘋果電腦從硬件(CPU指令)到軟件都是與X86機不兼容的獨立系統,與Unix和Linux既有關係,也不要緊。MAC操做系統在1984年就有了Mac 1.0版,而Unix一開始是貝爾實驗實開始的,專門爲大型服務器開發的一個操做系統,從1969年就開始開發,能夠說是和計算機同步發展的,到1976年Unix基本成型,但那隻能是極少數人員會使用那些繁鎖的命令。蘋果計算機一開始就定位爲家庭我的電腦,並且指令也不兼容,1984Jobs(喬布斯)主持開發了MAC的第一個版本,鼠標操做,圖形界面,窗口方式給人很是便捷的操做,令人感到用電腦就像小孩子搭積木同樣的簡單。Mac OS能夠被分紅操做系統的兩個系列:一個是老舊且已不被支持的「Classic」Mac OS(系統搭載在1984年銷售的首部Mac與其後代上,終極版本是Mac OS 9)。採用 Mach 做爲內核, 在OS 8之前用「System x.xx」來稱呼。新的Mac OS X結合BSD Unix、OpenStep和Mac OS 9的元素。它的最底層建基於Unix基礎,其代碼被稱爲 Darwin,實行的是部分開放源代碼。如今明白我爲何說MAC與Unix既有聯繫,又沒聯繫了吧。在MAC9.0以前沒有任何聯繫,最新的10.0中有聯繫了
2011年7月20日Mac OS X已經正式被蘋果更名爲OS X
bashbash(Bourne again shell)
比較能夠發現:Mac中沒有/proc文件夾
mac10開始集成shell環境另外mac自帶python環境、ruby環境
Refs:Why does Mac OS X come with ruby/rails?
1.bash進入python環境:python
使用 quit(), exit(), 或者Ctrl-D退出命令行。
2.bash查看系統信息
Mac打開Terminal默認使用bash,經試驗,Mac中查看系統相關信息和linux是不同的,如上圖:
通用的命令有兩個:uname -a
和LONG_BIT
Refs:1.命令行獲取 mac os x 系統信息2.Linux下如何查看版本信息
3.顯示隱藏文件
command+shift+"+」
顯示隱藏文件或者comman+shift+G直接前往所在目錄(默認顯示全部文件,去除finfer默認的隱藏系統文件)vim --version | grep +python
—「+」號的含義在於表示插件是否支持,用「-「號也能夠,反之。1.mac效率神器之——Alfred
從mac軟件下載網站下載該軟件便可,下載後即爲破解版,可使用workflow功能
2.office_forMac套件
官網下載安裝後使用第三方激活工具激活便可,
3.MAC中javaWeb開發環境搭建
4.keepassmac版本,打開連接後下載第三方的
keepassX便可
5.Mac中homebrew的安裝
6.Mac中Atom的安裝和使用
小計:用了印象筆記的Markdown,不支持
7.typora安裝使用
[
and]
are required for this to work.方括弧中間和兩邊都須要有空格1. 在vmware上試安裝
vmware安裝很簡單:官網下載最新版本,網上隨意找個key就能夠激活,使用:ctrl+alt退出
黑蘋果資源從遠景下載或者本身拿mac下載
安裝教程:unlocker從gits上下載最新並切換到cmd下執行便可
安裝過程可能出現問題:
1.打開終端,輸入diskutil list
2.從顯示的列表中找到你須要擴展的分區(是分區不是磁盤,分區的ID通常爲diskXsX);
3.而後輸入diskutil resizeVolume disk1s1 100GB
,其中disk1s1爲對應分區的ID,100GB爲目標大小(這裏的目標大小不能超過這個磁盤的總額);
4.回車,等待完成吧!
出現問題:
更改risize命令爲:diskutil apfs resizeContainer disk0s2 100gb
tablet:平板電腦
cmd下輸入:systeminfo獲取系統軟件和硬件配置信息,好比主機名,操做系統名稱/版本號 OS初始安裝日期/本次啓動時間
cpu數量 主板bios版本 啓動盤 物理內存總量剩餘大小 網卡數量(通常就是wlan/Ethernet/blueteeth)
win+pause:查操做系統信息
telnet登錄不區份內外網,可是你須要鏈接的這臺電腦必須打開telnet服務,而後要知道端口號和用戶名和密碼才能登錄
telnet進入後按「q」退出
telnet使用方法1=》telnet使用方法2
find out which process is listening on a port on Windows
netstat -an |find /i 「listening」—- Identify Open Ports on a Windows(cmd須要管理員權限)
net share 共享和取消共享==>使用方法>>
1.where 命令
至關於linux中which命令,用來查看windows下某個命令或者可執行程序
描述: 顯示符合搜索模式的文件位置。在默認狀況下,搜索是在當前目錄和 PATH 環境變量指定的路徑中執行的。
where java
—-查找
2.Ctrl+C
cmd只是一個執行命令的工具,因此沒有文本編輯器中取消上一步操做的概念(ctrl+z),對應的是取消該命令執行ctrl+c
3.win+s和win+r
常見windows.msc文件(msc:Microsoft Management Console)
gpedit.msc 本地組策略編輯器
lusrmgr.msc 本地用戶和組
4.net start serviceName 好比:net start mysql
Operating sytems:Windows—基於windows NT 其餘多爲unixlike
What are the special dollar sign shell variables?
TTYTerminal Type (Unix terminal interface)
轉義字符:其實全部編程語言,擁有轉義字符的緣由基本上是兩點
一. 使用轉義字符來表示字符集中定義的字符,好比ASCll裏面的控制字符及回車換行等字符,這些字符都沒有現成的文字代號。因此只能用轉義字符來表示 。
二. 某一些特定的字符在編輯語言中被定義爲特殊用途的字符。這些字符因爲被定義爲特殊用途,它們失去了原有的意義。好比說Html中,<被HTML定義爲標籤的開始,因此當咱們轉入<時,HTML就會把它看成爲開始,而不是看成一個<來看待。再如PHP 的雙引號(」),被PHP定義爲字符串的外圍標籤,因此若是你在一對雙引號裏面,還想要使用雙引號,只能使用轉義字符了。否則PHP就會報錯了。
從上面也能夠看出轉義無非是兩種狀況:
1:將普通字符轉爲特殊用途,通常是編程語言中,用於表示不能直接顯示的字符,好比後退鍵,回車鍵,等。
2:用來將特殊意義的字符轉換回它原來的意義。通常用在正則表達式中。還有有些腳本語言是弱類型,有些語言好比html 並非編程語言,而是標記語言,有些語言只有一種類型 好比shell 腳本語言,這些語言中字符串都不加引號」 」 ,或者能夠不加引號「 」,因此有時候須要轉義字符說明某字符此時的身份是普通字符,而不是有特殊意義的元字符。
另外出於網站的安全。在數據寫入數據庫前,都會使用轉義字符(函數)對一些敏感字符進行轉義。這樣作能夠避免一些別有用心的人利用特殊符號的注入攻擊。
bash編程
powershell官方文檔
powershell是開源的
CLRcommon language runtime
和Java虛擬機同樣也是一個運行時環境,它負責資源管理(內存分配和垃圾收集等),並保證應用和底層操做系統之間必要的分離
.NET Framework版本與CLR版本之間的關係
powershell查看自身版本: $PSVersionTable.PSVersion
powrshell查看環境變量ls env:
—注意最後是一個冒號(colon)
查看某個環境變量的值:$env:VariableName
—和linux同樣使用$字符顯示
cmd中 | powershell中 | linux中 | |
---|---|---|---|
查看全部環境變量 | set |
ls env: |
env |
查看某個環境變量的值 | set EVName 或者echo %EVName% |
ls env: EVName |
$EVName |
查看環境變量:cmd:set ps:$env:
Difference between set, export and env in bash
set,env、declare和export這四個命令的區別
Windows Subsystem for Linux Documentation
1.WinDjView:Window平臺DjVu格式閱讀器,點擊獲取
DJVU google chrome插件
2.百度雲
.accelerate文件夾:百度雲下載時會在其baiduyundownload/目錄下自動生成,accelerate:加速,應該是告訴緩存文件夾
3.Chrome
Chrome將網頁保存爲PDF方法
Chrome插件—workflowy
4.Scrivener
Mac 鍵盤快捷鍵中文版
英文版:部分命令解釋比果廠渣翻譯好懂一點兒
Pages for Mac keyboard shortcuts
⌘+Q :針對程序。退出應用程序。不是針對哪一個,而是全部的應用程序——簡單有效粗暴
⌘+W :窗口級別。關閉當前window.但金山詞霸不吃這套😹😹😹
⌘+H是隱藏,能夠這麼理解:被隱藏的窗口還在桌面上,可是看不到了,只顯示最上面一層,隱藏的最後結果是桌面上還有一個窗口。,而M是縮小到了dock中文件欄。
下圖是⌘+M的執行結果,就問你怕不怕😂😂😂
2.應用程序級別的快捷鍵
XP 時代有 4 個經典的 Win 鍵組合:R/E/F/L,到了 Win7,花樣更多了,win10在此基礎上win快捷鍵以下:
1.對局域網上計算機的操做
5.對當前用戶當前桌面窗口的設置和操做
Ctrl+Shift+B
簡體繁體切換:Ctrl+Shift+F
→此二項設置均爲微軟拼音默認設置。 1.通用快捷鍵(如下在win中command爲ctrl,在windows中不適用標爲)
command+q
query
command+b
Bold
command+i
italic
command+u
underline
command+j
jump跳到某個彈出列表中的筆記本
⇧+command+D
Insert date in the cursor position
⇧
Alt+f4
或者Win+Etc
關閉打開的單獨筆記窗口
shift+conmand+F
格式簡單化,能夠去掉拼寫檢查
ctrl+shift+T
切換筆記列表到標籤視圖
chrome快捷鍵使用總結
ChromeForMac中
Shift+command+T
T是tab的縮寫command+Y
—Y是什麼鬼東西?ctrl+h
historycommand+l
—此時按tab可切換搜索引擎,google/baidu/zhihu,etc.Ctrl+Tab
或者Ctrl+PageUP/PageDown
Alt+left
—關閉側邊欄