Download as pdf or txt
Download as pdf or txt
You are on page 1of 9

Linux'a Genel Bir Bak³

Kaya O§uz

March 20, 2009

1 Ksaca Linux

Linux, Unix
1 türevi bir i³letim sistemidir. Unix sistemleri yap ve i³leyi³

olarak DOS/Windows sistemlerinden farkl oldu§u için, bu sistemlerle daha


önce çal³mam³ kullanclar eski al³kanlklarn devam ettirmek isterler ve
dolays ile zorlanrlar. Bu belge, Linux kullanrken okumanz gereken birçok
belgeden sadece biridir. Linux i³letim sistemi yüksek oranda belgelendiril-
mi³tir ve genel olarak kar³la³t§nz sorunlar bu belgeleri okuyarak veya
arayarak giderilebilir. Bu mini belgenin ilk tavsiyesi, bol bol okumaktr.

Linux ve Özgür Yazlmn tarihi ve geli³imi hakknda internet üzerinde birçok


belge bulunmaktadr. Bu yüzden burada onlara de§inilmeyecektir.

1.1 Kabuk

Linux i³letim sisteminin temel kullanc arayüzü kabuktur. Herhangi bir


Linux makineye uzaktan ba§lanp, giri³ yapt§nzda, seçti§iniz (veya daha
önceden sizin için seçilmi³) kabuk verdi§iniz komutlar i³letim sistemi üze-
rinde çal³trmak için hazr olarak sizi bekler. Bu kabuk genelde sh veya
bash kabu§u olur. Di§er komut satr ortamlarndan farkl olarak kabuklarn
birçok özelli§i kullancya yardmc olacak ³ekildedir. “u anki yazlm zen-
ginli§i ile komut satrndan çal³an müzik çalarlardan, annda mesajla³ma
programlarna, internet tarayclarna, dosya yöneticilerine kadar birçok i³-
lemi, graksel arayüze gerek olmadan yapabilirsiniz. Fakat, bu ba³lk altnda
bu yazlmlardan çok kabu§un kendisi ile ilgilenece§iz.

Last login : Mon Mar 2 09:57:48 2009 from ∗.∗.∗.∗


Have a lot of fun . . .
kaya@koguz_310 ~ $
kaya@koguz_310 ~ $ pwd
/home/ k a y a

1
http://en.wikipedia.org/wiki/Unix

1
Yukarda görülen giri³ ekran sonras metinlerde kabuk bize gerekli bilgileri
veriyor. Kullanc admz kaya, makine ad koguz_310, bulundu§umuz
dizin ise, ~ karakteri ile gösterilen, herkesin ev dizinine i³aret eden dizin.
En sondaki $ i³areti ise kullanc türümüzün normal bir kullanc oldu§unu
gösteriyor. Unix türevi i³letim sistemlerinde sistem yöneticisi kullancsnn
ad roottur ve sistem üzerinde bütün de§i³iklikleri bu kullanc ile yaparz.
Ama root, günlük kullanm için tavsiye edilmez. Bunun nedeni root'un sistem
üzerindeki gücüdür, yanl³ bir i³lemle sistemi bozabiliriz. E§er sisteme root
ile girmi³ olsaydk, $ i³areti yerine # i³areti bizi bekliyor olacakt. Bu belge
içinde ve genelde bütün linux belgelerinde e§er komuttan önce # i³aretini
görürseniz, bu komutu root olarak çal³trmanz gerekti§ine bir i³arettir.

Komut satrnda üst ok tu³unu kullanarak geçmi³ komutlarnz görebilir ve


tekrar çal³trabilirsiniz. Bunun d³nda sekme tu³una bir kere basarak oto-
matik tamamlama yapabilirsiniz. Kabuk ile ilgili ayarlarnz ev dizininizde
bulunan .bashrc dosyasnda tutulur.

Herhangi bir linux oturumunu kapatmak için exit komutunu kullanabilirsiniz.

1.2 Path

Komut satrnda çal³rken PATH'nzda hangi dizinlerin oldu§unu bilmeniz


