文件管理類命令 : cp : 複製 cp SRC DEST 若是DEST不存在,系統會自動建立文件或目錄 若是DEST存在 : 若是SRC是一個文件 : 若是DEST是一個文件,會直接將SRC中的內容覆蓋DEST;所以爲防止誤操做,錯刪重要文件,建議配合-i選項使用,進行交互式刪除,但通常狀況下, 咱們所執行的cp命令就自動帶有-i選項 若是DEST是一個目錄,則會自動在DEST下建立一個同名文件,並將SRC中的內容複製至該文件中 cp SRC... DEST 若是SRC爲多個文件,則DEST必須爲一個目錄,且必須存在 cp SRC DEST 若是SRC爲一個目錄: 則必需要配合-r,-R選項一塊兒使用,才能夠進行遞歸複製 若是DEST不存在,則會建立該目錄,並將SRC中的全部文件複製至該目錄下 若是DEST存在,則會在DEST目錄下建立一個同名目錄,並將SRC中中的全部文件複製至該同名目錄下 若是DEST是一個文件 : 報錯 經常使用選項 : -i : interactive,交互式複製,只要爲了防止複製時,錯誤覆蓋目標文件內的重要內容,通常使用的cp命令,默認帶有-i選項 -r,-R: recursive,迭代複製目錄以及目錄內的全部文件,也能夠理解複製與原文件相關的全部文件或目錄 -a : archive,歸檔複製,徹底按照原文件本來樣子進行復制,包括複製原文件的所有屬性以及與該文件相關的全部文件;在複製文件的過程當中,並不必定會 保持原文件的本來樣子,如在複製符號連接文件時,僅僅只是將符號連接文件指向的內容複製至新文件中,而非複製符號連接文件自己 -a選項至關於 : -dR,至關於 : --preverse=ALL -d,--non-dereference : 複製符號連接文件時,僅僅只複製符號連接文件自己,而非複製符號連接文件指向的內容,但此時複製獲得的符號連接文件是損壞了的, 由於符號連接文件採用的相對路徑,由於咱們沒有複製符號連接文件指向的那個文件,因此致使符號連接文件損壞 --preserve=[attr_list] : mode : 權限 owership : 屬主屬組 timestamp : 時間戳 複製文件時,默認複製以上三個屬性 links : 連接屬性 xattr : 拓展屬性 context : 安全上下文 all : 表以上全部 --preverse中給定參數時,爲額外複製該屬性至新文件中 -p,--preverse : 複製文件時,複製mode(權限),ownership(屬主屬組),timestamp(時間戳) -v,--verbose : 顯示覆制時的詳細信息 -t : turn,複製時,將SRC放在後面,DEST放在前面 -f,--force : 強制複製,無需交互 =========================================================================================================================================================== mv : 移動 對於移動命令而言,沒有文件和目錄的區別,等同對待 mv SRC DEST 若是SRC是單個文件 : 若是DEST不存在,則會建立同名文件,並將原文件的內容複製至給文件中,刪除原文件 若是DEST存在,則會將原文件的內容覆蓋該文件,並刪除原文件 若是SRC是一個目錄,則會在目錄下,建立一個同名文件,並將原文件內容複製至該文件中,並刪除原文件 mv SRC... DEST 若是SRC是多個文件,則DEST必須是一個目錄且存在 經常使用選項 : -i : interactive -f,--force : 強制移動 ============================================================================================================================================================== rm : 刪除 經常使用選項 : -i : interactive -f,--force : 強制刪除 -r : recursive,迭代刪除 ================================================================================================================================================================ 文本編輯器 : nano vi/vim : i : insert,插入文本 ESC : 退出編輯狀態,進入命令模式 :w : 寫出,即保存 :q : 退出文本編輯器 ! : 表強制 ============================================================================================================================================================== bash的基本特性 : 1,命令別名 : alias : 查看或管理命令別名 alias name="value" 注 : 僅對當前shell進程,當前會話有效,若要用就生效,則需修改配置文件: 僅對當前用戶有效 : ~/.bashrc;對全部用戶均有效 : /etc/.bashrc,修改完配置文件後, 需重啓shell或從新讀取配置文件 :source /path/to/config.file 取消命令別名 : unalias name -a : 取消全部的命令別名 注 : 若是命令別名和本來的命令名稱相同時,執行原命令可 : /COMMAND =============================================================================================================================================================================== 2,glob(globbing) : bash中用於實現文件名通配的機制 通配符 : * : 匹配任意長度的任意字符 ? : 匹配任意單個字符 [] : 匹配指定範圍內的任意單個字符 注 : 其內部可以使用連字符,以表示一個連續序列 [a-z] : 不區分大小寫,匹配a-z連續序列中的任意單個字符 [A-Z] : 區分大小寫,匹配A-Z連續序列中的任意單個字符 [^] : 匹配指定字符集外的任意單個字符 專用字符集 : 它們表示一個字符集合,而非字符集中的某單個字符,因此使用時,格式必須爲:[專用字符集] [:digit:] : 0-9 [:lower:] : 小寫字母集 [:upper:] : 大寫字母集 [:alpha:] : 任意字母集(包括大小寫) [:alnum:] : 任意字母和數字集 [:space:] : 空格 [:punct:] : 標點符號集 ======================================================================================================================================================================== 3,bash的快捷鍵 ctrl + l : clear ctrl + a : 光標跳轉至命令首部 ctrl + e : 光標跳轉至命令尾部 ctrl + c : 終止命令的執行 ctrl + u : 刪除命令首部至光標之間的全部命令內容 ctrl + k : 刪除光標至命令尾部之間的全部命令內容 ============================================================================================================================================================================ 4,bash的輸入輸出重定向及管理 標準輸入 :當某個命令沒有給定從哪裏讀取數據的參數時,bash一般定義了一個讀取的數據的標準位置,即鍵盤keyboard(0,文件描述符,linux中一切皆文件,所以咱們能夠將鍵盤看作一個文件, 一個bash定義的讀取數據的標準位置) 標準輸出 : 當某個命令沒有給出將數據存到哪裏時,bash定義了一個寫出數據的標準位置,即監視器或顯示器(monitor)(1) 文件標識符 : 人類以文件名識別文件,而計算機則是以文件標識符識別文件,並實現對文件的追蹤 標準錯誤輸出 : 錯誤信息的標準輸出位置,即顯示器或監視器(monitor)(2) I/O輸出重定向,即改變數據流的默認輸入輸出位置或標準輸入輸出 輸出重定向 : 注 : 輸出重定向的文件不存在時,會自動建立該文件 覆蓋重定向 >: 當重定向的文件存在時,會覆蓋原文件的內容 注 : 覆蓋重定向可能會致使錯誤刪除重要文件內容,所以可經過bash的特性 : set -C,設置當目標文件存在時,禁止覆蓋重定向, 但在此設置下,咱們可使用 >| 進行強制覆蓋重定向,set +C取消上述設置 追加劇定向 >>: 當重定向的文件存在時,會將輸出數據流追加在目標文件尾部 錯誤重定向 : 2> : 覆蓋重定向錯誤數據流 2>> : 追加劇定向錯誤數據流 標準輸出和錯誤輸出各自定向不一樣的位置 : COMMAND > /path/to/somewhere 2> /path/to/somewhere 合併標準輸出和錯誤輸出爲同一個數據流進行重定向 : &> : 覆蓋重定向 &>> : 追加劇定向 COMMAND > /path/to/somewhere 2> &1 COMMAND >> /path/to/somewhere 2>> &1 注 : 將錯誤數據流同標準輸出合併並進行重定向 標準輸入 : < tr : translate,替換或刪除字符 tr [option]... set1,set2 注 : 默認tr命令只可以從標準輸入處得到數據,並進行替換或刪除 要求兩個字符集必須等長,則會以set2中對應位置的字符替換標準輸入中出現的set1中的字符 -d : 刪除標準輸入中出現的給定字符集中的字符 Here Documentation : << 在此處建立文檔,容許咱們bash會話中一次性輸入大量文本,並遇到特殊字符時,結束輸入,如cat <<EOF(結束字符可隨意) ================================================================================================================================================================================== 管道 : 即將上一個命令的輸出做爲下一個命令的輸入,與linux中都是功能單一的小程序,並經過組合這些小程序以完成更爲複雜的功能原則 COMMAND1 | COMMAND2 | COMMAND3 | ... | COMMANDN 注 : 最後一個命令會在當前shell的子shell進程中進行 ================================================================================================================================================= tee : 一路輸入,兩路輸出,從標準輸入讀取數據,並數據輸出到標準輸出和指定文件中 注 : 默認是覆蓋輸出 ================================================================================================================================================== 文本處理工具 : wc : word counting,統計指定文件的行數,單詞數(以空白分隔的字塊數),字節數(也即字符數) -l : 只顯示行數 -w : 只顯示單詞數 -c : 只顯示字符數(字節數) ifconfig : 顯示當前系統的網絡接口信息 cut : 按照行和指定分隔符切割整個文件 -d DELIMITER : 指定切割文件的分隔符 -f # : 指定顯示哪些字段,顯示多個離散字段時,以","分隔,顯示多個連續字段時,可使用"-"連字符 --output-delimiter DELIMITER: 輸出時,鏈接多個字段的分隔符 sort : 排序,默認將指定文件每行的首字母按照在ASCII中順序進行排序 -r : reverse,逆序排序 -f : 忽略字母大小寫 -t : 指明字段分隔符 -k : 以指定字段首字母進行排序 -n : 按照數值大小進行排序 -u : unique,去重顯示,存在多行徹底同樣時,只顯示其中一行 unique : 去重 注 : 連續且徹底同樣時,方爲重複 -c : count,統計每一行出現的次數 -d : 僅顯示屢次重複出現的行 -u : 僅顯示只出現過一次的行