linux bazı komutlar ve scripting

35
Linux Bazı Komutlar ve Scripting

Upload: abril

Post on 26-Jan-2016

54 views

Category:

Documents


11 download

DESCRIPTION

Linux Bazı Komutlar ve Scripting. diff ve patch. diff dosyalar arasındaki farkları gösterir. diff –u my_file my_file.orig | less patch farkları dosyaya uygular. diff –u my_file my_file.orig > my_patch patch my_file < mypatch bu şekilde my_file ve my_file.orig aynı olur. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Linux Bazı Komutlar ve Scripting

Linux Bazı Komutlar ve Scripting

Page 2: Linux Bazı Komutlar ve Scripting

diff ve patch

– diff dosyalar arasındaki farkları gösterir.

diff –u my_file my_file.orig | less– patch farkları dosyaya uygular.

diff –u my_file my_file.orig > my_patchpatch my_file < mypatch

bu şekilde my_file ve my_file.orig aynı olur.

Page 3: Linux Bazı Komutlar ve Scripting

Head ve Tail

• head -n 5 flavours.txt • İlk 5 satırı yazar• tail -n 5 flavours.txt• Son 5 satırı yazar.

Page 4: Linux Bazı Komutlar ve Scripting

Sort

• Sort file.txt• Dosyayı sıralar.• $ sort –t "," -k1, file.txt• , ile ayrılan alanlardan 1. gore sırala.• sort -u file.txt• Sırala ve tekrarları sil• sort -r file.txt• Tersten sırala

Page 5: Linux Bazı Komutlar ve Scripting

Wc (Word Count)• wc myfile.txt

• 5 13 57 myfile.txt• 5 = Satır

13 = Kelime57 = Karakter

• ls -l | wc –l• Bulunan yerde dosya ve klasor satır sayısını

verir.

Page 6: Linux Bazı Komutlar ve Scripting

Df ve du

• Df = Boş alanı gosterir• df -h• Du = Dosyaların tuttuğu yeri gosterir.• du -s *.txt• du -h /tmp

Page 7: Linux Bazı Komutlar ve Scripting

grep – patern aramak

• grep <kelime> <DOSYA>• Özel Karakterler:– ^ - Satır başı

$ - Satır sonu– Nokta (.) herne karakter olursa olsun– [ ] Karakter sınıfı grubu:• [aeiou] – tek sesli harf• [a-zA-z0-9] – tek harf veya sayı• [^0-9] – Sayı olmayan herhangibir karakter

Page 8: Linux Bazı Komutlar ve Scripting

Grep -devam

– * anlamı “sıfır veya çok kere”– ? Means “sıfır veya bir kere”

-i : harf duyuarlılığı olmadan ara.-n : satır numaraları yaz-v : uyusmayan satır numaralarını yaz-l : Sadece cıktısı yazılabilecek dosyaları listele.

Page 9: Linux Bazı Komutlar ve Scripting

grep örnekler

• Boş satırları yaz:grep –v ’^$’ my_file.txt

