私はコマンドエイリアスをすばやくすぐに追加(およびリスト/削除)して、シェルが再起動されるまで持続するように(に追加されているように.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