abstract:Linux現(xiàn)如今已經(jīng)成為了軟件行業(yè)最流行的操作系統(tǒng),掌握Linux就成為了每一個(gè)開(kāi)發(fā)者必備的專業(yè)技能。為了方便大家學(xué)習(xí),大學(xué)君在此為大家整理了在使用Linux時(shí)必須掌握的十條命令,希望大家能熟練掌握。1、cd命令Linux cd命令用于切換當(dāng)前工作目錄至 dirName(目錄參數(shù))。其中 dirName 表示法可為絕對(duì)路徑或相對(duì)路徑。若目錄名稱省略,則變換至使用者的 home 目錄 (也就是剛 l
Linux現(xiàn)如今已經(jīng)成為了軟件行業(yè)最流行的操作系統(tǒng),掌握Linux就成為了每一個(gè)開(kāi)發(fā)者必備的專業(yè)技能。
為了方便大家學(xué)習(xí),大學(xué)君在此為大家整理了在使用Linux時(shí)必須掌握的十條命令,希望大家能熟練掌握。
1、cd命令
Linux cd命令用于切換當(dāng)前工作目錄至 dirName(目錄參數(shù))。
其中 dirName 表示法可為絕對(duì)路徑或相對(duì)路徑。若目錄名稱省略,則變換至使用者的 home 目錄 (也就是剛 login 時(shí)所在的目錄)。
另外,”~” 也表示為 home 目錄 的意思,”.” 則是表示目前所在的目錄,”..” 則表示目前目錄位置的上一層目錄。
語(yǔ)法
cd [dirName]
dirName:要切換的目標(biāo)目錄。
實(shí)例
跳到 /usr/bin/ :
cd /usr/bin
跳到自己的 home 目錄 :
cd ~
跳到目前目錄的上上兩層 :
cd ../..
2、ls命令
Linux ls命令用于顯示指定工作目錄下之內(nèi)容(列出目前工作目錄所含之文件及子目錄)。
語(yǔ)法
ls [-alrtAFR] [name…]
參數(shù)
-a 顯示所有文件及目錄 (ls內(nèi)定將文件名或目錄名稱開(kāi)頭為”.”的視為隱藏檔,不會(huì)列出)
-l 除文件名稱外,亦將文件型態(tài)、權(quán)限、擁有者、文件大小等資訊詳細(xì)列出
-r 將文件以相反次序顯示(原定依英文字母次序)
-t 將文件依建立時(shí)間之先后次序列出
-A 同 -a ,但不列出 “.” (目前目錄) 及 “..” (父目錄)
-F 在列出的文件名稱后加一符號(hào);例如可執(zhí)行檔則加 “*”, 目錄則加 “/”
-R 若目錄下有文件,則以下之文件亦皆依序列出
實(shí)例
列出根目錄(\)下的所有目錄:
# ls /
bin dev lib media net root srv upload www
boot etc lib64 misc opt sbin sys usr
home lost+found mnt proc selinux tmp var
列出目前工作目錄下所有名稱是 s 開(kāi)頭的文件,越新的排越后面 :
ls -ltr s*
將 /bin 目錄以下所有目錄及文件詳細(xì)資料列出 :
ls -lR /bin
列出目前工作目錄下所有文件及目錄;目錄于名稱后加 “/”, 可執(zhí)行檔于名稱后加 “*” :
ls –AF
3、grep命令
Linux grep命令用于查找文件里符合條件的字符串。
grep指令用于查找內(nèi)容包含指定的范本樣式的文件,如果發(fā)現(xiàn)某文件的內(nèi)容符合所指定的范本樣式,預(yù)設(shè)grep指令會(huì)把含有范本樣式的那一列顯示出來(lái)。若不指定任何文件名稱,或是所給予的文件名為”-“,則grep指令會(huì)從標(biāo)準(zhǔn)輸入設(shè)備讀取數(shù)據(jù)。
語(yǔ)法
grep [-abcEFGhHilLnqrsvVwxy][-A<顯示列數(shù)>][-B<顯示列數(shù)>][-C<顯示列數(shù)>][-d<進(jìn)行動(dòng)作>][-e<范本樣式>][-f<范本文件>][--help][范本樣式][文件或目錄...]
常用參數(shù)
-a :將binary文件以text文件的方式查找數(shù)據(jù)
-c :計(jì)算找到‘查找字符串’的次數(shù)
-i :忽略大小寫(xiě)的區(qū)別,即把大小寫(xiě)視為相同
-v :反向選擇,即顯示出沒(méi)有‘查找字符串’內(nèi)容的那一行
示例
# 取出文件/etc/man.config中包含MANPATH的行,并把找到的關(guān)鍵字加上顏色
grep –color=auto ‘MANPATH’ /etc/man.config
# 把ls -l的輸出中包含字母file(不區(qū)分大小寫(xiě))的內(nèi)容輸出
ls -l | grep -i file
4、find命令
Linux find命令用來(lái)在指定目錄下查找文件。任何位于參數(shù)之前的字符串都將被視為欲查找的目錄名。如果使用該命令時(shí),不設(shè)置任何參數(shù),則find命令將在當(dāng)前目錄下查找子目錄與文件。并且將查找到的子目錄和文件全部進(jìn)行顯示。
語(yǔ)法
find path -option [ -print ] [ -exec -ok command ] {} ;
參數(shù)說(shuō)明
find 根據(jù)下列規(guī)則判斷 path 和 expression,在命令列上第一個(gè) – ( ) , ! 之前的部份為 path,之后的是 expression。如果 path 是空字串則使用目前路徑,如果 expression 是空字串則使用 -print 為預(yù)設(shè) expression。
expression 中可使用的選項(xiàng)有二三十個(gè)之多,在此只介紹最常用的部份。
-mount, -xdev : 只檢查和指定目錄在同一個(gè)文件系統(tǒng)下的文件,避免列出其它文件系統(tǒng)中的文件
-amin n : 在過(guò)去 n 分鐘內(nèi)被讀取過(guò)
-anewer file : 比文件 file 更晚被讀取過(guò)的文件
-atime n : 在過(guò)去 n 天過(guò)讀取過(guò)的文件
-cmin n : 在過(guò)去 n 分鐘內(nèi)被修改過(guò)
-cnewer file :比文件 file 更新的文件
-ctime n : 在過(guò)去 n 天過(guò)修改過(guò)的文件
-empty : 空的文件-gid n or -group name : gid 是 n 或是 group 名稱是 name
-ipath p, -path p : 路徑名稱符合 p 的文件,ipath 會(huì)忽略大小寫(xiě)
-name name, -iname name : 文件名稱符合 name 的文件。iname 會(huì)忽略大小寫(xiě)
-size n : 文件大小 是 n 單位,b 代表 512 位元組的區(qū)塊,c 表示字元數(shù),k 表示 kilo bytes,w 是二個(gè)位元組。-type c : 文件類型是 c 的文件。
d: 目錄
c: 字型裝置文件
b: 區(qū)塊裝置文件
p: 具名貯列
f: 一般文件
l: 符號(hào)連結(jié)
s: socket
-pid n : process id 是 n 的文件
你可以使用 ( ) 將運(yùn)算式分隔,并使用下列運(yùn)算。
exp1 -and exp2
! expr
-not expr
exp1 -or exp2
exp1, exp2
實(shí)例
將目前目錄及其子目錄下所有延伸檔名是 c 的文件列出來(lái)。
# find . -name "*.c"
將目前目錄其其下子目錄中所有一般文件列出
# find . -ftype f
將目前目錄及其子目錄下所有最近 20 分鐘內(nèi)更新過(guò)的文件列出
# find . -ctime -20
查找/var/logs目錄中更改時(shí)間在7日以前的普通文件,并在刪除之前詢問(wèn)它們:
$ find /var/logs -type f -mtime +7 -ok rm { } ;
查找前目錄中文件屬主具有讀、寫(xiě)權(quán)限,并且文件所屬組的用戶和其他用戶具有讀權(quán)限的文件:
$ find . -type f -perm 644 -exec ls -l { } ;
為了查找系統(tǒng)中所有文件長(zhǎng)度為0的普通文件,并列出它們的完整路徑:
$ find / -type f -size 0 -exec ls -l { } ;
查找/var/logs目錄中更改時(shí)間在7日以前的普通文件,并在刪除之前詢問(wèn)它們:
$ find /var/logs -type f -mtime +7 -ok rm { } ;
5、cp命令
Linux cp命令主要用于復(fù)制文件或目錄。
語(yǔ)法
cp [options] source dest
或
cp [options] source... directory
參數(shù)說(shuō)明
-a:此選項(xiàng)通常在復(fù)制目錄時(shí)使用,它保留鏈接、文件屬性,并復(fù)制目錄下的所有內(nèi)容。其作用等于dpR參數(shù)組合。
-d:復(fù)制時(shí)保留鏈接。這里所說(shuō)的鏈接相當(dāng)于Windows系統(tǒng)中的快捷方式。
-f:覆蓋已經(jīng)存在的目標(biāo)文件而不給出提示。
-i:與-f選項(xiàng)相反,在覆蓋目標(biāo)文件之前給出提示,要求用戶確認(rèn)是否覆蓋,回答”y”時(shí)目標(biāo)文件將被覆蓋。
-p:除復(fù)制文件的內(nèi)容外,還把修改時(shí)間和訪問(wèn)權(quán)限也復(fù)制到新文件中。
-r:若給出的源文件是一個(gè)目錄文件,此時(shí)將復(fù)制該目錄下所有的子目錄和文件。
-l:不復(fù)制文件,只是生成鏈接文件。
實(shí)例
使用指令”cp”將當(dāng)前目錄”test/”下的所有文件復(fù)制到新目錄”newtest”下,輸入如下命令:
$ cp –r test/ newtest
注意:用戶使用該指令復(fù)制目錄時(shí),必須使用參數(shù)”-r”或者”-R”。
6、mv命令
Linux mv命令用來(lái)為文件或目錄改名、或?qū)⑽募蚰夸浺迫肫渌恢谩?/p>
語(yǔ)法
mv [options] source dest
mv [options] source... directory
參數(shù)說(shuō)明
-i: 若指定目錄已有同名文件,則先詢問(wèn)是否覆蓋舊文件;
-f: 在mv操作要覆蓋某已有的目標(biāo)文件時(shí)不給任何指示;
mv參數(shù)設(shè)置與運(yùn)行結(jié)果
命令格式
運(yùn)行結(jié)果
mv 文件名 文件名
將源文件名改為目標(biāo)文件名
mv 文件名 目錄名
將文件移動(dòng)到目標(biāo)目錄
mv 目錄名 目錄名
目標(biāo)目錄已存在,將源目錄
移動(dòng)到目標(biāo)目錄;目標(biāo)
目錄不存在則改名
mv 目錄名 文件名
出錯(cuò)
實(shí)例
將文件 aaa 更名為 bbb :
mv aaa bbb
將info目錄放入logs目錄中。注意,如果logs目錄不存在,則該命令將info改名為logs。
mv info/ logs
再如將/usr/student下的所有文件和目錄移到當(dāng)前目錄下,命令行為:
$ mv /usr/student/* .
7、rm命令
Linux rm命令用于刪除一個(gè)文件或者目錄。
語(yǔ)法
rm [options] name...
參數(shù)
-i 刪除前逐一詢問(wèn)確認(rèn)。
-f 即使原檔案屬性設(shè)為唯讀,亦直接刪除,無(wú)需逐一確認(rèn)。
-r 將目錄及以下之檔案亦逐一刪除。
實(shí)例
刪除文件可以直接使用rm命令,若刪除目錄則必須配合選項(xiàng)”-r”,例如:
# rm test.txt
rm:是否刪除 一般文件 "test.txt"? y
# rm homework
rm: 無(wú)法刪除目錄"homework": 是一個(gè)目錄
# rm -r homework
rm:是否刪除 目錄 "homework"? y
刪除當(dāng)前目錄下的所有文件及目錄,命令行為:
rm -r *
文件一旦通過(guò)rm命令刪除,則無(wú)法恢復(fù),所以必須格外小心地使用該命令。
8、ps命令
Linux ps命令用于顯示當(dāng)前進(jìn)程 (process) 的狀態(tài)。
語(yǔ)法
ps [options] [—help]
常用參數(shù)
-A :所有的進(jìn)程均顯示出來(lái)
-a :不與terminal有關(guān)的所有進(jìn)程
-u :有效用戶的相關(guān)進(jìn)程
-x :一般與a參數(shù)一起使用,可列出較完整的信息
-l :較長(zhǎng),較詳細(xì)地將PID的信息列出
常用組合
ps aux # 查看系統(tǒng)所有的進(jìn)程數(shù)據(jù)
ps ax # 查看不與terminal有關(guān)的所有進(jìn)程
ps -lA # 查看系統(tǒng)所有的進(jìn)程數(shù)據(jù)
ps axjf # 查看連同一部分進(jìn)程樹(shù)狀態(tài)
9、kill命令
Linux kill命令用于刪除執(zhí)行中的程序或工作。
kill可將指定的信息送至程序。預(yù)設(shè)的信息為SIGTERM(15),可將指定程序終止。若仍無(wú)法終止該程序,可使用SIGKILL(9)信息嘗試強(qiáng)制刪除程序。程序或工作的編號(hào)可利用ps指令或jobs指令查看。
語(yǔ)法
kill [-s <信息名稱或編號(hào)>][程序] 或 kill [-l <信息編號(hào)>]
參數(shù)說(shuō)明
-l <信息編號(hào)> 若不加<信息編號(hào)>選項(xiàng),則-l參數(shù)會(huì)列出全部的信息名稱。
-s <信息名稱或編號(hào)> 指定要送出的信息。
[程序] [程序]可以是程序的PID或是PGID,也可以是工作編號(hào)。
實(shí)例
殺死進(jìn)程
# kill 12345
強(qiáng)制殺死進(jìn)程
# kill -KILL 123456
發(fā)送SIGHUP信號(hào),可以使用一下信號(hào)
# kill -HUP pid
徹底殺死進(jìn)程
# kill -9 123456
殺死指定用戶所有進(jìn)程
#kill -9 $(ps -ef | grep hnlinux) //方法一 過(guò)濾出hnlinux用戶進(jìn)程
#kill -u hnlinux //方法二
10、cat命令
cat命令用于把檔案串連接后傳到基本輸出(螢?zāi)换蚣?> fileName 到另一個(gè)檔案)
使用權(quán)限
所有使用者
語(yǔ)法格式
cat [-AbeEnstTuv] [--help] [--version] fileName
參數(shù)說(shuō)明
-n 或 –number 由 1 開(kāi)始對(duì)所有輸出的行數(shù)編號(hào)
-b 或 –number-nonblank 和 -n 相似,只不過(guò)對(duì)于空白行不編號(hào)
-s 或 –squeeze-blank 當(dāng)遇到有連續(xù)兩行以上的空白行,就代換為一行的空白行
-v 或 –show-nonprinting
實(shí)例
把 textfile1 的檔案內(nèi)容加上行號(hào)后輸入 textfile2 這個(gè)檔案里
cat -n textfile1 > textfile2
把 textfile1 和 textfile2 的檔案內(nèi)容加上行號(hào)(空白行不加)之后將內(nèi)容附加到 textfile3 里。
cat -b textfile1 textfile2 >> textfile3
清空/etc/test.txt檔案內(nèi)容
cat /dev/null > /etc/test.txt