linux命令格式:
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:空間域名、網(wǎng)絡(luò)空間、營銷軟件、網(wǎng)站建設(shè)、敘州網(wǎng)站維護(hù)、網(wǎng)站推廣。
說明:command: 命令名,相應(yīng)功能的英文單詞或單詞的縮寫 [-options]:選項,可用來對命令進(jìn)行控制,也可以省略,[]代表可選 parameter1 …:傳給命令的參數(shù):可以是零個一個或多個
一般是linux命令自帶的幫助信息
如:
man是linux提供的一個手冊,包含了絕大部分的命令、函數(shù)使用說明
該手冊分成很多章節(jié)(section),使用man時可以指定不同的章節(jié)來瀏覽。
例:man ls ; man 2 printf
man中各個section意義如下:
man是按照手冊的章節(jié)號的順序進(jìn)行搜索的。
man設(shè)置了如下的功能鍵:
在敲出命令的前幾個字母的同時,按下tab鍵,系統(tǒng)會自動幫我們補(bǔ)全命令
當(dāng)系統(tǒng)執(zhí)行過一些命令后,可按上下鍵翻看以前的命令,history將執(zhí)行過的命令列舉出來
ls是英文單詞list的簡寫,其功能為列出目錄的內(nèi)容,是用戶最常用的命令之一,它類似于DOS下的dir命令。
Linux文件或者目錄名稱最長可以有265個字符,“.”代表當(dāng)前目錄,“..”代表上一級目錄,以“.”開頭的文件為隱藏文件,需要用 -a 參數(shù)才能顯示。
ls常用參數(shù):
Linux允許將命令執(zhí)行結(jié)果重定向到一個文件,本應(yīng)顯示在終端上的內(nèi)容保存到指定文件中。
如:ls test.txt ( test.txt 如果不存在,則創(chuàng)建,存在則覆蓋其內(nèi)容 )
注意: 輸出重定向會覆蓋原來的內(nèi)容,輸出重定向則會追加到文件的尾部。
查看內(nèi)容時,在信息過長無法在一屏上顯示時,會出現(xiàn)快速滾屏,使得用戶無法看清文件的內(nèi)容,此時可以使用more命令,每次只顯示一頁,按下空格鍵可以顯示下一頁,按下q鍵退出顯示,按下h鍵可以獲取幫助。
管道:一個命令的輸出可以通過管道做為另一個命令的輸入。
管道我們可以理解現(xiàn)實生活中的管子,管子的一頭塞東西進(jìn)去,另一頭取出來,這里“ | ”的左右分為兩端,左端塞東西(寫),右端取東西(讀)。
clear作用為清除終端上的顯示(類似于DOS的cls清屏功能),也可使用快捷鍵:Ctrl + l ( “l(fā)” 為字母 )。
在使用Unix/Linux的時候,經(jīng)常需要更換工作目錄。cd命令可以幫助用戶切換工作目錄。Linux所有的目錄和文件名大小寫敏感
cd后面可跟絕對路徑,也可以跟相對路徑。如果省略目錄,則默認(rèn)切換到當(dāng)前用戶的主目錄。
使用pwd命令可以顯示當(dāng)前的工作目錄,該命令很簡單,直接輸入pwd即可,后面不帶參數(shù)。
通過mkdir命令可以創(chuàng)建一個新的目錄。參數(shù)-p可遞歸創(chuàng)建目錄。
需要注意的是新建目錄的名稱不能與當(dāng)前目錄中已有的目錄或文件同名,并且目錄創(chuàng)建者必須對當(dāng)前目錄具有寫權(quán)限。
可使用rmdir命令刪除一個目錄。必須離開目錄,并且目錄必須為空目錄,不然提示刪除失敗。
可通過rm刪除文件或目錄。使用rm命令要小心,因為文件刪除后不能恢復(fù)。為了防止文件誤刪,可以在rm后使用-i參數(shù)以逐個確認(rèn)要刪除的文件。
常用參數(shù)及含義如下表所示:
Linux鏈接文件類似于Windows下的快捷方式。
鏈接文件分為軟鏈接和硬鏈接。
軟鏈接:軟鏈接不占用磁盤空間,源文件刪除則軟鏈接失效。
硬鏈接:硬鏈接只能鏈接普通文件,不能鏈接目錄。
使用格式:
如果沒有-s選項代表建立一個硬鏈接文件,兩個文件占用相同大小的硬盤空間,即使刪除了源文件,鏈接文件還是存在,所以-s選項是更常見的形式。
注意:如果軟鏈接文件和源文件不在同一個目錄,源文件要使用絕對路徑,不能使用相對路徑。
Linux系統(tǒng)中g(shù)rep命令是一種強(qiáng)大的文本搜索工具,grep允許對文本文件進(jìn)行模式查找。如果找到匹配模式, grep打印包含模式的所有行。
grep一般格式為:
在grep命令中輸入字符串參數(shù)時,最好引號或雙引號括起來。例如:grep‘a(chǎn) ’1.txt。
常用選項說明:
find命令功能非常強(qiáng)大,通常用來在特定的目錄下搜索符合條件的文件,也可以用來搜索特定用戶屬主的文件。
常用用法:
cp命令的功能是將給出的文件或目錄復(fù)制到另一個文件或目錄中,相當(dāng)于DOS下的copy命令。
常用選項說明:
用戶可以使用mv命令來移動文件或目錄,也可以給文件或目錄重命名。
常用選項說明:
計算機(jī)中的數(shù)據(jù)經(jīng)常需要備份,tar是Unix/Linux中最常用的備份工具,此命令可以把一系列文件歸檔到一個大文件中,也可以把檔案文件解開以恢復(fù)數(shù)據(jù)。
tar使用格式 tar [參數(shù)] 打包文件名 文件
tar命令很特殊,其參數(shù)前面可以使用“-”,也可以不使用。
常用參數(shù):
tar與gzip命令結(jié)合使用實現(xiàn)文件打包、壓縮。 tar只負(fù)責(zé)打包文件,但不壓縮,用gzip壓縮tar打包后的文件,其擴(kuò)展名一般用xxxx.tar.gz。
gzip使用格式如下:
gzip [選項] 被壓縮文件
常用選項:
tar與bzip2命令結(jié)合使用實現(xiàn)文件打包、壓縮(用法和gzip一樣)。
tar只負(fù)責(zé)打包文件,但不壓縮,用bzip2壓縮tar打包后的文件,其擴(kuò)展名一般用xxxx.tar.gz2。
在tar命令中增加一個選項(-j)可以調(diào)用bzip2實現(xiàn)了一個壓縮的功能,實行一個先打包后壓縮的過程。
壓縮用法:tar -jcvf 壓縮包包名 文件...(tar jcvf bk.tar.bz2 *.c)
解壓用法:tar -jxvf 壓縮包包名 (tar jxvf bk.tar.bz2)
通過zip壓縮文件的目標(biāo)文件不需要指定擴(kuò)展名,默認(rèn)擴(kuò)展名為zip。
壓縮文件:zip [-r] 目標(biāo)文件(沒有擴(kuò)展名) 源文件
解壓文件:unzip -d 解壓后目錄文件 壓縮文件
whoami該命令用戶查看當(dāng)前系統(tǒng)當(dāng)前賬號的用戶名??赏ㄟ^cat /etc/passwd查看系統(tǒng)用戶信息。
由于系統(tǒng)管理員通常需要使用多種身份登錄系統(tǒng),例如通常使用普通用戶登錄系統(tǒng),然后再以su命令切換到root身份對傳統(tǒng)進(jìn)行管理。這時候就可以使用whoami來查看當(dāng)前用戶的身份。
who命令用于查看當(dāng)前所有登錄系統(tǒng)的用戶信息。
常用選項:
如果是圖形界面,退出當(dāng)前終端;
如果是使用ssh遠(yuǎn)程登錄,退出登陸賬戶;
如果是切換后的登陸用戶,退出則返回上一個登陸賬號。
在Unix/Linux中添加用戶賬號可以使用adduser或useradd命令,因為adduser命令是指向useradd命令的一個鏈接,因此,這兩個命令的使用格式完全一樣。
useradd命令的使用格式如下:
useradd [參數(shù)] 新建用戶賬號
在Unix/Linux中,超級用戶可以使用passwd命令為普通用戶設(shè)置或修改用戶口令。用戶也可以直接使用該命令來修改自己的口令,而無需在命令后面使用用戶名。
可以通過su命令切換用戶,su后面可以加“-”。su和su –命令不同之處在于,su -切換到對應(yīng)的用戶時會將當(dāng)前的工作目錄自動轉(zhuǎn)換到切換后的用戶主目錄:
注意:如果是ubuntu平臺,需要在命令前加“sudo”,如果在某些操作需要管理員才能操作,ubuntu無需切換到root用戶即可操作,只需加“sudo”即可。sudo是ubuntu平臺下允許系統(tǒng)管理員讓普通用戶執(zhí)行一些或者全部的root命令的一個工具,減少了root 用戶的登陸和管理時間,提高了安全性。
方法一:
方法二:
groupadd 新建組賬號 groupdel 組賬號 cat /etc/group 查看用戶組
使用方法:usermod -g 用戶組 用戶名
新創(chuàng)建的用戶,默認(rèn)不能sudo,需要進(jìn)行一下操作
-g用來制定這個用戶默認(rèn)的用戶組
-G一般配合'-a'來完成向其它組添加
chmod 修改文件權(quán)限有兩種使用格式:字母法與數(shù)字法。
字母法:chmod u/g/o/a +/-/= rwx 文件
cal命令用于查看當(dāng)前日歷,-y顯示整年日歷
設(shè)置時間格式(需要管理員權(quán)限):
date [MMDDhhmm[[CC]YY][.ss]] +format
CC為年前兩位yy為年的后兩位,前兩位的mm為月,后兩位的mm為分鐘,dd為天,hh為小時,ss為秒。如: date 010203042016.55。
顯示時間格式(date '+%y,%m,%d,%H,%M,%S'):
進(jìn)程是一個具有一定獨(dú)立功能的程序,它是操作系統(tǒng)動態(tài)執(zhí)行的基本單元。
ps命令可以查看進(jìn)程的詳細(xì)狀況,常用選項(選項可以不加“-”)如下:
top命令用來動態(tài)顯示運(yùn)行中的進(jìn)程。top命令能夠在運(yùn)行后,在指定的時間間隔更新顯示信息??梢栽谑褂胻op命令時加上-d 來指定顯示信息更新的時間間隔。
在top命令執(zhí)行后,可以按下按鍵得到對顯示的結(jié)果進(jìn)行排序:
kill命令指定進(jìn)程號的進(jìn)程,需要配合 ps 使用。有些進(jìn)程不能直接殺死,這時候我們需要加一個參數(shù)“ -9 ”,“ -9 ” 代表強(qiáng)制結(jié)束.
使用格式:
kill [-signal] pid
df命令用于檢測文件系統(tǒng)的磁盤空間占用和空余情況,可以顯示所有文件系統(tǒng)對節(jié)點和磁盤塊的使用情況。
du命令用于統(tǒng)計目錄或文件所占磁盤空間的大小,該命令的執(zhí)行結(jié)果與df類似,du更側(cè)重于磁盤的使用狀況。
du命令的使用格式如下: du [選項] 目錄或文件名
所有命令的參數(shù)都是使用空格分隔的,例如 ls -l 。在這里ls即為命令名, -l 為此命令的參數(shù),在 ls 與 -l 之間有一個空格,但是在 -l 內(nèi)部不能有空格。
由于Linux繼承于Unix,而Unix操作系統(tǒng)在當(dāng)初設(shè)計的時候,鍵盤并不可靠,而且敲鍵盤比較費(fèi)勁(比如容易卡住),因此大部分命令都非常簡短,一般是完整的英文單詞去掉元音字母(aeiou)后的縮寫,這是一個歷史問題。
整個操作系統(tǒng)的磁盤都被劃分為很多個目錄(directory)或稱文件夾(folder),還有文件(file)。每個目錄下還可以有子目錄(sub direcotory)與文件,這樣就形成了一個樹狀結(jié)構(gòu),樹根為 / ,被稱為根目錄(root directory)。
在 任何時候 ,你都有一個 當(dāng)前目錄 (Working Directory),你所有的操作都是相對于當(dāng)前目錄做出的,以當(dāng)前目錄為基準(zhǔn)的目錄名或者文件名叫做相對目錄。例如若你的當(dāng)前目錄是/home/alex,在/home/alex目錄下有一個叫Public的子目錄,還有一個叫l(wèi)og.txt的文件,則Public與log.txt就是相對目錄名與相對文件名。
每個目錄與文件都有一個全路徑(full path)名,這個全路徑以/開頭,遍歷整個目錄,直到最終的目錄名或者文件名為止。例如在Linux中,/下有etc、home、usr、lib等子目錄,而home目錄下有alex目錄,alex目錄下有Public目錄。則在這里Public的全路徑名就是 /home/alex/Public ,注意在這里必須大小寫一致。
當(dāng)然也有可能在其它的名叫Public的目錄或者文件,但是它們的全路徑肯定是不一樣的。就像在中國有一個叫Alex的人,在美國也有一個叫Alex的人,他們可以分別稱為中國的Alex與美國的Alex,這就是他們的全路徑 ;)。全路徑又叫絕對路徑(absolute path)。
在Linux里,每個用戶都有一個家目錄(home directory),一般情況下用戶的家目錄就是/home目錄下相應(yīng)的用戶名,例如alex用戶的家目錄就是/home/alex。
大部分文件都有擴(kuò)展名(extension name),擴(kuò)展名即為文件名最后一個點號(.)后面的文字,擴(kuò)展名一般都表示了文件的類型。例如在log.txt這個文件名中,txt是擴(kuò)展名,表示這個文件是一個文本文件(TeXT file),而文本文件一般都是可以直接查看內(nèi)容的。而在house.1.jpg這個文件名中,其擴(kuò)展名為jpg,表示這個文件是一個JPG格式的圖形文件,而圖形文件一般都是需要使用圖形軟件打開才能看到其內(nèi)容的。
pwd 是Pring Working Directory的縮寫,此命令的作用是打印(print)當(dāng)前的(working)目錄(directory)的全路徑名。
當(dāng)你打開終端或者切換目錄之后,你最好運(yùn)行一下 pwd 命令,確認(rèn)當(dāng)前的目錄是不是你想要切換的目錄。
pwd 命令一般不需要參數(shù)。
ls 是LiSt的縮寫,此命令的作用是列舉目錄下的文件與子目錄。
當(dāng)你不帶參數(shù)運(yùn)行 ls 命令時,此命令將列舉出當(dāng)前目錄下的文件與子目錄的名稱。
當(dāng)你加上-l參數(shù)運(yùn)行 ls 命令時,此命令將列舉出當(dāng)前目錄下的文件與子目錄的名稱,以及它們的修改時間、大小等信息。
你也可以使用 ls 命令列舉其它目錄下的文件與子目錄的名稱,例如,運(yùn)行 ls / 即可列舉出根目錄下的文件與子目錄名,運(yùn)行 ls -l / 即可列舉出根目錄下的文件與子目錄名,以及它們的修改時間、大小等信息。
cd 是Change Directory的縮寫,此命令的作用是切換當(dāng)前的工作目錄。
例如,運(yùn)行 cd /home/alex 將把當(dāng)前目錄切換為 /home/alex 。當(dāng)然,cd后面的參數(shù)也可以是相對目錄。例如若當(dāng)前目錄為 /home/alex ,而 /home/alex 目錄下有一個目錄叫Public,則運(yùn)行 cd Public 則會將當(dāng)前目錄變?yōu)?/home/alex/Public 。
如果cd命令后面不接任何參數(shù),則將把當(dāng)前目錄設(shè)置為用戶的家目錄。
cp 是CoPy的縮寫,此命令的作用是復(fù)制文件或者文件夾。
例如,運(yùn)行 cp 1.txt 2.txt 將把當(dāng)前目錄下的 1.txt 文件復(fù)制成 2.txt 文件。運(yùn)行 cp 1.txt /tmp/2.txt 將把當(dāng)前目錄下的 1.txt 復(fù)制成 /tmp/2.txt 文件,運(yùn)行 cp 1.txt /home/alex/ 將把 1.txt 文件復(fù)制到 /home/alex/ 目錄下。
rm 是ReMove的縮寫,此命令的作用是刪除文件或者文件夾。
例如,運(yùn)行 rm 2.txt 將刪除當(dāng)前目錄下的 2.txt 文件,運(yùn)行 rm /tmp/2.txt 將刪除 /tmp/2.txt 文件。
你也可以使用 rm 來刪除目錄,此時需要帶上-R參數(shù)(recursive,即遞歸的意思),例如 rm -R /tmp/abc 將刪除整個 /tmp/abc 目錄。
刪除時一般都會詢問你讓你確認(rèn)是否要刪除,如果你不需要被提問確認(rèn),可以加上-f參數(shù),例如 rm -f /tmp/1.txt 。
mv 是MoVe的縮寫,此命令的作用是移動文件或者文件夾,或說是為文件或者文件夾改名。注意,一旦移動成功,則原來的文件或者文件夾就不存在了。
例如,運(yùn)行 mv 1.txt 2.txt 將把當(dāng)前目錄下的 1.txt 改名為 2.txt ,運(yùn)行 mv 1.txt /tmp/2.txt 將把當(dāng)前目錄下的 1.txt 移動成為 /tmp/2.txt 文件。
mkdir 是MaKe DIRectory的縮寫,此命令的作用是創(chuàng)建目錄。
例如 mkdir abc 將在當(dāng)前目錄下創(chuàng)建一個名為 abc 的目錄, mkdir /tmp/xyz123 將在 /tmp 目錄下創(chuàng)建一個名為 xyz123 的目錄。
mkdir 可以帶-p參數(shù),這樣即可同時創(chuàng)建多層目錄,例如 mkdir -p a/b/c/123 將在當(dāng)前目錄下創(chuàng)建a目錄,在a目錄下創(chuàng)建b目錄,在b目錄下創(chuàng)建c目錄,在c目錄下創(chuàng)建123目錄。
在Linux下還有幾個特殊的目錄,它們分別是:
有一個特殊的符號表示文件名匹配,即 * 。例如 cp *.txt /tmp/ 將把當(dāng)前目錄下的以 .txt 結(jié)尾的文件名都復(fù)制到 /tmp/ 目錄下, ls a*.txt 將列舉出當(dāng)前目錄下所有以 a 開頭,以 .txt 結(jié)尾的文件名與目錄, rm /tmp/1*log 將刪除 /tmp 目錄下所有文件名以 1 開頭,以 log 結(jié)尾的文件。
所有以 . 開頭的文件與目錄都表示是隱藏文件 / 目錄,例如 .vimrc ,例如 .. ,在 ls 時一般是看不到這些文件與目錄的,如果想要看到,需要使用 ls 的 -a 參數(shù),例如 ls -al 。
Linux下有大量命令/軟件,在此我們僅列舉幾個可能會用到的,可以在使用過程中慢慢熟悉。
一、cd命令(切換目錄 )
(1)切換到目錄 /usr/local
cd /usr/local
(2)去到目前的上層目錄
cd ..
(3)回到自己的主文件夾
cd ~
二、ls命令(查看文件與目錄)
(4)查看目錄/usr下所有的文件
cd /usr ls -al
三、mkdir命令(新建新目錄 )
(5)進(jìn)入/tmp目錄,創(chuàng)建一個名為a的目錄,并查看有多少目錄存在
cd /tmp
mkdir a ls -al
(6)創(chuàng)建目錄a1/a2/a3/a4
mkdir -p a1/a2/a3/a4
四、?rmdir命令(刪除空的目錄)
(7)將上例創(chuàng)建的目錄a(/tmp下面)刪除
rmdir a
(8)刪除目錄a1/a2/a3/a4,查看有多少目錄存在
rmdir -p a1/a2/a3/a4
ls -al
五、cp命令(復(fù)制文件或目錄 )
(9)將主文件夾下的.bashrc復(fù)制到/usr下,命名為bashrc1
sudo cp ~/.bashrc /usr/bashrc1
(10)在/tmp下新建目錄test,再復(fù)制這個目錄內(nèi)容到/usr
cd /tmp
mkdir test
sudo cp -r /tmp/test /usr
六、mv命令(移動文件與目錄,或更名)
(11)將上例文件bashrc1移動到目錄/usr/test
sudo mv /usr/bashrc1 /usr/test
(12)將上例test目錄重命名為test2
sudo mv /usr/test /usr/test2
七、rm命令:移除文件或目錄
(13)將上例復(fù)制的bashrc1文件刪除
sudo rm /usr/test2/bashrc1
(14)將上例的test2目錄刪除
sudo rm -r /usr/test2
八、cat命令:查看文件內(nèi)容
(15)查看主文件夾下的.bashrc文件內(nèi)容
cat ~/.bashrc
九、tac命令:反向列示
(16)反向查看主文件夾下.bashrc文件內(nèi)容
tac ~/.bashrc
十、more命令:一頁一頁翻動查看
(17)翻頁查看主文件夾下.bashrc文件內(nèi)容
more ~/.bashrc
十一、head命令:取出前面幾行
(18)查看主文件夾下.bashrc文件內(nèi)容前20行
head -n 20 ~/.bashrc
(19)查看主文件夾下.bashrc文件內(nèi)容,后面50行不顯示,只顯示前面幾行
head -n -50 ~/.bashrc
十二、tail命令:取出后面幾行
(20)查看主文件夾下.bashrc文件內(nèi)容最后20行
tail -n 20 ~/.bashrc
(21) 查看主文件夾下.bashrc文件內(nèi)容,只列出50行以后的數(shù)據(jù)
tail -n +50 ~/.bashrc
十三、touch命令:修改文件時間或創(chuàng)建新文件
(22)在/tmp下創(chuàng)建一個空文件hello并查看時間
cd /tmp
touch hello ls -l hello
(23)修改hello文件,將日期調(diào)整為5天前
touch -d “5 days ago” hello
十四、chown命令:修改文件所有者權(quán)限
(24)將hello文件所有者改為root帳號,并查看屬性
sudo chown root /tmp/hello
ls -l /tmp/hello
十五、find命令:文件查找
(25)找出主文件夾下文件名為.bashrc的文件
find ~ -name .bashrc
十六、tar命令:壓縮命令
(26)在/目錄下新建文件夾test,然后在/目錄下打包成test.tar.gz
sudo mkdir /test
sudo tar -zcv -f /test.tar.gz test
(27)解壓縮到/tmp目錄
sudo tar -zxv -f /test.tar.gz -C /tmp
十七、grep命令:查找字符串
(28)從~/.bashrc文件中查找字符串'examples'
grep -n 'examples' ~/.bashrc