天天看點

bash shell指令(1)

ls用來列出目錄的内容,它是使用者最常用的指令之一,ls指令的格式為:

ls[選項][目錄名或檔案名]

選項的主要參數:

.options主要參數

-a, --all:不隐藏任何以“.” 字元開始的項目。

-a, --almost-all:列出除了“ . ”及 “.. ”以外的任何項目。

--author:印出每個檔案著作者。

-b, --escape:以八進制溢出序清單示不可列印的字元。

--block-size=大小:塊以指定的位元組為機關。

-b, --ignore-backups:不列出任何以 ~ 字元結束的項目。

-f:不進行排序,-au參數生效,-lst參數失效。

-f, --classify:加上檔案類型的訓示符号 (*/=@| 其中一個)。

-g:like -l, but do not list owner。

-g, --no-group:inhibit display of group information。

-i, --inode:列出每個檔案的inode号。

-i, --ignore=樣式:不印出任何符合shell萬用字元的項目。

-k:即--block-size=1k。

-l:使用較長格式列出資訊。

-l, --dereference:當顯示符号連結的檔案資訊時,顯示符号連結所訓示的對象,而并非符号連結本身的資訊。

-m:所有項目以逗号分隔,并填滿整行行寬。

-n, --numeric-uid-gid:類似-l,但列出uid及gid号。

-n, --literal:列出未經處理的項目名稱,例如不特别處理控制字元。

-p, --file-type:加上檔案類型的訓示符号 (/=@| 其中一個)。

-q, --quote-name:将項目名稱括上雙引号。

-r, --reverse:依相反次序排列。

-r, --recursive:同時列出所有子目錄層。

-s, --size:以塊大小為序。

使用ls指令時會有幾種不同的顔色,其中藍色表示是目錄,綠色表示是可執行檔案,紅色表示是壓縮檔案,淺藍色表示是連結檔案,加粗的黑色表示符号連結,灰色表示是其它格式檔案,如圖所示:

bash shell指令(1)

ls最常使用的是ls -l,如圖所示:

bash shell指令(1)

檔案類型開頭是由10個字元構成的字元串。其中第一個字元表示檔案類型,它可以是下述類型之一:

-(普通檔案)、d(目錄)、l(符号連結)、b(塊裝置檔案)、c(字元裝置檔案)。後面的9個字元表示檔案的通路權限,分為3組,每組3位。

第一組表示檔案屬主的權限,第二組表示同組使用者的權限,第三組表示其他使用者的權限。

每一組的三個字元分别表示對檔案的讀(r)、寫(w)和執行權限(x)。

對于目錄,表示進入權限。s表示當檔案被執行時,把該檔案的uid或gid賦予執行程序的uid(使用者id)或gid(組id)。t表示設定标志位(留在

記憶體,不被換出)。如果該檔案是目錄,那麼在該目錄中的檔案隻能被超級使用者、目錄擁有者或檔案屬主删除。如果它是可執行檔案,那麼在該檔案執行後,指向其

正文段的指針仍留在記憶體。這樣再次執行它時,系統就能更快地裝入該檔案。接着顯示的是檔案大小、生成時間、檔案或指令名稱。

pwd用來顯示目前的工作目錄的絕對路徑,格式為:pwd

cd用來更改工作目錄,格式為:cd

bash shell指令(1)

用來建立一個新的目錄,格式為:

mkdir[選項]目錄名

作用:mkdir指令的作用是建立名稱為dirname的子目錄,與ms dos下的md指令類似,它的使用權限是所有使用者。

[選項]主要參數

-m, --mode=模式:設定權限,與chmod類似。

-p, --parents:需要時建立上層目錄;如果目錄早已存在,則不當作錯誤。

-v, --verbose:每次建立新目錄都顯示資訊。

--version:顯示版本資訊後離開。

bash shell指令(1)

功能: 複制檔案或目錄

說明: cp指令用于複制檔案或目錄,如同時指定兩個以上的檔案或目錄,且最後的目的地是一個已經存在的目錄,則它會把前面指定的所有檔案或目錄複制到此目錄中。若同時指定多個檔案或目錄,而最後的目的地并非一個已存在的目錄,則會出現錯誤資訊

