Ein Befehl, der Benutzername @ Hostname gibt: pwd

7

Ich weiß, das pwdgibt das aktuelle Arbeitsverzeichnis, hostnamegibt den aktuellen Host und whoamigibt 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 scpbefehl einfügen kann ?

Süchtig
quelle
2
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 Sie scp file.txt host:(wo hostkann ein DNS-Name oder Alias ​​von ~/.ssh/config)
Lekensteyn

Antworten:

7

Soweit ich weiß, kein einziger Befehl, aber das macht, was Sie brauchen:

echo "$(whoami)@$(hostname):$PWD"

Sie könnten , dass in einem Alias, indem Sie diese Zeile in Ihrer Shell Hinzufügen rcDatei ( ~/.bashrcoder ~/.zshrcoder was auch immer Sie verwenden):

alias foo='echo "$(whoami)@$(hostname):$PWD"'
terdon
quelle
Das funktioniert, danke. Können Sie erklären, warum der Befehl PWDin Großbuchstaben geschrieben ist hostnameund whoaminicht? Ich bin mir nicht sicher, ob ich den Unterschied verstehe und ich denke, dass es wichtig sein könnte.
Hooked
PWD ist eine umgebungsvariable Variable, die von aufgerufen wird $PWD. Es gibt viele andere Umgebungsvariablen (wie $PS1den 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!
Rob
@ Rob Danke, verstehe ich jetzt, aber warum Gebrauch $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?
Hooked
@Hooked gut, ehrlich gesagt bezweifle ich, dass es einen großen Unterschied gibt, pwdfü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.
Terdon
1
$(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 Fall printenvsollten alle Umgebungsvariablen aufgelistet werden. Ich habe einen $ USER, also könnte ich verwendenecho "$USER@$(hostname):$PWD"
Rob