在工做中發現
Linux
系統的重要性,因而計劃重溫下Linux
,順便記錄筆記方便以後查閱。git
Linux
系統中,每一個設備都被當成一個文件來對待;如IDE
接口的硬盤文件名爲/dev/hd[a-d]
。主引導分區(MBR)
和分區表
;主引導分區
能夠安裝引導加載程序的地方,有446bytes
,系統開機時會主動讀取MBR
區塊的內容;分區表
記錄硬盤分區狀態,有64bytes
。分區表
進行設置,默認分區表僅能寫入四組分區信息,四組分區信息稱爲主或擴展分區
。邏輯分區
,其編號從5
開始,如/dev/hda5/
、/dev/hda6
...。前四個分區號均保留。主與擴展分區最多有4個``擴展分區
最多隻有1個,邏輯分區
是由擴展分區分割出來的分區,只有主分區
和邏輯分區
可以被格式化,擴展分區
不能。擴展分區
被破壞,全部邏輯分區
將會被刪除。BIOS
是寫入到硬件上的程序,其會根據用戶設置取得可以開機的硬盤,而且到該硬盤下讀取第一個扇區的MBR
位置,MBR
中存放了最基本的引導加載程序,接下來由引導加載程序(boot loader)
加載內核文件,而後內核文件開始操做系統的功能。引導加載程序
主要提供三個服務:
引導加載程序
除了能夠安裝在MBR
外,還能夠安裝在每一個分區的引導扇區
。啓動扇區
,實際可開機的內核文件放置在各分區內,loader只認識本身系統分區內的可開機內核文件以及其餘loader,loader可直接指向或間接將管理權轉交給另外一個管理程序。Linux
默認提供6
個Terminal
供用於登陸,切換方式爲Ctrl+Alt+[F1-F6]
,名稱分別爲tty1-tty6
,使用Ctrl+Alt+F7
可切換至圖形界面。Linux
,若想啓動圖形界面,可以使用startx
命令啓動圖形界面。man + 命令
可查看幫助,如man date
。shutdown
命令關機,如shutdown -h now
表示如今關機,shutdown -h 20:25
表示20:25
關機。分爲七列,分別表明
文件權限
、鏈接數
、文件全部者
、文件所屬用戶組
、文件大小
、文件最後被修改的時間
、文件名
。shell
d
,則表示目錄,若爲-
,則表示文件,若爲|
,則表示爲鏈接文件(linkfile)、若爲b
,表示設備文件裏的可供存儲的接口設備、若爲c
,表示設備文件裏的串行端口設備,如鍵盤鼠標等。rwx
組合,r
表明可讀,w
表明可寫,x
表明可執行,其位置不會變化,若無權限,則爲-
;第一組爲文件全部者的權限
、第二組爲同用戶組的權限
、第三組爲其餘非本用戶組的權限
。chgrp
改變文件所屬用戶組;chown
改變文件全部者;chmod
改變文件權限。在改變時發現無權限可使用sudo ch***
試試。chown user:group ***
的格式,如chown root:root log.log
將log.log
改成root
組下的root
賬號。r:4;w:2;x:1
,可以使用數字更改權限屬性,權限分爲三組,分別對應owner
、group
、others
,如chmod 777 .bashrc
表示owner、group、others
都具備讀寫執行權限。chmod u=rwx,go=rx .bashrc
更改權限,owner
具備讀寫執行權限;group
和others
具備讀寫權限。x
權限有關,若具備權限,則可進入,不然不可進入。255
個字符,包含完整路徑名稱及目錄/的完整文件名爲4096
個字符。mkdir -p test/test/test/test
一次性建立全部的目錄。cp -r dir1 dir2/
將dir1
目錄複製到dir2
目錄下。mv test1 test2
將test1
改名爲test2
。cat
、more
、less
、head
、tail
可查看文件。tail -f filename
,可查看filename
不斷新增的內容。扇區
是最小的物理存儲單位,大小爲512bytes
,扇區
組成柱面
,柱面
是分區
的最小單位。掛載點
必定是目錄,該目錄爲進入該文件系統的入口。df
命令查看磁盤的使用狀況。tar -zcvf git.tar.gz git/
命令壓縮git
目錄至git.tar.gz
。tar -zxvf git.tar.gz
命令解壓縮git.tar.gz
至本目錄下。G(Shift+g)
移動到最後一行,gg
移動到第一行。dd
刪除光標所在的一整行。x
向後刪除一個字符(Del
),X
向前刪除一個字符(Backspace
)。myname = leesf
會報錯。bash
能夠進入子進程,但進程的自定義變量沒法在子進程內使用,exit
退出子進程,經過export
將變量變成環境變量後,就可以在子進程中使用。set
可查看全部變量(含環境變量和自定義變量)set | grep HISTFILE
可查看歷史命令記錄的放置文件和歷史命令記錄大小。echo $?
查看上個命令執行的回傳碼(若執行成功,返回0,不然爲非0)。echo $$
能夠查看本PID
。alias cls='clear'
設置清屏的別名。history
能夠顯示全部歷史命令。!!
或者向上箭頭+Enter
執行上一條命令。!al
執行最近以al爲開頭的命令。~/.bashrc
或~/.bash_profile
文件進行我的設置,並使用source ~/.bashrc
或source ~/.bash_profile
使其生效,有時可能須要從新登出登入操做,登出使用exit
便可。0
,使用<或<<
;標準輸出代碼爲1
,使用>或>>
;標準錯誤輸出代碼爲2
,使用2>或2>>
。其中>>
表示累加,>
表示覆蓋。/dev/null
將stderr
信息丟棄,如find /home -name .bashrc 2> /dev/null
,表示將stderr
丟棄。find /home -name .bashrc > list 2>&1
或者find /home -name .bashrc &> list
。cat > catfile < ~/.bashrc
將~/.bashrc
的內容輸出至catfile
中。cat > catfile << "eof"
使用eof
做爲結束輸入控制符。ll;ll;shutdown -h now
,先執行兩次ll
,而後執行關機操做。0
表示成功,非0
表示失敗。cmd1 && cmd2
表示若cmd1
執行完畢且正確執行,則執行cmd2
,不然不執行cmd2
;cmd1 || cmd2
表示cmd1
執行完畢且正確執行,則不執行cmd2
,不然執行cmd2
。standard output
,對於standard error output
予以忽略。cut
、grep
、sort
、wc
、uniq
、tee
等。tar -cvf - /home | tar -xvf -
,可將/home
打包後再解壓到當前目錄。sed -i 's/This is/That is/g' test
將test
文件中全部This is
替換成That is
。sed -i '$a the end' test
能夠在test
文件末尾添加the end
,其中$
表示最後一行,a
表示新增
。awk
命令處理每行的數據。如awk '{FS=":"} $1 "\t" $3'
表示自定義分隔符爲:
,並將第一列與第三列輸出。diff test1 test
查看test
和test1
之間的異同。shell.sh
文件必需要具有可讀可執行(rx
)權限。script
腳本第一行#!/bin/bash
聲明瞭這個script
使用的shell
名稱。source test.sh
和sh test.sh
執行時,前者是直接在父進程中運行,變量再父進程中有效,後者在子進程中運行,父進程中無效。sh test.sh
後面接參數,並使用$#、$一、$2...
等進行獲取,其中$0
表示執行的shell
腳本名。;bash test.sh
執行腳本。shell
是由上往下執行,須要在最前面定義函數。$((運算內容))
。UID
和用戶組ID,即GID
。su
或sudo
命令切換身份。RAID-0
爲等量模式,性能最佳;RAID-1
爲映像模式,完整備份,整個RAID
容量幾乎減小一半;RAID-5
對性能和數據備份進行了均衡考慮,當損壞的磁盤數量大於等於兩塊時,整組RAID-5
的數據就毀了,其默認只支持一塊磁盤損壞的狀況。at
能夠處理僅執行一次就結束調度的命令;crontab
所設置的命令將會循環一直進行下去。at now + 1 minutes
表示一分鐘後執行命令。atq
能夠查詢有哪些任務,使用atrm [jobnumber]
可刪除指定job number
的任務。batch
命令建立任務,表示當系統有空時才運行。0 3,6 * * * command
表示3點和6點都執行指定命令;20 8-12 * * * command
表示8點到12點(包括)的之間的每一個小時的20
分都進行執行命令;*/5 * * * * command
表示每隔5分鐘就執行命令,也能夠寫成0-59/5 * * * * command
。crontab
執行sh
文件時,建議使用絕對路徑。ID
,稱爲PID
,同時觸發這個進程的用戶和相關屬性關係,給予這個PID
一組有效的權限設置。fork
)方式產生如出一轍的子進程,而後被複製出來的子進程再以exec
方式執行實際要進行的進程,最終就成爲一個子進程。fork
方式複製一個與父進程相同的暫存進程,這個進程與父進程惟一的區別就是PID
不一樣,這個暫存進程還會多一個PPID
的參數,其爲父進程的標識符。&
將任務丟到後臺進行。(避免使用ctrl + c
中斷,若註銷時,仍是會中斷執行)jobs -l
命令查看目前的後臺工做狀態。fg %jobnumber
命令將後臺工做拿到前臺執行,如先使用vim kill.sh &
,而後使用jobs -l
,最後使用fg 1
命令。bg %jobnumber
命令運行後臺命令。kill -9 %jobnumber
刪除指定後臺任務。nohup [命令與參數]
在終端機前臺中工做,nohup [命令與參數] &
在終端機後臺中工做。即使註銷,也依舊執行。ps aux
可查看全部的進程數據。top
命令監控進程運行狀態,如top -d 2
表示兩秒更新一次各進程狀態。uname
命令可查看系統與內核相關信息,如uname -s
查看系統內核名稱。uptime
命令可查看系統啓動時間與工做負載。fuser
命令經過文件找出正在使用該文件的程序。lsof
命令列出被進程所打開的文件名。pidof
命令找出某個正在執行的進程的PID
。對於通常的編程做業中,只需瞭解
Linux
主要命令便可,Linux私房菜
中後面的部分因爲在編程中接觸較少,所以再也不學習,有興趣的讀者可自行閱讀。編程