Linux_《Linux命令行與shell腳本編程大全》第三章學習總結

時間:2017年04月06日shell

說明:本文部份內容均摘取自書籍《Linux命令行與shell腳本編程大全》,版權歸原做者全部。《Linux命令行與shell腳本編程大全》(第三版)第三章學習總結編程

第三章:基本的bash shell命令

本章內容:數組

使用shell
bash手冊
瀏覽文件系統
文件和目錄列表
管理文件和目錄
查看文件內容

3.1 啓動shell

GNU bash shell能提供對Linux系統的交互式訪問。

/etc/passwd文件包含了全部系統用戶帳戶列表以及每一個用戶的基本配置信息。
如下是從/etc/passwd文件中取出的樣例條目:bash

shell:x:1001:1003::/home/shell:/bin/bash

每一個條目有七個字段,字段之間用冒號分隔。大多數條目將在第七章講解,最後一個字段制定了用戶使用的shell程序。less

3.2 shell提示符

一旦啓動了終端仿真軟件包或者登錄Linux虛擬控制檯,你就會看到shell CLI提示符。提示符就是進入shell世界的大門,是你輸入shell命令的地方。默認bash shell提示符是美圓符號($),這個符號代表shell在等待用戶輸入。shell提示符並不是一成不變。你可根據本身的須要改變它。第六章講到了如何修改shell CLI提示符。

竅門:若是你仍是CLI新手,請記住,在輸入shell命令以後,須要按回車鍵才能讓shell執行你輸入的命令。工具

3.3 bash手冊

大多數Linux發行版自帶用以查找shell命令及其餘GNU工具信息的在線手冊。熟悉手冊對使用各類Linux工具大有裨益,尤爲是在你要弄清楚各類命令行參數的時候。man命令用來訪問存儲在Linux系統上的手冊頁面。例如:man ls,查找 ls 命令的手冊頁面。讀完了手冊頁,能夠點擊q鍵退出。

竅門:若是你是新接觸bash shell,可能一開始會以爲手冊頁並不太有用。可是,若是養成了閱讀手冊的習慣,尤爲是閱讀第一段或是 DESCRIPTION 部分的前兩段,最終你會學到各類技術行話,手冊頁也會變得愈來愈有用。學習

竅門:bash手冊甚至包含了一份有關其自身的參考信息。輸入man man來查看與手冊相關的手冊頁。命令行

手冊頁將與命令相關的信息分紅了不一樣的節。每一節慣用的命名標準以下:日誌

Name:顯示命令名與一段簡短的描述
Synopsis:命令的語法
Confi guration:命令配置信息
Description:命令的通常性描述
Options:命令選項描述
Exit Status:命令的退出狀態指示
Return Value:命令的返回值
Errors:命令的錯誤消息
Environment:描述所使用的環境變量
Files:命令用到的文件
Versions:命令的版本信息
Conforming To:命令所聽從的標準
Notes:其餘有幫助的資料
Bugs:提供提交bug的途徑
Example:展現命令的用法
Authors:命令開發人員的信息
Copyright:命令源代碼的版權情況
See Also:與該命令類型的其餘命令

竅門:若是不記得命令名怎麼辦?可使用關鍵字搜索手冊頁。語法是:man -k 關鍵字。例如,要查找與終端命令相關的命令,能夠輸入man -k terminal。code

除了對節按照慣例進行命名,手冊頁還有對應的內容區域。每一個內容區域都分配了一個數字。從1到9,以下:

1:可執行程序或shell命令
2:系統調用
3:庫調用
4:特殊文件
5:文件格式與約定
6:遊戲
7:概覽、約定
8:超級用戶和系統管理員命令
9:內核例程

可使用命令man 數字 ls,輸入man 1 ls閱讀第1部分。

3.4 瀏覽文件系統

當登陸系統並得到shell命令提示後,你一般位於本身的主目錄中。

3.4.1 Linux文件系統

Linux虛擬目錄接口只包含一個稱爲跟(root)目錄的基礎目錄。根目錄下的目錄和文件會按照訪問它們的目錄路徑一一列出。

竅門:你將會發現Linux使用正斜線(/)而不是反斜線()在文件路徑中劃分目錄。在Linux中,反斜線用來標識轉義字符,要是用在文件路徑中的話會致使各類各樣的問題。若是你以前用的是Windows環境,就須要一點時間來適應。

Linux文件系統結構是從Unix文件結構演變過來的。在Linux文件系統中,通用的目錄名用於表示一些常見的功能。一些常見的Linux頂層虛擬目錄及其內容以下:

