जवाबों:
आप bind -x
बैश में शॉर्टकट के लिए कमांड को बाँधने के लिए उपयोग कर सकते हैं । उदाहरण के लिए, git status
कमांड को Crtl+ pशॉर्टकट से बाँधने के लिए जिसका आप उपयोग कर सकते हैं:
bind -x '"\C-p":git status'
इसे ~/.bashrc
याद रखने के लिए फाइल में डालें । मैन पेज से:
-x कीसेक: शेल-कमांड
जब भी कीसेक दर्ज किया जाता है, तो शेल-कमांड निष्पादित किया जाता है। जब शेल-कमांड निष्पादित होता है, तो शेल रीडलाइन लाइन बफर की सामग्री के लिए READLINE_LINE चर और प्रविष्टि बिंदु के वर्तमान स्थान पर 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 install xdotool
~/bin
यदि यह अभी तक मौजूद नहीं है, तो एक निर्देशिका बनाएँ , या तो लॉग आउट करें या अंदर चलाएंsource ~/.profile
gterm_keys
(कोई एक्सटेंशन नहीं) के रूप में सहेजें ~/bin
, इसे निष्पादन योग्य बनाएंअब आप कमांड जोड़कर किसी भी कमांड को शॉर्टकट की से, सबसे फ्रंट gnome-terminal
विंडो में चला सकते हैं :
gterm_keys <command>
में वर्णित के रूप में एक शॉर्टकट कुंजी के लिए [1]
बाश के बजाए मामले में zsh का उपयोग किया जाता है, निम्न पंक्ति ~/.zshrc
बांधने के git status
लिए ALT+ ENTER।
bindkey -s '^[^M' 'git status\n'
बैश में ALT+ पाने के लिए ENTER, मैं इस लाइन का उपयोग करता हूं:
bind -x '"\e\C-m":git status'
bindkey -s '^[^M' 'git status\n'
जो ALT + ENTER से बांधता है।