[linux] أنبوب إلى / من الحافظة في البرنامج النصي باش



Answers

تأكد من أنك تستخدم اسمًا مستعارًا xclip="xclip -selection c" وإلا لن تتمكن من استخدام Ctrl + v xclip="xclip -selection c" مرة أخرى في مكان مختلف.

echo test | xclip    

Ctrl + v === test

Question

هل من الممكن توجيه الأنبوب إلى / من الحافظة في Bash؟

سواءً كان الأمر يتعلق بالأنابيب من وإلى مقبض جهاز أو باستخدام تطبيق إضافي ، لا أستطيع العثور على أي شيء.

على سبيل المثال ، إذا كان /dev/clip جهازًا يرتبط بالحافظة ، فيمكننا القيام بما يلي:

cat /dev/clip        # Dump the contents of the clipboard
cat foo > /dev/clip  # Dump the contents of "foo" into the clipboard



من هذا الموضوع ، هناك خيار لا يتطلب تثبيت أي برنامج طرف ثالث xsel / xsel / xsel .

برنامج نصي perl (نظرًا لأنه يتم دائمًا تثبيت perl)

use Win32::Clipboard;
print Win32::Clipboard::GetText();



  xsel -b

هل وظيفة ل x11 ، هو في الغالب مثبتة بالفعل. نظرة في صفحة رجل من xsel يستحق كل هذا الجهد.




بعض برامج ويندوز التي كتبتها منذ سنوات. أنها تسمح لك تفريغ ، دفع ، إلحاق وطباعة الحافظة. يعمل مثل هذا:

dumpclip | perl -pe "s/monkey/chimp/g;" | pushclip

ويشمل كود المصدر: cmd_clip.zip




في نظام Windows الفرعي لنظام التشغيل Linux ، يمكنك النسخ إلى الحافظة مع clip.exe.

cat file | clip.exe

ضع في اعتبارك استخدام | الأمر الأنبوبي. وليس الأمر ، لأن ذلك لن ينجح.




على نظام التشغيل Windows (مع Cygwin) حاول استخدام cat /dev/clipboard أو echo "foo" > /dev/clipboard كما هو مذكور في this المقالة.




في نظام التشغيل Mac OS X ، قد تجد أدوات سطر الأوامر هذه مفيدة:

مثال:

cat ~/.bashrc | pbcopy

بعد ذلك سيكون محتوى أمر الملف ~/.bashrc متاحًا للصق باستخدام اختصار cmd + v .




هذا هو برنامج بيثون بسيط يقوم بكل ما تحتاجه:

#!/usr/bin/python

import sys

# Clipboard storage
clipboard_file = '/tmp/clipboard.tmp'

if(sys.stdin.isatty()): # Should write clipboard contents out to stdout
    with open(clipboard_file, 'r') as c:
        sys.stdout.write(c.read())
elif(sys.stdout.isatty()): # Should save stdin to clipboard
    with open(clipboard_file, 'w') as c:
        c.write(sys.stdin.read())

قم بحفظ هذا كملف قابل للتنفيذ في مكان ما من مسارك (قمت بحفظه إلى /usr/local/bin/clip . يمكنك توجيه الأغراض ليتم حفظها في الحافظة الخاصة بك ...

echo "Hello World" | clip

ويمكنك توجيه ما في الحافظة إلى برنامج آخر ...

clip | cowsay
 _____________
< Hello World >
 -------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

تشغيله بنفسه سيخرج ببساطة ما يوجد في الحافظة.







xsel على دبيان / أوبونتو / منت

# append to clipboard:
cat 'the file with content' | xsel -ib

# or type in the happy face :) and ...
echo 'the happy face :) and content' | xsel -ib

# show clipboard
xsel -b

# Get more info:
man xsel

التثبت

sudo apt-get install xsel



هناك لوحات مختلفة في لينكس. لدى خادم X واحد ، مدير النوافذ قد يكون واحد آخر ، إلخ. لا يوجد جهاز قياسي.

نعم ، نعم ، في CLI ، يحتوي برنامج الشاشة على حافظة خاصة به ، وكذلك بعض التطبيقات الأخرى مثل Emacs و vi .

في X ، يمكنك استخدام xclip .

يمكنك التحقق من هذا الموضوع للحصول على إجابات محتملة أخرى: http://unix.derkeiler.com/Newsgroups/comp.unix.shell/2004-07/0919.html




Related