
Windowsでbash端末(git-bash)を実行して実行するたびに、alias
次のエイリアスを取得します。
$ alias
alias ll='ls -l'
alias ls='ls -F --color=auto --show-control-chars'
alias ltsc='$(npm bin)/tsc'
alias lwbc='$(npm bin)/webpack'
alias node='winpty node.exe'
私のものには.bashrc
次のものがあります。
alias lwbc="\$(npm bin)/webpack"
alias ltsc="\$(npm bin)/tsc"
私のものには.bash_profile
次のものがあります。
test -f ~/.profile && . ~/.profile
test -f ~/.bashrc && . ~/.bashrc
.profile
ファイルがありません。
それでは、これらはどこから来ますか?
alias ll='ls -l'
alias ls='ls -F --color=auto --show-control-chars'
alias node='winpty node.exe'
修正する:
これらの別名がから来ていることがわかりました/etc/profile.d/aliases.sh
。さて、このファイルがどこでトリガされるのかどうかはどうすればわかりますか?
答え1
以下はbash文書から抜粋したものです。
bashがこのオプションを使用して対話型ログインシェルまたは非対話型シェルとして呼び出されると、まず
--login
ファイル/etc/profile
(ファイルが存在する場合)からコマンドを読み取り、実行します。ファイルを読み込んだ後~/.bash_profile
、~/.bash_login
、 を順に探して存在~/.profile
し、読み取れる最初のファイルからコマンドを読み込み実行します。--noprofile
このオプションを使用すると、シェルの起動時にこの動作を無効にできます。
ホームディレクトリの内容を確認したので、質問に対する回答はファイルにある可能性が高いです.bashrc
。一部のディストリビューションでは、エイリアスを含むすべてのユーザーにデフォルト値を設定します。そうでない場合、この構成は上記の抜粋に記載されている他のファイルのいずれかに存在する可能性があります。.bash_profile
/etc/profile
答え2
起動時に実行されるコマンドのトレースを印刷するようにbashに要求します。
bash -x
トレースには実行されたコマンドのみが表示され、そのコマンドがどのファイルから来たかは表示されません。しかし、それらはbashが読んでいるファイルから出なければなりません。最初に/etc/bash.bashrc
(システムで有効になっている場合)、~/.bashrc
コマンドから出てくる、または.
使用source
されている場合は、トレースに表示される他のファイルからインポートする必要があります。
一般の実行時にエイリアスが表示されないbash
場合ログインシェル、間違った場所に定義されているため、~/.bashrc
現在ロードされている場所を調べるには、トレースが有効なbashのログインインスタンスを実行します。bash -l -x
答え3
私はSUSEを使用しており、このディストリビューションの場合、これらのエイリアスはにあります/etc/bash.bashrc
。 csh または tcsh を使用する場合、/etc/csh.cshrc
これは Linux ディストリビューションに固有のものであるため、変更しないことをお勧めします。代わりに管理者権限で作成して編集する/etc/bash.bashrc.local
と、ファイルの下部で/etc/bash.bashrc
操作を実行しtest -s /etc/bash.bashrc.local
、ファイルが存在する場合は実行されることを確認できます。
私もそのls
エイリアスが嫌いです。私はalias ls='ls $LS_OPTIONS'
長年コメントしました/etc/bash.bashrc
。システムにパッチを適用してカーネルアップデートを実行すると、この/etc/bash.bashrc
ファイルが上書きされる可能性があるため、戻って再編集する必要があります。
使っていると言われました。Windowsのbash端末(git-bash)/etc/bash.bashrc
それで、それがあなたに特に適しているかどうかはわかりません。