Linux Dosyaları, Dizinleri, Komutları Aslı Ergun Linux Dosyaları, Dizinleri, Komutları
Linux Kullanıcıları Root (Yönetici) Normal kullanıcılar Bütün sistem dosyalarını kontrol eder. Herseyi yapabilen tek kullanıcıdır. Bütün programları kullanan tek kullanıcıdır. Normal kullanıcılar Herbiri kendisini “home” klasörü vardır. Her kullanıcını dosyaları ayrılmıstır. System data ve konfigurasyonunu değiştiremezler. System datasını göremezler.
Basit Dosya Yapısı Hard disk 2 partisyon ayrılmıstır: / (root) ve /home Kullanıcı ve sistem datasını ayırmak temel prensiptir. Kullanıcılar: 2 minimum Super user (root) En azından bir “normal” kullanıcı
Dizin Yapısı
Kök Dizini (/) İşletim Sisteminin çalışabilmesi için gerekli olan temel dosya sistemidir ve bütün dizinler kök dizinin altında bulunur. Sistemin açılabilmesi için kök dizinin altında bulunması gereken dizinler aşağıdaki gibidir. Bu dizinlerin dışında kullanıcıların ev dizinlerini tutmak için home, root kullanıcısının ev dizini olarak da root dizini kök dizininin altında bulunur. Ayrıca sistem hakkında bilgi alınabilecek proc dizini vardır.
/bin Dizini /bin dizini hem sistem yöneticileri hem de kullanıcıların kullanabileceği komutları içerir. Sistemin tek kullanıcılı moda ihtiyaç duyacağı komutlar bu dizinde bulunur. Ayrıca betikler tarafından kullanılan komutlar da bu dizinde bulunur.
/boot Dizini Açılış sırasında gerekli dosya ve dizinlerin bulunduğu dizindir.
/dev Dizini Aygıt dosyalarının bulunduğu dizindir fd* : Floppy disk sürücüleri hd*: IDE diskler ve diskler üzerinde bulunan bölümler sd*: SCSI diskler ve diskler üzerinde bulunan bölümler lp*: Paralel Port
/etc Dizini Konfigürasyon Dosyalarının bulunduğu dizindir. Bu dosyalar programın nasıl çalışması gerektiğini bildiren dosyalardır ve çalıştırılabilir dosya olamazlar. Ayrıca bu dizinin altında alt dizinlerde özel olarak servisler için konfigürasyon dosyaları toplanmış olabilir. /etc/X11: X Pencere Sistemi Konfigürasyonu /etc/httpd: Web Sunucu Konfigürasyonu
/home Dizini Kullanıcıların varsayılan olarak ev dizinlerin oluşturacağı dizindir, kullanıcı açma işlemi sırasında ev dizini olarak bu dizinden farklı dizinler de kullanılabilir.
/lib Dizini Sistemin açılması ve açıldıktan sonra düzgün çalışabilmesi için gerekli kitaplıkların bulunduğu dizindir. /bin /sbin dizinlerindeki komutlar buradaki kitaplıkları kullanır Ayrıca /lib/modules dizininin altında çekirdek sürümüne uygun olarak modüller bulunur, böylece farklı sürümlerdeki modüllerin karışması engellenmiş olur
/media Dizini Veri depolama aygıtlarının bağlama noktalarının bulunduğu dizindir. Aşağıdaki dizinler bulunabilir. floppy Disket sürücü cdrom CD-ROM sürücü cdrecorder CD writer zip Zip sürücüsü
/mnt Dizini Sistem yöneticisinin geçici olarak herhangi bir dosya sistemine ulaşmak için oluşturabileceği bağlama noktalarını içeren dizindir. Sistemin çalışması için gerekli dosyalar bu dizinin içinde bulunmamalıdır.
/opt Dizini Sonradan yüklenilen programların dosyalarının bulunması için tasarlanmış dizindir. Genellikle alt dizin olarak paket ismi veya paketi çıkaran firma ismi kullanılır.
/proc Dizini Sistem ve çalışan prosesler ile ilgili bilgiler /proc dizininde bulunur. /proc dizini sistem çalışırken var olan sanal bir dizindir. Bazı komutlar bu dizin altından bilgi alarak çıktı üretir. Ayrıca çekirdeğin davranışını değiştirmek için /proc/sys dizinin altındaki dosyalar değiştirilir.
/root Dizini root kullanıcısının ev dizini olarak kullanılan dizindir. İstenildiği takdirde bu dizin değiştirilebilir.
/sbin Dizini Sadece sistem yönetimi için sistem yöneticisi tarafından kullanılan komutlar /sbin, /usr/sbin, /usr/local/sbin dizinlerinde bulunur. /sbin dizinindeki komutlar sistemin açılışı, kurtarılması veya onarılması için /bin dizinindeki komutlara ek olarak gelmiştir /usr/sbin dizinindeki komutlar sadece yerelde bulunan sistem yönetim komutlarıdır.
/srv Dizini Servislerin oluşturduğu dosyalar bu dizinde bulunur. Örneğin web sunucusu için sunulan web sayfalarının dosyaları bu dizinin altında bulunabilir.
/tmp Dizini /tmp dizini geçici olarak oluşturulacak dosyaların bulunabileceği dizindir. Kullanıcıların ve programların bu dizine yazma hakkı vardır.
/usr Dizini Paylaşılan ve okunabilen dosyaların bulunduğu dizindir. Sistemin düzgün açılmasından sonra gerekli olacak dosyalar bu dizinin altında bulunur. /usr dizininin yapısı kök dizinin yapısına benzerdir ve aşağıdaki dizinleri barındırmak zorundadır. Dizin Tanım bin Kullanıcıların kullandıkları komutlar include C programlarının kullandığı başlık dosyalarını içerir lib Kitaplıklar local Yerel Hiyerarşi (yerel olarak kurulmuş dosyalar burada yer alır) sbin Sistem komutları share Mimariden bağımsız paylaşılan veriler
/var Dizini /var dizini değişen dosyaların bulunduğu dizindir. Bu dosyalar arasında kuyruk dizinleri, yönetim ve log dosyaları, geçici dosyalar bulunur Bu dizinin altında bulunan önemli dizinler şunlardır: Dizin Tanım spool Kuyrukta bekleyen dosyaların bulunduğu dizin (yazıcı, e-posta) run Çalışan prosesler ile ilgili bilgilerin bulunduğu dosyalar (PID) lock Kilit Dosyalar log Log dosyaları
Klasörler Özet Directory Purpose / The root klasörü, sistemin en üstünde. /bin Sistemi boot etmek için kritik çalışabilir dosyaların yeri. /dev Sisteme bağlı araçlar, örneğin terminaller, disksler, modemler, etc. /etc Sistem konfigurasyon dosyaları (passwords, network adres ve isimleri, system aşlama ayarlar, vb.) /home Kullanıcı klasörü yeri. /lib Farklı programların kütüphane yeri. cs490ns - cotter
System Organization Directory Purpose /mnt Dosyaların diğer bir sistem tarafından bağlandığında dosyaların aktarıldığı nokta. /proc Sistemde çalışan processeslerin görüntüler. /tmp Boot işleminde temzlenen geçici dosyaların yeri. /usr Çeşitli sistem dosyaları: bunlar standard system utilities (/usr/bin), manual pages (/usr/man), headers for C programs (/usr/include), administration executables (/usr/sbin). /var log dosyalarının sakladığı (/var/log) ve bazı servisler (örneği mail, yazıcı için yazdırırken.) için geçici depo yeri olan klasör. . Bulunulan kalsör. .. Bulunulan klasörün üstü. cs490ns - cotter
Kullanıcı Klasor Yapısı
Kullanıcı dosya ve klasorleri /etc/passwd /etc/shadow /etc/group /etc/gshadow /home/<user> useradd veya adduser komutuyla olusur.
/etc/passwd Ana hesap ozellikleri: username, password, userID, groupID, gecos, home directory, default shell Usermod ile değişebilir.
/etc/shadow Amaç: passwords saklamak için Sadece root görür. Özellikler: username, password (encrypted), password aging information
/etc/group Hesaplar (e.g., kullanıcılar) gruplara dahildir. Aynı gruptakiler dosya ve klasör paylaşır. Addgroup ile yeni gruplar yaratılabilir.
/etc/gshadow Amaç: grup passwords saklamak “man gshadow” Gruplar da password sahibi olabilir.
Komut Yapısı Linux komut yapısı formatı: Examples: $ komut opsiyon(lar) arguman(lar) Examples: $ ls $ ls –l $ ls /dev $ ls –l /dev
Bazı Basit Komutlar passwd: Şifre değiştir mkpasswd: Rasgele şifre oluştur date, cal: Bugunu goster, takvimi goster who, finger: Sistemdeki aktif kullanıcıları goster clear: Ekranı temizle echo: Yazılanı tekrarla. ……
Klasörle ilgili Komutlar: pwd: bulunulan klasörü yazar. cd: klasörü değiştirir. mkdir: klasör yaratır. rmdir: klasör kaldırır. ls: kasör içeriklerini listeler. -l, -a, -R, -d opsiyonlarıyla..
Dosyalarla ilgili komutlar: touch: update the access and/or modification time of a files cp: dosyaları kopyalar mv: dosyaları yeniden isimlendirir ve kaldırır. ln: dosyaları bağlar rm: dosyaları siler cat: dosyaları birleştirir more/less: sayfa sayfa dosyaları ekranda gösterir split: dosyaları böler.
Help-Yardım “man” komutu “info” komutu “ help “ komutu help pwd | more man ls info cd
Komut Parametrelerini Görmek Linux komutları bir veya birçok parametre ile birlikte kullanılabilir. ls komutunun da bir arada kullanılabileceği parametreler vardır. man komutu kullanılarak bir komut ile birlikte kullanılabilecekleri parametreler öğrenilebilir. Örn: root@vbox$man ls
Özel Dizinler / (Kök dizini) : Tüm dizinlerin bağlı olduğu işletim sisteminin ana dizini . : Bulunduğunuz dizin .. : Bulunduğunuz dizinin bağlı olduğu bir üst dizin .dosya : Gizli dosya - : Bir önceki klasör ~ : Kullanıcının ev dizini ~kullanıcı_adı : Belirtilen kullanıcının ev dizini
Wildcard * wildcard sembolu herhangi sembol yerine kullanılabilir. ls a*.txt a ile başlayan txt dosyaları listeler. “?” tek karakter simgeler. - cp draft?.doc draft1.doc, draft2.doc, draftb.doc, etc.
Bulunduğun Dizini Görme pwd komutu Bulunduğunuz dizini görmek için pwd komutu kullanılır. root@vbox$pwd
Dizinler Arası Gezinme cd komutu root@vbox$cd <gecilecek_dizin> Örn: root@vbox$cd .. root@vbox$cd . root@vbox$cd testdir
Dizin İçeriğini Listelemek ls komutu Örn: root@vbox$ls ls komutu bir dizine gidilmeden de o dizinin altını görmek için kullanılabilir. root@vbox$ls /etc
ls Komutu Parametreleri Ls ile birlikte kullanılabilecek parametreler: -a (--all) . (nokta) ile başlayan dosyaları gizlemez. --author Her dosyanın yazarını basar. -l Uzun liste biçimi kullanılır. -s (--size) Dosya boyutlarını blok cinsinden gösterir. -S Dosya boyutuna göre sıralama yapar. --sort=sözcük sözcük ile belirtilen türde sıralama yapılır: extension (uzantısına göre -X), none (yok -U), size (boyuta göre -S), time (zamana göre -t), version (sürüme göre-v). -x Listeleme sütunlar halinde değil satıra dizilerek yapılır. -X Alfabetik sıralama dosya uzantısına göre yapılır.
ls Komutu Parametreleri Örn: Bulunduğunuz dizindeki nesneleri ayrıntılı ve gizli dosyaları gösterecek biçimde listeleyiniz. root@srv# ls –l –a veya; root@srv# ls –la
Yeni Dizin Yaratma mkdir komutu root@vbox$ mkdir <dizinadı> Örn: root@vbox$mkdir ders root@vbox$mkdir -m 777 klasor
Dizin Kaldırma rmdir komutu root@vbox$ rmdir <dizinadı> Örn: root@vbox$rmdir ders
Dizin Kopyalama ve Yeniden Adlandırma root@vbox$ cp –r dir1 dir2 root@vbox$ mv –r dir1 dir2
Dosya Kopyalama root@vbox$ cp dosya1 dosya2 root@vbox$ cp –r dosya1 dosya2 root@vbox$ cp file1 file2 file3 directory
Dosya Silme root@vbox$ rm dosya1 dosya2 root@vbox$ rm –r dosya1 dosya2
Dosya Yeniden Adlandırma ve Taşıma root@vbox$ mv dosya1 dosya2 root@vbox$ mv –r dosya1 dosya2 root@vbox$ mv file1 file2 file3 directory
Dosya Arama root@vbox$ find *.conf root@vbox$ find dosya*.*
Dosya Sıkıştırma Oluşturma : tar -cf <archive name> <directory> gzip <file name>, Açma : tar -xf <archive name> gunzip <zipped file name>
Dosya İzinleri Erişim Seviyesi: İzin Türleri Kullanıcı - user Grup - group Diğerleri -others İzin Türleri Read (r) Write (w) Execute (x)
İzinleri Değiştirme Dosya ve klasör izinleri 8lik(octal) sayma sistemiyle ifade edilir.
Default İzinler Otomatik olarak yaratılan dosya ve klasörler için izinler: Dosya: -rw-rw-r-- 644 Klasör: drwxrwxr-x 775
File Permission
chmod
chmod
Dosya Sahip ve Grubunun Değişmesi chgrp <group> file chown <user> file
Çevre Değişkenleri - Environmental Variables printenv Bütün değişkenleri listeler. echo $PATH Bir değişkenin değerini listeler. set $PATH=“$PATH:/sbin” Geçici olarak “/sbin” değişkenini patikaya ekler. set Bütün değişkenlerin son durumlarını gösterir. cs490ns - cotter
Process-Çalışan Program- Yönetimi ps Butun proseslerin durumunu yazar. ps aux Aktif proseslerin durumunu yazar. kill –s 9 PID Proses numarası 9 olan prosesi öldürür. cs490ns - cotter
diff ve patch diff dosyalar arasındaki farkları gösterir. diff –u my_file my_file.orig | less patch farkları dosyaya uygular. diff –u my_file my_file.orig > my_patch patch my_file < mypatch bu şekilde my_file ve my_file.orig aynı olur.
Head ve Tail head -n 5 flavours.txt İlk 5 satırı yazar tail -n 5 flavours.txt Son 5 satırı yazar.
Sort Sort file.txt Dosyayı sıralar. $ sort –t "," -k1, file.txt , ile ayrılan alanlardan 1. gore sırala. sort -u file.txt Sırala ve tekrarları sil sort -r file.txt Tersten sırala
Wc (Word Count) wc myfile.txt 5 13 57 myfile.txt 5 = Satır 13 = Kelime 57 = Karakter ls -l | wc –l Bulunan yerde dosya ve klasor satır sayısını verir.
Df ve du Df = Boş alanı gosterir df -h Du = Dosyaların tuttuğu yeri gosterir. du -s *.txt du -h /tmp
grep – patern aramak grep <kelime> <DOSYA> Özel Karakterler: ^ - Satır başı $ - Satır sonu Nokta (.) herne karakter olursa olsun [ ] Karakter sınıfı grubu: [aeiou] – tek sesli harf [a-zA-z0-9] – tek harf veya sayı [^0-9] – Sayı olmayan herhangibir karakter
Grep -devam -i : harf duyuarlılığı olmadan ara. * anlamı “sıfır veya çok kere” ? Means “sıfır veya bir kere” -i : harf duyuarlılığı olmadan ara. -n : satır numaraları yaz -v : uyusmayan satır numaralarını yaz -l : Sadece cıktısı yazılabilecek dosyaları listele.
grep örnekler Boş satırları yaz: grep –v ’^$’ my_file.txt my_function çağrıldığı satırları yaz: grep –n ’my_function *(’ my_code.c grep –v ‘test’ myfiles.txt
find find dosyalarını yerini bulmak için kullanılır. find / -name foo Komutu foo dosyasını tüm dizinde arar. find /home/david -name 'index*‘ İndex ile baslayan dosyaları gosterir.
find ornekler Uzantısı*.c* ve *.h* yaz. find . –name ’*.[ch]*’ –a –print www klasöru haricindeki tüm dosya ve klasörleri herkesin ulasabileceği şekilde haklarını değiştir. find . –path ”./www*” –prune –o –exec | chmod go-rwx {} \; *.c* dosyalarının ne kadar buyuk olduğunu bul? expr `find –name ’*.c*’ –printf ”%k + ”` 0
Gzip Gunzip gzip file.txt gunzip file.txt.gz gzip -c file1 file2 > foo.gz cat file1 file2 | gzip > foo.gz
Tar tar -cvf file.tar file1 file2 file3 tar -cvf dir.tar dir1 dir2 tar -cvwf file.tar myfile.txt tar -cvwf home.tar home/ tar -xvwf myfile.tar tar -xvwzf myfile.tar.gz