W przypadku niektórych projektów często wpisuję kilka poleceń, na przykład:
cd an/extremely/long/path/in/which/I/have/some/kinda/project
i
./runmyproject --with some --command line --options set
Widząc, że jestem dość leniwy, staram się unikać wielokrotnego wpisywania tych poleceń. Więc oczywiście mogę dużo użyć klawisza up, aby znaleźć te polecenia, ale często mam też tak wiele poleceń pomiędzy nimi, że szukanie ich zajmuje więcej czasu niż samo pisanie.
Zastanawiam się teraz, czy istnieje jakieś narzędzie, które może zasugerować pełne polecenie, którego często używam, gdy nie napisałem jeszcze wszystkich. Tak, że mogę na przykład wpisać „cd an /” i sugeruje to resztę ścieżki, ponieważ tak często go używałem w zeszłym miesiącu.
Znalazłem coś o nazwie Bash Smart Complete. Jest to jednak trochę „głupie”, ponieważ nie uwzględnia poleceń, których wcześniej użyłem. Właśnie znalazłem tę SO odpowiedź , która sugeruje umieszczenie poleceń, których często używam w pliku. To jednak nie jest wystarczająco responsywne, ponieważ musiałbym utworzyć nowy plik za każdym razem, gdy uruchamiam nowe projekty lub zmieniam foldery lub argumenty programu.
Czy ktoś zna jakieś inne narzędzie lub inny sposób na osiągnięcie tego? A może ktoś wiedziałby, w jaki sposób mogę zmienić Bash Smart Complete, aby mógł spojrzeć na polecenia, których użyłem w poprzednim miesiącu, i dokończyć polecenie, które pasuje i było najczęściej używane w ostatnim miesiącu?
[EDYCJA] Poniżej kilka naprawdę świetnych odpowiedzi. Nie zaznaczyłem jeszcze żadnej jako jednoznacznej odpowiedzi. Nie dlatego, że nie lubię odpowiedzi, ale dlatego, że żadna z nich nie jest absolutnym zwycięzcą. Myślę, że Finalterm to świetny projekt. Niestety nadal jest dość szorstki na brzegach. Na przykład; nie obsługuje jeszcze kopiowania i wklejania. Miałem jednak oko na ten projekt, ponieważ kiedy dojrzeje, myślę, że będzie to świetna aplikacja terminalowa. Co do innych odpowiedzi; albo zasugerowali utworzenie aliasu, co nie jest tym, co chcę zrobić, ponieważ tworzy dodatkową pracę zamiast odbierania pracy, lub użycie Ctrl + R, co jest genialne (nie wiedziałem o tym!). Kilka osób zasugerowało użycie Ctrl + R, więc nie mogę tak naprawdę wyróżnić jednej odpowiedzi nad drugą.
Na razie zdecydowanie używam Ctrl + R, a w przyszłości mogę użyć Finalterm.
Dzięki za wszystkie świetne odpowiedzi!
źródło
zsh
. Oferuje wszystko, o co prosisz, i wiele więcej. Przejście z bash do zshOdpowiedzi:
Jeśli polecenia są często używane, są one zapisywane w historii poleceń
.bash_history
.Teraz sztuczka: możesz cofnąć wyszukiwanie w tej historii, aby ponownie wykonać polecenia, naciskając CTRL-r .
W trybie wyszukiwania historii odwrotnej bash pokazuje, na żywo, w trakcie pisania , ostatnie polecenie w historii, które zaczyna się od podanych danych. Następnie naciśnij klawisz Enter, aby zaakceptować i wykonać proponowane polecenie. Naciskaj CTRL-R, aby przechodzić do starszych poleceń z tym samym prefiksem.
Jest to wbudowane w bash, nie trzeba dostosowywać skryptów ani instalować oprogramowania :) Jest to jedna z najbardziej przydatnych funkcji bash, imho.
źródło
Wklej (Ctrl-Shift-V) następujące elementy do ekranu terminala:
Wyjdź (Ctrl-D) z ekranu terminala, a następnie ponownie otwórz terminal.
Teraz możesz po prostu wpisać pierwszą parę znaków, a następnie nacisnąć przycisk w górę lub w dół, aby przewinąć filtrowaną listę
źródło
Ostateczny termin
Jest to bardzo obiecująca aplikacja terminalowa zwana ostatecznym terminem . Wśród wielu funkcji ma również historię przypominania poleceń, dzięki czemu można je następnie wybrać. Oto kilka innych funkcji:
Możesz przeczytać więcej na ten temat w tym artykule .
Oto strona od twórców. http://finalterm.org/
Aby go zainstalować
Ostrzeżenie
Powiedziałem, że to obiecujące. Jedynym problemem jest to, że jest w wersji 0.1. Więc niektóre rzeczy jak
vim
inano
jeszcze nie działają dobrze. Zauważyłem również, że nie obsługuje jeszcze przeciągania i upuszczania oraz kopiowania i wklejania. Ale ma funkcję, o którą prosisz. W miarę dojrzewania oprogramowanie stanie się jednym z najlepszych terminali na komputery stacjonarne.Zrzut ekranu
Oto funkcja w akcji:
Mam nadzieję że to pomoże.
* Jestem na Saucy, dlatego mam pochodzenie Salamandra :)
źródło
Użyj
alias
dla całego polecenia lub dodaj katalog do swojego$PATH
. Ponadto nie musisz zmieniać katalogów w miejscu, w którym ma zostać uruchomiony Twój plik wykonywalny (lub skrypt, czy cokolwiek innego), więc jest to dość proste. Obie metody wymagają ponownego uruchomienia używanego terminala, zanim zmiany zaczną obowiązywać.Oto jak utworzyć
bash
alias
dla swojego przykładu (dodaj następujący wiersz do~/.bashrc
pliku):W ten sposób wszystko, co musisz zrobić, to wprowadzić dane
runmyproject
do terminala gdziekolwiek jesteś, bez konieczności określania opcji / argumentów.Alternatywnie możesz dodać ścieżkę projektu do
$PATH
zmiennej środowiskowej. Aby to zrobić, dodaj do~/.bashrc
pliku następujące wiersze :W takim przypadku nadal musisz podać opcje / argumenty pliku wykonywalnego podczas jego uruchamiania.
źródło
Gdy często muszę zmienić katalog na taki:
Zrobiłbym to tylko raz:
Od tego momentu użyj:
Jeśli chodzi o:
Chciałbym użyć wyszukiwania historii bash. W wierszu polecenia naciśnij Ctrl-R i wpisz „runmy”. Voila, cała komenda ze wszystkimi opcjami, jak była ostatnio wprowadzona, jest właśnie tam, aby ją ponownie wprowadzić. Jeśli nie podobały mi się opcje, których użyłem ostatni raz i chciałem spojrzeć na wcześniejsze polecenia, naciskałem Ctrl-R, aby przechodzić między wszystkimi poprzednimi poleceniami zawierającymi „runmy”.
Wyszukiwanie historii Ctrl-R może również pomóc w poleceniu „cd”, jeśli nie podoba ci się pomysł dowiązania symbolicznego. [Ctrl-R] / proj najprawdopodobniej przywróci ostatnią komendę, której użyłeś do cd do tego katalogu.
Zamiast dodawać alias lub przechodzić na specjalną powłokę, zawsze wolę nauczyć się korzystać z funkcji bash zaprojektowanych, aby pomóc w tego rodzaju rzeczach. W ten sposób mogę korzystać z tych samych funkcji na zdalnych komputerach lub jeśli muszę usiąść przy terminalu kolegi.
źródło
naciśnij control + r na klawiaturze - przejdzie w tryb historii wstecz i możesz wpisać część, którą znasz, a całe polecenie pokaże
Istnieją inne sposoby wymienione tutaj
http://www.talug.org/events/20030709/cmdline_history.html
Jednak najczęściej używam kontroli R.
źródło
Spróbuj tego ... Działa to dla wszystkich poleceń w twoim pliku historii ... to to samo, co Ctrl+ R, ale myślę, że jest to bardziej intuicyjne :)
edytować
/etc/inputrc
odkomentuj lub dodaj tę dwie linie
wyloguj się / zaloguj
następnie spróbuj napisać jakieś polecenie wymienione w historii ...
lubić...
pisać
i naciśnij
Page Uplub Page Dndo nawigacji w pliku historii w poszukiwaniu poleceń rozpoczynających się od „ls”
Jeśli zrobiłeś wszystko dobrze, powinien automatycznie wykonać polecenie ...
źródło