Linux komutları ve anlamları




Temel Linux komutları ve tuşlar


Bu bölümde Linux kullanmak için gerekli olan temel komutları ve tuş komutlarını göreceğiz. Bu komutların hepsi konsol dediğimiz text ekrandan veya X-windows altındaki bir terminal programından (x-term, rxvt, aterm gibi) çalışmaktadır. Fakat tuş komutlarının bir kısmı konsola özgüdür ve x-altında pencere yöneticinize göre farklı hareket etmektedirler.

<Ctrl><Alt><F1>
Bir sonraki terminale geçmektedir. Birçok linux dağıtımı açılışla birlikte altı standart terminal açar. Bunlar tamamen birbirindne bağımsızdırlar ve eşzamanlı çalışırlar. Yani birinde bir işlem yapılmaya devam ederken bir diğerine geçip başka bir işleme başlayabilirsiniz.

tty
Bu komutu yazdığınız terminalin ismini verir size.

<Ctrl><Alt><F7>

Daha önceden açmış olduğunuz sonra <CTRL><Alt><F1> ile çıktığınız X oturumuna geri döner. Burada önemli nokta bunun altı konsollu bir sistemde geçerli olmasıdır. Eğer sisteminizde dört konsol varsa büyük ihtimalle bu işin tuşu F7 değil F5 olacaktır.

<Ctrl><Alt><Fn> (n=7-12)
n numaralı X terminaline geçer. Birden fazla X kullanmak mümkün olduğu için bunlar arasında geçiş yapabilirsiniz.

<Tab>
(text terminalde) Yazmakta olduğunuz komutu tamamlar. Mesela README dosyasını okutmak için more RE yazıp TAB'a basarsanız o anda bulunduğunu dizindeki RE ile başlayan dosyaların listesini görürsünüz, eğer tek dosya varsa satır tamamlanır. Aynı şey komut isimleri için de geçerlidir, bas yazıp taba bastığınızda hemen basename diye komutun tamamlandığını görürsünüz

<Yukarı-aşağı ok>
Daha önceden girilmiş komutlar arasında gidip gelmenizi sağlar

<Shift><PgUp>
Terminal çıktısında ileri geri hareket etmenizi sağlar (ekrandan çıkmış olan yazıları görmek vs.)

<Ctrl><Alt><+>
(X de) Bir sonraki ekran çözünürlüğüne geçmenizi sağlar. Tanımlı modlar /etc/X11/XF86Config dosyasında durmaktadır. En büyük ekran modu Virtual Screen boyutunu tanımlar.

<Ctrl><Alt><BkSpc>
(X de) Herşeyi kesip X'den çıkmanızı sağlar

<Ctrl><Alt><Del>
Sistemi kapatıp reboot etmek anlamına gelir. Konsoldaki shutdown komutu gibi davranır. Reset tuşuna bamayıp bunu tercih etmeniz gerekir.

<Ctrl>C
Mevcut komutu durdur. Genelde konsoldaki basit komutlar için kullanılır

<Ctrl>d
Eğer sizden girdi kabul eden bir konsol komutundaysanız dosya sonu (EOF) yollar, promptaysanız logout olursunuz. O yüzden iki defa basmayın 

<Ctrl>s
Terminale olan çıkışı durdurur

<Ctrl>q
Terminale olan çıkışa devam eder

<Ctrl>z
Çalışmakta olan komutu arka plana gönderir

exit
konsoldan çıkar

reset
konsol bir şekilde saçma sapan karakterler basıyorsa (genelde binary bir dosyayı ekrana çıkışa gönderdiğinizde olur) düzeltmeye yarar

<ctrl>x
konsolda bir işe yaramaz ama Matrix'de nedense Neo kullanıyordu. Neyse orda da bir işe yaramamıştı, sanırız Neo'da Linux kullanıyor 

<mouse orta tuşu>

Genelde bir başka pencerede seçilmiş bir yazıyı paste etmeye yarar. Burada dikkat edilecek nokta Linux altında (KDE ve bazı özel programların istisnası ile) copy+paste işleminin Windowsdan farklı olmasıdır. Bir yazıyı seçerseniz, o seçili olduğu sürece paste edilebilir olur (bir kez paste edildikten sonra zaten bufferda kalır) yani bir copy emri vermeniz gerekmez, seçip paste edileceği yere gidip orta tuşa basmanız yeter. Konsolda kullanılabilmesi için gpm çalışıyor olması gerekir

