03 Nisan 2022 • 30 dakikalık okuma
Çoğu Linux işletim sisteminde varsayılan olarak Bash shell yüklü gelmektedir. Bash shell uygulamasında temel komutlar ile bir çok işlem yapılabilmektedir. Shell kullanımının en büyük faydası; en az sistem kaynağı tüketmesi, hızlı olması ve otomasyona izin vermesidir.
Bash kurulu değil ise, kurulum adımları ve shell ayarları için tıklayınız.
İşletim sisteminde yüklü Bash shell açmak için;
Örnek uygulama; Oracle VM VirtualBox 6.1.22 sürümü, Pardus 21.1 Gnome ISO sürümü ile yapılmaktadır.
Print Working Directory
Çalışılan dizini gösterir.
pwd
Komutun çalıştığı anda, bulunulan dizinin yolunu ekrana yazdırır.
Manual
Komutların nasıl kullanılacağını açıklayan kullanım kılavuzunu gösterir.
man pwd
pwd komutunun nasıl kullanılacağını, hangi parametreleri aldığını gösterir. man komutundan sonra hakkında bilgi alınmak isetenen komut yazılır. q tuşuna basılarak kapatılır.
Change Directory
Çalışılan dizini değiştirir.
cd
cd ~
Kullanıcının ana dizinine gider.
cd ..
cd ../
Bulunulan dizinden bir üst dizine gider.
cd /
Bulunulan dizinden en üst kök (root) dizine gider.
cd Resimler
cd ./Resimler
Bulunulan dizin altındaki yazılan dizine gider.
cd ~/Belgeler
Kullanıcının ana dizini altındaki yazılan dizine gider.
cd /usr/share
Yazılan dizine gider.
cd -
Son gidilen dizine gider.
Clear
Terminal ekranındaki yazıları temizler.
clear
Ekrandaki tüm yazıları siler.
List
Dizin içeriğini listeler.
ls
Bulunulan dizin içindeki dosya ve dizinleri gösterir.
ls -r
Dizin içeriğini alfabetik olarak tersten sıralayıp listeler.
ls -S
Dizin içeriğini boyutlarına göre büyükten küçüğe sıralayıp listeler.
ls -Sr
Dizin içeriğini boyutlarına göre küçükten büyüğe sıralayıp listeler.
ls -p
Dizin içeriğini türe göre listeler.
ls -t
Dizin içeriğini güncelleme tarihine göre en yeniden en eskiye listeler.
ls -l
Dizin içeriğini izin, sahibi, boyut, oluşturma tarihi vb. bilgilerle detaylı olarak listeler.
ls -a
Dizindeki gizli dosyalarla birlikte tüm içeriği listeler.
ls -h
Dizin içeriğini daha anlaşılır bir şekilde listeler.
Bilgi
Bash Shell komutlarından sonra yazılan parametreler birleştirilerek kullanılabilir.
ls -Srlah
Dizin içeriğini boyutlarına göre küçükten büyüğe sıralayıp, detaylı, tüm içeriği, daha anlaşılır bir şekilde listeler.
ls -trlah
Dizin içeriğini güncelleme tarihine göre en eskiden en yeniye göre sıralayıp, detaylı, tüm içeriği, daha anlaşılır bir şekilde listeler.
ls /usr/share/applications -lah
Yazılan dizin içeriğini detaylı, tüm içeriği, daha anlaşılır bir şekilde listeler.
Linux işletim sisteminde ve shell uygulamasında komutlar en az yetki ile çalıştırılır. Bu nedenle istenilen her dizinde işlem yapılamaz. Kullanıcıların sadece /home/ dizini içinde kendi kullanıcı adı dizininin altındaki dizinlerde yetkileri bulunur. Bu dizin dışındaki dizinlerde dosya, dizin oluşturamaz, değiştiremez ve silemezler. Yetkisiz bir işlem yapıldığında shell Erişim engellendi uyarısı verir. Erişimin olmadığı dizinlerde işlem yapmak için yönetici (root) yetkisine sahip olmak gereklidir.
Kullanıcıların yetkili olarak işlem yapabilmeleri için sudo komutu kulllanılır fakat sudo komutu ile işlem yapabilmek için, sudo komutunu çalıştıran kullanıcının sistemde sudoers dosyasına ya da yönetici grubuna, root veya root yetkili kullanıcı tarafından eklenip sudo ile komut çalıştırma yetkisi vermesi gerekir.
Kullanıcıya sudo yetkisi verme ve detaylı bilgilendirme için tıklayınız.
Super User Do
Root yetkisi ile işlem yapmak için shell ekranından istenilen komutun öncesinde sudo yazılarak yönetici yetkisi ile işlem yapılabilir. sudo ile tek komut için yönetici yetkisi ile işlem yapılır.
sudo ls /root
Switch User
su melih
Yazılan kullanıcı hesabına geçiş yapar.
Super User Do Switch User
sudo su
Root yönetici hesabına geçiş yapar.
Exit
exit
root yönetici hesabından çıkış yapar.
Touch
Yeni dosya oluşturur.
touch test.txt
Yazılan dosyayı oluşturur.
touch /home/melih/Belgeler/test.txt
Yazılan dizinde dosyayı oluşturur.
Make Directory
Yeni dizin oluşturur.
mkdir Projelerim
Yazılan dizini oluşturur.
mkdir "Melih'in Projeleri"
Yazılan dizini oluşturur.
mkdir /home/melih/Belgeler/Projelerim
Yazılan dizinin altına yeni dizini oluşturur.
mkdir ../../Projelerim
İki dizin üste yeni dizini oluşturur.
mkdir Resimlerim Müziklerim Videolarım
Yazılan dizinleri oluşturur.
mkdir -p Videolarım/Komikli/Kediler
Yoksa yazılan tüm dizinleri oluşturur.
Move
Dosyayı veya dizini farklı bir dizine taşır.
mv ./Belgeler/Projelerim ./
Dizini ikinci parametre olarak yazılan dizine taşır.
mv Projelerim Projeler
Dizinin adını ikinci parametre olarak yazılan ad olarak değiştirir.
mv test.txt ./Belgeler/test.txt
Dosyayı yazılan dizin içine taşır.
mv test.txt ./TODO.txt
Dosyanın adını ikinci parametre olarak yazılan ad olarak değiştirir.
mv test.txt ./Belgeler/TODO.txt
Dosyayı yazılan dizin içine yazılan isimle taşır.
mv test.txt ../TODO.txt
Dosyayı bir üst dizin içine yazılan isimle taşır.
Copy
Dosyayı veya dizini farklı bir dizine kopyalar.
cp test.txt ./TODO.txt
Dosyayı aynı dizin içine yazılan isimle kopyalar.
cp test.txt ./Belgeler/TODO.txt
Dosyayı yazılan dizin içine yazılan isimle kopyalar.
cp test.txt ../TODO.txt
Dosyayı bir üst dizin içine yazılan isimle kopyalar.
cp -r ./Belgeler/Projelerim ./
Dizini ikinci parametre olarak yazılan dizine kopyalar.
Remove
Dizini siler.
rm -rf ./Projeler
Yazılan dizinin tüm içeriği ile birlikte siler.
rm -rf ./Belgeler/*
Yazılan dizinin içindeki dosyaların ve dizinlerin tümünü siler.
rm ./Belgeler/*
Yazılan dizinin içindeki dosyaları siler.
rm ./Belgeler/*.txt
Yazılan dizinin içindeki .txt uzantılı dosyaların tümünü siler.
rm ./Belgeler/test.*
Yazılan dizinin içindeki test adlı farklı uzantılı dosyaların tümünü siler.
rm ./Belgeler/TODO.txt
Yazılan dizinin içindeki TODO.txt adlı dosyayı siler.
Find
Dosya ve dizinleri bulur.
find ./ -name "TODO"
TODO adlı dosyaları ve dizinleri bulur.
find ./ -type f -name "TODO.txt"
TODO adlı dosyaları bulur.
find ./ -type d -name "TODO"
TODO adlı dizinleri bulur.
find ./ -type f -name "TODO*"
TODO ile başlayan dosyaları bulur.
find ./ -type f -iname "TODO*"
TODO ile başlayan dosyaları bulur. Büyük harf, küçük harf duyarsızdır.
find ./ -type f -not -iname "TODO*"
TODO ile başlamayan dosyaları bulur. Büyük harf, küçük harf duyarsızdır.
find ./ -type f -iname "*TODO*"
Adında TODO içeren dosyaları bulur.
find ./ -type f -iname "*TODO"
Adı TODO ile biten dosyaları bulur.
find ./ -type f -iname "*.txt"
.txt uzantılı dosyaları bulur.
find /etc -type f -iname "*.conf"
/etc dizininde .conf uzantılı dosyaları bulur.
find ./ -maxdepth 1 -type f -iname "*.txt"
Alt dizinlere bakmaz sadece yazılan dizindeki .txt uzantılı dosyaları bulur.
find ./ -type f -size +5M
Boyutu 5MB fazla olan dosyaları bulur.
find ./ -type f -size -10k
Boyutu 10KB az olan dosyaları bulur.
find ./ -type f -perm 0644
Yazma Okuma Okuma izinlerine sahip dosyaları bulur.
find /etc -maxdepth 3 -type f -iname "*.conf" -size -2MB
/etc dizininde .conf uzantılı boyutu 2MB'tan az dosyaları bulur.
Grep
Dosya içindeki aranan kelimeyi bulur.
grep "deneme" TODO.txt
TODO.txt adlı dosya içinde deneme yazısını arar.
grep -i "deneme" TODO.txt
TODO.txt adlı dosya içinde deneme yazısını arar. Büyük harf, küçük harf duyarsızdır.
grep "deneme" TODO.txt TODO.xml TODO.conf
Yazılan dosyalar içinde deneme yazısını arar.
grep "deneme" ./*
Dizindeki tüm dosyalar içinde deneme yazısını arar.
grep -n "deneme" *
Dizindeki tüm dosyalar içinde deneme yazısını yazan satırları gösterir.
find . -type f -iname "*.txt" -exec grep -i -n "deneme" {} +
Dizindeki .txt uzantılı dosyalar içinde deneme yazısını yazan satırları gösterir.
Output Redirect
Komut sonucunu dosyaya yazdırır.
ls -lah > içerik.txt
Komut sonucunu ekrana değil dosyaya yazdırır.
find ./ -type f -size +5M > 5M+dosyalar.txt
Komut sonucunu ekrana değil dosyaya yazdırır.
Output Redirect Append
Komut sonucunu dosyanın sonuna yazdırır.
ls -lah > içerik.txt
Komut sonucunu ekrana değil dosyanın sonuna yazdırır. Önceki satırları silmez.
find ./ -type f -size +5M > 5M+dosyalar.txt
Komut sonucunu ekrana değil dosyaya yazdırır. Önceki satırları silmez.
Write output/file
Komut sonucunu hem ekrana hem dosyaya yazdırır.
ls -lah | tee içerik.txt
Komut sonucunu hem ekrana hem dosyaya yazdırır.
ls -lah | tee -a içerik.txt
Komut sonucunu hem ekrana hem dosyanın sonuna yazdırır. Önceki satırları silmez.
Dislay line
Terminal ekranına yazı yazdırır.
echo Merhaba Dünya
Terminal ekranına yazı yazdırır.
echo $SHELL
Terminal ekranına yazılan değişkenin değerini yazdırır.
echo test > deneme.txt
deneme.txt adlı dosya oluşturur içine test yazdırır.
Concatenate
Dosya içeriğini terminal ekranına yazdırır.
cat TODO.txt
TODO.txt adlı dosya içeriğini ekrana yazdırır.
cat TODO.txt test.txt deneme.txt
Yazılan dosyaların içeriğini ekrana yazdırır.
cat TODO.txt test.txt deneme.txt > yeni.txt
Yazılan dosyaların içeriğini ekrana ve dosyaya yazdırır.
Reverse Concatenate
Dosya içeriğini son satırı ilk, ilk satırı son şeklinde terminal ekranına yazdırır.
tac TODO.txt
TODO.txt adlı dosya içeriğini satırları ters olarak ekrana yazdırır.
tac TODO.txt test.txt deneme.txt
Yazılan dosyaların içeriğini satırları ters olarak ekrana yazdırır.
tac TODO.txt test.txt deneme.txt > yeni.txt
Yazılan dosyaların içeriğini satırları ters olarak ekrana ve dosyaya yazdırır.
Archive
Dosyaları şıkıştırıp arşivler.
tar -cvf ./arşiv.tar ./
Dizin içeriğini şıkıştırmadan arşivler.
tar -xvf ./arşiv.tar -C ./
Arşiv dosyasını dizinde açar.
tar -cvzf ./arşiv.tar.gz ./
Dizin içeriğini sıkıştırıp gzip olarak arşivler.
tar -xvf ./arşiv.tar.gz -C ./
Arşiv dosyasını dizinde açar.
tar -cvjf ./arşiv.tar.bz2 ./
Dizin içeriğini sıkıştırıp bz2 olarak arşivler.
tar -xvf ./arşiv.tar.bz2 -C ./
Arşiv dosyasını dizinde açar.
tar -tvf ./arşiv.tar.bz2
Arşiv dosyasının içeriğini listeler.
File Type
Dosya türünü gösterir.
file TODO.txt
Yazılan dosyanın türünü gösterir.
All Commands
compgen -u
Sistemdeki tüm kullanıcıları listeler.
compgen -g
Sistemdeki tüm grupları listeler.
Groups
groups
Kullanıcının dahil olduğu grupları listeler.
groups melih
Yazılan kullanıcının dahil olduğu grupları listeler.
Free Memory
free -hw
Boş ve kullanılan bellek alanını gösterir.
Disk Partition Table
fdisk
Disk bölümlerini gösterir.
List Block Devices
lsblk
Disk bölümlerini detaylı gösterir.
Processes
ps
Sistemdeki çalışan işlemleri gösterir.
List Linux Processes
top
Sistemdeki çalışan işlemleri güncelleyip gösterir.
Interactive Linux Processes
htop
Sistemdeki çalışan işlemleri detaylı gösterir.
Kill Process
kill -9 3978
Yazılan işlem numarasına göre işlemi kapatır.
Kill Process By Name
killall firefox
Yazılan işlem adına göre işlemi kapatır.
Configure Network Interface
ifconfig
IP adresini gösterir.
Uptime
uptime
Sistemin ne kadar süredir çalıştığını gösterir.