Terminal standart çıkışını (stdout) panoya nasıl bağlarım?


106

Örneğin,

Bir klasörün içeriğini listelemek ve bunları doğrudan bir arkadaşımın görmesi için bir sohbet penceresine yapıştırmak istediğimi söyleyin .

ls > filename.txtBu içerikle bir dosya (dosyaadı.txt) oluşturmak için yapabileceğimin farkındayım ; Daha sonra dosyayı açmalı veya yazdırmalı ve metin bloğunu manuel olarak seçip kopyalamalıyım ( bu can sıkıcı / sıkıcı olabilir .) Ayrıca lsdoğrudan terminal penceresinden çıktısını seçip kopyalayabiliyordum .

Panoya standart çıktıyı basitçe aktarmak çok daha hızlı / daha kolay olacaktır .

Hangi terminal komutu bunu yapmamı sağlıyor?


Yanıtlar:


122

Bu, xsel veya xclip komut satırı yardımcı programları ile yapılabilir. Hiçbir program varsayılan olarak Ubuntu ile birlikte gelmediğinden, ilk önce onları Ubuntu Yazılımı veya terminal aracılığıyla yüklemeniz gerekir. Terminalde şu şekilde (ancak bu ikisinden sadece birine ihtiyacınız olduğunu unutmayın).

sudo apt install xsel
sudo apt install xclip

Şimdi bazı örnekler. lsÇıktısını panoya kopyalamak istiyorsanız, yapmanız gerekenler:

Xsel ile:

ls | xsel -ib

Xclip ile:

ls | xclip -sel clip

Bu elbette diğer terminal komutları için de kullanılabilir . Ağ bilgilerinizi yardım forumuna yapıştırmak istediğinizi varsayalım.

Xsel ile:

sudo lshw -C network | xsel -ib

Xclip ile:

sudo lshw -C network | xclip -sel clip

Yeni bir bash takma adıyla bunu daha da kolaylaştırın!

Senin düzenleyin ~/.bash_aliases(o var henüz ilk ile yaratmaz eğer dosya touch ~/.bash_aliases)

Ardından aşağıdakilerden birini (hangi programla çalışmaya karar verdiğinize bağlı olarak) ekleyin :

alias copy='xclip -sel clip'

veya

alias copy='xsel -ib'

Sonra kaydedin ve kapatın.

Şimdi (terminalinizi yeniden başlattıktan sonra) panoya standart çıktıyı sadece 'kopyalamaya' aktararak (veya yeni takma adınızı adlandırmaya karar verirseniz) gönderebilirsiniz.

Örneğin:

ls | copy

1
Daha yeni Ubuntu sürümlerinde, kullanmanız gerekir apt. Yani sudo apt install xselya sudo apt install xclip.
wisbucky

1
Cevabınız için teşekkürler ama sadece Linux terminali için bir şey biliyor musunuz?
Mohamad

1
@jpaugh. Ubuntu paket yönetimi dokümantasyonunu 16.04 vs 14.04 için karşılaştırın . 16.04'te sadece bahseder aptve söylemez apt-get. Hala kullanabilirsiniz apt-get, ancak insanları kullanmaya teşvik etmeye çalışıyorlar apt.
Wisbucky

2
Terminali yeniden başlatmanız gerekmez; yapabilirsinizsource ~/.bash_aliases
Rob K

1
@ Mohamad Bunlar bir X sunucusunun içinde çalışmak içindir (pano işlevini sağladığı için). Eğer buna sahip değilseniz, terminal emülatörünüzde yapmanız gerekir. Bunun nasıl yapılacağı, kullandığınız fiili yazılıma bağlıdır, çünkü bunun için fiili bir standart yoktur.
Thorbjørn Ravn Andersen

2

Panoya, Windows için Alt Sistem Linux (WSL) 'de Ubuntu kullanarak kopyalamaya çalışıyorsanız xsel veya xclip, pano olarak yalnızca Windows için kullanmadan X Windows kullanmıyorsanız çalışmaz. Ancak, panoya standart çıkış terminalini WSL Ubuntu'da panoya vermek için kullanabilirsiniz clip.exe. Daha sonra standart yapıştırma komutlarıyla WSL Ubuntu terminaline yapıştırabilirsiniz ve kopyalanan metin Windows'ta da kullanılabilir. Örneğin,

pwd | clip.exe 

geçerli çalışma dizinini (Windows) panoya kopyalar.

WSL / yapıştırmak metin kopyalamak için yollar ararken Bu arama sonuçları yüzden bu okuyucular gereksiz Ubuntu xsel veya xclip yüklemek ve bunun yerine kullanmak kalmaz bahsetmek değerli olduğunu düşünüyorum üstünde görünen clip.exe.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.