top of page

Temel bash Kabuk Komutları-4

  • Yazarın fotoğrafı: Huseyin Şahan
    Huseyin Şahan
  • 7 Mar
  • 6 dakikada okunur

Bu blog yazımızda Linux sistem yönetimi için kullanılan gelişmiş komutları ele alacağız.Lütfen sadece okumayın aynı zamanda sizlerde bu komutları uygulayın.


Programları Görüntüleme

Bazen Linux sistemleri ile çalışırken hangi programların çalıştığını öğrenmek veya bu programları durdurmak isteyebilirsiniz.Burada ilk olarak programları nasıl izleyebileceğimizi öğreneceğiz.Çok fazla bir detay sağlamaz ama basit ve parametresiz bir ps komutu ile başlayalım:

👉 darkside@debian:~$ ps

İşte komutumuzun çıktısı:


ree

Burada çalıştığımız terminal uygulamasınında bir uygulama olduğunu unutmayın ve şimdi çalıştırdığımız ps komutuda bir işlemdir.Gördüğünüz gibi her programın bir PID değeri var ve biz programları sonlandırmak istediğimizde bu PID değerlerini kullanarak yapacağız.Burada belirttiğimiz gibi çok fazla bir detay yok.Bu komut sadece geçerli kullanıcı yani darkside kullanıcısına ait işlemleri gösterecektir.Burada ps bu şekilde parametresiz kullanılması sadece geçerli terminal sekmesindeki işlemleri gösterecektir.Yalnız dikkat edin sadece parametresizken yada tüm işlemleri göstermek için parametre kullanmazsanız.


PS Komutu Parametre Türleri

ps komutu termianalde 3 farklı parametre türünü destekler bunlar:


  • Unix-style parametreler → Önünde tek tire (-) bulunur.Örneğin:

👉 root@debian:~# ps -e

  • BSD-style parametreler → Önünde tire (-) yoktur.Örneğin:

👉 root@debian:~# ps aux

  • GNU long parametreleri → Önünde çift tire (--) bulunur.

👉 root@debian:~# ps --forest

Burada endişelenmeyin.Yazının ilerleyen kısımlarında bu parametrelerin ne anlama geldiğini açıklayacağız.Siz sadece parametre türlerinin ne olduğuna bakın.


İşte incelemeniz için tüm parametre türleri için komut listeleri:



