Bash

像 history 和 fc 但用於有用命令的個性化列表

  • July 4, 2022

我花了幾個小時試圖輕鬆訪問我必須在某個環境中使用的最有用的命令,我有一個“不可思議”的想法,即為此目的使用歷史記錄,總而言之,我有一個名為 .bash_history_template 的文件使用我一直使用的那些命令,我​​添加瞭如下內容:

~/.bash_history_template >> ~/.bash_history

在 ~/.bashrc 中輕鬆訪問我一直使用的命令的有序列表(它更複雜,但你明白了)

我的問題是:有沒有其他方法,而不是使用歷史記錄或 fc,使用另一個命令來獲取位於文件 .bash_history_template 上的現有命令,並使用非常棒的快捷方式來執行和編輯它們(例如!編號或 fc 編號)

不完全是您所要求的,而是另一種選擇。

搜尋您的~/.bash_history文件以查找經常執行的命令。分析同一命令的多個實例,尋找可以變成變數的東西。

您還可以查看這些命令的手冊頁,了解您將來可能使用的選項——但不要為此花費太多時間或精力,專注於您已經在使用的特性/選項/參數。您可以隨時更新腳本以在實際需要時添加新功能。

編寫包裝腳本來執行這些命令,從命令行獲取變數的參數。如有必要,用於getopts處理腳本的選項。腳本可以是 bash、awk、perl 或任何您覺得可以輕鬆使用且適合手頭任務的腳本。

如果您使用getopts,請嘗試使用作為有用助記符的選項字母。或其他程序共有的選項字母,尤其是類似或概念相關的程序。例如,如果您的腳本需要執行任何正則表達式匹配-i以不區分大小寫,則-v可以反轉匹配。如果它從標準輸入獲取項目列表(例如文件名)或在標準輸出上生成一個,-z用於 NUL 分隔的輸入/輸出 - 這樣,您的腳本可以安全地用於其他程序的管道中(大多數 GNU 工具,例如)使用 NUL 分隔的輸入。

創建一個名為的目錄~/bin/並將其添加到您的 $PATH(編輯您的~/.bashrcor ~/.bash_profile)。將腳本保存在 ~/bin/.

如果其中一些需要由多個使用者(例如 root 和您的使用者)執行,那麼請考慮將這些腳本放入其中/usr/local/bin/

腳本名稱將比歷史行號更容易記住(並且在您使用 shell 時不會更改)。您可以為每個腳本添加註釋,描述它的作用以及它需要什麼參數。甚至添加一個-h--help選項。

幾十年來我一直在做這件事——幾乎任何我做的次數超過幾次並且可能經常做的事情都會變成一個腳本——最難的部分是為腳本想一個有用的、描述性的名字:)

順便說一句,我建議git init在您的 ~/bin/ 目錄中執行,這樣您就可以git用來保存對腳本的所有更改的修訂歷史記錄。

引用自:https://unix.stackexchange.com/questions/708501