Linux常用命令精講
1.1 Linux命令基礎
1.Linux命令(由開發人員編寫的軟件提供)
? 用於實現某一類功能的指令或程序
? 命令的執行依賴於解釋器程序(例如:/bin/bash)
2.Linux命令分類
- 內部命令(屬於Shell解釋器的一部分):由Shell(用於實現用戶和內核的交互)自帶
-
外部命令(獨立於Shell解釋器之外的程序):用戶自行安裝或發行版自帶GNU軟件提供
判斷內部或外名命令:type
例:
type echo //類型為內部命令type ps //類型為外部命令
3.Linux命令的格式
命令字 [ 選項 ] 參數
詳解:
命令字:具體使用命令 選項:具體調節命令字的作用;短格式-(簡單、不易懂)、長格式--(易懂、不好記)
例:
rm -rf //-rf就為短格式選項,多個短格式選項可寫在一起
rm --force //--force為長格式選項,多個長格式不可組合書寫
參數:命令字的操作對象,給誰用
4.Linux常用快捷鍵
Tab:自動補齊
反斜杠"\":強制換行
Ctrl+U:刪除光標到行首
Ctrl+K:刪除光標到行尾
Ctrl+A:跳轉到行首
Ctrl+E:跳轉到行尾
Ctrl+L或clear:清楚屏幕內容
Ctrl+C:中斷當前操作
Shift+PgUP:往上翻頁
Shift+PgDOwn:往下翻頁
5.Linux命令幫助獲取
內部命令:help 內部命令 //查看Bash內部命令的幫助信息
通用:man 命令
- 使用"↑"、"↓"方向鍵滾動文本
- 使用Page Up和Page Down鍵翻頁
- 按Q或q鍵退出閱讀環境、按"/"鍵查找內容;n跳轉到下一個查找內容、N跳轉到上一個查找內容
例:
help echo //內部命令幫助獲取
ls --help //外部命令幫助獲取
man ls 或 man echo //通用命令在線手冊獲取 man ls | col -b >ls_man.txt //將ls手冊導出為ls_man.txt文件;col -b去除特殊字符
1.2 ls和du命令
1.ls(list)命令詳解
ls [選項] 目錄或文件位置
選項:
- -l:(長格式)列表方式顯示目錄內容,顯示權限、時間等信息
- -a:顯示所有(All)子目錄和文件的信息
- -A:與-a選項的作用基本類型,但"."".."兩個特殊隱藏目錄不顯示
- -d:顯示目錄(Directory)本身的屬性,而不是顯示目錄中的內容
- -h:以更人性化(Human)的方式顯示出目錄或文件的大小,需結合-l選項
- -R:以遞歸(Recursive)的方式顯示指定目錄及其子目錄中的所有內容
例:
ls -lA /etc/ //以長格式顯示/etc/下所有隱藏文件或目錄
2.du(disk usage)命令詳解
用於統計指定目錄(或文件)所占用磁盤空間的大小
du [選項] 文件或目錄位置
選項:
? -a:統計磁盤空間占用時包括所有的文件,而不僅僅只統計目錄
? -h:以更人性化的方式(默認以KB計數,但不顯示單位)顯示結果
? -s:只統計所占空間總的(Summary)大小,而不是統計每個子目錄、文件的大小
du -sh /root/ //統計/etc/目錄大小
1.3 mkdir和touch命令
1.touch命令詳解
創建空文件,用於測試;當目錄文件已存在時,更新該文件的時間標記
touch 文件位置及名稱
例:
touch /tmp/a.doc //在/tmp/目錄下新建a.doc空文件
touch /tmp/{1..100} //在/tmp/目錄下新建數字從1-100的空文件
2.mkdir(make directory)命令詳解
mkdir [選項] 目錄位置及名稱
選項:
? -p:一次性創建嵌套的多層目錄
例:
mkdir /hehe/ //在根目錄下創建hehe
mkdir -p /data/hehe/ //依次創建/data/目錄再創建/data/hehe/目錄
1.4 cp、rm和mv命令
1.cp(copy)命令詳解
cp [選項] 源文件或目錄 目標文件或目錄
選項:
? -f:覆蓋目標同名文件或目錄時不進行提醒,而直接強制(Force)復制
? -i:覆蓋目標同名文件或目錄時提醒用戶確認(Interactive,交互式)
? -p:復制時保持(Preserve)源文件的權限、屬主及時間標記等屬性不變
? -r:復制目錄時必須使用此選項,表示遞歸復制所有文件及子目錄
例:
cp /etc/hosts /tmp/ //拷貝/etc/hosts文件到/tmp/目錄下
cp /etc/hosts /tmp/a //拷貝/etc/hosts文件到/tmp/目錄下並改名為a文件
cp -r /etc/ /tmp/ //拷貝/etc/目錄下所有內容到/tmp/目錄下
cp -p /etc/hosts.bak /tmp/ //拷貝/etc/hosts.bak文件到/tmp/目錄下,並保存原有權限
2.rm(remove)命令詳解
rm [選項] 要刪除的文件或目錄
選項:
- -f:不提醒,直接強制刪除
- -i:提醒用戶確認
- -r:遞歸刪除整個目錄樹
例:
rm -rf ./{1..100} //不詢問刪除/tmp/{1..100}文件
註:"rm -rf /*",命令極度危險,切勿嘗試
3.mv(move)命令詳解
將指定的文件或目錄轉移位置
如果目標位置與源位置相同,則相當於執行重命名操作
mv [選項] 源文件或目錄 目標文件或目錄
例:
mv /etc/hosts.bak /tmp/
//將/etc/hosts.bak文件移動到/tmp/目錄下,並保持原文件名
mv /etc/hosts.bak /tmp/hehe
//將/etc/hosts.bak文件移動到/tmp/目錄下並改名為hehe
mv /etc/hosts /etc/hosts.bak //將/etc/hosts文件重命名為hosts.bak
1.5 which和find命令
1.which命令詳解
查找Linux命令程序所在位置
which 命令 | 程序名
? 默認當找到第一個目標後不再繼續查找
? 若在所有搜索路徑中查找,加"-a"選項
? 無法查找內部命令所對應的程序文件
例:
which ls //搜索ls命令所在的完整路徑
which cd //搜索cd命令所在的完整路徑
註:因此使用過程中一定註意which只能搜索外部命令
2.find命令詳解
精細查找文件或目錄d
find [ 查找範圍 ] [ 查找條件表達式 ]
常用查找條件:
? 按名稱查找:"-name",支持通配符""、"?"
? 按文件大小查找:"-size",可使用"+"、"-"作為容量條件
? 按文件屬主查找:"-user"
? 按文件類型查找:"type"
例:
find /etc/ -name "host" //搜索/etc/目錄下所有以host開頭的文件或目錄
find /etc/ -name "host?" //搜索/etc/目錄下所有以host開頭的文件或目錄
註:“*”匹配多個字符,“?”匹配單個字符
find /etc/ -size +1M //搜索/etc/目錄下所有大於1M的文件或目錄
find /etc/ -size -1M //搜索/etc/目錄下所有小於1M的文件或目錄
註:-size中k容量單位為小寫字母,其余全為大寫;如“1k”、“1M”、“1G”等
find /boot/efi/ -user root //搜索/boot/efi/目錄下所有創建者為root的文件或目錄
註:創建者即文件或目錄的所有者,一般為創建人,如root用戶新增的文件所有者即為root,也可通過"chown"命令更改所有者
find /etc/ -type d //搜索/etc/目錄下所有的目錄
註:除"d(目錄)"類型外,常見的還有"f(普通文件)"、"b(塊設備文件)"、"c(字符設備文件)"等;塊設備代表(硬盤、內存等)、字符設備代表(鍵盤等)
邏輯運算符:
? -a:而且(and),顯示所有條件全部滿足的結果
? -o:或者(or),顯示滿足其中一個條件的結果
Linux常用命令精講