tee komutuyla çıktı hem dosyaya kaydedebilir hem de ekranda görebiliriz.
Ör : ls -ltr | tee log
komutumuzu yazdıktan sonra dik çizgi (pipe) ile ayırıp tee komutunu kullanıp istediğimiz dosyaya yazdırabiliriz. Eğer üstüne yazmak istemez de ekleme yapmak istersek;
Ör: ls -ltr | tee -a log
ile yapabiliriz burdaki -a append kelimesini ifade eder.
tee komutuyla birden fazla dosyaya aynı anda yazabiliriz.
Ör : ls -ltr | tee log1 log2 log3
ls -ltr komutunun sonucunu 3 farklı dosyaya yazdırmış olduk.
Linuxta yaptığımız işlemler için log tutmak istediğimizde girdi çıktı işaretlerini kullanmamız çok işimize yarayacaktır. Bu işaretler sırasıyla şunlardır.
>, >> (stdout)
< (stdin)
2> (stderr)
Ör : ls -ltr > /home/faruk/log
Yukardaki örnekte ls -ltr komutunun sonucunu /home/faruk/log dosyasına yazar. Eğer yazdığımız dosyada başka şeyler varsa ve üzerine yazmak istemez de ekleme yapmak istersek tek değil çift ok (>>) kullanırız.
Ör : mail -s “Şirket mesajı” musteri@abc.com < yazi.txt
Yukardaki örnekte musteri@abc.com’a E-posta başlığı Şirket mesajı olan bir mail atıyoruz ve atacağımız mailin içeriğini ise ” < ” işaretiyle yazi.txt dosyasından alıyoruz.
Ör : ls -ltr /root 2> log.txt
Yukardaki komutu root harici herhangi bir kullanıcıyla kullanmak istediğimizde bize bir yetki hatası mesajı verecektir. Biz de bu hatayı ” 2> ” işaretiyle log.txt dosyasına kaydedebiliriz.
echo Türkçe yankı demektir echo “yazı” yazdığımız zaman yazı kelimesini ekranımızda gösterir. Yazdığımız şeyi herhangi bir dosyaya kaydetmek istersek echo “yazı” > dosyadi yazarız ve daha sonra okumak istersek cat dosyadi yazabiliriz. Eğer yazacağımız şeyin yeni satır olarak dosyamıza eklenmesini istersek çift sağ ok kullanırız.
Ör: echo “ikinci yazı” >> dosyaadi
Eğer çift sağ ok yerine tek sağ ok kullanırsak dosyamızın üzerine yazacaktır, bunu untumayın.
Ör : echo -e “Bu birinci satır \n Bu da ikinci satır” > dosyaadi
Eğer echo komutumuza -e parametresini girersek escape karakterlerini yorumla ve \n koyduğumuz için ikinci satıra geçer
echo komutuyla yazacağımız şeyleri kendimiz belirleriz ama bu bizim tek seçeneğimiz değildir. Her komut sonunda bize bir sonuç gösterir eğer bu sonuçları bize göstermesini değil de herhangi bir dosyaya kaydetmek istersek komutumuzdan sonra ” > ” veya ” >> ” işaretlerini kullanıp dosya adını belirtmemiz yeter.
Ör: ls -ltr /home/faruk > /home/faruk/deneme
Bu komutu girdiğimizde /home/faruk klasörünün -ltr tipindeki listesini deneme adlı dosyaya kaydetmiş oluruz.
Linuxda en işe yarayan tuşlardan biri tab tuşudur. Yazacağınız bir komutu tamamlamaya yarar. Örneğin cd /home/f yazıp sonra tab tuşuna basarsanız linux bunu faruk’a tamamlayacaktır. Eğer birden fazla girdiğiniz harfle başlayan klasörünüz veya komutunuz varsa da bunları listeler. Tab’a basıp tamamladınız diyelim, bir daha taba basarsanız altındaki klasörlerden birini seçmeniz için listeler ve böyle siz sadece tab ve tek bir harf kullanarak çok derin klasörlere rahatlıklıkla inebilirsiniz
uçbirimde yukarı ok tuşuna basarsanız en son kullandığınız komutu listeler, ve daha sonra yukarı aşağı oklarla kullandığınız komutlar arasında dolaşabilirsiniz.
Linux dağıtımlarında kullanılan 3 tip yardım komutu bulunur. Bunlar komut hakkında verdikleri detay seviyesine göre şöyle sıralanabilir.;
whatis komut
komut –help
man komut
whatis komutu tek satırla komutun ne işe yaradığını gösterir ve bu bilgiyi “man” den alınır “cd” gibi bazı shell’e gömülü komutlarda kullanılamayabilir.
Ör : whatis echo
komut –help komutuyla whatis den daha detaylı bir görüntü alır, komutla kullanacağımız çeşitli opsiyonları ve ne işe yaradığını görürüz.
Ör : echo –help
man komut komutuyla –help komutundan daha detaylı bilgi verir ve sayfalar halinde kullanacağımız komut hakkında bir manuel yaratır. Sayfalar arasında space tuşuyla gezinebilir ve çıkmak istediğimizde ” q ” tuşuna basarız.
Access control list yani ACL bize herhangi bir dosya veya klasöre özel ek izinler eklememizi sağlar. Örneğin yarattığımız bir dosya sadece root kullanıcısı ve grubundayken bu dosyaya belli bir kullanıcı veya gruba yetki tanımlayabiliriz
setfacl komutu ile herhangi bir dosya ya da klasöre yetki verebiliriz.
Yukarıdaki örnekte m modify yani değiştirme anlamına gelir u komutunu kullanarak dosya aclsinde user yani kullanıcı yetkisi değiştirmek istediğimizi belirtiriz kullaniciadi’dan sonra gelen iki nokta üst üsteden sonrada vermek istediğimiz yetkileri belirtiriz. Bu örnekte rwx dir yani read write ve execute (okuma, yazma, çalıştırma) en sonda da bir boşluk bırakıp acl’sini değiştirmek istediğimiz dosya ya da klasörün adını yazarız.
Eğer herhangi bir gruba yetki vermek istersek u yerine g harfini kullanarak grup adını yazarız
Ör : setfacl -m g:grupadi:rwx /dosyayeri/dosyaadi
Eğer herhangi bir klasörün altındaki tüm dosya ve dizinlerin aclsini değiştirmek istiyorsak R harfini ekleriz
Ör : setfacl -Rm g:grupadi:rwx /klasör
Eğer herhangi bir kullanıcı veya grubu aclden çıkarmak istiyorsak x harfini kullanırız
Ör : setfacl -x g:grupadi /klasör
Eğer bir dosya veya klasördeki tüm acl ayarlarını kaldırmak vistiyorsak b harfini kullanırız
Bir dosya veya klasörün 2 sahibi olur. Bunlardan ilki user yani dosyayı yaratan kullanıcıdır. İkincisi ise gruptur. Bu da kullanıcının dahil olduğu grubtur. Eğer kullanıcı 2 gruba dahilse ve örneğin bunlardan sadece birinde write yani yazma yetkisi varsa
Herhangi bir dosyanın kullanıcısını değiştirmek için chown komutunu kullanırız
Ör : chown root /home/faruk/faruk.txt
faruk.txt adlı dosyanın kullanıcısını root yaptık.
-R opsiyonu chown veya chgrp komutunu uyguladığımız dosyanın alt klasör ve dosyalarına uygulamamızı sağlar.
Ör : chown -R root /home/faruk/birklasor
birklasor adlı klasörümüzün ve altındaki tüm klasör ve dosyaların grubunu root yaptık.
Not: Üst klasördeki group yetkileri her zaman alt klasördeki yetkiyi geçersiz kılar örneğin /home/faruk klasörünün group yetkisi faruk kullanıcısında olsun bu klasörün altındaki herhangi bir dosya başka kullanıcı veya group yetkisinde olsa bile üzerinde işlem yapabilirsiniz.
Linuxda 3 temel izin tipi vardır bu windowsdakine çok benzer
w : write yani yazma
r : read yani okuma
e : execute yani çalıştırma
Her izin 3 farklı seviyede kontrol edilebilir.
u : user yani kullanıcı
g : group yani grup
o : other diğerleri anlamına gelse de sistemdeki herkesi kapsar.
ls -l komutunu kullandığımızda en sol sütunda her dosya ve klasör için bu izinler yazar.
Ör : -rwxrwxrwx
Bu örnekteki ” – ” elemanın dısya olduğunu gösterir, ardından gelen ilk üçlü (rwx) kullanıcı izinlerini ikinci üçlü grup izinlerini üçüncü üçlü ise herkese açık olan izinleri gösterir. chmod komutuyla bu izinlerde değişiklikler yapabiliriz.
chmod kullanımı
chmodun kullanım şekli şu şekildedir;
chmod seviye +/- izintipi
Bunu bir örnekle açıklayalım örneğin sahibi olduğum faruk.txt dosyasının yetkileri şu şekilde olsun
-rwxrwxrwx
chmod g-r
yaptğımız zaman gruptan (g) r yani okuma yetkisimi kaldırır
chmod o-w
yaptığımız zaman herkesten yazma yetkisini kaldırır.
chmod u-x yaptığımız zaman herkesten çalıştırma yetkisini kaldırır
tam tersi şekilde ” – ” yerine ” + ” kullanırsak yetkileri geri verebiliriz.
chmod o+x
herkese çalıştırma yetkisini geri verdik.
chmod g+r
gruba okuma yetkisini geri verdik
chmod u+x
kullanıcıya okuma yetkisini geri verdik
aynı anda birden fazla izin tipi de belirlenebilir
chmod u+xw
gibi.
Not: Klasörlerde ” x ” yani çalıştırılabilir izninin olması cd vb. komutları uygulayabilmemizi sağlar
Aynı işlemi sayılarla da yapabiliriz.
Sayı
İzin tipi
Sembol
0
İzin yok
—
1
Çalıştırma
–x
2
Yazma
-w-
3
Çalıştırma ve yazma
-wx
4
Okuma
r–
5
Okuma ve çalıştırma
r-x
6
Okuma ve yazma
rw-
7
Okuma, çalıştırma ve yazma
Ör: chmod 777 faruk.txt
faruk.txt dosyasına herkes okuma, yazma ve çalıştırma yapabilir.
Ör: chmod 755 faruk.txt
faruk.txt dosyasına sadece kullanıcısı her yetkiye sahiptir, grup ve diğer kişiler sadece okuma ve çalıştırma izinlerine sahiptir.
Not: 3 haneli sayıyla yetkileri belirlerken ilk sayı kullanıcıyı ikinci sayı grupu üçüncü sayı ise herkesi temsil eder.
opsiyonlar genelde tire “-” ile başlar argüman ise komutumuzu daha detaylı kullanmamızı sağlar.
Bazı komutlar birden fazla opsiyon kabul edebilirler ve bunlar genelde tire ile gruplanır.
Ör: ls -ltr
Bazı komutlar default argümanlarla gelir bazı komutlarda argümanlar isteğe bağlıyken bazılarında zorunludur. Çoğu komut 1 veya daha fazla argümanla kullanılır
Ör: ls -ltr /home/faruk
ls : komut
-ltr : opsiyon
/home/faruk : argümandır
Herhangi bir komutun alacağı opsiyon ve argümanları öğrenmek için man komutunu kullanırız
Ör: man ls
Man komutu :
man komutu bize sayfalar halinde komutun argüman, opsiyonlarını ve komutun ne işe yaradığını gösteren bir manueldir. İçerisinde alt sayfalara sayfa sayfa gezinmek için ” space ” en alt sayfaya inmek için ” g ” ilk sayfaya dönmek için ” G ” çıkmak için ” q ” kullanırız.
Hard ve softlinklere geçmeden önce inode kavramını anlamak gerekir. Inode dosyanın harddiskimizde işaret ettiği bir numaradır (pointer). Her dosyanın bir inode numarası vardır. Bir dosya yarattığınızda bir inode numarası oluşturulur ve harddiskinize kaydedilir. Bilgisayar daha sonra o dosyayla ilgili bir eylem yapmak istediğiniz inode numarasına bakarak dosyayı bulur, bir nevi harddiskinizin indeksidir.
Soft link yaratmak için;
-ln -s /klasöradı/dosyadı formatını kullanırız. Yarattığımız linke ls -l yapıp baktığımızda başında ” – ” veya ” d ” değil linki ifade eden ” l ” harfi görünür. Soft linkler windowsdaki shortcutlar gibidir. Ana dosya silinirse soft link çalışmaz, ana dosyadaki tüm değişiklikler soft linki etkiler.
-ls -ltri komutuyla en sol sütünda inodeları listeleyebiliriz. soft link yarattığımız zaman soft linkle esas dosyanın inodeları farklı olur. soft linkin inode’u harddiskteki dosyayı değil esasında dosyanın harddiskteki konumunu gösteren inode’a linktir. Bu yüzden esas dosyayı kaldırdığımızda o inode (yani harddiskte dosyanın yerini gösteren numara) kaybolacağı için soft link dosyayı bulamaz ve çalışmaz.
Hard link yaratmak için;
-ln /klasöradı/dosyaadı formatını kullanırız. Hardlinkte esas dosyamızın inodu yani pointerı ile hard linkin inode’u aynı olur bu yüzden esas dosya silinse bile dosyaya erişilebilir. Hard link yedek almakta büyük kolaylık sağlar.
Soft ve Hard linkler hakkında bilmemiz gereken birkaç kural
Soft ve hard linkler aynı klasör içinde yaratılamazlar.