উত্তর:
আপনি bind -x
বাশ-এ একটি শর্টকাটে একটি কমান্ড বাঁধতে ব্যবহার করতে পারেন । উদাহরণস্বরূপ, + শর্টকাটে git status
কমান্ড বাঁধাই আপনি ব্যবহার করতে পারেন:Crtlp
bind -x '"\C-p":git status'
এটি ~/.bashrc
মনে রাখতে ফাইলের মধ্যে রাখুন । ম্যান পৃষ্ঠা থেকে:
-x কীসেক: শেল-কমান্ড
কীসেক প্রবেশ করা হলে শেল-কমান্ড কার্যকর করা হবে। শেল-কমান্ড কার্যকর করা হলে, শেলটি রিডলাইন লাইন বাফার এবং READLINE_POINT ভেরিয়েবলটি সন্নিবেশকরণ পয়েন্টের বর্তমান অবস্থানে রেডলাইনপ্লাইনটি পরিবর্তনশীল সেট করে। যদি কার্যকর করা কমান্ড READLINE_LINE বা READLINE_POINT এর মান পরিবর্তন করে তবে সেই নতুন মানগুলি সম্পাদনা অবস্থায় প্রতিফলিত হবে।
bind -x '"\C-k":firefox'
আমি এটি ব্যবহার করি কিন্তু কার্যকর হয় না
bind
এখানে পাওয়া যেতে পারে: stackoverflow.com/a/4201274/712334
যেহেতু কমান্ডটি চালানোর পরে আপনার টার্মিনালটি খোলা রাখা দরকার:
gnome-terminal -e 'bash -c "git status; read line"'
একটি শর্টকাট কী সংমিশ্রনের অধীনে, কাজটি করবে। এটি একটি নতুন gnome-terminal
উইন্ডো খুলবে এবং এর ভিতরে কমান্ডটি চালাবে।
চয়ন করুন: সিস্টেম সেটিংস> "কীবোর্ড"> "শর্টকাটস"> "কাস্টম শর্টকাট"। "+" ক্লিক করুন এবং কমান্ডটি যুক্ত করুন:
gnome-terminal -e 'bash -c "git status; read line"'
থেকে Ctrl+Enter
যদিও আপনার প্রস্তাবিত শর্টকাটটি কাজ করে, আপনি তখন Ctrl+ এর সাথে অন্য কোনও কী সংমিশ্রণটি বেছে নিতে পারেন Enter, যেহেতু এটি একটি নতুন পৃষ্ঠায় ঝাঁপ দেওয়ার জন্য শর্টকাটের সাথে অন্তত সংঘর্ষ হয় LibreOffice
।
gnome-terminal
কমান্ড লাইন থেকে একটি নতুন উইন্ডো খুলতে এবং এতে একটি কমান্ড চালাতে, আপনি ব্যবহার করতে পারেন:
gnome-terminal -e 'bash -c <command>'
তবে, কমান্ডটি সফলভাবে চলবে, আপনি আউটপুটটি পড়ার আগেই টার্মিনাল উইন্ডোটি তত্ক্ষণাত বন্ধ হয়ে যাবে।
বিভাগ:
read line
তাহলে Enterকমান্ডটি চালানোর পরে টার্মিনালটি খোলা রাখা (আপনি আঘাত না করা )।
এইভাবে, আপনি অবিলম্বে এটি বন্ধ না করেই টার্মিনালে কোনও (জটিল) কমান্ড চালাতে পারেন:
$ gnome-terminal -e 'bash -c "wmctrl -d; read line"'
আউটপুট হবে (যদি wmctrl
ইনস্টল করা থাকে):
চাপ Enterদেওয়ার পরে টার্মিনালটি বন্ধ হয়ে যাবে।
অবশ্যই আপনি পারে একটি শর্টকাট কী (অভিমানী আপনি আছে অধীনে একটি সহজ এক-লাইনের স্থান xdotool
ইনস্টল করা আছে):
xdotool type "<command>"
যদিও কমান্ড টাইপ হবে অন্ধ , এ কোন অ্যাপ্লিকেশনটি এবং টাইপ কমান্ড পরিষ্কার বিকল্প নয়।
নীচে ছোট স্ক্রিপ্ট:
gnome-terminal
উইন্ডো কিনা তা দেখায় (এর পিড দিয়ে)gnome-terminal
উইন্ডো ছাপাখানা Return। যেহেতু স্ক্রিপ্টটি লক্ষ্যযুক্ত কমান্ডটিকে আর্গুমেন্ট হিসাবে গ্রহণ করে, তাই আপনি একাধিক শর্টকাটের অধীনে একাধিক কমান্ড রাখতে পারেন।
#!/usr/bin/env python3
import subprocess
import sys
import time
app = "gnome-terminal"
s = (" ").join(sys.argv[1:])
def get(cmd):
return subprocess.check_output(cmd).decode("utf-8").strip()
def front(app):
try:
# see if gnome-terminal is running at all (raising error if not)
app = get(["pgrep", app])
except subprocess.CalledProcessError:
app = False
if app:
# if so, see if the active window belongs to gnome-terminal comparing pids)
active = get(["xdotool", "getwindowpid", get(["xdotool", "getactivewindow"])])
return True if app == active else False
if front(app):
# copy command to clipboard
cm1 = ["/bin/bash", "-c", 'printf "'+s+'" | xclip -selection clipboard']
# paste in terminal window
cm2 = ["xdotool", "key", "Control_L+Shift_L+v"]
# press return
cm3 = ["xdotool", "key", "Return"]
for cm in [cm1, cm2, cm3]:
subprocess.call(cm)
স্ক্রিপ্ট দরকার xdotool
sudo apt-get xdotool ইনস্টল করুন
ডাইরেক্টরিটি তৈরি করুন ~/bin
যদি এটি এখনও বিদ্যমান না হয়, হয় লগ আউট / ইন বা চালানোsource ~/.profile
gterm_keys
মধ্যে (কোন এক্সটেনশন) ~/bin
, একটি এটিকে এক্সিকিউটেবলএখন আপনি শর্টকাট কী থেকে সামনের উইন্ডোতে কমান্ডটি যুক্ত করে যে কোনও কমান্ড চালাতে পারবেন gnome-terminal
:
gterm_keys <command>
একটি শর্টকাট কীতে বর্ণিত হয়েছে [1]
যদি ব্যাশের পরিবর্তে zsh ব্যবহার করা হয় তবে নিম্নলিখিত লাইনটি + এ ~/.zshrc
আবদ্ধ git status
হয় ।ALTENTER
bindkey -s '^[^M' 'git status\n'
বাশ-তে ALT+ পেতে ENTER, আমি এই লাইনটি ব্যবহার করি:
bind -x '"\e\C-m":git status'
bindkey -s '^[^M' 'git status\n'
যা ALT + ENTER এর সাথে আবদ্ধ।