タグ付けされた質問 「bashrc」

他のBourne / POSIXシェルとは対照的に、GNUのBourne Again SHellに固有の質問。Unixシェル全般に関する質問については、代わりに/ shellタグを使用してください。

5
bashrcでエイリアスを使用中に競合の可能性をテストするにはどうすればよいですか?
エイリアスコマンドを含むbashrcの更新によりシステムで発生したすべてのコマンド競合を一覧表示する簡単な方法はありますか? たとえば、誰かがalias ls=/path/to/user-generated/executablebashrcで書き込みます。これが実際のコマンドをマスクしていることをどのように知ることができますか(ls)。1つの方法は、bashrcのソースの前後にすべてのエイリアスを実行し、出力を比較することです。より良い方法はありますか? Ubuntu 12.04を実行しています。 bash-バージョン GNU bash、バージョン4.2.24(1)-release(i686-pc-linux-gnu)
12 bash  alias  bashrc 

5
非対話型シェルはエイリアスを展開します
次のようなコマンドを実行すると、ホスティングアカウントでエイリアスを展開できません。 ssh user@server "bash -c \"alias\"" 私の.bashrcファイルは: echo .bashrc # .bashrc shopt -s expand_aliases # Source global definitions (commenting this out does nothing) if [ -f /etc/bashrc ]; then . /etc/bashrc fi # User specific aliases and functions alias php="php55" alias composer="php ~/bin/composer.phar" 上記のsshコマンドを実行すると、「。bashrc」がエコーされます。しかし、エイリアスを実行しようとしても何も起こりません。 「bash -ic」を試すこともできますが、これは実際には簡単に変更できないスクリプト内にあり、なぜこれが機能しないのか知りたいのです。 の出力 ssh user@server "bash …
12 bash  ssh  alias  bashrc 

4
bashでのジョブ制御の無効化(CTRL-Z)
偶然にCTRL+ を押しZて、アプリケーションがバックグラウンドに表示されなくなることがあります。私は知っています、それをで戻すことができるfgので、それほど大したことではありません。しかし、job controlとにかくこれをオフにすることについて疑問に思っています。私の人生の中で、必要になったときのことを思い出すことはできません。それは、過去からの遺物として私に見えるだけです。 job control完全に無効にしても大丈夫ですか?または、何か不足していますか?この機能は役に立ちますか?どうすれば無効にできますか.bashrc 更新: 私が試してみましたset +m@Falsenamesによって示唆されているように。ただし、これはターミナルで入力した場合にのみ機能します。set +m私に追加し.bashrcても効果はありません。

2
「。」を使用しても大丈夫ですか?ソースの代わりにファイルを実行するには-UbuntuとOS Xの.bashrcで?
OK、そのsource現在のシェルでスクリプトを実行し、.別途、で詳述するように「」とし、 『ソース』でスクリプトを実行している私には、具体的には、例えば、しかし、.bashrcファイル、私が持っています: [ -f ~/.bash_aliases ] && source ~/.bash_aliases [ -f ~/.git-completion.bash ] && source ~/.git-completion.bash [ -s ~/.autojump/etc/profile.d/autojump.sh ] && source ~/.autojump/etc/profile.d/autojump.sh これを次のように置き換えることはできますか? [ -f ~/.bash_aliases ] && . ~/.bash_aliases [ -f ~/.git-completion.bash ] && . ~/.git-completion.bash [ -s ~/.autojump/etc/profile.d/autojump.sh ] && . ~/.autojump/etc/profile.d/autojump.sh OS Xで動作しますか-それは「POSIX」の問題ですか? 私はそれを試しましたが、上記はまだUbuntuで動作するようです(したがって、実際には両方sourceで動作し.、つまり、シェルで必要な機能が得られます)。どちらを選ぶべきですか、それとも何か不足していますか? FWIW、OS Xでは、自分のを.bashrcから調達してい.bash_profileます。
11 osx  bashrc  posix 

4
インタラクティブでないログインシェルが存在する可能性はありますか?
このフローチャートの解釈 私はそれを男バッシュで見つけました: bashが対話型ログインシェルとして、または--loginオプション付きの非対話型シェルとして呼び出されると、ファイル/ etc / profileが存在する場合、そのファイルからコマンドを最初に読み取り、実行します。 これは、対話型ログインシェルが/etc/profile(--noprofileなしで)読み取ることを示しています また、オプションreadを持つ非インタラクティブシェル--login/etc/profile これは、非インタラクティブ(スクリプトを実行する、おそらくのように単純な)で(ソース)を読み取れない可能性がある一部のログインシェル(で$0始まる-)を残すようです。date/etc/profile このアイデアを確認または拒否するには: 最初に、最初の文字としてsu -l -a を使用してログインシェルを開始するを使用しようとしましたが、-非対話型にすることができません(それをテストするためのテストを提示できます)。 のようなものを呼び出す $ bash -c 'date' -bash ログインシェルであることを報告しません(最初の文字がであっても-)。 これを試して詳細を明らかにしてください: $ bash -c 'echo "$0 $- ||$(shopt -p login_shell)||";date' -bash -bash hBc ||shopt -u login_shell|| Fri Aug 19 06:32:31 EDT 2016 の最初の文字$0はa -でありi、の値には(インタラクティブ)$-はありませんが、login_shell(-u)としては報告されません。この場合、/ etc / profileは読み取られませんでしたが、これが正しいテストであるかどうかはわかりません。 この質問には十分具体的ではありませんが、この回答には「まれな非対話型ログインシェル」についての言及もあります。 この男の結論は、/etc/profile常に読まれているということです。 …
11 bash  login  startup  bashrc 

