![Debian 10 での「エイリアス」のグローバル使用](https://rvso.com/image/756221/Debian%2010%20%E3%81%A7%E3%81%AE%E3%80%8C%E3%82%A8%E3%82%A4%E3%83%AA%E3%82%A2%E3%82%B9%E3%80%8D%E3%81%AE%E3%82%B0%E3%83%AD%E3%83%BC%E3%83%90%E3%83%AB%E4%BD%BF%E7%94%A8.png)
Debian 10 インスタンスでエイリアスのグローバル使用を追加しようとしましたが、うまくいきませんでした。
私がすでに試みたことは、エイリアスを /etc/bash.bashrc に追加することと、このスニペットを /etc/profile に追加してソースを取得することですが、動作しません。
if [ -f /etc/bash.bashrc ]; then . /etc/bash.bashrc fi
私のbash.bashrcでは:
#Aliases
alias l='ls -la'
alias ll='ls -l'
alias la='ls -a'
編集*
「ls」のエイリアスを作成するにはどうすればいいですか。たとえば、ls='ls -CF' です。これをエイリアスとして使用すると機能しません。
答え1
Debian は /etc/bash.bashrc で動作するはずです。/etc/passwd
ユーザーが bash シェルを使用していることを確認してください。
user1:x:1000:1000:User 1:/home/user1:/bin/bash
user2:x:1001:1001:User 2:/home/user2:/bin/zsh
デフォルトでは、useradd または adduser を使用してユーザーを追加すると、シェルとして bash が作成されますが、これは他のシェルに変更されている可能性があります (zsh は非常に人気があります)。上記のサンプルでは、user1 は bash シェルを使用し、user2 は zsh を使用しています。user2 はログイン時に /etc/bash.bashrc を実行しません。
答え2
私の を見ると、がすでに として定義されていることが~/.bashrc
わかります。ls
alias ls='ls --color=auto'
asに新しいls
エイリアス定義を追加しても役に立ちません。これは、 の定義が上書きされていると推測されるからです。/etc/bash.bashrc
alias ls='ls -CF'
~/.bashrc
ls
私のテストでは、有効なで定義されているエイリアスを、~/.bashrc
グローバル定義用に追加されたエイリアスにコメントアウトすると、etc/bash.bashrc
機能するようになりました。
これは、グローバル エイリアスを組み込むことを可能にする Red Hat のグローバル エイリアスの処理方法とはかなり異なります/etc/profile.d/[filename].sh
が、Debian と Red Hat の設定方法の違いと、プロファイル ファイルと bashrc ファイルの関係により、これは Debian のオプションではないようです。
つまり、Red Hatでは、profile/bashrcファイルをsourceで処理して、さまざまなシェル/ログインタイプで機能するようにします(ここで説明されているようにhttps://unix.stackexchange.com/questions/170493/login-non-login-and-interactive-non-interactive-shellsただし、Debian の場合、ファイルは/etc/profile.d/*.sh
ログイン シェルにのみソースされているようです。ただし、ここでの以前の回答は削除されたため、編集して明確にすることができませんでした。
Debian の場合、グローバル エイリアスがログイン シェルでのみ機能することに問題がなければ、たとえば/etc/profile.d/aliases.sh
にエイリアスを追加します。そうでない場合は、 に追加する必要があるようです/etc/bash.bashrc
。 のエイリアスが優先されることに留意してください~/.bashrc
。定義したエイリアスが機能しない場合は、そのエイリアスが他の場所で定義されていて、自分の定義を上書きしている可能性があります。