Я хотел бы создать псевдоним для команды rm, чтобы получить подтверждение после выполнения этой команды. Поэтому я создаю псевдоним, подобный этому alias rm='rm -i'. Но, насколько я знаю, это временный псевдоним, и он живет до тех пор, пока вы не закроете терминал.
Как поясняется здесь, чтобы сохранить псевдоним постоянно, мне нужно выполнить команды ~/.bash_aliases или ~/.bashrc в терминале и добавьте мой псевдоним. Но когда я выполняю ~/.bashrc, я получаю следующее сообщение об ошибке:
bash: /home/bakhtiyor/.bashrc: Permission denied
Когда я запускаю ~/.bash_aliases, я получаю следующее сообщение об ошибке:
bash: /home/bakhtiyor/.bash_aliases: File or directory doesn't exist.
Что такое фактическая проблема и как я могу ее решить?
Существует много способов создания псевдонима. Наиболее часто используемые способы:
Добавить псевдонимы непосредственно в ваш файл ~/.bashrc Например: добавьте эту строку в файл ~/.bashrcalias ll='ls -l'
alias rm='rm -i'
В следующий раз (после того, как вы вышли из системы / f6]), когда вы набираете rm, команда rm -i будет выполнена. Второй метод позволяет вам создать отдельный файл псевдонимов, поэтому вам не придется помещать их в .bashrc, а в файл по вашему выбору. Сначала отредактируйте файл ~/.bashrc и добавьте или раскомментируйте следующие строки, если он еще не if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
Сохраните его и закройте файл. После этого все, что вам нужно сделать, это создать файл ~/.bash_aliases и добавить туда псевдонимы с тем же форматом, который указан в первом методе. Содержимое моего файла ~/.bash_aliases: alias cs='cd;ls'
Проблема заключается в том, что вы пытаетесь выполнить неисполняемый файл: вы можете проверить это с помощью:
ls -la ~/.bashrc
-rw-r--r-- 1 username username 3596 2010-08-05 17:17 /home/pt001424/.bashrc
Обратите внимание, что в первом столбце нет буквы «x - executable» (разрешения файлов ).
Файлы профилей не являются исполняемыми файлами, вместо их выполнения вы загружаете их:
source /home/bakhtiyor/.bashrc
или
. /home/bakhtiyor/.bashrc
Мне кажется, что ваша единственная проблема - просто пытаться выполнить .bashrc, когда он не является исполняемым. Но это не правильный способ сделать это; всякий раз, когда вы вносите изменения в этот файл, вы должны «выполнить» его командой:
source ~/.bashrc
В противном случае он просто создаст новую оболочку, запустит файл в среде новой оболочки, а затем отбросит эта среда, когда она выходит, тем самым теряя ваши изменения. Пользуясь сценарием, он выполняется в текущей оболочке, поэтому он останется в силе.
Я предполагаю, что вторая ошибка была связана с тем, что bash_aliases не существует. Это не требуется, просто рекомендуется сохранить ваши изменения отдельно и организовано. Он используется только в том случае, если он существует, и вы можете проверить его в .bashrc:
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
Это говорит о том, что если файл ~ / .bash_aliases существует, запустите его.
echo "alias vps='ssh -X user@example.com'" >> ~/.bashrc
Это пример, который я искал, способ набрать несколько букв на терминале («vps»), чтобы удаленно войти на сервер и включить пересылку X11, чтобы я мог запускать GUI-приложения, такие как «gedit» «по сети.
Независимо от команды command / aliased, этот способ с помощью оператора echo, кавычек и символа для добавления вывода команды в файл (>>) работает для меня. Просто замените мою команду на команду alias, которая вам нужна, и введите ее в ваш терминал.
Я сделал эту небольшую функцию для быстрого написания нового псевдонима для .bashrc
##------------------------------------ ##
# -- new-alias -- #
# creates new alias & writes to file #
# $1 = alias new #
# $2 = alias definition #
##------------------------------------ ##
new-alias () {
if [ -z "$1" ]; then
echo "alias name:"
read NAME
else
NAME=$1
fi
if [ -z "$2" ]; then
echo "alias definition:"
read DEFINTION
else
if [ "$2" = "-cd" ]; then
DEFINTION='cd '
else
DEFINTION=$2
fi
fi
echo "alias $NAME='$DEFINTION'" >> ~/.bashrc
. ~/.bashrc
}
, если вы используете ruby, вы можете установить aka с помощью rubygem.
gem install aka2
use
aka generate hello="echo helloworld" #add an alias
aka g hello="echo helloworld" #add alias for lazy people
aka destroy hello #remove alias
aka d hello #remove alias for lazy people
rubygem автоматически установит ваш точечный файл, чтобы вам не нужно было. Проверьте это.
Я бы предложил использовать /etc/bash.bashrc
Вы можете добавить строку в конце этого файла.
alias ok="ping google.com"
После ввода псевдонимов на строку вы должны перезагрузить или переустановить .