* Nix komut satırındaki ilk karaktere nasıl atlanır?


17

* Nix komut satırında uzun komutu yazma ve örneğin örnekte (başında bir şey eklemek amacıyla, geri ilk karakter gitmek zorunda zaman nohupsen süreci uzun veya olacaktır fark ettiklerinde, sudo, sizi root izinlerine ihtiyacınız olduğunu unutmayın) imlecin ilk karaktere geri dönmesi uzun sürebilir ...

Oraya atlamanıza izin veren bir kısa yol var mı?

Mac kullanıyorum, bu yüzden Homebir seçenek değil


2
Apple dizüstü bilgisayar kullanıyorsanız, Fn + Sol / Sağ Home / End ile aynıdır. (Ve ilgili olarak, Fn + Yukarı / Aşağı PageUp /
Aşağı'dır

2
Bu soruyu okuyanlar için, bu aslında kabuk hakkında sormaktır, daha özel olarak kabukta komut satırı düzenlemesi. Önceki Ctrl-A yanıtı, varsayılan Emacs stil düzenlemesiyle bash (büyük olasılıkla).
Zengin Homolka

4
Sadece eklenti gerekiyorsa alternatif sudoyazmaktır sudo !!. !!Bir önceki komutla yerini alır.
Matthew Crumley

Yanıtlar:


29

Ctrl+Açalışmalı. Ctrl+Ekomut satırının sonuna karşılık gelir.


1
Harika! Bu mac üzerinde de mükemmel çalışıyor!
clami219

1
Bu, birçok kod editöründe de geçerlidir.
Jwosty

2
@ clami219: Aslında OSX'teki çoğu metin bağlamında çalışır. Emacs bağlamaları harika bir şey ...
tommyo

Teşekkürler, Linux üzerinde de çalışır.
Gideon Babu

10

Bu söz konusu kabuğa bağlıdır.

Bazı mermiler (AT&T ksh88 gibi) neredeyse hiç giriş satırı düzenlemesi sunmaz.

viMod düzenleme uygulayan kabuklarda (bunu ile etkinleştirmeniz gerekebilir set -o vi), önce Esc(ekleme modundan geçmek için) ve ardından 0satır başına $atlamak veya satır sonuna atlamak için tuşuna basın. Sonra i- tuşuna basarak giriş moduna tekrar girin - imleç bulunduğu yerde kalır - veya a- imleç metin eklemek için birini sağa hareket ettirir.

vi mod düzenleme yakın zamanda POSIX standardı tarafından zorunlu kılınmıştır.

Çok daha yaygın emacs mod düzenleme kullanımlarını (o Emacs-çizgi-işletim-sistemi ile ilgisi yoktur, tanrılara teşekkür) Ctrl-Asatırın başına atlamak için ve Ctrl-Esatırın sonuna atlamak için. Bu mod set -o emacsbirçok kabukta (en belirgin AT&T ksh93) çalışmanızı gerektirir , ancak mksh ve GNU bash'da varsayılan olarak etkindir .

Çoğu modern kabukları hem destekleyen emacsve vimodları. (Bu iki modun da çalışması için bir tty gerekir.)

Birçok kabukta, tuş bağlantılarını özelleştirebilirsiniz; emacsBazı modlar da mod için tuş takımının özelleştirilmesine izin verse de, genellikle mod için vikullanılır. Bir tuşa varsa doğrusu, bu bağlı örneğin, benim sistemde, (üreten anahtar dizileri dışarı rakama ilk ihtiyaç olurdu Alt-CursorLeftüretir Esc+[+1+;+3+D( ^[[1;3D; ^Xolduğu Ctrl-Xve ^[olduğu Esc), şöyle bir şey yazabilirsiniz

bind '^[[1;3D=beginning-of-line'
bind '"\e[1;3D":beginning-of-line'

ve kabuğa bağlı olarak bu tuş bağlama işlemi değişmiş olacak. Bunları genellikle başlangıç ​​dosyasında ( ~/.mkshrc, ~/.kshrc) veya GNU bash için in'de saklayabilirsiniz ~/.inputrc. Tüm kabukların tüm sürümlerdeki tüm anahtarları bağlamayı desteklemediğini unutmayın.

Genellikle bir anahtarın hangi karakterleri oluşturduğunu sadece catkabuk üzerinde çalışarak, anahtarı yazıp izleyerek bulabilirsiniz. Ardından iptal etmek için ^C( Ctrl-C) tuşuna basın cat.


Unix son satırı karakteri olan ^ D'yi son kat için kullanmayı seviyorum. Aklımda, ^ D çünkü metin akışı "bitti".
Aaron Hall

@AaronHall: hatta zaten bir şey varsa işe yaramaz. Ayrıca, iptal etmek istiyoruz, bitirmek istemiyoruz ;-) Ama evet, normal durumda haklısın. Ama bu özel bir durum.
mirabilos

Terminal, satır düzenleme de yapabilir.
Samuel Edwin Ward

@mirabilos Yeni satır içermeyen bir EOF göndermek için ^ D ^ D yapın (yani D'ye iki kez basın).
Potatoswatter

@Potatoswatter evet (eğlenceli, bunu kendim bilmiyordum), ama özellikle burada iptal etmek istiyorum. Gönderirken ^D^DI hala “önemsiz” yankılandı ... olsun
mirabilos

2

Ana Sayfa anahtarını denediniz mi? Linux kutusuna bağlanmak için MobXterm kullanıyorum ve komutun ilk veya son karakterine gitmek için klavyede hem Home hem de End tuşlarını kullanıyorum.


Haklısın! Bir mac kullandığımı belirtmek zorundaydım ...
clami219

2

Eğer geçtiyseniz vikullanarak, mod set -o vi, sen vurabilir Escve ya Iya Abaştan ya satırın sonundaki metin girmek için. Ya da sadece imleci hareket ettirmek istiyorsanız, ^ve $.


vi hangi kabuk modu?
David Richerby

2

Emacs modunda (anahtar:) set -o emacs:

  • Ctrl+A ve Ctrl+E
  • Home ve End
  • Esc+bve Esc+f(imleci geçerli sözcüğün ileri ve geri hareket ettirir)

Vi modunda (: ile değiştirilir set -o vi) komut modunda ( Esc) iken şu tuşa basılarak:

  • 0/ ^ve $(komut modunda kalacaktır)
  • Ive A(düzenleme moduna geçecektir)

Ayrıca bakınız:

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.