UNIX Konsol (Console) Nedir?
Linux tabanlı işletim sistemi dağıtımlarını (Ubuntu, Pardus, RedHat, CentOS, Mandriva, Debian, vs…) metinsel komutlarla yönettiğimiz ekrandır. Dosya/klasör silme, isimlendirme, izin değiştirme, taşıma, kopyalama, program yükleme, dosya sıkıştırma, network ve internet bağlantıları ve benzeri birçok işlemler bu konsol aracılığıyla yapılır.
Windows için MS-DOS neyse, Linux için de Unix odur.
Neden Konsol Komutlarına İhtiyaç Duyayım Ki?
Bu soruya kendi açımdan cevap verecek olursam, putty gibi programlarla uzaktaki bir bilgisayara ssh bağlantısı yaparak o bilgisayarı hızlı bir şekilde yönetmenizi sağlar. Görsellikten çok uzak bir ekran olduğu için veri alışverişi de bir o kadar hızlıdır. Onun dışındaki işlemleri masaüstü programlarıyla da yapabilirsiniz.
Ayrıca bilgisayarınızı güvenli modda açtığınızda ya da çeşitli kurtarma modlarında kullandığınızda çok işe yarar bulabilirsiniz bu komutları.
12 Temel Unix/Linux Konsol Komutu
1. su
[shell]$ su root
Parola: [/shell]
Bu komut kullanıcı değiştirmek (set user/substitute user) için kullanılır. Yönetici haklarına sahip olmak için “su root” yazıp parolayı girip enter’a basmanız yeterlidir. Kullanıcı terketmek için
[shell]$ exit[/shell]
komutunu kullanabilirsiniz.
2. ls
Bu komut o an içinde bulunulan dizindeki dosya ve klasörleri listelemek için kullanılır:
[shell]$ ls[/shell]
Bu listeleme işinde biraz daha abartıp gizli dosya ve klasörler dahil olmak üzere tüm herşeyi izinleri ve tarihleriyle beraber listelemek için a (all) ve l parametrelerini kullanmalısınız:
[shell]$ ls -al[/shell]
3. cd
Bir klasöre girmek için cd (change directory) komutu kullanılır.
[shell]$ cd klasor_ismi[/shell]
Bazı özel dizinler için bazı kısayollar vardır. Bunları kullanarak direk o klasörlere atlayabilirsiniz. Mesela root (kök) dizine direk iniş yapmak için:
[shell]$ cd /[/shell]
Ev dizinine direk atlayış yapmak için:
[shell]$ cd ~[/shell]
Bu kodlarda / (shift + 7 ile çıkartıyorum) yani slash kök dizini sembolize eder, ~ (alt gr + ü ile çıkartıyorum) yani tilda ise o an giriş yapmış olduğunuz kullanıcının ev dizinini sembolize eder.
Masaüstümde bulunan “Benim Çalışmalarım” adlı klasöre tüm dizin yolunu girerek de ulaşabilirim. Bunun için:
[shell]$ cd /home/yigith/Masaüstü/Benim\ Çalışmalarım/[/shell]
Burada farkettiyseniz boşluk karakterini başına ters slash koyarak ifade ettik. Yoksa “Böyle bir dosya ya da dizin yok” gibi bir hatayla karşılaşabilirsiniz.
Peki bir üst dizine çıkmak için ne yapacaksınız:
[shell]$ cd ..[/shell]
4. mkdir
“Notlarım” isimli yeni bir klasör oluşturmak için mkdir (make directory) komutu kullanılır:
[shell]$ mkdir Notlarım[/shell]
Peki iç içe 2 yeni klasörü tek satır kodla oluşturmak istersek:
[shell]$ mkdir -p Derslerim/Matematik[/shell]
Burada p (parents) parametresini kullandık çünkü “Derslerim” dizini daha meydanda yokken içinde Matematik diye bir dizin oluşturmak istedik. Normalde “p” parametresini kullanmasak hatayla karşılaşacakken, p parametresi sayesinde önce Derslerim dizini içinde de Matematik dizini oluşturulur.
5. rm
Bir dizini ya da dosyayı silmek/kaldırmak için kullanılır.
[shell]$ rm notum.txt[/shell]
Kaldırmak istediğiniz dizin ise, içindeki tüm herşey ile birlikte silmek için r (recursive) parametresi kullanılır. Emin misin, son kararın mı gibi soruların önünü kesmek için de f (force) parametresi eklenir.
[shell]$ rm -rf Notlarım[/shell]
Not: Emin misin gibi sorulara ‘y’ harfiyle cevap verirseniz evet, ‘n’ harfiyle cevap verirseniz hayır anlamına gelir. (yes/no)
6. mv
mv komutu (move) hem dosya ya da dizini bir yerden başka bir yere taşımak, hem de isim değiştirmek için kullanılır.
Öncelikle ofice ismindeki dizinimizin ismini office olarak değiştirelim
[shell]$ mv ofice office[/shell]
Şimdi de “office” ismindeki dizini ev dizinindeki(~), “Belgeler” adlı dizinin içine taşıyalım.
[shell]$ mv office ~/Belgeler/[/shell]
Farkettiyseniz mv’nin çalışma mantığı şudur:
mv [taşınacak dizin/dosya yolu] [gideceği dizin/dosya yolu]
Not: Unix’te dosya ya da dizin ismi yazarken büyük/küçük harf ayrımına dikkat ediniz.
7. cp
cp komutu (copy) bir dosyayı/dizini bir yerden başka bir yere kopyalamak için kullanılır. Kullanımı mv komutuyla aynı olup tek farkı kopyalanan dosya orjinal yerinden silinmez.
Bu sefer bulunduğumuz dizinde bulunan “notlarim.txt” adlı dosyayı “ali” ismindeki kullanıcının masaüstüne kopyalayalım.
[shell]$ cp notlarim.txt /home/ali/Masaüstü/[/shell]
Not: Eğer başka bir kullanıcının kişisel dizinlerine ulaşmak istiyorsak, o kullanıcı ya da root kullanıcısıyla işlem yapıyor olmalıyız.
8. chmod
Bu komut dosya ve dizinlerin okuma/yazma/çalıştırma izinlerini değiştirmeye yarar. Bu komutun farklı kullanım şekilleri olduğu için bir kaç işinize yarayabilecek örneğini vermekle yetineceğim:
“deneme” adlı dizinden yazma izninini almak için:
[shell]$ chmod -w deneme[/shell]
Burada – çıkar anlamında w’da write(yaz) anlamındadır. – yerine + kullansaydık deneme klasörüne yazma izni vermiş olacaktık.
Burada değinmeden geçemeyeceğim bir husus var. Her bir özellik için bir sayısal ve alfabetik karşılık vardır.
Read(yazma) | r | 4 |
Write(okuma) | w | 2 |
Execute(çalıştırma) | x | 1 |
Ve üç çeşit de izin türü vardır.
All(tümü) | a |
User(kullanıcı) | u |
Group(grup) | g |
Other(diğer) | o |
Şimdi deneme adlı dizinin grup ve diğer izinlerine yazma ve okuma izni verip, çalıştırma iznini almak istersek ne yapmalıyız? Cevap:
[shell]$ chmod go+rw-x deneme[/shell]
Bu kodu inceleyecek olursak, go ön eki group ve other anlamına geliyor yani izin türleri, sonraki +rw, read write özelliği ata demek. -x ise execute özelliğini kaldır demek. Fazla karışmaması için bu komutun anlatımını burada bırakıyorum. Ayrıntılı bilgi için google.com’a başvurun.
9. cat
“cat” bir dosyanın metinsel içeriğinin görüntülemeye yarar. Örneğin “harcamalarım.txt” adlı bir metin dosyamız olsun. Bunun hızlıca içeriğini görmek istiyoruz. O zaman:
[shell]$ cat harcamalarım.txt[/shell]
Peki diyelim ki “istiklalmarsi.txt” adlı dosyada İstiklal Marşı’mız var ve ekrana sığmayacak kadar uzun. Parça para görüntülemek için (space bar ya da yön tuşlarıyla aşağıya kaydırarak):
[shell]$ more istiklalmarsi.txt[/shell]
10. vi
“vi” komutu yeni bir metin belgesi oluşturmak veya mevcut bir metin belgesi üzerinde işlem yapmak için kullanılır. Şimdi sizle çok basit bir uygulama yapacağız. Ama önce güzel bir senaryo bulalım. 🙂
Arkadaşımız acilen aradı ve bizden bir telefon numarasını not alıp onu yarım saat sonra arayıp orta boy karışık pizza sipariş etmemizi istedi. Arkadaşımızın fazla kontörü kalmadığı için bunu mümkün olduğunca hızlı yapmamızı da rica etti. Biz de o an not alacak hiç bir kağıt kalem bulamadık ve o an önümüzde açık olan konsol uygulamasını gördük, bir metin belgesi açıp arkadaşımızın söylediklerini not almamız için tam 2 saniyemiz var. Ne yaparız???
Cevap:
[shell]$ vi not[/shell]
Bu komutla karşımıza notumuzu alabileceğimiz bir konsol uygulaması açılır. Şimdi hemen arkadaşımızın söylediklerini yazalım. (Yazmaya başlamadan önce, yazma moduna geçmek için bir kere ‘a’ harfine basıyorum.)
[shell]05xx 1234567
1 karışık pizza
promosyonunda mantar olmasın
2 kola, birisi light olsun
[/shell]
Arkadaşımıza güle güle dedikten sonra şimdi bunu kaydetmeye geldi. Kaydetmek için klavyede sırayla şu tuşlara basın:
[shell]Esc
:wq
[/shell]
Esc klavyenin sol üstünde bulunan çıkış tuşu, sonra yazacaklarımız ise programın anlayacağı kısaltmalar. ‘:’ ile besmele çekiyoruz, ‘w’ ile write anlamında değişiklikleri dosyaya yazmayı emrediyoruz. ‘q’ ile quit anlamında çıkmayı emrediyoruz.
Şimdi çok heyecanlıyız. Vi ile “not” adında bir metin belgesi oluşturduk ve kaydettik. Acaba kaydetmiş mi diye bi bakıp çıkacağız. O zaman sırayla şunları yaparız:
[shell]$ vi not
:q
[/shell]
w demediğimiz için mevcut dosyada değişiklik yapmadan çıkar. Yarım saat sonra zaman geldiğinde;
[shell]$ cat not[/shell]
diyerek notumuzu görüntüler ve pizzacıyı ararız. Afiyet olsun.
11. clear
“clear” komutu konsol ekranımızı temizlemeye yarar.
[shell]$ clear[/shell]
Bu komutu baktınız karşınızda can sıkıcı, görüntü kirliliği oluşturan komutlar ve yazılar var, işte o zaman kullanabilirsiniz. 🙂
12. ftp
Şimdi sizle ftp ile websitenizde nasıl bir sayfa yayınlarsınız, onun uygulamasını yapıp görüntülerini video ile sunacağım.
[hana-flv-player video=”http://blog.yigith.com/wp-content/uploads/2010/12/unixftphosgeldin2011.flv” width=”600″ height=”456″ description=”” player=”4″ autoload=”true” autoplay=”false” loop=”false” autorewind=”true” /]
Videoda yayınladığımız sayfayı görüntülemek için tıklayınız.
#1 by orhun on 02 Ocak 2011 - 01:09
Dostum süper olmuş eline sağlık…
#2 by Yiğit Hacıefendioğlu on 02 Ocak 2011 - 13:19
Beğenmene sevindim arkadaşım 🙂
#3 by Ertan on 05 Ocak 2011 - 01:15
Kardeşim çok güzel yazmışın kitapta bile bu kadar güzel anlatılamazdı. Gel birlikte bir kitap yazalım ama yüzde 51 benim 🙂
#4 by Yiğit Hacıefendioğlu on 05 Ocak 2011 - 01:16
Teşekkür ederim 🙂
#5 by ert on 05 Nisan 2011 - 20:44
harika olmuş üstadım. eline sağlık.
#6 by Yiğit Hacıefendioğlu on 05 Nisan 2011 - 20:59
@ert, rica ederim, güzel yorumlarınız bize daha iyisini yapabilmek için enerji vermektedir.
#7 by Fatma on 19 Ağustos 2011 - 10:43
Muthis bir yazi ellerinize saglik. Ben ilk kez linux ortamini kullaniyorum o yuzden yaziniz cok makbule gecti. Bir konuda takildim umarim yardimci olursunuz. Masaustunden bir klasoru /usr/local dizinine kopyalamak istiyorum. Cok denedim ama bir turlu yapamadim.
#8 by Hosting on 23 Ağustos 2011 - 15:04
Eline Sağlık. 🙂
#9 by salih on 17 Ekim 2011 - 11:32
bnm bi ödevm varda bişey sorcktm diyelim ki bi klasör ve içinede birkaç dosya oluşturdk, klasördeki görünür görünmez tüm dosyaları student.txt diye bir dosya oluşturup içine listesini yazdırmak için hangi komutları kullanmalıyz? bugn dönersnz çok sevnrm teşkkrler
#10 by Yiğit Hacıefendioğlu on 17 Ekim 2011 - 17:35
@salih , aşağıda yazdığım kod ile içinde bulunduğun dizin içindeki klasör ve dosyaları her biri bir satıra gelecek şekilde student.txt adlı dosyaya yazdırabilirsin.
Not: -1 parametresi her satıra bir dosya/klasör ismi gelmesini sağlar
#11 by salih on 17 Ekim 2011 - 17:48
cook saolasn =))
#12 by filiz on 20 Ocak 2012 - 01:41
Sınavdan önce bilseydim konsol komutlarına buradan çalışırdım 🙂 ellerine sağlık arkadaşım güzel paylaşım…
#13 by emine on 21 Şubat 2013 - 10:10
cok teşekkur edyorummmmmm 🙂