У меня есть много псевдонимов Bash в удаленном месте.
Но когда я пытаюсь запустить их из своего локального Linux-бокса,
Я получаю ошибку «команда не найдена». например

$ ssh root@remote 'status'  
bash: status: command not found

В удаленном местоположении статус определяется как

$ alias status='ls /tmp/status'  

Как я могу объявить псевдоним в удаленном местоположении,
такой, что я могу вызвать его из любого места?

3 ответа3

1

Смотрите ответ на аналогичный вопрос о сбое сервера. По сути, bash не раскрывает псевдонимы в неинтерактивных оболочках, если это явно не настроено (shopt -s expand_aliases). Кроме того, вы должны убедиться, что .bashrc оценивается даже в неинтерактивных оболочках.

0

Вы можете запустить

ssh root@remote_mc 'bash -ic status'

Чтобы запустить другую копию оболочки в интерактивном режиме (что означает, что она загрузит псевдонимы из ваших файлов конфигурации bash)

Запуск второй оболочки - не то фантастическое решение, но оно работает.

-1

На мой взгляд, если вы хотите создать много псевдонимов, лучшее решение:

  • Создайте скрытый файл (я назвал его .bash_aliases) в вашем /home/"user_name"
  • В этом файле вы должны поместить все псевдонимы, которые вы хотите использовать в терминале. Т.е. мое это:

псевдоним ll = 'ls -l'

псевдоним la = 'ls -A'

псевдоним mydu = 'du -s *. [^.] * | сортировать -n '

alias apti = 'sudo apt-get install'

alias aptr = 'sudo apt-get remove'

псевдоним aptu = 'sudo apt-get update'

псевдоним aptg = 'sudo apt-get upgrade'

псевдоним вниз = 'sudo ifconfig wlan0 down'

псевдоним up = 'sudo ifconfig wlan0 up'

управляемый псевдоним = 'sudo iwconfig режим wlan0 управляемый'

монитор псевдонимов = 'sudo iwconfig wlan0 mode monitor'

псевдоним usb = 'sudo mount /dev /sdc1 /mnt'

  • В файле /home/"user_name"/.bashrc вставьте следующие строки:
# Дополнительные определения псевдонимов в ~/.bash_aliases

if [-f ~/.bash_aliases]; затем . ~/.bash_aliases fi

Я поместил эту строку в конец файла, но только для ясности.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .