# 本文整理了Linux(ubuntu16.04)上常用的大約幾十個命令,並講述了相關的操作細節:
# cd、pwd、ls、clear、mkdir、touch、rm、cp、mv、tree、chmod、find、grep、重定向>、ln 軟鏈接、硬鏈接 、壓縮zip tar 、exit 等等
----------------------------------------------------------------------------------------------------------------------------------
- 1.touch 如果文件不存在則創建,如果文件已存在不會創建(覆蓋)
- 2.mkdir 創建目錄 如果目錄和文件名重名:
-
- 先存在文件或目錄,再創建目錄 —— 報錯:文件已存在,無法創建
- 新建目錄的名稱不能與當前目錄中已有的目錄或文件同名
- 先存在目錄,再touch同名文件,則不會報錯,也不會創建(覆蓋)存在的目錄
- 可以遞歸創建目錄 mkdir 1/2/3/4/4 -p
- 遞歸創建(新建)的目錄和子目錄可以重名
- 先存在文件或目錄,再創建目錄 —— 報錯:文件已存在,無法創建
-
- 3.rm 刪除指定的文件名
- 如果指令后面接多個文件或目錄,則會刪除命令后所有文件的同時,提示:xxx不是文件;
- 如果在上述命令后增加選項 -r ,則會刪除命令后面指定的文件或文件夾,但是提示:XXX文件不存在。
- 提示:有報錯提示,但是不影響指令的執行
- -r 遞歸地刪除目錄下的內容,刪除文件夾時必須加此參數
- -f 強制刪除,忽略不存在的文件,無需提示
- -i 以進行交互式方式執行
- 5.查閱命令幫助信息:
- “command” --help # eg: rm --help
- man “command” # eg:man rm
- man是manual的縮寫,和其配套的還有b,f,j,k,enter鍵,空格鍵,q(退出),\word # word是要查找的字符串
- 6.cp 路徑/操作文件名 路徑/目標文件名
- 文件名->文件名:如果目標文件名已經存在,則會覆蓋,這個和touch不同
- 目錄->目錄:如果操作的是目錄名,則 操作的是該目錄內的所有內容
- 目錄->目錄:如果操作的是目錄名,則 后面需要加選項 -r
- 目錄->目錄:如果操作的是目錄名,則 后面必須也是一個目錄
- 目錄->目錄:如果目標路徑不存在,則 創建路徑(目錄)
- 文件名->目錄/文件名:目錄必須已經存在,否則報錯;
- -a 該選項通常在復制目錄時使用,它保留鏈接、文件屬性,並遞歸地復制目錄,簡單而言,保持文件原有屬性。
- -f 已經存在的目標文件而不提示
- -i 交互式復制,在覆蓋目標文件之前將給出提示要求用戶確認
- -r 若給出的源文件是目錄文件,則cp將遞歸復制該目錄下的所有子目錄和文件,目標文件必須為一個目錄名。
- -v 顯示拷貝進度
- 7.cd :切換目錄:
- 后面不接參數和選項,則 切換到當前用戶的主目錄
- cd . & cd .. & cd ~ & cd - ...
- 8.mv : 移動、重命名
- 操作路徑/文件名 -> 目標路徑/目標文件名
- 如果目標路徑存在,則 移動文件,並將路徑后面的最有一個/后的內容作為新的文件名
- 如果目標路徑不存在,則 報錯
- -i 確認交互方式操作,如果mv操作將導致對已存在的目標文件的覆蓋,系統會詢問是否重寫,要求用戶回答以避免誤覆蓋文件
- -f 禁止交互式操作,如有覆蓋也不會給出提示
- -v 顯示移動進度
- 9.重定向命令:> & >>
- Linux允許將命令執行結果重定向到一個文件,本應顯示在終端上的內容保存到指定文件中。
- 如:ls > test.txt ( test.txt 如果不存在,則創建,存在則覆蓋其內容 )
- 所謂重定向:修改了默認的輸出(顯示)方向
- 重定向可以用來合並文件
- > 先清空后添加
- >> 不清空,追加到文件的尾部
- 10.1.cat 查看文件內容,直接顯示到終端
- 10.2.more 分屏顯示
- 查看內容時,在信息過長無法在一屏上顯示時,會出現快速滾屏,使得用戶無法看清文件的內容,此時可以使用more命令,每次只顯示一頁,按下空格鍵可以顯示下一頁,按下q鍵退出顯示,按下h鍵可以獲取幫助
- 10.3.管道:|
- 一個命令的輸出可以通過管道做為另一個命令的輸入。
- ls -lh | more
- 11.軟連接、硬鏈接:ln
- 軟鏈接:軟鏈接不占用磁盤空間,源文件刪除則軟鏈接失效。
- 硬鏈接:硬鏈接只能鏈接普通文件,不能鏈接目錄。
- 硬鏈接格式:ln 源文件 鏈接文件
- 軟連接格式:ln -s 源文件 鏈接文件
- 注意:如果軟鏈接文件和源文件不在同一個目錄,源文件要使用絕對路徑,不能使用相對路徑。
- 涉及到在當前的文件夾查找文件名,如果相對路徑,之后又把文件移動到原來的位置還是可以用的。
- 修改軟連接打開的文件的時候,對應的文件也會修改。
- 修改硬鏈接打開的文件的時候,對應的原文件也會修改。
- 修改源文件后,通過軟連接、硬鏈接打開都可以看到對應修改后的文件。
- 修改源文件后,對應的多個軟、硬鏈接的文件都會跟着改變。
- 硬鏈接是同一個文件內容,多個不同文件名,執行ll會顯示。
- 12.查看或者合並文件內容:cat
- 相對路徑查看
- 絕對路徑查看
- 合並:如:cat 1.txt 2.txt > 1_2.txt
- 13.文本搜索:grep
- grep一般格式為:grep [-選項] ‘搜索內容字符串’ 文件名
- -v 顯示不包含匹配文本的所有行(相當於求反)
- -n 顯示匹配行及行號
- -i 忽略大小寫
- grep搜索內容串可以是正則表達式
- 14.查找文件:find
- find -name "*.txt" : 查找當前目錄下以.txt結尾的文件
- find -name /home/python "[0-9]" : 查找python目錄下的單個數字的文件夾或者文件
- find -size +50k -size -5M : 查找當前目錄下文件大小在2k~5M的文件,注意這里k小寫;M大寫。
- find ./ -perm 777 查找當前目錄下權限為777的文件或目錄
- 15.歸檔管理:tar
- tar使用格式 tar [參數] 打包文件名 文件
- -c 生成檔案文件,創建打包文件
- -v 列出歸檔解檔的詳細過程,顯示進度
- -f 指定檔案文件名稱,f后面一定是.tar文件,所以必須放選項最后
- -t 列出檔案中包含的文件
- -x 解開檔案文件
- 注意: 除了f需要放在參數的最后,其它參數的順序任意。
- tar -cvf test.tar * : 將當前目錄內所有文件打包成文件名為test.tar
- tar -xvf test.tar : 解壓剛才的文件。
16.1. 文件壓縮解壓:gzip
- tar與gzip命令結合使用實現文件打包、壓縮。 tar只負責打包文件,但不壓縮,用gzip壓縮tar打包后的文件,其擴展名一般用xxxx.tar.gz。
- gzip格式:gzip [選項] 被壓縮文件
- -d 解壓
- -r 壓縮所有子目錄
- gzip -r test.tar test.tar.gz
- 可以簡寫:gzip test.tar
- gzip -d test.tar.gz
- 解壓縮,注意喲:下面的都是tar命令
- tar這個命令並沒有壓縮的功能,它只是一個打包的命令,但是在tar命令中增加一個選項(-z)可以調用gzip實現了一個壓縮的功能,實行一個先打包后壓縮的過程。
- 壓縮用法:tar cvzf 壓縮包包名 文件1 文件2 ...
- -z :指定壓縮包的格式為:file.tar.gz
- tar -zcvf test.tar.gz * : 將當前路徑下的所有文件以文件夾打包並壓縮到test.tar.gz文件中
- 解壓格式: tar zxvf 壓縮包包名
- tar -zxvf test.tar.gz : 解壓到當前路徑下
- 解壓到指定目錄:-C (大寫字母“C”)
- tar -zxvf test.tar.gz -C /home/python/Desktop : 解壓到桌面
16.2. 文件壓縮解壓:bzip2
- 壓縮用法:tar -jcvf 壓縮包包名 文件...(tar jcvf bk.tar.bz2 *.c)
- 解壓用法:tar -jxvf 壓縮包包名 (tar jxvf bk.tar.bz2)
- 總之,和上面用法在於 z --> j ,換一個選項
16.3 文件壓縮解壓:zip、unzip
- 通過zip壓縮文件的目標文件不需要指定擴展名,默認擴展名為zip。
- 壓縮文件:zip [-r] 目標文件(沒有擴展名) 源文件
- 解壓文件:unzip -d 解壓后目錄文件 壓縮文件
- 目錄如果不存在會自動創建,如果放在當前目錄,則會出現各種交互式提示
- 17.查看命令位置:which
- 如果找到就顯示這個命令的路徑,否則不顯示
- 18.修改文件權限:chmod
- 字母法VS數字法
- 字母法:chmod u/g/o/a +/-/= rwx 文件
- u user 表示該文件的所有者
- g group 表示與該文件的所有者屬於同一組( group )者,即用戶組
- o other 表示其他以外的人
- a all 表示這三者皆是
-
- 增加權限
-
- 撤銷權限
- = 設定權限
- r read 表示可讀取,對於一個目錄,如果沒有r權限,那么就意味着不能通過ls查看這個目錄的內容。
- w write 表示可寫入,對於一個目錄,如果沒有w權限,那么就意味着不能在目錄下創建新的文件。
- x excute 表示可執行,對於一個目錄,如果沒有x權限,那么就意味着不能通過cd進入這個目錄。
- eg: chmod u+r,g-w,o=wrx 1.py : 對於1.py文件,user
- eg: chmod u-w,g+r,o= 1.py
- r 讀取權限,數字代號為 "4"
- w 寫入權限,數字代號為 "2"
- x 執行權限,數字代號為 "1"
- - 不具任何權限,數字代號為 "0"
- chmod u=rwx,g=rx,o=r filename 就等同於:chmod u=7,g=5,o=4 filename
- 注意:如果想遞歸所有目錄加上相同權限,需要加上參數“ -R ”。 如:chmod 777 test/ -R 遞歸 test 目錄下所有文件加 777 權限
19.1.切換到管理員賬號root
- $ 表示普通用戶
- # 表示管理員賬戶
- whoami
- sudo -s
19.2.設置用戶密碼:passwd
- 在Unix/Linux中,超級用戶可以使用passwd命令為普通用戶設置或修改用戶密碼。用戶也可以直接使用該命令來修改自己的密碼,而無需在命令后面使用用戶名。
19.3. 退出登錄賬戶: exit
- 如果是圖形界面,退出當前終端;
- 如果是使用ssh遠程登錄,退出登陸賬戶;
- 如果是切換后的登陸用戶,退出則返回上一個登陸賬號。
19.4.查看登錄用戶:who
- who命令用於查看當前所有登錄系統的用戶信息。
- -q或--count : 只顯示用戶的登錄賬號和登錄用戶的數量
- -u或--heading : 顯示列標題; 這個也是默認模式
- 20.關機重啟:reboot、shutdown、init
- reboot 重新啟動操作系統
- shutdown –r now : 重新啟動操作系統,shutdown會給別的用戶提示
- shutdown -h now : 立刻關機,其中now相當於時間為0的狀態
- shutdown -h 24:12 : 系統在今天的24:12 會關機
- shutdown -h +10 : 系統再過十分鍾后自動關機