iyi olacaktr. Bulundu§unuz dizinde bir komut verdi§inizde bu komut aslnda
ba³ka bir dizinde olmasna ra§men çal³trabilirsiniz. Bunun nedeni, baz di-
zinlerin sizin PATH'nzda (yolunuzda) olmasdr. Bu sayede, bu komutlar is-
tedi§iniz her yerden çal³trabilirsiniz. PATH'nza dahil olan dizinlerden biri
de . (nokta) olabilir. Nokta, bulundu§unuz dizini gösterir. ki nokta, ..,
bir üst dizini gösterir. cd komutu ile bir üst dizine çkmak için bu iki noktay
kullanrz. Bulundu§umuz bir dizinde bir dosyay çal³trmak için de ./ kul-
lanrz; örne§in ./komutadi. PATH'nzdaki dizinleri görmek için echo $PATH
komutunu verebilirsiniz. Buradaki $PATH bir sistem de§i³kenidir. E§er bir
dizini daha eklemek isterseniz export PATH=/dizinin/tam/adresi:$PATH
³eklinde bir komut verebilirsiniz. PATH'nzda olan herhangi bir komutun
tam yolunu ö§renmek isterseniz which komutunu kullanabilirsiniz. Örne§in
which ls komutu bana /bin/ls yolunu gösteriyor.

1.3 Temel Linux Komutlar

Burada, kabukta kullanabilece§iniz temel linux komutlarna bakaca§z. Bun-


larn bir ksm dosya i³lemleri için kullanlmaktadr. Herhangi bir komut
hakknda daha fazla bilgi almak için el kitab (manual) sayfalarna bakabilir-
siniz. Bunun için man komutunu kullanabilirsiniz. Örne§in en sk kullanlan
komutlardan biri olan ls komutunun belgelerine ula³mak için man ls komu-
tunu verebilirsiniz. Bir di§er yöntem de, komutun ksa kullanmn görmek

2
Komut Açklama

ls Dizindeki dosya ve dizinleri listeler. Bu komut düz hali ile


gizli dosyalar göstermez. Linux'ta gizli dosyalar nokta (.) ile
ba³lar. -a parametresi ile bütün dosyalar gösterir.
cp Dosyalar kopyalamak için kullanlr. cp dosya1 dosya2
ifadesinde dosya1'i, dosya2 adyla kopyalar
mv Ta³ma ve yeniden isim verme için kullanlr. mv dosya1
dosya2 ifadesinde dosya1'i dosya2 olarak ta³r (veya adn
de§i³tirmi³ olur)
mkdir Bu komut ile bir dizin yaratabilirsiniz.
rm Bu komut ile dosya ve dizinleri silebilirsiniz. Dizinleri
silerken -r parametresini verebilirsiniz.
less less bir dosya görüntüleyicidir. Herhangi bir metin dosyasn
less komutu ile görüntüleyip dosya içinde ok tu³lar ile
gezebilirsiniz. / tu³una basarak arad§nz ifadeyi yazarsanz
less size dosya içinde arama yapar.
mc E§er sisteminizde yüklüyse, Midnight Commander (mc) bir
dosya yöneticisidir. Bu program ile dosya kopyalama,
ta³ma, düzenleme, görüntüleme i³lemlerini yapabilirsiniz.

Tablo 1: Temel linux komutlar ve açklamalar

için komut arkasndan help parametresini vermektir. Bu birçok komut için


çal³r. Yine ls komutu için ls help olarak yazabilirsiniz.

1.4 Linux Dosya Sistemi

Linux dosya sistemi, sabit disk ve DVD sürücülere verilen harf sisteminden
farkldr. Bütün dosya sistemi kök dizin içine ba§lanr. Kök dizin '/' ile gös-
terilir.

kaya@koguz_310 ~ $ cd /
kaya@koguz_310 / $ ls
bin dev home media opt root sys usr
boot etc lib mnt proc sbin tmp var

