LINUX TEMEL KOMUTLAR - LAB UYGULAMASI

Ders Kodu: BLP126 - Açık Kaynak İşletim Sistemi
Uygulama Türü: Pratik Lab Çalışması


📌 UYGULAMA KURALLARI


🔷 UYGULAMA 1: pwd (Print Working Directory)

Bilgi: pwd komutu, içinde bulunduğunuz dizinin tam yolunu gösterir. Terminalin hangi dizinde olduğunuzu öğrenmek için kullanılır.

Adımlar:

1.1) Terminalinizi açın ve aşağıdaki komutu çalıştırın:

pwd

Çıktı: __________________________________________________________________________

1.2) Şimdi root dizinine gidin ve tekrar pwd çalıştırın:

cd /
pwd

Çıktı: __________________________________________________________________________

1.3) Ev dizininize geri dönün:

cd
pwd

Çıktı: __________________________________________________________________________


🔷 UYGULAMA 2: cd (Change Directory) - Mutlak ve Göreceli Yollar

Bilgi: cd komutu dizinler arası geçiş yapar. Mutlak yol / ile başlar ve kökten başlar (örn: /usr/local). Göreceli yol bulunduğunuz dizinden başlar (örn: local/bin).

Adımlar:

2.1) Mutlak yol kullanarak /usr dizinine gidin:

cd /usr
pwd

Çıktı: __________________________________________________________________________

2.2) Şimdi göreceli yol kullanarak local dizinine girin:

cd local
pwd

Çıktı: __________________________________________________________________________

2.3) Göreceli yol ile bin dizinine girin:

cd bin
pwd

Çıktı: __________________________________________________________________________

2.4) Mutlak yol ile /etc dizinine gidin:

cd /etc
pwd

Çıktı: __________________________________________________________________________

🔷 UYGULAMA 3: Özel Dizin Karakterleri

Bilgi:

Adımlar:

3.1) /usr/local/bin dizinine gidin:

cd /usr/local/bin
pwd

Çıktı: __________________________________________________________________________

3.2) Bir üst dizine çıkın:

cd ..
pwd

Çıktı: __________________________________________________________________________

3.3) Tekrar bir üst dizine çıkın:

cd ..
pwd

Çıktı: __________________________________________________________________________

3.4) Ev dizininize gidin:

cd ~
pwd

Çıktı: __________________________________________________________________________

3.5) Bir önceki dizine geri dönün:

cd -
pwd

Çıktı: __________________________________________________________________________

3.6) Tekrar bir önceki dizine dönün:

cd -
pwd

Çıktı: __________________________________________________________________________


🔷 UYGULAMA 4: Yol Bulma Alıştırmaları

4.1) Aşağıdaki komut dizisini uygulayın ve sonucu tahmin edin, sonra çalıştırın:

cd /usr/local/bin
cd ../../local
pwd

Tahmininiz: __________________________________________________________________________

Gerçek Çıktı: __________________________________________________________________________

4.2) Bu sefer şunu deneyin:

cd /bin
cd ../usr/share/zoneinfo
pwd

Tahmininiz: __________________________________________________________________________

Gerçek Çıktı: __________________________________________________________________________

4.3) Şimdi bu komutu deneyin:

cd ~/../../usr/local
pwd

Tahmininiz: __________________________________________________________________________

Gerçek Çıktı: __________________________________________________________________________

🔷 UYGULAMA 5: ls (Dizin İçeriğini Listele)

Bilgi: ls komutu dizin içeriğini listeler. Önemli parametreler:

Adımlar:

5.1) Ev dizininize gidin ve basit ls çalıştırın:

cd ~
ls

İlk 5 dosya/dizin: __________________________________________________________________________

5.2) Gizli dosyalarla birlikte listeleyin:

ls -a

. ve .. gördünüz mü? (Evet/Hayır): __________________________________________________________________________

5.3) Detaylı listeleyin:

ls -l

İlk satırın tamamını yazın:


5.4) Hem gizli hem detaylı listeleyin:

ls -al

İlk satırdaki ilk karakter ne? (d, -, l, vb.): __________________________________________________________________________

Bu ne anlama gelir? __________________________________________________________________________

5.5) inode numaralarıyla listeleyin:

ls -ali

. ve .. 'nın inode numaraları:

. → __________ ve .. → __________

5.6) /etc dizinini listeleyin:

ls -l /etc

İlk 3 dosyanın adını yazın: __________________________________________________________________________

🔷 UYGULAMA 6: Dosya Türleri

Bilgi: ls -l çıktısının sol başındaki karakter dosya türünü belirtir:

