Linux服務端常用命令總結
Linux檔案處理命令
1.Linux返回上一級目錄的命令
cd .. 返回上一級目錄
cd ../.. 返回上兩級目錄
cd或cd ~ 返回home目錄
cd - 目錄名 返回指定目錄
pwd命令格式: pwd 功能:顯示出當前工作目錄的絕對路徑。
2.檔案解、壓縮
壓縮打包命令:tar -zcvf /data/wwwroot/###.tar.gz 目標資料夾名
將abc資料夾打包壓縮為abc.tar.gz:tar -zcvf /data/wwwroot/abc.tar.gz abc
解壓命令:tar -xzvf file.tar.gz
將abc.tar.gz解壓 tar -xzvf abc.tar.gz
zip/unzip命令
格式:zip 壓縮檔案.zip 目錄或檔案
功能:將目錄或檔案壓縮成zip格式。
常用選項:
-r 遞迴處理,將指定目錄下的所有檔案和子目錄一併處理。
3.目錄檔案處理命令
ls命令格式:ls [選項] [目錄或檔案]
功能:對於目錄,列出該目錄下的所有子目錄與檔案;對於檔案,列出檔名以及其他資訊。
常用選項:
-a :列出目錄下的所有檔案,包括以 . 開頭的隱含檔案。
-d :將目錄像檔案一樣顯示,而不是顯示其他檔案。
ls -l filepath 第五列為檔案位元組數
-rw-rw-rw- 1 test test181238643 12月 2 2018 /home/test/Downloads/jdk-8u60-linux-x64.tar.gz
ls -h filepath h表示human, 加-h引數得到人好讀的檔案大小
[[email protected]*******]$ ls -lh ~/Downloads/jdk-8u60-linux-x64.tar.gz
-rw-rw-rw- 1 test test 173M 12月 2 2018 /home/test /Downloads/jdk-8u60-linux-x64.tar.gz
ll 檔名 檢視一個檔案的詳細資訊
ll test/ 檢視test檔案下詳細資訊 ll顯示當前檔案下詳細資訊
mkdir命令格式:mkdir [選項] dirname…
功能:mkdir命令用來建立目錄。
常用選項:
-p –parents 可以是一個路徑名稱。
mkdir –p 遞迴建立目錄
例如:mkdir -p /tmp/a/b 在目錄/tmp下遞迴建立a目錄,並在a目錄下建立b目錄
rmdir 刪除空目錄
cp命令格式:cp [選項] 原始檔或目錄 目標檔案或目錄
功能:複製檔案或目錄。
常用選項:
-f –force 強行復制檔案或目錄,不論檔案或目錄是否已經存在。
-d 複製時保留檔案連結。
cp 複製檔案到某個目錄下
cp –r 複製目錄
cp –p 保留檔案屬性
將檔案複製到多個目錄中
cp /path/to/file /usr/dir1
cp /path/to/file /var/dir2
cp /path/to/file /nas/dir3
可以通過一句命令實現:echo /usr/dir1 /var/dir2 /nas/dir3 | xargs -n 1 cp -v /path/to/file
mv命令格式:mv [選項] 原始檔或目錄 目標檔案或目錄
功能:mv命令對檔案或目錄重新命名,或者將檔案從一個目錄移到另一個目錄中。
常用選項:
-f force 強制的意思,如果目標檔案已經存在,不會詢問而直接覆蓋。
-i 若目標檔案(destination)已經存在時,就會詢問是否覆蓋。
rm命令刪除檔案或目錄:rm /path/to/file.log
rm –r 刪除目錄
rm –f 強制執行
cat/tac命令格式:cat [選項] [檔案];cat test.log
功能:檢視目標檔案的內容。
常用選項:
-b 對非空輸出行編號。
-n 對輸出的所有行編號。
-s 不輸出多行空行。
du命令:du -b filepath 引數-b表示以位元組計數,du -h filepath直接得出人好識別的檔案大小
功能:顯示檔案大小
[[email protected]*******]$ du -b log
2768430 log
[[email protected]*******]$ du -h log
2.7M log
Linux許可權管理
Linux的檔案和目錄有以下三種方式:r 、w 、x:可讀,可寫 、可執行
r-可讀(read)
w-可寫(write)
x-可執行(execute)
Linux的檔案和目錄又可以有四個所有者概念:
a、u、g 、o: 所有人、所有者 、所屬組 、其他人
u:所有者
g:所屬組
o:其他人
a:all(所有人)
舉個例子說明一下
如上圖所示,對於檔案test.txt,檔案所有者有讀寫許可權,檔案所屬組和其他人就很只有讀的許可權。
假如現在修改檔案的許可權,修改為所有者只有讀的許可權,所屬組有讀和寫的許可權,其他人什麼許可權都沒有。
一般寫法:輸入chmod u-w,g+x,o-r test.txt
日常寫法:chmod 460 test.txt
在linux許可權管理中,r對應4,w對應2,x對應1,所以460=r-- + rw- + --- =4+(4+2)+0=460
假如現在再次修改許可權,讓所有用人都有執行許可權
chmod a+x test.txt 或 chmod 571 test.txt
chown 改變檔案或目錄的所有者
格式:chown newUser 檔名
讓其他人擁有最高許可權的最佳做法是使用chown更改檔案的所有者。
// 同時改變檔案的所有者和所屬組
chown user:group 檔名
Linux伺服器效能檢視命令
1.top-Linux程序監控 top
top命令是Linux下常用的效能分析工具,能夠實時顯示系統中各個程序的資源佔用狀況,類似於Windows的工作管理員,顯示當前系統正在執行的程序的相關資訊,包括程序ID、記憶體佔用率、CPU佔用率等
2.vmstat – 虛擬記憶體統計
vmstat 命令用於顯示虛擬記憶體、核心執行緒、磁碟、系統程序、I/O 塊、中斷、CPU 活動 等的統計資訊。預設情況下, vmstat 命令在 Linux 系統下不可用,你需要安裝一個包含了 vmstat 程式的 sysstat 軟體包。命令格式的常見用法是:
# vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free inact active si so bi bo in cs us sy id wa st
1 0 0 810420 97380 70628 0 0 115 4 89 79 1 6 90 3 0
3.netstat-網路狀態統計
netstat -t/-u/-l/-r/-n【顯示網路相關資訊,-t:TCP協議,-u:UDP協議,-l:監聽,-r:路由,-n:顯示IP地址和埠號】
netstat -tlun【檢視本機監聽的埠】
netstat -an【檢視本機所有的網路】
netstat -rn【檢視本機路由表】
列出所有埠:netstat -a
列出所有的TCP埠:netstat -at
列出所有的UDP埠:netstat -au
列出所有處於監聽狀態的socket:netstat -l
列出所有監聽TCP埠的socket:netstat -lt
列出所有監聽UDP埠的socket:netstat -lu
找出程式執行的埠:netstat -ap | grep ssh
找出執行在指定埠的程序:netstat -an | grep ‘:80’
[email protected] network-scripts]# netstat -an
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 127.0.0.1:8005 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:8006 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:8009 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:8010 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:8081 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
...
4.利用程序來檢視
命令裡 ps -aux | grep xxx 是檢視某個程序或者服務是否存在。
kill可以關閉該服務
5.iotop-監控Linux磁碟I/O
iotop命令同樣也非常類似於top命令和Htop程式,不過它具有監控並顯示實時磁碟I/O和程序的統計功能。在查詢具體程序和大量使用磁碟讀寫程序的時候,這個工具就非常有用。
# iotop
Linux檢視日誌常用命令
1.檢視日誌常用命令
tail:
-n 是顯示行號;相當於nl命令;例子如下:
tail -100f test.log 實時監控100行日誌
tail -n 10 test.log 查詢日誌尾部最後10行的日誌;
tail -n +10 test.log 查詢10行之後的所有日誌;
head:
跟tail是相反的,tail是看後多少行日誌;例子如下:
head -n 10 test.log 查詢日誌檔案中的頭10行日誌;
head -n -10 test.log 查詢日誌檔案除了最後10行的其他所有日誌;
cat:
tac是倒序檢視,是cat單詞反寫;例子如下:
cat -n test.log |grep "debug" 查詢關鍵字的日誌
cat filename 一次顯示整個檔案
2. 應用場景一:按行號檢視---過濾出關鍵字附近的日誌
1)cat -n test.log |grep "debug" 得到關鍵日誌的行號
2)cat -n test.log |tail -n +92|head -n 20 選擇關鍵字所在的中間一行. 然後檢視這個關鍵字前10行和後10行的日誌:
tail -n +92表示查詢92行之後的日誌
head -n 20 則表示在前面的查詢結果裡再查前20條記錄
3. 應用場景二:根據日期查詢日誌
sed -n '/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p' test.log
特別說明:上面的兩個日期必須是日誌中打印出來的日誌,否則無效;
先 grep '2014-12-17 16:17:20' test.log 來確定日誌中是否有該 時間點
4.應用場景三:日誌內容特別多,列印在螢幕上不方便檢視
(1)使用more和less命令,
如: cat -n test.log |grep "debug" |more 這樣就分頁列印了,通過點選空格鍵翻頁
(2)使用 >xxx.txt 將其儲存到檔案中,到時可以拉下這個檔案分析
如:cat -n test.log |grep "debug" >debug.txt
Linux系統根目錄下各個目錄的作用
/bin 二進位制可執行命令。該目錄下存放著普通使用者的命令
/dev 系統的裝置檔案,即裝置的驅動程式
/home 存放使用者檔案的主目錄,使用者資料
/lib 存放著和系統執行相關的庫檔案
/mnt 存放臨時的對映檔案,通常是一些用來安裝其他裝置的子目錄
/boot 存放啟動linux的核心檔案
/media 存放著可移除的裝置,比如軟盤,光碟
/misc 儲存著一些特殊的字元的定義
/net 存放著和網路相關的一些檔案
/proc 存放著使用者與核心的互動資訊
/sbin 系統的管理命令,這裡存放的是系統管理員使用的程式
/srv 系統啟動服務時可以訪問的資料庫目錄
/tmp 臨時檔案,重啟後自動清空
/var 存放系統產生的經常變化的檔案
/etc 系統所有的配置檔案都在這個目錄中
/opt (option : 自由選擇)主要給原始碼安裝軟體時選擇的安裝目錄位置
/root 超級使用者的目錄
/selinux 主要用來加固作業系統,提高系統的安全性
/sys 管理裝置檔案
/usr 最大的目錄,存放著應用程式和檔案
/lost-found 這個目錄平時是空的,當系統非正常關機時在操作的檔案便會儲存在這裡