第二章 Shell基礎
1.Shell初始化時使用那兩個檔案?
/etc/profile,它包含系統中所有使用者都需要的Shell初始化資訊
.profile,是否在使用者的起始目錄中。起始目錄是使用者登入進入後所位於的目錄
2.為什麼需要設定PATH和MANPATH?
Shell命令在執行前將定位命令所在的位置。PATH的作用就在定位此位置
MANPATH用於設定線上協助手冊的位置
3.指令碼中第一行代碼 #!/bin/sh 的目的是什嗎?
保證以sh來運行指令碼,否則不論哪種shell,都將使用當前shell來執行指令碼。
4.訪問線上協助需要使用什麼命令?
man command
重要概念
1.未初始化Shell:當Shell剛啟動時,它還沒有被初始化。這意味著Shell正確運行所需的重要參數尚未被定義。
2.Shell初始化:在Shell啟動後,它要經曆一個初始化的階段來設定一些重要參數。這實際上一個兩步的過程,Shell在此時讀取
檔案/etc/profile和./profile
3.起始目錄:使用者的起始目錄是使用者登入後所位於的目錄
第三章 檔案操作
UNIX有3種基本類型檔案:
1.普通檔案
2.目錄
3.特殊檔案
一個普通檔案是系統中包含資料、文本或程式指令的檔案。
3.1 列檔案名稱
$ ls #列目錄
該輸出說明在目前的目錄下有許多不同的項,但沒有告訴哪些是檔案和檔案夾。
$ ls -F #列目錄,-F 表示將檔案夾以 / 符號結束,標識出來。
$ ls -l #一行一行的列出目錄,方便awk過濾文本。
3.1.1 隱藏檔案
在Linux中,不可見檔案是以(.)開頭的檔案
例如:
.profile, Bourne Shell(sh)的初始化指令碼
.kshrc, Korn Shell(ksh)的指令碼初始化
.cshrc, C Shell(csh)的指令碼初始化
.rhosts, 遠程Shell設定檔
所有不以(.)符號開頭的檔案都被認為是可見的。
要列出不可見檔案,只需使用-a選項。
$ ls -a #列目錄,包括隱藏檔案
3.2 瀏覽檔案內容
列檔案名稱很重要,但Shell指令碼還需要瀏覽檔案內容.
3.2.1 使用cat命令瀏覽檔案內容
$ cat hosts #顯示hosts檔案內容
可以聲明不只一個檔案:
$ cat hosts users #將顯示兩個檔案的內容
參數-n,將輸出結果標明行號。
參數-b,忽略空行。
3.2.2 使用wc統計單詞
可以使用該命令來統計檔案包含的行數、單詞數、字元數.
格式:wc [options] files
$ wc .hosts
如果沒有使用選用,則輸出對行數、單詞數、字元數的統計匯總.
上述返回結果是:7 14 179 .hosts
分別代表:檔案行數、單詞數、字元數、檔案名稱
它支援同時統計多個檔案。
$ wc test1.php test2.php
返回結果將以換行形式,順序的輸出統計資訊
-l:統計行數
-w:統計單詞數
-c:統計字元數
3.3 操作檔案
操作檔案的幾種方式:
1.拷貝檔案
2.重新命名檔案
3.刪除檔案
3.3.1 cp拷貝檔案命令
$ cp source destination
source:拷貝的檔案名稱
destination:拷貝名
例如:將test1.php 拷貝並放到名為test2.php的檔案
$ cp test1.php test2.php
1.常見錯誤
cp命令沒有輸出,除非它出現了錯誤。它包括兩種常見錯誤:
1.源檔案是一個目錄
2.源檔案不存在
2.互動模式
如果目標檔案已存在是不會產生錯誤資訊。這種情況下,目標檔案自動被覆蓋。這可能導致潛在的危險。
為避免這種情況,需要使用選項-i,來提示進行互動操作。y表示覆蓋,n表示取消。
3.把檔案拷貝到另一個目錄
如果目標檔案是一個目錄,則拷貝的名字與源檔案名稱相同,並拷貝到目標目錄下。
$ cp test1.php /var/www/html/
將會在/var/www/html/產生名為test1.php的檔案。
4.多個輸入
$ cp test1.php test2.php test3.php /var/www/html/
將最後一個參數當作目標檔案,將test1.php,test2.php,test3.php拷貝到/var/www/html/目錄下。
但如果是一個源檔案,而有多個目錄,則會產生錯誤。
-R選項,目錄間的拷貝
3.3.2 mv重新命名檔案
$ mv source destination
source:源檔案路徑名
destination:新檔案名稱
若目標檔案名已經存在,則會提示是否刪除後再重新命名。
-i選項為互動模式
3.3.3 rm刪除檔案
$ rm files
刪除一個或多個檔案清單
1.常見錯誤
聲明的檔案不存在
聲明的檔案是目錄
因為被rm刪除的檔案無法恢複,所以使用者可以使用-i選項使用互動模式,提示刪除每一個檔案。
使用-R選項,可以刪除檔案目錄
在上面所有命令中,存在互動模式的,可以使用-f選項屏蔽提示。