Как сделать псевдонимы bash доступными в качестве команд linux?


0

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

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

На удаленном месте статус определяется как

$ alias status='ls /tmp/status'  

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


Что такое м / с?
moopet

Ответы:


1

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


3
Я бы порекомендовал поместить псевдонимы в отдельный файл, который вы можете .bashrcявно указать и использовать при входе на удаленный хост.
Chepner

В общем, хорошая практика, но не имеет отношения к проблеме.
Ансгар Вичерс

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'

alias 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

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


Почему понижающий голос ?????
Кироль,

Вероятно, потому что ваш ответ не имеет ничего общего с первоначальным вопросом ...
Дакусан
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.