Я хотел бы создать псевдоним для 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 файл
Например: добавьте эти строки в ~/.bashrc файл
alias ll='ls -l'alias rm='rm -i'
В следующий раз (после того, как вы выйдете из системы / войдете в систему или закончите . ~/.bashrc) когда вы печатаете rm то rm -i команда будет выполнена.
Второй метод позволяет вам создать отдельный файл псевдонимов, так что вам не придется помещать их в .bashrc, но в файл по вашему выбору. Во-первых, отредактируйте свой ~/.bashrc файл и добавьте следующие строки, если они еще не существуют, или раскомментируйте их, если они существуют:
if [ -f ~/.bash_aliases ]; then. ~/.bash_aliasesfi
Сохраните его и закройте файл. После этого все, что вам нужно сделать, это создать ~/.bash_aliases файл и добавьте туда свои псевдонимы в том же формате, что и в первом способе.
Мне кажется, что ваша единственная проблема заключается в том, чтобы просто попытаться выполнить .bashrc, когда он не является исполняемым. Но это неправильный способ сделать это; всякий раз, когда вы вносите изменения в этот файл, вы должны "выполнить" его с помощью команды:
source ~/.bashrc
В противном случае он просто создаст новую оболочку, выполнит файл в среде новой оболочки, а затем отбросит эту среду при выходе, тем самым потеряв ваши изменения. При отправке скрипта он выполняется в текущей оболочке, поэтому он останется в силе.
Я предполагаю, что вторая ошибка произошла из-за того, что bash_aliases не существует. Это не обязательно, просто рекомендуется хранить ваши изменения отдельно и организованно. Он используется только в том случае, если он существует, и вы можете увидеть его тест в .bashrc:
if [ -f ~/.bash_aliases ]; then. ~/.bash_aliasesfi
Это говорит о том, что если файл ~/.bash_aliases существует, то запустите его.
Это пример, который я искал, способ ввести несколько букв в терминале ("vps") для удаленного входа на сервер и включить переадресацию X11, чтобы я мог запускать приложения с графическим интерфейсом, такие как "gedit", по сети.
>>Какой бы ни была команда / команда с псевдонимами, этот способ с помощью инструкции echo, кавычек и символа для добавления выходных данных команды в файл () работает для меня. Просто замените мою команду на нужную вам команду псевдонима и введите ее в свой терминал.
Я написал эту полезную функцию, чтобы быстро создать новый псевдоним, а затем записать определение псевдонима в ~/.bash_aliases(если он существует) или ~/.bashrc.
совет: Обеспечить ~/.bash_aliases существует и выполняется в ~/.bashrc.
# -----------------------------------# Create a new permanent bash alias## @param $1 - name# @param $2 - definition# -----------------------------------new-alias () { if [ -z "$1" ]; then echo "alias name:" && read NAME else NAME=$1 fi if alias $NAME 2 > /dev/null > /dev/null; then echo "alias $NAME already exists - continue [y/n]?" && read YN case $YN in [Yy]* ) echo "okay, let's proceed.";; [Nn]* ) return;; * ) echo "invalid response." && return;; esac fi if [ -z "$2" ]; then echo "alias definition:" && read DEFINTION else DEFINTION="$2" fi if [ -f ~/.bash_aliases ]; then echo "alias $NAME=\"$DEFINTION\"" >> ~/.bash_aliases else echo "alias $NAME=\"$DEFINTION\"" >> ~/.bashrc fi alias $NAME="$DEFINTION"}
если вы используете ruby, вы можете установить aka с помощью rubygem.
gem install aka2
использование
aka generate hello="echo helloworld" #add an aliasaka g hello="echo helloworld" #add alias for lazy peopleaka destroy hello #remove aliasaka d hello #remove alias for lazy people
rubygem автоматически создаст ваш точечный файл, так что вам это не нужно. Проверить это.
Теперь вы можете ввести cp $ngse/my_file /destination_directory/destination_filename чтобы скопировать файл из каталога с поддержкой сайтов в пункт назначения.
Ничто из этого не сработает, пока вы не сделаете что-то подобное:
exec bash
В качестве альтернативы вы можете повторно войти в систему или перезагрузиться.
Насколько я помню, bashrc имеет или имела строку, предлагающую не использовать ее напрямую для псевдонимов. То решение заключается в использовании внешнего файла (файлов). То foo и bar псевдонимы были добавлены, но для добавления baz то bashrc файл должен быть "исходным" (или просто откройте новый терминал). Пример как: