![Глобальное использование «псевдонимов» в Debian 10](https://rvso.com/image/756221/%D0%93%D0%BB%D0%BE%D0%B1%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B5%20%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%20%C2%AB%D0%BF%D1%81%D0%B5%D0%B2%D0%B4%D0%BE%D0%BD%D0%B8%D0%BC%D0%BE%D0%B2%C2%BB%20%D0%B2%20Debian%2010.png)
Я пытался добавить глобальное использование псевдонимов на моем экземпляре Debian 10, но безуспешно.
Я уже пытался добавить свои псевдонимы в /etc/bash.bashrc, а также добавить этот фрагмент в /etc/profile, чтобы получить его, но он не работал.
if [ -f /etc/bash.bashrc ]; then . /etc/bash.bashrc fi
В моем bash.bashrc:
#Aliases
alias l='ls -la'
alias ll='ls -l'
alias la='ls -a'
РЕДАКТИРОВАТЬ*
Как создать псевдоним для "ls". Например, ls='ls -CF'. Так как когда я использую его как псевдоним, он не работает?
решение1
Debian должен работать с /etc/bash.bashrc. Проверьте /etc/passwd
и убедитесь, что пользователь использует оболочку bash.
user1:x:1000:1000:User 1:/home/user1:/bin/bash
user2:x:1001:1001:User 2:/home/user2:/bin/zsh
По умолчанию добавление пользователей с помощью useradd или adduser создаст их с bash в качестве оболочки, но это может быть изменено на другую оболочку (zsh очень популярна). В примере выше user1 использует оболочку bash, а user2 использует zsh. User2 не будет запускать /etc/bash.bashrc при входе в систему.
решение2
Глядя на свое ~/.bashrc
Я вижу, ls
что уже определено как alias ls='ls --color=auto'
.
Добавление нового ls
определения псевдонима в /etc/bash.bashrc
as alias ls='ls -CF'
не помогает, поскольку, как я предполагаю, определение в ~/.bashrc
переопределяет.
В моем тестировании для работы было достаточно закомментировать ls
псевдоним, определенный в моем ~/.bashrc
файле enabled, и включить его в тот, который я добавил для глобального определения .etc/bash.bashrc
Это немного отличается от того, как Red Hat обрабатывает глобальные псевдонимы, что позволяет вам вводить свои глобальные псевдонимы, /etc/profile.d/[filename].sh
но из-за разного способа настройки Debian и Red Hat, а также взаимосвязи между профилями и файлами bashrc, похоже, это не вариант для Debian.
Под этим я подразумеваю, что Red Hat обрабатывает файлы профиля/bashrc, извлекая их таким образом, чтобы они работали для различных оболочек/типов входа (как объяснено здесь).https://unix.stackexchange.com/questions/170493/login-non-login-and-interactive-non-interactive-shells). Однако для Debian, похоже, файлы /etc/profile.d/*.sh
поставляются только для оболочек входа. Но поскольку мой предыдущий ответ здесь был удален, я не смог отредактировать и уточнить.
Для Debian, если вы согласны, чтобы глобальные псевдонимы работали только для оболочек входа, то поместите их, скажем, в /etc/profile.d/aliases.sh
. В противном случае, похоже, вам нужно добавить их в /etc/bash.bashrc
. Имея в виду, что псевдонимы в ~/.bashrc
будут иметь приоритет. Если определяемые вами псевдонимы не работают, то, скорее всего, они определены в другом месте и переопределяют ваши.