中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

高效Bash的使用技巧有什么呢

發布時間:2021-10-21 14:04:47 來源:億速云 閱讀:161 作者:柒染 欄目:大數據

今天就跟大家聊聊有關高效Bash的使用技巧有什么呢,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

這是一篇 Bash 的使用技巧內容,部分內容需要先具備一些基礎知識及 Linux 的基礎操作能力
主要內容分兩部分,一部分是關于 history 的,另一部分是關于操作的

我們在日常使用中,難免會使用到一些歷史命令或者有時需要對歷史命令進行更正,那么如何更加高效的來完成這些操作呢?

History

history 格式化

首先我們肯定會想到 history 命令,history 可以返回之前使用過的命令列表,就像這樣:

(Tao) ?  ~ history 10
    1  cd myzh
    2  cd zsh
    3  ls
    4  cat zshrc
    5  brew info tmux
    6  brew install tmux
    7  cd .tmux
    8  cd tmux
    9  cp tmux.conf ~/
   10  mv tmux.conf .tmux.conf

我們可以很方便的通過后面指定數字來返回固定數量的歷史記錄,但是這樣得到的結果,我們也只是知道使用它們的先后順序,我們想要得到更加詳細的信息,例如執行時間,那么我們可以這樣做:

(Tao) ?  ~ export HISTTIMEFORMAT='%F %T '

(Tao) ?  ~ history 10
    1 2016-02-09 15:38:40  cd myzh
    2 2016-02-09 15:38:44  cd zsh
    3 2016-02-09 15:38:51  ls
    4 2016-02-09 15:38:59  cat zshrc
    5 2016-02-09 15:39:04  brew info tmux
    6 2016-02-09 15:48:13  brew install tmux
    7 2016-02-09 15:48:17  cd .tmux
    8 2016-02-09 15:49:04  cd tmux
    9 2016-02-09 15:49:23  cp tmux.conf ~/
   10 2016-02-09 15:49:47  mv tmux.conf .tmux.conf

通過設置 HISTTIMEFORMAT 的環境變量,在歷史記錄中顯示了時間。

使用指定歷史命令

想要使用某條歷史記錄改如何操作呢? 我們使用 !序號, 比如我們想要執行第3條命令,那我們輸入 !3 即可:

(Tao) ?  ~ history 6
    1  cd myzh
    2  cd zsh
    3  ls
    4  cat zshrc
    5  brew info tmux
    6  brew install tmux

(Tao) ?  ~ !3
(Tao) ?  ~ ls

zshrc

重復執行了上面第 3 條命令。 如果我們想要執行倒數第n條,那就直接輸入 !-n

使用上條命令

當想要使用上條命令的時候,我們有下面 4 種方式:

  • !-1 回車

  • !! 回車

  • 輸入 Ctrl + p 回車

  • 按上箭頭回車

有興趣的小伙伴可以試下,這幾種用法都比較常見。

使用某些字符開頭或者包含這些字符在內的命令

比如,我們想要使用之前執行過的一條導入環境變量的語句,那么我可以執行 !export:

# 當然export也可以不輸完整
(Tao) ?  ~ !export    
(Tao) ?  ~ export HISTTIMEFORMAT='%F %T '

如果只記得命令中包含 xport 呢? 那當然也可以, 只要加個 ? 就可以:

(Tao) ?  ~ !?xport    
(Tao) ?  ~ export HISTTIMEFORMAT='%F %T '

獲取上條命令中的參數

比如 touch 了某個文件,現在要編輯它,那么只要執行 !$ 或者 !!:$ 即可:

(Tao) ?  ~ touch test.sh   
(Tao) ?  ~ vi !$   
vi test.sh

(Tao) ?  ~ vi !!:$
vi test.sh

這種方式只是獲取到了最后一位的參數, 那么假如我們想要獲取的不只是最后一個參數呢?使用 !* 或者 !!:* 即可:

(Tao) ?  ~ touch a b c
(Tao) ?  ~ vim !*
vim a b c
3 files to edit

(Tao) ?  ~ vim !!:*
vim a b c
3 files to edit

對上條命令中的參數做替換

難免有手誤的時候,那么如何快速進行替換呢? 我們可以使用 ^old^new 的命令,例如:

(Tao) ?  ~ cp /usr/local/etc/redis-sen.conf .
cp: /usr/local/etc/redis-sen.conf: No such file or directory
(Tao) ?  ~ ^sen^sentinel
cp /usr/local/etc/redis-sentinel.conf .

或者 我們還可以使用 !!:gs/old/new 這樣進行操作,例如:

(Tao) ?  ~ cp /usr/local/etc/redis-sen.conf .
cp: /usr/local/etc/redis-sen.conf: No such file or directory
(Tao) ?  ~ !!:gs/sen/sentinel
cp /usr/local/etc/redis-sentinel.conf .

如果我們只是部分內容做替換呢? 該如何操作?

只要使用 !!:x-y 來選擇上條記錄中的參數范圍,然后進行替換即可:

(Tao) ?  ~ mkdir -p data/db1 data/dc2 data/dc3
(Tao) ?  ~ mkdir -p !!:3-4:gs/c/b
mkdir -p data/db2 data/db3

組合使用

聰明的你應該已經發現, 上面我先寫了如何使用歷史命令,后來又介紹了如何對上條命令操作,那么把這兩部分內容組合起來會產生什么樣的效果呢?

(Tao) ?  ~ mkdir -p data/db1 data/dc2 data/dc3
(Tao) ?  ~ ls **/**
data/db1:

data/dc2:

data/dc3:
(Tao) ?  ~ mkdir -p !mkdir:3-4:gs/c/b
mkdir -p data/db2 data/db3
(Tao) ?  ~ ls **/**
data/db1:

data/db2:

data/db3:

data/dc2:

data/dc3:

對,就像上面這樣,我們可以通過各種組合來是我們對以前命令的修改執行更加靈活方便! Enjoy it !

操作部分

操作快捷鍵(emacs 模式)

  • Ctrl + a : 光標返回首位

  • Ctrl + e : 光標移至末尾

  • Ctrl + p : 上一個命令

  • Ctrl + n : 下一個命令

  • Ctrl + l : 清屏

  • Ctrl + d : 刪除當前光標處的內容

  • Ctrl + h : 回退一位

  • Ctrl + b : 光標向左一位

  • Ctrl + f : 光標向右一位

  • Ctrl + u : 剪切光標前的內容(全部)

  • Ctrl + w : 剪切光標前的內容(按詞)

  • Ctrl + k : 剪切光標后的內容

  • Ctrl + y : 將剪切的內容復制到光標后

  • Ctrl + t : 交換光標前的兩個字符順序

設置操作模式為 Vi 模式

set -o vi

搜索

Ctrl + r : 搜索歷史中輸入過的命令

看完上述內容,你們對高效Bash的使用技巧有什么呢有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

图木舒克市| 顺昌县| 勃利县| 西峡县| 麻城市| 烟台市| 清水河县| 深泽县| 安丘市| 防城港市| 石林| 驻马店市| 沾益县| 阿拉善左旗| 桃园县| 乐清市| 汕头市| 永登县| 太谷县| 乐安县| 万宁市| 八宿县| 城固县| 额敏县| 鄂温| 柞水县| 丰原市| 商洛市| 铜梁县| 广元市| 马鞍山市| 开封市| 万全县| 澎湖县| 桃源县| 东台市| 西宁市| 临沭县| 和顺县| 江陵县| 长寿区|