Gedit komutu çalışırken terminali kullanamıyorum


44

Geçenlerde 12.04'ü yükledim. Gedit
ile bir dosyayı düzenlemeye çalıştığımda, düzenleme dosyasını kapatana kadar yeni bir terminal açmam gerekmeden terminal kullanamıyorum. Ama sanırım 11.04 ile bu problemi yaşamadım ama emin değilim. Bunu önlemek ve dosyaları düzenlerken aynı terminal kullanmak için yine de var.

Yanıtlar:


80

Kısa cevap

Tepki vermeyen terminalde:

  1. Ctrl+ Tuşlarına basın Z.
  2. Yaz bgve gir.
  3. Yaz disownve gir.

Uzun cevap

Tepki vermeyen terminalde, Ctrl+ 'ya basın Z, bu işlem "(" iş ")" duraklatılır "ve konsol denetimini size geri döndürür. Ancak, bunun gedityanıt vermediğini farkedeceksiniz ve kullanamazsınız.

Ekstra : İsterseniz, komutu çalıştırabilirsiniz, komut için Durduruldujobs yazdığını göreceksiniz , bu yüzden kullanamazsınız.gedit

İşin başarılı bir şekilde arka planda çalışmasını sağlamak (yani gedittekrar yanıt vermek ) için komutu bg(anlam arka planı) çalıştırın. Artık kullanabileceksiniz geditve aynı zamanda kendinize de bir istemi olacak.

Ekstra : Eğer yürütmek eğer şimdi, jobs, bunu okumak edeceğiz göreceksiniz Running .

Tüm bunların en başından itibaren üstesinden gelebilirsiniz. geditTerminalden başlatırken &komutun sonuna bir tane ekleyin , bunun gibi bir şey gedit /path/to/file &. Bu gedit, arka planda başlangıçtan itibaren başlayacaktır ( Enterkonsol kontrolünü geri almak için birkaç kez basmanız gerekebilir ).

Ekstra : bu ek notları izliyorsanız, ikinci kez yaptığınızda jobs, bash'ın komutun &sonuna bir eklediğini görebilirsiniz gedit.

Bu sisteme alıştığınızda, terminali kapatırsanız, gedit'in bir onay iletişim kutusu olmadan da sonlanacağını fark edebilirsiniz. Bunun olmasını engellemek için disown, gedit işlemini terminalden ayıracak olan run komutunu döndürerek listeden çıkarınız jobs.


2
Ön planda çalışan bir süreci hemen arka plana çevirmenin bir yolu olmamam beni daima şaşırttı. Sen var bazen uygulanabilir olmadığı, önce onu durdurmak için.
13'te detly

@detly tekrar "Üstesinden gelebilirsin ..." bölümünü oku!
guntbert

@guntbert - Süreci zaten çalışıyorsa yardımcı
olmuyor

44

Sadece yaz:

gedit <filename-to-edit> &

Bu hemen komut istemini size geri verecektir.


5
Bu önemli bir unix deyimi ve bilmeye değer. Herhangi bir komut bu şekilde arka planda çalıştırılabilir. Açıkça etkileşimli olan araçların bu muamele ile karıştığı açıktır, ancak örneğin bubblesort war_and_peace.txt%, işinize devam ederken sıralayıcınızın başyapıtta (uzun, uzun bir süre) kranklanmasına izin verir (örneğin, hızlı destek uygulaması) ya da bir şey)
Jon Kiparsky

1
@JonKiparsky Eğlenceli bir örnek - konuyu ifade ediyor.
Joe,

25

nohupGUI'nin bir terminale bağlanmasını önlemek için kullanabilirsiniz :

nohup mupdf some.pdf &

Bu, başlattığınız terminali, program kapatılmadan kapatmanıza olanak sağlar.

Ayrıca, nohup komutunun stdoutve stderrçalıştırdığınız komutun bulunduğu bir dosya oluşturacağını da fark etmelisiniz . Bunu önlemek istiyorsanız, &>/dev/nullönce işaretini ekleyin &.

nohup mupdf some.pdf &>/dev/null &

4
"nohup" "telefonu kapatma" anlamına gelir. Bu, (fiziksel) terminallerin telefon hatları aracılığıyla düzenli olarak bağlandığı Unix'e kadar uzanır ve bu nedenle telefonu asarak bir terminali kapatırsınız.
MSalters

