在Bash中的操作

2021-06-16 05:18:01 字數 2683 閱讀 1028

命令列編輯操作 功能

ctrl+b或左箭頭鍵

左移乙個字元(移至前乙個字元)

ctrl+f或右箭頭鍵

右移乙個字元(移至後乙個字元)

ctrl+a

移至行首

ctrl+e

移至行尾

esc b

左移乙個單詞

esc f

右移乙個單詞

del刪除游標所在處的字元

ctrl+d

刪除游標所在處的字元

backspace或ctrl+h

刪除游標左邊的字元

ctrl+k

刪除至行尾

命令歷史

在bash中,history命令能夠儲存最近所執行的命令。這些命令的歷史記錄號從1開始,只有有限個命令可以被儲存起來,最多500個,即history命令的歷史記錄號預設值為500。要檢視最近執行的命令,只要鍵入history命令,然後鍵入回車鍵,最近執行過的命令即按先後順序被顯示出來(各條命令前的數字為歷史記錄號)。

[例]$ history

1 cp mydata today

2 vi mydata

3 mv mydata reports

4 cd reports

5 ls

…所有這些命令都被稱為事件(event),乙個事件表示乙個操作已經發生,即乙個命令已被執行。這些事件根據它們被執行的先後順序用數字標識,這一標識稱為歷史事件號。最後執行的歷史事件的事件號最大。每個事件都可由它的歷史事件號或命令的初始字元或字串等確定。

利用history命令能夠查詢以前的事件,並可把它們顯示到命令列上執行這一事件。最簡便的方法就是利用上下箭頭鍵,把先前的事件逐次顯示到命令列。這個操作不需要執行history命令就可以執行。按動一下上箭頭鍵,那麼上一次執行的乙個事件就將出現在命令列上,再按一下,上一次的前一事件又會出現在命令列上;按動一下下箭頭鍵,將會使當前事件的下一事件出現在命令列上。

bash也可以通過鍵入esc、tab鍵來完成對歷史事件的字元擴充套件。和標準命令列擴充套件特性一樣,鍵入歷史事件的部分字串,然後鍵入esc,再鍵入tab鍵,與剛才鍵入的字串相匹配的歷史事件將自動擴充套件並回顯到命令列處。如果不止乙個事件與輸入的字串相匹配,就會聽到一聲響鈴,繼續鍵入字元或字串,shell將會唯一確定使用者所要鍵入的歷史事件。

還有乙個查詢和執行歷史事件的命令——!命令。在!命令後鍵入與歷史事件相關聯的字元,這個關聯字元可以是歷史事件的歷史事件號,也可以是該事件的前幾個字元。在下面的例子中,查詢到歷史事件號為3的事件,然後又用其開頭的幾個字元去匹配,也查詢到該命令。

[例]$ !3

mv mydata reports

$ !mv

mv mydata reports

也可以用乙個偏移量(相對於歷史事件列表中最後乙個事件)來查詢歷史事件。負的偏移量將從歷史事件列表表尾向前偏移。在下面的例子中,歷史事件號為2的事件「vi mydata」就是用乙個負的偏移量查詢到的。必須注意的是,這個偏移量是相對於歷史事件列表中的最後乙個事件的。在本例中,歷史事件列表中最後乙個事件是事件5,歷史事件列表中第乙個事件為1。從歷史事件號為5的事件,往前偏移4,即是歷史事件號為2的事件。

[例]$ !-4

vi mydata

[例]$ !!

lsmydata today reports

也可以用「模式」來搜尋乙個歷史事件。搜尋的「模式」必須用符號「?」括起來。下例是用「模式」「?myd?」來搜尋歷史事件號為3的歷史事件「vi mydata」。

[例]$ !?myd?

vi mydata

查詢歷史事件 

可以在命令列上編輯歷史事件列表中的事件。表10-3列出了查詢歷史事件列表的各種操作。

表10-3 查詢歷史事件操作

查詢歷史事件操作 功能

ctrl+n或向下游標鍵

移至歷史事件列表中當前事件的下一歷史事件

ctrl+p或向上游標鍵

移至歷史事件列表中當前事件的前一歷史事件

esc <

移至歷史事件列表表首

esc >

移至歷史事件列表表尾

!event_num

用歷史事件號來定位乙個歷史事件

!characters

用歷史事件的字元字首來查詢乙個歷史事件

!?pattern

用「模式」來查詢歷史事件列表中的事件

!-event_num

通過偏移量來定位歷史事件

配置history:histfile及histsize 

系統儲存的歷史事件數被儲存在乙個特定的系統變數中,這個變數就是histsize。這個變數的預設值通常被設定為500。這個值可以被修改。例如:

$ histsize=10

將histsize的值重新設定為10。

歷史事件被儲存在乙個檔案中,檔名由變數histfile指定。通常這個檔案的預設名是.bash_history。通過給變數histfile賦值,可以指定新的檔名。

[例]$ echo $histfile

/home/lisa/.bash_history

$ histfile=」/home/lisa/newhist」

$ echo $histfile

/home/lisa/newhist

以上操作先顯示變數histfile的值,然後賦予它新的值「/home/lisa/newhist」,以後所有的歷史事件將被儲存在newhist檔案中。

摘自《turbolinux》

bash中的變數在curl中的掙扎

37屆物理競賽的成績出來了,給了乙個位址 可以輸入身份證號和准考證號查詢,但是作為指導老師,在查詢學生成績的時候發現一名同學的准考證號登記錯了 不想去跑趟找學生,考慮到查詢平台沒有延yan遲zheng。所以想寫乙個python指令碼嘗試6位的准考證號 前兩位沒錯 使用了requests庫。但在測試的...

怎樣在HP UX中安裝bash?

注 hpux全稱是hewlett packard unix是惠普9000系列server的unix作業系統,能夠在hp的pa risc處理器 intel的itanium處理器的電腦上執行。依賴元件 gettext,libiconv,termcap gettext 0.19.5.1 hppa 11.3...

git中Bash基本操作命令

1 cd 改變目錄。2 cd 回退到上乙個目錄,直接cd進入預設目錄 3 pwd 顯示當前所在的目錄路徑。4 ls ll 都是列出當前目錄中的所有檔案,只不過ll 兩個ll 列出的內容更為詳細。5 touch 新建乙個檔案 如 touch index.js 就會在當前目錄下新建乙個index.js檔...