답변:
bind -x
Bash에서 바로 가기에 명령을 바인딩하는 데 사용할 수 있습니다 . 예를 들어, git status
명령을 Crtl+ p바로 가기 에 바인딩 하려면 다음을 사용할 수 있습니다.
bind -x '"\C-p":git status'
그것을 ~/.bashrc
기억하기 위해 파일에 넣으십시오 . 매뉴얼 페이지에서 :
-x keyseq : 쉘 명령
keyseq를 입력 할 때마다 쉘 명령이 실행되도록합니다. shell-command가 실행될 때, 쉘은 READLINE_LINE 변수를 Readline 라인 버퍼의 내용으로 설정하고 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
(pid로)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]
bash 대신 zsh를 사용하는 경우 다음 행은 + 에 ~/.zshrc
바인딩 git status
됩니다 .ALTENTER
bindkey -s '^[^M' 'git status\n'
Bash에서 ALT+ 를 얻으려면 ENTER이 줄을 사용하십시오.
bind -x '"\e\C-m":git status'
bindkey -s '^[^M' 'git status\n'
ALT + ENTER에 바인딩합니다.