Yukarda da görüldü§ü gibi kök dizin içinde birçok dizin vardr. Bunlarn
önemli olanlarna ksaca de§inelim. bin dizininde çal³trlabilir dosyalar olur.
Örne§in yukardaki ls komutu bu dizinde yer alr. home dizini kullanclarn
ev dizinlerinin bulundu§u dizindir. etc sistem ayar dosyalarnn bulundu§u
dizindir. mnt ve media sabit disk ve CD/DVD sürücülerin, USB Flash bellek-
lerin ba§land§ dizindir. Genelde bu dizin içinde aygtn ad altnda bir dizin
olu³turulur ve aygt bu dizine ba§lanr. Böylece dosya sisteminin bir parças

3
Okuma Yazma Çal³trma

Kullanc + + -
Grup + - -
Di§erleri + - -

Tablo 2: Dosya zin Tablosu

olur. usr, Windows'taki Program Files gibi sistemi kurulu olan programlar,
belgeleri ve dosyalar içerir.

Linux'ta her dosyann bir sahibi vardr. Yine her dosyann okuma, yazma ve
çal³trma izinleri vardr. Bütün bunlar bir araya gelince, bir dosyann sahibi,
sahibinin dahil oldu§u kullanc grubu ve geri kalanlar olmak üzere üç farkl
kullanc tipi için üç farkl izin (okuma, yazma, çal³trma) haklar olur.

Tablo 2'de bir dosya için örnek izinler gösterilmi³tir. Burada dosyann okuma
izni herkes için vardr. Yazma izni ise sadece kullancya aittir. Çal³trma izni
ise hiçbir kullanc için yoktur. Dosya izinlerini belirlemek için chmod komu-
tunu kullanrz. Bu komut izinleri belirlemek için 3 basamakl bir say alr.
Örne§in chmod 644 dosya komutu ile yukardaki tablodaki sonucu elde ede-
biliriz. Buradaki rakamlardan ilki (6) kullancy göstermektedir, ikincisi (4)
grubu, üçüncüsü de di§erlerini. Bu de§erleri elde etmek için okuma, yazma
ve çal³trma izinleri için belirlenen saylar topluyoruz. Okuma izni için 4,
yazma için 2, çal³trma içinse 1 kullanyoruz. Bu durumda, kullancnn izin-
leri olan okuma ve yazma için 4+2 i³lemi ile 6 elde ediyoruz. Grup ve di§er-
lerinin sadece okuma izinleri oldu§u için onlar sadece 4 de§eri ile kalyorlar.
E§er hiçbir izin vermeyeceksek 0 kullanabiliriz; örne§in 700 okuma, yazma
ve çal³trma izinlerini sadece kullancya verir. Di§er kullanclar bu dosyay
okuyamazlar, de§i³iklik yapamazlar ve de§i³tiremezler.

1.5 root olmak

Baz i³lemler için ister istemez root olmanz gerekecekir. Bu belgenin de-
vamnda bunlara de§inece§iz. Bu i³lem için, her ³eyden önce root parolasn
bilmeniz gerekmektedir. Kabukta i³lerinizi yaparken bir an için root olmanz
gerekirse, kabuktan çkp tekrar root ile giri³ yapmak yerine o kabuk içinde
su komutu ile root olabilirsiniz. su komutu sizden root parolasn isteyecek,
arkasndan kabukta # i³areti belirecektir. Bu durumda verece§iniz komut-
larda çok dikkatli olmalsnz. ³iniz bitti§inde exit komutu ile root olmaktan
çkabilirsiniz.

4
1.6 Pipe

Pipe i³lemi, | i³areti ile bir komut çktsn ba³ka bir komuta yönlendirmeye
(piping) denir. Örne§in, ls komutu verdi§inizde ekran çok fazla doluyor ve
rahat görüntüleyemiyorsanz bunu dosya görüntüleyici less komutuna yön-
lendirebilirsiniz: ls | less. Yönlendirdi§iniz bu çkt içinde, less sayesinde,
arama yapabilir, yukar ve a³a§ gezinebilirsiniz. E§er çktda bir ³ey ar-
yorsanz grep komutuna yönlendirebilirsiniz. Bu komut ile çktda arad§nz
ifadeyi içeren satrlar görebilirsiniz. Örne§in, çal³an i³lemleri gösteren ps
aux komutu çktsnda, arad§mz programn adn yazarak ilgili satrlar
görebiliriz; ps aux | grep calisanDosya.

