コマンドエイリアスをすばやく追加、一覧表示、削除するユーティリティはありますか?

コマンドエイリアスをすばやく追加、一覧表示、削除するユーティリティはありますか?

私はコマンドエイリアスをすばやくすぐに追加(およびリスト/削除)して、シェルが再起動されるまで持続するように(に追加されているように.bashrc)できるようにしたいと思います。私に役立つ事前に作成されたユーティリティ/スクリプト/何がありますか?

理想的には、使用例は次のとおりです。

aliasutil add "gcm" "git checkout master"
aliasutil add "gfp %1" "git push --force %1"
aliasutil list
aliasutil remove "gcm"

答え1

aliasエイリアスの生成とリストを処理します。unalias削除するプロセスを進めてください。必要に応じて、bashのhelp組み込みhelp aliasおよび/help unaliasまたはbashのマニュアルページを使用して詳細を確認できます。

これを保存するために、私は長年にわたって次の方法を使用してきました。

$ alias savealias='alias > ~/.bash-aliases'
$ savealias

これで、すべてのエイリアス(新しく定義されたエイリアスを含む)savealiasがに保存されます~/.bash-aliases。必要に応じてシェルスクリプトのように編集できるプレーンテキストファイルです。たとえば、私のコンテンツには次の行が含まれています。

alias acs='apt-cache show'
alias acss='apt-cache search'
alias loadalias='. ~/.bash-aliases '
alias mq='mailq | grep "^[0-9A-Z]"'
alias savealias='alias >~/.bash-aliases'
alias ttystat='echo $(tty) $TERM ${COLUMNS}x$LINES'
alias where='type -all'
alias which='type -path'

他にもたくさんあります。

~/.bash_profile、~/.bashrc、または/etc/profileに以下を追加して、ログイン時に保存されたエイリアスをロードします。

[ -e ~/.bash-aliases ] && . ~/.bash-aliases

つまり、「.bash-aliasesファイルが私のホームディレクトリにある場合はインポートされます」

この方法では、エイリアスに対するすべての変更は、実行しない限りログアウト時に失われます。savealiasこれには、エイリアスの追加、編集、削除も含まれます。

答え2

私が知っている限り、これを行うことができるツールはありませんが、ほとんどのタスクを完了するには既存のユーティリティを使用できる必要があります。エイリアスをどれだけ同期させるかによって、.bashrc各コマンドラインの上または前に次のコマンドを使用してリストをインポートできますPROMPT_COMMAND

ALIAS_FILE='~/.aliases'
PROMPT_COMMAND=". $ALIAS_FILE"

aliasutil add "gcm" "git checkout master"

echo 'alias gcm="git checkout master"' >> $ALIAS_FILE

aliasutil add "gfp %1" "git push --force %1"

%1それを論拠にするつもりですか?エイリアスはパラメータをサポートしていないため、これを達成するには関数を生成する必要があります。

Aliasユーティリティリスト

cat $ALIAS_FILE

aliasutil は「gcm」を削除します。

sed -i '/^alias gcm=/d'
unalias gcm

答え3

@Thorの答えに触発され、これを直接実装したときに他の人がうまくインストールできるツールを作成すると思いました。https://github.com/talwrii/aliasutil

これはbashで動作zshし、bash(テストされていない)でも機能すると予想されます。

使用している場合は、をzsh使用してインストールできますzplug

source /usr/share/zplug/init.zsh
zplug talwrii/aliasutil
zplug install
zplug load

関連情報