Ich möchte eine vollständige und sortierte Liste meines Bash-Verlaufs haben. Es gibt jedoch einige Probleme:
- Dabei
history
wird nie die vollständige Liste angezeigt, sondern es werden immer nur 1000 Befehle angezeigt. - In meinem$HOMEVerzeichnis gibt es eine Datei mit dem Namen.bash_history das zeigt 2000 Ergebnisse.
Wenn ich eine sortierte.txt Datei aus meinem Verlauf mache ich:
history | sort > History.txt
Aufgrund der Nummern werden die Befehle jedoch nicht alphabetisch, sondern nach Nummern sortiert.
Gibt es eine Möglichkeit, das zu tun, was ich möchte?
Antwort1
sort
können Eingaben nach dem vom Benutzer angegebenen Feld sortieren -k
, also wäre so etwas strenggenommen das, wonach Sie suchen.
history | sort -k2 > History.txt # or -K3 if you have $HISTTIMEFORMAT, etc set
Darüber hinaus besteht häufig ein Unterschied zwischen dem, was in der Befehlsausgabe verfügbar ist, history
und dem, was in aufgezeichnet ist. ~/.bash_history
Letzteres wird nicht nach jedem Befehl aktualisiert (wird normalerweise nur beim Abmelden aktualisiert). Daher history | sort ..
bietet Ihnen die Verwendung besser eine aktuelle Ansicht.
Antwort2
Wie wäre es mit:
cat ~/.bash_history | sort > Sorted_history.txt
um einen unbegrenzten Bash-Verlauf zu haben, sehen Sie sich diese QA an:
https://stackoverflow.com/questions/9457233/unlimited-bash-history