/:虛擬目錄的根目錄。一般不會再這裏存儲文件
/bin:二進制目錄,存放許多用戶級的GNU工具
/boot:啓動目錄,存放啓動文件
/dev:設備目錄,Linux在這裏建立設備節點
/etc:系統配置文件目錄
/home:主目錄,Linux在這裏建立用戶目錄
/lib:庫目錄,存放系統和應用程序的庫文件
/media:媒體目錄,可移動媒體設備的經常使用掛載點
/mnt:掛載目錄,另外一個可移動媒體設備的經常使用掛載點
/opt:可選目錄,經常使用於存放第三方軟件包和數據文件
/proc:進程目錄,存放現有硬件及當前進程的相關信息
/root:root用戶的主目錄
/sbin:系統二進制目錄,存放許多GNU管理員級工具
/run:運行目錄,存放系統運行時的運行時數據
/srv:服務目錄,存放本地服務的相關文件
/sys:系統目錄,存放系統硬件信息的相關文件
/tmp:臨時目錄,能夠在該目錄中建立和刪除臨時工做文件
/usr:用戶二進制目錄,大量用戶級的GNU工具和數據文件都存儲在這裏
/var:可變目錄,用以存放常常變化的文件,好比日誌文件

3.4.2 遍歷目錄

在Linux文件系統上,可使用切換目錄命令cd將shell會話切換到另外一個目錄。

命令格式:cd destination
命令說明:cd命令可接受單個參數destination,用以指定想切換到的目錄名。
    若是沒有爲cd命令指定目標路徑,它將切換到用戶主目錄。
命令演示:cd test
演示說明:進入目錄名爲test的目錄

destination參數能夠用兩種方式表示:一種是使用絕對路徑,另外一種是使用相對文件路徑。

絕對文件路徑:絕對文件路徑老是以正斜線(/)做爲起始,指明虛擬文件系統的根目錄。

竅門:在切換到新的當前工做目錄時使用pwd命令,是很好的習慣。由於不少shell命令都是在當前工做目錄中操做的,在發出命令以前,你應該始終確保本身處在正確的目錄之中。

相對文件路徑:相對文件路徑容許用戶指定一個基於當前位置的目標文件路徑。

有兩個特殊字符可用於相對文件路徑中:

單點符(.):表示當前目錄
雙點符(..):表示當前目錄的父目錄

3.5 文件和目錄列表

要想知道系統中有哪些文件,可使用列表命令(ls)。

3.5.1 基本列表功能

命令格式:ls 
命令說明:顯示當前目錄下的文件和目錄

命令格式:ls -F 
命令格式:顯示當前目錄下的文件和目錄,在目錄後加了正斜線,在可執行文件後加了星號

命令格式:ls -a
命令說明:顯示當前目錄下的文件和目錄,包括隱藏文件和普通文件

命令格式:ls -F -R
命令說明:顯示當前目錄下的文件和目錄,遞歸顯示子目錄中的文件

竅門:選項並不必定要像例子中那樣分開輸入:ls -F -R。它們能夠進行以下合併:ls -FR。

3.5.2 顯示長列表

命令格式:ls -l
命令說明:顯示當前目錄下的文件和目錄,包含了目錄中每一個文件的更多相關信息

每一行都包含了關於文件或目錄的下述信息:

文件類型,好比目錄(d)、文件(-)、字符型文件(c)或塊設備(b);
文件的權限(參見第六章);
文件的硬連接總數;
文件屬主的用戶名;
文件屬組的組名;
文件的大小(以字節爲單位);
文件的上次修改時間;
文件名或目錄名。

竅門:別忘了能夠將多個參數結合起來使用。一些參數組合不只可以顯示出所需的內容,並且還容易記憶,例如:ls -alF。

3.5.3 過濾輸出列表

命令格式:ls -l study
命令說明:顯示當前目錄下的文件和目錄,根據字符串過濾文件或目錄

當用戶指定特定文件的名稱做爲過濾器時,ls命令只會顯示該文件的信息。有時你可能不知道要找的那個文件的確切名稱。ls命令可以識別標準通配符,並在過濾器中用他們進行模式匹配:

問號(?):表明一個字符
星號(*):表明零個或多個字符
中括號([ab]):表明a或b
感嘆號([!a]):表明不包含a

3.6 處理文件

shell提供了不少在Linux文件系統上操做文件的命令。

3.6.1 建立文件

命令:touch

命令格式:touch 文件名
命令說明:使用touch建立文件
命令演示:touch test
演示說明:建立一個名爲test的文件

touch命令修改文件的修改時間

