私は新しいタスク開発環境に移行しており、xterm端末とCentOSオペレーティングシステムを初めて使用しています。
.bashrcにエイリアスを設定しようとしています。
# .bashrc
alias c='clear'
alias la='ls -a'
ただし、c
エイリアスのみが機能します。
user@host:~> la
CORRECT>lua (y|n|e|a)? no
la: Command not found.
しかし、user@host:~> c
正常に端末をクリアしました。また、さまざまな別名を定義しようとしましたが(対話型端末から直接)、c='clear'
別名のみが機能しました。一部のエイリアスが機能し、他のエイリアスが機能しないのはなぜですか?
答え1
このプロンプトは実行中であることを示します。tcsh。.bashrc
tcsh が bash の構成ファイルを読み取れないため、エイリアスは無効です。 tcshにもtcshというコマンドがありますが、alias
その構文はbashとは少し異なるため、コマンドラインでエイリアスを定義しようとする試みは明らかな効果はありません。c
(t)csh構成に同じエイリアスがあるために機能します。
おそらくtcshを使用する予定はありません。 1980年代の最高のインタラクティブシェルでしたが、2000年代のbashと同様に、1990年代にはzshがそれに追いついて上回りました。ログインシェルに切り替える/bin/zsh
か、/bin/bash
ログインシェルに切り替えます。
chsh -s /bin/bash
管理上の制限のためにchshを実行できない場合は、次を参照してください。chshまたは管理者権限なしでデフォルトシェルを変更する。
tcshに依存するログインスクリプトが絶対に必要で、管理者が1990年代に住んでおり、それを更新しないため、tcshを必ず使用する必要がある場合でも、他の対話型シェルを使用できます。同じものを入れて
setenv SHELL /bin/bash
(これはログイン.login
時にtcshが読み取るファイルです)。