天天看點

15個超常用的Linux指令

Contents

    • 1. sudo
    • 2. apt&apt-get
    • 3. wget
    • 4. mkdir
    • 5. cp&rm&mv
    • 6. tar/zip等壓縮/解壓縮相關
    • 7. touch&sh&&chmod
    • 8. ls
    • 9. cat
    • 10. watch
    • 11. ps&top
    • 12. vim
    • 13. cd
    • 14. pwd
    • 15. clear&reset
    • Reference

因為總是忘記,幹脆自己寫下來記憶更深,不然每次都要查,太費時間了…

其實,也可以用如下的help格式調出指令格式或man也行,不過前提也是要記住指令名呀。

[相應指令名] --help			#列出想查詢指令的參數及其功能
man [相應指令名]				#檢視基本指令
           

1. sudo

一般是與系統管理者權限相關,作為需要權限指令的字首,當系統檢測到該指令時,會提示使用者提供目前使用者名所對應的密碼,以确定你是否有權限進入下一步的操作,一般如果連接配接伺服器用自己的使用者名密碼登入時是沒有相應權限的。

另外,sudo提供了豐富的日志,詳細地記錄了每個使用者幹了什麼。它能夠将日志傳到中心主機或者日志伺服器。sudo使用時間戳檔案來執行類似的“檢票”系統。當使用者調用sudo并且輸入它的密碼時,使用者獲得了一張存活期為5分鐘的票(這個值可以在編譯的時候改變)。(注:部分來自百度百科https://baike.baidu.com/item/sudo/7337623?fr=aladdin)

2. apt&apt-get

一個快速、實用、高效的方法來安裝軟體包的指令。

下列指令後加包名

sudo apt-get update 	#更新源
sudo apt-get upgrade    #更新已安裝的包
sudo apt-get install [packagename] 	 #安裝包
sudo apt-get reinstall [packagename] #重新安裝包
sudo apt-get -f install	#修複損壞的軟體包,嘗試解除安裝出錯的包,重新安裝正确版本(-f放在 install 前或後是一樣的效果)
sudo apt-get remove [packagename] #删除軟體包而保留軟體的配置檔案
sudo apt-get purge [packagename]  #同時清除軟體包和軟體的配置檔案
sudo apt-get build-dep [packagename] #安裝相關的編譯環境
apt-get source [packagename] #下載下傳包的源代碼
sudo apt-get clean或sudo apt-get autoclean #清理下載下傳檔案的存檔且隻清理過時的包
sudo apt-get check 		#檢查是否有損壞的依賴
           

apt&apt-get差別什麼的詳見https://blog.csdn.net/maizousidemao/article/details/79859669

3. wget

wget 是一個從網絡上自動下載下傳檔案的自由工具,支援通過 HTTP、HTTPS、FTP 三個最常見的 TCP/IP協定 下載下傳,并可以使用 HTTP 代理。“wget” 這個名稱來源于 “World Wide Web” 與 “get” 的結合。

自動下載下傳,是指 wget 可以在使用者退出系統的之後在繼續背景執行,直到下載下傳任務完成。

最重要的是,wget支援斷點傳輸,即使很大的檔案下載下傳失敗後,也可以用wget-c恢複下載下傳。

下面的參數後要空一格加入想下載下傳的URL

wget -i [URLlist.txt] #下載下傳多個檔案,但需先儲存一份包含下載下傳連結的檔案
wget -b [URL]   #-b即background啟動後轉入背景執行
wget -t n [URL] #-t即tries,n即number->設定最大嘗試連結的次數(0表示無限制)
wget -c [URL]   #-c即continue斷點續傳,超級好用!當然在這之前要先用過wget [URL]
wget -Y [URL]   #-Y即proxy=on/off 打開或關閉代理
wget –limit-rate=300k [URL] #限速下載下傳,根據網絡情況自行調整限速
wget ftp-url [URL] #使用wget匿名ftp下載下傳
wget --ftp-user=USERNAME --ftp-password=PASSWORD [URL]
#使用wget使用者名和密碼認證的ftp下載下傳
           

4. mkdir

mkdir用來建立檔案夾

mkdir [dirname] #目前目錄下建立一個檔案夾
mkdir -p [dirname] #-p即parents,可建立多級目錄,即一次可以建立多個目錄,但要確定目錄名稱存在,如果目錄不存在的就新建立一個。
mkdir -m [dirname] #-m即mode,對建立目錄設定存取權限。也可以用chmod指令設定。
           

5. cp&rm&mv

cp(copy)即copy檔案到指定目錄,當然除了單純的複制之外,還可以建立連結檔案對比兩檔案的新舊而予以更新。一定要注意目前的目錄位置,然後準确定位到源目錄和目标目錄。

不帶參數的就是cp [source] [dest]

注:源檔案(source),目标檔案(destination)

rm(remove)可以移除檔案或目錄。

mv(move) 能移動檔案或目錄還有更名。

cp -a [source] [dest] #複制檔案夾時使用,保留連結、檔案屬性,并遞歸地複制檔案夾
cp -r [source] [dest] #此時的目标檔案必須是檔案夾,遞歸複制所有檔案夾及檔案
cp -f [source] [dest] #覆寫已經存在的目标檔案而不提示(-f即force,謹慎使用)
cp -i [source] [dest] #覆寫前給出相應提示,互動式删除(推薦使用)
           
rm -rf -- -filename- [filename/dirname] #當某個檔案以-開頭,删除時應該這麼做
rm -rf ./-filename- [filename/dirname] #删除指定是某個目錄下的檔案
rmdir [dirname] #删除空檔案夾rmdir,如果要删除的目錄下有内容是無法删除的,非要删除的話那麼就需要用到rm -rf。 
rm -rf [filename/dirname]  #這是個非常危險的指令
           
mv [filename1] [filename2] #mv的改名功能 
mv -f [filename] [dir] #若目标檔案存在,會被覆寫  
mv -n [filename] [dir] #若目标檔案存在,不覆寫
mv -i [filename] [dir] #删除時有提示資訊
mv -u [filename] [dir] #若源檔案比目标檔案新,或者目标檔案丢失,則更新,否則不更新(更新移動)
           

這裡對mv和rm的使用一定要注意(尤其是rm -rf *),因為不像windows一樣垃圾進了資源回收筒,還能恢複,但要恢複也不是沒有辦法,隻是麻煩了點,還不一定能成功。

當然,對于誤删檔案還原可以分為兩種情況:

一是删除以後在程序存在删除資訊:程序PID依舊存在,可通過檢視删除時的PID進而恢複。

lsof | grep [deletefilename] 			#檢視删除的檔案程序是否還存在
cp /proc/[PID]/fd/1 /指定目錄/檔案名
           

二是删除以後程序都找不到,隻有借助于工具還原。

6. tar/zip等壓縮/解壓縮相關

tar 指令可以為檔案和目錄建立檔案。利用 tar 指令,可以把一大堆的檔案和目錄全部打包成一個檔案,這對于備份檔案或将幾個檔案組合成為一個檔案以便于網絡傳輸是非常有用的。注意,它必須配合參數使用。

#壓縮
tar -cvf [filename.tar] [dir]   #僅打包,不壓縮!-c表示建立新的文檔,-v顯示詳細的tar處理的檔案資訊,-f 即操作的檔案名
tar -zcvf [filename.tar.gz] [filesdir]   #打包dir後,以 gzip壓縮(-z表示調用gzip程式來壓縮檔案,壓縮後的檔案名稱以.gz結尾)
tar -jcvf [filename.tar.bz2] [filesdir]  #打包dir後,以 bzip2壓縮(-j表示調用bzip2程式來壓縮檔案,壓縮後的檔案名稱以.bz2結尾)
tar -rvf [filename.tar] [filesdir] #将指定目錄下的檔案添加到tar檔案中,-r 表示增加檔案,把要增加的檔案追加在壓縮檔案的末尾
tar –cZf [filename.tar.Z]  #打包dir後,以compress壓縮(-Z表示調用compress壓縮檔案,壓縮後的檔案名稱以.tar.Z結尾)
tar -tvf [filename.tar]    #檢視tar檔案裡面的内容,-t 表示檢視檔案中的内容
zip -r [filename.zip] ./*  #将目前目錄下的所有檔案和檔案夾全部壓縮成zip檔案,-r表示遞歸壓縮子目錄下所有檔案或用空格将想要壓縮的檔案或目錄個隔開
rar [filename.rar] [dir]   #壓縮成rar格式

#解壓
tar -xvf [filename.tar]      #将tar檔案解壓到目前目錄下,-x表示解壓檔案
tar -xzvf [filename.tar.gz]  #解壓tar.gz檔案到目前目錄下
tar -xjvf [filename.tar.bz2] #解壓tar.bz2檔案到目前目錄下
tar -xZvf [file.tar.Z]       #解壓tar.Z檔案到目前目錄下
unrar e [filename.rar]       #解壓rar檔案到目前目錄下
unzip [filename.zip]         #解壓zip檔案到目前目錄
unzip -o -d [filesdir] [filename.zip] #将zip檔案解壓到指定目錄下,-o表示不提示的情況下覆寫檔案,-d表示将檔案解壓縮到指定目錄下
           

7. touch&sh&&chmod

linux中touch指令不常用,一般在使用make的時候可能會用到,可用來修改檔案時間戳,或者建立一個不存在的檔案。

在linux中,shell腳本非常友善,關于sh腳本的編寫有以下這些說明:

#!/bin/sh	#開頭必須以這樣的形式開始,#!用來告知系統它後面的參數是用來執行該檔案的程式
chomd +x [yourfilename.sh]	#為sh腳本增加可執行的權限,使得可以用./[yourfilename.sh]執行該shell腳本
           

8. ls

ls可以列出檔案夾下檔案和檔案夾的相關資訊,也就是對于不同的檔案會顯示不同的顔色。

紅:不可執行檔案,如壓縮包

藍:檔案夾

綠:可執行檔案,如python檔案,sh檔案,run檔案等

ls [選項] [目錄或者檔案] #如果單用ls則對目前目錄下檔案相關資訊顯示
ls -a	#顯示目前目錄的所有檔案和目錄(包括隐藏的)
ls -l	#以清單的方式顯示檔案資訊
ls -s	#顯示檔案大小
ls -S	#對檔案大小排序顯示
           

9. cat

cat指令的用途是連接配接檔案或标準輸入并列印。這個指令常用來顯示檔案内容,或者将幾個檔案連接配接起來顯示,或者從标準輸入讀取内容并顯示。

cat [option] [filename] #如果單用cat則對指定檔案顯示
cat [filename] 		#一次顯示整個檔案
cat > [filename] 	#建立一個新檔案(不能編輯已有檔案)
cat [file1] [file2] > [file] #将兩個檔案合并為一個檔案
cat -n          	#對輸出的所有行編号,由1開始對所有輸出的行數編号
           

10. watch

watch可以幫助監測一個指令的運作結果,它是周期性地執行下個程式,并全面屏顯示執行結果,Ctrl+x可切換終端,Ctrl+g可退出watch。

watch [指令]	#參數預設預設每兩秒運作一下程式,多用于周期性執行指令/定時執行指令
watch -n 1 [指令]	#-n表示指定間隔時間,1表示每隔1秒顯示變化情況
watch -d [指令]	#-d即-diffiences表示高亮顯示變化區域,另:-d=cumulative會把變動過的地方都高亮顯示
watch -t [指令]	#-t可關閉watch指令在螢幕頂部的時間間隔、指令和時間的輸出
           

常用的watch指令如下:

watch -n 1 -d netstat -ant	#每隔一秒高亮顯示網絡連結數的變化情況
watch -n 1 -d 'pstree|grep http'	#每隔一秒高亮顯示http連結數的變化情況
watch 'netstat -an | grep:21 | \ grep<模拟攻擊客戶機的IP>| wc -l' 	#實時檢視模拟攻擊客戶機建立起來的連接配接數
watch -d 'ls -l|grep scf' 	#監測目前目錄中 scf' 的檔案的變化
watch -n 10 'cat /proc/loadavg'	#10秒一次輸出系統的平均負載
           

11. ps&top

ps即process status,用來列出系統中目前運作的哪些程序,還有程序運作的狀态以及哪些程序占用了過多的資源等。而top可以動态的顯示程序資訊。

ps辨別程序的5種狀态碼:

D 不可中斷 uninterruptible sleep (usually IO) :收到信号不喚醒和不可運作, 程序必須等待直到有中斷發生

R 運作 runnable (on run queue) :正在運作或在運作隊列中等待

S 中斷 sleeping :休眠中, 受阻, 在等待某個條件的形成或接受到信号

T 停止 traced or stopped :程序收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号後停止運作運作

Z 僵死 a defunct (”zombie”) process :程序已終止, 但程序描述符存在, 直到父程序調用wait4()系統調用後釋放

ps -e	#顯示所有程序
ps -a	#顯示同一終端下的所有程式
ps e	#顯示環境變量
ps -H	#顯示樹狀結構
ps -aux	#顯示所有包含其他使用者的行程 
ps -C [指令]	#列出指定指令的情況
ps -u root	#顯示指定使用者的資訊,此處顯示root的
ps -l	#将目前屬于您自己這次登入的 PID 與相關資訊列示出來
           

12. vim

vim編輯器是所有Unix及Linux系統下标準的編輯器(vim是vi的更新版),它基本上有3種狀态:

指令行模式(Command):控制螢幕光标的移動,字元、字或行的删除。

插入模式(Insert):在用vim進入指令行模式後,按 ‘i’ 鍵進入插入模式,能對文字進行删改,按 ‘Esc’ 鍵退出插入模式。

底行模式(Last line):在前兩個模式下按 ‘Esc’ 鍵進入底行模式,可将檔案儲存或退出vim,也可以設定編輯環境,如尋找字元串、列出行号等。(":wq"表示儲存并退出、":q!"表示不儲存之直接強制退出)

13. cd

cd(Change Directory)這個指令可以切換到指定目錄,但前提是目錄要正确。

絕對路徑:從根目錄開始定位,不管自己目前所在位置都可以進入到目标路徑。

相對路徑:根據自己目前所在定位。目前位置不一樣,絕對路徑就不一樣。

cd ~ #或者cd也行,回到home目錄
cd ..#回到目前目錄的上一級
cd desktop #回到桌面目錄下
           

14. pwd

pwd(Print Working Directory),即列印目前所在的工作路徑

15. clear&reset

clear	#重新整理螢幕,本質上隻是讓終端顯示頁向後翻了一頁,常用
reset	#完全重新整理終端螢幕,之前的終端輸入操作資訊将都會被清空,速度較慢,少用
           

Reference

https://www.cnblogs.com/peida/archive/2012/12/05/2803591.html

https://blog.csdn.net/Geroge_lmx/article/details/80552272

https://www.jianshu.com/p/57b2b1cc873b

https://www.jb51.net/article/120282.htm

https://blog.csdn.net/qq_40232872/article/details/79159753

https://www.cnblogs.com/xiaohaillong/p/5821952.html

https://www.cnblogs.com/peida/archive/2012/12/31/2840241.html

https://www.cnblogs.com/YuanYe1/p/5241232.html