Arka arkaya yönlendirme yapabilirsiniz. Örne§in grep komutu sonucu çkan


satrlar da less 'e yönlendirebilirsiniz; ps aux | grep abc | less.

1.7 Çkt aktarma >

Herhangi bir komutun çktsn bir dosyaya > i³areti ile aktarabilirsiniz. Ör-
ne§in, ls > dosyaAdi derseniz, ls komutunun çkts dosyaAdi denen dosyaya
yazlr.

2 A§ Komutlar

Son zamanlarda bir a§a ba§lanrken genelde ba§lanlan a§dan bir IP ad-
resi ve di§er bilgiler istenir. Ama bu i³lemleri elimizle yapmak istersek bu
bölümün devamnda anlatlan kablolu ve kablosuz ba§lant komutlarn in-
celeyebilirsiniz.

Linuxta a§ aygtlar genelde eth ifadesi ile ba³lar. lk ethernet kart eth0,
varsa di§er ethernet kartlar eth1, eth2 ³eklinde devam eder. A§ kartlarnn
durumunu görmek için ifcong komutunu verebilirsiniz. Normal kullanc
olarak a§ kartlarnn ayarlar üzerinde de§i³iklik yapamazsnz. Bu i³lem için
root olmanz gerekmektedir.

Herhangi bir a§ kartna otomatik IP atamak için dhcpcd komutunu kullana-


bilirsiniz.

2.1 Kablolu Ba§lant

Kablolu ethernet kartnzn eth0 oldu§unu varsayarak ifcong eth0 192.168.1.1


netmask 255.255.255.0 komutu ile ethernet belirtilen IP ve subnet adresini
alabilirsiniz. Elbette, ayarlar el ile yapt§nz için di§er makinelerdeki IP'ler
ile bu IP'nin kar³mamas sizin sorumlulu§unuzdadr.

5
Bir ethernet kartn etkisiz hale getirmek için ifcong eth0 down, tekrar etkin
hale getirmek için ifcong eth0 up komutunu verebilirsiniz. Bu i³lemler daha
önceki ayarlarnz silebilir.

E§er ba³ka bir bilgisayar üzerinden internete çkacaksanz route komutu ile
öntanml gateway ayarlayabilirsiniz. route tek ba³na yönlendirme tablosunu
basar. Paketlerin yönlenmesini istedi§iniz makinenin IP'sinin 192.168.1.50
oldu§unu dü³ünerek, route add default gw 192.168.1.50 komutu ile paketlerin
bu makine üzerinden gitmesini sa§layabilirsiniz.

Ayarlar yaptktan sonra sistemi test etmek için genelde ping komutu kullan-
lr. Bu komut belirtilen adrese küçük paketler gönderir ve ondan ayn ³ekilde
cevap ister. Ba§lantnn çal³t§n, internet ba§lantsnn kontrol edilmesi
için kullanlr. Kullanm, test edilmek istenen IP adresi ile ping 192.168.1.2
³eklindedir.

2.2 Kablosuz Ba§lant

Kablosuz ba§lant için üstteki komutlarn ço§u geçerlidir. Örne§in, ifcon-


g komutu ile a§ aygtlarna göz atarken, kablosuz a§ kartlar da görünür.
Bu kartlar bazen wlan0 ³eklinde de gözükebilir. Kablosuz kartnz görmek
için iwcong komutunu kullanabilirsiniz. Kablosuz kartnzn adn buradan
ö§rendikten sonra, ortamdaki kablosuz a§lar görebilmek için iwlist wlan0
scanning komutunu verebilirsiniz. Bu komut sayesinde ortamdaki kablosuz
ba§lant ID'lerini görebilirsiniz. Seçti§iniz kablosuz a§a ba§lanmak için iw-
cong wlan0 essid IDADI komutunu verebilirsiniz. Bu noktadan sonra bu
a§daki ayarlarnz kablolu a§daki gibi ifcong komutlar ile yapabilirsiniz.

