Linux Komutları - 1
Linux Komutları - 1
Bu videoda linuxta komut satırını ve temel linux komutlarını , dosya sistem hiyerarşisini, metin editörlerini, kullanıcı yönetimini, ağ yapılandırmasını ve paket yönetiminin nasıl yapılacağı gibi konuları anlattım. Aşağıdaki lab videomda da bu komutları kullanarak bir lab çalışması yaptım. Komutlara ve açıklamalarına sayfanın aşağısından erişebilirsiniz. Lab çalışmalarında yer vermediğim File Hierarchy Standard kavramını da burada açıklayalım.
File Hierarchy Standard (FHS)
Linux ve Unix tabanlı işletim sistemlerinde dizinleri ve bu dizinlerin içeriklerinin belirlendiği standarttır.
/: Kök dizindir. Tüm dosya ve dizinler bu dizinin altındadır. (/root ile karıştırılmamalıdır)
/bin: Temel ve yaygın Linux komutlarının (ls,pwd,cat) çalıştırılabilir dosyaları bulunur.
/sbin: /bin dizini gibi çalıştırılabilir dosyalar bulunur. Farklı olarak buradaki komutlar
sistem yöneticileri tarafından kullanılırlar. (fdisk, iptables, useradd )
/etc: : Konfigürasyon dosyaları burada tutulur.
/dev: Sisteme bağlı cihazların dosyaları tutulur.
/proc: Sistemde çalışan iş parçacıkları (process) hakkında bilgileri içeren dosyalar tutulur.
Sistem kaynakları hakkında bilgilerin tutulduğu dosyalar da bulunur.
/var: İçeriğinin giderek artması beklenen dosyalar (özellikle log dosyaları) bu dizin altında
tutulur.
/tmp: Geçici dosyaların tutulduğu dizin.
/usr: İkinci seviye programlar yani kullanıcıların yükleyip kullandığı programlara ait
çalıştırılabilir dosyalar, kütüphaneler, dökümantasyonlar ve kaynak kodlar bu dizin
altında tutulur.
/home:: Sistemdeki tüm kullanıcıların kişisel dosyalarını sakladığı dizindir.
/boot: Sistem önyüklemesi (sistemin ayağa kalkması) için gerekli dosyaları barındırır.
/lib: /bin ve /sbin dizinleri altındaki programların ihtiyaç duydukları kütüphaneler bu
dizinler altında konumlanmıştır.
/opt: 3. parti yazılımlar bu dizin altına kurulur.
/mnt: Sistem yöneticilerinin çeşitli dosya sistemlerini bağladığı geçici dizindir.
/media: Çıkarılabilir cihazlar için geçici bağlantı (mount) dizinidir.
Lab - 1
Shell Komutları
#Sistemin çekirdek adını görüntüler.
1) uname
#Sistem hakkında tüm bilgileri gösterir. -a "all" anlamına gelir.
2) uname -a
#Geçerli tarihi gün-ay-yıl (örn. 10-06-25) formatında gösterir.
3) date +'%d-%m-%y'
#Tırnak içindeki metni ekrana yazdırır. $(...).
5) echo "Tarih ve Saat -> $(date '+%d-%m-%y %T')"
#lablar adında bir dizin oluşturur, onun içinde de lab-1 dizinini oluşturur.
6) mkdir -p lablar/lab-1
#Mevcut çalışma dizinini lablar/lab-1 dizinine değiştirir.
7) cd lablar/lab-1
# > işareti, çıktıyı belirtilen dosyaya yeni bir dosya oluşturarak veya dosyanın içeriğini tamamen silerek yönlendirir.
8) echo "Tarih ve Saat -> $(date +%d-%m-%y) $(date +%T)" > tarih.txt
#Dosyasının içeriğini terminalde görüntüler.
9) cat tarih.txt: tarih.txt
#test1.txt, test2.txt ve test3.txt adlarında üç adet boş dosya oluşturur.
10) touch test1.txt test2.txt test3.txt
#test ile başlayan tüm dosyaları uzun formatta listeler.
11) ls -l test*
#Mevcut dizindeki dosya sayısını ekrana yazdırır.
12) echo "Bu dizinde $(ls | wc -w) dosya bulunmaktadır"
#Mevcut çalışma dizininin tam yolunu görüntüler.
13) echo $PWD
Dosya Yönetimi Komutları
#lab-2 adında yeni bir dizin oluşturur, ardından hemen bu dizine geçer.
1) mkdir lab-2 && cd lab-2
#yeniDosya.txt adında boş bir dosya oluşturur.
2) touch yeniDosya.txt
#Adı "test" ile başlayan (test*) tüm dosya ve dizinleri arar.
3) find . -iname test*
#lab2.py adında boş bir Python dosyası oluşturur.
4) touch lab2.py
#lab2.py dosyasına işaret eden bir sembolik (yumuşak) bağlantı (-s) oluşturur ve bu bağlantıya lab2SoftLink.py adını verir. Sembolik bağlantılar, orijinal dosyanın bir kısayolu gibidir; orijinal dosya silinirse çalışmazlar.
5) ln -s lab2.py lab2SoftLink.py
#lab2.py dosyasına işaret eden bir sabit (hard) bağlantı oluşturur ve bu bağlantıya lab2HardLink.py adını verir. Sabit bağlantılar, orijinal dosyanın aynı veri bloklarına işaret eden farklı bir adı gibidir. Orijinal dosya silinse bile sabit bağlantı aracılığıyla verilere erişilebilir (verilerdeki tüm referanslar silinene kadar).
6) ln lab2.py lab2HardLink.py
#Mevcut dizinin içeriğini detaylı olarak listeler.
7) ls -l
#lab2.py dosyasını zorla siler. Bu noktada lab2SoftLink.py artık çalışmayacak, ancak lab2HardLink.py hala veriye erişebilecektir.
8) rm -f lab2.py
#Mevcut dizindeki tüm dosyaları ve dizinleri (*) lab2.tar.gz adında bir sıkıştırılmış arşiv dosyasına dönüştürür.
-c: Arşiv oluştur.
-z: Gzip sıkıştırması kullan.
-v: İşlemi ayrıntılı (verbose) göster.
-f: Arşiv dosyasını belirt.
9) tar -czvf lab2.tar.gz *:
#Bir üst dizinde (../) lab2TarDizini adında yeni bir dizin oluşturur.
10) mkdir ../lab2TarDizini
#lab2.tar.gz arşivinin içeriğini (-x) ../lab2TarDizini/ dizinine açar (-C).
-x: Arşivi çıkar.
11) tar -xzvf lab2.tar.gz -C ../lab2TarDizini/
#../lab2TarDizini dizininin içeriğini listeler. Bu, arşivden çıkarılan dosyaları görmenizi sağlar.
12) ls ../lab2TarDiziniKullanıcı ve Yetkilendirme Yönetimi Komutları
#Mevcut kullanıcının bilgilerini görüntüler.
1) id
#Bu komut, root kullanıcısına geçiş yapmanızı sağlar.
2) su
#user-2 adında yeni bir kullanıcı hesabı oluşturur.
-m: Kullanıcının ana dizinini (/home/user-2 gibi) oluşturur.
-s /bin/bash: Kullanıcının varsayılan kabuğunu bash olarak ayarlar.
3) useradd -m -s /bin/bash user-2
#user-2 kullanıcısı için bir parola oluşturur.
4) passwd user-2
#Sistemdeki kullanıcıları görüntüler (grep kullandığımız için sadece user-2).
5) cat /etc/passwd | grep user-2
#user-2 kullanıcısına geçiş yapar
6) su - user-2
#Mevcut kabuk oturumundan çıkar ve bir önceki kullanıcıya geri döner.
7) exit
#admins adında yeni bir grup oluşturur.
8) groupadd admins
#Sistemdeki grupları görüntüler (grep kullandığımız için sadece admins).
9) cat /etc/group | grep admins
#user-2 kullanıcısını admins grubuna ekler.
10) usermod -a -G admins user-2
#user-2 kullanıcısının dahil olduğu tüm grupları listeler.
11) groups user-2
#user-2 kullanıcısını admins grubundan çıkarır.
12) gpasswd -d user-2 admins
#user-2 kullanıcısını siler.
13) userdel user-2
#admins grubunu siler.
14) groupdel admins
#Dosyasının detaylı izinlerini görüntüler.
15) ls -l file04
#user’a execute izni ekler
16) chmod u+x file04
#Diğerler kullanıcıların read iznini kaldırır
17) chmod o-r file04
Ağ Bilgileri ve Yönetimi Komutları
#NetworkManager tarafından yönetilen ağ cihazlarının durumunu gösterir.
1) nmcli device status
#IP adresini gösterir.
2) ip a
#Sisteminizdeki tüm ağ donanımlarının detaylı bilgilerini gösterir.
3) lshw -C network
#Sisteminizin IP yönlendirme tablosunu görüntüler.
4) route -n
#Kullanıcı arayüzü üzerinden ayarlama yapmamızı sağlar.
5) nmtui
#NetworkManager tarafından yönetilen tüm ağ bağlantılarını (profiles) listeler.
6) nmcli connection show
#Sisteminizdeki aktif ağ bağlantılarını ve dinleme portlarını gösterir.
7) netstat -tulnp:
#netstat komutunun daha modern ve hızlı bir alternatifidir.
8) ss -tulp: Aynı şekilde sisteminizdeki aktif ağ bağlantılarını ve dinleme portlarını gösterir.Paket Yönetimi Komutları
#chromium anahtar kelimesini içeren tüm mevcut paketleri arar
1) apt search chromium
#chromium paketinin detaylı bilgilerini görüntüler.
2) apt show chromium
#chromium paketini sisteminize kurar.
3) apt install chromium
#Sisteminizde kurulu olan tüm Debian paketlerini listeler.
4) dpkg -l
#chromium paketini sisteminizden kaldırır.
5) apt remove chromium
#Artık hiçbir kurulu paket tarafından gereksinim duyulmayan tüm paketleri sisteminizden otomatik olarak kaldırır.
6) apt autoremove
#Bu iki komut genellikle birlikte kullanılır ve sisteminizi güncel tutmak için önemlidir.
7) apt update && apt upgrade -y