成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

善用Bash history 命令

系統 Linux
善用 Bash history 命令以上的這些功能都可以提高你的工作效率,因此,讓良許為你一一講解 Bash history 命令以及它常用的功能。

相信大家平時都有用 history 命令來查看命令歷史記錄,但是實際上 history 命令并非只有這個功能,history 還有很多有用的功能。尤其是 Bash 版本的 history 命令,它所提供的功能比所有其他的 Linux Shell history 命令所提供的都要多。

[[340321]]

Bash 的歷史悠久,是一個古老的 Shell ,并且它還有一個更古老的前身 the Bourne Shell (sh) 。因此,Bash 的 history 命令是所有的 Linux Shell history 命令中功能最豐富的。Bash 版本的 history命令不僅支持反向搜索、快速調用,還支持重寫歷史記錄等等功能。

善用 Bash history 命令以上的這些功能都可以提高你的工作效率,因此,讓良許為你一一講解 Bash history 命令以及它常用的功能。

history 是內置的命令

history 命令與許多其他的命令不同。你可能習慣于命令都作為可執行文件放置在常見的系統級的位置,例如 /usr/bin,/usr/local/bin 或 〜/ bin。但是,內置的 history 命令并不在你的環境變量 PATH 保存的路徑中的。

實際上,history 命令并沒有保存在物理位置中:

  1. $ which history 
  2.  
  3. which: no history in [PATH] 

history 其實是 Shell 本身的一個內置函數:

  1. $ type history 
  2. history is a shell builtin 
  3. $ help history 
  4. history: history [-c] [-d offset] [n] or 
  5. history -anrw [filename] or 
  6. history -ps arg [arg...] 
  7.  
  8. Display or manipulate the history list. 
  9. [...] 

由于 history 是 Shell 的內置函數,所以每種 Shell 的 history 函數都是獨一無二的。因此,你在 Bash 中能使用的功能可能無法在 Tcsh,Fish 或 Dash 中使用,同樣的,在 Tcsh,Fish 或 Dash 中能使用的功能也可能無法在 Bash 中使用。

查看你的 Bash 命令歷史記錄

history 命令最基本,最頻繁的用法就是查看你的 Shell 會話的命令歷史記錄:

  1. $ echo "hello" 
  2. hello 
  3. $ echo "world" 
  4. world 
  5. $ history 
  6.   1  echo "hello" 
  7.   2  echo "world" 
  8.   3  history 

事件提示符

事件提示符 (!) 是按事件搜索歷史記錄的。這里的事件,指的是每一條記錄在歷史記錄里的命令。換句話說,它就是一行命令,并被數字索引標記著以供引用。

要重新運行歷史記錄中的一個命令,用 ! 直接加上 (無空格) 你想要運行的命令前面的索引數字即可。例如,假設歷史記錄中的第一條指令是 echo hello ,然后你想重新運行它:

  1. $ !1 
  2. echo "hello" 
  3. hello 

你還可以通過從歷史記錄中的當前位置開始提供負數的行來使用相對定位。例如,返回歷史記錄中倒數第3條命令:

  1. $ echo "alvin" 
  2. alvin 
  3. $ echo "hello" 
  4. hello 
  5. $ echo "world" 
  6. world 
  7. $ !-3 
  8. echo "alvin" 
  9. alvin 

如果你只想返回上一條命令,你可以使用簡寫 !! 來替代 !-1。這整整節省了一次按鍵的時間!!!

  1. $ echo "alvin" 
  2. alvin 
  3. $ !! 
  4. echo "alvin" 
  5. alvin 

字符串搜索

你也可以通過特定的字符串來搜索歷史記錄中的命令并運行它。

若是想要搜索以特定字符串開頭的命令,就用 ! 直接加上 (無空格) 你想要搜索的字符串:

  1. $ echo "alvin" 
  2. alvin 
  3. $ true 
  4. $ false 
  5. $ !echo 
  6. echo "alvin" 
  7. alvin 

你還可以搜索在任意位置包含特定字符串的命令。要做到這點,你只需要用 ! 直接加上前后兩端都被 ? 包圍的特定字符串即可,像這樣:

  1. $ echo "alvin" 
  2. alvin 
  3. $ true 
  4. $ false 
  5. $ !?alvin? 
  6. echo "alvin" 
  7. alvin 

