Może coś pomijam, ale czy istnieje sposób na uzyskanie bieżącej historii bash dla bieżącej sesji, której używasz
jeśli ucieknę
ssh host
$ pwd
$ ls
$ cd /tmp
Chcę tylko zobaczyć te 3 polecenia i nic więcej
bash
command-history
Mikrofon
źródło
źródło
history
polecenie?history
tym, ale to nie tylko moja sesjaHISTSIZE
iHISTFILESIZE
.Odpowiedzi:
Lekko ronda:
Spowoduje to zapisanie niezapisanej historii bieżącej sesji, do
~/current_history
której możesz następnie przejrzeć.źródło
~/$$_history
.history -a
rzucić to wraz z poprzednią historią do ~ / .bash_history ... co może być problemem, jeśli twoja historia jest dłuższa niż granica, czyli 1000 w moich systemach centos7 i fedora 24.Miałem problem, że chciałem zapisać prąd
history
do pliku, ale nadal chciałem, aby wpisy były zapisywane w głównym bashuhistory
Rozwiązałem to, dołączając plik za pomocą
cat
:źródło
Służy
comp
do porównywania całej historii (w tym bieżącej sesji Bash) z już zachowaną historią.bash_history
i drukowania tylko tych wierszy, które są unikalne dla bieżącej sesji - które powinny pokazywać tylko te polecenia, które zostały wykonane od uruchomienia bieżącej powłoki BashEdycja: jak wskazał @Wildcard, to polecenie nie działa dla wszystkich dystrybucji
comm
. Przetestowałem to na Mac OS.Odmiana tego samego pomysłu przy użyciu
diff
:źródło
comm
zakłada posortowane dane wejściowe. Witamy w Stack Exchange! :)comm
są sortowane nieodłącznie w moim przykładzie powyżej. Uruchomiłeś to? I to nie wygenerowało twojej bieżącej historii sesji Bash?~/.bash_history
jest sortowana; i nie jest w ogóle sortowany wynik po usunięciu numerów linii wiodących. (Poza tym oczekuje danych posortowanych leksykograficznie, a nie danych posortowanych numerycznie).history
comm
comm
polecenia w moim przykładzie są w tej samej kolejności, a nie że są posortowane leksykograficznie. Wersja FreeBSDcomm
nie wymaga danych posortowanych leksykograficznie