時間:2017年04月06日shell
說明:本文部份內容均摘取自書籍《Linux命令行與shell腳本編程大全》,版權歸原做者全部。《Linux命令行與shell腳本編程大全》(第三版)第三章學習總結編程
本章內容:數組
使用shell bash手冊 瀏覽文件系統 文件和目錄列表 管理文件和目錄 查看文件內容
GNU bash shell能提供對Linux系統的交互式訪問。
/etc/passwd文件包含了全部系統用戶帳戶列表以及每一個用戶的基本配置信息。
如下是從/etc/passwd文件中取出的樣例條目:bash
shell:x:1001:1003::/home/shell:/bin/bash
每一個條目有七個字段,字段之間用冒號分隔。大多數條目將在第七章講解,最後一個字段制定了用戶使用的shell程序。less
一旦啓動了終端仿真軟件包或者登錄Linux虛擬控制檯,你就會看到shell CLI提示符。提示符就是進入shell世界的大門,是你輸入shell命令的地方。默認bash shell提示符是美圓符號($),這個符號代表shell在等待用戶輸入。shell提示符並不是一成不變。你可根據本身的須要改變它。第六章講到了如何修改shell CLI提示符。
竅門:若是你仍是CLI新手,請記住,在輸入shell命令以後,須要按回車鍵才能讓shell執行你輸入的命令。工具
大多數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部分。
當登陸系統並得到shell命令提示後,你一般位於本身的主目錄中。
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:可變目錄,用以存放常常變化的文件,好比日誌文件
在Linux文件系統上,可使用切換目錄命令cd將shell會話切換到另外一個目錄。
命令格式:cd destination 命令說明:cd命令可接受單個參數destination,用以指定想切換到的目錄名。 若是沒有爲cd命令指定目標路徑,它將切換到用戶主目錄。 命令演示:cd test 演示說明:進入目錄名爲test的目錄
destination參數能夠用兩種方式表示:一種是使用絕對路徑,另外一種是使用相對文件路徑。
絕對文件路徑:絕對文件路徑老是以正斜線(/)做爲起始,指明虛擬文件系統的根目錄。
竅門:在切換到新的當前工做目錄時使用pwd命令,是很好的習慣。由於不少shell命令都是在當前工做目錄中操做的,在發出命令以前,你應該始終確保本身處在正確的目錄之中。
相對文件路徑:相對文件路徑容許用戶指定一個基於當前位置的目標文件路徑。
有兩個特殊字符可用於相對文件路徑中:
單點符(.):表示當前目錄 雙點符(..):表示當前目錄的父目錄
要想知道系統中有哪些文件,可使用列表命令(ls)。
命令格式:ls 命令說明:顯示當前目錄下的文件和目錄 命令格式:ls -F 命令格式:顯示當前目錄下的文件和目錄,在目錄後加了正斜線,在可執行文件後加了星號 命令格式:ls -a 命令說明:顯示當前目錄下的文件和目錄,包括隱藏文件和普通文件 命令格式:ls -F -R 命令說明:顯示當前目錄下的文件和目錄,遞歸顯示子目錄中的文件
竅門:選項並不必定要像例子中那樣分開輸入:ls -F -R。它們能夠進行以下合併:ls -FR。
命令格式:ls -l 命令說明:顯示當前目錄下的文件和目錄,包含了目錄中每一個文件的更多相關信息
每一行都包含了關於文件或目錄的下述信息:
文件類型,好比目錄(d)、文件(-)、字符型文件(c)或塊設備(b); 文件的權限(參見第六章); 文件的硬連接總數; 文件屬主的用戶名; 文件屬組的組名; 文件的大小(以字節爲單位); 文件的上次修改時間; 文件名或目錄名。
竅門:別忘了能夠將多個參數結合起來使用。一些參數組合不只可以顯示出所需的內容,並且還容易記憶,例如:ls -alF。
命令格式:ls -l study 命令說明:顯示當前目錄下的文件和目錄,根據字符串過濾文件或目錄
當用戶指定特定文件的名稱做爲過濾器時,ls命令只會顯示該文件的信息。有時你可能不知道要找的那個文件的確切名稱。ls命令可以識別標準通配符,並在過濾器中用他們進行模式匹配:
問號(?):表明一個字符 星號(*):表明零個或多個字符 中括號([ab]):表明a或b 感嘆號([!a]):表明不包含a
shell提供了不少在Linux文件系統上操做文件的命令。
命令:touch
命令格式:touch 文件名 命令說明:使用touch建立文件 命令演示:touch test 演示說明:建立一個名爲test的文件
touch命令修改文件的修改時間
命令格式:touch 文件名 命令說明:使用touch文件修改時間
命令:cp
命令格式:cp 源對象 目標對象 命令說明:將源對象複製到目標對象
cp source destination
當source和destination參數都是文件名時,cp命令將源文件複製成一個新文件,而且以destination命名。
cp -i 源對象 目標對象
複製文件時,若是目標文件已近存在,詢問是否須要覆蓋已有文件。
cp -R 源對象 目標對象
能夠用cp -R在一條命令中遞歸地複製整個目錄的內容。
製表鍵自動補全容許你的輸入文件名或目錄名時按一下製表鍵,讓shell幫忙將內容補充完整。
相似Windows快捷方式。爲文件建立快捷方式。比較難以理解。
在Linux中,重命名文件稱爲移動(moving)。mv命令能夠將文件和目錄移動到另外一個位置或從新命名。
命令:mv
命令格式:mv 源對象 目標對象 命令說明:將源對象移動到目標對象或將源對象重命名爲目標對象
竅門:和cp命令相似,也能夠在mv命令中使用-i參數。這樣在命令試圖覆蓋已有的文件時,你就會獲得提示。
在Linux中,刪除(deleting)叫做移除(removing)。
命令:rm
命令格式:rm file 命令說明:刪除文件名爲file的文件 命令格式:rm -i file 命令說明:刪除文件時,提示是否確認刪除。
在Linux中建立目錄很簡單,用mkdir命令便可。
命令:mkdir
命令格式:mkdir 目錄名 命令說明:建立一個指定目錄名的目錄 命令格式:mkdir -p 目錄名/子目錄 命令說明:經過加入-p參數,同時建立多個目錄和子目錄
命令:mkdir
命令格式:mkdir 目錄名 命令說明:刪除一個指定目錄名的目錄,目錄必須爲空才能刪掉
命令:rm
命令格式:rm -r 目錄名 命令說明:刪除指定目錄名的目錄,會刪除目錄下子目錄及目錄下文件
命令:rm
命令格式:rm -rf 目錄名
命令說明:刪除目錄及其全部內容。rm -rf命令既沒有警告信息,也沒有聲音提示。這確定是一個危險的工具,尤爲是在擁有超級用戶權限的時候。務必謹慎使用,請再三檢查你所要進行的操做是否符合預期。
命令:file
命令格式:file 文件名 命令說明:查看文件的類型
Linux上有三個不一樣的命令能夠完成這個任務。cat命令、more命令、less命令。
命令:cat
命令格式:cat 文件名 命令說明:查看指定文件的內容 命令格式:cat -n 文件名 命令說明:查看指定文件的內容,-n參數會給全部的行加上行號。 命令格式:cat -b 文件名 命令說明:查看指定文件的內容,-b參數會給有文本的行加上行號。 命令格式:cat -T 文件名 命令說明:查看指定文件的內容,-T參數會用^I字符組合去替換文中的全部製表符。
命令:more
命令格式:more 文件名 命令說明:查看指定文件的內容
命令:less
命令格式:less 文件名 命令說明:查看指定文件的內容
命令:tail
命令格式:tail 文件名 命令說明:查看指定文件的末尾10行內容 命令格式:tail -n 文件名 命令說明:查看指定文件的末尾n行內容 命令格式:tail -f 文件名 命令說明:查看指定文件的內容。用於實時監測系統日誌文件。
命令:head
命令格式:head 文件名 命令說明:查看指定文件的前10行內容 命令格式:head -n 文件名 命令說明:查看指定文件的前n行內容
本章涵蓋了在shell提示符下操做Linux文件系統的基礎知識。主要介紹了cd、ls、mv、rm、mkdir、rmdir、cat、more、less、tail、head命令。
本章學習命令我的總結以下:
cd:切換或進入目錄 ls:顯示當前目錄下的目錄和文件 mv:移動或重命名目錄或文件 rm:刪除目錄或文件 mkdir:建立目錄 rmdir:刪除目錄 cat:查看文本文件所有內容 more:查看文本文件所有內容 less:查看文本文件所有內容 tail:查看文本文件尾部部份內容 head:查看文本文件頭部部份內容