私はこれを私の.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?