Linux

Linux Dosya Tipleri

Linux dosya sisteminde gezinirken farklı dosya türleriyle karşılaşacağız. En çok kullanılanlar regular file diye tabir ettiğimiz normal dosyalar ve dizinlerdir. Bununla birlikte, Linux işletim sisteminde, başka dosya türleri de bulunmaktadır.

Dosya tiplerini tanımlamak için ls -lah komutunu kullanabiliriz. Komut çıktısının en başındaki sembol bizi dosyanın tipini anlamamıza yardımcı olacaktır.

-: Regular File d: Directory c: Character Device File b: Blok Device File p: Named Pipe l: Symbolic link

Regular File

Normal dosya, Linux sisteminde bulunan en yaygın dosya türüdür. Metin dosyaları, resimler, kitaplıklar vb. farklı dosyaları yönetir. Touch komutuyla normal bir dosya oluşturabilirsiniz.

Directory

Directory yani dizinler, Linux'ta bulunan en yaygın ikinci dosya türüdür. Directory’i mkdir komutuyla oluşturulabilirsiniz

Character device

Character ve blok aygıt dosyaları, kullanıcıların ve programların, donanım çevre aygıtlarıyla iletişim kurmasına olanak tanır

Block Device

Harddisk, bellek gibi depolama cihazları için kullanılır.

Bash:

Bourne-Again Shell sözcüklerinin kısaltılmışıdır. Linux sistemler için yazılan komutları yorumlayan komut dili yorumlayıcısıdır.

Dpkg (Debian Paket Yöneticisi) : Debian Linux'ta bulunan ancak diğer dağıtımlarla uyumlu, İnternet yüklemeleri için bir paketleme ve yükleme aracıdır.

Pwd(Print Working Directory): Bulunduğunuz dizini gösterir.

cd (Change Directory) : Dizinler arasında gezinmek için cd komutu kullanılır. Hiyerarşik yapılandırmaya göre bir gezinti gerçekleştirebilirsiniz. Örneğin cd /etc/ssh ile ulaştığınız dizinin altında başka bir dizin altında bulunan dizine erişemezsiniz. Bunu yapmak için root dizininde başlayarak dizin değiştirme işlemine gitmeniz gerekir.

Komut satırına tek başına cd yazıp enter’a bastığınızda login olduğunuz kullanıcının /home dizinine dönersiniz.

cd .. nokta ile bir önceki dizine geri dönersiniz.

cd – ile çıkmış olduğunuz bir önceki dizine geri dönersiniz.,

işareti dizinlerin arasındaki hiyerarşi için kullanılır. / işareti kullanmadan bir dizine gidemezsiniz.

ls (list) : Dizinlerin içeriklerini listeler. ls komutu ile birlikte kullanılacak değişkenler listenin çıktısını daha ayrıntılı olarak gösterecektir. ls -a gizli dosyalar dahil tüm dosyaları gösterirken, -l ile ayrıntılı bir liste görürsünüz. -h dosya boyutunun anlaşılabilir şekilde bir çıktısını verir. Komut satırına ls -lah yazıp enter’a basarsak bulunduğumuz dizin altındaki dosyaların izinlerinin durumu, sahipleri, boyutu, oluşturulma zamanları ve isimlerini görürüz. Mavi renkli olan test isimli dosya haricindeki dosyalar gizli dosyadır.

touch : Boş bir dosya yaratmanın en basit yoludur.

touch testdosyasi.txt

touch test{1..5} komutu adı test ile başlayan 1’den 5’e kadar sıralanan 5 adet boş dosya yaratır

cat : Dosya içeriğini komut satırında read-only olarak görüntüler

cp (Copy) : Bir dosyayının kopyasını oluşturmak için kullanılır. Bir konfigürasyon dosyasında değişiklik yapmadan öncebu komut ile mutlaka bir kopyasını oluşturmanızı tavsiye ederim. Herhangi bir şeyin ters gitmesi durumunda yedek dosyanızdan düzeltme imkanınız olur.

Dosyanızı başka bir dizine kopyalamak isterseniz dizin yolunu göstermeniz gerekir. Dosyanızın bir kopyası belirttiğiniz dizine kopyalanır.

Bir dizin içindeki bütün dosyaların ve dizinlerin başka bir dizine kopyasını almak isterseniz -r argümanını kullanmalısınız.

cp -r backupfiles/ newbackupfiles

