Ich weiß, das pwd
gibt das aktuelle Arbeitsverzeichnis, hostname
gibt den aktuellen Host und whoami
gibt den aktuellen Benutzer. Gibt es einen einzigen Unix-Befehl, der mir die Ausgabe von gibt
whoami@hostname:pwd
damit ich die ausgabe schnell in einen scp
befehl einfügen kann ?
echo $(whoami)@$(hostname):$(pwd)
? Warum brauchst du das? Der Benutzer für SSH / SCP verwendet standardmäßig den aktuellen Benutzer, das Arbeitsverzeichnis standardmäßig das Ausgangsverzeichnis, wenn es weggelassen wird. Zumindest brauchen Siescp file.txt host:
(wohost
kann ein DNS-Name oder Alias von~/.ssh/config
)Antworten:
Soweit ich weiß, kein einziger Befehl, aber das macht, was Sie brauchen:
Sie könnten , dass in einem Alias, indem Sie diese Zeile in Ihrer Shell Hinzufügen
rc
Datei (~/.bashrc
oder~/.zshrc
oder was auch immer Sie verwenden):quelle
PWD
in Großbuchstaben geschrieben isthostname
undwhoami
nicht? Ich bin mir nicht sicher, ob ich den Unterschied verstehe und ich denke, dass es wichtig sein könnte.$PWD
. Es gibt viele andere Umgebungsvariablen (wie$PS1
den ersten Teil Ihrer Eingabeaufforderung). Die anderen verwenden die$()
Syntax, um die Ausgabe eines vorhandenen Befehls zu verwenden. Dies ist zumindest ein grundlegender Überblick über den Unterschied. Wenn Sie anfangen, weiter in die Befehlszeile einzusteigen und Aliase und Funktionen sowie Bash-Skripte zu erstellen, werden Sie lernen, diese zu lieben. Ich wünschte, ich könnte an einige der verrückten Dinge denken, die ich damit gemacht habe!$PWD
über$(pwd)
, soll nicht die Ausgabe immer gleich sein? Ist einer besser als der andere oder ist dies nur eine persönliche Präferenz?pwd
führt aber einen weiteren Befehl aus und ich (denke), dass dies teurer sein wird als das Abfragen der Variablen. In der Praxis wird es jedoch keinen wirklichen Unterschied geben, verwenden Sie, was Sie bevorzugen.$(whoami)
führt den Befehl whoami aus und verwendet die Ausgabe, und $ PWD greift nur auf eine Umgebungsvariable zu. Das Ausschalten von weniger Prozessen ist besser für Geschwindigkeit und Leistung, aber in diesem Fall macht es keinen wirklichen Unterschied. In diesem Fallprintenv
sollten alle Umgebungsvariablen aufgelistet werden. Ich habe einen $ USER, also könnte ich verwendenecho "$USER@$(hostname):$PWD"