これが私の講義で書き留めたものです。
.bashrc
ホームディレクトリvi .bashrc
問題は、.bashrc
ホームディレクトリのファイル。 .bash_history
自宅のファイル。
ルートに移動すると、etc/bash.bashrc
ファイルがありますが、私だけではなく、すべてのユーザーに変更が加えられると思います。自分のためだけにこのパスを追加したい。他の人に影響を与えるべきではありません。また、$PATH
そのbashrcファイル内の変数なので、さらに混乱しています。
ホームディレクトリ内の隠しファイルであることを忘れないでください(ls -l
そしてそれはそこにないと考えています)。
以下に従ってください...
ls -la ~/ | more
.bashrc
最初のページ。作成しない場合は
vi ~/.bashrc
そして、それに次の行を書き込んでください。
PATH=$PATH:~/bin
[〜#〜] or [〜#〜]ほとんどのディストリビューションは標準.bashrc
ファイル/etc/skel/
ホームディレクトリにコピーできます。
$cp /etc/skel/.bashrc ~
ほとんどのディストリビューションは標準.bashrc
ファイル/etc/skel/
ホームディレクトリにコピーするだけです。それ以外の場合は、新しい空の.bashrc
ホームディレクトリのファイル。
man 1 bash
のINVOCATIONセクションからのコメント:
ログインシェルではないインタラクティブシェルが起動すると、bashは/etc/bash.bashrcおよび〜/ .bashrcからコマンドを読み取り、これらのファイルが存在する場合はそれらを実行します。
これらの起動ファイルはオプションであることに注意してください。バッシュはそれらを必要としません。 Bashは、ログインシェルとインタラクティブシェルも区別します。インタラクティブシェルはこのように定義されています:
対話型シェルは、非オプション引数なしで-cオプションなしで開始され、標準入力とエラーの両方が端末に接続されている(isatty(3)によって決定される)か、または-iオプションで開始されます。
多くのディストリビューションは、あるタイプのスタートアップファイルを他のタイプからソースしますが、そうでないものもあるので、この問題は正規に対処するのが難しい場合があります。 yourシステムで~/.bashrc
が呼び出される方法とタイミングを確認するには、すべての起動ファイルを調べる必要があります。
ユーザー固有の~/.bashrc
ファイルがない場合は、作成してください。これは、非ログインシェル(例:--login
フラグなしで開始されたシェル)の場合、または-i
フラグを使用してシェルを呼び出してインタラクティブにするように強制した場合に、Bashによって呼び出されます。
.bashrc
がない場合は、次のように作成して、必要な行を追加します。
PATH=$PATH:~/bin
パスの最後にユーザーbinディレクトリを追加します。
ただし、その他起動ファイルがある場合は注意が必要です。どのファイルが使用されるかに関するルールはかなり複雑ですが、それらの詳細はbash
のマニュアルページに記載されています。コマンドラインにman bash
と入力し、INVOCATION
を探します。
短い回答:
find ~ -maxdepth 1 -name '.bashrc'
vi ~/.bashrc
echo $PATH | grep ~/MyNewCoolProgramFolder
詳細なもの:
私はより厳密な文字通りの解釈をとります。
"ホームディレクトリでファイル.bashrcを検索します"
コマンドfind
が存在するため、おそらく危険なエディターがそれを使用するように提案します:
find ~ -maxdepth 1 -name '.bashrc'
ホームディレクトリ~
を検索し、1つのレベルの下位のみを検索します(サブディレクトリ-maxdepth 1
はありません)。すべてのオプションについて、man find
と書き込みます。
以下の行は最小限の作業を行います
ls ~/.bashrc
注:~/.bashrc
が存在しない場合作成できますシンプルなecho >> ~/.bashrc
を使用します。
>>
は、存在しない場合にファイルを作成します。代わりに~/.bashrc
が存在する場合、空のecho
の無害な出力のみが追加され、バックアップなしで偶発的に復元することが困難な、このような重要なファイルの意図しない削除が回避されます。
(以下は、自分のニックネームの意味を尊重する必要がほとんどないためです。疑わしい場合は実行しないでください)。
if [ ! -f ~/.bashrc ] ;
then
cp -i /etc/skel/.bashrc ~/.bashrc ;
else ls -la ~/.bashrc;
fi || echo " # Auto Generated " >> ~/.bashrc
"Do vi .bashrc
"
これでvi ~/.bashrc
を実行できるようになりました。ここでの落とし穴は、 : そして q 出る !
アプリケーションフォルダと$PATH
アプリケーションフォルダを作成するとき。 ~/MyNewCoolProgramFolder
、以下の行は$PATH
にあるかどうかのみをチェックします:
echo $PATH | grep ~/MyNewCoolProgramFolder
既に存在する場合は追加する必要はありません。必要に応じて、$PATH
に
PATH=$PATH:~/MyNewCoolProgramFolder
永続的にしたい場合は、その行を~/.bashrc
に追加します。
"4?!?3ポイントしかない場合、どのように4ですか?"-回避策。
後者にはいくつかの回避策があります。 CoolDetraveller
という名前の実行可能ファイルが新しいアプリケーションフォルダーにのみ存在するとします。
(a)実行してみることができます。それが$PATH
にない場合、単に開始されません。
CoolDetraveller:コマンドが見つかりません
(b) 自動補完 を試すことができます。 CoolDetravelle
を書き始めて、 Tab。 $PATH
にある場合は、自動補完されます(自動補完が有効になっている場合は常に)。
(c)コマンドwhich
を書くと、bashシェルにCoolDetraveller
コマンドが使用されます。
which CoolDetraveller
注:アプリケーションパスに1つ以上のスペースがある場合、which
はCoolDetraveller
を見つけられない可能性があります。 (ここで再びニックネームを尊重します)CoolDetraveller
コマンドの有効なパラメーターとしてのwhich
の自動補完は機能しますが!
Ad nauseam:whereis CoolDetraveller
に尋ねることはできません_whereis
ハードコードされたパスを持っているので、常にあなたが探しているものを見つけるとは限りません