Unix Tarzı Parametreler

  • -A → Tüm işlemleri gösterir (aynı -e gibi).

  • -N → Belirtilen parametrelerin tersini gösterir.

  • -a → Oturum başlıkları ve terminali olmayan işlemler hariç tüm işlemleri gösterir.

  • -d → Oturum başlıkları hariç tüm işlemleri gösterir.

  • -e → Tüm işlemleri gösterir.

  • -C cmdlist → Belirtilen komut adlarını içeren işlemleri gösterir.

  • -G grplist → Belirtilen grup kimliklerine sahip işlemleri gösterir.

  • -U userlist → Belirtilen kullanıcı kimliklerine sahip işlemleri gösterir.

  • -g grplist → Belirtilen oturum veya grup kimliklerine sahip işlemleri gösterir.

  • -p pidlist → Belirtilen PID'lere sahip işlemleri gösterir.

  • -s sesslist → Belirtilen oturum kimliklerine sahip işlemleri gösterir.

  • -t ttylist → Belirtilen terminal kimliklerine sahip işlemleri gösterir.

  • -u userlist → Belirtilen kullanıcı kimliklerine sahip işlemleri gösterir.

  • -F → Ekstra detaylı bir çıktı kullanır.

  • -O format → Varsayılan sütunlarla birlikte belirli sütunları gösterir.

  • -M → İşlemle ilgili güvenlik bilgilerini gösterir.

  • -c → İşlem için ek zamanlayıcı bilgilerini gösterir.

  • -f → Tam formatlı bir listeleme yapar.

  • -j → İşlemlerle ilgili job bilgilerini gösterir.

  • -l → Uzun formatlı bir listeleme yapar.

  • -o format → Sadece belirli sütunları gösterir.

  • -y → İşlem bayraklarının görüntülenmesini engeller.

  • -Z → Güvenlik bağlamı bilgilerini gösterir.

  • -H → İşlemleri hiyerarşik olarak gösterir (ebeveyn/çocuk ilişkisini gösterir).

  • -n namelist → WCHAN sütununda gösterilecek değerleri belirler.

  • -w → Geniş çıktı formatını kullanır (sınırsız genişlikte çıktı).

  • -L → İş parçacıklarını (thread'leri) gösterir.

  • -V → ps komutunun sürümünü gösterir.


BSD Tarzı Parametreler

  • A → Tüm işlemleri gösterir.

  • a → Oturum başlıkları ve terminali olmayan işlemler hariç tüm işlemleri gösterir.

  • c → Komut adlarını olduğu gibi (argümanları olmadan) gösterir.

  • d → Oturum başlıklarını hariç tutarak tüm işlemleri gösterir.

  • e → İşlemlerin ortam değişkenlerini de gösterir.

  • f → İşlemleri hiyerarşik (ağaç şeklinde) gösterir.

  • j → İşlemlerle ilgili job bilgilerini gösterir.

  • l → Uzun formatlı bir listeleme yapar.

  • m → Bellek kullanımına dair bilgileri ekler.

  • o format → Sadece belirli sütunları gösterir.

  • p pidlist → Belirtilen PID’lere sahip işlemleri gösterir.

  • r → Yalnızca çalışan (running) durumundaki işlemleri gösterir.

  • s → Lider işlemleri (session leader) de içeren bir listeleme yapar.

  • t ttylist → Belirtilen terminal kimliklerine sahip işlemleri gösterir.

  • u → İşlemleri kullanıcıya göre görüntüler (etkili kullanıcı kimliği baz alınır).

  • v → İşlemlerin bellek kullanım detaylarını gösterir.

  • x → Terminali olmayan işlemleri de listeler.

  • y → Alternatif formatta çıktı üretir (Linux'ta -y genellikle CPU time flag’ini gizler).


GNU Long Parametreleri

  • --deselect → Belirtilen parametrelerin tersini gösterir (aynı -N gibi).

  • --all → Tüm işlemleri gösterir (aynı -A veya -e gibi).

  • --forest → İşlemleri ağaç şeklinde gösterir (aynı -H veya f gibi).

  • --format format → Belirtilen sütunları gösterir (aynı -o format gibi).

  • --group grplist → Belirtilen grup kimliklerine sahip işlemleri gösterir (aynı -G grplist gibi).

  • --user userlist → Belirtilen kullanıcı kimliklerine sahip işlemleri gösterir (aynı -U userlist gibi).

  • --pid pidlist → Belirtilen PID'lere sahip işlemleri gösterir (aynı -p pidlist gibi).

  • --ppid ppidlist → Belirtilen üst süreç kimliklerine sahip işlemleri gösterir.

  • --sid sesslist → Belirtilen oturum kimliklerine sahip işlemleri gösterir (aynı -s sesslist gibi).

  • --tty ttylist → Belirtilen terminal kimliklerine sahip işlemleri gösterir (aynı -t ttylist gibi).

  • --cols number → Çıktının sütun genişliğini belirler.

  • --rows number → Çıktının satır yüksekliğini belirler.

  • --headers → Sütun başlıklarını gösterir (varsayılan olarak açıktır).

  • --no-headers → Sütun başlıklarını gizler.

  • --sort key → İşlemleri belirli bir sütuna göre sıralar.

  • --help → Yardım bilgisini gösterir.

  • --version → ps komutunun sürümünü gösterir.

Buradaki komutların ne olduğunu ezberlemenize gerek yok.Gerekli olanlar ve işe yarar birkaç parametreyi bilseniz yeterli olacaktır.


Örneğin eğer sistemde çalışan tüm işlemleri görmek için:

👉 root@debian:~# ps -ef

Burada size detaylı bilgi sunacaktır.Peki bu komutun çıktısını ve çıktıların ne olduğuna bakalım:


ree

Buradaki değerlerin ne anlama geldiğine bakalım:

  • UID değeri işlemi başlatan kullanıcısını temsil eder.Buradaki gibi root yada 0 gibi değerler yazabilir.

  • PID değeri her işlemin benzersiz bir kimliğini temsil eder.

  • PPID ise (Parent Process ID) yani bu işlemi başlatan ebeveyn işlem ID'si.Yani burada PID değeri 2 olan işleme bakın ve PID değeri 3 olan işlemin başlatıcısı 2 olarak görünüyor.

  • C değeri CPU kullanımını gösterecektir.İşlemin toplam CPU zamanının bir yüzdesi.

  • STIME(Start Time) işlemin başlatıldığı zamanı gösterir.

  • TTY(Terminal Type) işlemin çalıştığı terminal ismi.

  • TIME işlemin çalıştırıldığı toplam CPU zamanı.

  • CMD ise işlemin yada programın adını verir.


Bu komut sistemdeki tüm işlemleri gösterir ve göstermekle kalmaz hangi işlemin hangisiyle ilişkili olduğunu(PPID değeri ile anlayabilirsiniz) gösterir.


Bu komut yeterli ve işe yarar sayıda bilgi gösteriyor.Ancak daha fazla bilgi almak isteyebilirsiniz.Bunun için aşağıdaki komutu kullanın:

👉 root@debian:~# ps -l

ree

Şimdi buradaki çıktılarında ne anlama geldiğine bakalım.Anlatım biraz uzun olduğu için şu listeyi açabilirsiniz.


ps -l Komutu Çıktı Değerleri

  • F işlemin bayrakları(Flags) anlamına gelir.Örneğin bayraklar bir işlemim uyku durumunda olup olmadığını veya sistemin hangi bölümlerinde çalıştığını gösterir.Şimdi burada yaygın bayrakları sizlere verelim:

        

  1. 1: Kişisel bayrak (user-specific flag).

  2. 2: Kernel mode (çekirdek modu).

  3. 4: Process has been stopped (işlem duraklatılmış).

  4. 8: Kernel thread (çekirdek iş parçacığı).

  5. 16: Parent process (ebeveyn işlem).


  • S  İşlemin durumunu belirtir. Bu, işlemin aktif mi, uyuyor mu, beklemede mi olduğunu gösterir.Yukarıdaki bayraklardan biri olabilir.S,R,T veya Z gibi.

    1. S: Sleeping (Uyuyor) – İşlem uyku modunda.

    2. R: Running (Çalışıyor) – İşlem aktif olarak işlemciyi kullanıyor.

    3. T: Stopped (Duraklatıldı) – İşlem bir sinyal (örneğin SIGSTOP) ile durduruldu.

    4. Z: Zombie (Ölü) – İşlem tamamlanmış, ancak ebeveyn işlemi hala sonucu bekliyor.


  • UID  İşlemi başlatan kullanıcının kullanıcı ID'sini gösterir. Bu, işlemi hangi kullanıcının başlattığını belirler.

  • İşlemin kimliği (Process ID). Her işlem benzersiz bir PID'ye sahiptir.

  • PPID Ebeveyn işlem kimliği (Parent Process ID). Bir işlem başlatıldığında, o işlemi başlatan bir ebeveyn işlem de vardır. PPID, bu ebeveyn işlemin PID'sini gösterir.

  • C CPU kullanım oranı. İşlem tarafından kullanılan CPU kaynaklarının yüzdeyi oranını gösterir.

  • PRI İşlemin öncelik seviyesi (Priority). İşlemin işlemciyi ne kadar öncelikli kullanacağına karar veren bir değerdir. Bu değeri sistem ayarları ve işlem türü etkiler.

  • NI İşlemin nice değeri (Nice value). Bu, işlemin önceliğini etkileyen bir değerdir. Negatif bir değer, işlem için daha yüksek öncelik anlamına gelirken, pozitif değerler önceliği düşürür.Burada 0 normal demektir.

  • ADDR İşlemin bellekteki adresi. Bu, işlemin bellekte bulunduğu yeri belirtir.

  • SZ İşlemin bellekte kapladığı sayfa sayısı (Memory size in pages). Bu, işlem için ayrılmış olan bellek miktarını ifade eder.

  • WCHAN İşlemin beklediği kaynak (Wait Channel). Bu sütun, bir işlem bekliyorsa, hangi kaynak için beklediğini belirtir.

  • TTY İşlemin çalıştığı terminalin adı. İşlem, hangi terminalde çalışıyorsa o terminalin adı burada belirtilir.

  • TIME İşlemin kullandığı toplam CPU süresi. Bu, işlemin ne kadar CPU süresi harcadığını gösterir.

  • CMD İşlemin çalıştırdığı komut veya programın adı. Hangi program veya komut çalışıyorsa o burada görüntülenir.


Burada başka bir işe ayrar komutumuz olan:

👉 root@debian:~# ps --forest

Komutunu kullanabiliriz.Bu komutun çıktısı hangi işlemelrin birbirine bağlı olduğunu ağaç yapısını kullanarak gösterecektir.



ree

Burada görüldüğü gibi bash çalıştığımız termianal uygulamasını temisl ediyor.ps komutu ise bu bash programı altında çalışmış.root olarak terminali kullandığım için su komutunun altında çalışıyor terminal.Eğer tüm komutları görmek isterseniz:

👉 root@debian:~# ps -ef --forest

Eğer yine tüm komutları görüntülemek istiyorsanız:

👉 root@debian:~# ps aux

gibi komutları kullanabilirsiniz.Eğer bir işlemi bulmak istiyorsanız pipe ile grep kullanarak değeri filtreleyebilirsiniz.


Ancak ps işlemi gerçek zamanlı olarak çalışan işlemleri göstermez.Bunu yerine belirli bir noktada işlemleri gösterir.Bunun için daha iyi bir komut kullanacağız.


İşlemleri Gerçek Zamanlı Görüntüleme

ps komutu gerçek zamanlı işlemleri göstermez.Bunun yerine top komutunu kullanın.İşte örnek:

👉 root@debian:~# top

Bu komut size gerçek zamanlı işlemleri gösterecektir.


İşlemleri Durdurma

Linux işletim sistemi, işlemler arasında sinyallerle iletişim kurar. Bu sinyaller, bir işlemi durdurma, devam ettirme veya başka işlemler için sinyal gönderme amacıyla kullanılır. Her sinyalin belirli bir anlamı ve etkisi vardır.

  • HUP (1): Çıkma sinyali. Genellikle bir işlem yeniden başlatılmak istendiğinde kullanılır.

  • INT (2): Kesme sinyali. Genellikle işlemi sonlandırmak için kullanılır (Ctrl+C ile gönderilir).

  • QUIT (3): Çıkma sinyali. Çoğu zaman bir işlem duraklatılıp hata durumu verir.

  • KILL (9): Zorla sonlandırma sinyali. İşlemi anında sonlandırır ve işlem buna tepki vermez.

  • SEGV (11): Bellek ihlali (segment violation) sinyali. İşlem yanlış bellek adreslerine erişmeye çalıştığında alınır.

  • TERM (15): Sonlandırma sinyali. İşleme düzgün bir şekilde sonlanması için sinyal gönderilir, ancak işlem bunu reddedebilir.

  • STOP (17): Durdurma sinyali. İşlem duraklatılır, ancak sonlanmaz.

  • TSTP (18): Duraklatma veya "pause" sinyali. İşlem arka planda çalışmaya devam eder, ancak geçici olarak duraklatılır.

  • CONT (19): Devam ettirme sinyali. Bir işlem, STOP veya TSTP sinyaliyle duraklatıldığında, bu sinyal ile tekrar çalışmaya başlar.

Bu sinayller kill komutunda parametre olarak kullanacağınız sayı değerleridir.Bunların bazıları hakkında örnek verelim:


Normalde kill komutu:

👉 kill <PID>

Şeklinde kullanılır.Örneğin işlem PID'si 5068 olsun bu işlemi zorla durdurmak için:

👉 root@debian:~# kill -9 5068

Veya işlemi düzgünce sonlandırmak isterseniz:

👉 root@debian:~# kill -15 5068

Yukarıda verdiğimiz listeden ihtiyacınız olanını kullanabilirsiniz.Ancak kiil komutu ile sinayl gönderebilmeniz için ya işlemin sahibi olmanız yada root kulanıcısı olmanız gereklidir.


Parametreyi sadece -9 gibi vermenize gerek yok şu şekilde de string olarakda verilebilir:

👉 root@debian:~# kill -s KILL 5140

ya da:

👉 root@debian:~# kill -s TERM 5140

gibi.


Ancak bazen birden fazla işlemi öldürmek isteyebilirsiniz.Örneğin tüm http işlemlerini yok etmek için killall komutunu kullanabilirsiniz:

👉 root@debian:~# killall http*


bu blog yazımız artık bitirelim yazı daha fazla uzamasın.


Bu blog yazımızda sistem üzerinde nasıl uygulama veya programları inceleyebilirsiniz bunları ele aldık işe yarar komutları size sunduk.Eğer bu komutlar haricinde parametreler kullanmak isterseniz bunlarıda açılır liste olarak verdik.


Hata olduğunu düşündüğünüz bir yeri lütfen yorumlar kısmında bildirin.Görüşmek üzere...

Comments


bottom of page