BASHRCはログインで実行されない[閉じる] -- bash フィールド と bashrc フィールド askubuntu 関連 問題

bashrc not run on login [closed]


1
vote

問題

日本語

この質問を改善したいですか?< href="/posts/1023682/edit">このPOST を編集することで、詳細を追加し、問題を明確にします。

閉じられた 2年前

この質問を改善します

私は .bashrc に設定された色付けされたプロンプトで再生しています。

問題は常にログイン後に .bashrc をソース化する必要があります。ログインすると、ファイルが入出されているのがわかります(<コードを追加しました] > echo "SOURCED"ファイルの上に。

まだログインしたときに、色付けされたプロンプトのコマンドは実行されませんでしたが、<コード>の作品 - 色は<コード> source ~/.bashrc の後に設定されます。この挙動の

<事前> <コード> # ~/.bashrc: executed by bash(1) for non-login shells. # see /usr/share/doc/bash/examples/startup-files (in the package bash-doc) # for examples # If not running interactively, don't do anything case $- in *i*) ;; *) return;; esac # don't put duplicate lines or lines starting with space in the history. # See bash(1) for more options HISTCONTROL=ignoreboth # append to the history file, don't overwrite it shopt -s histappend # for setting history length see HISTSIZE and HISTFILESIZE in bash(1) HISTFILESIZE=1000000 HISTSIZE=1000000 # Ignore commands that start with a space, and duplicates HISTCONTROL=ignoreboth # Ignore certain commands HISTIGNORE='ls:bg:fg:history' # Timestamp commands HISTTIMEFORMAT='%F %T ' # One commands per line shopt -s cmdhist # Save commands to history immediately PROMPT_COMMAND='history -a' # check the window size after each command and, if necessary, # update the values of LINES and COLUMNS. shopt -s checkwinsize # If set, the pattern "**" used in a pathname expansion context will # match all files and zero or more directories and subdirectories. #shopt -s globstar # make less more friendly for non-text input files, see lesspipe(1) [ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)" # set variable identifying the chroot you work in (used in the prompt below) if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then debian_chroot=$(cat /etc/debian_chroot) fi # set a fancy prompt (non-color, unless we know we "want" color) case "$TERM" in xterm-color) color_prompt=yes;; esac # uncomment for a colored prompt, if the terminal has the capability; turned # off by default to not distract the user: the focus in a terminal window # should be on the output of commands, not on the prompt force_color_prompt=yes if [ -n "$force_color_prompt" ]; then if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then # We have color support; assume it's compliant with Ecma-48 # (ISO/IEC-6429). (Lack of such support is extremely rare, and such # a case would tend to support setf rather than setaf.) color_prompt=yes else color_prompt= fi fi if [ "$color_prompt" = yes ]; then PS1=`echo -ne "$HOST_COLORH[33[00m][e[$COLON_COLOR]:[33[01;32m]w[33[00m]\[33[01;33m]$[33[00m] "` # PS1='${debian_chroot:+($debian_chroot)}[33[01;32m]u@H[33[00m]:[33[01;34m]w[33[00m]$ ' else PS1='${debian_chroot:+($debian_chroot)}u@h:w$ ' fi unset color_prompt force_color_prompt # If this is an xterm set the title to user@host:dir case "$TERM" in xterm*|rxvt*) PS1="[e]0;${debian_chroot:+($debian_chroot)}u@h: wa]$PS1" ;; *) ;; esac # enable color support of ls and also add handy aliases if [ -x /usr/bin/dircolors ]; then test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)" alias ls='ls --color=auto' #alias dir='dir --color=auto' #alias vdir='vdir --color=auto' alias grep='grep --color=auto' alias fgrep='fgrep --color=auto' alias egrep='egrep --color=auto' fi # some more ls aliases alias ll='ls -alF' alias la='ls -A' alias l='ls -CF' # Add an "alert" alias for long running commands. Use like so: # sleep 10; alert alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '''s/^s*[0-9]+s*//;s/[;&|]s*alert$//''')"' # Alias definitions. # You may want to put all your additions into a separate file like # ~/.bash_aliases, instead of adding them here directly. # See /usr/share/doc/bash-doc/examples in the bash-doc package. if [ -f ~/.bash_aliases ]; then . ~/.bash_aliases fi # enable programmable completion features (you don't need to enable # this, if it's already enabled in /etc/bash.bashrc and /etc/profile # sources /etc/bash.bashrc). if ! shopt -oq posix; then if [ -f /usr/share/bash-completion/bash_completion ]; then . /usr/share/bash-completion/bash_completion elif [ -f /etc/bash_completion ]; then . /etc/bash_completion fi fi # Add bin to path PATH="${PATH:+${PATH}:}$HOME/bin" # Color the colon red if root COLON_COLOR='0m' if [ ${UID} -eq 0 ]; then COLON_COLOR='1;31m' fi
英語