Adımlar:

6.1) /dev dizinini listeleyin:

ls -l /dev | head -10

Gördüğünüz dosya türü karakterlerini listeleyin: __________________________________________________________________________

6.2) /bin dizinini listeleyin:

ls -l /bin | head -5

Çoğunlukla hangi tür dosya var? (d, -, l): __________________________________________________________________________


🔷 UYGULAMA 7: mkdir (Dizin Oluşturma)

Bilgi: mkdir komutu yeni dizin oluşturur. -p parametresi iç içe dizinleri tek seferde oluşturur.

Adımlar:

7.1) Ev dizininizde lab_test dizini oluşturun:

cd ~
mkdir lab_test
ls -l

lab_test görünüyor mu? __________________________________________________________________________

7.2) lab_test içine birden fazla dizin oluşturun:

cd lab_test
mkdir dizin1 dizin2 dizin3
ls

Çıktı: __________________________________________________________________________

7.3) İç içe dizin yapısı oluşturun:

mkdir -p proje/src/main
ls -R

Çıktı:



7.4) Oluşturduğunuz dizin yapısına göreceli yol ile gidin:

cd proje/src/main
pwd

Çıktı: __________________________________________________________________________

🔷 UYGULAMA 8: touch (Dosya Oluşturma)

Bilgi: touch komutu boş dosya oluşturur veya var olan dosyanın değiştirilme zamanını günceller.

Adımlar:

8.1) lab_test dizininde dosya oluşturun:

cd ~/lab_test
touch dosya1.txt
ls -l dosya1.txt

Dosya boyutu kaç byte? __________________________________________________________________________

8.2) Aynı anda birden fazla dosya oluşturun:

touch dosya2.txt dosya3.txt dosya4.txt
ls -l

Kaç dosya var? __________________________________________________________________________

8.3) touch'u mevcut dosyada çalıştırın ve zamanı kontrol edin:

ls -l dosya1.txt

Değiştirilme zamanı: __________________________________________________________________________

touch dosya1.txt
ls -l dosya1.txt

Yeni değiştirilme zamanı: __________________________________________________________________________

Zaman değişti mi? __________________________________________________________________________


🔷 UYGULAMA 9: echo ve cat

Bilgi:

Adımlar:

9.1) echo ile metin yazdırın:

echo Merhaba Linux

Çıktı: __________________________________________________________________________

9.2) echo ile dosyaya metin yazın:

echo "Birinci satır" > metin.txt
cat metin.txt

Çıktı: __________________________________________________________________________

9.3) Dosyaya yeni satır ekleyin:

echo "İkinci satır" >> metin.txt
cat metin.txt

Çıktı:



9.4) Birden fazla dosya oluşturup cat ile okuyun:

echo "Dosya 1 içeriği" > test1.txt
echo "Dosya 2 içeriği" > test2.txt
cat test1.txt test2.txt

Çıktı:



🔷 UYGULAMA 10: cp (Kopyalama)

Bilgi: cp komutu dosya/dizin kopyalar.

Adımlar:

10.1) Bir dosyayı kopyalayın:

cd ~/lab_test
cp metin.txt metin_kopya.txt
ls -l

İki dosya da görünüyor mu? __________________________________________________________________________

10.2) Dosyayı başka dizine kopyalayın:

cp metin.txt dizin1/
ls dizin1/

Çıktı: __________________________________________________________________________

10.3) Birden fazla dosyayı bir dizine kopyalayın:

cp dosya1.txt dosya2.txt dosya3.txt dizin2/
ls dizin2/

Çıktı: __________________________________________________________________________

10.4) Dizini alt dizinleriyle kopyalayın:

cp -r proje proje_yedek
ls -R proje_yedek

Çıktı:



10.5) İnteraktif kopyalama deneyin:

cp -i metin.txt metin_kopya.txt

Size bir soru sordu mu? Ne sordu?



🔷 UYGULAMA 11: mv (Taşıma ve Yeniden Adlandırma)

Bilgi: mv komutu dosyaları taşır veya yeniden adlandırır. Kopyalamaz, taşır.

Adımlar:

11.1) Dosyanın adını değiştirin:

cd ~/lab_test
mv dosya4.txt yeni_isim.txt
ls -l

dosya4.txt hala var mı? __________________________________________________________________________

11.2) inode numarasını kontrol edin:

ls -i yeni_isim.txt

inode numarası: __________________________________________________________________________

mv yeni_isim.txt eski_isim.txt
ls -i eski_isim.txt

