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