每一個程序員基本都應該用過Linux操做系統,有的用來搭建服務器,有的用來安裝前端擴展插件工具等等,可是無一例外都是須要操做Linux,因此我此次分享一些常見的實用的命令。html
本文將持續更新...前端
chkconfig命令用於檢查,設置系統的各類服務。linux
chkconfig 可查詢操做系統在每個執行等級中會執行哪些系統服務,其中包括各種常駐服務。程序員
語法正則表達式
chkconfig [--add][--del][--list][系統服務] 或 chkconfig [--level <等級代號>][系統服務][on/off/reset]
參數:express
--add 增長所指定的系統服務,讓chkconfig指令得以管理它,並同時在系統啓動的敘述文件內增長相關數據。數組
--del 刪除所指定的系統服務,再也不由chkconfig指令管理,並同時在系統啓動的敘述文件內刪除相關數據。服務器
--level<等級代號> 指定讀系統服務要在哪個執行等級中開啓或關畢。網絡
實例列出chkconfig所知道的全部命令。app
# chkconfig -list
開啓服務。
//列出chkconfig所知道的全部的服務的狀況 # chkconfig -list //開啓Telnet服務 # chkconfig telnet on
關閉服務
//列出chkconfig所知道的全部的服務的狀況 # chkconfig -list //關閉Telnet服務 # chkconfig telnet off
這個命令主要是用來查看機器的域名活IP地址的。
hostname 沒有選項,顯示主機名字
hostname –d 顯示機器所屬域名
hostname –f 顯示完整的主機名和域名
hostname –i 顯示當前機器的ip地址
ping 命令將數據包發向用戶指定地址。當包被接收。目標機器發送返回數據包。
ping 主要有兩個做用
用來確認網絡鏈接是暢通的。
用來查看鏈接的速度信息。
若是你 ping www.yahoo.com 它將返回它的ip地址 。你能夠經過 ctrl+C 來中止命令。
Linux中 ifconfig 命令用於顯示或設置網絡設備。
ifconfig 可設置網絡設備的狀態,或是顯示目前的設置。
案例:
一、顯示網絡設備信息:ifconfig
eth0 Link encap:Ethernet HWaddr 00:50:56:0A:0B:0C inet addr:192.168.0.3 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: fe80::250:56ff:fe0a:b0c/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:172220 errors:0 dropped:0 overruns:0 frame:0 TX packets:132379 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:87101880 (83.0 MiB) TX bytes:41576123 (39.6 MiB) Interrupt:185 Base address:0x2024 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:2022 errors:0 dropped:0 overruns:0 frame:0 TX packets:2022 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:2459063 (2.3 MiB) TX bytes:2459063 (2.3 MiB)
二、啓動關閉指定網卡:
ifconfig eth0 down(關) ifconfig eth0 up(開)
三、爲網卡配置和刪除IPv6地址:
ifconfig eth0 add 33ffe:3240:800:1005::2/ 64 //爲網卡誒之IPv6地址 ifconfig eth0 del 33ffe:3240:800:1005::2/ 64 //爲網卡刪除IPv6地址
四、用ifconfig修改MAC地址
ifconfig eth0 down //關閉網卡 ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE //修改MAC地址 ifconfig eth0 up //啓動網卡 ifconfig eth1 hw ether 00:1D:1C:1D:1E //關閉網卡並修改MAC地址 ifconfig eth1 up //啓動網卡
五、配置IP地址
//給eth0網卡配置IP地址 ifconfig eth0 192.168.1.56 // 給eth0網卡配置IP地址,並加上子掩碼 ifconfig eth0 192.168.1.56 netmask 255.255.255.0 // 給eth0網卡配置IP地址,加上子掩碼,加上個廣播地址 ifconfig eth0 192.168.1.56 netmask 255.255.255.0 broadcast 192.168.1.255
六、啓用和關閉ARP協議
ifconfig eth0 arp //開啓 ifconfig eth0 -arp //關閉
七、設置最大傳輸單元
//設置能經過的最大數據包大小爲 1500 bytes ifconfig eth0 mtu 1500
nslookup命令是經常使用域名查詢工具,就是查DNS信息用的命令。
nslookup 這個命令在 有ip地址時,能夠用這個命令來顯示主機名,能夠找到給定域名的全部ip地址。(必須鏈接到互聯網才能使用這個命令)
例子:nslookup www.baidu.com
你也可使用 nslookup 從ip得到主機名或從主機名得到ip。
【系統沒有nslookup命令?】
若是你的Linux系統沒有nslookup命令,那麼八成是你沒有安裝bind-utils包。
直接yum install bind-utils就能夠解決問題了。
Netstat 命令用於顯示各類網絡相關信息,如網絡鏈接,路由表,接口狀態 (Interface Statistics),masquerade 鏈接,多播成員 (Multicast Memberships) 等等。
netstat是發現主機鏈接最有用最通用的Linux命令。
你可使用"netstat -g"查詢該主機訂閱的全部多播組(網絡)。
netstat -nap | grep port //將會顯示使用該端口的應用程序的進程id netstat -a or netstat –all //將會顯示包括TCP和UDP的全部鏈接 netstat --tcp or netstat –t //將會顯示TCP鏈接 netstat --udp or netstat –u //將會顯示UDP鏈接 netstat -g //將會顯示該主機訂閱的全部多播網絡。
Linux/Unix 的文件調用權限分爲三級 : 文件擁有者、羣組、其餘。
利用 chmod 能夠藉以控制文件如何被他人所調用。
使用權限 : 全部使用者
語法:
chmod [-cfvR] [--help] [--version] mode file...
參數說明:
mode : 權限設定字串,格式以下 : [ugoa...][[+-=][rwxX]...][,...] 其中: u 表示該文件的擁有者,g 表示與該文件的擁有者屬於同一個羣體(group)者,o 表示其餘之外的人,a 表示這三者皆是。 + 表示增長權限、- 表示取消權限、= 表示惟一設定權限。 r 表示可讀取,w 表示可寫入,x 表示可執行,X 表示只有當該文件是個子目錄或者該文件已經被設定過爲可執行。 -c : 若該文件權限確實已經更改,才顯示其更改動做 -f : 若該文件權限沒法被更改也不要顯示錯誤訊息 -v : 顯示權限變動的詳細資料 -R : 對目前目錄下的全部文件與子目錄進行相同的權限變動(即以遞迴的方式逐個變動) --help : 顯示輔助說明 --version : 顯示版本
實例:
將文件 file1.txt 設爲全部人皆可讀取 :
chmod ugo+r file1.txt
將文件 file1.txt 設爲全部人皆可讀取 :
chmod a+r file1.txt
將文件 file1.txt 與 file2.txt 設爲該文件擁有者,與其所屬同一個羣體者可寫入,但其餘之外的人則不可寫入 :
chmod ug+w,o-w file1.txt file2.txt
將 ex1.py 設定爲只有該文件擁有者能夠執行 :
chmod u+x ex1.py
將目前目錄下的全部文件與子目錄皆設爲任何人可讀取 :
chmod -R a+r *
此外chmod也能夠用數字來表示權限如 :
chmod 777 file
語法爲:
chmod abc file
其中a,b,c各爲一個數字,分別表示User、Group、及Other的權限。 r=4,w=2,x=1 若要rwx屬性則4+2+1=7; 若要rw-屬性則4+2=6; 若要r-x屬性則4+1=5。 chmod a=rwx file 和 chmod 777 file 效果相同 chmod ug=rwx,o=x file 和 chmod 771 file 效果相同
若用chmod 4755 filename可以使此程序具備root的權限。
find 命令用來在指定目錄下查找文件。
任何位於參數以前的字符串都將被視爲欲查找的目錄名。
若是使用該命令時,不設置任何參數,則find命令將在當前目錄下查找子目錄與文件。而且將查找到的子目錄和文件所有進行顯示。
語法
find path -option [ -print ] [ -exec -ok command ] {} ;
參數說明 :
find 根據下列規則判斷 path 和 expression,在命令列上第一個 - ( ) , ! 以前的部份爲 path,以後的是 expression。 若是 path 是空字串則使用目前路徑,若是 expression 是空字串則使用 -print 爲預設 expression。 expression 中可以使用的選項有二三十個之多,在此只介紹最經常使用的部份。 -mount, -xdev : 只檢查和指定目錄在同一個文件系統下的文件,避免列出其它文件系統中的文件 -amin n : 在過去 n 分鐘內被讀取過 -anewer file : 比文件 file 更晚被讀取過的文件 -atime n : 在過去 n 天過讀取過的文件 -cmin n : 在過去 n 分鐘內被修改過 -cnewer file :比文件 file 更新的文件 -ctime n : 在過去 n 天過修改過的文件 -empty : 空的文件-gid n or -group name : gid 是 n 或是 group 名稱是 name -ipath p, -path p : 路徑名稱符合 p 的文件,ipath 會忽略大小寫 -name name, -iname name : 文件名稱符合 name 的文件。iname 會忽略大小寫 -size n : 文件大小 是 n 單位,b 表明 512 位元組的區塊,c 表示字元數,k 表示 kilo bytes,w 是二個位元組。-type c : 文件類型是 c 的文件。 d: 目錄 c: 字型裝置文件 b: 區塊裝置文件 p: 具名貯列 f: 通常文件 l: 符號連結 s: socket -pid n : process id 是 n 的文件 你可使用 ( ) 將運算式分隔,並使用下列運算。 exp1 -and exp2 ! expr -not expr exp1 -or exp2 exp1, exp2
實例:
將目前目錄及其子目錄下全部延伸檔名是 c 的文件列出來。
find . -name "*.c"
將目前目錄其其下子目錄中全部通常文件列出
find . -ftype f
將目前目錄及其子目錄下全部最近 20 分鐘內更新過的文件列出
find . -ctime -20
查找/var/logs目錄中更改時間在7日之前的普通文件,並在刪除以前詢問它們:
find /var/logs -type f -mtime +7 -ok rm { } ;
查找前目錄中文件屬主具備讀、寫權限,而且文件所屬組的用戶和其餘用戶具備讀權限的文件:
find . -type f -perm 644 -exec ls -l { } ;
爲了查找系統中全部文件長度爲0的普通文件,並列出它們的完整路徑:
find / -type f -size 0 -exec ls -l { } ;
查找/var/logs目錄中更改時間在7日之前的普通文件,並在刪除以前詢問它們:
find /var/logs -type f -mtime +7 -ok rm { } ;
mv 命令用來爲文件或目錄更名、或將文件或目錄移入其它位置。
語法:
mv [options] source dest mv [options] source... directory
參數說明:
-i: 若指定目錄已有同名文件,則先詢問是否覆蓋舊文件; -f: 在mv操做要覆蓋某已有的目標文件時不給任何指示;
mv參數設置與運行結果
命令格式 運行結果
mv 文件名 文件名 將源文件名改成目標文件名
mv 文件名 目錄名 將文件移動到目標目錄
mv 目錄名 目錄名 目標目錄已存在,將源目錄
移動到目標目錄;目標
目錄不存在則更名
mv 目錄名 文件名 出錯
實例:
將文件 aaa 改名爲 bbb :
mv aaa bbb
將info目錄放入logs目錄中。注意,若是logs目錄不存在,則該命令將info更名爲logs。
mv info/ logs
再如將/usr/student下的全部文件和目錄移到當前目錄下,命令行爲:
mv /usr/student/*
cp命令主要用於複製文件或目錄。
語法
cp [options] source dest
或
cp [options] source... directory
參數說明:
-a:此選項一般在複製目錄時使用,它保留連接、文件屬性,並複製目錄下的全部內容。其做用等於dpR參數組合。 -d:複製時保留連接。這裏所說的連接至關於Windows系統中的快捷方式。 -f:覆蓋已經存在的目標文件而不給出提示。 -i:與-f選項相反,在覆蓋目標文件以前給出提示,要求用戶確認是否覆蓋,回答"y"時目標文件將被覆蓋。 -p:除複製文件的內容外,還把修改時間和訪問權限也複製到新文件中。 -r:若給出的源文件是一個目錄文件,此時將複製該目錄下全部的子目錄和文件。 -l:不復制文件,只是生成連接文件。
實例:
// 使用指令"cp"將當前目錄"test/"下的全部文件複製到新目錄"newtest"下,輸入以下命令: cp –r test/ newtest
注意:用戶使用該指令複製目錄時,必須使用參數"-r"或者"-R"。
AWK是一種處理文本文件的語言,是一個強大的文本分析工具。
之因此叫AWK是由於其取了三位創始人 Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的Family Name的首字符。
語法
awk [選項參數] 'script' var=value file(s)
或
awk [選項參數] -f scriptfile var=value file(s)
選項參數說明:
// 指定輸入文件折分隔符,fs是一個字符串或者是一個正則表達式,如-F:。 -F fs or --field-separator fs // 賦值一個用戶定義變量。 -v var=value or --asign var=value // 從腳本文件中讀取awk命令。 -f scripfile or --file scriptfile // 對nnn值設置內在限制,-mf選項限制分配給nnn的最大塊數目;-mr選項限制記錄的最大數目。 // 這兩個功能是Bell實驗室版awk的擴展功能,在標準awk中不適用。 -mf nnn and -mr nnn // 在兼容模式下運行awk。因此gawk的行爲和標準的awk徹底同樣,全部的awk擴展都被忽略。 -W compact or --compat, -W traditional or --traditional // 打印簡短的版權信息。 -W copyleft or --copyleft, -W copyright or --copyright // 打印所有awk選項和每一個選項的簡短說明。 -W help or --help, -W usage or --usage // 打印不能向傳統unix平臺移植的結構的警告。 -W lint or --lint // 打印關於不能向傳統unix平臺移植的結構的警告。 -W lint-old or --lint-old // 打開兼容模式。但有如下限制,不識別:/x、函數關鍵字、func、換碼序列以及當fs是一個空格時,將新行做爲一個域分隔符;操做符**和**=不能代替^和^=;fflush無效。 -W posix // 容許間隔正則表達式的使用,參考(grep中的Posix字符類),如括號表達式[[:alpha:]]。 -W re-interval or --re-inerval // 使用program-text做爲源代碼,可與-f命令混用。 -W source program-text or --source program-text // 打印bug報告信息的版本。 -W version or --version
基本用法:
log.txt文本內容以下:
2 this is a test 3 Are you like awk This's a test 10 There are orange,apple,mongo
用法一:
awk '{[pattern] action}' {filenames} // 行匹配語句 awk '' 只能用單引號
實例:
// 每行按空格或TAB分割,輸出文本中的一、4項
awk '{print $1,$4}' log.txt
---------------------------------------------
2 a
3 like
This's
10 orange,apple,mongo
// 格式化輸出 awk '{printf "%-8s %-10s\n",$1,$4}' log.txt
---------------------------------------------
2 a
3 like
This's
10 orange,apple,mongo
用法二:
awk -F // -F至關於內置變量FS, 指定分割字符
實例:
// 使用","分割
awk -F, '{print $1,$2}' log.txt
---------------------------------------------
2 this is a test
3 Are you like awk
This's a test
10 There are orange apple
// 或者使用內建變量 awk 'BEGIN{FS=","} {print $1,$2}' log.txt
---------------------------------------------
2 this is a test
3 Are you like awk
This's a test
10 There are orange apple
// 使用多個分隔符.先使用空格分割,而後對分割結果再使用","分割 awk -F '[ ,]' '{print $1,$2,$5}' log.txt
---------------------------------------------
2 this test
3 Are awk
This's a
10 There apple
用法三:
awk -v // 設置變量
實例:
awk -va=1 '{print $1,$1+a}' log.txt
---------------------------------------------
2 3
3 4
This's 1
10 11
awk -va=1 -vb=s '{print $1,$1+a,$1b}' log.txt
---------------------------------------------
2 3 2s
3 4 3s
This's 1 This'ss
10 11 10s
用法四:
awk -f {awk腳本} {文件名}
實例:
awk -f cal.awk log.txt