本節摘要:最近頻繁的去生產環境部署和發布項目,用了不少的linux命令,把這些用到的命令做一下總結和記錄。
linux命令匯總:
先做幾點聲明:
(1).這些命令是在redhat linux上啟動並執行,在IBM AIX上使用可能有些就不行;
(2).我並不會去介紹所有的命令,每個命令我也並不會去介紹所有的參數,我只介紹我用到並且是常用的;
(3).介紹不分順序,我只是對近一段時間用到的命令做一下回顧和總結;
(4).我用root使用者登入linux系統,然後在根目錄下建了一個pantp目錄,後面為黑底白字的操作都是在這個目錄下進行;
(5).命令下的(1)、(2)表示該命令常用的幾種形式;
.ls---顯示目前的目錄的檔案
常用的有以下兩種:
(1).ls
顯示目前的目錄pantp的檔案
(2).ls –alt
顯示目前的目錄pantp的所有檔案(包含.開頭的隱藏檔案)的詳細列表資訊,並且按時間排序
.hostname
(1)hostname
查看電腦名稱
(2)hostname –i
查看電腦的IP地址
.whoami
查看當前登入使用者
.cp
複製檔案或目錄
(1)複製檔案
(2)複製目錄
.scp
遠程複製檔案或目錄(把檔案或目錄從一台主機複製到另一台主機) 我在虛擬機器中裝了一個linux系統,這個我沒法,只把文法寫出來,這裡只把從本機複製到遠程主機列出來,另外一個從遠程主機複製到本機就不列出了;
(1)複製檔案
先切換到本機需要複製的檔案所在的目錄(當然也可以寫絕對路徑,也可以根據情況寫相對路徑)
scp 本機檔案名稱 遠程主機登入的使用者名稱@遠程主機IP地址:遠程主機的目錄
這裡列出一個實際的例子:
(2)複製目錄
先切換到本機需要複製目錄的上層(當然也可以寫絕對路徑,也可以根據情況寫相對路徑)
scp -r 本機目錄名 遠程主機登入的使用者名稱@遠程主機IP地址:遠程主機的目錄
.mv
移動檔案或目錄,類似windows系統中的剪下;
(1)移動檔案
把檔案old.txt移動到dir1目錄下
(2)移動目錄
把目錄dir3移動到dir1目錄下
(3)為檔案重新命名
把old.txt命名為new.txt
.vi
命令模式、編輯模式、底行模式
命令模式:
按esc鍵切換到命令列模式,此模式常用的就是刪除
x 刪除當前游標所在字元
dd 刪除游標所在的當前行
編輯模式:
按a、i、o進入編輯模式
a 游標會向後移動一位,在當前游標後插入
i 在當前游標前插入,當前游標所在的字元會後移
o 換一行後插入
現在按照以下步驟按照以上三個方式分別插入pantp字元:
步驟如下:
1.開啟檔案 vi new.txt
2.把游標放在第一行的第二個字元,按下字母a,然後輸入pantp
3.按esc切換到命令列模式
4.把游標放在第二行的第二個字元,按下字母i,然後輸入pantp
5.按esc切換到命令列模式
6.把游標放在第三行的第二個字元,按下字母o,然後輸入pantp
7.按esc切換到命令列模式
8. 輸入 :wq 儲存並退出
原始檔案內容如下:
按照上述步驟編輯以後,檔案內容如下:
退出及儲存
(1)切換到命令列模式
(2):q 不存檔退出vi
:wq 儲存並退出vi
:q! 不存檔強制退出vi
.more
分屏顯示檔案,只有檔案大小超過一定長度才有效,超過一定長度後,會顯示百分比資訊;否則此命令的效果和cat類似;
more 檔案名稱
.cat
顯示檔案的所有內容,一次性顯示該檔案的所有內容;
cat 檔案名稱
.tail
顯示檔案的最新內容
(1).tail –f 檔案名稱
動態顯示檔案增長的內容;
(2).tail –1000f 檔案名稱
動態顯示檔案增長的最後1000行的內容;
.history
(1).history
顯示所有的曆史命令
(2).history 2
顯示最近的兩個命令
.chmod
改變檔案的模式 x(執行)、w(寫)、r(讀)
紅色部分一共有十個字元,
第一個字元表示是檔案還是目錄,d是目錄,- 是檔案
第二三四個字元分別表示當前檔案所屬使用者root的讀、寫、執行的許可權;
第五六七個字元分別表示當前檔案所屬組root的使用者讀、寫、執行的許可權;
第八九十個字元分別表示當前檔案其他組使用者的讀、寫、執行的許可權;
(1).chmod g+x 檔案名稱
給sed.txt當前檔案所屬組使用者加上w許可權;
(2).chmod 777 檔案名稱
給sed.txt.cp當前檔案所屬組使用者加上w許可權;此種採用二進位來表示,有該許可權就寫1,無就寫0,然後算出總數;
更改前:
110 100 100----->6 4 4
需要更改為:
110 110 100----->6 6 4
.chown
改表檔案或目錄的所屬使用者和所屬組;(我虛擬機器上裝的linux只有一個root使用者一個root組,我先建一個test組,並在該組下建一個test使用者,密碼也為test;建立使用者和組的操作這裡就不介紹了,作為一個開發人員這樣的操作很少)
(1)chown 使用者名稱 檔案名稱/目錄
改變檔案或目錄的所屬使用者
把目錄dir1所屬使用者由root改為test
(2).改變dir1所屬組由root改為test
.crontab
crontab 是用來讓使用者在固定時間或固定間隔執行程式之用;
為了下面crontab命令的示範,我在pantp目錄下建一個執行指令碼,crontab.sh
(1).建立定時執行任務
我需要crontab.sh指令碼每隔一分鐘鐘執行一次,並把檔案輸出到pantp目錄下的log.txt
為了使此效果明顯,我把crontab.sh檔案做了一下更改,修改後的檔案為:
先介紹一下crontab中時程表的格式
時程表的格式如下 :
f1 f2 f3 f4 f5 program
其中 f1 是表示分鐘(0-59),f2 表示小時(0-23),f3 表示一個月份中的第幾日(1-31),f4 表示月份(1-12),f5 表示一個星期中的第幾天(0-6 0表示星期日)。program 表示要執行的程式。
當 f1 為 * 時表示每分鐘都要執行 program,f2 為 * 時表示每小時都要執行程式,其餘類推
當 f1 為 a-b 時表示從第 a 分鐘到第 b 分鐘這段時間內要執行,f2 為 a-b 時表示從第 a 到第 b 小時都要執行,其餘類推
當 f1 為 */n 時表示每 n 分鐘個時間間隔執行一次,f2 為 */n 表示每 n 小時個時間間隔執行一次,其餘類推
當 f1 為 a, b, c,... 時表示第 a, b, c,... 分鐘要執行,f2 為 a, b, c,... 時表示第 a, b, c...個小時要執行,其餘類推;
輸入crontab -e,然後輸入如下部分,輸入完成以後,按 :wq 退出;
(2).查看定製任務
我們可以查看log.txt查看運行結果:
(3)刪除定製任務
-r 刪除目前使用者的crontab檔案
這個是命令慎用,這個會刪除目前使用者所有的定製任務,我們可以直接crontab –e 進入,然後把不需要的給刪除;
.sed
利用script來處理文字檔
把sed.txt和sed.txt.cp中的Abc都替換為pantp
執行sed命令前:
(1)第一種方式:sed -e 's/Abc/pantp/' a.txt
-e表示命令以命令列的方式執行;參數s,表示執行替換操作,會把執行後的結果給顯示出來;
注意:此種情況只會把執行後的結果給顯示出來,但是檔案的本身還沒變;
(2)第二種情況:sed -i 's/Abc/pantp/' a.txt
參數-i,表示直接操作修改檔案,不輸出,檔案本身已經變了;
.ssh
(1)登陸到某台機器,預設以目前使用者登陸
(2)採用指定的使用者登陸到某台機器:
.ps
(1).ps –ef
通過以上命令,我一般就是查看某個進程是否存在,有時需要根據進程好來殺進程,這時配合kill命令使用,我一般用kill –3 進程號,用這個命令可以產生core檔案。
(2).ps –aux
aux這三個選項也會配合起來使用,不過我不常用就不總結在這裡了。
.rm
刪除檔案或目錄;
rm –rf 檔案名稱或目錄名
.tar
(1)打tar包,把目錄a打包為a.tar
tar –cvf a.tar a
(2)解壓tar包,把a.tar包解壓
tar –xvf a.tar
.jar
(1)打包,把目錄a打包成a.jar
jar –cvf a.jar a
(2)解壓包,把a.jar解壓
jar –xvf a.jar
(3)查看jar包中的檔案清單
jar –tvf a.jar
.grep
只介紹兩個常用的選項,c 統計資料 i 忽略大小寫
尋找檔案中某個字元出現的數量,統計的是字元出現的行數,如果要尋找的字元在一行中出現超過一次,也只會統計一次;
grep –c 字元 檔案名稱
.find
常用如下:
(1)查看某個目錄下的檔案及目錄
find system
(2)按檔案名稱匹配需要的檔案
find 路徑 –name 匹配選項
.wc
-l 輸出當前檔案的行數
-c 輸出當前檔案的位元組數
-w 輸出當前檔案的字數
(1)wc 檔案名稱
(2)配合其他命令使用,比如cat
.clear
清除螢幕;
.pwd
查看當前所在的目錄;
.su
.切換到指定使用者
su – tyjk
.切換到root使用者
su
.logout/exit
退出當前會話框;
shutdown 這個命令在實際生產環境中一般查證問題不會使用;
關機:shutdown now
重啟:shutdown –r now
reboot
add 2012/09/11
top
top命令就是linux系統中的資源管理員,可以顯示當前CPU、記憶體的使用量、剩餘量等。
uname
uname -a 查看linux系統的版本