Теперь я могу набирать на клавиатуре book каждый раз, когда мне нужно перейти в каталог, где находятся файлы для текущей книги. Если я возьмусь написать другую книгу, я обновлю этот псевдоним. (Я ввожу «book» в течение последних шести лет!)
Это не только позволяет сэкономить на вводе. Вы избавлены от необходимости запоминать путь к каталогу. Освободить свою память всегда полезно.
Чтобы сделать псевдоним постоянным, вы должны добавить указанную строку в файл
bash:
. '/.profile
csh:
source '/.cshrc
(Примечание: в
Псевдоним может обозначать целую последовательность команд. Отделяйте их друг от друга точкой с запятой. Вот пример, где выполняется переход в некоторый каталог и устанавливается переменная окружения в зависимости от того, работаем мы в системе А или В:
bash:
alias inva='cd 'tal/projects/inventory/groupa; export INVSTYLE=A'
alias invb='cd 'tal/projects/inventory/groupb; export INV3TYLE=B'
csh:
alias inva 'cd 'tal/projects/inventory/groupa; setenv INVSTYLE A'
alias invb 'cd 'tal/projects/inventory/groupb; seteiw INVSTYLE B'
Вместо точки с запятой можно поставить двойной амперсанд для обозначения такого условия: «Выполнить следующую команду только в том случае, если первая завершилась удачно». Этот прием полезен, если нужно избежать выполнения команды не в том каталоге. Например, вы хотите перейти в некоторый каталог и поставить там метку времени в журнале. Однако если команда cd не будет выполнена (сервер недоступен), не следует ставить метку времени в журнале текущего каталога.
bash;
alias rank='cd /home/rank/data && date». log'
csh:
alias rank 'cd /home/rank/data && date». log'
♠ Не пытайтесь превратить одну операционную систему в другую. Псевдонимы сами по себе хороши, но ими нельзя злоупотреблять. Я часто видел людей, создающих десятки псевдонимов для того, чтобы симулировать DOS в UNIX. Думаю, это плохая идея. Так вы никогда не научитесь работать в UNIX, а, оказавшись за чужим компьютером, где нет ваших псевдонимов, попадете впросак.
Если вам приходится снова и снова вводить имена каких-то компьютеров, вы можете сэкономить немного времени, создав псевдонимы. Например, если вы часто обращаетесь к серверу
Проблема, связанная с таким подходом, заключается в том, что он может превратить сопровождение в кошмар. Если пользователи станут употреблять оба имени, вам придется сопровождать два имени. Вопрос: как бы создать псевдоним, известный только вам, не беспокоя других пользователей?
Как правило, часто обращаясь к какому-то серверу, я почти во всех случаях использую SSH (Secure SHell). Это безопасная (криптографически защищенная) альтернатива
Чтобы ограничиться только своими SSH-сеансами, добавьте псевдонимы в файл
Host es
HostName www.everythingsysadmin.com
Теперь я могу не только вводить ssh es вместо ssh www.everythingsysadmin.com, но и использовать этот псевдоним в командах
$ ssh es
$ scp file.txt es:/tmp/
$ rsync ex:/home/project/alpha '/project/alpha
Я использую ssh es так часто, что создал псевдоним на уровне оболочки:
bash:
alias es='ssh es'
csh:
alias es 'ssh es'
В результате теперь я могу вводить в командной строке es, чтобы войти в систему, или с помощью всех тех же двух букв обозначить хост в командах
Возникает соблазн создать двухбуквенные псевдонимы для всех серверов на свете. Однако вскоре вы обнаружите, что вспоминаете обозначения дольше, чем вводите имена с клавиатуры. Я ограничил себя несколькими серверами, к которым обращаюсь через SSH.
На странице ssh_config(5) справочной системы
$ ssh — х -о RSAAuthentication=yes — о PasswordAuthentication=yes — о
ChallengeResponseAuthentication=no -1 peter.example.net
Я мог бы установить псевдоним, но вместо этого изменил конфигурацию SSH, и все системы, использующие SSH, работают, как надо. Если сценарий, который я не могу изменить, использует SSH для доступа к тому серверу, он воспримет эти настройки.
Соответствующие строки в моем файле
Host peter.example.net
ForwardX11 no
RSAAuthentication yes
PasswordAuthentication yes
ChallengeResponseAuthentication no
Compression no
Protocol 1
У SSH-клиентов для Windows обычно есть графический интерфейс, позволяющий сохранить настройки профиля, которые следует использовать для конкретного сервера (или нескольких серверов).