linux --alias(псевдоним) с параметром. Например, для подключения по ssh

Чтобы не вводить каждый раз длинные команды, в linux можно создать для них псевдонимы, или alias-ы.

Иногда в командах могут быть изменяемые данные, тогда следует создать alias с параметром:

  1. Устанавливаем expect (программа для администрирования работы с командной строкой и не только):
    sudo apt-get install expect
  2. Создаём в домашней директории универсальный скрипт, выполняющий соединение по ssh (принимает 2 аргумента - login и pw)(номер хоста подставьте свой):
    sudo nano ~/login_to_ssh.exp

    записываем в файл:

    log_file expect_log
    set login [lindex $argv 0]
    set pw [lindex $argv 1]
    
    spawn ssh $login@111.00.11.00
    expect "$login@111.00.11.00\'s password:"
    send "$pw\r"
    interact
  3. Создаём alias, вызывающий универсальный скрипт для ssh-подключения и передающий значения аргументов. В файле:
    sudo nano ~/.bash_aliases

    записываем:

    # подключение по ssh для my_progect_name
    ssh_my_progect_name() {
        #!/usr/bin/expect
        expect -f ~/login_to_ssh.exp my_progect_name my_password
    }

Чтобы псевдоним вступил в силу, не забудьте обновить текущие псевдонимы командой (прямо так с точкой):

. ~/.bashrc
vedro-compota's picture

ssh сам по себе обычно работает по очень простой команде:

ssh имяХоста

т.е. никакие псевдонимы то и не нужны.
Но чтобы обращаться так коротко, имя пользователя, ключ, порт и всё остальное надо указывать в настройках хоста.

Например для подклчения к сайту mysite.my можно настроить конфиг так, что подключение будет выглядеть так:

ssh my

_____________
матфак вгу и остальная классика =)

melisa's picture

Такой вариант возможен при подключении с ключом.
Возможно, alias будет не лишним, когда каждый раз приходится вводить пароль

vedro-compota's picture

терминал открывается раз в день или вообще до выключения компа. Пароль же не зря вводят каждый раз и не записывают нигде. Хранить его в файле с командой не совсем безопасно, так скажем.

_____________
матфак вгу и остальная классика =)

melisa's picture

это да. для сохранеия безопасности пароля можно передать в alias только один аргумент - login

vedro-compota's picture

имя юзера указывается в конфиге хоста (User): http://fkn.ktu10.com/?q=node/8856

_____________
матфак вгу и остальная классика =)

vedro-compota's picture

вообще это не просто псевдоним с параметров -- это скрипт принимающий параметр. надо добавить теги bash и shell ну и почитать про это. Это отдельный язык для интерпретатора. Составляеть такие скрипты полезно. Момент с приёмом параметра в баш-скрипте лучше вынести в отдельную заметку, это важная вещь.

_____________
матфак вгу и остальная классика =)