參數:

     -a 或 --archive     此參數的效果和同時指定"-dpr"參數相同

     -b 或 --backup      删除、覆寫目的檔案先備份,備份的檔案或目錄亦建立為符号連結,并指向源檔案或目錄連結的源檔案或目錄。假如沒有加上這個參數,在複制過程中若遇到符号連結,則會直接複制源檔案或目錄

     -f 或 --force       強行複制檔案或目錄, 不論目的檔案或目錄是否已經存在

     -i 或 --interactive 覆寫檔案之前先詢問使用者

     -l 或 --link        對源檔案建立硬連結,而非複制檔案

     -p 或 --preserve    保留源檔案或目錄的屬性,包括所有者、所屬組、權限與時間

     -p 或 --parents     保留源檔案或目錄的路徑,此路徑可以是絕對路徑或相對路徑,且目的目錄必須已經豐在

     -r                  遞歸處理,将指定目錄下的檔案與子目錄一并處理。若源檔案或目錄的形态,不屬于目錄或符号連結,則一律視為普通檔案處理

     -r 或 --recursive   遞歸處理,将指定目錄下的檔案及子目錄一并處理

     -s 或 --symbolic-link  對源檔案建立符号連結,而非複制檔案

     -s <備份字尾字元串> 或 --suffix=<備份字尾字元串> 用"-b"參數備份目的檔案後,備份檔案的字尾會被加上一個備份字元串。預設的備份字尾符串是符号"~"

     -u 或 --update      使用這項參數之後,隻會在源檔案的修改時間(modification time)較目的檔案更新時,或是名稱互相對應的目的檔案并不存在,才複制檔案

     -v 或 --verbose     顯示執行過程

     -v <備份方式> 或 --version-control=<備份方式>  指定當備份檔案時,備份檔案名的命名方式,有以下3種:

                         1.numbered或t, 将使用備份編号,會在字尾加上~1~字元串,其數字編号依次遞增

                         2.simple或never 将使用簡單備份,預設的備份字尾字元串是~, 也可通過-s來指定

                         3.existing或nil将使用目前方式,程式會先檢查是否存在着備份編号,若有則采用備份編号,若無則采用簡單備份

     -x 或 --one-file-system  複制的檔案或目錄存放的檔案系統,必須與cp指令執行時所處的檔案系統相同,否則不複制,亦不處理位于其他分區的檔案

     --help              顯示線上幫助

     --sparse=<使用時機>  設定儲存希疏檔案的時機

     --version           顯示版本

示例:

    .複制檔案,隻有源檔案較目的檔案的修改時間新時,才複制檔案

     cp -u -v file1 file2

    .将檔案file1複制成檔案file2

     cp file1 file2

    .采用互動方式将檔案file1複制成檔案file2

     cp -i file1 file2

    .将檔案file1複制成file2,因為目的檔案已經存在,是以指定使用強制複制的模式

     cp -f file1 file2

    .将目錄dir1複制成目錄dir2

     cp -r file1 file2

    .同時将檔案file1、file2、file3與目錄dir1複制到dir2

cp -r file1 file2 file3 dir1 dir2

    .複制時保留檔案屬性

     cp -p a.txt tmp/

    .複制時保留檔案的目錄結構

     cp -p  /var/tmp/a.txt  ./temp/

    .複制時産生備份檔案

     cp -b a.txt tmp/

    .複制時産生備份檔案,尾标 ~1~格式

     cp -b -v t   a.txt /tmp    

    .指定備份檔案尾标    

     cp -b -s _bak a.txt /tmp

bash shell指令(1)

作用:

mv指令用來為檔案或目錄改名,或者将檔案由一個目錄移入另一個目錄中,它的使用權限是所有使用者。該指令如同dos指令中的ren和move的組合。

格式:

mv[options] 源檔案或目錄,目标檔案或目錄

[options]主要參數:

-i:互動方式操作。如果mv操作将導緻對已存在的目标檔案的覆寫,此時系統詢問是否重寫,要求使用者回答“y”或“n”,這樣可以避免誤覆寫檔案。

-f:禁止互動操作。mv操作要覆寫某個已有的目标檔案時不給任何訓示,指定此參數後i參數将不再起作用。

應用執行個體:

(1)将檔案test.c重命名為test1.c:

$ mv test.c  test1.c

(2)将test1.c檔案移動到ccode檔案夾中:

$ mv test1  ./ccode

bash shell指令(1)

rm是常用的指令,該指令的功能為删除一個目錄中的一個或多個檔案或目錄,它也可以将某個目錄及其下的所有檔案及子目錄均删除。對于連結檔案,隻是删除了連結,原有檔案均保持不變。

rm是一個危險的指令,使用的時候要特别當心,尤其對于新手,否則整個系統就會毀在這個指令(比如在/(根目錄)下執行rm * -rf)。是以,我們在執行rm之前最好先确認一下在哪個目錄,到底要删除什麼東西,操作時保持高度清醒的頭腦。

1.指令格式:

rm [選項] 檔案… 

2.指令功能:

删除一個目錄中的一個或多個檔案或目錄,如果沒有使用- r選項,則rm不會删除目錄。如果使用 rm 來删除檔案,通常仍可以将該檔案恢複原狀。

3.指令參數:

    -f, --force    忽略不存在的檔案,從不給出提示。

    -i, --interactive 進行互動式删除

    -r, -r, --recursive   訓示rm将參數中列出的全部目錄和子目錄均遞歸地删除。

    -v, --verbose    詳細顯示進行的步驟

       --help     顯示此幫助資訊并退出

       --version  輸出版本資訊并退出

執行個體:

删除檔案test,系統會先詢問是否删除。 

将projects子目錄及子目錄中所有檔案删除

bash shell指令(1)

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

cat [選項] [檔案]...

cat主要有三大功能:

(1)一次顯示整個檔案:cat filename

(2)從鍵盤建立一個檔案:cat > filename 隻能建立新檔案,不能編輯已有檔案.

(3)将幾個檔案合并為一個檔案:cat file1 file2 > file

-a, --show-all           等價于 -vet

-b, --number-nonblank    對非空輸出行編号

-e                       等價于 -ve

-e, --show-ends          在每行結束處顯示 $

-n, --number     對輸出的所有行編号,由1開始對所有輸出的行數編号

-s, --squeeze-blank  有連續兩行以上的空白行,就代換為一行的空白行 

-t                       與 -vt 等價

-t, --show-tabs          将跳格字元顯示為 ^i

-u                       (被忽略)

-v, --show-nonprinting   使用 ^ 和 m- 引用,除了 lfd 和 tab 之外

bash shell指令(1)