inode numarası: __________________________________________________________________________

inode değişti mi? __________________________________________________________________________

11.3) Dosyayı başka dizine taşıyın:

mv eski_isim.txt dizin3/
ls dizin3/

Dosya dizin3'te mi? __________________________________________________________________________

11.4) Dizini taşıyın:

mv dizin3 dizin1/
ls dizin1/

Çıktı: __________________________________________________________________________


🔷 UYGULAMA 12: rm (Silme)

Bilgi: rm komutu dosya/dizin siler. DİKKAT: Silinen dosyalar çöp kutusuna gitmez!

Adımlar:

12.1) Basit dosya silin:

cd ~/lab_test
touch silinecek.txt
ls -l silinecek.txt

Dosya var mı? __________________________________________________________________________

rm silinecek.txt
ls -l silinecek.txt

Hata mesajı: __________________________________________________________________________

12.2) İnteraktif silme deneyin:

touch test_dosya.txt
rm -i test_dosya.txt

Size ne sordu? __________________________________________________________________________

y yazıp Enter'a basın.

12.3) Dizin silmeyi deneyin:

mkdir bos_dizin
rm bos_dizin

Hata aldınız mı? Ne diyordu? __________________________________________________________________________

12.4) Dizini doğru şekilde silin:

rm -r bos_dizin
ls

Dizin silindi mi? __________________________________________________________________________

12.5) Dolu dizini silin:

rm -rf dizin2
ls

dizin2 hala var mı? __________________________________________________________________________

🔷 UYGULAMA 13: find (Dosya Arama)

Bilgi: find komutu dosya/dizin arar.

Adımlar:

13.1) İsme göre arama yapın:

cd ~/lab_test
find . -name "metin*"

Çıktı: __________________________________________________________________________

13.2) Sadece dizinleri bulun:

find . -type d

Kaç dizin buldu? __________________________________________________________________________

13.3) Sadece dosyaları bulun:

find . -type f

Kaç dosya buldu? __________________________________________________________________________

13.4) /etc altında "host" kelimesini içeren dosyaları arayın:

find /etc -name "*host*" -type f 2>/dev/null

İlk 3 sonucu yazın:



13.5) Ev dizininizde .txt uzantılı dosyaları bulun:

find ~ -name "*.txt" -type f

Kaç .txt dosyası buldunuz? __________________________________________________________________________


Bilgi: Hard link, dosyanın ikinci bir ismidir. Aynı inode'u paylaşırlar. Biri değişirse diğeri de değişir. Biri silinse bile diğeri kalır.

Adımlar:

14.1) Bir dosya oluşturun:

cd ~/lab_test
echo "Orijinal içerik" > orijinal.txt
cat orijinal.txt

Çıktı: __________________________________________________________________________

14.2) Hard link oluşturun:

ln orijinal.txt hardlink.txt
ls -li orijinal.txt hardlink.txt

orijinal.txt inode: __________________________________________________________________________

hardlink.txt inode: __________________________________________________________________________

inode'lar aynı mı? __________________________________________________________________________

14.3) Hard link üzerinden değişiklik yapın:

echo "Yeni içerik" > hardlink.txt
cat orijinal.txt

orijinal.txt'nin içeriği ne oldu? __________________________________________________________________________

14.4) Orijinal dosyayı silin:

rm orijinal.txt
cat hardlink.txt

hardlink.txt hala çalışıyor mu? __________________________________________________________________________

İçeriği: __________________________________________________________________________


Bilgi: Symbolic link, dosyanın kısayoludur. Windows'taki "Shortcut" gibi. Orijinal dosya silinirse link çalışmaz.

Adımlar:

15.1) Yeni dosya oluşturun:

cd ~/lab_test
echo "Test verisi" > kaynak.txt
ls -li kaynak.txt

kaynak.txt inode: __________________________________________________________________________

15.2) Symbolic link oluşturun:

ln -s kaynak.txt symlink.txt
ls -li kaynak.txt symlink.txt

kaynak.txt inode: __________________________________________________________________________

symlink.txt inode: __________________________________________________________________________

inode'lar aynı mı? __________________________________________________________________________

15.3) ls -l çıktısına dikkat edin:

ls -l symlink.txt

symlink.txt'nin başında hangi karakter var? __________________________________________________________________________

Ok işareti neyi gösteriyor? __________________________________________________________________________

15.4) Sembolik link üzerinden okuma yapın:

cat symlink.txt

Çıktı: __________________________________________________________________________

15.5) Orijinal dosyayı silin:

rm kaynak.txt
cat symlink.txt

