Linux Komut Satırı: DevOps ve Yöneticiler için En Önemli 10 Komut

  • Konuyu Başlatan Konuyu Başlatan buraktt
  • Başlangıç tarihi Başlangıç tarihi

buraktt

Kayıtlı Kullanıcı
Mesajlar
50
Tepkime puanı
98
Puanları
20
Linux Komut Satırı DevOps ve Yöneticiler için En Önemli 10 Komut.webp


Dosya gezinmesinden ağ tanılamaya kadar her BT profesyonelinin bilmesi gereken komutların bir dökümü aşağıdadır.

Linux ile çalışmak, sistemin gücüne erişim sağlayan arayüz olan CLI'yi kaçınılmaz olarak gerektirir. Sunucu yönetimi, performans izleme ve altyapı güvenliği için olmazsa olmaz olan en sık kullanılan komutların bir listesini derledik.

Komutlar, farklı disiplinlerdeki uzmanlar tarafından kullanım sıklıklarına göre seçilmiştir; ancak öncelikli odak noktası, BT profesyonellerinin performans izleme ve altyapı yönetimi araç setinin ayrılmaz bir parçası haline geldikleri için sorun teşhisi ve etkili yönetim sağlayan komutlardır. Bu komutların sık kullanımı, günlük işlemleri basitleştirir ve çoğu idari eylemin temelini oluşturur.
O halde gelin en önemli on komut bloğuna ve bunlar için sıkça kullanılan seçeneklere bakalım.

İlk komut bloğu dizinlerle çalışmayı kapsar (cd, ls). ls ve cd komutları dizinlerin içeriğini görüntülemek ve dizinlerde gezinmek için kullanılır.​

cd komutu, Linux dosya yapısında gezinmeye yardımcı olur ve mutlak (cd /etc/network/) ve göreli (cd ../etc/network/) yolları destekler. Özel karakterler argüman olarak kullanılabilir: ana dizine gitmek için cd ~ veya kullanıcıyı önceki çalışma dizinine döndürmek için cd.
ls komutu, gizli dosyalar ve ek bilgiler dahil olmak üzere dizinlerin içeriklerini görüntülemenize olanak tanır: ls -lah /home/user1/, burada:
  • -l: ayrıntılı çıktı modu (izinler, sahip, dosya boyutu);
  • -a: gizli dosyaları göster;
  • -h: Dosya boyutlarını kullanıcı dostu bir biçimde (KB, MB, GB) görüntüler. Bu seçenek, çeşitli komutlarda bu değerde sıklıkla kullanılır.

İkinci komut bloğu dosya ve dizinlerle çalışmak için tasarlanmıştır (touch, mkdir, cp, rm).​

Touch komutu başlangıçta dosya zaman damgalarını değiştirmek için tasarlanmıştı, ancak var olmayan bir dosyanın adıyla belirtilirse, oluşturulur. Bu "yan etki" o kadar yaygındır ki, birçok kullanıcı komutun gerçek amacının farkında değildir. Yani, touch file1 komutu, geçerli dizinde file1 adında yeni ve boş bir dosya oluşturur. Yeni bir dizin oluşturmak için, benzer bir sözdizimine sahip ancak ilginç bir -p seçeneği olan mkdir komutunu kullanın; bu seçenek, birden fazla iç içe dizin oluşturmanıza olanak tanır: mkdir -p dizin1/dizin2/dizin3.
cp ve rm komutları, dosya nesnelerini kopyalamak ve silmek için kullanılır. Örneğin, mydir1 dizinini ve tüm içeriğini mydir2 dizinine kopyalamak için şu komutu girmelisiniz: cp -rv mydir1 mydir2, mydir3 dizinini ve tüm içeriğini silmek için ise şu komutu kullanabilirsiniz: rm -rf mydir3. Her iki komutun da temel seçenekleri şunlardır:
  • -f: onay almadan mevcut dosyaların üzerine yazmaya veya silmeye zorla (zorla);
  • -r: Dizinleri ve içeriklerini kopyala veya sil (yinelemeli).
  • -v: dosyaların kopyalanması veya silinmesinin ilerlemesini göster (ayrıntılı).

Üçüncü komut bloğu metin dosyalarının (cat, less, head, tail) içeriğini görüntülemek için kullanılır.​

  • cat: tüm dosyayı görüntüler (büyük dosyalar için önerilmez çünkü kaydırma işlevi yoktur);
  • daha az: etkileşimli sayfalama (yukarı ve aşağı kaydırabilirsiniz) ve metin araması sağlar;
  • head ve tail: Dosyanın sırasıyla ilk ve son 10 satırını çıktı olarak verir.
