alias
具体的な内容がどこで宣言されたかを探そうとします。エイリアスを見つけるために、私が知っている一般的な場所をすべて検索しました。
- ~/.bashrc
- ~/.bash_profile
- /etc/bashrc
- /etc/設定ファイル
不運。
alias
私はこれを行うと、次のような結果が得られるので、これを知っていますwhich COMMAND
。
alias COMMAND='/path/to/command'
/path/to/command
alias
名前でのみ知られているファイル宣言を見つける方法はありますかalias
?
答え1
/etc/profile.d/
違反事項があるか調べますalias
。
以下を実行して見つけることもできます。
grep -r '^alias COMMAND' /etc
その後、grep
ファイルで始まる行を繰り返し検索しますalias COMMAND
。
すべて失敗したら最後に入れてください~/.bashrc
unalias COMMAND
答え2
試すことができるいくつかのタスクは次のとおりです。
bash -v
シェルの起動中にどの行を読み込んでいるかを確認するために使用されます。bash -x
シェルの起動中にどのコマンドが実行されているかを確認するために使用されます。- 単一の起動ファイルとしてのみ実行
bash-v
この-v
オプションを使用すると、bash
読み取るすべてのスクリプトファイルのすべての行が印刷されます。
走り始める
bash -i -v >bash-i.out 2>&1
5〜10秒ほど待ってからを押しますCtrl+C。
bash-i.out
これにより、すべての起動ファイルが一緒にマージ(またはリンク)されているのと同じ名前のファイルが提供されます。
次に、less
を使用してファイルを開き、を使用してエイリアスを検索します/aliasname
。
次に、ファイルの他の行に関連して、このエイリアスが表示される場所を比較してみましょう。たとえば、ほとんどのシステムでは、/etc/bash.bashrc
上部/etc/bash.bashrc
に~/.bashrc
。
一番上にあると、~/.bashrc
エイリアスを定義する開始ファイルである可能性が高くなります。それ以外の場合は、ファイル内にあるか(ドットコマンド)を介して埋め込まれたファイルにあります。/etc
~/.bashrc
source
.
エイリアスが表示されない場合はお試しください。
bash -l -v >bash-l.out 2>&1
これはbashがログインシェルになり、andの代わりにand/etc/profile
などの他の起動ファイルを読み取るように指示します。~/.bash_profile
/etc/bash.bashrc
~/.bashrc
バッシュ-x
bash -v
これが明確な答えを与えていない場合は、シェルが読んでいる行ではなく、シェルが実行されているコマンドを印刷するランニングを試してみてくださいbash -x
。
方法は基本的に上記と同じで、に-v
変更しました-x
。 (必要であれば、2つを同時に使用することもできます。)
単一の起動ファイルとしてのみ実行
bash -i --rcfile="$HOME/.bashrc"
エイリアスがあることを確認してください。
システムにこの機能がある場合は、rcfile
次のように設定して同じことを試してください。/etc/bash.bashrc
それでは試してください。
bash -l --rcfile="$HOME/.bash_profile"
profile
そして、名前に含まれるすべてのbash起動ファイルに対して同じことを行い$HOME/.bash_profile
ます/etc/profile
。
どちらにでもエイリアスを表示することで、どのファイルを見るべきかを知ることができます。
答え3
たぶんあなたでしょうか.xinitrc
?また、あなたのファイル.bashrc
やソース.bash_profile
の他のファイルがあることを確認する必要があります。たとえば、次のコマンドで参照される別のファイルにすべてのエイリアスを保存します。
[ -f ~/.bash_alias ] && source $HOME/.bash_alias
役に立つかもしれないいくつかの質問:一般ユーザーのためですか、それともルートのためですか?どんな順序ですか? Linuxはどのようなスタイルですか?
答え4
私はエイリアス定義を入れる非常に一般的な慣行に従いました。
~/.bash_aliases
次に、.bashrcで呼び出します。
[ -f ~/.bash_aliases ] && source $HOME/.bash_aliases