3
Ek bilgi: nohup komutu nohup.out, komuttan çıktı içeren bir dosya yaratacaktır . Hata mesajlarını görüntülemek istiyorsanız bu kullanışlıdır. Dosyanın oluşturulmasını istemiyorsanız, yeniden yönlendirmeyi aşağıdaki gibi ekleyin:nohup mupdf some.pdf &>/dev/null &
Paddy Landau

19

Ayrıca disownkomutu kullanabilirsiniz . Artık terminale eklemek istemediğiniz süreci başlattığınızda özellikle kullanışlıdır.

Doğru hatırlıyorsam temel prosedür şöyledir:

$ > firefox      #Oops
Ctrl + z         #Suspend the process
$ > bg           #Push the process to the background
$ > disown       #Detach most recent process started or stopped
$ > exit         #Terminal gone!

Uzaklaşmanın bashbelirli olduğunu unutmayın .

Bu blog yazısı her iki yöntemi de oldukça iyi açıklıyor.

İtibarsızlık sayfası


Bir kısayol:firefox & disown
Flimm

13

Kimden man gedit:

-b, --background
         Run gedit in the background.

Koşarsan Yani, geditile -bseçeneği, arka planda başlayacak:

gedit -b [FILE-NAME]

Ayrıca, daha sonra için bir takma ad oluşturabilirsiniz gedit -b( burada kalıcı takma adın nasıl oluşturulduğuna bakın ):

alias gedit='gedit -b'

Bundan sonra, gelecekte gedit [FILE-NAME]normal olarak kullanabilirsiniz ve arka planda başlayacaktır.


2
Yaygın komutları yeniden tanımlamak için takma ad kullanmak kötü bir fikirdir. Bu konuda stackexchange'te birçok iş parçacığı bulacaksınız. Farklı bir ada sahip bir takma ad kullanmak iyidir. Kısaca, mevcut komutları takma adlandırma, başka birinin kullanması durumunda (başka bir sorunu çözmenize yardımcı olmaya çalışırken)) makinenizde beklenmeyen davranışlar yaratır ve bu takma adları ve komutları olmayan başka bir sistemi kullanırken de aynı şeyi yapar. beklediğiniz gibi çalışma. Bunun için poster çocuklarından biri takma addır rm = 'rm -i'. Her zaman orada olmayan bir şeyi ikinci bir şansla silmeye alıştırır.
Joe,

10

Sadece yaz:

gedit FILENAME & disown

&Bash ile bir komutu sonlandırmak , bu komutu arka planda çalıştırır. Ancak, bu işlem hala terminale bağlı.

Olmadan disown, hatta düzenlenmiş bir dosyayı kaydetmek için size sormadan, kapanmaz terminali, gEdit kapatırsanız. disownarkaplan işlemini mevcut terminalden ayırır, böylece terminali kapatırsanız gedit normal şekilde çalışmaya devam eder. Yanlış olduğumu ortaya koyuyor, bash için durum böyle değil, ama zsh için de geçerli. Yaptıktan detachsonra kaçmaya ihtiyacınız var ctrl- zve bgyine de bash'te bile.

Sen Ankastre hakkında daha fazla bilgi bulabilirsiniz jobs, disownve &de metakarakterinden için man sayfasına bashkomutuManpage simgesi , "iş denetimi" etiketli özellikle bölümünde.


ile disownben terminali kapalı sonra açık gedit tutmak mümkün oldu. "Bash için durum böyle değil, zsh için durum böyle" hakkında
söylediklerinizi anlamadım

0

Bunun nedeni muhtemelen terminal aracılığıyla gedit açmış olmanız. Bunu yaptığınızda, GUI üzerinden başlatıldığında normalde gizli olan komut satırı çıktısını görürsünüz. Bunu düzeltmenin en iyi yolu yeni bir terminal penceresi açmak. Gedit kapandıktan sonra diğeri müsait olacak. Ayrıca, yukarıdaki kullanıcının önerdiği anahtarı da kullanabilirsiniz.


Yeni bir terminal penceresi, küçültülmüş olsa bile sadece masaüstünü tutar. Ve veya disown olmadan kullanımı çok daha basit ve daha temiz.
Joe,
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.