Komut Satırı

İleri Seviye Linux Komutları ile Kung Fu

Linux Komutları ile Kung Fu
Paylaş

Bu yazıya başlamadan önce, eğer okumadıysanız Linux Komutlarına Giriş yazısını okumanızı tavsiye ederim. Bu sayede bilenler bilgilerini tazeleyebilir, bilmeyenler ise yeni bilgiler öğrenebilir. Bir “Linux Ninjası” olmak istiyorsanız, doğru yerdesiniz. Şimdi Kung Fu zamanı!

Bu yazıda anlatılacak olan komutların bazılarını Linux Komutlarına Giriş yazısında da görmüş olmalısınız. Bol bol tekrar yapmak iyidir çekirge…

Yine bir önceki yazıda olduğu gibi bu yazıya da Linux komut yapısı ile başlayacağım. O halde hazırsanız, başlayalım!

Kung Fu derslerine giriş

Bağlantıyı sağlam kurmak ve konuyu iyice pekiştirmek için bu başlık altında yine en temelden başlayacağım. 

Önceki yazıdan hatırlayacağınız üzere, Linux komutları genel olarak aşağıdaki dizimi kullanır. 

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<komut> <-seçenek(ler)> <(varsa) parametre>
<komut> <-seçenek(ler)> <(varsa) parametre>
<komut> <-seçenek(ler)> <(varsa) parametre>

Seçenekler, genel olarak tek harf olarak tanımlanmıştır. Bunlar, seçeneklerin baş harfleridir. Bu seçeneklerin uzun halleri de bulunabilir. Hatta bazı komutlarda aynı işleve sahip olan seçenek hem kısa hem de uzun haliyle bulunabilir (

-s
-s /
--size
--size gibi). 

Linux komutlarında seçenek yazılırken

-
- (tire) işareti kullanılır. Şayet uzun biçimde yazılacaksa
--
-- (iki tire) kullanılır. 

Örneklerle devam edelim.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<komut> --help
<komut> --help
<komut> --help

Bir komut hakkında bilgi almak için

--help
--help seçeneği kullanılır. Biraz daha detaya inmek gerekirse: 

ls --help
ls --help komutunu yazdığınızda, ekranda
ls
ls komutunun alabileceği parametreleri listeleyen ve onları kısaca açıklayan bir çıktı göreceksiniz. Burada
ls
ls komut,
--help
--help seçenektir.

cd /
cd / komutunu yazdığınızda ise çalışma dizini
/
/ (kök) dizini olacaktır. Burada
cd
cd komut,
/
/ parametredir. 

Bütün komutlarda aynı anda seçenek ve parametre kullanmak zorunda değilsiniz. Bazı komutlar seçenek ve parametre girmeden de çalışabilir.

Komut çıktılarının insanlar tarafından (yani bu siz oluyorsunuz) daha rahat okunabilir formatta yazdırılması için

-h
-h (
--human-readable
--human-readable) seçeneği kullanılır. 

Birbiri ardına komutlar çalıştırmak istiyorsanız, bağlı komut (

&&
&&) kullanmalısınız. Komutlardan herhangi biri çalışmadığı takdirde komut dizisi duracak ve bir sonraki komut çalışmayacaktır. 

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<komut> && <komut1> && <komut2>
<komut> && <komut1> && <komut2>
<komut> && <komut1> && <komut2>

Örneğin Debian tabanlı sisteminizi güncellemek için teker teker yazmak yerine

sudo apt update && sudo apt upgrade -y
sudo apt update && sudo apt upgrade -y bağlı komut dizisini kullanabilirsiniz.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<komut> | <komut1> | <komut2>
<komut> | <komut1> | <komut2>
<komut> | <komut1> | <komut2>

Bir komutun çıktısını diğer bir komutun girdisi olarak kullanmak istiyorsanız ardışık komutlar kullanmalısınız. Örneğin:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<komut> | grep arama
<komut> | grep arama
<komut> | grep arama

grep
grep komutu, bir dosyada veya bir komut çıktısında arama yapmanızı sağlar. Daha detaylı bilgi için yazının devamında bulunan grep komutunun anlatımını okuyabilirsiniz.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<komut> | more
<komut> | more
<komut> | more

Komut sonucunu sayfa sayfa incelemek istiyorsanız bu komutu kullanabilirsiniz.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<komut> | less
<komut> | less
<komut> | less

