ターミナルでエイリアスを永続的に定義する方法


18

環境にエイリアスを追加して、すべてのターミナルインスタンスで使用できるようにします。

私はこの答えを得ました

はい、.bashrc、.bash_profile、または.profileに配置できます。一部のシステムでは、シェルの初期化スクリプトも.bash_aliasesまたは.aliasesをソースするため、これらのファイルのいずれかがシステムに存在する場合は、それらを使用するのが理にかなっています。

しかし、これらのファイルは見つかりません。

(非表示のファイルを表示するようにOS Xを設定しましたが、上記4のいずれも表示されません。)


エイリアスはシェル(ターミナル)でのみ機能します。OSX環境にエイリアスを追加するとはどういう意味ですか?すべてのユーザーがエイリアスにアクセスできるようにしますか?
nohillside

私はそれが私が将来的に開いておき、端末インスタンスに設定されます意味
ELADベンダ

質問の焦点が変更されたため、編集をロールバックしました。エイリアスをzshに追加する方法に関する回答を探している場合は、新しい質問をしてください。
nohillside

回答:


23

bashを使用する場合は、エイリアスコマンドを〜/ .bashrcに追加し、次のようなファイルを〜/ .bash_profileとして保存します。

. ~/.bashrc

bashが対話型の非ログインシェルとして起動されると、.bash_profileではなく.bashrcが読み取られます。bashが対話型ログインシェルとして呼び出されると、.bash_profileが読み取られますが、.bashrcは読み取られません。

ターミナルとiTermはデフォルトで新しいシェルをログインシェルとして開くため、多くのOS Xユーザーは個人設定ファイルとして.bash_profileを使用します。たとえば、tmuxとEmacsのシェルモードは、新しいシェルを非ログインシェルとして開きます。

.profileは、kshなどの他のシェルでも読み取られます。.bash_profileと.profileの両方が存在する場合、bashは、対話型ログインシェルとして呼び出されたときにのみ.bash_profileを読み取ります。

詳細については、https://www.gnu.org/software/bash/manual/html_node/Bash-Startup-Files.htmlを参照してください


3
@EladBendaを使用する場合はzsh、エイリアスコマンドをに追加します~/.zshrc~/.zshrc(対話型)非ログインシェルとログインシェルの両方によって読み取られるため、からソースを取得する必要はありません~/.zprofile
Lri

.bash_profileと.bashrcの違いを常に知りたいと思っていました。ありがとう。
デスベック

oh-my-zshを使用している場合は、〜/ .aliasesというファイルにエイリアスを保持することをお勧めします。このファイルが存在しない場合は、ホームフォルダーに追加でき、隠しファイルになります。
アヌシャ

6

新しいターミナルウィンドウを開き、ホームディレクトリに移動します(cd入力してEnterキーを押します)。

その後、さらに入力ls .bash*しますls .profile(これらの各ファイル名はドットで始まることに注意してください)。これらのファイルがある場合(少なくとも.profileファイルが必要です)、それらを編集してエイリアスを追加する必要があります。VI(またはVIM)を使用してこれらのファイルを編集しますが、別のエディターを使用することもできます(実際、ターミナルウィンドウに入力open .bash_profileするとTextEditorで開きます。VIに慣れていない場合は、少し使いやすいかもしれません) 。何らかの理由でこれらのファイルがない場合は、新しいファイルを作成し(.bashrcと呼びます)、エイリアス行を追加します(したがって、入力するように1行に1つのコマンドになります)シェルで)、ファイルを保存します。その後、を使用して.bash_profileおよび.profileへのシンボリックリンクを作成できますln -s .bashrc .bash_profile; ln -s .bashrc .profile

私が通常やることは、.profileへの.bashrcおよび.bash_profileシンボリックリンクを作成し、1つのファイルのみを心配するだけです。

これらのファイルの違いは、bashがログインシェルとして起動されるか(通常、ログインプロセスはログインシェルとしてシェルを起動するか)、単なる対話型(ログインではなく)シェルとして起動されるかによって異なるファイルを提供することです。非対話型シェル。3つのファイルすべてが本質的に同じであるため、bashの開始方法に関係なく、一貫した環境が得られます。

を実行することでより多くの情報を取得できますman bashが、準備してください。これは長いmanページです。3つのファイル(.bashrc、.profile、および.bash_profile)のどれがソースであるかは、bashが開始されたモードに応じて確認できます。

それが役立つことを願っています-そうでない場合は、私に一言お願いします。


3

ターミナルで次のコマンドを入力します。

cd /etc
sudo vi bashrc

次のように追加します:

alias ll="ls -lrt"

最後にターミナルを再起動します。


2

このマシン全体が必要な場合は、/etcフォルダーを調べる必要があります。ただし、デフォルトでは存在しない場合があります。その場合は、上記のフォルダーに作成してターミナルを再起動するだけです。ほとんどの場合sudo/etcフォルダの所有者はを使用してそれらを作成する必要がありますroot

開いているすべての端末でこれが必要な場合は、マシン全体で実行する必要はありません。これらのファイルは独自のホームフォルダーに作成でき、ターミナルセッションを開始するたびにターミナルによって読み取られます。

また、コメントで述べたように、通常、これらは端末とを使用してのみ表示できls -lhaます。


0

Rubyをインストールしている場合は、このRubyスクリプトhttps://github.com/ytbryan/akaをご覧ください。

このスクリプトは、永続性やドットファイルの自動ソースなどの機能を提供します。ワークフローを中断せずにターミナル経由でエイリアスを管理し、テキストエディターを開くことができます。

免責事項:私はこのスクリプトを書いて、毎日使用しています。バグ/アイデアがあるかどうか教えてください。:)


0

Linux BASHのようなllコマンドをお探しの方は、このように作成されます...

alias ll="ls -laF"

その行を.bashrcファイルに追加してから、.bashrcファイルをとして複製すると.bash_profile、いつまでも永遠に続きます。

価値のあることとして、Linux BASHのllは " ls -laF"のエイリアスです。


-2

プロファイルの場所に.bashまたは.profileがないという同じ問題がありました。やっと/ etcで見つけました


1
/ etcはシステム全体で使用されます。これらのファイルを編集するのではなく、ホームフォルダー内の独自のプロファイルファイル(〜/ .bash_profileなど)を使用することを強くお勧めします。
grg

私は〜/ .bash_profileを持つように継ぎ目がありません、それは私が試した最初のもので、私がそれを作成した場合、再起動後も使用されていません。私は現在zshを使用しており、.zshrcはうまく機能します
レオブーランジェ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.