Kiedy uruchamiam analizy przy użyciu powłoki bash, często chcę zapisać używane polecenia, które dały mi dobre wyniki, do pliku w tym samym katalogu (jak to się nazywa „LOGBOOK”), aby móc sprawdzić, co Zrobiłem, aby uzyskać te wyniki. Do tej pory oznaczało to, że albo kopiuję. Wklejam polecenie z terminala, albo wciskam „w górę”, modyfikując polecenie na inny echo"my command" >> LOGBOOK
, lub inny podobny wygłupy.
Odkryłem, że któregoś dnia było history
narzędzie, ale nie mogę znaleźć sposobu na użycie go, aby uzyskać poprzednio wykonane polecenie, aby móc zrobić coś takiego getlast >> LOGBOOK
.
Czy istnieje przyjemny i łatwy sposób to zrobić? Alternatywnie, w jaki sposób inni radzą sobie z zapisywaniem poleceń w celu uzyskania wyników?
źródło
fc -lnr | head -n 1
można skrócićfc -lnr -1
.help fc
do mojej dokumentacji. Strona podręcznika bash zawiera więcej szczegółów, w tym wykorzystanie ujemnych indeksów. Eliminacjahead
jest dobra, ponieważ jedno pozostawione polecenie jest wbudowane, więc teraz nie ma rozwidlenia / exec.fc
...Jednym z problemów z odpowiedzią @ camh jest to, że jeśli masz polecenie obejmujące wiele linii, pokazuje tylko pierwszy wiersz:
Spróbuj tego:
źródło
cmdhist
naprawi, że: „Jeśli ustawione, bash próbuje zapisać wszystkie wiersze polecenia wieloliniowego w tym samym wpisie historii. Umożliwia to łatwą ponowną edycję poleceń wieloliniowych”.Zamiast używać strzałki w górę, możesz użyć,
"!!"
aby odwołać się do poprzedniego polecenia.na przykład
Uwaga: to nie cytuje dosłownego tekstu
źródło
ls | less
->echo !! >> LOGBOOK
->echo ls | less >> LOGBOOK
.Możesz to zrobić za pomocą następującego polecenia, jeśli używasz powłoki bash:
Spowoduje to dołączenie wszystkich poleceń z bieżącej sesji do tego pliku, możesz również dodać alias do pliku ~ / .bashrc, aby to zrobić za pomocą jednego polecenia:
źródło