টার্মিনালটি ব্যবহার করার সময় আমি কীভাবে কোনও কমান্ডের আউটপুটটিকে আমার ক্লিপবোর্ডে পাইপ করতে পারি এবং এটি আবার পেস্ট করতে পারি? এই ক্ষেত্রে:
cat file | clipboard
apt install xclip
এবংcat file | xclip -sel clip
টার্মিনালটি ব্যবহার করার সময় আমি কীভাবে কোনও কমান্ডের আউটপুটটিকে আমার ক্লিপবোর্ডে পাইপ করতে পারি এবং এটি আবার পেস্ট করতে পারি? এই ক্ষেত্রে:
cat file | clipboard
apt install xclip
এবংcat file | xclip -sel clip
উত্তর:
আমি সর্বদা এটি করতে চেয়েছিলাম এবং এটি করার একটি দুর্দান্ত এবং সহজ উপায় খুঁজে পেয়েছি। আমি অন্য কারও প্রয়োজন হলে সম্পূর্ণ প্রক্রিয়াটি লিখেছিলাম।
প্রথমে একটি 16 কেবি প্রোগ্রাম ইনস্টল করুন xclip
:
sudo apt-get install xclip
তারপরে আপনি xclip
ক্লিপবোর্ডে অনুলিপি করতে আউটপুটটি পাইপ করতে পারেন :
cat file | xclip
আপনি কেবল অনুলিপি করা পাঠ্যটি পেস্ট করতে আপনি ব্যবহার করতে পারেন:
xclip -o
জীবনকে সহজ করার জন্য, আপনি আপনার .bashrc ফাইলে একটি উপন্যাস সেট করতে পারেন যা আমি করেছি:
alias "c=xclip"
alias "v=xclip -o"
এটি কতটা কার্যকর তা দেখতে, কল্পনা করুন যে আমি আমার বর্তমান পাথটি একটি নতুন টার্মিনাল উইন্ডোতে খুলতে চাই ( এটি কিছু পদ্ধতিতে Ctrl+ এর মতো করার অন্যান্য উপায়ও হতে পারে T, তবে এটি কেবল উদাহরণের উদ্দেশ্যে):
Terminal 1:
pwd | c
Terminal 2:
cd `v`
` `
চারপাশে লক্ষ্য করুন v
। এটি v
প্রথমে একটি কমান্ড হিসাবে কার্যকর করে এবং তারপরে এটি cd
ব্যবহারের জন্য স্থানে রাখে।
X
ক্লিপবোর্ডে কেবল সামগ্রীটি অনুলিপি করুন
cat file | xclip
আপনি যদি X
অ্যাপ্লিকেশন ব্যতীত অন্য কোথাও পেস্ট করতে চান তবে এটি ব্যবহার করে দেখুন:
cat file | xclip -selection clipboard
alias "cs=xclip -selection clipboard"
alias "vs=xclip -o -selection clipboard"
ওএস এক্স-এ, ব্যবহার করুন pbcopy
; pbpaste
বিপরীত দিকে যায়।
pbcopy < .ssh/id_rsa.pub
pbcopy < git merge-base master some-branch
git merge-base master some-branch | pbcopy
আমি লিনাক্স / ওএসএক্স / সাইগউইনের জন্য একটি সরঞ্জাম তৈরি করেছি যা এই অন্যদের মতো তবে কিছুটা অনন্য। আমি এটি কল করি cb
এবং এটি এই গিথুব গিস্টে পাওয়া যাবে ।
সেই সূচনায় আমি লিনাক্স, ম্যাকোস এবং সাইগউইন ব্যবহার করে কীভাবে কমান্ডলাইনের মাধ্যমে অনুলিপি এবং পেস্ট করব তা দেখিয়েছি।
_copy(){
cat | xclip -selection clipboard
}
_paste(){
xclip -selection clipboard -o
}
_copy(){
cat | pbcopy
}
_paste(){
pbpaste
}
_copy(){
cat > /dev/clipboard
}
_paste(){
cat /dev/clipboard
}
দ্রষ্টব্য: আমি মূলত বব এনোহপের উত্তরটি সম্পর্কে আমার মন্তব্যে এটি উল্লেখ করার ইচ্ছা করেছি । তবে আমি বুঝতে পেরেছিলাম যে আমার মুষ্টিতে একটি README যুক্ত করা উচিত। যেহেতু সংক্ষিপ্ত সম্পাদক মার্কডাউন পূর্বরূপ সরবরাহ করে না আমি উত্তর বাক্সটি এখানে ব্যবহার করেছি এবং এটি আমার টুকরো টুকরো করে অনুলিপি / পেস্ট করার পরে, "আমি উত্তরও জমা দিতে পারি।"
এই স্ক্রিপ্টটি মডেল করা হয়েছে tee
(দেখুন man tee
) এর পরে ।
এটি আপনার সাধারণ অনুলিপি এবং পেস্ট কমান্ডগুলির মতো তবে একীভূত এবং যখন আপনি এটি শৃঙ্খলাবদ্ধ হতে চান তা বোধ করতে সক্ষম
$ date | cb
# clipboard contains: Tue Jan 24 23:00:00 EST 2017
# clipboard retained from the previous block
$ cb
Tue Jan 24 23:00:00 EST 2017
$ cb | cat
Tue Jan 24 23:00:00 EST 2017
$ cb > foo
$ cat foo
Tue Jan 24 23:00:00 EST 2017
$ date | cb | tee updates.log
Tue Jan 24 23:11:11 EST 2017
$ cat updates.log
Tue Jan 24 23:11:11 EST 2017
# clipboard contains: Tue Jan 24 23:11:11 EST 2017
(কালানুক্রমিকভাবে এটি শেষে ডেমো বুদ্ধিমান হয়েছে)
# clipboard retained from the previous block
$ cb < foo
$ cb
Tue Jan 24 23:00:00 EST 2017
# note the minutes and seconds changed from 11 back to 00
আমি এই ছোট স্ক্রিপ্টটি লিখেছি যা অনুমান / অনুলিপি কমান্ডগুলি থেকে কাজটি অনুমান করে।
স্ক্রিপ্টটির লিনাক্স সংস্করণটি আপনার সিস্টেমে ইতিমধ্যে ইনস্টল করা xclip উপর নির্ভর করে। স্ক্রিপ্টটিকে ক্লিপবোর্ড বলা হয়।
#!/bin/bash
# Linux version
# Use this script to pipe in/out of the clipboard
#
# Usage: someapp | clipboard # Pipe someapp's output into clipboard
# clipboard | someapp # Pipe clipboard's content into someapp
#
if command -v xclip 1>/dev/null; then
if [[ -p /dev/stdin ]] ; then
# stdin is a pipe
# stdin -> clipboard
xclip -i -selection clipboard
else
# stdin is not a pipe
# clipboard -> stdout
xclip -o -selection clipboard
fi
else
echo "Remember to install xclip"
fi
স্ক্রিপ্টের ওএস এক্স সংস্করণটি পিবিকপি এবং পিবিপস্টে নির্ভর করে যা সমস্ত ম্যাকের উপর পূর্বেই ইনস্টল করা আছে।
#!/bin/bash
# OS X version
# Use this script to pipe in/out of the clipboard
#
# Usage: someapp | clipboard # Pipe someapp's output into clipboard
# clipboard | someapp # Pipe clipboard's content into someapp
#
if [[ -p /dev/stdin ]] ; then
# stdin is a pipe
# stdin -> clipboard
pbcopy
else
# stdin is not a pipe
# clipboard -> stdout
pbpaste
fi
স্ক্রিপ্টটি ব্যবহার করা খুব সহজ কারণ আপনি কেবল clipboard
এই দুটি উদাহরণ হিসাবে দেখিয়েছেন বা এর বাইরে পাইপ করছেন ।
$ cat file | clipboard
$ clipboard | less
pbcopy
এবং pbpaste
লিনাক্স তাই এটি উভয় Linux এবং OS X এর জন্য কাজ করে
~/.scripts/clipboard
করুন * বাশের chmod +x ~/.scripts/clipboard
জন্য এটি সম্পাদনযোগ্য করুন : * মাছের export PATH=$PATH:~/.scripts
শেষ প্রান্তে ~/.bashrc
যুক্ত করুন: * যুক্ত set PATH ~/.scripts $PATH
করুন ~/.config/fish/fish.config
যদি কোনও ফাইল বা ফোল্ডার ইতিমধ্যে বিদ্যমান না থাকে কেবল সেগুলি তৈরি করুন।
clipboard(){ ... }
এটিকে
date | cb | tee -a updates.log
। যে পাঠাবেন date
ক্লিপবোর্ডে কমান্ড আউটপুট এবং এটি বরাবর প্রেরণ tee -a
কমান্ড যার ফলে এটি একটি ফাইলে appends এবং বরাবর এটি পাস stdout
। তবে এটি " ক্লিপবোর্ডে লিক-প্রুফ টি " এর মতো কারণ আপনি যদি কেবলমাত্র date | cb
কোনও আউটপুট পান না তবে। এবং পরিশেষে এটি cb > file.txt
জিস্ট.github.com/ রিচার্ড ব্রোনোস্কি
xclip -i -selection clipboard
তা করিxargs echo -n | xclip -i -selection clipboard
এটি আপনার যুক্ত করুন ~/.bashrc
:
# Now `cclip' copies and `clipp' pastes'
alias cclip='xclip -selection clipboard'
alias clipp='xclip -selection clipboard -o'
এখন পি পেস্ট এবং সি ক্লিপ অনুলিপিগুলি ক্লিপ করুন - তবে আপনি ফ্যানসিয়ার স্টাফও করতে পারেন:
clipp | sed 's/^/ /' | cclip
Clip আপনার ক্লিপবোর্ডে প্রবেশ করে; ওভারফ্লো { }বোতাম স্ট্যাক ছাড়া সাইটের জন্য ভাল
এটি চালিয়ে আপনি এটি যুক্ত করতে পারেন:
printf "\nalias clipp=\'xclip -selection c -o\'\n" >> ~/.bashrc
printf "\nalias cclip=\'xclip -selection c -i\'\n" >> ~/.bashrc
আমি পার্সেলাইট ব্যবহার করছি এবং আমার ক্লিপবোর্ড পরিচালক xsel
থেকে শেষ প্রতিশ্রুতি বার্তা অনুলিপি git
করতে (কিছু কারণে xclip
কাজ করে না):
$ git log -1 --pretty=%B | xsel -i -b
বাহ্যিক সরঞ্জামগুলি ব্যবহার না করে আপনি যদি সার্ভার ভিউ এসএসএইচে সংযোগ করছেন তবে এটি তুলনামূলক সহজ কমান্ড:
একটি উইন্ডোজ 7+ কমান্ড প্রম্পট থেকে:
ssh user@server cat /etc/passwd | clip
এটি দূরবর্তী ফাইলের সামগ্রী আপনার স্থানীয় ক্লিপবোর্ডে রাখবে।
(কমান্ডটির জন্য কীটির জন্য পেজেন্ট চলমান প্রয়োজন, অথবা এটি আপনাকে একটি পাসওয়ার্ড চাইবে))
আমি এক্সক্লিপ বা এক্সসেল ব্যবহার না করে অনুরূপ কার্যকারিতা সরবরাহ করার জন্য একটি ছোট সরঞ্জাম তৈরি করেছি। stdout
একটি ক্লিপবোর্ডে অনুলিপি করা হয় এবং টার্মিনালে আবার আটকানো যেতে পারে। দেখা:
https://sourceforge.net/projects/commandlinecopypaste/
দ্রষ্টব্য, এই সরঞ্জামটির কোনও এক্স-সেশনের প্রয়োজন নেই। ক্লিপবোর্ডটি কেবল টার্মিনালের মধ্যেই ব্যবহার করা যেতে পারে Ctrl+Vএবং অন্য এক্স-উইন্ডোতে মিডল-মাউস ক্লিক করে আটকানো হয় না ।
পূর্ববর্তী পোস্টগুলির উপর ভিত্তি করে, আমি নিম্নলিখিত হালকা-ওজনের ওরফে সমাধানটি দিয়ে শেষ করে যা এতে যোগ করা যেতে পারে .bashrc
:
if [ -n "$(type -P xclip)" ]
then
alias xclip='xclip -selection clipboard'
alias clipboard='if [ -p /dev/stdin ]; then xclip -in; fi; xclip -out'
fi
উদাহরণ:
# Copy
$ date | clipboard
Sat Dec 29 14:12:57 PST 2018
# Paste
$ date
Sat Dec 29 14:12:57 PST 2018
# Chain
$ date | clipboard | wc
1 6 29
আমি পি-পি-পি ব্যাকগ্রাউন্ড থেকে এসেছি এবং এর অ্যাক্সেস নেই xclip
, xsel
বা অন্যান্য অভিনব স্টাফ। বিষয়টিকে আরও খারাপ করার জন্য আমার কাছে একটি টিসিএসএইচ কনসোল রয়েছে।
অপরিহার্য বিষয়গুলি: qdbus
klipper
xargs
bash
কার্যকর বাশ তৈরি করুন foo.sh
।
#!/bin/bash
qdbus org.kde.klipper /klipper setClipboardContents "$1" > /dev/null
দ্রষ্টব্য: এটি বাশ করা দরকার কারণ টিসিএসএইচ বহু-লাইন যুক্তি সমর্থন করে না।
এর পরে একটি টিসিএসএইচ ওরফে রয়েছে .cshrc
।
alias clipboard xargs -0 /path/to/foo
ব্যাখ্যা:
xargs -0
পাইপ স্টিডিন একটি একক যুক্তিতে। এই যুক্তিটি বাশ এক্সিকিউটেবলের কাছে প্রেরণ করা হয়েছে যা "ক্লিপবোর্ডে অনুলিপি" প্রেরণ klipper
করে qdbus
। পাইপ/dev/null
qdbus
কনসোলে ফিরে আসা নতুন লাইন অক্ষরটি মুদ্রণ করতে হবে না ।
ব্যবহারের উদাহরণ:
ls | clipboard
এটি ক্লিপবোর্ডে বর্তমান ফোল্ডারের সামগ্রীগুলি অনুলিপি করে।
দ্রষ্টব্য: কেবল পাইপ হিসাবে কাজ করে। আপনার যদি কোনও যুক্তি অনুলিপি করতে হয় তবে সরাসরি ব্যাশ এক্সিকিউটেবল ব্যবহার করুন ।
যখন আমি আমার অনুলিপি করতে হয় তখন আমি সাধারণত এই আদেশটি চালাই ssh-key
:
cat ~/.ssh/id_rsa.pub | pbcopy
ctrl+v
যে কোন জায়গায় অন্য.
ওয়েল্যান্ডের xcopy এ কাজ করছে বলে মনে হচ্ছে না, পরিবর্তে wl-clipboard ব্যবহার করুন। যেমন ফেডোরার উপর
sudo dnf install wl-clipboard
tree | wl-copy
wl-paste > file
যারা তাদের উইন্ডোজ সিস্টেমে ইনস্টল করা ব্যাশ ব্যবহার করেন (লিনাক্সের জন্য উইন্ডোজ সাবসিস্টেম হিসাবে পরিচিত (ডাব্লুএসএল)), এক্সক্লিপ চেষ্টা করার ফলে একটি ত্রুটি ঘটবে:
Error: Can't open display: (null)
পরিবর্তে, মনে রাখবেন যে লিনাক্স সাবসিস্টেমটিতে উইন্ডোজ এক্সিকিউটেবলের অ্যাক্সেস রয়েছে। ক্লিপ.এক্সেক্সের মতো ব্যবহার করা সম্ভব
echo hello | clip.exe
যা আপনাকে পেস্ট কমান্ড (ctrl-v) ব্যবহার করতে দেয়।
কেবল একটি প্রান্তের মামলাটি কভার করার জন্য :) এবং কারণ প্রশ্নের শিরোনাম জিজ্ঞাসা করে (কমপক্ষে এখন) কীভাবে কোনও কমান্ডের আউটপুট সরাসরি ক্লিপবোর্ডে অনুলিপি করতে হয়।
প্রায়শই কমান্ডের আউটপুটটি ইতিমধ্যে কার্যকর হওয়ার পরে অনুলিপি করা আমার পক্ষে দরকারী মনে হয় এবং আমি কমান্ডটি পুনরায় প্রয়োগ করতে বা চাই না।
এই দৃশ্যের জন্য, আমরা হয় জিডিএম বা অনুরূপ মাউস ইউটিলিটি ব্যবহার করতে পারি এবং মাউস ব্যবহার করে নির্বাচন করতে পারি। apt-get install gdm
এবং তারপরে টার্মিনালে অনুলিপি এবং পেস্ট করার জন্য ডান ক্লিক করুন বা Cntrl + Shift + c এবং Cntrl + Shift + v সংমিশ্রণগুলি
অথবা, যা আমার পক্ষে পছন্দসই পদ্ধতি (যেমন মাউস যখন আপনার একাধিক প্যান পাশাপাশি পাশাপাশি থাকে তখন একটি ফলকের ভিতরে সঠিকভাবে নির্বাচন করতে পারে না এবং tmux ব্যবহার করে আমরা স্ট্যান্ডার্ডটি ব্যবহার করে tmux বাফারে অনুলিপি করতে পারি) [, স্থান, নির্বাচন করতে সরান, লিখুন বা আপনি কোডের একটি ব্লক নির্বাচন করতে পারেন। এছাড়াও আপনি টিএমাক্সের মতো ক্লিপ মাল্টিপ্লেক্সারের কোনও এক লেনের ভিতরে থাকা অবস্থায় এটি বিশেষভাবে কার্যকর এবং আপনার একগুচ্ছ পাঠ্য নির্বাচন করতে হবে তবে লাইন নম্বরগুলি নয় (আমার ভিম সেটআপটি রেখার সংখ্যাগুলি সরবরাহ করে)
এর পরে আপনি কমান্ডটি ব্যবহার করতে পারেন:
tmux সেভ-বাফার - | xclip -i
আপনি অবশ্যই এটির নিজের পছন্দ মতো কোনও উপায়ে টিএমক্স কনফিগারেশন ফাইলে সরাসরি বাঁধতে পারেন
কমান্ডটি আবার কার্যকর করা সম্ভব না হলে এই প্রান্ত কেসটি কভার করার জন্য এটি আপনাকে ধারণামূলক উত্তর দেওয়ার জন্য। আপনার যদি আরও নির্দিষ্ট কোড উদাহরণগুলির প্রয়োজন হয় তবে আমাকে জানান
চিয়ার্স