2.3 Ayar Dosyalar

Daha önce belirtti§imiz /etc dizinindeki baz dosyalar a§ ile ilgili ayarlar
tutar. Bunlardan ilki /etc/hosts dosyasdr. Burada IP adresini bildi§imiz
makinelere isim verebiliriz. Bu dosyada 127.0.0.1 genelde localhost olarak
hazr tanmldr. A§daki di§er bilgisayarlar buraya eklerseniz, IP adresleri
yerine bu isimleri kullanabilirsiniz.

Bir di§er dosya ise /etc/resolv.conf dosyasdr. Bu dosyada da isim sunucu-


lar bulunur. sim sunucular, isimlerden IP adreslerinin bulunmasn sa§lar.
Örne§in, ping www.google.com.tr ³eklinde bir komut verildi§inde, isim sunu-
cusuna google.com.tr'nin IP adresi sorulur.

2.4 SSH ile Ba§lant

SSH, uzaktaki bir makineye ba§lanmanz sa§lar. Linux üzerinde ssh istem-
cisi ile birlikte gelir. Ba§lanmak için ssh 10.0.50.18 -l kullanici komutunu

6
verebilirsiniz. Buradaki IP adresi yerine ba§lanaca§nz adresin bir ad varsa
(mesela ssh.google.com gibi) onu da yazabilirsiniz. -l parametresi giri³ için
kullanaca§nz kullanc adn belirlemenizi sa§lar. Sisteme giri³ yaptktan
sonra, kabuk i³lemlerini istedi§iniz ³ekilde kullanabilirsiniz.

3 Yararl Komut ve Programlar

Burada i³inize yarayabilecek bir iki komut satr programna de§inildi.

3.1 vi, vim (vi improved)

vi, (vi-ay, vay), Emacs ile birlikte Linux altndaki en ünlü dosya düzenleyici-
lerden biridir. Ne yazk ki bu belge bu düzenleyici tantmak için fazla küçük-
tür. Baz dosyalar düzenlemeniz gerekti§inde sistemde sadece vi olabilir. Bu
durumda belge içinde gezinip, düzenleme yapp, kaydedip çkma kadar i³inizi
görecek bir anlatm olacak bu. vi'da iki tane durum vardr, biri düzenleme
durumu, di§eri de komut durumu. vi ilk ba³lad§nda komut durumunda sizi
bekleyecektir. Böylece açt§nz dosyay düzenleyemeyebilirsiniz. Düzenleme
durumuna geçmek için i (insert) ya da a (append) tu³larndan birine basa-
bilirsiniz. Düzenlemeniz bitince, Esc tu³u ile komut durumuna geçebilirsiniz.
Bu durumda iken :w yazp Enter'a basarsanz dosyanz kaydedilecektir. Kay-
dedip çkmak için :wq (write and quit), yapt§nz de§i³iklikleri kaydetmeden
çkmak için :q! komutlarn verebilirsiniz. E§er ba³langçta bir dosya ad ver-
mediyseniz kaydetme i³lemini :w dosyaadi ³eklinde kullanabilirsiniz. Daha
fazla bilgi ve bu düzenleyiciyi ö§renmek için :help komutu verebilirsiniz.

3.2 pico, nano

Bu iki düzenleyici de benzer olduklar için onlar tek bir ba³lk altna aldm.
nano dosya düzenleme ve kaydetme i³lemlerini ekrann altndaki ksayollarla
gösterir. Bu ksayollarda ^ i³areti Ctrl tu³unu gösterir.

3.3 Çe³itli Linux Komutlar

Buradaki bütün komutlarn bir de man sayfalar okunmas tavsiye olunur.

3.3.1 passwd

Parolanz de§i³tirmek için passwd komutunu kullanabilirsiniz. E§er root ise-


niz bu parolay di§er kullanclarn parolalarn de§i³tirmek için de kullana-
bilirsiniz. Bunun için passwd kullanici demeniz yeterli olacaktr.

7
3.3.2 pwd

