Powłoka Linux: Skopiować dane wyjściowe do schowka bez użycia myszy?

25

Czy można skopiować dane wyjściowe do schowka bez użycia myszy?

Na przykład chciałbym zrobić coś takiego:

$ pwd >> schowek

Hayek
źródło
cat / etc / passwd | xsel --clipboard
Abhisheietk 10.04.

Odpowiedzi:

25

Możesz uzyskać i używać poleceń xclipi xsel. Instrukcje dotyczące ich uzyskiwania i używania znajdują się tutaj .

Bez żadnych argumentów, xclipkopiuje do głównego schowka (środkowe kliknięcie-wklej) zamiast schowka Ctrl- C/ Ctrl- V/ prawym przyciskiem myszy-menu kontekstowe.

Spróbuj echo foo | xclip -selection clipboardskopiować tekst do tego drugiego.

Aby wyprowadzić schowek do standardowego wyjścia: xclip -selection clipboard -o

Odpowiednikiem narzędzia dla MacOS jest pbcopy(i pbpaste)

Wstrzymano do odwołania.
źródło
1
@brauliobo: Gdzie jest „tutaj”? Poważnie, co masz na myśli? Jak to dokładnie nie działa?
Wstrzymano do odwołania.
1
@DennisWilliamson Próbowałem cat file | xclipi to nie działa
brauliobo
1
@brauliobo: to nie działa, w jaki sposób, dokładnie ? Komunikat o błędzie? Sprawka? Anomalie pola magnetycznego?
Wstrzymano do odwołania.
8
@brauliobo: Zakładam, że klipperjest przeglądarką schowka. Spróbuj cat file | xclip -selection clipboardBez dodatkowych argumentów, xclipskopiuj do podstawowego schowka (środkowe kliknięcie-wklej) zamiast do schowka Ctrl-C / Ctrl-V / prawym przyciskiem myszy-menu kontekstowe.
Wstrzymano do odwołania.
1
@Dennis, może możesz dodać ostatni komentarz do odpowiedzi, ponieważ jest to raczej ważne i nieoczywiste i świetny dodatek.
Kvothe
2

Obawiam się, że w większości powłok Linuksa nie ma czegoś takiego jak „schowek”, a przynajmniej nie wiem. Na serwerze X znajduje się schowek (jeśli twój system ma X11, możesz uzyskać do niego dostęp za pomocą xclippolecenia). Jeśli połączysz się ze swoim kontem powłoki za pomocą oprogramowania emulującego ssh / terminal, takiego jak PuTTy, możesz użyć schowka używanego systemu, ale nadal będzie to schowek zewnętrzny i możesz nie być w stanie uniknąć używania myszy.

Znalazłem mały schludny skrypt bash, który można znaleźć na stronie http://geek.phatus.com/2010/01/create-a-simple-yet-very-useful-bash-clipboard/ . Zasadniczo tworzy plik tymczasowy, który służy jako schowek - możesz wyczyścić, wykonać, zapisać itp. Swoje dane tymczasowe za pomocą zestawu poleceń, co właściwie robi schowek;)

Neo
źródło
operacja była trochę niejasna na temat jego konfiguracji: miał na myśli schowek xservera.
akira
1

Jeśli korzystasz z MAC, możesz użyć pbcopy w następujący sposób:

pbcopy < thing_to_write_to_clipboard
coderdan
źródło
0

Zrobiłem małe narzędzie zapewniające podobną funkcjonalność, bez użycia xclip ani xsel. Standardowe wyjście jest kopiowane do schowka i można je ponownie wkleić w terminalu, patrz:

https://sourceforge.net/projects/commandlinecopypaste/

Zauważ, że to narzędzie nie potrzebuje sesji X. Schowka można po prostu używać w terminalu i nie można go wklejać za pomocą klawiszy Ctrl + V lub kliknięcia środkowym przyciskiem myszy do innych okien X

Dirk Duschinger
źródło
0

I brzydki sposób, gdy chcesz skopiować dane wyjściowe terminala do schowka, ale nie masz myszy podłączonej do komputera - używając funkcji „klawiszy myszy” w X.

Naciśnij Shift+ NumLock, a klawisze numeryczne będą działać, aby kontrolować ruch kursora. Następnie możesz nacisnąć, Num 0aby zasymulować, nacisnąć i przytrzymać LMB i przesuwać kursor zgodnie z potrzebami, a następnie nacisnąć, Num 5aby zasymulować zwolnienie LMB. Teraz wybrałeś swój tekst. Aby zasymulować RMB, naciśnij, Num -aby zmienić aktywny przycisk myszy, a następnie, Num 5aby uzyskać menu kontekstowe. Teraz chcesz wrócić do trybu LMB: naciśnij Num /. Teraz możesz przesunąć kursor do pozycji menu „Kopiuj” i nacisnąć Num 5. To wszystko. Twój tekst jest w schowku. Naciśnij Shift+, NumLockaby przywrócić oryginalną funkcję klawiatury numerycznej.

PS: W niektórych dystrybucjach (np. Kubuntu) skrót myszy wydaje się być domyślnie wyłączony lub w jakiś sposób ukryty.

Ruslan
źródło