tail komutunun, dosya değişikliklerini gerçek zamanlı olarak izlemenize olanak tanıyan, olay günlüklerini görüntülemek için çok kullanışlı olan özel bir -f seçeneği vardır: tail -f /var/log/syslog.

Dördüncü komut bloğu dosya düzenlemeyle ilgilidir.​

Birçok metin düzenleyici mevcut, ancak en basit ve en işlevsel olanı, herhangi bir metin belgesinde hızlı ve kolay bir şekilde değişiklik yapmanızı sağlayan nano'dur. Değişikliklerinizi kaydetmek için ctrl+o klavye kısayolunu hatırlamanız ve düzenleyiciden çıkmak için ctrl+x tuşlarını kullanmanız yeterlidir.
Vi/vim en popüler ve özellik açısından zengin düzenleyici olarak kabul edilir, ancak çeşitli çalışma modları ve çok sayıda klavye kısayolu içerdiğinden biraz kullanıcı deneyimi gerektirir. Düzenleme moduna girmek için a veya i tuşlarına basın. Düzenleyiciden çıkmak da zordur. Bunu yapmak için esc tuşuna basın ve ardından :wq (değişiklikleri kaydedip çıkmak için) veya :q! (düzenleyiciden herhangi bir değişiklik yapmadan çıkmak için) yazın.

Vi/vim editörü tüm Linux dağıtımlarında bulunur ve işlevselliği o kadar zengindir ki, bu konuda kitaplar yayınlanmakta ve sürekli olarak yeniden basılmaktadır (bkz. Arnold Robbins, Elbert Hannah ve Linda Lamb tarafından yazılan "Vi ve vim editörlerini öğrenmek" (7. Baskı). O'Reilly Media tarafından 2008'de yayınlanmıştır).

Düzenleme sürecini otomatikleştiren programlar özel olarak anılmayı hak ediyor. İşte yapılandırma dosyalarındaki belirli parametreleri toplu olarak değiştirmenin bir örneği. Diyelim ki, Suricata saldırı önleme sisteminin "alert" yanıtını "drop" ile değiştirmemiz gerekiyor. Bu yanıt, imza dosyasındaki bir satırın başında bulunabilir: sed -i 's/^alert/drop/' /var/lib/suricata/rules/suricata.rules.

Uyarıdan (^) önceki şapka işaretine dikkat edin: Bu, dizenin başlangıcını seçecektir. Kelime imzanın ortasında veya sonunda yer alıyorsa, herhangi bir değiştirme yapılmayacaktır.

Sed komutu sistem yöneticileri arasında da oldukça popülerdir ve awk ile birlikte işlevselliğini açıklayan ayrı bir kitap çıkarmıştır (bkz. "sed & awk" (2. Baskı) Dale Dougherty, Arnold Robbins. O'Reilly Media tarafından 1997'de yayınlanmıştır).

Beşinci komut bloğu bir dosyada ve çeşitli depolama aygıtlarında arama yapmak için tasarlanmıştır.​

