Как создать постоянный псевдоним Bash?

309

Я хотел бы создать псевдоним для команды 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.

Какова фактическая проблема и как ее решить?

    
задан Bakhtiyor 15.12.2010 в 08:54
источник

8 ответов

343

Чтобы создать псевдоним навсегда, добавьте псевдоним в ваш файл .bashrc

gedit ~/.bashrc

И затем добавьте свой псевдоним внизу.

Теперь запустите . ~/.bashrc в вашем терминале (должно быть место между . и ~/.bashrc .

Теперь вы можете проверить свой псевдоним.

    
ответ дан karthick87 15.12.2010 в 09:24
источник
208

Существует много способов создания псевдонима. Наиболее часто используемые способы:

  1. Добавьте псевдонимы непосредственно в файл ~/.bashrc

    Например: добавьте эту строку в файл ~/.bashrc

    alias ll='ls -l'
    alias rm='rm -i'
    

    В следующий раз (после того, как вы вышли из системы / вне или закончили . ~/.bashrc ), когда вы наберете rm , будет выполнена команда rm -i .

  2. Второй метод позволяет вам создать отдельный файл псевдонимов, поэтому вам не придется помещать их в .bashrc , а в файл по вашему выбору. Сначала отредактируйте файл ~/.bashrc и добавьте или раскомментируйте следующие строки, если он еще не был

    if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
    fi
    

    Сохраните его и закройте файл. После этого все, что вам нужно сделать, это создать файл ~/.bash_aliases и добавить туда псевдонимы с тем же форматом, который указан в первом методе.

    Содержимое моего файла ~/.bash_aliases :

    alias cs='cd;ls'
    
ответ дан aneeshep 15.12.2010 в 09:21
17

Проблема заключается в том, что вы пытаетесь выполнить не исполняемый файл: Вы можете проверить это с помощью:

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
    
ответ дан João Pinto 15.12.2010 в 11:24
15

Мне кажется, что ваша единственная проблема - просто пытаться выполнить .bashrc, когда он не является исполняемым. Но это не правильный способ сделать это; всякий раз, когда вы вносите изменения в этот файл, вы должны «выполнить» его командой:

source ~/.bashrc

В противном случае он просто создаст новую оболочку, выполнит файл в среде новой оболочки, а затем отменит эту среду, когда она выйдет, тем самым потеряв ваши изменения. Выбирая скрипт, он выполняется в текущей оболочке, поэтому он останется в силе.

Я предполагаю, что вторая ошибка была связана с тем, что bash_aliases не существует. Это не требуется, просто рекомендуется сохранить ваши изменения отдельно и организовано. Он используется только в том случае, если он существует, и вы можете увидеть его тест в .bashrc:

if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi

Это говорит о том, что если файл ~ / .bash_aliases существует, запустите его.

    
ответ дан Marty Fried 16.01.2012 в 21:29
8
echo "alias vps='ssh -X [email protected]'" >> ~/.bashrc

Это пример, который я искал, способ набрать несколько букв на терминале («vps»), чтобы удаленно войти на сервер и включить пересылку X11, чтобы я мог запускать GUI-приложения, такие как «gedit», сеть.

Независимо от команды command / aliased, этот способ с помощью оператора echo, кавычек и символа для добавления вывода команды в файл (> >) работает для меня. Просто замените мою команду на команду alias, которая вам нужна, и введите ее в ваш терминал.

    
ответ дан user80638 15.06.2013 в 13:39
5

Я сделал эту небольшую функцию для быстрого написания нового псевдонима для .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
}
    
ответ дан blizzrdof77 17.12.2013 в 21:37
4

Если вы используете 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 автоматически установит ваш точечный файл, чтобы вам не понадобилось. Проверьте это.     

ответ дан ytbryan 21.01.2015 в 15:14
0

Я бы предложил использовать /etc/bash.bashrc

Вы можете добавить строку в конце этого файла.

alias ok="ping google.com"

После ввода псевдонимов на строку вы должны перезагрузить или переустановить.

    
ответ дан Fahad Ahammed 09.08.2015 в 05:36