1
シェル関数の現在の定義を表示する
だから私は常にbashrcを編集していて、bashrcは誤った関数定義で更新されていますが、機能している関数定義でターミナルを開いています。(更新されたbashrcを入手するまで定義が変更されないため)この場合、機能する関数の定義をどのように検索できますか?たとえば、次のように入力すると、 alias function_name そのエイリアスの定義が何であるかがわかります。機能に似たコマンドはありますか?そうでない場合、現在の端末が使用しているbashrc全体を出力するコマンドはありますか?
11 function  bashrc 


4
bashrcでの[-n“ $ PS1”]の目的
どのような目的ではない[ -n "$PS1" ]に[ -n "$PS1" ] && source ~/.bash_profile;役立ちますか?この行は.bashrc、dotfiles リポジトリのに含まれています。
10 bash  osx  bashrc 

3
rootが.bash_profileをソースしないのはなぜですか?
su(ではなくsu -)を使用してrootとしてログインしようとするたびに.bash_profile、user1のホームディレクトリにソースが表示されません。 基本的に、私の/var/rootディレクトリはありません.bash_profile、私はのコピーを入れて、.bash_profile中に/var/rootテストしますsu -。 自動的に.bash_profile(でvar/root)ソースも取得しません。 とにかく、私は.bash_profileを使用するときにrootアカウントで自動的に取得されるuser1 を作成したいと思いますsu。 私は何をすべきか? (以前は機能していました。ある日、ソースがありませんでした。おそらくbashの設定が変更されたのでしょうか?source .bash_profileログイン後に入力すると機能します。) MacとOS X Yosemiteを使用しています。
10 osx  root  bashrc  su 

1
Jenkinsはシステムのロケールを使用しません
ジェンキンスで面白い行動をした。 Jenkinsのシェルは私のシステムロケールを使用しません。 Jenkinsはjenkins私のシステムでユーザーとして実行されます。 jenkinsSSH経由でログイン: locale 表示: LANG = en_US.UTF-8 LANGUAGE = en_US:en LC_CTYPE = "en_US.UTF-8" など... envショーLANGとLANGUAGE変数: LANG = en_US.UTF-8 LANGUAGE = en_US:en id ユーザーのIDを示します。 uid = 1008(jenkins)gid = ... 上記のコマンドをjenkinsジョブシェルに入力します。 locale 表示: LANG = LANGUAGE = LC_CTYPE = "POSIX" など... envんではない示し、LANGおよびLANGUAGE変数 id ユーザーのIDを表示します(予想どおり): uid = 1008(jenkins)gid = ... ファイル: …

1
ログインか非ログインかに関係なく、常にインタラクティブモードで読み込まれるBashファイルはありますか?
私の知る限り、対話型シェルはログインである場合とログインでない場合があり、それらの起動ファイルは異なります。 もしインタラクティブ+のログインシェル→ /etc/profileその後の最初読める~/.bash_profile、~/.bash_loginと、~/.profile もしインタラクティブ+非ログインシェル→ /etc/bash.bashrcその後、~/.bashrc ログインシェルかどうかに関係なく、インタラクティブシェルを使用するたびにいくつかの変数を設定したいと思います。
10 bash  login  bashrc 

1
bashrcの遅延置換
〜/ .bashrcが実行されるとき(ターミナルを開くとき)ではなく、実行時に置換~/.bashrcを評価$()するエイリアスをどのように取得しますか? このコマンドを頻繁に実行して、エイリアスを追加します。 svn diff -r $(svn info | grep ^Revision | awk {'print $2'}):HEAD $(svn info | grep ^URL | awk {'print $2'}) | colordiff ただし、~/.bashrcエイリアスとして追加すると、ターミナルを開いたときの評価にハードコードされていることがわかります。 $ alias alias svnbranch='svn diff -r 178184:HEAD svn+ssh://branches/t4252 | colordiff' 端末を開いた場合、~エラーが発生します。 svn: E155007: '/home/dotancohen' is not a working copy svn: E155007: '/home/dotancohen' is …
10 bash  shell  quoting  alias  bashrc 

1
.bashrcが実行されない
~/.bashrcいくつかのエイリアスが含まれているファイルを持つユーザー(非root)がいます。 しかし、ログイン時にファイルが実行されるようには見えません。私がするならsource ~/.bashrc、それはそれがすることになっていることをします。しかし、~/.bashrcログインするたびに実行されるとは限りませんか? 権限は644に設定されています(私のrootと同じですが、.bashrc正常に機能します)。問題のユーザーがファイルを所有しています。
10 bash  rhel  bashrc 

1
.inputrcと.bashrcの設定
次のようないくつかの設定.bashrcと.inputrcファイルの外観が同じまたは類似していることに気づきました。 shopt -s nocaseglobvs set completion-ignore-case export HISTSIZEvs set history-size export HISTFILESIZEvsset history-size .inputrc設定は、Pythonシェルの完了と履歴サイズにも影響しますか(ターミナル内で実行した場合)? さHISTSIZEによって制限されhistory-sizeたり、それをオーバーライドしていますか?
9 bashrc  inputrc 

1
/root/.bashrcと/root/.profileは、Debianシステムでどこから取得されますか?
通常、Debianシステムにユーザーを追加すると、の内容が/etc/skel/新しいユーザーのホームディレクトリにコピーされます。しかし/root/.bashrc、一致せず、一致/etc/skel/.bashrcし/root/.profileません/etc/skel/.profile。また、どちらのファイルも認識されていませんdpkg。それで彼らはどこから来たのですか?

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