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


14

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

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

問題は.bashrc、ホームディレクトリにファイルがないことです。.bash_history私の家にはファイルしかありません。

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

回答:


20

それがあなたのホームディレクトリ内の隠しファイルであることを忘れないでください(あなたが最初にやるのls -lではなく、そこにないと思っているでしょう)。

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

ls -la ~/ | more

.bashrc最初のページにがあるはずです。だけで作成しない場合

vi ~/.bashrc

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

PATH=$PATH:~/bin

または ほとんどのディストリビューションは標準.bashrcファイルを次の場所に保存してい/etc/skel/ます。ホームディレクトリにコピーできます。

$cp /etc/skel/.bashrc ~

わかりました。他のコンピューターでレゴと入力すると、ソフトウェアが起動します。私のシステムでは、legoフォルダーは私の~/data/user1/binフォルダー内にあります。このパスを.bashrcファイルに追加しました。レゴを入力するとソフトウェアが起動するようにするにはどうすればよいですか?エイリアスを設定する必要がありますか?はいの場合、どのように?alias lego='<What do i put here???>'

@detraveller ファイルの~/data/user1/binPATH環境変数に追加しました.bashrcか?(この行を追加:export PATH=$PATH:~/data/user1/bin)-その場合legoは、ターミナルに入力するだけでプログラムが起動します。
AcId 2013

追加しただけPATH=$PATH:~/data/user1/binです。輸出については触れなかったので、ここには書きませんでした。ユニに行ったら、また明日やります。
detraveller 2013

しかし、私はどのようにbash legoにソフトウェアを開始する言葉であると伝えるのでしょうか?
detraveller 2013

11

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


4

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

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

のINVOCATIONセクションからman 1 bash

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

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

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

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

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

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


0

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

PATH=$PATH:~/bin

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

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


0

短い答え:

  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代わりにが存在する場合は、無害なemptyの出力のみが追加され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つ以上のスペースが含まれている場合、whichを見つけることができない可能性がありますCoolDetraveller(ただし、ここでは再びニックネームを使用します)、コマンドの有効なパラメーターとしてのの自動補完CoolDetraveller機能しますwhich

    Ad nauseam:質問できないwhereis CoolDetravellerのでwhereis

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.