現(xiàn)在的主流Linux發(fā)行版中,默認(rèn)使用Bash解釋器作為Shell終端,而Bash作為主流Linux系統(tǒng)的Shell解釋器具有相當(dāng)大的優(yōu)勢。 1.可以使用方向鍵的上下鍵調(diào)取過去執(zhí)行的命令; 2.可以使用Tab補(bǔ)全功能,即手動(dòng)打出前幾個(gè)字母,若以此字符串進(jìn)行查詢只有一個(gè)命令或文件匹配,則補(bǔ)全此命令或文件名;若以此字符串查詢有多個(gè)命令或文件,則顯示查詢到的命令列表或文件列表; 3.可以使用glob通配符功能: *:任意個(gè)任意字符;?:單個(gè)任意字符;[list]:匹配list中的任意字符;[!list]:不匹配list中的任意字符;[c1-c2]:匹配c1-c2中的任意單個(gè)字符,如[0-9],[a-z];{string1,string2,...}:匹配{}中的任意一個(gè)字符串;{c1..c2}:匹配c1-c2的全部字符,如{1..10}; 4.可以自定義環(huán)境變量以滿足需求; 5.強(qiáng)大的批處理腳本; 幫助命令 作為自學(xué)者,首先需要學(xué)會(huì)的就是能看懂每個(gè)命令的幫助文檔,那么第一個(gè)需要掌握的Linux命令就應(yīng)該是man。 man命令 Linux下的幫助指令,通過man命令可以查看Linux中的命令幫助,配置文件幫助和編程幫助等信息。 語法: man [options...] 常用選項(xiàng): -a:在所有的man手冊中搜索; -f:等價(jià)于whatis,顯示給定關(guān)鍵字的簡短信息; -M:指定man手冊搜索的路徑; -#:指定從#號(hào)man手冊中進(jìn)行搜索; 系統(tǒng)相關(guān)命令 echo命令 在終端上顯示字符串或變量提取出來的值。 語法: echo [options...] [$variable|string] 例如: echo 'Hello Linux'echo $PATH date命令 顯示或設(shè)置Linux系統(tǒng)時(shí)間與日期。 語法: date [options...] [+dateformat] 常用選項(xiàng): -d<字符串>:顯示字符串所指的時(shí)間與日期; -s<字符串>:根據(jù)字符串設(shè)置系統(tǒng)時(shí)間與日期; --help:在線幫助; 常用日期格式: %H:小時(shí),24小時(shí)制(00-23) %I:小時(shí),12小時(shí)制(01-12) %M:分鐘,(00-59) %S:秒鐘,(00-59) %p:顯示am或pm %Y:完整年份 %y:兩位年份 %m:月份 %d:一個(gè)月的第幾天(00-31) %Z:顯示時(shí)區(qū) %B:完整月份(January-December) %b:縮寫月份(Jan-Dec) %A:完整星期幾(Sunday- Saturday) %a:縮寫星期幾(Sun-Sat) %j:一年的第幾天(001-365) %W:一年的第幾個(gè)星期(00-53) %w:一個(gè)星期的第幾天(0代表星期天) %X:顯示的時(shí)間格式相當(dāng)于%H:%M:%S %F:相當(dāng)于%Y:%m:%d %T:24小時(shí)制hh:mm:ss 例如: date -d '1 day ago' +'%Y:%m:%d'(顯示一天前的日期)date -d '2017-06-18' +'%Y/%m/%d %H:%M:%S'(日期格式轉(zhuǎn)換,結(jié)果為:2017/06/18 00:00:00)date -s '2020-01-01 00:00:00' (設(shè)置系統(tǒng)全部時(shí)間) ps命令 查看當(dāng)前系統(tǒng)的進(jìn)程狀態(tài)。 常用選項(xiàng): -a:顯示所有進(jìn)程; -u:用戶以及其他信息; -x:顯示所有程序,不以終端機(jī)區(qū)分; Linux進(jìn)程常見的狀態(tài) R:運(yùn)行,正在運(yùn)行的進(jìn)程; S:中斷,可中斷的睡眠進(jìn)程; U:不可中斷,不可中斷的睡眠進(jìn)程; Z:僵死,進(jìn)程已終止,但父進(jìn)程未詢問其狀態(tài)情況; T:停止,當(dāng)進(jìn)程收到SIGSTOP,SIGTIN,SIGTSTP,SIGTOU信號(hào)時(shí),停止運(yùn)行; kill命令 根據(jù)指定進(jìn)程號(hào)來刪除執(zhí)行中的程序或工作。 常用選項(xiàng): -l:列出所有的kill可發(fā)送的信號(hào) -s:指定要發(fā)送的信號(hào) 例如: 使用ps查詢相應(yīng)的進(jìn)程,并使用kill結(jié)束進(jìn)程 ps | grep vimkill 3268 killall命令 根據(jù)指定進(jìn)程名殺死進(jìn)程,此命令可殺死跟指定進(jìn)程相關(guān)的所有進(jìn)程。 常用選項(xiàng): -i:交互式殺死進(jìn)程,對每個(gè)要?dú)⑺赖倪M(jìn)程進(jìn)行詢問; -s:指定要發(fā)送的信號(hào) 例如: killall vim poweroff命令 用于系統(tǒng)關(guān)機(jī)。 reboot命令 用于系統(tǒng)重啟。 目錄和文件相關(guān)命令 pwd命令 以絕對路徑的形式顯示用戶當(dāng)前的工作目錄。 mkdir命令 用來創(chuàng)建目錄。如果在目錄名的前面沒有加任何路徑名,則在當(dāng)前目錄下創(chuàng)建由dirname指定的目錄;如果給出了一個(gè)已經(jīng)存在的路徑,將會(huì)在該目錄下創(chuàng)建一個(gè)指定的目錄。在創(chuàng)建目錄時(shí),應(yīng)保證新建的目錄與它所在目錄下的文件沒有重名。 常用選項(xiàng): -p:遞歸創(chuàng)建目錄 例如: mkdir -p a/b/c ls命令 用來顯示目標(biāo)列表。Linux中最常用的命令之一。 語法: ls [options...] file 常用選項(xiàng): -a:顯示所有文件,包括隱藏文件; -l:以長格式顯示目錄下的文件列表,輸出的信息從左到右代表的依次為:文件類型,權(quán)限模式,硬連接數(shù),屬主,屬組,文件大小,文件最后修改時(shí)間,文件名; 例如: ls -la root(以長格式顯示root目錄下所有文件列表) cd命令 切換用戶的工作目錄至指定目錄。cd -為Linux中最常用的命令之一。 語法: cd [options...] dir 常見選項(xiàng): -:當(dāng)前工作目錄將被切換到環(huán)境變量'OLDPWD'所表示的工作目錄中; 例如: cd(進(jìn)入當(dāng)前用戶的家目錄)cd -(進(jìn)入上一個(gè)工作目錄)cd !$(將上一個(gè)命令的參數(shù)作為cd的參數(shù)使用) mv命令 用來移動(dòng)文件或?qū)ξ募M(jìn)行重命名 語法: mv [options...] source target 例如: mv /etc/fstab /etc/fstab.bak(將etc目錄下的fstab文件進(jìn)行重命名為fstab.bak)mv /etc/fstab /tmp(將etc目錄下的fstab文件移動(dòng)到tmp目錄下) cp命令 將指定文件復(fù)制到指定目錄中。(若源文件有多個(gè)文件,則目標(biāo)文件必須是目錄) 常用選項(xiàng): -r/R:遞歸出來,源文件為目錄時(shí)使用; -f:強(qiáng)制復(fù)制; -v:顯示詳細(xì)信息; 例如: cp /etc/fstab /tmp(將fstab文件復(fù)制到tmp目錄下)cp /etc/* /tmp/etc.bak/(將etc目錄下所有文件復(fù)制到tmp的etc.bak目錄下) tree命令 以樹狀形式顯示目錄結(jié)構(gòu) touch命令 用于創(chuàng)建新文件或設(shè)置文件的時(shí)間戳。 常用選項(xiàng): -a:僅修改文件的“訪問時(shí)間”(atime) -m:僅修改文件的“修改時(shí)間”(mtime) tar命令 用于文件的打包和壓縮。 常用選項(xiàng): -c:創(chuàng)建新的備份文件; -x:從備份文件中還原文件; -f:指定備份文件; -v:顯示文件打包或還原詳細(xì)過程; -z:使用gzip程序?qū)ξ募M(jìn)行壓縮或解壓; -j:使用bzip2程序?qū)ξ募M(jìn)行壓縮或解壓; -t:列出備份文件中的文件列表; 例如: tar -cvf log.tar log.log(僅打包,不壓縮)tar -zcvf log.tar.gz log.log(打包后使用gzip工具進(jìn)行壓縮)tar -jcvf log.tar.bz log.log (打包后使用bzip2工具進(jìn)行壓縮)tar -zxvf log.tar.gz (解壓縮)tar -ztvf log.tar.gz(查詢log.tar.gz中所包含的所有文件列表) 其他壓縮工具: gzip,bzip2,zip 對應(yīng)的解壓縮工具: gunzip,bunzip2,unzip grep命令 global search regular and print out the line 強(qiáng)大的文本搜索工具,可以使用標(biāo)準(zhǔn)正則表達(dá)式,并把匹配的行打印出來。 語法: grep [options] match_pattern file 常用選項(xiàng): -n:不僅顯示所匹配的行,而且顯示所匹配的行號(hào); -v:反轉(zhuǎn)查找; -i:忽略字符大小寫; -o:只顯示匹配到的字符; --color=auto:查詢到的字符顏色高亮顯示; -e:使用擴(kuò)展正則表達(dá)式進(jìn)行搜索; 例如: grep /sbin/nologin /etc/passwd(顯示默認(rèn)bin為/sbin/nologin的所有用戶信息)grep -v /sbin/nologin /etc/paswd(顯示默認(rèn)bin不是/sbin/nologin的所有用戶信息) find命令 用于在指定目錄下查找文件。 -name:匹配文件名; -perm:匹配權(quán)限; -user:匹配屬主; -group:匹配屬組; -atime [-n|+n]:匹配訪問時(shí)間,“-”代表n天以內(nèi),“+”代表n天以前; -mtime [-n|+n]:匹配修改時(shí)間,“-”代表n天以內(nèi),“+”代表n天以前; --type :匹配文件類型; -exec {} ;:若find命令執(zhí)行返回true,這執(zhí)行該命令,{}代表find命令搜索到的所有文件,結(jié)尾;為固定形式; 例如: find /home -name '*.txt'(搜索home目錄下所有的txt文件)find . -type f -atime -7(搜索7天內(nèi)被訪問過的所有文件)find . -user root -type f(搜索屬主為root的所有文件)find . -type f -mtime +30 -name '*.log' -exec cp {} old ;(將30天前的.log文件移動(dòng)到old目錄中) |
|