私は、特定の環境で使用する必要がある最も便利なコマンドに簡単にアクセスしようとし、数時間を費やし、この目的のために履歴を使用するという「信じられないほどの」アイデアを得ました。とにかくbash_history_templateというファイルがあります。よく使うコマンドに以下を追加しました。
~/.bash_history_template>>~/.bash_history
~/.bashrcでは、よく使うコマンドのリストに簡単にアクセスできます(もっと複雑ですが理解できます)。
私の質問は:履歴やfcを使用する代わりに、別のコマンドを使用して.bash_history_templateファイル内の既存のコマンドをインポートし、クールなショートカットを使用して実行および編集する他の方法があります(例:!numberまたはfc number)。 。
答え1
まさにあなたが要求したものではありませんが、他のオプションです。
~/.bash_history
頻繁に実行されるコマンドをファイルから検索します。同じコマンドの複数のインスタンスを分析して、変数に変換できる項目を見つけます。
また、これらのコマンドのマニュアルページを確認して、後で使用できるオプションを確認することもできます。しかし、これにあまりにも多くの時間や労力をかけずに、すでに使用している機能/オプション/引数に集中してください。実際に必要なときはいつでもスクリプトを更新して新しい機能を追加できます。
これらのコマンドを実行するラッパースクリプトを作成して、コマンドラインから変数のパラメータを取得します。必要にgetopts
応じてオプションを使用してスクリプトを処理します。これらのスクリプトは、bash、awk、Perl、または使用するのに適しており、現在の作業に適していると思うすべてのものにすることができます。
を使用している場合は、getopts
便利なニーモニックとして機能するオプション文字を試してください。または、他のプログラム(特に類似または概念的に関連するプログラム)に共通のオプション文字です。たとえば、スクリプトで大文字と小文字を区別しない正規表現の一致を-i
実行する必要がある場合は、-v
一致を逆にします。 stdinから一連の項目(ファイル名など)を取得する場合、またはstdoutから項目のリストを生成する場合は、-z
NULで区切られた入力/出力を使用してください。これにより、スクリプトを他のプログラム(ほとんどのGNUツールなど)と一緒にパイプできます。 NULで区切られた入力で動作します。
というディレクトリを作成し、それを$ PATHに追加します(または~/bin/
編集)。 ~/bin/ にスクリプトを保存します。~/.bashrc
~/.bash_profile
これらのいくつかを複数のユーザー(ルートやユーザーなど)が実行する必要がある場合は、スクリプトをそこに配置することを検討してください/usr/local/bin/
。
スクリプト名は前の行番号よりも覚えやすいです(シェルを使用しても変更されません)。各スクリプトに、実行操作と必要なパラメータを説明する説明を追加できます。または-h
、オプションを追加することもできます--help
。
私は何十年もこの仕事をしてきました。私が何度もやったことは、おそらくスクリプトに変わったことでしょう。最も難しいのは、スクリプトの有用で説明的な名前を見つけることです:)
ちなみに、スクリプトに対するすべての変更のリビジョン履歴を保存するgit init
ために使用できるように、 ~/bin/ ディレクトリで実行することをお勧めします。git
答え2
@casの答えとこの答えの組み合わせは私の問題を解決しました。
phew() {
c="echo 'This is not really my super long winded command'"
read -p "Hit enter to run: $c"
$c
}
ソース:https://stackoverflow.com/questions/62667273/can-bash-write-a-command-to-the-terminal-input