Я могу предложить фиксацию для той последней: удостоверьтесь, что огибающий переменный HISTCONTROL не указывает "ignorespace" (или "ignoreboth").
Но я чувствую Вашу боль с несколькими параллельными сессиями. Это просто не обрабатывается хорошо в ударе.
Файл $HOME/.profile
используется многими оболочками, включая удар, sh, тире и возможно других.
Из страницы справочника удара:
Когда удар вызывается как интерактивная оболочка входа в систему... он сначала читает и выполняет команды из файла/etc/profile, если тот файл существует. После чтения того файла это ищет ~/.bash_profile, ~/.bash_login и ~/.profile, в том порядке, и читает и выполняет команды от первой, которая существует и читаема.
csh и tcsh явно не смотрят на ~/.profile
но те оболочки отчасти вытеснены.
~/.profile
правильное место для определений переменной среды и для неграфических программ, которые Вы хотите запустить, когда Вы входите в систему (например. ssh-agent
, screen -m
). Это выполняется Вашей оболочкой входа в систему, если это - оболочка стиля Границы (sh, ksh, удар). Выполнения Zsh ~/.zprofile
вместо этого, и Csh и выполненный tcsh ~/.login
.
Если Вы входите в систему под X менеджерами по оформлению (xdm, gdm, kdm...), ли ~/.profile
выполняется зависит, как Ваш менеджер по оформлению и возможно настольная среда были настроены Вашим распределением. Если Вы входите в систему под “пользовательской сессией”, которая обычно выполняется ~/.xsession
.
~/.bashrc
правильное место для определенных для удара настроек, таких как псевдонимы, функции, опции оболочки и подсказки. Как имя указывает, это характерно для удара; csh имеет ~/.cshrc
, ksh имеет ~/.kshrc
, и zsh имеет <барабан> ~/.zshrc
.
См. также:
Различие между .bashrc и .bash_profile
Какие файлы настройки должны использоваться для установки переменных среды с ударом?
Zsh, не совершающий нападки ~/.profile
.zlogin
в дополнение к .zprofile
который бежит .zshrc
(но только для оболочек входа в систему). Посмотрите Хороший ZSH FAQ
– Geeb
23.01.2014, 16:23
Нет такой вещи как файл конфигурации среды для различных оболочек, потому что даже окружают конкретный, как они определяются.
В csh Вы используете setenv
в ударе Вы используете export
определить их.
Так или иначе Вы могли записать свой собственный файл конфигурации и включать его с source
в dotfiles Ваших оболочек.
Нет никакого общего файла, но можно сделать каждую оболочку считанной из общего файла.
bash
чтения от .bash_profile
или .bashrc
zsh
чтения от .zprofile
и .zshrc
ksh
чтения от .profile
или $ENV
Таким образом, вот то, что я делаю:
~/.env
# Put environment variables here, e.g.
PATH=$PATH:$HOME/bin
~/.shrc
test -f "$HOME/.env" && . "$HOME/.env"
# Put interactive shell setup here, e.g.
alias ll='ls -l'
PS1='$PWD$ '
set -o emacs
~/.bashrc
test -f ~/.shrc && source ~/.shrc
# Put any bash-specific settings here, e.g.
HISTFILE=~/.bash_history
shopt -s extglob
IGNOREEOF=yes
~/.zshenv
# Put any zsh-specific settings for non-interactive and interactive sessions, e.g.
setopt braceexpand
setopt promptsubst
setopt shwordsplit
~/.zshrc
test -f ~/.shrc && source ~/.shrc
# Put any zsh-specific interactive settings here, e.g.
HISTFILE=~/.zsh_history
setopt ignoreeof
~/.profile
# Interactive sub-shells source .env, unless this is bash or zsh,
# because they already sourced .env in .bashrc or .zshrc.
if test -z "$BASH_VERSION" -a -z "$ZSH_VERSION" || test -n "$BASH_VERSION" -a \( "${BASH##*/}" = "sh" \)
then
test -f "$HOME"/.env && . "$HOME"/.env
fi
# The name is confusing, but $ENV is ksh's config file for interactive sessions,
# so it's equivalent to .bashrc or .zshrc.
# Putting this here makes running an interactive ksh from any login shell work.
test -f "$HOME"/.shrc && export ENV="$HOME"/.shrc
# Put any login shell specific commands here, e.g.
ssh-add
stty -ixon
~/.bash_profile
source ~/.bashrc
source ~/.profile
~/.zlogin
# zsh sources .zshrc automatically, only need to source .profile
source ~/.profile
~/.zprofile
(empty)
Если у Вас есть корневой доступ к системе, иначе должен настроить pam_env
.
Можно поместить
session optional pam_env.so user_envfile=.env
в соответствующем /etc/pam.d
файл (например. /etc/pam.d/common-session
на Debian), и затем когда пользователь входит в систему, PAM
считает переменные среды из ~/.env
.
Отметьте это pam_env
в основном только поддержки VAR=value
записи.
Подробнее:
Run command as a login shell
. Также необходимо удалить~/.bash_profile
, или сделайте это источником~/.profile
. – Mikel 26.11.2013, 22:07$HOME/.profile
из Вашего Zsh.zshrc
, также. Я склонен вставлять все свои портативные вещи оболочки.profile
и затем я могу совместно использовать его вокруг любой среды, между которой я мог бы скачкообразно двинуться. – Benjamin R 31.05.2017, 06:51