TR | Temel Linux Komutları – 1
Yazıda temel linux komutlarını ele alacağız. Komutların akılda kalabilmesi için komutları deneye deneye ilerlemenizi tavsiye ederim.
**Bu yazı 2 part halinde yayınlanacaktır.
Bazı komutların çıktılarının sorunsuz alınması için root yetkisiyle komutları denemeniz tavsiye edilir
Linux Nedir?
Linux veya GNU/Linux (telaffuz: Lin-uks); Linux çekirdeği ve çeşitli GNU araçları üzerine kurulmuş işletim sistemlerinin genel adıdır. Linux çekirdeği ve GNU araçları açık kaynak kodlu, özgür ve ücretsizdir. Kaynak kodları GNU Genel Kamu Lisansı çerçevesinde özgürce dağıtılabilir, değiştirilebilir ve kullanılabilir. Linux ismi ilk olarak Linus Torvalds tarafından yazılan ve 5 Ekim 1991’de duyurusu yapılan Linux çekirdeğinden gelmektedir.*
*Kaynak: Vikipedia
Shell (Kabuk)
Shell kullanıcıdan alınan komutları kernele iletir. Günümüzde genellikle bash kullanılmaktadır. Sistemimizdeki shell programını öğrenmek için;
echo $SHELL
Ortam Değişkenleri
Terminale girdiğimiz komutun çalıştırılabilir bir hizmet ise hangi dizinler altında aranacağını görmek için;
echo $PATH
Yardım Alma
Help
[komut] --help
Man
man [komut]
Dağıtım Adı Öğrenme
lsb_release -a
Sistemle İlgili Bilgi Alma
dmidecode
dmidecode --type [ ]
bios , system , baseboard , chassis , processor , memory , cache , connector , slot parametreleriyle sistem hakkında bilgi alabiliriz.
Donanım hakkında bilgi almak için;
lshw
Kernel Versiyonu Öğrenme
uname komutu sistem hakkında bilgi toplamak için kullanılır -v -n gibi parametrelerle kullanılabilir -a komutu ile tüm bilgileri görmek için kullanabiliriz.
uname -a
Disk Bölümlerini Görme
fdisk komutu disk yöneticisi aracını çalıştırmaktadır. Sisteme bağlı olan bölümleri görüntülemek için -l parametresi ile birlikte kullanılabilir.
fdisk -l
Uptime
uptime komutu bize sistemin aktif olarak çalışmakta olduğu süreyi kaç kullanıcının giriş yaptığını ve sistem saatini gösterir.
uptime
Kullanılan Bellek Miktarı
free komutu bize sistemin ram durumunu göstermektedir. default olarak kilobayt cinsinden değerleri vermektedir. -m ile megabayt, -b ile byte ve -g ile gigabayt cinsinden değerleri vermektedir.
free -m
Takvim
cal
Dizinler Arasında Gezme ve İçeriğini Listeleme
Dizine Gitmek İçin;
cd /[dizin]
Üst dizine geçmek içincd .. komutu kullanılabilir yada dizinler arasında geçiş yapmak için cd – komutu kullanılır.
İçeriği Listeleme
ls
-l ve -la ekleyerek dosya ve dizinler hakkında daha detaylı bilgiye ulaşabilirsiniz.(İzinler, değiştirilme tarihi, değiştirilme saati, dosya boyutu)
Bulunulan Dizini Öğrenme
pwd
Gizli Dosya ve Dizinleri Görüntülemek İçin;
ctrl + h
gizli dosya veya dizin yaratmak için adını .[dizin_adı] şeklinde yapabiliriz.
Terminalde Pratik Metodlar
- Konsolu temizlemek için clear komutu yerine ctrl+L kombinasyonu kullanılabilir.
- Baş tarafında hata yaptığımız komutun başına dönmek için ctrl+U komutundan yardım alınabilir.
- Çalışan komutu durdurmak için ctrl + C komutundan yardım alabiliriz.
- Terminalden çıkmak için exit komutu yada ctrl +D kombinasyonunu kullanabiliriz.
History
Terminalde daha önce kullandığımız komutları listelemek için;
history
- Son kullandığımız komutu tekrar kullanmak için !! yazarak aynı komutu tekrar kullanabiliriz.
- Kullandığımız komutlar dan örneğin c ile başlayan komutu kullanmak için !c komutunu kullanabiliriz.
- Hatırlayamadığımız komut için örneğin !ca komutundan yardım alabiliriz.
- Kullandığımız komutların kaç tanesinin saklandığını öğrenmek için echo !HISTSIZE komutunu kullanırız. Saklanan komut sayısını değiştirmek için .bashrc dosyasının içinde HISTSIZE değişkenini düzenleyerek değiştirebiliriz.
- Kullandığımız komutlarını kaydını silmek için .bash_history dosyasını silebiliriz veya history -c komutu ile geçmişi temizleyebiliriz.
Terminalde Birden Fazla Komut Kullanma
[komut] && [komut]
[komut] ; [komut]
[komut] || [komut] gibi kullanıp || parametresinden yararlanırsak ilk komut başarısız olursa ikici komutu çalıştırır.
Komut Tamamlama
- Terminalde bir komutun ilk bir kaç harfini yazıp tab tuşuna basarsak komut tamamlanacaktır. tab tuşuna iki kere basarsak girdiğimiz harflerle başlıyan komutlar listelenecektir.
Sistemi Açma-Kapatma-Yeniden Başlatma
- 0: Hiçbir servisin çalışmadığı seviye
- 1:Tek kullanıcı modu, ağ servisleri çalışmaz
- 2:Ağ desteği olmadan çoklu kullanıcı modu
- 3:Ağ destekli çok amaçlı çalışma seviyesi
- 4:Kullanılmaz, kullanıcı tarafından özel olarak tanımlanabilir
- 5:Grafiksel kullanıcı arayüzünün çalıştığı seviye
- 6: Sistemi yeniden başlatma seviyesi
Seviyeler Arası Geçiş İçin
init [seviye]
Sistemi Beklemeden Kapatma
shutdown -h now
Belli Bir Süre Sonra Kapatma
shutdown -h now+[süre]
shutdown komutunu parametre eklemeden kullandığımızda sistem ini1 yani Single User moda geçicektir.
Sistemi Yeniden Başlatma
reboot
Yazılımların Çalışma Seviyelerinin Kontrolü
- Sistemde hangi seviyede hangi scriptlerin çalıştığını kontrol etmek için /etc dizini altında rcx.d dosyası içerisinde bulunur. x çalışma seviyesini temsil etmektedir. rc5.d servisin 5. seviyede çalıştığını göstermektedir.
5. seviyede çalışan servisleri incelersek;
K harfiyle başlayan servisler o seviyede durudulacak servisleri göstermektedir. S ile başlayan servisler o seviyede başlatılacak olan servisleri göstermektedir.
Sanal Konsollar
- Linux da çalışırken ctrl+alt+f1….f6 ya kadar 6 sanal konsolda çalışabilirsiniz. Konsollar arası geçiş için ctrl+alt tulşarına basak hangi sekmeye gideceksek onu seçebiliriz, tekrar grafik arayüzüne dönmek için ctrl+alt+f7 tuşlarına basarak dönebilirsiniz.
Servislerin Başlatılması ve Durdurulması
Sistemimizle alakalı servisler betikler /etc/init.d altında bulunmaktadır.
Servis Durumu Sorgulama
/etc/init.d/[servis] status
service [servis_Adı] status
Servislerin Başlatılması
/etc/init.d/[servis] start
service [servis_Adı] start
Servislerin Sonlandırılması
/etc/init.d/[servis] stop
service [servis_Adı] stop
Servislerin Yeniden Başlatılması
/etc/init.d/[servis] restart
service [servis_Adı] restart
- Debian tabanlı sistemler de server programlarını tasksel komutu ile grafik arayüze geçerek istediğimiz servisleri buradan kurabiliriz.
Süreçler
Süreç sistemdeki çalışır durumdaki programlara denir. ps komutu ile süreçleri görüntüleye biliriz.
ps –help a komutu ile kullanılabilecek parametreleri inceleyebiliriz.
Süreçlerin Listelenmesi
ps aux
ps alx
- Her sürecin PID (process id) denilen bir iletişim numarası vardır. Servisler PID numarası üzerinden haberleşir.
- top komutu ile tüm süreçleri anlık olarak takip etmemizi sağlar.
- Süreçleri pstree komutu ile ağaç yapısı halinde inceleyebiliriz.
Süreç Sonlandırma
- Süreçlerin pid numarasını öğrendikten sonra süreci sonlandırmak için;
kill [pid_numarası]
- Birden fazla süreçle çalışan servisleri sonlandırmak için;
kill -9 [pid_numarası]
killall [servis_adı]
Servis PID Numarası Öğrenme
ps aux | grep [servis_adı]
pgrep [servis_adı]
Root Kullanıcısına Ait Süreçleri Listelemek İçin;
pgrep -lu root
Kullanıcı İşlemleri
passwd
- Linux sistemlerde kullanıcılarla ilgili bilgiler yer alır.
/etc/passwd
shadow
- Linux sistemlerde kullanıcı parolaları şifrelenmiş halde bulunur.
/etc/shadow
Örnek shadow dosyasını incelersek;
root:$6$ttZw7OIi$LjmBdapfyNA6kKrXnAcF1xkgikQCGcLN3hsNrwZmEZkVNLPmoRqD9KYF5TngV60FAlecJine.Qv5v28uO2p8z.:15944:0:99999 :7:::
- İlk iki $ işareti arası hangi hashleme algoritmasının kullanıldığını gösterir.
- 1 ise MD5
- 2 ise BlowFish
- 5 ise SHA256
- 6 ise SHA512
6
- İkinci ve üçüncü $ işaretleri arası salt değeridir(hashil değer)
ttZw7OIi
- Son kalan kısımda parolanın şifrelenmiş değeridir.
LjmBdapfyNA6kKrXnAcF1xkgikQCGcLN3hsNrwZmEZkVNLPmoRqD9KYF5TngV60FAlecJine.Qv5v28uO2p8z.
issue
Kullanıcılar sisteme giriş yaparken issue dosyasındaki mesaj ekranda gözükür bunu değiştirebiliriz.
/etc/issue
login
- Sistem açılırken Kullanıcı Adı girildikten sonra login betiği çalıştırılır ve parola istenir. Parola doğru ise kullanıcıya ait kabuk çalıştırılır.
man login
komutu ile login e ait dokümantasyonu görüntüleyebilirsiniz.
- Her loginden sonra gösterilecek metin alltaki dizinde bulunur bunu isteğimize göre değiştirebiliriz.
/etc/motd
- Sisteme giriş yapmış tüm kullanıcılar alttaki dizindeki dosyaya 2 lik sisteme göre kaydedilir. Bu dosya sistem her yeniden başlatıldığında sıfırlanır.
/var/run/utmp
- Bu dosyayı normal text editörleriyle okuyamayacağımız için strings komutuyla dosyayı açabiliriz.
strings /var/run/utmp
Sisteme Kullanıcı Ekleme
adduser [kullanıcı_adı]
useradd [kullanıcı_adı]
Kullanıcı Şifresi Değiştirme
passwd [kullanıcı_adı]
Kullanıcı Hesabı Kitleme
usermod -L [kullanıcı_adı]
Kullanıcı Hesabı Aktif Hale Getirme
usermod -U [kullanıcı_adı]
Sisteme Bağlı Kullanıcıları Listeleme
who
Sisteme Giriş Yapılan Kullanıcı Adı Öğrenme
whoami
Kullanıcı Parola Geçerlilik Süresi Değiştirme
chage -E [yıl/ay/gün_formatında_tarih] [kullanıcı_adı]
Kullanıcı Yetkileriyle İşlem Yapma
su [kullanıcı adı]
Host Adı Öğrenme
/etc/hostname
Kullanıcı Hesabından Çıkış
exit
Root Yetkisine Yükselme
su root
Kullanıcı Hesabı Silme
userdel
deluser
userdel -r [kulanıcı_adı]
Yazının devamı için: TR | Temel Linux Komutları – 2