私はこれを私の.profileの最後の行として持っています:
alias gl="cd /home/jrenner/glances/glances"
まだ再起動した後でも、glを入力するとコマンドが見つかりません。何が起こっている?正しいユーザーとしてログインしています。
.profile
同じファイルの環境変数は機能しますが、で定義されたエイリアスが、テキストコンソールログイン、グラフィカル端末、またはその他のコンテキストで機能しないことを確認できます。
私はこれを私の.profileの最後の行として持っています:
alias gl="cd /home/jrenner/glances/glances"
まだ再起動した後でも、glを入力するとコマンドが見つかりません。何が起こっている?正しいユーザーとしてログインしています。
.profile
同じファイルの環境変数は機能しますが、で定義されたエイリアスが、テキストコンソールログイン、グラフィカル端末、またはその他のコンテキストで機能しないことを確認できます。
回答:
私はlpanebrのアイデアがうまくいくと確信していますが、これはよりエレガントな解決策です。そのようにエイリアスコマンド.bashrc
を実行します。そうするか、エイリアス専用のファイルを追加したい人もいます。それを.alias
何と呼んでも.alias
あなたに追加.bashrc
@lpanelbrのような書式設定ができるといいのですが。wikiはあるのかな?
.bashrc
仕事中は.profile
しないのですか?また、エイリアスファイルに名前を付けることを選択した理由.allias
は.alias
何ですか?
.profile
ファイルに入力したときにエイリアスが機能しない場合がある理由は2つあります。1つ目は、.profile
(または.bash_profile
)ファイルはログインシェルに対してのみ実行されることです。Xのターミナルウィンドウでbashを起動している場合、ターミナルエミュレーター(たとえば、gnome-termanl)がログインシェルとしてbashを実行していない可能性があります。[ほとんどの場合、必要に応じてこれを変更するオプションがありますが、デフォルト(とにかくgnome-termalの場合)はログインシェルとして実行しません。]
シェルはインタラクティブシェルになるため.bashrc
、実行されます。
ただし、通常、bashは、Xセッションの開始時にログインシェルとして実行されていました。したがって、エイリアスコマンドがある.profile
場合は、PATHなどの環境変数の設定とともに実行されます。ターミナルウィンドウを開くと、bashの新しいインスタンスが実行されてプロンプトが表示され、そのターミナルウィンドウでコマンドが実行されます。環境変数とは異なり、bashの1つのインスタンスから、それによって開始された新しいインスタンスにエイリアスをエクスポートすることはできません。そのため、エイリアスは新しいシェルに渡されません。
これを確認するには、次の実験を試してください。
export ROBERT=bob
alias james=jimmy
echo $ROBERT
alias james
bash #start a new bash instance
echo $ROBERT
alias james
exit #end the new bash instance and revert to the original one
echo $ROBERT
alias james
.bashrc
ログインシェルとして起動した場合、bashによって実行されないことに注意してください。したがって、エイリアスが.bashrc
から提供されない限り、エイリアスをそこに配置しても常に機能するとは限りません.profile
。これは非常に一般的な方法です。
source .bashrc
と.bash_profile
、.bashrcに設定されたエイリアスが機能するようになりました。
~/.bash_aliases
です。それが正しい方法です。(詳細については、.bashrcファイルをお読みください)。
echo $SHELL
シェルインタープリターとしてbash()を使用している場合、独自のCD関数を定義するのが最善(またはおそらく唯一の方法)だと思います。
.bashrc
ファイルを編集し、最後に以下を追加します。
# my custom functions:
function gl () {
cd /home/jrenner/glances/glances/
}
次のように拡張することもできます。
# my custom functions:
function cdw () {
cd /home/jrenner/glances/glances/$1
ls
}
サブディレクトリに直接変更し、その内容をリストします。
alias
が、.profile
ファイルに配置されたディレクティブが失敗する理由を説明していないため、答えではありません。
$ bash #start a new bash instance
これは私のサーバーの問題でした。Simple source .profile
が何らかの理由で機能しなかった
gl
か?ターミナル?GUI?