如果你知道你想要搜索的字符串在命令的最后面,那就可以省略字符串后面的 ?,像這樣:

  1. $ echo alvin 
  2. alvin 
  3. $ !?alvin 
  4. echo alvin 
  5. alvin 

值得注意的是,若是歷史記錄中包含目標字符串的命令不止一條,則它只會執行符合條件的命令中最后的一條:

  1. $ echo "hello world" 
  2. hello world 
  3. $ echo "hello alvin" 
  4. hello alvin 
  5. $ !?hello? 
  6. echo "hello alvin" 
  7. hello alvin 

字符串替換

你可以搜索一個特定的字符串并用新字符串替換它,從而更改命令:

  1. $ echo "hello" 
  2. hello 
  3. $ echo "world" 
  4. world 
  5. $ ^hello^alvin 
  6. echo "alvin" 
  7. alvin 

但是它只能替換第一次出現的目標字符串,若是命令中出現兩次目標字符串,則只有第一次出現的會被替換,像這樣:

  1. $ echo "hello hello" 
  2. hello hello 
  3. $ ^hello^alvin 
  4. echo "alvin hello" 
  5. alvin hello 

與字符串搜索一樣,當歷史記錄中包含目標字符串的命令不止一條時,只替換并執行最后一條:

  1. $ echo "hello world" 
  2. hello world 
  3. $ echo "hello" 
  4. hello 
  5. $ ^hello^alvin 
  6. echo "alvin" 
  7. alvin 

充分利用 history 命令

實際上,Bash 的 history 命令的功能遠不止本文所提到的,但這是你習慣使用 history 命令的一個很好的開始,而不僅僅是利用 history 來查看歷史記錄。要經常使用 history 命令,看看你只利用 history 命令而不輸入具體的指令能完成多少事情,你會被驚艷到的。

本文授權轉載自公眾號「良許Linux」。良許,世界500強外企Linux開發工程師,公眾號里分享大量Linux干貨,歡迎關注!

 

責任編輯:趙寧寧 來源: 良許Linux
相關推薦

2020-06-24 15:30:39

Bashhistory命令Linux

2021-05-25 09:01:21

Linux命令Bash histor

2011-02-16 09:23:42

2015-06-19 11:00:09

bash

2010-06-23 17:34:03

Linux Bash

2010-06-23 10:03:18

Linux Bash命

2018-06-26 09:15:24

Linux命令history

2023-02-02 14:06:00

history命令技巧

2010-06-23 17:37:14

Linux Bash

2009-06-22 10:09:18

LinuxADSL撥號

2018-01-18 12:36:14

Linuxbashhistory

2010-04-07 17:55:12

Unix命令

2010-06-23 17:16:33

Linux Bash

2010-06-23 16:31:10

Linux Bash

2010-06-23 17:29:07

Linux Bash

2021-01-08 09:35:41

LinuxHistory命令

2010-06-23 10:25:40

Linux Bash命

2010-06-23 14:37:57

Linux Bash命

2010-06-23 14:45:02

Linux Bash

2012-05-10 10:53:10

Linuxhistory
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91久久精品日日躁夜夜躁国产 | 国产 欧美 日韩 一区 | 国产亚洲精品久久情网 | 99精品国产在热久久 | 久久精品欧美一区二区三区不卡 | 欧美高清视频一区 | 日韩久久精品视频 | 国产网站在线免费观看 | 天天av综合 | 久久久久久国产精品 | 日韩精品一区二区三区 | 日韩精品一区二区不卡 | 午夜精品一区二区三区三上悠亚 | 亚洲视频手机在线 | 精品国产一区二区在线 | 国产成人高清视频 | www.成人.com| 久久久精品网 | 久久伊人一区 | 欧美一级做a爰片免费视频 国产美女特级嫩嫩嫩bbb片 | 久久久女女女女999久久 | 亚洲国产专区 | 国产麻豆乱码精品一区二区三区 | 免费激情 | 三级免费 | 日韩一区在线观看视频 | 草久久 | 久久精品99 | 人人人人干 | 日韩免费高清视频 | 亚洲欧美日韩电影 | 韩日视频在线观看 | 颜色网站在线观看 | 一区二区三区欧美 | 91高清视频在线观看 | 欧美成人a∨高清免费观看 老司机午夜性大片 | 99视频在线免费观看 | 午夜大片| 欧美精品久久久久 | 青娱乐一区二区 | 中文字幕在线视频一区二区三区 |