Я знаю, что в bash вы можете настроить псевдонимы в файле .bash_aliases, чтобы вводимая вами команда не обязательно была командой, хранящейся в двоичных файлах в системе. Есть ли какой-нибудь способ, которым я могу получить псевдонимы в zsh?
Я хожу взад и вперед между bash и zsh и использую один и тот же .aliases
файл для обоих. Они используют один и тот же базовый синтаксис псевдонимов, поэтому вы можете создать .aliases
файл и свяжите его с .bashrc
и .zshrc
:
.bashrc
if [ -f ~/.aliases ]; then . ~/.aliasesfi
.zshrc
source $HOME/.aliases
FWIW это также можно сделать с помощью объявлений переменных среды в отдельном .env
файл.
Вы можете сделать это с помощью команды "псевдоним" с таким синтаксисом:
alias [ -gmrL ] [ name[=value] ... ]
Для переключателей "gmrL" см. это руководство, которое является моей ссылкой.
Для каждого имени, не имеющего значения, zsh выведет имя и то, к чему оно было присвоено ранее. Вообще без каких-либо аргументов, alias
выводит значения ВСЕХ определенных псевдонимов.
Чтобы определить один или несколько псевдонимов, просто введите:
alias name1=value1 name2=value2 ... nameX=valueX
Для каждого имени с соответствующим значением zsh определяет псевдоним с этим значением. Для получения дополнительной информации перейдите по этой ссылке. ;-)
Вы обычно помещаете их в ~/.zshenv
. Но многие программы используют /bin/sh
(обычно bash
) вместо $SHELL
для выполнения команд оболочки, поэтому для того, чтобы он работал везде, вам, вероятно, потребуется поместить bash
эквивалент псевдонима в ~/.bash_aliases
в любом случае.
.zshrc
добавьте эту строку в нижней части файла (предполагая, что ваши псевдонимы, расположенные в ~/.profile
):
source ~/.profile
Я пробовал кое-что, и я нашел способ использовать мои псевдонимы, созданные в bash, в zsh, только мне пришлось скопировать эти строки из bashrc:
if [-f ~ / .bash_aliases]; then. ~ / .bash_aliasesfi
Я написал это и положил в свой ~/.bashrc
давным-давно. Я не описал все, что можно сделать с сохранением ваших настроек, но просто используйте свое воображение!
Примечание: Если вы обновляете ~/.bash_aliases
затем обновите ~/.oh-my-zsh/.zsh_aliases
тоже.
Спасает ваши ~/.bash_history
, ~/.bashrc
, ~/.bash_aliases
и ~/.profile
в Dropbox. Сначала создайте файл с именем в честь ваших файлов в папке Dropbox. Таким образом, независимо от того, где вы его редактируете, если оно отредактировано? Он обновлен на всех ваших устройствах. Добавьте следующие строки в свой ~/.bashrc
:
DBPATH=${HOME}"/Dropbox"; ## Path to your DropBox Folderif [ -d "${DBPATH}" ] then BA="/.bash_aliases" ## Path to your .bash_aliases Fileif [ ${HOME}"${BA}" -nt ${DBPATH}"${BA}" ] then cat ${HOME}"${BA}" > ${DBPATH}"${BA}" 2>/dev/null;# If updating ~/.bash_aliases then update ~/.oh-my-zsh/.zsh_aliases Too cat ${HOME}"${BA}" > ${ZSH}"/.zsh_aliases" 2>/dev/null; fi BRC="/.bashrc" ## Path to your .bashrc Fileif [ ${HOME}"${BRC}" -nt ${DBPATH}"${BRC}" ] then cat ${HOME}"${BRC}" > ${DBPATH}"${BRC}" 2>/dev/null; fi BPF="/.profile" ## Path to your bash .profile Fileif [ ${HOME}"${BPF}" -nt ${DBPATH}"${BPF}" ] then cat ${HOME}"${BPF}" > ${DBPATH}"${BPF}" 2>/dev/null; fi BHT="/.bash_history" ## Path to your .bash_history Fileif [ ${HOME}"${BHT}" -nt ${DBPATH}"${BHT}" ] then cat ${HOME}"${BHT}" > ${DBPATH}"${BHT}" 2>/dev/null; fi## First make a file named after your files in the Dropbox folder# That way no matter where you edit konsole bookmarks, If it's edited? # It's up-to-date on all Your devices. HLS=${HOME}"/.local/shere" KBM="/konsole/bookmarks.xml"if [ ${HLS}"${KBM}" -nt ${DBPATH}"${KBM}" ] then cat ${HLS}"${KBM}" > ${DBPATH}"${KBM}" 2>/dev/null; fifi