bash的特性1.命令歷史:history-c:清空當(dāng)前歷史命令;-d OFFSET [n]:刪除指定位置的命令;-w:將當(dāng)前歷史命令緩沖區(qū)命令寫入歷史命令文件中(HISTSIZE(命令歷史緩沖區(qū)大?。┠J(rèn)為1000)
!n:執(zhí)行命令歷史中的第n條命令;!-n:執(zhí)行命令歷史中倒數(shù)第n條命令;!?。簣?zhí)行上一條命令;!string:執(zhí)行命令歷史中最近一個(gè)以指定字符串開頭的命令!$:引用上一個(gè)命令的最后一個(gè)參數(shù)Esc松開后按 . :引用上一個(gè)命令的最后一個(gè)參數(shù)Alt+ . :引用上一個(gè)命令的最后一個(gè)參數(shù)2.命令補(bǔ)全,路徑補(bǔ)全
3.命令別名:aliasalias命令用來設(shè)置指令的別名。我們可以使用該命令可以將一些較長(zhǎng)的命令進(jìn)行簡(jiǎn)化。使用alias時(shí),用戶必須使用單引號(hào)
比如在 4.命令替換:把命令中某個(gè)子命令替換為其執(zhí)行結(jié)果的過程 $(COMMAND)或者 `COMMAND`echo “The current directory is $(pwd).” #這樣就會(huì)輸出當(dāng)前目錄【總結(jié)】bash支持的引號(hào):` `:命令替換“”:弱引用,可以實(shí)現(xiàn)變量替換‘ ’:強(qiáng)引用,不完成變量替換5.命令行編輯:
6.命令行展開在Linux bash中可以使用命令行展開特性一步完成需要分開成多步完成的操作,達(dá)到事半功倍的效果。在Linux指令參數(shù)位置使用
7.文件名通配:globbing# man 7 glob 可獲得以下列表:*:任意長(zhǎng)度的任意字符?:任意單個(gè)字符[ ]:匹配指定范圍內(nèi)的任意單個(gè)字符 [a-z], [A-Z], [0-9], [a-zA-Z] [[:space:]]:空白字符 [[:punct:]]:標(biāo)點(diǎn)符號(hào) [[:lower:]]:小寫字母 [[:upper:]]:大寫字母 [[:alpha:]]:大小寫字母 [[:digit:]]:數(shù)字 [[:alnum:]]:數(shù)字和大小寫字母 [^]:匹配指定范圍之外的任意單個(gè)字符 [^0-9]:非數(shù)字 [^[:alpha:]]:非字母8.管道及重定向I/O重定向:改變數(shù)據(jù)輸入/輸出來源>:覆蓋輸出,原有內(nèi)容被覆蓋;>>:追加輸出,保留原有內(nèi)容,在尾部新增新內(nèi)容;set -C:禁止對(duì)已經(jīng)存在文件使用覆蓋重定向,若要強(qiáng)制覆蓋輸出,則使用 >|;set +C:關(guān)閉上述功能;2>:只能重定向錯(cuò)誤輸出,不能輸出標(biāo)準(zhǔn)輸出;2>>:追加,重定向錯(cuò)誤輸出;&>:重定向標(biāo)準(zhǔn)輸出或錯(cuò)誤輸出至同一個(gè)文件;<><:here document,在此處生成文檔,后一般加="" eof(end="" of="" file)="" 或end,表示文檔結(jié)束標(biāo)記。#="" cat="" mp/myfile.txt="">:here>管道前一個(gè)命令的 輸出,作為后一個(gè)命令的 輸入(組合小命令完成復(fù)雜任務(wù))命令1 | 命令2 | 命令3 | … 比如:在我的答案·生信編程直播(第一題)-人類基因組的外顯子區(qū)域到底有多長(zhǎng)中,我就使用了管道來解決問題~ tee命令用于將數(shù)據(jù)重定向到文件,另一方面還可以提供一份重定向數(shù)據(jù)的副本作為后續(xù)命令的stdin。簡(jiǎn)單的說就是把數(shù)據(jù)重定向到給定文件和屏幕上。 -a:向文件中重定向時(shí)使用追加模式; |
|
|