Basit GNU/Linux Terminal Komutları

Bu yazımda GNU/Linux işletim sistemlerinde kullanılan başlangıç terminal komutlarından ve bu komutlarla ilgili basit örneklerden bahsedeceğim. Ben bu yazıyı hazırlarken Ubuntu 18.04 kullandım, farklı dağıtımlarda küçük farklılıklar olabilir.
Komut satırı nedir?
Komut satırı, kullanıcıların belirli metin komutları kullanarak işletim sistemi ile iletişim sağladığı arayüzdür.
Komut satırı nasıl açılır?
Ubuntu dağıtımında Ctrl+Alt+T kısayolunu kullanarak açabilirsiniz. Alternatif olarak GUI kullanabilirsiniz.
Basit Terminal Komutları
ls
man
mkdir
cd
pwd
whoami
mv
cp
rm
history
clear
ls
ls("list directory content" ) komutu, hedef dizindeki dosyaları ve dizinleri görüntülememizi sağlar.
Absolute path kullanarak bulunduğumuz dizinden bağımsız olarak "/" dizininden başlayıp hedef dizinde bitirip hedeflediğimiz dosya veya dizinleri görüntüleyebiliriz.
$ ls /home/blog/Documents/
Courses todolist.txt Work
Ya da relative path kullanarak bulunduğumuz dizine bağlı olarak hedeflediğimiz dizindeki dosya ve dizinleri görüntüleyebiliriz.
$ ls Documents/
Courses todolist.txt Work
ls komutunu parametresiz kullanarak bulunduğumuz dizindeki dosya ve dizinleri görüntüleyebiliriz.
$ ls
Desktop Documents Downloads Pictures
ls komutu, -l parametresi ile birlikte kullanıldığında aşağıdaki gibi ayrıntılı bir çıktı verir.
$ ls -l
total 16
drwxrwxr-x 2 blog blog 4096 Mar 28 22:17 Desktop
drwxrwxr-x 4 blog blog 4096 Mar 28 22:17 Documents
drwxrwxr-x 2 blog blog 4096 Mar 28 22:17 Downloads
drwxrwxr-x 2 blog blog 4096 Mar 28 22:17 Pictures
ls komutu, -h parametresi ile tek başına bir anlam ifade etmez. -lh veya -hs olarak kullanılır. -lh parametresi dosya ve dizin boyutlarını okunması kolaylaşacak şekilde aşağıdaki gibi dönüştürür.
$ ls -lh
total 16K
drwxrwxr-x 2 blog blog 4,0K Mar 28 22:17 Desktop
drwxrwxr-x 4 blog blog 4,0K Mar 28 22:17 Documents
drwxrwxr-x 2 blog blog 4,0K Mar 28 22:17 Downloads
drwxrwxr-x 2 blog blog 4,0K Mar 28 22:17 Pictures
Not: ls komutunda, parametreler sıralamaları önemsiz olmaksızın birlikte kullanılabilirler.
GNU/linux sistemlerde gizli dosya ve dizinler "." karakteriyle başlar. -a parametresi ile "." karakteriyle başlayan gizli dosya ve dizinleri görüntüleyebiliriz.
$ ls -a
. .. .bash_history .bash_logout .bashrc .cache Desktop Documents Downloads .gnupg Pictures .profile
ls komutu -R parametresi ile hedef dizinde bulunan alt dizinleri ve içindeki dosyaları listeler.
$ ls -R
.:
Desktop Documents Downloads Pictures
./Desktop:
./Documents:
Courses todolist.txt Work
./Documents/Courses:
Calculus Data-Security Physic
./Documents/Courses/Calculus:
./Documents/Courses/Data-Security:
DS1.pdf DS2.pdf DS3.pdf DS4.pdf DS5.pdf DS6.pdf DS7.pdf DS8.pdf DS9.pdf
./Documents/Courses/Physic:
./Documents/Work:
./Downloads:
./Pictures:
man
man("system's manual pager") komutu, komutların man(açıklama) sayfalarını görüntülememizi sağlar.
$ man ls
LS(1) User Commands LS(1)
NAME
ls - list directory contents
SYNOPSIS
ls [OPTION]... [FILE]...
DESCRIPTION
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor --sort is speci‐
fied.
Mandatory arguments to long options are mandatory for short options
too.
-a, --all
do not ignore entries starting with .
-A, --almost-all
do not list implied . and ..
--author
...
man komutunda, -k parametresi kullanılarak man sayfasında istenilen kelime aratılabilir. apropos komutu ile eşdeğer olarak çalışır.
$ man -k key
Compose (5) - X client mappings for multi-key input sequences
XCompose (3) - X client mappings for multi-key input sequences
XCompose (5) - X client mappings for multi-key input sequences
XkbBell (3) - Rings the bell on the default keyboard
apt-key (8) - APT key management utility
authorized_keys (5) - OpenSSH SSH daemon
ckbcomp (1) - compile a XKB keyboard description to a keymap suitabl...
Digest::HMAC (3pm) - Keyed-Hashing for Message Authentication
Digest::HMAC_MD5 (3pm) - Keyed-Hashing for Message Authentication
Digest::HMAC_SHA1 (3pm) - Keyed-Hashing for Message Authentication
...
mkdir
mkdir("make directories") komutu dosya sisteminde var olmayan yeni bir dizin oluşturmamızı sağlar.
$ mkdir newfile
Bu dizini görüntülersek ;
$ ls
Desktop Documents Downloads Pictures newfile
yeni newfile dizini oluştu.
mkdir komutu, --verbose paremetresini kullanarak oluşturulan her dizin için bir mesaj görüntülenmesini sağlar.
$ mkdir --verbose newfile2
mkdir: created directory 'newfile2'
cd
cd ("change directory") komutu shell'deki anlık dizini değiştirmemizi sağlar.
~$ cd Documents/
~/Documents$
cd komutu "/" (slash) işaretiyle de kullanılabilir. Eğer gidilicek dizin adresinin başına "/" konursa root dizininden belirtilen dizine gidilir. Konmazsa bulunulan dizinden belirtilen dizine gidilir.
~$ cd /Home/Music
Komutu root dizininden Home dizininin içindeki Music dizinine gider.
~$ cd Documents/Work
Komutu bulunulan dizindeki Documents dizininin içindeki Work dizinine gider.
cd komutu "." (nokta) işaretiyle de kullanılır. Nokta işareti bulunulan dizinde kalmamızı sağlar.
~$ cd .
cd komutu ile dizin değiştirirken belirtilen dizin isminin istenilen yerine nokta işareti konulabilir.
~$ cd ./Documents
~$ cd Documents/.
~$ cd ./Documents/.
pwd
pwd ('Print working directory') komutu hangi dizinde olduğumuzu bize bildirir.
~$ pwd
/home/blog/mysymlink/Projects
Not: symlinks
GNU/Linux sistemlerde hedef dosyaya başka bir dizin üzerinden ulaşmak için oluşturulan sembolik linktir. Bellekte sadece bir kere yer kaplar.
pwd komutu "-P" parametresi alarak symlinks'i olan dosyanın bize aslında hangi dizinde bulunduğunu gösterir.
~$ pwd -P
/home/blog/actual_directory_name/actual_subdirectory/Projects
whoami
whoami komutu sistemi kullanan geçerli userid'i görüntüler.
~$ whoami
cagla
mv
mv komutu,sistemdeki dosya ve dizinleri taşımamızı ve yeniden adlandırmamızı sağlar.
Önce ls komutuyla dosyayı görüntüleyelim.
~/Belgeler$ ls
file_name.txt
mv komutu ile dosya adını değiştirelim.
~/Belgeler$ mv file_name.txt new_file_name.txt
Tekrar ls komutu ile yeni dosya adını görüntüleyelim.
~/Belgeler$ ls
new_file_name.txt
mv komutu ile dosyayı başka bir dizine taşıyalım
~/Belgeler$ mv new_file_name.txt /home/blog/Projects
ls komutu ile Projects dizinini görüntüleyelim.
~/Projects$ ls
guessGame new_file_name.txt
Not: Dosyayı taşırken var olmayan bir dizin adresi yazılırsa önce o dizin sistemde oluşturulur sonra taşınmak istenen dosya oluşturulan yeni dizine taşınır.
cp
cp komutu dosyaların ve dizinlerin koplarını oluşturur.
$ cp new_file_name.txt cop_new_file_name.txt
ls komutu ile bulunduğu dizine bakarsak,
$ ls
cop_new_file_name.txt new_file_name.txt
dosyanın bir kopyasının oluştuğunu görürüz.
cp komutunu kullandığımızda varsayılan olarak bir çıktı mesajı görülmez. -v(verbose) parametresi kullanılarak bir çıktı mesajı görüntülenebilir.
$ cp -v new_file_name.txt cop_new_file_name.txt
'new_file_name.txt' -> 'cop_new_file_name.txt'
Dosya kopyalarken kopyalayacağımız dosya ya da dizin zaten varsa varsayılan olarak üzerine kopyalanır. Varolan dosya kaybolur. Kopyalama işlemi yapılırken uyarı almak için -i(interactive) paremetresi kullanılır.
$ cp -i new_file_name.txt cop_new_file_name.txt
cp: 'cop_new_file_name.txt''ın üzerine yazılsın mı?
rm
rm ("remove") komutu dosyaları kaldırır, siler. Varsayılan olarak dizinleri silmez. -r/-R/--recursive parametrelerini kullanarak kaldırmak istediğimiz dizini ve içerdiklerini siler, kaldırır.
$ rm -r Projects/
Kaldırmak istediğimiz dizin boşsa -d/--dir parametrelerini kullanarak kaldırılabiliriz.
history
history ("GNU History Library") komutu daha önce kullanılan komutları görüntülemek için kullanılır.
$ history
161 rm -r Projects/
162 ls
163 rm --dir Projects/
164 ls
165 cd Belgeler/
166 ls
167 unrar e -p NN2019 CNNexample.rar
168 sudo apt install unrar
169 unrar e -p NN2019 CNNexample.rar
170 unrar e -p 2019NN CNNexample.rar
171 unrar e -p CNNexample.rar
172 ls
173 history
Daha önce kullanılan komutları belirli sayıda görüntülemek için parametre olarak sayı verebiliriz.
$ history 5
170 unrar e -p 2019NN CNNexample.rar
171 unrar e -p CNNexample.rar
172 ls
173 history
174 history 5
history komutunda grep kullanarak daha önce kullandığımız komutlarda kelime aratabiliriz.
$ history | grep unrar
167 unrar e -p NN2019 CNNexample.rar
168 sudo apt install unrar
169 unrar e -p NN2019 CNNexample.rar
170 unrar e -p 2019NN CNNexample.rar
171 unrar e -p CNNexample.rar
176 history | grep unrar
!! kullanılarak en son kullanılan komut çalıştırılarak gösterilir.
$ !!
history | grep unrar
167 unrar e -p NN2019 CNNexample.rar
168 sudo apt install unrar
169 unrar e -p NN2019 CNNexample.rar
170 unrar e -p 2019NN CNNexample.rar
171 unrar e -p CNNexample.rar
176 history | grep unrar
Daha önce kullandığımız kaydedilen komutlar -c parametresi kullanılarak silinebilir.
$ history -c
clear
Terminal ekranını temizlemek, boşaltmak için kullanılır.