Bu amaçla, yukarıda belirtildiği gibi, açık bir belgede less kullanabilirsiniz; ancak dosyaları açmadan önce metin aramanız gerekiyorsa, grep komutu idealdir. Örneğin, günlükte "error" kelimesini içeren tüm satırları büyük/küçük harf ayrımı gözetmeksizin görüntülemek için şu kombinasyonu kullanabilirsiniz: grep -i error /var/log/syslog. --color seçeneği, eşleşmeleri kırmızıyla vurgulayacaktır.
Bir başka ilginç örnek: Squid proxy sunucusu yapılandırma dosyasında çok sayıda satır var ve bunların çoğu yorum ve yapılandırma örneği (# ile işaretli). Örneğin, Debian 12 deposunda, 5.7-2 sürümüne ait yapılandırma dosyası 9155 satır içeriyor. Peki bu binlerce satır arasında çalışan bir yapılandırmayı nasıl bulabilirsiniz?
grep kullanarak Squid yapılandırma dosyasındaki tüm yorum satırı olmayan satırları görüntülemek için -v seçeneğini kullanın. Bu, belirtilen normal ifadeyle EŞLEŞMEYEN, yani # ile başlamayan satırları gösterecektir: grep -v '^#' /etc/squid/squid.conf. Bu, yapılandırma dosyasındaki 9155 satırdan 32'sinin yorum satırı olmamasıyla sonuçlanacaktır.
Ayrıca, dosyaları çeşitli kriterlere göre aramak da çoğu zaman gereklidir ve bunun için genellikle ada, türe, değiştirilme tarihlerine ve diğer parametrelere göre arama yapabilen find komutu kullanılır.
Örneğin, find /var/log -name '*.log' -type f -mtime +30 komutu, 30 gün veya daha önce oluşturulmuş, adlarında log uzantısı bulunan tüm dosyaları bulur. Bu komut, bulunan dosyalar üzerinde toplu işlemler gerçekleştirmek için -exec parametresiyle birleştirilebilir.

Altıncı komut bloğu dosyaların arşivlenmesi, sıkıştırılması ve açılmasıyla ilgilidir.​

tar komutu dizinleri arşivlemek için kullanılır ve adı Tape ARchive'den gelir, çünkü başlangıçta dosyaları manyetik banda yazmak için tasarlanmıştır. Komutun temel seçenekleri şunlardır:
  • - c: yeni bir arşiv oluştur (create);
  • - f: arşiv dosyasını (dosyasını) belirtin;
  • - v: her dosyanın işlenme sürecini göster (ayrıntılı);
  • - z, j, J: sırasıyla gzip, bzip2, xz'yi sıkıştır;
  • - t: arşivin içeriğini listele (liste);
  • - x: dosyaları arşivden çıkar (extract).
Sonuç olarak, tar czvf backup1.tar.gz mydir1/ komutunu kullanarak mydir1 dizinindeki tüm dosyalardan backup1.tar.gz adlı bir arşiv oluşturabilir ve arşivin içeriğini geçerli dizine - tar xjf backup2.tar.bz2 - çıkarabilir ve arşivi açmadan içeriğini görüntüleyebilirsiniz - tar tf backup3.tar.xz.

Yedinci blok, süreçlerle çalışmaya yönelik komutları (ps, top, htop) içerir.​

Bu komutları kullanarak aktif işlemleri izleyebilir ve sistem yükünü teşhis edebilirsiniz.
ps komutu, işlem listesinin anlık görüntüsünü görüntüler. ps aux komutu, hizmetler (x) ve CPU ve bellek kullanımı ve diğer parametreler gibi ek bilgiler (u) dahil olmak üzere tam listeyi (a) görüntüler.

Linux'ta ayrıca tam teşekküllü görev yöneticileri de vardır: yük sırasına göre işlem listesini dinamik olarak güncelleyen top ve renk desteği ve daha rahat yönetimle top'un genişletilmiş versiyonu olan htop.
Bir diğer kullanışlı komut ise, işlemlere çeşitli sinyaller göndermek için kullanılabilen kill komutudur. Örneğin, SIGKILL (-9) sinyalinin kullanılması, sistemin herhangi bir kaynak temizleme prosedürünü yok sayarak işlemi derhal sonlandırmasını sağlar. İşlemin sorunsuz bir şekilde sonlandırılıp kaynaklarını serbest bırakmasına olanak tanıyan SIGTERM (-15) sinyalini kullanmak daha iyidir: kill -15 1340 (örnek işlem kimliği). Ancak bazen SIGTERM, askıda kalmış bir işlemi yönetemeyebilir ve bu durumda SIGKILL kullanılır.

Sekizinci komut bloğu (df, du ve free) bilgisayarın donanım kaynaklarını (disk alanı ve RAM) kontrol etmenizi sağlar.​

Her üç komut da dosya boyutlarını, bölümleri ve bellek boyutlarını okunabilir bir biçimde (örneğin KB, MB, GB) yazdırmak için -h seçeneğini destekler.
df komutu, bağlı tüm dosya sistemlerindeki kullanılabilir alan hakkında genel bilgileri görüntülemek için kullanılır. Örneğin, df -Th komutu, dosya sistemi türünü belirten gerekli bilgileri görüntüler. du komutu, dizinlerin ve tek tek dosyaların boyutunu hesaplamak için tasarlanmıştır. Örneğin, du -sh /home/user/ belirtilen dizinin toplam boyutunu görüntülerken, du -ah /var/log komutu da her dosya ve dizinin boyutunu verir.
Free komutu, kullanılabilir RAM'i ve bunun sistem tarafından nasıl tahsis edildiğini görüntülemek için kullanılır: free -h.

Dokuzuncu komut bloğu ağ tanılama amaçlıdır (ip, ping, ss, ssh).​

ip komutu, IP adresi ayarlarını, yönlendirme tablolarını ve ağ arayüzlerini yönetmek için kullanılır. En popüler tanılama parametreleri şunlardır: addr (a) tüm arayüzler ve IP adresleri hakkında bilgi görüntüler; route (r) yönlendirme tablosunu görüntüler; link (l) etkin ağ arayüzlerinin durumunu ve ayarlarını görüntüler. Burada faydalı seçenekler, önemli parametreleri farklı renklerle vurgulayan, bilgileri bir tabloda görüntüleyen ve yalnızca IPv4 adreslerini gösteren -c, -br ve -4'tür. Örneğin: ip -c -br -4 a . Ping komutu, uzak bir ana bilgisayara ICMP istekleri gönderir ve yanıt süresini ölçerek kullanılabilirliğini kontrol eder. Bilgisayarınızın internet bağlantısını, argümanı Google'ın genel DNS sunucusu adresi olan ping 8.8.8.8 girerek test edebilirsiniz, ss komutu, kullanımdan kaldırılan netstat komutunun yerini alır ve TCP/UDP bağlantı noktalarının durumu hakkında ayrıntılı bilgi sağlar. Örneğin, bir sunucuda ss -tulpn çalıştırıldığında, yönetici açık TCP (t) veya UDP (u) bağlantı noktalarının sayısını (n) ve bağlantılardan sorumlu işlemci kimliklerini (p) bulur. Ssh komutu, uzak sunuculara ve ağ ekipmanlarına güvenli bağlantılar sağlamak için kullanılır. Standart dışı bir sunucu portuna bağlanma örneği: ssh -p 2222 admin@siteadi.com.

Onuncu komut bloğu, sistemde kullanıcılar, gruplar, parolalar, sahiplik ve erişim hakları (sudo, groupadd, useradd, passwd, chmod, chown) ile güvenli çalışmayı sağlamaya ayrılmıştır.​

Sudo komutu, komutları süper kullanıcı (root) ayrıcalıklarıyla çalıştırmanıza olanak tanır. İzin listesi /etc/sudoers dosyasında saklanır. Örneğin, konteyner yönetim sistemini kurmak için apt komutunu root ayrıcalıklarıyla çalıştırmanız gerekir: sudo apt install docker.io. TCP/UDP port tarayıcısını kaldırmak için sudo apt remove nmap komutunu kullanmanız gerekir. Ayrıca, bilgisayarı kapatmak veya yeniden başlatmak için sırasıyla sudo poweroff ve sudo reboot komutlarını kullanmanız gerekir.

Bir kullanıcı grubu oluşturmak için groupadd komutunu kullanın. Örneğin, groupadd geliştiricileri ilgili grubu oluşturur ve useradd komutu yeni bir kullanıcı oluşturmak için kullanılabilir (kullanıcı için otomatik olarak bir ana dizin oluşturmak için -m seçeneğinin kullanılması önerilir). Örneğin, yeni dev1 kullanıcısını sudo, geliştiriciler gruplarına eklemeniz gerekir. Bunu yapmak için şu komutu girin: useradd -m -G sudo, geliştiriciler dev1. passwd komutu, kullanıcının parolasını değiştirmenize olanak tanır, örneğin: passwd dev1.

Bir kullanıcıyı veya grubu silmeniz veya düzenlemeniz gerekiyorsa sırasıyla userdel, usermod ve groupdel, groupmod komutlarını kullanmanız gerekir.
chmod komutu, dosya ve klasörlerin erişim izinlerini değiştirir. Temel izin modları şunlardır: okuma: r = 4; yazma: w = 2; yürütme: x = 1. İzinler, sayısal (her tür için değerlerin toplamı) veya sembolik [u (kullanıcı); g (grup); o (diğer); a (tümü); + (izin ekleme); - (izin kaldırma); = (tam izin değerini ayarlama)] biçimlerinde ayarlanır.
Örneğin: tam erişim haklarını sahibine (u) verin ve yalnızca okuma-yürütme izinlerini sahip gruba (g) ve diğer kullanıcılara (o) bırakın: chmod 755 file.txt; bir betiği yalnızca sahibi tarafından çalıştırılabilir yapın: chmod u+x script.sh.
chown komutu, bir dosya veya dizinin sahibini ve grup sahipliğini değiştirir. Örneğin, alice kullanıcısını ve devops grubunu dir1 dizinine atamak için chown alice:devops dir1 komutunu kullanın.

On popüler komut bloğundan oluşan bu liste, Linux kullanıcılarının kullanımına sunulan kapsamlı araç yelpazesinin yalnızca küçük bir kısmını temsil ediyor. Bu liste en sık kullanılan komutları içerse de, kapsamlı olmaktan uzak olduğunu anlamak önemlidir.
Komutların tüm yelpazesini daha derinlemesine anlamak için, Scott Granneman'ın "Linux Phrasebook" (2. Baskı) adlı kitabı gibi özel referans kitaplarına başvurmak (Addison Wesley tarafından 2015'te yayınlanmıştır) veya Rebrain platformunda sunulan Linux Basic ve Advanced gibi özel kurslara kaydolmak faydalı olacaktır. Bu programlar, pratik beceriler kazanmanıza ve Linux komut satırında güvenle gezinmenize olanak tanıyarak, profesyonel gelişim ve ilerlemeniz için yeni ufuklar açacaktır.
 

TechForum.TR Trend

TechFoumTR Blog Yazıları