I have been playing with colorized prompts, set in .bashrc.

The problem is I always need to source the .bashrc after logging in. When I log in, I can see the file is sourced (I tried adding an echo "SOURCED" at top of the file.

Yet when I login, the commands for colored prompts never run, although re-sourcing .bashrc works - colors are set after source ~/.bashrc, I am curious as to the nature of this behavior.

# ~/.bashrc: executed by bash(1) for non-login shells. # see /usr/share/doc/bash/examples/startup-files (in the package bash-doc) # for examples  # If not running interactively, don't do anything case $- in     *i*) ;;       *) return;; esac  # don't put duplicate lines or lines starting with space in the history. # See bash(1) for more options HISTCONTROL=ignoreboth  # append to the history file, don't overwrite it shopt -s histappend  # for setting history length see HISTSIZE and HISTFILESIZE in bash(1) HISTFILESIZE=1000000 HISTSIZE=1000000  # Ignore commands that start with a space, and duplicates HISTCONTROL=ignoreboth  # Ignore certain commands HISTIGNORE='ls:bg:fg:history'  # Timestamp commands HISTTIMEFORMAT='%F %T '  # One commands per line shopt -s cmdhist  # Save commands to history immediately PROMPT_COMMAND='history -a'   # check the window size after each command and, if necessary, # update the values of LINES and COLUMNS. shopt -s checkwinsize  # If set, the pattern "**" used in a pathname expansion context will # match all files and zero or more directories and subdirectories. #shopt -s globstar  # make less more friendly for non-text input files, see lesspipe(1) [ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"  # set variable identifying the chroot you work in (used in the prompt below) if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then     debian_chroot=$(cat /etc/debian_chroot) fi  # set a fancy prompt (non-color, unless we know we "want" color) case "$TERM" in     xterm-color) color_prompt=yes;; esac    # uncomment for a colored prompt, if the terminal has the capability; turned # off by default to not distract the user: the focus in a terminal window # should be on the output of commands, not on the prompt force_color_prompt=yes  if [ -n "$force_color_prompt" ]; then     if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then         # We have color support; assume it's compliant with Ecma-48         # (ISO/IEC-6429). (Lack of such support is extremely rare, and such         # a case would tend to support setf rather than setaf.)         color_prompt=yes     else         color_prompt=     fi fi  if [ "$color_prompt" = yes ]; then     PS1=`echo -ne "$HOST_COLOR\H\[\033[00m\]\[\e[$COLON_COLOR\]:\[\033[01;32m\]\w\[\033[00m\]\\[\033[01;33m\]\$\[\033[00m\] "`    # PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\H\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' else     PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ' fi unset color_prompt force_color_prompt  # If this is an xterm set the title to user@host:dir case "$TERM" in xterm*|rxvt*)     PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"     ;; *)     ;; esac  # enable color support of ls and also add handy aliases if [ -x /usr/bin/dircolors ]; then     test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"     alias ls='ls --color=auto'     #alias dir='dir --color=auto'     #alias vdir='vdir --color=auto'      alias grep='grep --color=auto'     alias fgrep='fgrep --color=auto'     alias egrep='egrep --color=auto' fi  # some more ls aliases alias ll='ls -alF' alias la='ls -A' alias l='ls -CF'  # Add an "alert" alias for long running commands.  Use like so: #   sleep 10; alert alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'  # Alias definitions. # You may want to put all your additions into a separate file like # ~/.bash_aliases, instead of adding them here directly. # See /usr/share/doc/bash-doc/examples in the bash-doc package.  if [ -f ~/.bash_aliases ]; then     . ~/.bash_aliases fi  # enable programmable completion features (you don't need to enable # this, if it's already enabled in /etc/bash.bashrc and /etc/profile # sources /etc/bash.bashrc). if ! shopt -oq posix; then   if [ -f /usr/share/bash-completion/bash_completion ]; then     . /usr/share/bash-completion/bash_completion   elif [ -f /etc/bash_completion ]; then     . /etc/bash_completion   fi fi  # Add bin to path PATH="${PATH:+${PATH}:}$HOME/bin"  # Color the colon red if root COLON_COLOR='0m' if [ ${UID} -eq 0 ]; then     COLON_COLOR='1;31m' fi 
     
 
 

回答リスト

8
 
vote
vote
ベストアンサー
 

.profile または .bash_profile

ログインシェルとしてBASHが呼び出されると、次のスクリプトが実行されます。

  1. <コード> *-cdrom description: DVD-RAM writer product: DVDRAM GT30F vendor: HL-DT-ST physical id: 1 bus info: scsi@1:0.0.0 logical name: /dev/cdrom logical name: /dev/cdrw logical name: /dev/dvd logical name: /dev/dvdrw logical name: /dev/scd0 logical name: /dev/sr0 version: TS08 capabilities: removable audio cd-r cd-rw dvd dvd-r dvd-ram configuration: ansiversion=5 status=nodisc 0
  2. <コード> *-cdrom description: DVD-RAM writer product: DVDRAM GT30F vendor: HL-DT-ST physical id: 1 bus info: scsi@1:0.0.0 logical name: /dev/cdrom logical name: /dev/cdrw logical name: /dev/dvd logical name: /dev/dvdrw logical name: /dev/scd0 logical name: /dev/sr0 version: TS08 capabilities: removable audio cd-r cd-rw dvd dvd-r dvd-ram configuration: ansiversion=5 status=nodisc 1
  3. <コード> *-cdrom description: DVD-RAM writer product: DVDRAM GT30F vendor: HL-DT-ST physical id: 1 bus info: scsi@1:0.0.0 logical name: /dev/cdrom logical name: /dev/cdrw logical name: /dev/dvd logical name: /dev/dvdrw logical name: /dev/scd0 logical name: /dev/sr0 version: TS08 capabilities: removable audio cd-r cd-rw dvd dvd-r dvd-ram configuration: ansiversion=5 status=nodisc 2
  4. <コード> *-cdrom description: DVD-RAM writer product: DVDRAM GT30F vendor: HL-DT-ST physical id: 1 bus info: scsi@1:0.0.0 logical name: /dev/cdrom logical name: /dev/cdrw logical name: /dev/dvd logical name: /dev/dvdrw logical name: /dev/scd0 logical name: /dev/sr0 version: TS08 capabilities: removable audio cd-r cd-rw dvd dvd-r dvd-ram configuration: ansiversion=5 status=nodisc 3
  5. *-cdrom description: DVD-RAM writer product: DVDRAM GT30F vendor: HL-DT-ST physical id: 1 bus info: scsi@1:0.0.0 logical name: /dev/cdrom logical name: /dev/cdrw logical name: /dev/dvd logical name: /dev/dvdrw logical name: /dev/scd0 logical name: /dev/sr0 version: TS08 capabilities: removable audio cd-r cd-rw dvd dvd-r dvd-ram configuration: ansiversion=5 status=nodisc 5

    を呼び出すには、マイ<コード> *-cdrom description: DVD-RAM writer product: DVDRAM GT30F vendor: HL-DT-ST physical id: 1 bus info: scsi@1:0.0.0 logical name: /dev/cdrom logical name: /dev/cdrw logical name: /dev/dvd logical name: /dev/dvdrw logical name: /dev/scd0 logical name: /dev/sr0 version: TS08 capabilities: removable audio cd-r cd-rw dvd dvd-r dvd-ram configuration: ansiversion=5 status=nodisc 4 に次のものがあります。 <事前> <コード> Virtualization16
 

Do you have .profile or a .bash_profile?

When BASH is invoked as a login shell, the following scripts are executed:

  1. /etc/profile
  2. ~/.bash_profile
  3. ~/.bash_login
  4. ~/.profile

I have the following in my ~/.profile to invoke .bashrc:

if [ -n "$BASH_VERSION" ]; then     # include .bashrc if it exists     if [ -f "$HOME/.bashrc" ]; then         . "$HOME/.bashrc"     fi fi 
 
 
   
   

関連する質問

0  カスタマイズされたシェルスクリプトは実行できません  ( Customized shell script can not be run ) 
シェルスクリプトを書き込み、スクリプトを表示しました myScript.sh <事前> <コード> #!/bin/bash ssh -t proxy@PROXY -p 22022 "ssh me@REMOATE_MACHINE -p 22022" スク...

4  histcontrol = ignorebothはうまくいかない[重複]  ( Histcontrol ignoreboth doesnt work ) 
この質問はすでにここで回答を持っています .bash_history の重複エントリを回避する方法 (6回答) ...

20  GNOME端末の「ユーザー@ host $:」パターンを変更できるのか(そしてどこで)  ( How and where can one change userhost pattern in gnome terminal ) 
Ubuntuで端末を起動するとき、私は見ます: <事前> <コード> ilya@HOST:~$ これにタイムスタンプを追加する必要があります。 <事前> <コード> 2011-10-09T09:32:00 ilya@HOST:~$ これをどのように設...

0  コマンド '$ sudo gedit~ / .bashrc'にubuntuにHadoopをインストールしている間、init serverが不可能になりました:接続できませんでした:接続が拒否されました  ( While installing hadoop in ubuntu for the command sudo gedit bashrc im ge ) 
これは私のコマンドの写真です、そしてそれはエラーです > ...

6  私のbash関数は端末ごとに1回だけ実行されます  ( My bash function runs only once per terminal opened ) 
.BASHRCで定義されたBASH機能を実行しようとすると、同じ端末に2回目の場合は機能しません。 コードは次のものです。 <事前> <コード> eth016 これを実行します: <事前> <コード> lspci7 〜/ mydirectory に行きま...

5  bashrc編集ターミナルコマンドarrow-up履歴印刷  ( Bashrc edit messes up terminal command arrow up history print ) 
私はUbuntuに私のターミナルプロンプトをより個性的な外観に与え、コマンドを書くときに '$'の前にテキストを変更したいと思いました。 これを見つけたものから、ホームディレクトリに.bashrcファイルを編集することで行われますので、そこに入って変更 <事前...

3  gnomeターミナルが開かれていません `source〜/ .bashrc`を開く?  ( Gnome terminal is not running source bashrc when opened ) 
Ubuntu 12のクリーンなインストールを持っていて、 bashmarks 、持っているユーティリティターミナルのフォルダ。 ステップの1つは、<コード> virtualbox-dkms9 の末尾に virtualbox-dkms8 を含めることです。 ソ...

0  今すぐバッシュプロファイルのコピーにアクセスできますか?  ( Can i access an a copy of bash profile current terminal is running right now ) 
誤って〜/ .bashrcを削除しました。 しかし、私はすべての設定を持つ実行中のターミナルを持っています。 端末の起動時の〜/ .bashrcの内容にアクセスすることは可能ですか? ...

9  Bashプロンプトの現在のパスを1ディレクトリごとに1文字に短縮するにはどうすればよいですか。  ( How can i shorten the bash prompts current path to one letter per directory ) 
どこでどこでも覚えていませんが、私はすでにBashプロンプトの現在のパスが興味深い方法で短縮されているのを見ました。たとえば、<コード> path/to/some/directory は<コード> p/t/s/directory に短縮されます。 どのように私...

59  シェルスクリプトからの.bashrcを正常に送信できません  ( Cannot successfully source bashrc from a shell script ) 
通常、このコマンドを使用して ~/.bashrc ファイルを送信できます。 <事前> <コード> source ~/.bashrc しかし、これをシェルスクリプトに書き込んで実行した場合、何も起こりません。なぜ? これを行う方法はありますか? マイスクリプ...

192  コマンドライン(BASH)プロンプトを短縮するにはどうすればよいですか。  ( How can i shorten my command line bash prompt ) 
現在それは次のとおりです。 <事前> <コード> michael@Castle2012-Ubuntu-laptop01:~/Dropnot/webs/rails_v3/linker/spec/controllers$ マシンとディレクトリ構造の名前を変更す...

0  SUDOの内側のシェルスクリプトに関する問題  ( Problems with sudo inside shell script ) 
書き込み権限がないファイルを編集しようとした場合、およびエイリアスを作成したことを編集しようとしている場合、sudoを使用してviを実行するためのシェルスクリプトを作成したい。 <事前> <コード> alias vi=my_script.sh ...

4  AndroidのTermuxアプリのためのUbuntu 19.04にSwiftをインストール/エミュレートする方法  ( How can i install emulate swift on ubuntu 19 04 for androids termux app ) 
これはこのフォーラムの私の最初の質問です。 私の悪い英語で申し訳ありませんが、それが正しい場所ではないかどうかアドバイスしてください。 このフォーラムの他の質問の答えに続いて、 Termuxアプリの Termuxアプリでwebuntu 19.04のwiftをイ...

2  ターミナルの最初の行でラインブレークはありません  ( No line breaks in first line in terminal ) 
私はMacOSのように見えるようにするためにUbuntu 17.10システムを修正しました。今、私の端末がどのように振る舞うかについて混乱しています。ラインブレークは正しく表示されません。 このビデオは私が何を意味するのかを示しています。 変更されたファイル...

2  GSUTIL BASHRCファイルパス設定  ( Gsutil bashrc file path setting ) 
実際に私は に従って gsutil をインストールしました。ここで 。 しかし、私が次のようになっているコマンドプロンプトで gsutil を入力しているときは、次のようになります。 <事前> <コード> No command was given. Choos...

1  PowerLineを適用した後ではなく、Bashでのセットタイトル機能  ( Set title function in bash not work after applying powerline ) 
set-title ? 私は端末のBash-Terminのタイトルを変更するために使用するいくつかのトリックを発見してください。ここでそれがどのように機能しますか: <事前> <コード> #function set-title() on terminal...

-1  すべてのMake AllとBashrc [Duplicate]を使用してクラスベンチをインストールする方法  ( How to install class bench using make all and bashrc ) 
この質問はすでにここで回答を持っています パスにバイナリを追加する (4回答) 閉じた 6年前> クラス...

0  /etc/skel/.bashrcをホームにコピーした後でもLSの自動色は有効になっていません  ( Auto colour on ls not enabled even after copying etc skel bashrc to home ) 
コメントを参照してくださいここ .bashrcファイルをコピーする場所の質問に尋ねたかった。ユーザーのホームにコピーすると、オートカラーLSコマンドが有効になりません。 お願いします、誰かが私にはまだ50の評判ポイントがない場合は、投稿にコメントを上げる方法を...

7  デフォルトの/etc/bash.bashrcファイルの内容を見つけることができますか?  ( Where i can find the contents of the default etc bash bashrc file ) 
誤って /etc/bash.bashrc ファイルを上書きします。 そのファイルのデフォルトのコンテンツを復元するか、ファイル自体を入力してください。 ...

12  天気、カレンダー、時間&sysinfoの端子スプラッシュスクリーン?  ( Terminal splash screen with weather calendar time sysinfo ) 
Windows 10ターミナルスプラッシュスクリーンでUbuntu Bashを見ました。 LinuxディスプレイLinuxディストリビューションのWindowsサブシステム? 私の ~/.bashrc を変更するにはどうすればいいですか?: ...

0  任意のディレクトリから「Android」への呼び出しを許可するように.BASHRCを変更する  ( Changing bashrc to allow a call to android from any directory ) 
リストされているディレクトリに次のコマンドを正しく実行できます。 <事前> <コード> kn@MrComp:~/.android_os/adt-bundle-linux/sdk/tools$ android list targets Available And...

0  ターミナルがコマンドの後に終了しますか?  ( Terminal closes after commands ) 
だから私は二重起動Ubuntu 14.04 LTSとWindows 10を起動しています。昨日私は私のWindows 10パーティションに起動するために再起動しました。 Visual Studioを使用した後、Ubuntuに再起動しました。さて、いくつかの奇妙...

3  bash:script / bash_completion_dog:そのようなファイルまたはディレクトリなし  ( Bash script bash completion dog no such file or directory ) 
ターミナルを開くと、このメッセージが表示されます。私は私の.bashrcファイルを修正しようとしましたが、このエラーメッセージに関連するものは何も見つかりませんでした。これを解決するにはどうすればいいですか? terdon 、次のようにしてみました。 <事...

2  〜/ .Bashrcの変更は効果がありませんか?  ( Bashrc changes have no effect ) 
私は端末の user@hostname:~$ にカスタムカラーをいくつか設定しようとしています。 <コード> ~/.bashrc および<コード> /etc/bash.bashrc の両方を編集しました 言った場所: <事前> <コード> host@user...

2  SUMO_HOME ...ミステリーは続きます  ( Sumo home the mystery continues ) 
私はUbuntu 17.10.1を実行していて、Synapticを介してUbuntu RespositoryからSumo 0.32.0をダウンロードしました。構成手順は、インストールの「Base Directory」にSUMO_HOMEを設定し、このディレクト...

関連する質問

0  カスタマイズされたシェルスクリプトは実行できません 
4  histcontrol = ignorebothはうまくいかない[重複] 
20  GNOME端末の「ユーザー@ host $:」パターンを変更できるのか(そしてどこで) 
0  コマンド '$ sudo gedit~ / .bashrc'にubuntuにHadoopをインストールしている間、init serverが不可能になりました:接続できませんでした:接続が拒否されました 
6  私のbash関数は端末ごとに1回だけ実行されます 
5  bashrc編集ターミナルコマンドarrow-up履歴印刷 
3  gnomeターミナルが開かれていません `source〜/ .bashrc`を開く? 
0  今すぐバッシュプロファイルのコピーにアクセスできますか? 
9  Bashプロンプトの現在のパスを1ディレクトリごとに1文字に短縮するにはどうすればよいですか。 
59  シェルスクリプトからの.bashrcを正常に送信できません 
192  コマンドライン(BASH)プロンプトを短縮するにはどうすればよいですか。 
0  SUDOの内側のシェルスクリプトに関する問題 
4  AndroidのTermuxアプリのためのUbuntu 19.04にSwiftをインストール/エミュレートする方法 
2  ターミナルの最初の行でラインブレークはありません 
2  GSUTIL BASHRCファイルパス設定 
1  PowerLineを適用した後ではなく、Bashでのセットタイトル機能 
-1  すべてのMake AllとBashrc [Duplicate]を使用してクラスベンチをインストールする方法 
0  /etc/skel/.bashrcをホームにコピーした後でもLSの自動色は有効になっていません 
7  デフォルトの/etc/bash.bashrcファイルの内容を見つけることができますか? 
12  天気、カレンダー、時間&sysinfoの端子スプラッシュスクリーン? 
0  任意のディレクトリから「Android」への呼び出しを許可するように.BASHRCを変更する 
0  ターミナルがコマンドの後に終了しますか? 
3  bash:script / bash_completion_dog:そのようなファイルまたはディレクトリなし 
2  〜/ .Bashrcの変更は効果がありませんか? 
2  SUMO_HOME ...ミステリーは続きます