Temel işlevi more komutu ile aynı olup, ek özellikler içerir. Daha detaylı bilgi için

man less
man less komutunu girebilir, komutun kullanımını ve tüm parametrelerini öğrenebilirsiniz.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<komut> > dosya.txt
<komut> > dosya.txt
<komut> > dosya.txt

Komut çıktısını bir dosyaya yazdırmak istiyorsanız bu komut kullanılır.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<komut> >> dosya.txt
<komut> >> dosya.txt
<komut> >> dosya.txt

Komut çıktısını var olan bir dosyanın üzerine eklemek için ise bu komut kullanılır.

İşin temelinden detaylıca bahsettiğimize göre artık komutlara geçebiliriz.

İleri seviye Linux komutları ile Kung Fu

grep

Dosya içinde ifade araması yapmaya yarayan bir komuttur. Çoğunlukla bir başka komutun çıktısı üzerinde arama yapmak için kullanılır. Tek başına da kullanılabilir.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
grep <aranan_kelime> <dosya>
grep <aranan_kelime> <dosya>
grep <aranan_kelime> <dosya>

Aramanın büyük-küçük harf duyarsız olarak yapmak istiyorsanız

-i
-i parametresini kullanmalısınız.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
grep -i <aranan_kelime> <dosya>
grep -i <aranan_kelime> <dosya>
grep -i <aranan_kelime> <dosya>

Aramayı, tek bir dosya özelinde olmadan dizin altındaki tüm dosya ve dizinlerde yapmak istiyorsanız

-r
-r parametresini kullanmalısınız.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
grep -r <aranan_kelime> <dizin>
grep -r <aranan_kelime> <dizin>
grep -r <aranan_kelime> <dizin>

Başlangıç (

^
^) ve bitiş (
$
$) karakterlerini kullanarak arama yapabilirsiniz. Aşağıdaki örnekte
dosya.txt
dosya.txt içerisinde
Merhaba
Merhaba ile başlayan yer aranmakta.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
grep -ir '^Merhaba' dosya.txt
grep -ir '^Merhaba' dosya.txt
grep -ir '^Merhaba' dosya.txt

Başlangıçta da bahsettiğimiz gibi komut, çoğunlukla ardışık komutların çıktısında arama yapmak için kullanılır.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
ls -lah | grep '^d'
ls -lah | grep '^d'
ls -lah | grep '^d' 

find

Adı üstünde, aradığınız şeyi bulmanıza yarayan komuttur. Hiyerarşik olarak dosya ve dizinleri tarayarak aradığınız dosya veya dizini bulmanıza yarar. Kullanımı aşağıdaki gibidir:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
find <aranacak_yer> -name <aranan>
find <aranacak_yer> -name <aranan>
find <aranacak_yer> -name <aranan>

Aramayı büyük-küçük harf duyarsız olarak yapmak istiyorsanız

-iname
-iname parametresini kullanmalısınız.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
find <aranacak_yer> -iname <aranan>
find <aranacak_yer> -iname <aranan>
find <aranacak_yer> -iname <aranan>

Aranacak dosya veya dizinin tam adını bilmiyorsanız yıldız (

*
*) karakterini kullanabilirsiniz. Yıldız (
*
*) karakteri, tüm ifadeleri içine alan bir karakterdir. Basitleştirmek gerekirse, “farketmez” anlamına gelir.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
find <aranacak_yer> -name <ara*>
find <aranacak_yer> -name <ara*>
find <aranacak_yer> -name <ara*>

Aynı şekilde belirli bir uzantıya sahip dosyaları bulmak istiyorsanız yıldız (

*
*) karakterinin ardından istediğiniz uzantıyı girmelisiniz. Örneğin
.txt
.txt uzantılı dosyaları bulmak için şöyle yazmalısınız:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
find <aranacak_yer> -name <*.txt>
find <aranacak_yer> -name <*.txt>
find <aranacak_yer> -name <*.txt>

Aramada bulunan dosya veya dizinleri ayırarak listelemek için

-type
-type parametresi kullanılır.

Parametre olarak

d
d yazarsanız yalnızca dizinleri,
f
f yazarsanız yalnızca dosyaları listeler.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
find -type d <aranan>
find -type d <aranan>
find -type d <aranan>

Arama yaparken boyut filtresi oluşturmak için

