Ctrl + C gnome terminalinde çalışmıyor


9

Linux sunucumda Ctrl+ Cçalışmıyor gibi görünüyor ve çalışmasını sağlamak için nasıl ilerleyeceğimi bilmiyorum. 4.1.5 (1) bash ile Ubuntu 10.04 kullanıyorum ve Gnome terminalinde çalışıyorum.

Bu komut dosyası çalışırken Ctrl+ düğmesine Cbastığımda, çıkmasına neden olmadı.

#!/bin/bash
for i in `seq 500`
do
        ps -e > /dev/null
        echo $i
done

2
“Çalışmıyor” ile ne demek istiyorsun? Bu tuşa nereden bastın, ne olmasını bekledin, gerçekte ne oldu?
Gilles 'SO- kötü olmayı kes'

Belki de Ctrl-C'nin neden işe yaramadığını düşündüğünüze dair daha fazla ayrıntı açıklayabilirsiniz - kesilemeyen bazı çekirdek düzeyinde şeyler vardır - örneğin (başarısız) bir NFS cevabını bekleyen bir işlem genellikle kesintiye uğrayamaz
Soren

Cevabımı güncelledim. Temel olarak Ctrl C bir senaryoyu sonlandırmadı, bence Ctrl C yapmakla sona erdirilmesi gerektiğini düşünüyorum
Ankur Agarwal

Mu stty -açıktı içeriyor intr=^C? Senaryoyu nasıl çalıştırıyorsunuz?
Stéphane Gimenez

1
Lütfen soruları çapraz göndermeyin. Sormak istediğiniz siteyi seçin ve siteye uyarlayın.
nhinkle

Yanıtlar:


9

Bunu yapmaya çalış

$ stty sane

ve sorunun çözülüp çözülmediğine bakın, ayrıca izinsiz girişin

$ stty -a

Bunun intr^ C'den farklı bir şeye ayarlandığını görürseniz, yazarak da düzeltebilirsiniz.

$ stty intr ^v^c

Bu yardımcı olmadı. stty -a "intr = ^ C" yi (tırnak işaretleri olmadan) gösterir
Ankur Agarwal

^ Karakterini yazmam veya Ctrl tuşuna basmam gerekiyor mu?
Ankur Agarwal

sadece Ctrl tuşuna basmanız yeterlidir (^ Ctrl- için kısadır)
Soren

Belki de Ctrl-C'nin neden işe yaramadığını düşündüğünüze dair daha fazla ayrıntı açıklayabilirsiniz - kesilemeyen bazı çekirdek düzeyinde şeyler vardır - örneğin (başarısız) bir NFS cevabını bekleyen bir işlem genellikle kesintiye uğrayamaz
Soren

Soruma daha fazla ayrıntı ekledim. Temelde Ctrl C, çalıştırdığım bir komut dosyasını sonlandırmıyor, Ctrl C'de sonlandırılmasını bekliyorum
Ankur Agarwal

6

Bozuk bir gnome-terminalyapılandırmaya benzediğinden , aşağıdakileri kullanarak varsayılanları geri yüklemesine izin vermeyi deneyebilirsiniz.

mv .gconf/apps/gnome-terminal{,-BROKEN}

(Efektleri görmek için terminali yeniden başlatmanız gerekir.)

Bundan sonra her şey yolundaysa, bir rm -rf .gconf/apps/gnome-terminal-BROKEN.


4

Varsayılan ayarlar , Windows'un kopyala ve yapıştır davranışını taklit etmek gnome-terminaliçin Ctrl-Cve Ctrl-Vtuşlarını bağlar . Bir hata değil bir özellik olması gerekiyordu :)

Bunu devre dışı bırakmak için, gnome terminalinde,

  1. şu yöne rotayı ayarla Menubar -> Edit -> Keyboard Shortcuts
  2. görene kadar Kısayol Tuşu sütunundaki Ctrl+ işaretini tıklayın .CNew Accelerator...
  3. tuş bağlantısını devre dışı bırakmak için Backspaceveya Deletetuşuna basın
  4. Disabledşimdi Kısayol Tuşu sütununda göründüğünü doğrulayın .

Bu değişiklik olacağını unutmayın derhal yürürlüğe üzerinde tüm gnome-terminaller.

İpucu: gnome-terminal --show-menubargnome terminalini gösterilmiyorsa Menubar'ı göstermeye zorlar.


3

Burada bir tahmin alacağım: Ctrl-C işe yarıyor, ancak ps -ekomut dosyasının geri kalanına göre çalışması uzun sürdüğü için, yaptığınız tek şey "ps" işlemine SIGINT göndermektir. "ps" çıkar ve komut dosyası, döngü kodu üzerinden başka bir yinelemeyle alır.

Bir Do sleep 10it çalışırken, sizin bash penceresinde, kontrol-C o. Bakın işe yarayıp yaramadığını. Varsa, orijinal komut dosyanızı çalıştırın ve kontrol-C'yi birkaç kez kontrol edin. Er ya da geç, şanslı olursunuz ve senaryoyu yorumlayan bash işlemi SIGINT'i alır.


Uyku 10'daki Ctrl C de çalışmaz.
Ankur Agarwal

2
Yani gnome terminali Ctrl C kullanarak çalışır ancak Ctrl c çalışmaz. Ctrl + Shift + c yaparsam uyku 10'u kesmek için çalışır. Ancak Ctrl + c yapmak işe yaramaz. Neden büyük / küçük harfe duyarlıdır.
Ankur Agarwal
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.