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, xsel
któ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 !-3
i tak dalej.
Aby wytłumaczyć, co uruchamiasz, tutaj krótki podział polecenia:
xsel
to 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
-i
parametr mówixsel
czytać ze standardowego wejścia (zwykle oznacza to wprowadzanie z klawiatury, ale tutaj coś przekierujemy)
- Ten
-b
parametr 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.
!!:q
nazywa 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 !-2
oznacza to drugą ostatnią linię poleceń. Nie zapomnij znaku minus-
, w przeciwnym razie zwróci 2. (3. / ...) polecenie, które kiedykolwiek wpisałeś.
- W
:q
modyfikuje 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.
!!:q
nazywa 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 !-2
oznacza to drugą ostatnią linię poleceń. Nie zapomnij znaku minus-
, w przeciwnym razie zwróci 2. (3. / ...) polecenie, które kiedykolwiek wpisałeś.
- W
:q
modyfikuje 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.
xsel
to 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
-i
parametr mówixsel
czytać ze standardowego wejścia (zwykle oznacza to wprowadzanie z klawiatury, ale tutaj coś przekierujemy)
- Ten
-b
parametr 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 ~/.bashrc
pliku lub do ~/.bash_aliases
pliku, jeśli taki masz.
Ponownie krótki podział linii:
alias name='command'
jest składnią ustawiania aliasu w Bash. command
Zostanie uruchomiony w dowolnym momencie wykonać name
od teraz.
history -p \!\!
wypisuje poprzednio wykonaną linię poleceń na standardowe wyjście (standardowe wyjście). Bez -p
przełą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 -n
np \!-2
.
|
jest fajką. Przekierowuje standardowe wyjście („stdout”) polecenia przed nim do standardu terminala („stdin”) polecenia po nim.
xsel
to 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
-i
parametr mówixsel
czytać ze standardowego wejścia (zwykle oznacza to wprowadzanie z klawiatury, ale tutaj coś przekierujemy)
- Ten
-b
parametr określa użycie schowka zamiast „podstawowych” lub „wtórnych” opcji X.
<<<"!!" xsel -ib