Sadece dizin içerisindeki dosyaları bir klasöre kopyalamak isterseniz kopyalamak istediğiniz dosyaları yan yana yazabilirsiniz.

mkdir : Linux’da dizin yaratmak için kullanılır.

Eğer alt altta parent dizinler oluşturmak isterseniz -p argümanını kullanmamız gerekir.

mkdir -p dosyalarim/dosyalar/dosya

rm (Remove) : Bir dosyayı silmek için kullanılır. Dikkatli kullanılması gerekir. rm ile sildiğiniz dosyaları bir daha geri döndüremezsiniz.

rm -i komutuyla dosyanın silinip silinmeyeceğini soran bildirim alınmasını sağlayabilirsiniz

rm -rf komutu ile dosya ve dizinler dahil bütün her şeyi silersiniz. -r recursive ve -f force anlamındadır.

rmdir (Remove Directory) : Bir dizini silmek isterseniz rmdir komutunu kullanabilirsiniz. Yine -p argümanı ile alt dizinler dahil bir silme işlemi de gerçekleştirebilirsiniz.

mv (Move) : Bir dosya veya dizini başka bir konuma taşımak için kullanılır. Windows’daki Kes komutunun aynısıdır. mv ile taşıdığınız dosyaya bir daha eski konumundan ulaşamazsınız.

mv komutunu isim değiştirmek içinde kullanabiliriz.

uptime : Sunucunun açıldığı zamanı, ne kadar süredir açık olduğunu, login olan kullanıcı sayısını gösterir.

Operatörler - ‘ ’, “ ”, ;, &, &&, |, ||, #, , ~

Burada gösterdiğimizden çok daha fazla operatör vardır. Bash Script yazımında sıklıkla kullanılırlar. Genel olarak kullanılanlar hakkında bilgi sahibi olmak faydalı olacaktır. ‘ ‘ ve “ “ Komut satırında yapacağınız girişlerin arasındaki boşlukların kaldırılmasını engeller, ayrık isimli dosya ve dizin adları oluşturmanıza veya bu dosya ve dizinleri kullanmanızı sağlar.

; noktalı virgül

İki ayrı komut serisini sırayla çalıştırır. Komutların başarılı olarak çalışıp çalışmaması bir diğer komutu etkilemez.

İşletim Sistemini Shutdown ve Reboot Etmek

Eğer işletim sistemini shutdown veya reboot etmek isterseniz shutdown komutunu kullanmalısınız. shutdown komutunu tek başına kullanırsanız 1 dakika sonrasına planlanmış bir kapatma işlemi gerçekleşir. shutdown -c komutu ile bu işlemi iptal edebilirsiniz.

shutdown -P komutu sunucunun fişini çekmekle aynı etkiye sahiptir. Arka planda çalışan uygulamaların hiçbiri kapanma prosedürlerini yerini getiremeden sunucu direk power-off edilir. Test ortamı olarak kullandığınız bir sunucu ise bu komut kullanılabilir ancak production dediğimiz çalışan hizmetleri barındıran bir sunucuda kullanılmamalıdır

shutdown -H komutu sunucuyu komut girildiği andan itibaren kapatma işlemine sokar. Bu komut girildikten sonra arka plandaki servisler kapatılarak sunucu power-off durumuna geçer.

shutdown -r komutu sunucuyu reboot (yeniden başlatmak) etmek için kullanılır

Ayrıca reboot komutu da sunucuyu kapatıp yeniden başlatma işlemlerinde kullanılabilir.

reboot --halt komutu shutdown -H ile aynı etkiye sahiptir.

reboot -p komutu shutdown -P komutu ile aynıdır.

reboot komutu tek başına sunucuyu yeniden başlatır.

Servisleri Kontrol Etmek - systemctl, enable, disable

Linux sunucu içerisinde çeşitli görevleri yerine getirmek için kullanılan servisler vardır. Servislerin yapılandırma dosyalarında değişiklik yaptığınızda değişikliklerin gerçekleşmesi için ilgili servisi yeniden başlatmanız gerekir. Sunucunuz yeniden açıldığında ise kritik öneme sahip servislerinizin doğru çalışıp çalışmadığından emin olmak için onları kontrol etmeniz gerekir. Servisle ilgili yapacağınız güncelleme işlemlerinde ise geçici olarak servisi durdurmanız gerekebilir. Servisleri kontrol etmek için systemctl komutunu kullanabiliriz.