命令格式:touch 文件名
命令說明:使用touch文件修改時間

3.6.2 複製文件

命令:cp

命令格式:cp 源對象 目標對象
命令說明:將源對象複製到目標對象

cp source destination
當source和destination參數都是文件名時,cp命令將源文件複製成一個新文件,而且以destination命名。

cp -i 源對象 目標對象
複製文件時,若是目標文件已近存在,詢問是否須要覆蓋已有文件。

cp -R 源對象 目標對象
能夠用cp -R在一條命令中遞歸地複製整個目錄的內容。

3.6.3 製表鍵自動補全

製表鍵自動補全容許你的輸入文件名或目錄名時按一下製表鍵,讓shell幫忙將內容補充完整。

3.6.4 連接文件

相似Windows快捷方式。爲文件建立快捷方式。比較難以理解。

3.6.5 重命名文件

在Linux中,重命名文件稱爲移動(moving)。mv命令能夠將文件和目錄移動到另外一個位置或從新命名。

命令:mv

命令格式:mv 源對象 目標對象
命令說明:將源對象移動到目標對象或將源對象重命名爲目標對象

竅門:和cp命令相似,也能夠在mv命令中使用-i參數。這樣在命令試圖覆蓋已有的文件時,你就會獲得提示。

3.6.6 刪除文件

在Linux中,刪除(deleting)叫做移除(removing)。

命令:rm

命令格式:rm file
命令說明:刪除文件名爲file的文件

命令格式:rm -i file
命令說明:刪除文件時,提示是否確認刪除。

3.7 處理目錄

3.7.1 建立目錄

在Linux中建立目錄很簡單,用mkdir命令便可。

命令:mkdir

命令格式:mkdir 目錄名
命令說明:建立一個指定目錄名的目錄

命令格式:mkdir -p 目錄名/子目錄
命令說明:經過加入-p參數,同時建立多個目錄和子目錄

3.7.2 刪除目錄

命令:mkdir

命令格式:mkdir 目錄名
命令說明:刪除一個指定目錄名的目錄,目錄必須爲空才能刪掉

命令:rm

命令格式:rm -r 目錄名
命令說明:刪除指定目錄名的目錄,會刪除目錄下子目錄及目錄下文件

命令:rm

命令格式:rm -rf 目錄名

命令說明:刪除目錄及其全部內容。rm -rf命令既沒有警告信息,也沒有聲音提示。這確定是一個危險的工具,尤爲是在擁有超級用戶權限的時候。務必謹慎使用,請再三檢查你所要進行的操做是否符合預期。

3.8 查看文件內容

3.8.1 查看文件類型

命令:file

命令格式:file 文件名
命令說明:查看文件的類型

3.8.2 查看整個文件

Linux上有三個不一樣的命令能夠完成這個任務。cat命令、more命令、less命令。

命令:cat

命令格式:cat 文件名
命令說明:查看指定文件的內容

命令格式:cat -n 文件名
命令說明:查看指定文件的內容,-n參數會給全部的行加上行號。

命令格式:cat -b 文件名
命令說明:查看指定文件的內容,-b參數會給有文本的行加上行號。

命令格式:cat -T 文件名
命令說明:查看指定文件的內容,-T參數會用^I字符組合去替換文中的全部製表符。

命令:more

命令格式:more 文件名
命令說明:查看指定文件的內容

命令:less

命令格式:less 文件名
命令說明:查看指定文件的內容

3.8.3 查看部分文件

命令:tail

命令格式:tail 文件名
命令說明:查看指定文件的末尾10行內容

命令格式:tail -n 文件名
命令說明:查看指定文件的末尾n行內容

命令格式:tail -f 文件名
命令說明:查看指定文件的內容。用於實時監測系統日誌文件。

命令:head

命令格式:head 文件名
命令說明:查看指定文件的前10行內容

命令格式:head -n 文件名
命令說明:查看指定文件的前n行內容

3.9 小結

本章涵蓋了在shell提示符下操做Linux文件系統的基礎知識。主要介紹了cd、ls、mv、rm、mkdir、rmdir、cat、more、less、tail、head命令。

本章學習命令我的總結以下:

cd:切換或進入目錄
ls:顯示當前目錄下的目錄和文件
mv:移動或重命名目錄或文件
rm:刪除目錄或文件
mkdir:建立目錄
rmdir:刪除目錄
cat:查看文本文件所有內容
more:查看文本文件所有內容
less:查看文本文件所有內容
tail:查看文本文件尾部部份內容
head:查看文本文件頭部部份內容
相關文章
相關標籤/搜索