Yanıtlar:
bind
Bir klavye kısayolunu komut / kabuk komut dosyasını yürütecek şekilde eşlemek için yerleşik komutunu kullanabilirsiniz .
Diyelim ki pwd
, tuşuna bastığımızda, komutu çalıştırmak istiyoruz F12.
$ bind '"\e[24~":"pwd\n"'
Şimdi F12istemime bastığımda $
:
$ pwd
/home/saml
Belirli bir klavye kısayolunun çıkış kodunu belirlemek için aşağıdaki tekniği kullanabilirsiniz. Çoğu sistemde Ctrl+ tuşuna basın V, bırakın ve ardından kodunu istediğiniz tuşa basın. MBunun yerine çalışacağı başka sistemler de varV
Presleme Ctrl+ Vsonra serbest bırakmak Ctrlve Vson olarak basın F12bir terminal penceresinde bu verir:
$ ^[[24~
Bu çıktı aşağıdaki gibi yorumlanabilir ^[
, Escanahtardır. Bu bind
komutu kullanarak bu özel anahtarı belirtmek istediğimizde , yukarıdan diğer her şeyi izleyen anahtarı \e
belirtmek için a kullanmamız gerekir Esc. Yani bind
komut şuna benzer:
$ bind '"\e[24~":"....."'
Ayrıca bind -x
, komut istemine bir şey yazmanın ortasındayken komutları çalıştıracak klavye kısayollarını ayarlamak için de kullanabilirsiniz ve bu komutların çıktıları görüntülenir, ancak komut isteminde yazdığınız şey bozulmadan kalır.
$ bind -x '"\eW":"..."'
NOT: Bu yöntem yalnızca 1 karakter çıkaran klavye kısayollarıyla çalışır, bu nedenle F12burada çalışmaz.
Alt+ Shift+ Klavye kısayolunu takma adlayalım W.
$ bind -x '"\eW":"who"'
Diyelim ki komutu yazıyorum finger
:
$ finger
Şimdi Alt+ Shift+ klavye kısayoluna basıyorum W:
saml tty1 2013-09-01 11:01 (:0)
saml pts/0 2013-09-01 11:03 (:0.0)
saml pts/1 2013-09-01 11:05 (:0.0)
saml pts/2 2013-09-01 11:05 (:0.0)
saml pts/5 2013-09-03 22:45 (:0.0)
$ finger
Olan şey bind
, tanımlanan komutu çalıştırmak, who
çıktısını almak ve komut isteminin önüne yerleştirmektir. Tekrar ederseniz, neler olduğunu göreceksiniz, işte benden 2 kez vurduğum çıktı:
saml tty1 2013-09-01 11:01 (:0)
saml pts/0 2013-09-01 11:03 (:0.0)
saml pts/1 2013-09-01 11:05 (:0.0)
saml pts/2 2013-09-01 11:05 (:0.0)
saml pts/5 2013-09-03 22:45 (:0.0)
saml tty1 2013-09-01 11:01 (:0)
saml pts/0 2013-09-01 11:03 (:0.0)
saml pts/1 2013-09-01 11:05 (:0.0)
saml pts/2 2013-09-01 11:05 (:0.0)
saml pts/5 2013-09-03 22:45 (:0.0)
$ finger
Bu yüzden bir fikir bind -x
yukarıdaki yöntemi kullanmak ve cat
bu metin dosyasını isteminizde görüntülemek olacaktır:
$ bind -x '"\eW":"cat someinfo.txt"'
Şimdi komutları çalıştırdığımda bu dosyayı şöyle görebilirsiniz:
This is text from some
multi-line file reminding
me how to do some
stuff
$ finger
Dosya çıktısı someinfo.txt
yukarıdaki finger
komutumun üstünde görüntüleniyor.
echo '
(tek tırnaktan sonra boşluk), sonra Ctrl + v, sonra istediğiniz tuşa ve sonra boşluk, tek tırnak ... burada açıklandığı gibi . Örnek:echo ' ^[OD '
bind '"\e[24~":"airmon-ng start wlan0\n"'
ama terminali kapattıktan sonra, şey sıfırlanmış gibi görünüyor ve tüm kısayol tuşları kayboldu