systemctl status cron komutu bize cron servisinin durumu hakkında bilgi verir. Komut çıktısını özetleyecek olursak 745 PID’i (Process ID) ile cron servisinin 05.11.2022 saat 13.42 den itibaren active ve çalışıyor olduğu görüntülenir. En alt kısımda da log dosyasındaki en son kayıtlar gösterilir.

systemctl restart nginx komutu nginx servisinin yeniden başlamasını sağlayacaktır.

systemctl stop nginx komutu ile nginx servisi duracaktır. Eğer servisi durdurursanız nginx bağlantınız sonlanacaktır. Servisi yeniden aktif hale getirmek için konsol bağlantısı yapmanız gerekir

systemctl start nginx komutu ile nginx servisi başlatılır

Enable ve Disable kavramları sunucu yeniden başlatıldığında bir servisin otomatik olarak yeniden başlatılıp başlatılmayacağını belirler.

systemctl enable nginx komutu nginx servisinin sunucu açılırken otomatik olarak açılması için kullanılır.

systemctl disable nginx komutu ise sunucu açılırken nginx servisinin otomatik olarak başlamamasını sağlar. nginx servisini kullanmak isterseniz systemctl start nginx komutuyla başlatmanız gerekir

DOSYA VE DİZİNLERDE İZİN YÖNETİMİ

Ubuntu, geleneksel olarak UNIX dosya sahipliği ve izin sistemini kullanır. Sistemdeki her şey bir dosya olarak ele alınır ve tüm dosyalara (dizinler ve aygıtlar dahil) bir veya daha fazla okuma, yazma ve yürütme izni atanabilir. Bir dosyanın güvenliği, bu izinlerden ve dosya sahipliğiyle sağlanır. Sistem yöneticilerinin görevi bu izinleri yöneterek kullanıcıların dosya erişim kontrolünü sağlayarak ilgisiz kişilerin hassas dosyalara erişimini engellemektir.

Dosya Sahipliklerini ve İzinleri Anlama

Linux bir sistemde tüm dosyaların ve dizinlerin bir sahibi vardır. Dosya ve dizin üzerinde işlemler yapılırken sahiplik ve izinler dikkate alınır. Bir dosyanın sahibi değilseniz dosyayı okuyamaz ve değiştiremezsiniz veya dosyaya read yani okuma izniniz varsa o dosya üzerinde bir değişiklik yapamazsınız.

Genel olarak sistem yöneticileri el alışkanlığı veya uğraşmak istemediklerinden dosya veya dizinlerin sahipliğini root kullanıcısına ve izinleri de full olarak verirler. Ancak bu davranış işlem yapılan dosyaya istenmeyen kişilerin erişerek verileri çalmasına veya zarar vermesine neden olabilir. Bu nedenle dosya ve dizinlerin izinlerini değiştirmeden önce sahipliklerini ve izinleri anlamak önemlidir Bir dosyanın veya dizinin read, write ve execute olmak üzere 3 farklı izni bulunur. – ise izin yok anlamındadır. -rw-rw-r--

Dosya İçeriğini Görüntüleme

- less, more ve cat komutları bir dosyanın içeriğini görüntülemek için kullanılır. less komutu ile görüntülemek istediğiniz dosyanın ilk satırından başlayarak görüntüleme sağlanır. Yukarı aşağı tuşları ile dosya içinde gezilebilir. İçeriği uzun olan dosyalarda kullanışlıdır.

/ (slash) ile dosya içeriğinde arama yapılabilir. Aramak istediğiniz kelimenin başına / (slash) işareti koyup enter basarak arama yapabilirsiniz

q tuşu ile gösterimden çıkabilirsiniz

more ile yine dosyanın en başından itibaren gösterime başlanır ancak enter ve boşluk tuşu ile daha fazla satıra bakılabilir. Enter tuşuna her basıldığından 1 satır kaydırılırken, boşluk tuşu ile ekranın tamamı kaydırılacak şekilde içerik görüntülenir.

head, varsayılan olarak bir dosyanın ilk on satırını gösterir. Ancak satır sayısı ayarlanabilir

tail, varsayılan olarak en son 10 satırı gösterir. Head ‘a olduğu gibi satır sayısı ayarlanabilir. tail akan log takibinde çok kullanılır. tail -f komutu ilk çalıştırıldığında son 10 satırı göstermekle birlikte canlı olarak dosyaya yazılan verileri ekrana yazdırır

tail -3 text.txt ( Son 3 satırı gösterir)

Last updated