Frage Wie mache ich Bash-Aliase als Linux-Befehle verfügbar?


Ich habe viele Bash-Aliase an einem entfernten Ort.
Aber wenn ich versuche, diese aus meiner lokalen Linux-Box zu starten,
Ich bekomme den Fehler 'Befehl nicht gefunden'. z.B.

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

Am entfernten Standort ist der Status definiert als

$ alias status='ls /tmp/status'  

Wie kann ich einen Alias ​​am entfernten Standort deklarieren,
so dass ich es von jedem Ort aus aufrufen kann?


0
2017-09-05 18:56


Ursprung


Was ist ein m / c? - moopet


Antworten:


Siehe die Antworten zu einer ähnlichen Frage auf Serverfehler. Im Grunde erweitert bash die Aliase in nicht interaktiven Shells nur, wenn sie explizit dafür konfiguriert sind (shopt -s expand_aliases). Außerdem müssen Sie sicherstellen, dass .bashrc wird auch in nicht interaktiven Shells ausgewertet.


1
2017-09-06 02:00



Ich würde empfehlen, die Aliase in eine separate Datei zu legen, aus der Sie Quellcode beziehen können .bashrc und explizit beim Anmelden beim Remote-Host angeben. - chepner
Im Allgemeinen gute Praxis, aber nicht mit dem Problem verbunden. - Ansgar Wiechers


Du kannst rennen

ssh root@remote_mc 'bash -ic status'

Um eine weitere Kopie der Shell im interaktiven Modus auszuführen (was bedeutet, dass die Aliase aus Ihren Bash-Konfigurationsdateien geladen werden)

Eine zweite Shell zu starten ist keine fantastische Lösung, aber sie funktioniert.


0
2017-09-05 19:11





Meiner Meinung nach, wenn Sie viele Aliase erstellen möchten, ist die beste Lösung:

  • Erstelle eine versteckte Datei (ich habe sie genannt) .bash_aliases) in deinem /home/"user_name"
  • In dieser Datei müssen Sie alle Aliasnamen angeben, die Sie im Terminal verwenden möchten. Ich meine ist:

Alias ​​ll = 'ls -l'

Alias ​​la = 'ls -A'

alias mydu = 'du -s *. [^.] * | sortieren -n '

alias apti = 'sudo apt-get install'

alias aptr = 'sudo apt-get entfernen'

alias aptu = 'sudo apt-get update'

alias aptg = 'sudo apt-get upgrade'

alias down = 'sudo ifconfig wlan0 down'

alias up = 'sudo ifconfig wlan0 auf'

Alias ​​verwaltet = 'sudo iwconfig wlan0 Modus verwaltet'

alias monitor = 'sudo iwconfig wlan0 mode monitor'

Alias ​​usb = 'sudo mount / dev / sdc1 / mnt'

  • In deinem /home/"user_name"/.bashrc Datei, setze folgende Zeilen:
  # Weitere Aliasdefinitionen in ~ / .bash_aliases      

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

Ich lege diese Zeile am Ende der Datei an, aber nur zur besseren Übersicht.


-1
2017-09-08 09:32



Warum der Downvote ????? - Kyrol
Wahrscheinlich, weil deine Antwort nichts mit der ursprünglichen Frage zu tun hat ... - Dakusan