• my_function çağrıldığı satırları yaz:grep –n ’my_function *(’ my_code.c

• grep –v ‘test’ myfiles.txt

Page 10: Linux Bazı Komutlar ve Scripting

find

• find dosyalarını yerini bulmak için kullanılır.• find / -name foo Komutu foo dosyasını tüm dizinde arar.

• find /home/david -name 'index*‘ İndex ile baslayan dosyaları gosterir.

Page 11: Linux Bazı Komutlar ve Scripting

find ornekler

• Uzantısı*.c* ve *.h* yaz.find . –name ’*.[ch]*’ –a –print

• www klasöru haricindeki tüm dosya ve klasörleri herkesin ulasabileceği şekilde haklarını değiştir.find . –path ”./www*” –prune –o –exec | chmod go-rwx {} \;

• *.c* dosyalarının ne kadar buyuk olduğunu bul?expr `find –name ’*.c*’ –printf ”%k + ”` 0

Page 12: Linux Bazı Komutlar ve Scripting

Gzip Gunzip

• gzip file.txt• gunzip file.txt.gz• gzip -c file1 file2 > foo.gz• cat file1 file2 | gzip > foo.gz

Page 13: Linux Bazı Komutlar ve Scripting

Tar

• tar -cvf file.tar file1 file2 file3• tar -cvf dir.tar dir1 dir2

• tar -cvwf file.tar myfile.txt• tar -cvwf home.tar home/• tar -xvwf myfile.tar• tar -xvwzf myfile.tar.gz

Page 14: Linux Bazı Komutlar ve Scripting

Script Ornekleri

#!/bin/bashclearecho “Bugun tarihi ‘date’"echo~stepp/cowsay `whoami`

echo “Su anki kullanıcılar:"w | grep -v USER | sortecho

Page 15: Linux Bazı Komutlar ve Scripting

Script Değişkenlerivariable description

$DISPLAY Grafik objelerin gosterileceği X-windows

$HOSTNAME Kullanılan bilgisayar adı

$HOME home klasör adı

$PATH Çalışacak komutların klasör listesi

$PS1 Kabuk komut dizgesi

$PWD Bulunulan klasör

$SHELL Kabuk programı patikası

$USER Kullanıcı adı

variable description

$0 Script adı

$1, $2, $3, ... Komut satırı argumanları

$# Arguman sayısı

$@ Arguman dizisi-array

Page 16: Linux Bazı Komutlar ve Scripting

#!/bin/bashecho “Script adı $0”echo “1. Komut argumanı $1”echo “ $# Kadar arguman vardı ve bunlar: $@”

Example.sh argument1 argument2 argument3

• Her .txt dosyasını, .txt2 şeklinde değiştiren script yazın.for file in *.txt; do mv $file ${file}2 done

Page 17: Linux Bazı Komutlar ve Scripting

Karşılaştırma Terimleri

if [ $USER = "stepp" ]; then echo “Merhaba, Stepp!"fi

LOGINS=`w | wc -l`if [ $LOGINS -gt 10 ]; then echo “Sistem cok yogun!"fi

shell command description

=, !=, <, > Kelime Karşılaştırır

-z, -n Kelimenin boş olup olamdığını karşılaştırır

-lt, -le, -eq, -gt, -ge, -ne

Sayıları karşılaştırır: <, <=, ==, >, >=, !=

-e, -d Klasörün var olu olmadığını karşılaştırır.

-r, -w Dosyanı olup, okunur, yazılır olmasını karşılaştırır.

Page 18: Linux Bazı Komutlar ve Scripting

Script Ornekler

#!/bin/bash# Body Mass Index (BMI) calculator –Vücut index

Hesaplamaif [ $# -lt 2 ]; then echo "Usage: $0 kilo boy" exit 1fi

let H2=“$2 * $2”let BMI="703 * $1 / $H2"echo “Sizin Vucut Indeksi( Body Mass Index (BMI)) is $BMI"if [ $BMI -le 18 ]; then echo “Çok zayıfsın….."elif [ $BMI -le 24 ]; then echo “Normal Kilo…..."elif [ $BMI -le 29 ]; then echo “Exersiz zamanı, kilo almıssın…."else echo “Takma kafana…."fi

Page 19: Linux Bazı Komutlar ve Scripting

OrnekPS3=“Sevdiğin kişi sec!”Select CHOICE in “Josh” “Marty” “Dave” “HAL” “Me”; do

case $CHOICE in“Josh”|”Marty”)

echo “Akıllı Secim.”;;

”Dave”|”HAL”)echo “Bu senin son secimin.”;;

“Me”)echo “Super secim..”;;

esacbreak

done

Page 20: Linux Bazı Komutlar ve Scripting

Mantık ifade Karşılaştırma

# >= 10 fazla process varsa kullanıcıları # ve kullanıcı sayısı >= 5 ise kullanıcıları uyar.

LOGINS=`w | wc -l`PROCESSES=`ps -u $USER | wc -l`if [ $LOGINS -gt 5 -a $PROCESSES -gt 10 ]; then

echo “System yoğun, process azaltın!"fi

shell command description

if [ expr1 -a expr2 ]; then ... if [ test1 ] && [ test2 ]; then ...

and

if [ expr1 -o expr2 ]; then ... if [ test1 ] || [ test2 ]; then ...

or

if [ ! expr ]; then ... not

Page 21: Linux Bazı Komutlar ve Scripting

Ornekler• $ find /mp3klasor -name '*.mp3' -size -5000k• /mp3klasor adlı klasorde, boyu 5000 Kilobytes ( < 5MB) az mp3 dosyalarını bulur.

• $ find /mp3klasor -name 'Metallica*‘ -and -size +10000k • /mp3klasor adlı klasorde, boyu 10000 kilobytes (> 10 MB) buyuk VE adı 'Metallica‘

ile baslayan dosyaları bulur. •

$ find / mp3klasor -n -size +10000k ! -name "Metallica*“•

/mp3klasor adlı klasorde, boyu 10000 kilobytes (> 10 MB) buyuk ve adı 'Metallica‘ ile baslamayan dosyaları bulur.

