Jak mogę wykonać skrypt w Shell po naciśnięciu klawisza skrótu.
Zasadniczo to, czego potrzebuję, to po naciśnięciu klawisza skrótu skrypt powinien odczytać plik i wyświetlić tę zawartość w terminalu.
bash
keyboard-shortcuts
gnome-terminal
użytkownik3539
źródło
źródło
bind '"\e[24~":"airmon-ng start wlan0\n"'
ale po zamknięciu terminalu wydaje się, że wszystko zostało zresetowane i zniknęły wszystkie skrótyOdpowiedzi:
Możesz użyć wbudowanego polecenia,
bind
aby zmapować skrót klawiaturowy, aby wykonał skrypt polecenia / powłoki.Przykład
Powiedzmy, że chcemy uruchomić polecenie
pwd
po naciśnięciu F12klawisza.Teraz, gdy naciskam F12na mój monit
$
:Określanie skrótów klawiaturowych
Możesz użyć następującej techniki, aby określić kod zmiany znaczenia dla danego skrótu klawiaturowego. W większości systemów naciśnij Ctrl+ V, puść, a następnie naciśnij klawisz, dla którego chcesz wprowadzić kod. Istnieje kilka innych systemów, z którymi będzie działać MzamiastV
Przykład
Naciśnięcie Ctrl+, Va następnie zwolnienie obu, Ctrla na Vkoniec naciśnięcie F12w oknie terminala zwraca:
Ten wynik można interpretować następująco,
^[
jest Esckluczem. Więc kiedy chcemy określić ten konkretny klucz za pomocąbind
polecenia, musimy użyć a,\e
aby oznaczyć Escklucz, a następnie wszystko inne z góry. Tak zbind
wyglądu poleceń takich jak ta:Wykonywanie polecenia w środku
Możesz także skorzystać z
bind -x
ustawień skrótów klawiaturowych, które będą uruchamiać polecenia podczas pisania poleceń w wierszu, a dane wyjściowe tych poleceń będą wyświetlane, ale to, co wpisałeś w wierszu polecenia, pozostanie nienaruszone.UWAGA: Ta metoda działa tylko ze skrótami klawiaturowymi, które generują 1 znak, więc F12tutaj nie będzie działać.
Przykład
Alias skrótu klawiaturowego Alt+ Shift+ W.
Powiedzmy, że wpisuję polecenie
finger
:Teraz uderzyłem skrót klawiaturowy Alt+ Shift+ W:
To, co się dzieje,
bind
to uruchomienie zdefiniowanego poleceniawho
, pobranie jego danych wyjściowych i wstawienie przed pytaniem. Jeśli to powtórzysz, zobaczysz, co się dzieje, oto mój wynik 2 razy:Twój problem
Jednym z pomysłów byłoby użycie
bind -x
powyższej metody icat
wyświetlenie tego pliku tekstowego po wyświetleniu monitu:Teraz, gdy uruchamiam polecenia, widzę ten plik w następujący sposób:
Dane wyjściowe pliku
someinfo.txt
są wyświetlane powyżej mojegofinger
polecenia powyżej.Bibliografia
źródło
echo '
(spacja po pojedynczym cudzysłowie), następnie naciśnij Ctrl + v, następnie żądany klawisz, a następnie spacja, pojedynczy cudzysłów ... jak opisano tutaj . Przykład:echo ' ^[OD '