Linux指令基礎
在Linux中系統中,凡是在字元操作界面輸入的能夠完成特定操作和任務的字元串,都可以稱為“指令”。而嚴格一點來說,“指令”通常隻代表了實作某一類功能的指令或程式的名稱
shell
Linux系統中運作的一種特殊程式
在使用者和核心之間充當“翻譯官”
使用者登陸Linux系統時,自動加載一個Shell程式
Bash是Linux系統中預設使用的Shell程式,檔案位于/bin/bash
Linux指令的分類
内部指令
- 內建于Shell解釋器程式内部的一些特殊指令,也稱為内建(Built-in)指令
- 屬于Shell的一部分
- 沒有獨立對應的系統檔案
- 自動載入記憶體,可以直接使用
外部指令
- Linux系統中能夠完成特定功能的腳本檔案或者二進制程式
- 屬于Shell解釋器程式之外的指令
- 每個外部指令對應了系統中的一個檔案
- 必須指定其對應的檔案位置,由Shell加載荷才能執行
[檢視是内部指令還是外部指令 type + cd 内嵌指令 type + mkdir 外部 ]
Linux指令行的格式
通用的指令行使用格式
指令字 選項 參數
[指令字]
整條指令中最關鍵的一部分,唯一确定一條指令
[選項]
例如: -a -b 短格式選項
--help 長格式選項
不使用選項時,将執行指令字的預設功能。
[參數]
指令字的處理對象
可以是檔案名,目錄(路徑)名或使用者名等内容 個數可以是零到多個
小總結
在實際使用Linux指令行的過程中,“選項”和“參數”的稱謂經常混淆,甚至前後順序也允許颠倒,但一般不會影響到指令的執行效果,是以很多時候并不做嚴格區分。
【編輯Linux 指令行】
在暗中上述格式輸入一條Linux指令後,按Enter鍵表示輸入結束并送出給系統執行。在沒有按Enter鍵之前,指令行中的字元内容都處于編輯狀态,可以進行任意編輯修改。編輯Linux指令行時,可以使用以下幾個輔助操作,以提高輸入效率。
- Tab鍵:按一次 自動補全 按兩次 系統将輸出的名稱清單
- 反斜杠 \ : 如果輸入一條指令内容太長,終端會自動換行。有時候為了顯示美觀及友善檢視,也可以插入“\“符号強制換行,在下一行出現的”>“提示符後可以繼續輸入内容,将作為上一行指令的延續。
- Ctrl+U 快捷鍵 : 快速清空至行首
- Crtl+K 快捷鍵 :快速清空至行尾
- Ctrl+L 快捷鍵 : 清屏(把内容翻上去,并不是清除内容)
- Ctrl+C 快捷鍵 : 終止目前指令編輯
【獲得指令幫助的方法】
[内部指令 + help]
檢視Bash内部指令的幫助資訊
[指令的”--help“選項]
适用于大多數外部指令
[使用man指令閱讀手冊頁]
使用↑↓方向鍵滾動文本
使用Page Up 和 Page Down翻頁
按Q或q鍵 退出閱讀環境 按”\“鍵查找内容
man 指令 檢視這條指令的用法
目錄和檔案基礎操作
ls指令——清單(List)顯示目錄内容
- -l 以長格式(Long)顯示檔案和目錄的清單,包括限權,大小最後更新時間等詳細資訊。不使用-l選項時,ls指令預設以短格式顯示目錄名或檔案名資訊
- -A 與-a選項的作用基本類似,但有兩個特殊隐藏目錄不會被顯示,即表示目前目錄的”.“以及表示父目錄的”..“。
- -d 顯示目錄(irectory)本身的屬性,而不是顯示目錄中的内容
- -h 以更人性化(Human)的方式顯示出目錄或檔案的大小,預設的大小機關為位元組(B),使用-h選項将顯示為KB,MB等機關。此選項需要結合-l選項一起使用。
- -R 以遞歸(Recursive)的方式顯示指定目錄及其子目錄中的所有内容
執行ls指令後,各種顔色的檔案或目錄
深藍色——目錄
淺藍色——連結檔案
白色——普通文本檔案
灰色——文本檔案
綠色——腳本檔案
紅色閃爍——損壞的連結檔案
紅色字型——壓縮檔案
黃色——裝置檔案(硬體的檔案)
du指令——統計目錄及檔案的空間占用情況(DiskUsage)
du顯示目前目錄下所有内容的各自大小
- -a 統計磁盤空間占用時包括所有的檔案,不僅僅隻統計目錄
- -h 以更人性化的方式(預設以KB技術,但不顯示機關)顯示出統計結構。使用-h選項後将顯示出K,M等機關
- -s 隻統計每個參數所占用總空間的(Summary)大小,而不是統計每個子目錄,檔案的大小
如果需要統計一個檔案夾内所有檔案總共占用的空間大小,可以結合“-sh”選項,将要統計的目錄作為參數。例如:,執行“du -sh /var/log” 指令可以統計出/var/log目錄所占用空間的大小。
如果需要統計多個檔案所占用空間的大小,可以結合“-ah” 選項,使用目錄作為參數時,最後将列出該目錄總占用的空間大小。例如:執行“du -sh /boot/”指令将分别統計/boot/ 目錄中所有檔案,子目錄各自占用的空間大小。
建立目錄和檔案
touch——建立空檔案
例: touch 檔案名
用于建立文本檔案
如果想一次性建立多個文本檔案 使用:
touch 檔案名1 檔案名2 ...
注:多個檔案之間以空格作為分隔
源檔案已存在的話,用touch在建立一遍,作用是更改該檔案的建立時間
mkdir指令——建立新的目錄(Make Directory)
作用:建立新目錄
格式: mkdir 選項 目錄位置及名稱
mkdir 目錄名 //建立一個新的目錄
如果想一次性建立多個目錄:
mkdir 目錄名1 目錄名2 ...
如果想建立嵌套目錄:
mkdir -p 目錄名/目錄名/目錄名 ...
複制,删除,移動目錄和檔案
cp——複制(Copy)目錄或檔案
cp指令用于複制檔案或目錄,将需要複制的檔案或目錄(源)重建一份并儲存為新的檔案或目錄(可儲存到其他目錄中)。
格式: cp 選項 源檔案或目錄 目标檔案或目錄 //将該檔案複制到目标檔案裡面
例: touch aa
cp aa(源檔案) aaa(目标檔案)
注:cp隻能複制檔案
【常用選項】↓
- -f 覆寫目标同名檔案或目錄不再進行提示直接強行複制
- -i 覆寫目标同名檔案或目錄時提醒使用者确認
- -p 複制時保持源檔案的權限,屬主及時間标記等屬性不表
- -r 複制目錄時必須使用此選項,表示遞歸複制所有檔案及子目錄
例:
1.把/bin/touch指令複制到目前目錄下,并命名為mytouch
執行: cp /bin/touch ./mytouch (./為目前工作目錄)
2.把/etc/init.6檔案複制一份作為備份,添加 .bak 擴充名,仍放在/etc目錄中。
執行: cp /etc/init.d/rc /etc/rc.bak
3.如果需要複制的資料包包括完整的目錄,則需要結合“-r”選項才能成功執行,否則目錄将被忽略。
把目錄 /boot/grub2,檔案/etc/host.conf複制到目前目錄下的public_html/檔案夾中。
執行:cp -r /boot/grub2/ /etc/host.conf public_html/
然後 ls piblic_html 檢視public_html中是否有。
[alias] 給指令取别名
alias 别名名稱=‘執行的指令或值’ (臨時性的,重新開機不生效)
永久生效↓
vi /etc/bashrc/alias 最後插入 alias 别名名稱=‘執行的指令或值’
儲存退出即可
source /etc/bashrc 立即生效
rm指令——删除(Remove) 檔案或目錄
删除指定的檔案或目錄
rm [選項] 要删除的檔案或目錄
【常用選項】↓
- -f 删除檔案或目錄時不進行提示,而直接強行删除
- -i 删除檔案或目錄時提醒使用者
- -r 删除目錄時必須使用此選項,表示遞歸删除整個目錄樹(慎重使用)
rm -rf 目錄或檔案 //直接删除不提示
rm -rf *删除目前目錄下的所有
使用-rf指令的時候,最好先切換到檔案的目錄,千萬不要誤删。
mv指令——移動(Move)檔案或目錄
将指定的檔案或目錄轉移位置,如果目錄位置與源檔案相同,則相當于執行重命名操作
mv [選項] 源檔案或目錄 目标檔案或目錄
重命名:在目的地目錄後面自定義一個名稱
雖然mv也具有重命名的功能。但是在實際應用中,它隻能對單個檔案重命名。而rename指令則可以批量修改檔案名。
格式: rename 源字元串 目标字元串檔案
例如,要将以jpg結尾的圖檔修改為以gif結尾,執行rename jpg gif *.jpg 指令即可。
其中“*.jpg” 表示以“.jpg”結尾的所有檔案。
查找目錄和檔案
which指令——查找使用者所執行的指令檔案存放的目錄
which指令用于查找Linux指令程式并顯示所在的具體位置,其搜尋範圍主要由使用者的環境變量PATH決定(可以執行“echo $PATH”指令檢視),這個範圍也是Linux系統在執行指令或程式時的預設搜尋路徑。
例:which ls指令後,可以找到名為ls的,位于/usr/bin/ls的指令程式檔案。
find指令——查找檔案或目錄
采用遞歸方式,根據目标的名稱,類型,大小等不同屬性進行精細查找
find [查找範圍] [查找條件表達式]
【常用查找條件類型】
查找類型 關鍵字 說明
按名稱查找 -name 根據目标檔案的名稱進行查找,運用“*(所有)”及“?(一個字母)”
按檔案大小查找 -size 一般使用“+”,“-”設定超過指定的大小作為查找條件,常用的容量機關包括kB,MB,GB
按檔案屬性查找 -user 根據檔案類型進行查找
檔案類型包括:普通檔案(f),目錄(d),塊裝置檔案(b) 文字裝置檔案(c)等
塊裝置是指讀取資料的裝置(如硬碟,記憶體等)
字元裝置是指按單個字元讀取資料的裝置(如鍵盤,滑鼠等)
例:
find / -name a* 查找根目錄a開頭的檔案
find /etc/ -size +50k 查找etc下面檔案大于50k的
find / -user lq 查找系統中屬主(使用者)為lq的内容
find / -type f 查找系統中的所有文本檔案
搜尋指令後面+ -exec cp -rf {} 目标位址
将以上的一系列指令儲存到 目标位址中。
例:find / -size -5k -a -name c* -a -type f -exec cp -rf {} /opt/bb/ \;
查找系統中小于5k且名稱以a開頭的且類型為檔案的内容并把它複制到/opt/bb目錄裡面去。
注:以上查找都是廣泛查找
各表達式之間使用邏輯運算符
“-a” 表示而且 (and) "-o"表示或者(or)
本章總結
- Linux指令行的一般格式中包括指令字,選項,參數。
- 通過如下方式可以獲得幫助:help,man和--help指令選項。
- 執行ls,du指令可以檢視目錄相關屬性。
- 執行mkdir,touch指令可以建立目錄和檔案
- 執行cp,rm,mv指令可以複制,删除,移動目錄和檔案
- 執行which,find指令可以查找目錄和檔案。