pwd, 'print working directory' anlamna gelir. çinde bulundu§unuz dizini


gösterir.

3.3.3 less, cat

less, dosya içeri§ini görüntüler, dosyada ileri ve geri gidebilmenizi, arama


yapabilmenizi sa§lar. cat ise dosya içeri§ini veya standart girdiyi, standart
çktya veya ba³ka bir dosyaya atar. cat ile dosya içeri§ini ekrana yazdrabi-
lirsiniz.

3.3.4 echo

Ekrana bir satr metin basmaya yarar. echo merhaba dünya komutu ile
ekran bu ifadeyi yazdrabilirsiniz.

3.3.5 who, whoami

who komutu ile o anda sistemde bulunan di§er kullanclar görebilirsiniz.


whoami komutu ise kendi kullanc adnz gösterir.

3.3.6 alias

alias ile baz komutlara ksayollar yaratabilir, yeni isimler verebilirsiniz. Bu


komutu tek ba³na verdi§inizde prolinizde kaytl olan alias 'lar gösterir.
Yenilerini ev dizininizde bulunan .bashrc dosyasn düzenleyerek ekleyebilir-
siniz.

3.3.7 df, du, free

df, disk free, du ise disk usage anlamna gelir. kisini de disk üzerinde kalan
ve/veya kullanlan yerleri görebilmek için kullanabilirsiniz. kisi için de -
h parametresi kalan yerleri daha rahat okunacak ³ekilde biçimlendirir. du
komutu için içinde bulundu§unuz dizini verebilirsiniz:  du -h .

free komutunu bellek durumunu görmek için kullanabilirsiniz.

3.3.8 tar

Linux altnda dosyalar genelde tar.gz olarak sk³trlr. Bir tar.gz dosyasn
açabilmek için tar -xzf dosya.tar.gz komutunu verebilirsiniz. Bir dizini sk³-
trmak için tar -czf dizin.tar.gz dizinAdi/ komutunu verebilirsiniz.

8
3.3.9 kill, killall

kill ve killall i³lemleri durdurmanza, son vermenize yardmc olur. kill kul-
land§nzda i³lem id'sini, killall kulland§nzda da i³lem adn vermeniz ge-
reklidir. ³lem id'lerini görebilmek için ps aux komutunu kullanabilirsiniz.
Örne§in, 9932 numaral i³lemi öldürmek için kill -KILL 9932 verebilirsiniz.
E§er uygulama adn biliyorsanz killall -KILL uygulamaAdi komutu i³inizi
görecektir. Burada -KILL i³leme gönderilen bir sinyaldir. Di§er sinyalleri kill
-l parametresi ile görebilirsiniz.

3.3.10 ln

ln ile ba§lantlar kurabilirsiniz. Windows üzerindeki ksayollara benzese de


aslnda çok farkldrlar. Örne§in, /var/www/html gibi bir dizini, ev dizini-
nizdeymi³ gibi kullanabilirsiniz. Tek yapmanz gereken o dizine bir ba§ ev
dizininizde tutmak (yazma izinleri oldu§unu varsayalm). Bunu yapmak için
ln -s /var/www/html html komutunu vermek. Daha sonra ls -l komutu ile di-
zine bakt§nzda html dizininin -> i³areti ile /var/www/html dizinine ba§l
oldu§unu görürsünüz.

3.3.11 uname, uptime

uname, sistem hakknda bilgi verir. uname -a olarak çal³trrsanz sistem


hakknda bütün (all - a) bilgileri gösterir. uptime, sistemin ne kadar süredir
açk oldu§unu gösterir.

4 Daha fazla ö§renmek için

Linux, elbette burada bitmiyor. Daha fazlasn ö§renmek ve daha çok kullan-
mak için internette ksa bir arama yapmanz yeterli olacaktr. A³a§da baz
ba³langç noktalar verilmi³tir.

• http://www.belgeler.org/

• http://www.linux.org/lessons/

• http://www.tldp.org/

• http://comp.ieu.edu.tr/bimeko/web/linuxKomutlari.pdf

You might also like