<Shift><Insert>
Paste işlemini klavyeden yapar

~

Kullanıcının ev dizini işaret eder /home/<login ismi> şeklindedir genelde. cd ~/docs ev dizini altında docs'a gider. Sadece cd komutu ise cd ~ komutuna eşittir ve ev dizine gider.

. ya da ./

o anda bulunduğunuz dizin

/. ya da Slashdot

Internet'deki en sağlam haber sitesine gider 

..

Bir üst dizini işaret eder

Bölüm 2: Genel komutlar

herhangibir_komut --help|more
sözkonusu komut ile ilgili help

man başlık
sistemdeki manuel dosyaları. Bir komut hakkında olabildiği gibi bir dosya hakkında da olabilir

apropos başlık
söz konusu başlıkla ilgisi olan komutlrın listesi

help komut
bash shell altında genel bilgi verir komut hakkında

ls
Unix için, dir komutu

ls -al|more
Bir dizindeki bütün dosyaları gösterir (. ile başlayan gizli dosyaları da) komut burada more komutuna yönlendirilmiştir, bu sayede daha kontrollü bir okuma sağlanabilir

cd dizin
Söz konusu dizine geçmek

cp kaynak hedef
Bir yerdeki dosya ya da dizinleri başka bir yere kopyalamak. Unix'lerde genelde bu tür komutlarda her zaman kaynak önce hedef sonra yazılandır

mcopy kaynak hedef
Belli bir kaynak dosya sisteminden (mount etmeniz şart değil) bir dosyayı başka bir yere kopyalama. Aynı mantıkta mdir, mcd, mren, mmove, mdel, mmd, mrd, mformat gibi komutlar da vardır

ln kaynak hedef

Sözkonusu hedefe hardlink atar. Sözkonusu dosyalar iki yerde de var gibi gözükür, herhangibir değişiklik diğerini de etkiler, biri silindiğinde diğeri kalır. Hardlinkin engelleri, linkle dosyanın aynı dosya sistemi içinde olması gerekliliği ve dizinlerle özel dosyalara hardlink verilememesidir.

ln -s kaynak hedef
Hedefde kaynak dosyasına sembolik bir link yaratır. Sembolik linkte sözkonusu dosyanın nerede bulunacağının bilgisi vardır. Sembolik linkler dizinler için de kullanılabilir. Tek problemleri ana dosya silindiğinde link bozulmuş olur.

rm dosyalar
Dosyaları silme. Sileceğiniz dosyanın ya sahibi olmanız lazım.

mkdir dizin
Yeni bir dizin yapmak

rmdir
boş bir dizini silmek

rm -r dosyalar
Dosya/dizin ve onların alt dizinlerini silmek. Root olarak kullanırken dikkat edin, çünkü herşeyi silebilirsiniz

cat dosyaismi|more
Bir dosyayı sayfa sayfa görüntülemek

less dosyaismi
Bir dosyayı daha kontrollü olarak okuma imkanı. More komutunun eşleniğidir, biraz daha fazla özellikleri vardır

pico dosyaismi
Bir text dosyasını, klasik basit bir tür editör ile editlemek. Aynı türden nano, joe, mcedit gibi editörleri de kullanabilirsiniz

pico -w dosyaismi
Pico'yu satır sonunda cümleleri yuvarlamadan kullanmak kullanmak için. Konfigürasyon dosyalarını edtlerken yardımcı olur

find / -name "dosyaismi"
Dosyaismi adlı dosyayı en üst dizinden itibaren aramaya başla. Dosyaismi, * ve ? gibi joker kararkterler de içerebilir "fazlames*" mesela fazlamesai.net.txt fazlamesai.org.txt dosyalarını bulur

locate dosyaismi
find gibidir fakat düzenli olarak oluşturulan bir veritabanına bağlıdır, sistemdeki son değişikliklerden haberi olmayabilir

touch dosyaismi
Dosyaismi isimli dosyanın tarih bilgilerini değiştirir. Eğer o anda yoksa bu dosya bu sefer sıfır byte uzunluğund oluşturur

xinit
Pencere yöneticisi olmayan bir X-windows açar

startx
Pencere yöneticili standart bir X açar. DOS'da win komutu gibidir.

