Bilgisayar »

Linux Araclari

Linux Araçlarına Dair Notlar

http://tldp.org/LDP/GNU-Linux-Tools-Summary/html/GNU-Linux-Tools-Summary.html adresinden.

Bash

ESC-~
Kullanıcı adını tamamlar
ESC-@
Makine adı tamamlar
ESC-$
Ortam değişkeni tamamlar
ESC-!
TAB gibi çalışır ama man sayfalarını tamamlamak gibi özellikleri de vardır.

Eğer tamamlama yerine sadece listeleme isteniyorsa, ESC yerine Ctrl-X kullanılmalı.

alias

Mesela rm yerine rm -i tanımlamak için kullanılır. Sadece alias yazıldığında bütün "takma ad"ları listeler.

 alias cp='cp -vi'

şeklinde de takma adlar tanımlanır.

set -x

Komutları çalıştırmadan önce adlarını yazar. Hata ayıklamak için kullanılabilir.

Mesela

 ls

yazdığında, listelemeden önce

 + ls -F --color=auto 

yazarak alias tanımını gösterir.

alias tanımlanmış komutların etrafından dolaşmak için kullanılır.

 \rm 

komutu alias olan rm 'i değil, herhangi bir seçenek almamış rm'i çalıştırır.

script

Yazılan tüm komutları ve çıktılarını bir dosyaya yazar.

set bell-style none

Sistem zilini kapatır.

reset

Eğer terminal çıktısı karışırsa onu düzeltir.

Geçmiş komutlar

history

history 10 geçmiş 10 komutu gösterir, tek başına history bütün komut geçmişini gösterir

!-2, 2 önceki komutu tekrar çalıştırır.

!! bir önceki komutu tekrar çalıştırır.

!komut, komut ile başlayan son komutu çalıştırır. Mesela !cd son cd komutunu çalıştırır.

!?kelime? içinde kelime geçen son komutu çalıştırır.

komut !* en son çalıştırdığınız komutun argümanlarıyla yeni bir komut çalıştırır. Mesela

 emasc /home/iesahin/yazı.txt 

yazdıktan -ve bilgisayar emasc komutunu anlamdığını söyledikten sonra

 emacs !*

yazarak aynı dosyayı açmak mümkündür.

Geçmişte arama yapmak

Ctrl-R
Komut satırı geçmişinde arama yapmak için kullanılır. İstenen kelimeyi yazarak geçmişte kademeli arama yapmak mümkündür. Komutun daha önceki kullanımlarına bakmak için Ctrl-R'ye tekrar basılır.

Sağ ve sol ok tuşları, bulunan satırı düzenlemesi için komut satırına yazar.

screen

screen komutu birden fazla terminali aynı anda çalıştırabileceğiniz bir programdır.

Girdi / Çıktı Yönlendirme

 ls > dosyalistesi.txt

ls komutunun çıktısını dosyalistesi.txt isimli bir dosyaya yönlendirir.

 tr '[A-Z]' '[a-z]' < dosya1.txt > dosya1yeni.txt

dosya1.txt dosyasini tr komutuna girdi olarak alır ve çıktısını dosya1yeni.txt dosyasına yönlendirir.

 ls >> dosyalistesi.txt

ls komutunun çıktısını dosyalistesi.txt dosyasının sonuna ekler.

 cat << SON
 Bir iki üç
 dört beş altı
 yedi sekiz dokuz
 SON

yazarak, cat komutuna birden fazla satırdan oluşan bir argüman vermek mümkündür. << SON, EOF (dosya sonu) karakteri basan Ctrl-D tuşu gibi kullanılır.

 komut 2> hatalistesi.txt

komut'un hata çıktısını hatalistesi.txt isimli dosyaya yönlendirir.

 ls | grep 'a'

ls komutunun çıktısını grep'e girdi olarak sunar. | işaretinin adı "pipe" (boru)dur.

 ls | tee dosyalistesi.txt

