目錄
wget [參數] [URL地址]
-a, –append-output=FILE 把記錄追加到FILE檔案中
-q, –quiet 安靜模式(沒有輸出)
-t, –tries=NUMBER 設定最大嘗試鏈接次數(0 表示無限制).
-Q, –quota=NUMBER 設定下載的容量限制
$ wget -r -np -nd http://example.com/packages/
# 這條命令可以下載 http://example.com 網站上 packages 目錄中的所有檔案。其中,-np 的作用是不遍歷父目錄,-nd 表示不在本機重新建立目錄結構。
$ wget -r -np -nd --accept=iso http://example.com/centos-5/i386/
#與上一條命令相似,但多加了一個 --accept=iso 選項,這指示 wget 僅下載 i386 目錄中所有擴充套件名爲 iso 的檔案。你也可以指定多個擴充套件名,只需用逗號分隔即可。
$ wget -i filename.txt
#批次下載的情形,把所有需要下載檔案的地址放到 filename.txt 中,然後 wget 就會自動爲你下載所有檔案
$ wget -c http://example.com/really-big-file.iso #這裏所指定的 -c 選項的作用爲斷點續傳。
$ wget -O wordpress.zip http://www.linuxde.net/download.aspx?id=1080 #指定輸出檔名,-o指定一個日誌檔案
$ wget --limit-rate=300k http://www.linuxde.net/testfile.zip # wget限速下載
$ wget -b http://www.linuxde.net/testfile.zip # 使用wget後臺下載
$ wget --input-file=ftp://ftp.lfs-matrix.net/pub/lfs/lfs-packages/7.7-systemd/ --continue --directory-prefix=/root/toot/ #批次下載檔案到/root/toot/
-c 建立新的文件
-v 顯示詳細的tar處理的檔案資訊
-f 要操作的檔名
-r 把要增加的檔案追加在壓縮檔案的末尾
-t 列出歸檔檔案中包含的檔案
-x 解壓檔案
-A 合併多個tar檔案
-u 控制只新增出現改動的同名檔案
-d 將歸檔中的檔案與檔案系統中的檔案做比較,用來確定是否需要建立新的歸檔檔案
-z 以gzip格式壓縮/解壓縮 (file.tar.gz或者file.tgz)
-j 以bzip2格式壓縮/解壓縮(file.tar.bz2)
--lzma 以lzma的格式壓縮 (file.tar.lzma)
-a 讓tar根據擴充套件名自動選擇壓縮演算法(或者使用--auto-compress)
例如:
$ tar -cvf sysconfig.tar /etc/sysconfig/ #將/etc/sysconfig/目錄下的檔案打包成sysconfig.tar,並且放在當前目錄中
$ tar -rvf sysconfig.tar /etc/sysconfig/ #將/etc/sysconfig/目錄下的檔案新增到檔案sysconfig.tar檔案末尾
$ tar -tvf sysconfig.tar #檢視壓縮檔案sysconfig.tar檔案裏面的內容參數
$ tar -xvf sysconfig.tar #將壓縮檔案sysconfig.tar檔案解壓到當前資料夾內,使用 -C可指定檔案提取到哪個目錄
$ tar -Af file1.tar file2.tar #合併file2.tar的內容到file1.tar中
$ tar --delete --file archive.tar filea #刪除archive.tar中的filea
$ tar -cf arch.tar * --exclude "*.txt" #歸檔過程中排出所有的txt檔案
$ tar -czvf sysconfig.tar.gz /etc/sysconfig/ #將目錄/etc/sysconfig/打包成一個tar檔案包,通過使用-z參數來呼叫gzip程式,對目錄/etc/sysconfig/進行壓縮,壓縮成檔案sysconfig.tar.gz,並且將壓縮成的檔案放在當前資料夾內
$ tar -xzvf sysconfig.tar.gz #上一個檔案的解壓縮
gzip只能壓縮檔案 , 不能壓縮目錄 ,後綴名爲.gz , 而且不保留原檔案,解壓使用gzip –d或者 gunzip 。
bzip2同gzip,壓縮效率會更高,但耗時也更長,使用bunzip2來解壓;lzma同理,解壓爲unlzma。
gzip [參數] [檔案或者目錄]
-a 使用ASCII文字模式。
-c 把壓縮後的檔案輸出到標準輸出裝置,不去變動原始檔案。
-d 解開壓縮檔案
-r 遞回處理,將指定目錄下的所有檔案及子目錄一併處理。
-l 列出壓縮檔案的相關資訊。
-q 不顯示警告資訊。
-v 顯示指令執行過程
-V 顯示版本資訊。
-num 用指定的數位num調整壓縮的速度,-1或--fast表示最快壓縮方法(低壓縮比),-9或--best表示最慢壓縮方法(高壓縮比)。系統預設值爲6。
例如:
$ gzip -l test.tar.gz #檢視test.tar.gz內容,但不進行解壓
$ gzip -dv * #將當前目錄下的每個壓縮的檔案解壓,並列出詳細資訊
$ gzip -rv test # 遞回的壓縮目錄
$ zcat test.gz #讀取gzip格式檔案
ssh服務是一個守護行程(demon),系統後臺監聽用戶端的連線,ssh伺服器端的進程名爲sshd,負責實時監聽用戶端的請求(IP 22埠),包括公共祕鑰等交換等資訊。
$ ssh [email protected] #連線遠端主機
$ ssh [email protected] 'echo user :$(whoami);echo OS: $(uname)' #在遠端主機執行命令,多個命令分號隔開
$ ssh [email protected] -t "sh /home/omd/ftl.sh" # 遠程登錄伺服器後執行某個指令碼
$ ssh user@remote_host 'echo' < file #在遠端主機上,echo列印出從stdin接收到的數據,但這些數據是從本地主體遠端傳遞到shell的stdin中的
>tar -czf -Localfolder | ssh 'tar -xzvf-' 將本地主機上的tar存檔檔案傳給遠端主機
$ netstat -a | grep ssh # 檢視ssh埠
$ ps -ef | grep ssh # 查詢sshd進程
$ ll /root/.ssh/known_hosts # 檢視ssh的祕鑰目錄
$ cat /etc/ssh/sshd_config # ssh的組態檔
通過FTP傳輸檔案可以使用ftp命令或者lftp命令;通過ssh傳輸檔案可以使用scp或者sftp。rsync可以實現系統間的檔案同步。
ls:列出遠端機的當前目錄
cd:在遠端機上改變工作目錄
lcd:在本地機上改變工作目錄
get 檔名:將檔案下載到本地主機的當前目錄下
put 檔名:將檔案從當前目錄上傳到遠端主機
例如:
$ sftp [email protected] #登陸後使用get命令下載即可
$ scp user@remotehost:/home/path/filename filename #將遠端主機中的檔案瀆職到當前目錄下並使用給定的檔名
$ scp -r /home/user user@remotehost:/home/backups #將目錄/home/user遞回複製到遠端主機中
(使用-p能夠保留檔案的許可權和模式)
lsof:列出所有開啓的檔案,輸出資訊包括:COMMAND:進程的名稱;PID:進程識別符號;PPID:父進程識別符號(需要指定-R參數);USER:進程所有者;PGID:進程所屬組;FD:檔案描述符,應用程式通過檔案描述符識別該檔案。;DEVICE:指定磁碟的名稱;SIZE:檔案的大小;NODE:索引節點(檔案在磁碟上的標識);NAME:開啓檔案的確切名稱
$ lsof #列出所有開啓的檔案
$ lsof /filepath/file # 檢視誰正在使用某個檔案
$ lsof +D /filepath/filepath2/ #遞回檢視某個目錄的檔案資訊,對應目錄下的所有子目錄和檔案都會被列出
$ lsof | grep '/filepath/filepath2/' #遍歷檢視某個目錄的所有檔案資訊 的方法
$ lsof -u username # 列出某個使用者開啓的檔案資訊
$ lsof -c mysql # 列出某個程式所開啓的檔案資訊(同lsof | grep mysql)
$ lsof -c mysql -c apache # 列出多個程式多開啓的檔案資訊
$ lsof -u ^root # 列出除了某個使用者外的被開啓的檔案資訊
$ lsof -p 123,456,789 # 列出多個進程號對應的檔案資訊
$ lsof -i tcp # 列出所有tcp 網路連線資訊
$ lsof -i :3306 # 列出誰在使用某個埠
$ lsof -i tcp:80 # 列出誰在使用特定的tcp埠
$ lsof -a -u test -i # 列出某個使用者的所有活躍的網路埠
$ lsof -i | grep ":[0-9a-z] +->" -o | grep ":[0-9a-z] +" -o | sort | uniq #列出主機當前開放的埠
netstat:用來列印Linux中網路系統的狀態資訊,可讓你得知整個Linux系統的網路情況。
$ netstat -a #列出所有埠
$ netstat -at #列出所有tcp埠
$ netstat -au #列出所有udp埠
$ netstat -l #只顯示監聽埠
$ netstat -pt #在netstat輸出中顯示 PID 和進程名稱
$ netstat -r #顯示核心路由資訊(-rn顯示數位格式)
$ netstat -ap | grep ssh #找出程式執行的埠
$ netstat -an | grep ':80' #找出執行在指定埠的進程
$ netstat -i #顯示網路介面列表
$ netstat -anpo | grep "php-cgi" | wc -l #檢視phpcgi進程數,如果接近預設值,說明不夠用,需要增加
$ netstat -ntu | grep :80 | awk '{print $5}' | cut -d: -f1 | awk '{++ip[$1]} END {for(i in ip) print ip[i],"\t",i}' | sort -nr #檢視連線某伺服器端口最多的的IP地址
du(Disk Usage):顯示每個檔案和目錄的磁碟使用空間
-a #遞回的輸出指定目錄或者多個目錄中所有檔案的統計結果。
-b #使用特定單位列印,以位元組byte爲單位。
-c #顯示目錄中檔案的大小,同時也顯示總和;單位KB。
-s #僅顯示目錄的總值,單位KB。
-h #使用合適的單位顯示
-S #顯示個別目錄的大小時,並不含其子目錄的大小。
--exclude和--exclude-from:排除部分檔案
--max-depth :限制du應該遍歷多少層子目錄
$ du -sh /home/master/documents #檢視某個目錄下檔案的大小
$ du -ak /home/slynxc | sort -nrk 1 | head #顯示所有檔案的大小和目錄的大小,對第一列(檔案大小)逆序排序,然後輸出前10個
df(Disk Free):顯示磁碟分割區上可以使用的磁碟空間
-a 全部檔案系統列表
-h 方便閱讀方式顯示
-l 只顯示本地檔案系統
$ df /home #指定一個資料夾,檢視該資料夾所在磁碟的使用情況
$ df -T #顯示出每個檔案系統的型別
free:檢視系統記憶體的使用狀態,系統已用及空餘實體記憶體量、交換分割區使用情況(swap memory)、內核佔用的快取、及共用記憶體。使用同上,-h可顯示易讀的格式。
ps:用於報告當前系統的進程狀態。可以搭配kill指令隨時中斷、刪除不必要的程式。
-e、-ax:輸出系統中執行的所有進程資訊(every,all)
-f:顯示多列資訊,UID,PPIP,C與STIME欄位。
-u:選擇使用者所擁有進程數
-l:長格式列表
-a:顯示現行終端機下的所有程式
e:顯示每個程式所使用的環境變數。
f:建立進程的樹狀檢視,顯示出任務之間的父子關係
-o:指定顯示那些數據
--sort:對輸出排序,+表示升序-表示降序
$ ps -ef #顯示所有當前進程
$ ps aux #顯示所有當前進程
$ ps -ax #顯示所有當前進程
$ ps -u pungki #根據使用者過濾進程
$ ps -aux --sort -pcpu | less #根據 CPU 使用來升序排序
$ ps -aux --sort -pmem | less #根據使用者過濾進程
$ ps -aux --sort -pcpu,+pmem | head -n 10 #查詢全10個使用cpu和記憶體最高的應用
$ ps -C getty #通過進程名和PID過濾
$ ps -f -C getty #帶格式顯示的,通過進程名和PID過濾
$ ps -L 1213 #根據執行緒來過濾進程
$ ps -axjf(或pstree) #樹形顯示進程
$ ps -eo pid,user,args # 顯示安全資訊
$ ps -U root -u root u #格式化輸出 root 使用者(真實的或有效的UID)建立的進程
top:實時顯示系統中各個進程的資源佔用情況。
-b:以批次處理模式操作;
-c:顯示完整的治命令;
-d:螢幕重新整理間隔時間;
-I:忽略失效過程;
-s:保密模式;
-S:累積模式;
-u [使用者名稱]:指定使用者名稱;
-p [進程號]:指定進程;
-n [次數]:回圈顯示的次數。
pgrep是linux中常用的通過程式名字來查詢進程的命令。
-l 同時顯示進程名和PID
-o 當匹配多個進程時,顯示進程號最小的那個
-n 當匹配多個進程時,顯示進程號最大的那個
-u 過濾使用者
-c 返回匹配的進程數量
pgrep相當於 $ ps -e o pid,cmd | awk ‘{print 1,2}’ | grep keyword
kill -9 pid :按照pid殺死進程
其他:
$ host google.com #列出某個域名下的所有ip地址
$ ifconfig #設定及顯示網路介面、子網掩碼等資訊
$ nslookup #完成名字與ip地址之間的相互對映
$ route #顯示路由表
$ ping 192.168.0.1 #檢查主機是否可達
#(返回資訊中的rtt:round trip time每個分組的往返資訊,ttl:time of live生存時間,seq:序列號)
$ which ls # which命令用來查詢某個命令的位置。
$ whereis ls #whereis 不僅能返回命令的路徑,還能列印其對應的命令手冊的位置以及命令原始碼的路徑
$ whatis ls #會輸出作爲參數的命令的簡短描述資訊