天天看點

Linux常用指令Linux指令基礎

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指令可以查找目錄和檔案。

繼續閱讀