ls komutunun çıktısını hem ekrana hem dosyaya yazar. tee (T, çatal) komutu kendisine verilen girdiyi hem dosyaya, hem ekrana (stdout)'a basan komuttur.

 komut &> hatavecikti.txt 

hem komut'un çıktısını, hem hatalarını hatavecikti.txt dosyasına yönlendirir.

Komut ikamesi

 komut1 `komut2 komut2seçeneği komut2seçeneği` komut1seçeneği

önce

 komut2 komut2seçeneği komut2seçeneği

'yi çalıştırır ve çıktısını

 komut1 komut2çıktısı komut1seçeneği 

komutunda çalıştırır. Komut ikamesi yukarda anılan | gibi kullanılır.

` (backquote, ters kesme) karakteri Türkçe Q klavyelerde Alt-Gr ile , (virgül) tuşlarına basarak çıkar ve Shift-2 ile çıkan ' (tek tırnak) karakterinden farklıdır.

Komut ikamesinin ikinci bir yolu

 komut1 $(komut2 komut2seçeneği komut2seçeneği) komut1seçeneği

şeklinde $(...) şekliyle yapılanıdır.

Birden fazla komut çalıştırmak

 komut1 && komut2 

şeklinde tek satırda yazılan bir ifadeyle, komut1 çalıştırılır ve başarılı olursa komut2 de çalıştırılır. Eğer komut1 başarılı olmazsa, komut2 çalıştırılmaz.

 komut1 || komut2

şeklinde tek satırda yazılan bir ifadeyle, komut1 çalıştırılır ve başarılı olmazsa komut2 çalıştırılır.

 komut1; komut2 

şeklindeki tek bir satırsa, başarılı olup olmasına bakmaksızın önce komut1'i, sonra komut2'yi çalıştırır.

Dosyalar ve dizinler

 cd - 

bir önceki dizine döner.

 tree

o anki dizinin içeriğini bir ağaç şeklinde gösterir.

Dosya bulma

 find / -name dosyaadi* 

dosyaadi ile başlayan bütün dosyaları bulur.

 find /etc/ -regex '[abc].*'

/etc/ dizininde a, b veya c ile başlayan tüm dosyaları bulur.

 find /var/ -name '*.log' -exec tail -n 20 '()' ';'

gibi bir komutla /var/ dizini altındaki bütün .log uzantılı dosyaları bulup, bunların son 20 satırını göstermek mümkündür. find komutuna verilen -exec seçeneği ile, bulunan dosyalar üzerinden istenen komutu çalıştırmak mümkündür.

Bazı dizinleri aramadan müstesna tutmak için -path seçeneği, alt dizinlerini müstesna tutmak için -prune seçeneği kullanılır.

 slocate abc

içinde abc geçen komutları listeler.

 whereis komut

komut'un nerede olduğunu ve man sayfasını gösterir. which komutu da bu iş için kullanılır, whereis'in farkı kaynak kodunun yerini de göstermesidir.

Dosyaları Güvenli Silmek

  shred 

komutu (çeşitli seçenekleriyle) dosyaları ve disk bölümlerini önce üzerlerine yazarak siler ve bu sayede disk üzerinden tekrar kurtarılmasına engel olur.

Dosyalar hakkında bilgi edinmek

 file dosyaAdi.txt

gibi bir komut, dosyanın ne tür bir dosya olduğunu bulabilir.

 stat dosyaAdi.doc

ise bir dosyanın inode numarası, yaratılma tarihi vs. gibi çeşitli bilgiler verir.

Düşük düzeyli kopyalama

Normal dosya kopyalaması yapan cp komutu yerine, disk bölümü vs. kopyalamak için dd komutu kullanılabilir. Dikkatli kullanmakta fayda var.

Dosya tarihini değiştirmek

  touch dosyaAdi.txt

komutu dosyaAdi.txt'nin dosya erişim tarihini yeniler.

  touch -t 05070912 dosyaAdi.txt

ise, dosyaAdi.txt'nin erişim zamanını 7 Mayıs, saat 09:12'ye ayarlar.

Dosyaları bölmek

  split -m 10 dosyaAdi.txt 

dosyaAdi.txt dosyasını 10 Megabaytlık parçalara ayırır. Yeniden birleştirmek için cat komutu kullanılabilir.

Toplu isim değiştirme

  mmv \*.JPG \#1.jpg 

sonu .JPG ile biten dosyaları .jpg'ye çevirir. #1 blob ifadesindeki birinci eşleşmeye tekabül eder.

Aynı işi bir perl betiği olan

  rename 's/\.JPG$/.jpg/' *.JPG

ile de yapmak mümkün. Rename Perl düzenli ifadeleriyle çalışıyor.

Eğer bu ikisi de elde değilse,

  for i in *.JPG;
  do mv $i `basename $i JPG`jpg;
  done

şeklindeki bir bash betiğiyle de aynı işi yapmak mümkün.

Sistem bilgisi

  time komut

komut'un ne kadar sürede çalıştırıldığını ölçer.

Sistem bilgisinin bir kısmı /proc altındaki dosyalardadır. Mesela CPU hakkında bilgi almak için

  cat /proc/cpuinfo

yazabilirsiniz.

  dmesg 

açılış veya sistem çekirdeğini ilgilendiren mesajları basar.

  df

disklerdeki boş alanı gösterir.

  who

sisteme giriş yapmış kullanıcıları ve ilgili bilgileri gösterir.

  w

who gibi kullanılır ama verdiği bilgiler bir ölçüde değişiktir.

  users 

da kullanıcı listesi verir.

  last

sisteme son giriş yapmış kullanıcıları listeler.

  lastlog 

sisteme son giriş yapmış kullanıcıları ve giriş tarih/saatlerini gösterir.

  whoami

hangi kullanıcı adıyla sisteme giriş yaptığını bilmeyen kullanıcılara bunu hatırlatır.

  free -tm 

toplam ve boş hafıza miktarlarını MB cinsinden yazar.

  uptime

sistemin ne kadar zamandan beri çalıştığını, kullanıcı sayısını ve CPU yükünü gösterir.

  uname

sistemle ilgili çeşitli bilgileri basmakta kullanılır.

 xargs

komutlara satır satır argüman vermek için kullanılır. Mesela

  ls | xargs grep work

ls komutunun çıktısını tek tek grep work komutuna verir ve çıktıyı birleştirir.

Tarih / Zaman

  date 

komutu standart biçiminde tarihi gösterir.

  date 07:15:2009 

gibi bir şekilde tarihi 15 Temmuz 2009'a çevirebilirsiniz. Bunun için root yetkilerine haiz olmanız gerekebilir.

İleri veya geri bir tarihi göstermek için -d seçeneğini kullanabilirsiniz.

  date -d "1000 days ago" 
  Sat Dec 10 15:04:42 EET 2005
  date -d "3 weeks ago"
  Fri Aug 15 16:05:21 EEST 2008
  date -d "4 weeks"
  Fri Oct  3 16:06:16 EEST 2008

Bir takvim gösterimi almak için

  cal 

komutunu kullanmak mümkündür.

  cal 4 2009

gibi bir parametreyle, 2009 Nisan ayının takvimini yazdırabilirsiniz. -y parametresi de bütün yılın takvimini almak için kullanılır.

Disk bölümleri hakkında bilgi almak

/proc/ide/ dizini altındaki diğer dizinler vasıtasıyla takılı IDE diskler hakkında bilgi almak mümkündür.

  cat /proc/ide/hda/model
  FUJITSU MHT2080AH

  fdisk 

komutu -l parametresiyle çalıştırılarak da sistemdeki diskler ve disk bölümleri hakkında bilgi alınabilir.

Son Değişiklikler

Yazıları Eposta İle Al

Türkçe

English

Mercektekiler

edit SideBar

Page last modified on September 05, 2008, at 06:28 PM EST - Powered by PmWiki

^