web-dev-qa-db-ja.com

すべてのユーザーのエイリアスを事前設定するにはどうすればよいですか?

Ubuntu 14.04.2があります。すべてのユーザーが自動的に特定のエイリアスのセットを持つようにしたい。個人の.bashrcにエイリアスを設定していますが、手動で他のユーザーにコピーする必要はありません。理想的には、新しく作成されたユーザーに対してもこれらを自動的に設定する必要があります。

37
Brian Sizemore

/etc/profile.d/でスクリプトを作成して、すべてのユーザーのエイリアスを作成できます。

  1. 00-aliases.sh/etc/profile.d(またはその他のファンシーな名前)というファイルを作成します:

    gksu gedit /etc/profile.d/00-aliases.sh
    
  2. このファイルにエイリアスを入れます。例:

    alias foo='bar --baz'
    alias baz='foo --bar'
    
  3. ファイルを保存する

  4. 開いているターミナルを再起動して、変更を適用します。
  5. 楽しい!

注意:

  • /etc/profileは、~/.profileの前に実行されるグローバルファイルです。
  • /etc/profile.d/は、/etc/profileによって呼び出されるスクリプトを含むフォルダーです
  • /etc/profileが呼び出されると(シェルを起動/ログインするとき)、.sh/etc/profile.d/で終わるファイルが検索され、次のコマンドのいずれかで実行されます。

    source /etc/profile.d/myfile.sh
    

    . /etc/profile.d/myfile.sh
    
  • ファイル名の前に00-を置いて、残りのスクリプトの前に実行するようにします。
  • エイリアスを/etc/profileに追加することもできますが、これは推奨されません。
50
Helio

エイリアスは、シェル内でのみ機能します。実行可能ファイルと同じくらい広くアクセスできるものが必要な場合は、小さなショートカットスクリプトを/usr/binに追加できます。例:

#!/bin/sh
ls -l "$@"

"$@"は、すべての引数を実行可能ファイルに渡します。スクリプトの名前は、実行可能ファイルの名前になります。

ソース: https://unix.stackexchange.com/a/52509/15954

5
jtpereyda

here で指摘したように、おそらく/etc/bash.bashrcにグローバルエイリアスを追加することをお勧めします。

alias foo='bar --baz'
alias baz='foo --bar'

なぜなら、特定の(ログインしていない)シェルでは /etc/profile.dのスクリプトは無視できます であるためです。 /etc/profile.dが機能しなかった理由を理解するのに何時間もかかりました。

例参照 https://askubuntu.com/a/606882/ および 。bashrcおよび.bash_profileについて シェルの区別について。

4
tinlyx