•$ find / mp3klasor -n -name 'Metallica*' -or -size +10000k/mp3klasor adlı klasorde, boyu 10000 kilobytes (> 10 MB) buyuk VEYA adı 'Metallica‘ ile baslayan dosyaları bulur.

Page 22: Linux Bazı Komutlar ve Scripting

Ornek

• #!/bin/bashmkdir trashmv * trashrm -rf trashrmdir trashecho “Tum dosyalar silindi!"

Page 23: Linux Bazı Komutlar ve Scripting

Ornek

• #!/bin/bash# Bu program 1 den 10 a kadar sayar:for i in 1 2 3 4 5 6 7 8 9 10; do echo $idone

Page 24: Linux Bazı Komutlar ve Scripting

Script Ornekler• #!/bin/bash

if test -f /etc/foothen # dosya var, kopyala ve message yaz . cp /usr/foo . echo "Done."else # dosya yok , message yaz ve çık. echo "This file does not exist." exitfi

Page 25: Linux Bazı Komutlar ve Scripting

Script kontrol parametreleri

• Command Line Parameters for ' test '• -d klasör kontrol• -e dosya bulunması kontrolü• -f sıradan dosya kontrolu• -r okunabilirlik kontrolu• -s dosya boyu kontrolu• -w yazılabilirlik kontrolu• -x calıstırılabilirlik kontrolu

Page 26: Linux Bazı Komutlar ve Scripting

Ornek

• #!/bin/bashx=0; while [ "$x" -le 10 ]; do echo “Su anki x: $x" # x değerini artır: x=$(expr $x + 1) sleep 1done

Page 27: Linux Bazı Komutlar ve Scripting

Ornek

• Aşağıdaki program .html ekini dosyaların sonuna ekler

• #!/bin/bashfor file in *; do echo “Sonuna .html eklene dosya $file..." mv $file $file.html sleep 1done

Page 28: Linux Bazı Komutlar ve Scripting

Ornek-case

• #!/bin/bashx=5 # Değer kontrolu x:case $x in 0) echo “x degeri : 0.” ;; 5) echo " x degeri : 5.” ;; 9) echo " x degeri : 9.“ ;; *) echo “Tanımlanmamıs deger."esac

Page 29: Linux Bazı Komutlar ve Scripting

Ornek-if• #!/bin/bash

x=5 if [ "$x" -eq 0 ]; then echo “x degeri : 0."elif [ "$x" -eq 5 ]; then echo " x degeri : 5."elif [ "$x" -eq 9 ]; then echo " x degeri : 9."else echo “Tanımlanmayan deger."fi

Page 30: Linux Bazı Komutlar ve Scripting

Ornek- Hesap Makinesi• #!/bin/bash

x=5 y=3 add=$(($x + $y)) # Toplamasub=$(($x - $y)) # Cıkarmamul=$(($x * $y)) # Carpmadiv=$(($x / $y)) # Bolmemod=$(($x % $y)) # Mod alma- Kalanı bulma

# print out the answers:echo “Toplam: $add"echo “Fark: $sub"echo “Çarpım: $mul"echo “Bolum: $div"echo “Kalan: $mod"

Page 31: Linux Bazı Komutlar ve Scripting

Ornek-Selamlama1

• #!/bin/bash# Isım okur ve selamlarecho -n “Isminizi Girin: "read user_nameecho “Merhaba $user_name!"

Page 32: Linux Bazı Komutlar ve Scripting

Ornek-Selamlama2

• #!/bin/bash# # Isım okur ve selamlar echo -n " Isminizi Girin: "read user_name# Kullanıcı boş enter basarsa…if [ -z "$user_name" ]; then echo “Isminizi soylemediniz!" exitfiecho “Merhaba $user_name!"

Page 33: Linux Bazı Komutlar ve Scripting

Fonksiyon Kullanımı

• #!/bin/bash# hello() fonksiyonu selamlama message yazarhello(){ echo “hello() fonksiyonundan merhaba"}

echo “ Fonksiyonhello() cagrılıyor..."# hello() function cagır:helloecho “ Sımdi fonksiyon hello() dısına cıktın"

Page 34: Linux Bazı Komutlar ve Scripting

Compiling

• $> gcc A.c B.c –o myApp.exeA.c B.c B.h

Preprocessor Compile Link“gcc”

Page 35: Linux Bazı Komutlar ve Scripting

Build: make

• gcc –c A.c• gcc –c B.c• gcc A.o B.o –o myApp.exe

A.c B.c B.h

makeMakefile myApp.exe