"source /etc/profile"を/etc/bash.bashrcに入れましたが、Ubuntu 16.04でターミナルウィンドウを開くことができませんでした。これで、ターミナルウィンドウを開こうとするたびに数秒後に閉じます。その数秒間、プロンプトもコマンドもありませんでした。
私の/etc/bash.bashrcは次のようになります
# System-wide .bashrc file for interactive bash(1) shells.
# To enable the settings / commands in this file for login shells as well,
# this file has to be sourced in /etc/profile.
# If not running interactively, don't do anything
[ -z "$PS1" ] && return
# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize
# 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
source /etc/profile
alias login="sudo login"
# set a fancy prompt (non-color, overwrite the one in /etc/profile)
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
# Commented out, don't overwrite xterm -T "title" -n "icontitle" by default.
# If this is an xterm set the title to user@host:dir
#case "$TERM" in
#xterm*|rxvt*)
# PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD}\007"'
# ;;
#*)
# ;;
#esac
# enable bash completion in interactive shells
#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
# sudo hint
if [ ! -e "$HOME/.sudo_as_admin_successful" ] && [ ! -e "$HOME/.hushlogin" ] ; then
case " $(groups) " in *\ admin\ *|*\ sudo\ *)
if [ -x /usr/bin/sudo ]; then
cat <<-EOF
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
EOF
fi
esac
fi
# if the command-not-found package is installed, use it
if [ -x /usr/lib/command-not-found -o -x /usr/share/command-not-found/command-not-found ]; then
function command_not_found_handle {
# check because c-n-f could've been removed in the meantime
if [ -x /usr/lib/command-not-found ]; then
/usr/lib/command-not-found -- "$1"
return $?
elif [ -x /usr/share/command-not-found/command-not-found ]; then
/usr/share/command-not-found/command-not-found -- "$1"
return $?
else
printf "%s: command not found\n" "$1" >&2
return 127
fi
}
fi
これは私の/ etc / profileです
# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
export NODE_REPL_HISTORY=""
unset HISTFILE
set +o history
alias login="sudo login"
if [ "$PS1" ]; then
if [ "$BASH" ] && [ "$BASH" != "/bin/sh" ]; then
# The file bash.bashrc already sets the default PS1.
# PS1='\h:\w\$ '
if [ -f /etc/bash.bashrc ]; then
. /etc/bash.bashrc
fi
else
if [ "`id -u`" -eq 0 ]; then
PS1='# '
else
PS1='$ '
fi
fi
fi
if [ -d /etc/profile.d ]; then
for i in /etc/profile.d/*.sh; do
if [ -r $i ]; then
. $i
fi
done
unset i
fi
端末が閉じられた理由は、ある人が他の人を呼び出し、他の人が他の人を呼び出す間違いで作られた無限ループのためだと99%確信しています。
どうですか?
答え1
問題は実際に無限ループです。シェルは、読んで/etc/profile
、何を読むべきかを見つけ、それを実行し/etc/bash.bashrc
、読んでいるものを見つけてそれを/etc/profile
実行するなどの作業を行います。結局のところ、シェルはあまりにも深く再発すると判断し、放棄します。
シェルが起動ファイルを処理している間に+を押しますCtrl。Cメッセージが表示されます。
次に包含/etc/bash.bashrc
と/etc/profile
包含/etc/profile
を削除します/etc/bash.bashrc
。これらのファイルはさまざまな目的に使用されます。
/etc/profile
ログイン時に環境変数の設定などの操作を読み、実行します。通常、bash以外のシェルによって実行されます。/etc/bash.bashrc
対話型セッションでのみ使用されるbash構成ファイル。エイリアスやヒントなどの項目を含める必要があります。 Bashは、端末でbashを実行するとロードします。
答え2
希望のディストリビューションを使用してライブUSBを作成することをお勧めします。 liveusbでコンピュータを開き、/
パーティションをマウントします。
mount /dev/sdX /mnt
/mnt
liveISOになります。
次に、nano、vim、またはその他のテキストエディタを使用して設定を編集し、次のいずれかの行を削除します。
その後、umount
ディスクを使用してコンピュータを再起動すると機能します。