这与其他所有问题非常相似但同时又不相似。
准确地说,我正在运行 Ubuntu 12.04.4 LTS(GNU/Linux 3.2.0-59-generic x86_64)。
我成功地设置了一个新用户:useradd -m webuser
,但是,无论我做什么,似乎都无法使大多数 bash 功能(例如自动完成和历史记录)正常工作。
例如我的 .bashrc 文件有:
# If not running interactively, don't do anything
[ -z "$PS1" ] && return
# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
HISTCONTROL=ignoredups:ignorespace
# append to the history file, don't overwrite it
shopt -s histappend
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000
但是当我echo "$HISTFILESIZE"
没有得到null
但我也没有得到结果时:
$ echo "$HISTFILESIZE"
(不幸的是,由于这个网站试图变得非常智能,所以它不允许我真正地向您展示)。
这适用于所有历史变量。
无论我做什么,我似乎都无法使基本环境变量起作用,而且它似乎无法.bashrc
被读取。
除此之外,我的 set -o 还小得可怜:
Current option settings
errexit off
noglob off
ignoreeof off
interactive on
monitor on
noexec off
stdin on
xtrace off
verbose off
vi off
emacs off
noclobber off
allexport off
notify off
nounset off
nolog off
debug off
我尝试的所有问题都无济于事,例如:https://superuser.com/questions/174306/how-can-i-enable-the-bash-command-history
我正在通过 PuTTY 使用 SSH 登录。
编辑
直接从 ssh 终端输出 echo $0:
$ echo $0
-sh
答案1
我不确定 100%-sh
是什么,但你可能使用的是sh
,而不是bash
。根据记忆,新用户默认为sh
。要让他们自动使用 bash,请/etc/passwd
使用 root 权限进行修改。例如
sudo vim /etc/passwd
sudo nano /etc/passwd
gksu gedit /etc/passwd
然后,找到包含您用户名的行。将最后一部分从 (eg) 更改/bin/sh
为/bin/bash
。重新启动终端或再次登录/退出。