startx -- :1
1 numaralı displayde X oturumu açar <Ctrl><Alt><F7-F8-F9...> ile geçiş yapabilirsiniz

xterm
Basit bir xterminal açar. Daha hafif versionları (rxvt, aterm, eterm gibi) bulunur ve tercih edilir

shutdown -h now
Sistemi durdurur ve (ATX sistemlerde) kapatır

halt
reboot
Makinayı kapatmak ya da reboot etmek için


Dosya sıkıştırma ve açma komutları

tar -xvf dosya.tar
Sözkonusu (sıkıştırılmamış) tar dosyasını bulunan dizine açar

tar -zxvf dosyaismi.tar.gz
Tar.gz'lenmiş bir dosyayı (*.tar.gz ya da *.tgz) bulunduğunuz dizine açar

tar -zxvf dosyaismi.tar.gz -C dizin

dosyayı dizin isimli dizine açar

tar -jxvf dosyaismi.tar.bz2 -C dizin

Bzip2 ile sıkıştırılmış dosyayı sözkonusu dizine açar (eski verisonlarda -Ixvf) kullanılırdı


tar -zcvf arsiv.tar.gz dizin1 dizin2 dosya1 dosya2...
söz konusu dizin ve (veya) dosyaları arsiv.tar dosyası haline getirir ve gzip ile sıkıştırır. z yerine j kullanabilirsiniz

gunzip dosya.gz / bunzip2 dosya.bz2

sözkonusu gz dosyasını açar

gzip -9 dosya
sözkonusu dosyayı en iyi şekilde sıkıştırır, uzantısını da .gz yapar

bzip2 -9 dosya
gzipten %20 oranında daha iyi sıkıştıran bir program, özellikle de text dosyalarında. Fakat daha yavaş çalışır

unzip dosyaismi -d dizin
Sözkonusu zip dosyasını söz konusu dizine açar

unarj e dosya.arj
Arj arşivini açar

uudecode -o hedef kaynak
uuencode ile kodlanmış (genelde email ekleri) dosyayı açar


Sistem hakkında bilgi almak için kullanılan komutlar:
pwd
bulunduğunuz dizinin ismini verir

hostname
makinanın ismini verir

whoami
login isminizi verir

id kullanıcıismi

kullanıcı nosunu, grup nosunu ve alt gruplarını verir

date
tarihi göstermek ya da değiştirmek için kullanılır
date 101709382002 17 Ekim 2002 Saat: 09 38 yapar tarihi
bios tarihini değiştirmek için setclock komutunu kullanmanız gerekir

time
belli bir komutun işlemini bitirmesinin ne kadar süre tuttuğunu gösterir
bir dizinin listelenme süresi mesela
time ls 

who
sisteme giriş yapmış kullanıcıların isimleri

finger username
belli bir kullanıcı hakkındaki bilgiler 

last
sisteme en son giriş yapmış kullanıcıların listesi

history|more
bulunduğunuz kullanıcı ile son girilen komutların listesi. |more sayesinde sayfa sayfa okuyabilirsiniz

uptime
makinanın ne kadar süredir açık olduğu

ps
kullanıcının koşturmakta olduğu işlemlerin listesi

ps axu |more
bütün proseslerin listesi

top
temel sistem durumu, çalışmakta olan programlar ne kadar hafıza/cpu kullandıkları vs

uname -a
yerel sunucunuzun hakkında bilgiler

free
hafıza bilgileri

df -h
disk doluluk boşluk oranı

du / -bh|more
dizinlerin boyutları (biraz zaman alır)

cat /proc/interrupts
kullanılmakta olan interruptlar

cat /proc/version
Linux versionu ve diğer bilgiler

cat /proc/filesystems
kullanılmakta olan dosya çeşitleri

cat /etc/printcap
yazıcıların düzeni

lsmod
yüklenmiş olan kernel modülleri

set|more
sistem değişkenleri

echo $PATH
PATH değişkeninin içeriği. Sistemde çalışabilir programların bulundukları yerleri belirler

dmesg| more
kernel mesajları /var/log/dmesg içine de bakabilirsiniz.



Bölüm3: Acil Durum Çözümleri/Genel Çözümler


Harddisk yapısı:
Bu noktada Linux'un harddiskleri nasıl tanıdığı konusunda bir şeyler açıklamakta fayda var sanırım. Linux harddiski cinsine, hangi ide kablosuna takılı olduğuna ve master/slave ayarlarına göre tanır.