-size
-size parametresi kullanılır. Artı (
+
+) ifadesi büyüktür, eksi (
-
-) ifadesi küçüktür anlamına gelir.
k
k ifadesi kilobayt,
M
M ifadesi megabayt,
G
G ifadesi gigabayt anlamında kullanılır. Aşağıdaki örnekte çıkan sonuçtan yalnızca 10 kilobayttan büyük dosyaları listele diyoruz.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
find <aranacak_yer> -name <aranan> -size +10k
find <aranacak_yer> -name <aranan> -size +10k
find <aranacak_yer> -name <aranan> -size +10k

Boş dosya veya dizinleri bulmak için

-empty
-empty parametresini kullanabilirsiniz.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
find <aranacak_yer> -name <aranan> -empty
find <aranacak_yer> -name <aranan> -empty
find <aranacak_yer> -name <aranan> -empty

Belirli haklara sahip dosya veya dizinleri bulmak için

-perm
-perm parametresini kullanabilirsiniz.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
find <aranacak_yer> -name <aranan> -perm 777
find <aranacak_yer> -name <aranan> -perm 777
find <aranacak_yer> -name <aranan> -perm 777

Arama sonucunda bulunan dosya ve dizinleri değerlendirmek için bir komut çalıştırmak istiyorsanız

-exec
-exec parametresini kullanmalısınız.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
find <aranacak_yer> -name <aranan> -exec <komut>
find <aranacak_yer> -name <aranan> -exec <komut>
find <aranacak_yer> -name <aranan> -exec <komut>

Örneğin arama sonucunda bulduğunuz dosya ve/ya dizinleri silmek istiyorsanız aşağıdaki komutu kullanabilirsiniz.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
find <aranacak_yer> -name <aranan> -exec rm -rf {} \;
find <aranacak_yer> -name <aranan> -exec rm -rf {} \;
find <aranacak_yer> -name <aranan> -exec rm -rf {} \;

Aranacak dizin derinliğini, yani ne kadar alt dizine girileceğini belirtmek için

-maxdepth
-maxdepth parametresi kullanılır.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
find <aranacak_yer> -name <aranan> -maxdepth X
find <aranacak_yer> -name <aranan> -maxdepth X
find <aranacak_yer> -name <aranan> -maxdepth X

Örnek olarak,

/etc
/etc dizininde aranan
.conf
.conf uzantılı tüm dosyaların yalnızca belirttiğiniz dizinde aranması ve o dizinin alt dizinlerinde arama yapılmaması için aşağıdaki komutu kullanabilirsiniz.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
find /etc *.conf -maxdepth 1
find /etc *.conf -maxdepth 1
find /etc *.conf -maxdepth 1

find
find komutunu ihtiyacınıza göre farklı parametreler ile birlikte kullanabilir, aramalarınızı kolaylaştırabilirsiniz. Daha detaylı bilgi için
man find
man find komutunu kullanabilirsiniz.

cat – concatenate files

Dosyanın içeriğini okumak için kullanılır. Kullanım:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
cat <dosya>
cat -n <dosya>
cat <dosya> cat -n <dosya>
cat <dosya>
cat -n <dosya>

-n
-n seçeneği ile çıktıya satır numaraları ekleyebilirsiniz.

touch

Dosya oluşturmak için kullanılır. Komut parametresine var olan bir dosya verilirse dosyanın tarih-saat bilgisini sıfırlar, içeriğini aynen korur.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
touch dosyaadi.uzanti
touch dosyaadi.uzanti
touch dosyaadi.uzanti

echo

Komut satırı arayüzüne değer ve/veya değişken yazdırmak için kullanılır.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
echo “Pardus”
echo “Pardus”
echo “Pardus”

Ekrana

Pardus
Pardus yazdırır.

whoami

Mevcut kullanıcının bilgisini verir.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
whoami
whoami
whoami

whatis

Komutlarla ilgili kısa bilgi almak için kullanılır. 

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
whatis <komut>
whatis <komut>
whatis <komut>

man

Komutlarla ilgili detaylı bilgi almak için kullanılır.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
man <komut>
man <komut>
man <komut>
  • Mehmet Sütcü

    Linux serüvenine ortaokul yıllarında Pardus 2007 ile başlamış olan yazar, günümüzde Pardus Topluluk Yöneticiliği görevini üstlenmektedir.

[wpdiscuz_comments]