Глобальное использование «псевдонимов» в Debian 10

Глобальное использование «псевдонимов» в Debian 10

Я пытался добавить глобальное использование псевдонимов на моем экземпляре 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.bashrcas 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будут иметь приоритет. Если определяемые вами псевдонимы не работают, то, скорее всего, они определены в другом месте и переопределяют ваши.

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