Örnek:
1.ide'e takılı master bir harddisk /dev/hda'dır
2.ide'e takılı slave bir harddisk ise /dev/hdd'dir.
Dolayısıyla ana harddiskimizde yer açtığımızı düşünürsek vereceğimiz komut cfdisk /dev/hda olacaktır.
Evet, şu anda hda'nın bölümlerini görüyoruz. Burada görmemiz gereken şey tahminen

                                    cfdisk 2.11n
                                             
                             Disk Drive: /dev/hda
                           Size: 20560412672 bytes
             Heads: 255   Sectors per Track: 63   Cylinders: 2499
                                                                 
   Name        Flags      Part Type  FS Type          [Label]        Size (MB)
------------------------------------------------------------------------------
   hda1        Boot        Primary   Win95 FAT32                       6000.52 
   hda2                        Logical   Win95 FAT32                       3000.24
   hda3                     freespace            1222.52 


böyle bir ekrandır.

Yeni partisyon oluşturmak:

Yeni bölüm oluştururken bizim ayarlayacağımız disk bölümü Freespace yerine gelecektir. Bu yüzden cursor tuşları ile freespace'in olduğu yere gelip orada New komutunu vereceğiz. Bunu verdiğimizde cfdisk bize direkt olarak bu alanı Linux olarak ayırır. Bunu yaparken de ne kadar yer ayıracağını sorar.Verdiğimiz örnekte elimizde 1222 mb boş alan bulunmakta. Bunun 1100'ünü Linux için 122'sini de swap olarak ayırmak fena olmayacak. Şimdi bunun için bize ayırmak istediğimiz yer sorulduğunda 1100 diyeceğiz ve otomatik olarak Linux bölümü oluşturulacak. Ve geri kalan 122mb freespace olarak belirtilecek. Tekrar burayi da secip bölümlendirdiğimizde bu sefer yeni olusan 122mb'lık bölümün üstüne gidip Type seçeneği ile listeden 82'i seçip burayi linux swap yapmamiz gerekmekte.

Tamaaam şimdi göreceğiniz son ekran

  Name        Flags      Part Type  FS Type          [Label]        Size (MB)
------------------------------------------------------------------------------
   hda1        Boot        Primary   Win95 FAT32         6000.52 
   hda2          Logical   Win95 FAT32         3000.03
   hda3                        Logical   Linux ext2         1100.49
   hda4                        Logical   Linux swap         122.03


Yapacağımız son işlem ise Write seçeneğini seçip bu disk bölümlenme bilgilerini diske yazıp geçerli hale getirmek. Bu noktada isterseniz sil baştan yapıp yeniden bölümlenme yapabilirsiniz, daha hiçbir şey yazılmadı harddiske.

Write seçeneğini de kullandiktan sonra yapmamiz gereken mke2fs /dev/hda3 ile Linux bölümünü ext2 dosya sistemine göre formatlamaktır.

Harddiskde hata var!


Harddiskde bir hata durumunda sistem büyük ihtimalle tamir modunda açılmak için sizden root passwordü isteyecektir. Hatta bu bile olmayabilir. Böyle bir durumda yapmanız gereken başka bir disk/cd den boot edip mount etmeden fsck yapmaktır ext2 ve ext3 sistemlerde bu komutu çalıştırabilirsiniz.

e2fsck -fy /dev/hda3 komutu ile yapabilirsiniz, büyük ihtimalle problem hallolacaktır.

Windows Diskleri/CdRom'ları mount etmek


Yeni auto mount sistemler dışında Linux'da ana dosya sisteminin parçası olmayan (ve çıkarılıp takılaiblir medya) mount edilir. Bu Linux'un dosya sistemi ağacının bir parçasıdır.

Önce bir dizin yaratırsınız
/mnt/fatc gibi

sonra da bunu mount edersiniz
mount /dev/hda1 /mnt/fatc

artık C driveınıza ulaşmak istediğinizde yapmanız gereken /mnt/fatc dizinini kullanmak

aynı sistemde CD/floppy mount etmek için

mount /dev/cdrom /mnt/cdrom

kullanıyorsunuz

özellikle cd mount ederken dikkat edilecek nokta mount edilmiş cdnin cdromdan çıkartılamayacağıdır. Bunun için önce unmount etmeniz gerekir.

