Я хотел бы создать псевдоним для команды 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
файл
gedit ~/.bashrc
и затем добавьте псевдоним внизу.
Теперь выполните . ~/.bashrc
в вашем терминале (между .
и ~/.bashrc
должно быть место.
Теперь вы можете проверить свой псевдоним.
Насколько я помню, bashrc
имел или имел , строка, предлагающая не использовать его напрямую для псевдонимов. Решение заключается в использовании внешнего файла (ов). Были добавлены псевдонимы foo
и bar
, но для добавления baz
файл bashrc
должен быть "исходным" (или просто открыть новый терминал). Пример:
thufir@dur:~$
thufir@dur:~$ alias
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
alias bar='echo foo'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias foo='echo foo'
alias grep='grep --color=auto'
alias l='ls -CF'
alias la='ls -A'
alias ll='ls -alF'
alias ls='ls --color=auto'
thufir@dur:~$
thufir@dur:~$ cat .bash_aliases
alias foo='echo foo'
alias bar='echo foo'
alias baz='echo baz'
thufir@dur:~$
thufir@dur:~$ source .bashrc
thufir@dur:~$
thufir@dur:~$ alias
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
alias bar='echo foo'
alias baz='echo baz'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias foo='echo foo'
alias grep='grep --color=auto'
alias l='ls -CF'
alias la='ls -A'
alias ll='ls -alF'
alias ls='ls --color=auto'
thufir@dur:~$
thufir@dur:~$ baz
baz
thufir@dur:~$
теперь работает псевдоним baz
. Я только сейчас понял, что в предыдущем ответе упоминалась эта техника, но они закопали лед.
если вы используете ruby, вы можете установить aka с помощью rubygem.
gem install aka2
использование
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 автоматически загрузит ваш точечный файл, так что вам это не нужно. Проверить это.
Я написал эту полезную функцию, чтобы быстро создать новый псевдоним, а затем записать определение псевдонима в ~/. bash_aliases
(если он существует) или ~/.bashrc
.
TIP: Убедитесь, что ~/.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"
}
Есть много способов создать псевдоним. Наиболее используемые способы:
Добавить псевдонимы непосредственно в ваш ~/.bashrc
файл
Например: добавить эту строку в ~/.bashrc
файл
псевдоним ll='ls -l'.
псевдоним rm='rm -i'.
В следующий раз (после выхода из системы/входа или выполнения . ~/.bashrc
) при вводе rm
будет выполнена команда rm -i
.
Второй метод позволяет создать отдельный файл псевдонимов, поэтому их нужно будет помещать не в .bashrc
, а в файл по вашему выбору. Сначала отредактируйте ваш файл ~/.bashrc
и добавьте следующие строки, если их еще нет, или разкоментируйте их, если они есть:
если [ -f ~/.bash_aliases ]; затем
. ~/.bash_aliases
Сохраните его и закройте файл. После этого достаточно создать файл ~/.bash_aliases
и добавить туда свои псевдонимы в том же формате, который был указан в первом методе.
Содержимое моего файла ~/.bash_aliases
:
псевдоним cs='cd;ls'.
Мне кажется, что ваша единственная проблема - просто попытаться выполнить .bashrc, когда он не исполняется. Но это неправильный способ сделать это; всякий раз, когда вы вносите изменения в этот файл, вы должны «выполнять» его с помощью команды:
source ~/.bashrc
В противном случае он просто создаст новую оболочку, выполнит файл в среде новой оболочки, а затем отбросит эту среду при выходе, тем самым потерять сдачу. Получив сценарий, он выполняется в текущей оболочке, поэтому он останется в силе.
Я предполагаю, что вторая ошибка связана с тем, что bash_aliases не существует. Это не обязательно, просто рекомендуется хранить изменения отдельно и организованно. Он используется только в том случае, если он существует, и вы можете увидеть тест для него в .bashrc:
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
Здесь говорится, что если файл ~ / .bash_aliases существует, запустите его.
Проблема в том, что вы пытаетесь выполнить не исполняемый файл: Вы можете проверить это с:
ls -la ~/.bashrc
-rw-r--r-- 1 username username 3596 2010-08-05 17:17 /home/pt001424/.bashrc
Обратите внимание, что в первой колонке нет буквы "x - исполняемый" (файловые разрешения).
Профильные файлы не являются исполняемыми файлами, вместо того, чтобы выполнять их, вы загружаете их с:
source /home/bakhtiyor/.bashrc
или
. /home/bakhtiyor/.bashrc
Я бы предложил использовать /etc/bash.bashrc
Вы можете добавить строку в конец этого файла.
alias ok="ping google.com"
После добавления псевдонимов в строчку необходимо перезагрузить или повторно войти.
echo "alias vps='ssh -X user@example.com'" >> ~/.bashrc
דאָס איז אַ ביישפּיל איך איז געווען קוקן פֿאַר, אַ וועג צו דרוקן עטלעכע אותיות אין דער וואָקזאַל ("וופּס") צו רימאָוטלי אַרייַנלאָגירן צו אַ סערווער און געבן X11 פאָרווערדינג אַזוי איך קענען לויפן גוי אַפּפּס ווי "געדיט" איבער די נעץ.
וועלכער די באַפֿעל / אַליאַסעד באַפֿעל, דעם וועג מיט די ווידערקאָל ויסזאָגונג, ציטאַט מאַרקס, און דער סימבאָל פֿאַר צוגעבן די רעזולטאַט פון אַ באַפֿעל צו אַ טעקע (>>) אַרבעט פֿאַר מיר. נאָר פאַרבייַטן מיין באַפֿעל פֿאַר די אַליאַס באַפֿעל איר דאַרפֿן און אַרייַן עס אין דיין וואָקזאַל.
Я создал специальный инструмент командной строки для того же самого, используя Python Посмотрите код здесь
Я бы хотел развить эту идею!
echo "alias wolfr = 'cd /home/wolf'">>./~bashrc[1215estiveТеперь вы можете ввести
wolfr
, чтобы перейти в домашний каталог wolf.
echo "export ngse = / etc / nginx / sites-enabled". / ~ bashrc
Теперь вы можете ввести cp $ ngse / my_file / destination_directory / destination_filename
, чтобы скопировать файл из каталога с поддержкой сайтов в место назначения.
exec bash
Вы также можете повторно войти в систему или перезагрузиться.