Hata aldınız mı? Ne diyordu? __________________________________________________________________________

15.6) Link hala var mı kontrol edin:

ls -l symlink.txt

symlink.txt hala görünüyor mu? __________________________________________________________________________

Ama çalışıyor mu? __________________________________________________________________________

🔷 UYGULAMA 16: Bağlantılar Karşılaştırma

16.1) Yeni bir deney yapın:

cd ~/lab_test
echo "Deneme" > test_dosya.txt
ln test_dosya.txt hard_test.txt
ln -s test_dosya.txt soft_test.txt
ls -li test_dosya.txt hard_test.txt soft_test.txt

Tüm çıktıyı yazın:



16.2) Aşağıdaki tabloyu doldurun:

Dosya Adı inode Numarası Dosya Türü (-, l, d)
test_dosya.txt
hard_test.txt
soft_test.txt

16.3) test_dosya.txt'yi değiştirin:

echo "Değiştirildi" > test_dosya.txt
cat hard_test.txt
cat soft_test.txt

hard_test.txt içeriği: __________________________________________________________________________

soft_test.txt içeriği: __________________________________________________________________________

Her ikisi de değişti mi? __________________________________________________________________________

🎯 KAPSAMLI UYGULAMA: Tüm Komutları Birleştirin

Aşağıdaki senaryoyu adım adım uygulayın:

1) /tmp dizinine gidin ve "final_test" dizini oluşturun

cd /tmp
mkdir final_test
cd final_test
pwd

Çıktı: __________________________________________________________________________

2) İç içe dizin yapısı oluşturun: documents/2024/mart

mkdir -p documents/2024/mart
ls -R documents

Çıktı: __________________________________________________________________________

3) "notlar.txt" dosyası oluşturun ve içine "Linux komutları" yazın

echo "Linux komutları" > notlar.txt
cat notlar.txt

Çıktı: __________________________________________________________________________

4) Bu dosyadan hard link ve symbolic link oluşturun

ln notlar.txt notlar_hard.txt
ln -s notlar.txt notlar_soft.txt
ls -li notlar*

Çıktı:


5) notlar.txt'yi documents/2024/mart dizinine kopyalayın

cp notlar.txt documents/2024/mart/
ls documents/2024/mart/

Çıktı: __________________________________________________________________________

6) documents dizininin yedeğini alın

cp -r documents documents_backup
ls

Çıktı: __________________________________________________________________________

7) notlar_hard.txt'nin içeriğini değiştirin ve notlar.txt'yi kontrol edin

echo "Değiştirilmiş içerik" > notlar_hard.txt
cat notlar.txt

notlar.txt içeriği: __________________________________________________________________________

8) notlar.txt'yi silin ve linkleri kontrol edin

rm notlar.txt
cat notlar_hard.txt
cat notlar_soft.txt

notlar_hard.txt çalışıyor mu? __________________________________________________________________________

notlar_soft.txt çalışıyor mu? __________________________________________________________________________

9) *.txt uzantılı tüm dosyaları bulun

find . -name "*.txt" -type f

Kaç dosya buldu? __________________________________________________________________________

10) Tüm oluşturduğunuz dosyaları temizleyin

cd /tmp
rm -rf final_test
ls final_test

Hata mesajı: __________________________________________________________________________

✅ ÖZET ve ÖNEMLİ NOTLAR

📝 Komut Özeti:

Komut Açıklama
pwd Bulunduğunuz dizini gösterir
cd Dizin değiştirir
ls Dizin içeriğini listeler
mkdir Dizin oluşturur
touch Dosya oluşturur
echo Metin yazdırır
cat Dosya içeriğini okur
cp Kopyalar
mv Taşır/Yeniden adlandırır
rm Siler
find Arama yapar
ln Hard link oluşturur
ln -s Symbolic link oluşturur

🎓 Önemli Kavramlar:

Yol Türleri:

Özel Karakterler:

Bağlantı Türleri:

⚠️ Kritik Hatırlatmalar:

  1. rm ile silinen dosyalar çöp kutusuna gitmez, doğrudan silinir!
  2. -r parametresi dizinleri silmek/kopyalamak için şarttır
  3. -i parametresi güvenli çalışma için kullanılır (onay ister)
  4. ls -al çıktısında her zaman . ve .. görünür
  5. Hard link yalnızca aynı disk üzerindeki dosyalar için yapılabilir

LAB ÇALIŞMANIZ TAMAMLANMIŞTIR 🎉

Bu uygulamada Linux temel komutlarını öğrendiniz. Pratik yapmaya devam edin!