unmount /dev/cdrom gibi

eğer şu anda kullandığınız herhangibir program cdroma erişiyorsa bu işi yapamazsınız. Bunun için ps -ef ile proseslere bakıp vim /mnt/cdrom/dosya.txt gibi bir şeyler aramak bir yöntem olabilir.

Bunu da yapıp unmount ettikten sonra cd'i eject komutu ile çıkartabilir (ya da düğmesine basabilirsiniz)

Bir programı öldürmek

# ps -ef|grep xmms
root      6074  5978  0 14:34 pts/11   00:00:00 grep xmms

kill -9 5933 gibi

killall xmms diyebiliriz, bu bizi proses idler ile uğraşmaktan kurtarır.


Ethernet modülleri

Çok sık rastlanan bir durumdur. Makinanıza ethernet kartı taktınız fakat hangi modülü kullanacağınızı bilmiyorsunuz. Bütün mevcut ethernet modüllerini denemek için

modprobe -t drivers/net -a *

ardından da lsmod komutu ile yüklenmiş modüllere bakıp hangisinin sizinkisi olduğunu görebilirsiniz

Network ayarları

ifconfig -a

ile baktığımızda eğer eth0 varsa modül düzgün çalışıyordur, ama 

ifconfig

ile baktığımızda sadece lo gözüküyorsa, eth0 gözükmüyorsa yine ethernetiniz konfigüre edilmeiş demektir.

öncelikle networkde ne kullanılıyor, sabit ipler mi var yoksa dinamik  mi ? Mesela windows makinalarda Network ayarlarında bir IP yazıyor mu yoksa otomatik mi alıyor ?

Eğer otomatikse yapacağınız şey çok kolay

dhclient -q eth0


yok eğer böyle değilse size tahsis edilmiş olan IP'i sistem yöneticinizden öğrenin. Büyük ihtimalle linux kurduğunuz için size bozulacaktır, umursamayın  diyelim 192.168.0.15 verdi. Eğer aksini söylemezse (özellikle de şirketinizde 200 civarı makina yoksa) netmaskınız 255.255.255.0'dır ama siz yine de sorun. Komutumuz

ifconfig eth0 192.168.0.15 netmask 255.255.255.0 broadcast 192.168.0.255

Eveet artık adresimiz var, istersek ifconfig -a ile kontrol edebiliriz.

Fakat hala Internet'e çıkamıyoruz. Diyelim ki gatewayimiz 192.168.0.1
O zaman komutumuz;

route add default gw 192.168.0.1 olacaktır

Şimdi bakalım
ping 212.156.4.4
eveet internete çıkış var, fakat
ping ns1.ttnet.net.tr cevap vermiyor.

Şimdi de DNS ayarımız kaldı, o da
/etc/resolv.conf içine

nameserver 212.156.4.4 satırını eklemek şeklinde olacak

tekrar deniyoruz



Açık portları görmek
Makinanızda açık portları görmek için vermeniz gereken komut çok basit

netstat -tap

PC'nizdeki kartlar
Linux'un en sancılı yanlarından biri olan modül tanıtmanın en önemli yardımcısı;

lspci komutudur

Kernel Compile etmek

-Önce kernel.org'dan kendinize en uygun kernel'i indirin.
-Ardından /usr/src altına açın.
-Aynı directory de bir linux softlinki yaratın kerneli işaret eden;
ls -s linux-2.18 linux
-Şimdi bu directorye gelip make xconfig ya da make menuconfig yapin. İlki X altında, diğeri konsol.
-Çıkan ekranlardan gerekli aygıtlarınızı seçin
-Save edip çıkın
-make dep
-make clean
-make bzImage
-make modules
-make modulse-install

bunları yaptıktan sonra çıkan bzImage dosyasını boot/i386/bzImage dosyasını /boot altına bzImageyeni
adiyla kaydedin. Ardından /usr/src/linux aldındaki System.map dosyasını /boot/Systemyeni.map diye kayedin.

Şimdi de lilo ya yeni bir giriş yapıp

# Linux yeni kernel
image = /boot/bzImageyeni
label = linuxyeni
root = /dev/hda3
read-only 


Yusuf_tysz'a teşekkürler
Linux komutları ve anlamları Linux komutları ve anlamları Reviewed by Literatür Adası on 10:47 Rating: 5

2 yorum:

Blogger tarafından desteklenmektedir.