Почему псевдоним не работает в AIX (оболочка Korn, .profile)?

Почему псевдоним не работает в AIX (оболочка Korn, .profile)?

У меня в домашнем каталоге есть следующие файлы:

drwxr-xr-x    3 meuser staff           256 Oct 12 13:11 .
drwxr-xr-x  102 bin      bin            4096 Sep 30 12:28 ..
-rw-------    1 meuser staff          5349 Oct 11 20:44 .bash_history
-rwx------    1 meuser staff           466 Jun 26 22:12 .profile
-rw-------    1 meuser staff          7074 Oct 12 13:11 .sh_history
drwx------    2 meuser staff           256 Aug 16 15:28 .ssh

Моя оболочка по умолчанию — оболочка Korn. Когда я попытался ввести псевдоним .profileтак:

alias l='ls -lrt'

и попробовал запустить его после повторного входа:

$ l
ksh: l:  not found.

Как заставить этот псевдоним работать?

решение1

.profileчитается только при входе в систему. Более поздние изменения не влияют на текущую среду. Вам необходимо перезагрузить ее .profileс помощью:

  • источник файла: . .profile(влияет натекущийоболочка, невсеракушки)
  • su -l <user>(новый логин)
  • выход из системы + вход в систему

решение2

Это действительно работает.

Единственное отличие, которое я вижу в своем .profile, — это двойные кавычки:

alias l="ls -l"

Эта строка работает у меня в AIX с ksh в качестве оболочки.

Что касается отключения и повторного подключения... вы уверены, что оболочка по умолчанию — ksh? Проверьте своего пользователя в /etc/passwd.

решение3

Это .profileне файл конфигурации вашей оболочки, это ваш сеанс входа в систему.файл настроек. Он читается только оболочкой, запущенной при входе в систему, а не другими интерактивными оболочками, запущенными в ходе сеанса входа в систему.

kshне имеет отдельного файла настройки как такового, но обрабатывает $ENVпеременную как путь к файлу настройки для сеансов интерактивной оболочки.

Поэтому вы бы добавили что-то вроде:

ENV="$HOME/.kshrc" export ENV

к вашему ~/.profileи:

alias 'l=ls -lrt'

на ваш ~/.kshrc.

Изменение вступит в силу только при следующем входе в систему.

решение4

Псевдонимы работают в AIX с Korn Shell.

Добавьте несколько команд в конце вашего /etc/profileлайка:

export PS1="`hostname`# "
alias ll="/usr/bin/ls -lF $*"
alias h="history 50"

Если вы хотите, чтобы эти переменные были установлены внутри вашей среды, запустите:

. /etc/profile

Связанный контент