Moja odpowiedź oferuje proste polecenie w trzech różnych składniach, z których wszystkie działają jednakowo, ale jedna jest nieco krótsza i łatwiejsza do napisania niż druga. Trzecia odmiana to tak zwany alias, co oznacza, że możesz przypisać komendzie niestandardową nazwę i wywołać ją, wykonując ją bez konieczności zapamiętywania skomplikowanych elementów.
Przygotowanie:
Najpierw zainstaluj pakiet, xselktóry umożliwia dostęp do schowka X z terminala:
sudo apt-get install xsel
Wariant polecenia 1 (krótki):
Następnie możesz wpisać następujący wiersz, aby skopiować poprzednie polecenie do schowka:
xsel -ib <<<!!:q
Jeśli chcesz skopiować drugie ostatnie polecenie, zamień !!je na !-2, dla trzeciego ostatniego użycia !-3i tak dalej.
Aby wytłumaczyć, co uruchamiasz, tutaj krótki podział polecenia:
xselto narzędzie wiersza polecenia umożliwiające dostęp do schowka X.
Aby uzyskać więcej informacji, przeczytaj stronę podręcznika online
lub przez uruchomienieman xsel .
- Ten
-iparametr mówixsel czytać ze standardowego wejścia (zwykle oznacza to wprowadzanie z klawiatury, ale tutaj coś przekierujemy)
- Ten
-bparametr określa użycie schowka zamiast „podstawowych” lub „wtórnych” opcji X.
<<<to specjalna składnia Basha o nazwie „Here String”.
Zasadniczo rozwija (nie ocenia!) Argument (tylko jeden!) Po nim i przekierowuje go jako ciąg znaków na standardowe wejście (standardowe wejście) polecenia przed / po którym stoi.
!!:qnazywa się „poleceniem huku” w celu rozszerzenia historii w bash. Zastępuje się dowolnym wcześniej wpisanym wierszem poleceń.
Aby uzyskać więcej informacji, przeczytaj lokalną stronę podręcznika, uruchamiającman history (strona internetowa nie jest pomocna).
!!Oznacza poprzedniego wiersza poleceń i jest synonimem !-1.
Oczywiście !-2oznacza to drugą ostatnią linię poleceń. Nie zapomnij znaku minus- , w przeciwnym razie zwróci 2. (3. / ...) polecenie, które kiedykolwiek wpisałeś.
- W
:qmodyfikuje polecenie Bang mówi bashowi dołączyć zastąpienie w apostrofami ( '), aby zapobiec dalszej ekspansji przez powłokę.
Wariant polecenia 2 (nieco dłuższy):
echo !!:q | xsel -ib
echo ma proste zadanie wypisania wszystkich argumentów na standardowe wyjście terminala.
!!:qnazywa się „poleceniem huku” w celu rozszerzenia historii w bash. Zastępuje się dowolnym wcześniej wpisanym wierszem poleceń.
!!Oznacza poprzedniego wiersza poleceń i jest synonimem !-1. Oczywiście !-2oznacza to drugą ostatnią linię poleceń. Nie zapomnij znaku minus- , w przeciwnym razie zwróci 2. (3. / ...) polecenie, które kiedykolwiek wpisałeś.
- W
:qmodyfikuje polecenie Bang mówi bashowi dołączyć zastąpienie w apostrofami ( '), aby zapobiec dalszej ekspansji przez powłokę.
|jest fajką. Przekierowuje wyjście terminala („stdout”) polecenia przed nim do wejścia terminala („stdin”) polecenia po nim.
xselto narzędzie wiersza polecenia umożliwiające dostęp do schowka X.
Aby uzyskać więcej informacji, przeczytaj stronę podręcznika online
lub przez uruchomienieman xsel .
- Ten
-iparametr mówixsel czytać ze standardowego wejścia (zwykle oznacza to wprowadzanie z klawiatury, ale tutaj coś przekierujemy)
- Ten
-bparametr określa użycie schowka zamiast „podstawowych” lub „wtórnych” opcji X.
Wariant polecenia 3 (alias):
Alias bash jest fajną rzeczą, jeśli nie chcesz pamiętać długich lub skomplikowanych poleceń, których często używasz. Możesz przypisać to polecenie do prostej nazwy aliasu, którą możesz uruchomić zamiast długiego polecenia, aby osiągnąć to samo.
Niestety, ponieważ polecenia Bang są specjalną funkcją Bash i są rozszerzane przed usunięciem aliasów, nie można po prostu aliasować jednej z powyższych odmian, ponieważ !! część nie będzie działać. Istnieje jednak obejście.
Aby ustawić alias, uruchom następujący wiersz w swoim terminalu. Pamiętaj, że możesz wybrać dowolną prawidłową nazwę zmiennej Bash zamiast copylastcommand:
alias copylastcommand='history -p \!\! | xsel -ib'
Jest to jednak trwałe tylko w bieżącej sesji Bash, co oznacza, że alias zniknie po zamknięciu okna terminala. Możesz ustawić go jako trwały w każdej sesji Bash, dodając ten wiersz powyżej na końcu ~/.bashrcpliku lub do ~/.bash_aliasespliku, jeśli taki masz.
Ponownie krótki podział linii:
alias name='command'jest składnią ustawiania aliasu w Bash. commandZostanie uruchomiony w dowolnym momencie wykonać nameod teraz.
history -p \!\!wypisuje poprzednio wykonaną linię poleceń na standardowe wyjście (standardowe wyjście). Bez -pprzełącznika nie tylko wydrukowałby, ale także ponownie uruchomił polecenie.
Zauważ, że musimy uciec przed bangs ( !) za pomocą ukośników odwrotnych ( \), ponieważ w przeciwnym razie bash rozszerzy je, gdy spróbujemy ustawić alias, co nie ma sensu, ponieważ muszą znajdować się w tym aliasie, jakimi są.
Ponownie możesz również podać [n] -te ostatnie polecenie, zastępując drugi huk -nnp \!-2.
|jest fajką. Przekierowuje standardowe wyjście („stdout”) polecenia przed nim do standardu terminala („stdin”) polecenia po nim.
xselto narzędzie wiersza polecenia umożliwiające dostęp do schowka X.
Aby uzyskać więcej informacji, przeczytaj stronę podręcznika online
lub przez uruchomienieman xsel .
- Ten
-iparametr mówixsel czytać ze standardowego wejścia (zwykle oznacza to wprowadzanie z klawiatury, ale tutaj coś przekierujemy)
- Ten
-bparametr określa użycie schowka zamiast „podstawowych” lub „wtórnych” opcji X.
<<<"!!" xsel -ib