web-dev-qa-db-ja.com

ホームディレクトリにbashrcファイルがありません

これが私の講義で書き留めたものです。

  • ファイルを検索.bashrcホームディレクトリ
  • 行う vi .bashrc
  • アプリケーションフォルダーをどこかに置くときは、そのアドレスがパス変数に含まれていることを確認してください。

問題は、.bashrcホームディレクトリのファイル。 .bash_history自宅のファイル。

ルートに移動すると、etc/bash.bashrcファイルがありますが、私だけではなく、すべてのユーザーに変更が加えられると思います。自分のためだけにこのパスを追加したい。他の人に影響を与えるべきではありません。また、$PATHそのbashrcファイル内の変数なので、さらに混乱しています。

14
detraveller

ホームディレクトリ内の隠しファイルであることを忘れないでください(ls -lそしてそれはそこにないと考えています)。

以下に従ってください...

ls -la ~/ | more

.bashrc最初のページ。作成しない場合は

vi ~/.bashrc

そして、それに次の行を書き込んでください。

PATH=$PATH:~/bin

[〜#〜] or [〜#〜]ほとんどのディストリビューションは標準.bashrcファイル/etc/skel/ホームディレクトリにコピーできます。

$cp /etc/skel/.bashrc ~
20
MangeshBiradar

ほとんどのディストリビューションは標準.bashrcファイル/etc/skel/ホームディレクトリにコピーするだけです。それ以外の場合は、新しい空の.bashrcホームディレクトリのファイル。

11
AcId

インタラクティブシェル用の独自のスタートアップファイルを作成する

Bashスタートアップファイルについて

man 1 bashのINVOCATIONセクションからのコメント:

ログインシェルではないインタラクティブシェルが起動すると、bashは/etc/bash.bashrcおよび〜/ .bashrcからコマンドを読み取り、これらのファイルが存在する場合はそれらを実行します。

これらの起動ファイルはオプションであることに注意してください。バッシュはそれらを必要としません。 Bashは、ログインシェルとインタラクティブシェルも区別します。インタラクティブシェルはこのように定義されています:

対話型シェルは、非オプション引数なしで-cオプションなしで開始され、標準入力とエラーの両方が端末に接続されている(isatty(3)によって決定される)か、または-iオプションで開始されます。

多くのディストリビューションは、あるタイプのスタートアップファイルを他のタイプからソースしますが、そうでないものもあるので、この問題は正規に対処するのが難しい場合があります。 yourシステムで~/.bashrcが呼び出される方法とタイミングを確認するには、すべての起動ファイルを調べる必要があります。

ユーザーごとのインタラクティブシェルスタートアップファイルの作成

ユーザー固有の~/.bashrcファイルがない場合は、作成してください。これは、非ログインシェル(例:--loginフラグなしで開始されたシェル)の場合、または-iフラグを使用してシェルを呼び出してインタラクティブにするように強制した場合に、Bashによって呼び出されます。

4
CodeGnome

.bashrcがない場合は、次のように作成して、必要な行を追加します。

PATH=$PATH:~/bin

パスの最後にユーザーbinディレクトリを追加します。

ただし、その他起動ファイルがある場合は注意が必要です。どのファイルが使用されるかに関するルールはかなり複雑ですが、それらの詳細はbashのマニュアルページに記載されています。コマンドラインにman bashと入力し、INVOCATIONを探します。

0
user53528

短い回答:

  1. find ~ -maxdepth 1 -name '.bashrc'
  2. vi ~/.bashrc
  3. echo $PATH | grep ~/MyNewCoolProgramFolder

詳細なもの:
私はより厳密な文字通りの解釈をとります。

  1. "ホームディレクトリでファイル.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
    
  2. "Do vi .bashrc"
    これでvi ~/.bashrcを実行できるようになりました。ここでの落とし穴は、 : そして q 出る !

  3. アプリケーションフォルダと$PATH
    アプリケーションフォルダを作成するとき。 ~/MyNewCoolProgramFolder、以下の行は$PATHにあるかどうかのみをチェックします:

    echo $PATH | grep ~/MyNewCoolProgramFolder
    

    既に存在する場合は追加する必要はありません。必要に応じて、$PATH

    PATH=$PATH:~/MyNewCoolProgramFolder
    

    永続的にしたい場合は、その行を~/.bashrcに追加します。

  4. "4?!?3ポイントしかない場合、どのように4ですか?"-回避策。
    後者にはいくつかの回避策があります。 CoolDetravellerという名前の実行可能ファイルが新しいアプリケーションフォルダーにのみ存在するとします。

    (a)実行してみることができます。それが$PATHにない場合、単に開始されません。

    CoolDetraveller:コマンドが見つかりません

    (b) 自動補完 を試すことができます。 CoolDetravelleを書き始めて、 Tab$PATHにある場合は、自動補完されます(自動補完が有効になっている場合は常に)。

    (c)コマンドwhichを書くと、bashシェルにCoolDetravellerコマンドが使用されます。

        which CoolDetraveller
    

    注:アプリケーションパスに1つ以上のスペースがある場合、whichCoolDetravellerを見つけられない可能性があります。 (ここで再びニックネームを尊重します)CoolDetravellerコマンドの有効なパラメーターとしてのwhich自動補完は機能しますが!

    Ad nauseamwhereis CoolDetravellerに尋ねることはできません_whereis

    ハードコードされたパスを持っているので、常にあなたが探しているものを見つけるとは限りません

0
Hastur