linux常用命令整理
一、ls命令
就是list的縮寫,通過ls 命令不僅可以查看linux文件夾包含的文件,而且可以查看文件權限(包括目錄、文件夾、文件權限)查看目錄信息等等
常用參數搭配:
ls -a 列出目錄所有文件,包含以.開始的隱藏文件
ls -A 列出除.及..的其它文件
ls -r 反序排列
ls -t 以文件修改時間排序
ls -S 以文件大小排序
ls -l 除了文件名之外,還將文件的權限、所有者、文件大小等信息詳細列出來(可以直接寫成 ll)
實例:
ll name* #列出當前目錄中所有以“name”開頭的目錄的詳細內容
二、cd命令
cd /root/Docements # 切換到目錄/root/Docements cd ./path # 切換到當前目錄下的path目錄中,“.”表示當前目錄 cd ../path # 切換到上層目錄中的path目錄中,“..”表示上一層目錄
三、rm命令
-f : #就是force的意思,忽略不存在的文件,不會出現警告消息 -i : #互動模式,在刪除前會詢問用戶是否操作 -r : #遞歸刪除,最常用於目錄刪除,它是一個非常危險的參數 #舉例 rm -i file # 刪除文件file,在刪除之前會詢問是否進行該操作 rm -fr dir # 強制刪除目錄dir中的所有文件
四、cp命令
- -a :將文件的特性一起復制
- -p :連同文件的屬性一起復制,而非使用默認方式,與-a相似,常用於備份
- -r :遞歸持續復制,用於目錄的復制行為
cp /home/Test.java #將home路徑下的Test.java文件復制到當前目錄下 cp -r dir1 dir2 #-r表示遞歸,將dir1代表的文件夾及里面的文件復制到dir2路徑那里 cp -r mysql /usr/local/mysql #把mysql文件夾所有文件復制到/usr/local/mysql目錄下,沒有會自動創建目錄
cp file1 file2 file3 dir #把文件file1、file2、file3復制到目錄dir中
五、mv命令
移動文件或修改文件名,根據第二參數類型(如目錄,則移動文件;如為文件則重命令該文件)。
- -f :force強制的意思,如果目標文件已經存在,不會詢問而直接覆蓋
- -i :若目標文件已經存在,就會詢問是否覆蓋
- -u :若目標文件已經存在,且比目標文件新,才會更新
mv file1 file2 file3 dir # 把文件file1、file2、file3移動到目錄dir中 mv file1 file2 # 把文件file1重命名為file2
六、mkdir命令
-m --mode=模式,設定權限<模式> (類似 chmod),而不是 rwxrwxrwx 減 umask
-p --parents 遞歸創建目錄
-v, --verbose 每次創建新目錄都顯示信息
mkdir abc #創建一個空目錄 mkdir -p test/test1 #遞歸創建多個目錄 mkdir -v hao #創建新目錄都顯示信息 mkdir -m 777 pc #創建權限為777的目錄
7、pwd命令
pwd #查看當前路徑 pwd -P #查看軟鏈接的實際路徑
8、find命令
-name 按照文件名查找文件 -perm 按文件權限查找文件 -user 按文件屬主查找文件 -group 按照文件所屬的組來查找文件。 -amin n 查找系統中最后N分鍾訪問的文件 -atime n 查找系統中最后n*24小時訪問的文件 -mmin n 查找系統中最后N分鍾被改變文件數據的文件 -mtime n 查找系統中最后n*24小時被改變文件數據的文件
find ./ -name '*.log' # 在當前目錄查找 以.log結尾的文件。 ". "代表當前目錄 find /opt -perm 777 #查找/opt目錄下 權限為 777的文件 -xargs #find命令把匹配到的文件傳遞給xargs命令,而xargs命令每次只獲取一部分文件而不是全部,不像-exec選項那樣。這樣它可以先處理最先獲取的一部分文件,然后是下一批,並如此繼續下去。 find / -name mysql|xargs rm -rf #找到所有文件名為mysql文件,並全部刪除。
9、tar命令
只能使用下面的某一個選項來指定tar要執行的動作。可以通過在選項后面跟一個或多個修飾符來改變該選項的行為
-c 創建歸檔文件
-u 將file-list中的文件添加到歸檔文件
-x 從歸檔文件中提取file-list並把它寫入磁盤
修飾符
-f filename 使用filename來指出要創建或從中提取的歸檔文件的文件名
-j 在創建歸檔文件或從歸檔文件中提取文件時,使用bzip2方式來進行壓縮和解壓縮
-z 在創建歸檔文件或從歸檔文件中提取文件時,使用gzip方式來進行壓縮和解壓縮
-v 顯示所有過程
-t 列出歸檔文件中的目錄
tar -cvf demo.tar a b c #將a b c打包成一個名為demo.tar的歸檔文件,並顯示打包的文件 tar -xvf demo.tar #解壓名為demo.tar的歸檔文件到本目錄,並顯示解壓的文件 tar -zcvf demo.tar.gz a b c #將a b c 三文件用gzip的方式打包並壓縮成demo.tar.gz tar -zxvf demo.tar.gz #用gunzip的的方式解壓demo.tar.gz文件 tar -jcvf demo.tar.bz2 a b c #將a b c三文件用bzip2的方式壓縮並打包為demo.tar.bz2 tar -jxvf demo.tar.bz2 #將demo.tar.bz2用bunzip2的方式解壓縮到當前目錄
tar -cvf jpg.tar *.jpg #將目錄里所有jpg文件打包成tar.jpg
10、ps命令
ps(process status),用來查看當前運行的進程狀態,一次性查看,如果需要動態連續結果使用top
linux上進程有5種狀態:
1. 運行(正在運行或在運行隊列中等待)
2. 中斷(休眠中, 受阻, 在等待某個條件的形成或接受到信號)
3. 不可中斷(收到信號不喚醒和不可運行, 進程必須等待直到有中斷發生)
4. 僵死(進程已終止, 但進程描述符存在, 直到父進程調用wait4()系統調用后釋放)
5. 停止(進程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信號后停止運行運行)
命令參數:
-A 顯示所有進程
a 顯示所有進程
- e 顯示環境變量
- f 顯示進程間的關系
r 顯示當前終端運行的進程
-aux 顯示所有包含其它使用的進程
ps -A #顯示所有進程信息 ps -u root #顯示指定用戶信息 ps -ef # 顯示所有進程信息,連同命令行 ps -ef |grep java #顯示java 進程是否存在 #grep命令是查找,中間的|是管道命令 是指ps命令與grep同時執行 ps -aux |grep java #顯示java 進程是否存在 #上面兩個其實沒有多大區別只是:aux可以查看進程的CPU占用率和內存占用率。ef可以查看進程的父進程ID和完整的COMMAND命令
11、top命令
top顯示系統當前的進程和其他狀況,是一個動態顯示過程,顯示當前系統正在執行的進程的相關信息,包括進程ID、內存占用率、CPU占用率等
常用參數:
-c 顯示完整的進程命令
-s 保密模式
-p <進程號> 指定進程顯示
-n <次數>循環顯示次數
-d 指定每兩次屏幕信息刷新之間的時間間隔。
top #每隔5秒顯式所有進程的資源占用情況(默認是5秒) top -d 2 #每隔2秒顯式所有進程的資源占用情況 top -c #每隔5秒顯式進程的資源占用情況,並顯示進程的命令行參數(默認只有進程名) top -p 12345 -p 6789 #每隔5秒顯示pid是12345和pid是6789的兩個進程的資源占用情況 top -d 2 -c -p 123456 #每隔2秒顯示pid是12345的進程的資源使用情況,並顯式該進程啟動的命令行參數
12、kill命令
發送指定的信號到相應進程。
常見參數
HUP 1 終端斷線
INT 2 中斷(同 Ctrl + C)
QUIT 3 退出(同 Ctrl + \)
TERM 15 終止
KILL 9 強制終止
CONT 18 繼續(與STOP相反, fg/bg命令)
STOP 19 暫停(同 Ctrl + Z)
kill -15 pid #讓進程正常退出 。 既然信號 15 是退出進程的正確方式,那它也應該是最常用的方式,因而我們可以省略參數 -15。 kill -9 pid #當進程出現了異常狀況,不能通過信號15正常退出時,我們就需要通過非常的手段直接終結掉進程。所謂的非常手段就是傳遞信號 9 給目標進程! kill -15 $(ps -ef | grep peidalinux) #殺死指定進程
#不是特殊情況,建議有15就可以了,慎用9哦
13、chmod命令
用於改變linux系統文件或目錄的訪問權限。用它控制文件或目錄的訪問權限。該命令有兩種用法。一種是包含字母和操作符表達式的文字設定法;另一種是包含數字的數字設定法。
常用參數:
-c 當發生改變時,報告處理信息
-R 處理指定目錄以及其子目錄下所有文件
權限范圍:
u :目錄或者文件的當前的用戶
g :目錄或者文件的當前的群組
o :除了目錄或者文件的當前用戶或群組之外的用戶或者群組
a :所有的用戶及群組
三種基本權限
R 讀 數值表示為4
W 寫 數值表示為2
X 可執行 數值表示為1
如圖所示,dump.rdb文件的權限為-rw-r--r--
-rw-r--r--一共十個字符,分成四段。
第一個字符“-”表示普通文件;這個位置還可能會出現“l”鏈接;“d”表示目錄
第二三四個字符“rw-”表示當前所屬用戶的權限。 所以用數值表示為4+2=6
第五六七個字符“r--”表示當前所屬組的權限。 所以用數值表示為4
第八九十個字符“r--”表示其他用戶權限。 所以用數值表示為4
所以操作此文件的權限用數值表示為644
更改權限
sudo chmod [u所屬用戶 g所屬組 o其他用戶 a所有用戶] [+增加權限 -減少權限] [r w x] 目錄名
例如:有一個文件filename,權限為“-rw-r----x” ,將權限值改為"-rwxrw-r-x",用數值表示為765
sudo chmod u+x g+w o+r filename
上面的例子可以用數值表示
sudo chmod 765 filename
14、grep命令
強大的文本搜索命令,grep(Global Regular Expression Print)全局正則表達式搜索
grep太強大了,我這里就舉幾個常見的。
ps -ef|grep svn #查找指定進程 grep -n 'li' nginx.conf #在nginx.conf查找包含"li"的行,同時顯示行號 grep 'linux' test.txt test2.txt #從多個文件中查找關鍵詞
15、vim命令
vim三種模式:命令模式、插入模式、編輯模式。使用ESC或i或:來切換模式。
命令模式下:
:q 退出
:q! 強制退出
:wq 保存並退出
:set number 顯示行號
:set nonumber 隱藏行號
/apache 在文檔中查找apache 按n跳到下一個,shift+n上一個
yyp 復制光標所在行,並粘貼
h(左移一個字符←)、j(下一行↓)、k(上一行↑)、l(右移一個字符→)
16、cat命令
cat主要有三大功能:
1.一次顯示整個文件:cat filename
2.從鍵盤創建一個文件:cat > filename 只能創建新文件,不能編輯已有文件.
3.將幾個文件合並為一個文件:cat file1 file2 > file
-b對非空輸出行號
-n輸出所有行號
cat -n nginx.conf #查看文件並顯示行號 cat -n log2012.log log2013.log #把 log2012.log 的文件內容加上行號后輸入 log2013.log 這個文件里 cat -b log2012.log log2013.log log.log #把 log2012.log 和 log2013.log 的文件內容加上行號(空白行不加)之后將內容附加到 log.log 里
17、more命令
功能類似於cat, more會以一頁一頁的顯示方便使用者逐頁閱讀,而最基本的指令就是按空白鍵(space)就往下一頁顯示,按 b 鍵就會往回(back)一頁顯示
命令參數:
+n 從笫n行開始顯示
-n 定義屏幕大小為n行
+/pattern 在每個檔案顯示前搜尋該字串(pattern),然后從該字串前兩行之后開始顯示
-c 從頂部清屏,然后顯示
-d 提示“Press space to continue,’q’ to quit(按空格鍵繼續,按q鍵退出)”,禁用響鈴功能
-l 忽略Ctrl+l(換頁)字符
-s 把連續的多個空行顯示為一行
常用操作命令:
Enter 向下n行,需要定義。默認為1行
空格鍵 向下滾動一屏
Ctrl+B 返回上一屏
= 輸出當前行的行號
V 調用vi編輯器
!命令 調用Shell,並執行命令
q 退出more
ls -l | more -5 #在所列出文件目錄詳細信息,借助管道使每次顯示5行 按空格鍵顯示下五行,enter向下1行。具體看上面參數。
more +3 text.txt #顯示文件中從第3行起的內容
18、less命令
less 與 more 類似,但使用 less 可以隨意瀏覽文件,而 more 僅能向前移動,卻不能向后移動,而且 less 在查看之前不會加載整個文件。
19、tail命令
用於顯示指定文件末尾內容,不指定文件時,作為輸入信息進行處理。常用查看日志文件。
常用參數:
-f 循環讀取(常用於查看遞增的日志文件)
-n<行數> 顯示行數(從后向前)
tail -f ping.log #循環讀取逐漸增加的文件內容
這個可以用來看正式服報錯日志
20、chown命令
chown將指定文件的擁有者改為指定的用戶或組,用戶可以是用戶名或者用戶ID;組可以是組名或者組ID;文件是以空格分開的要改變權限的文件列表,支持通配符
-c 顯示更改的部分的信息
-R 處理指定目錄及子目錄
chown mail:mail log2012.log #改變擁有者和群組
chown root: log2012.log #改變文件擁有者和群組 chown :mail log2012.log #改變文件群組 chown -R -v root:mail test6 #改變指定目錄以及其子目錄下的所有文件的擁有者和群組