Linux Baz Komutlar ve Scripting diff ve patch

Linux Bazı Komutlar ve Scripting

diff ve patch – diff dosyalar arasındaki farkları gösterir. diff –u my_file. orig | less – patch farkları dosyaya uygular. diff –u my_file. orig > my_patch my_file < mypatch bu şekilde my_file ve my_file. orig aynı olur.

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

Sort • • Sort file. txt Dosyayı sıralar. $ sort –t ", " -k 1, 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

Wc (Word Count) • wc myfile. txt • 5 13 57 myfile. txt • 5 = Satır 13 = Kelime 57 = Karakter • ls -l | wc –l • Bulunan yerde dosya ve klasor satır sayısını verir.

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

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-z. A-z 0 -9] – tek harf veya sayı • [^0 -9] – Sayı olmayan herhangibir karakter

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.

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

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.
![find ornekler • Uzantısı*. c* ve *. h* yaz. find. –name ’*. [ch]*’ –a find ornekler • Uzantısı*. c* ve *. h* yaz. find. –name ’*. [ch]*’ –a](http://slidetodoc.com/presentation_image_h/327167b4ad13be90c850e79287d4401d/image-11.jpg)
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

Gzip Gunzip • • gzip file. txt gunzip file. txt. gz gzip -c file 1 file 2 > foo. gz cat file 1 file 2 | gzip > foo. gz

Tar • tar -cvf file. tar file 1 file 2 file 3 • tar -cvf dir. tar dir 1 dir 2 • • tar -cvwf file. tar myfile. txt tar -cvwf home. tar home/ tar -xvwf myfile. tar -xvwzf myfile. tar. gz

Script Ornekleri #!/bin/bash clear echo “Bugun tarihi ‘date’" echo ~stepp/cowsay `whoami` echo “Su anki kullanıcılar: " w | grep -v USER | sort echo

variable Script Değişkenleri 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 $PS 1 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

#!/bin/bash echo “Script adı $0” echo “ 1. Komut argumanı $1” echo “ $# Kadar arguman vardı ve bunlar: $@” Example. sh argument 1 argument 2 argument 3 • Her. txt dosyasını, . txt 2 şeklinde değiştiren script yazın. for file in *. txt; do mv $file ${file}2 done

Karşılaştırma Terimleri 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. if [ $USER = "stepp" ]; then echo “Merhaba, Stepp!" fi LOGINS=`w | wc -l` if [ $LOGINS -gt 10 ]; then echo “Sistem cok yogun!" fi

Script Ornekler #!/bin/bash # Body Mass Index (BMI) calculator –Vücut index Hesaplama if [ $# -lt 2 ]; then echo "Usage: $0 kilo boy" exit 1 fi let H 2=“$2 * $2” let BMI="703 * $1 / $H 2" 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

Ornek PS 3=“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. . ” ; ; esac break done
![Mantık ifade Karşılaştırma shell command description if [ expr 1 -a expr 2 ]; Mantık ifade Karşılaştırma shell command description if [ expr 1 -a expr 2 ];](http://slidetodoc.com/presentation_image_h/327167b4ad13be90c850e79287d4401d/image-20.jpg)
Mantık ifade Karşılaştırma shell command description if [ expr 1 -a expr 2 ]; then. . . if [ test 1 ] && [ test 2 ]; then. . . and if [ expr 1 -o expr 2 ]; then. . . if [ test 1 ] || [ test 2 ]; then. . . or if [ ! expr ]; then. . . not # >= 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

Ornekler • • $ find /mp 3 klasor -name '*. mp 3' -size -5000 k /mp 3 klasor adlı klasorde, boyu 5000 Kilobytes ( < 5 MB) az mp 3 dosyalarını bulur. • • $ find /mp 3 klasor -name 'Metallica*‘ -and -size +10000 k /mp 3 klasor adlı klasorde, boyu 10000 kilobytes (> 10 MB) buyuk VE adı 'Metallica‘ ile baslayan dosyaları bulur. • • $ find / mp 3 klasor -n -size +10000 k ! -name "Metallica*“ /mp 3 klasor adlı klasorde, boyu 10000 kilobytes (> 10 MB) buyuk ve adı 'Metallica‘ ile baslamayan dosyaları bulur. $ find / mp 3 klasor -n -name 'Metallica*' -or -size +10000 k /mp 3 klasor adlı klasorde, boyu 10000 kilobytes (> 10 MB) buyuk VEYA adı 'Metallica‘ ile baslayan dosyaları bulur.

Ornek • #!/bin/bash mkdir trash mv * trash rm -rf trash rmdir trash echo “Tum dosyalar silindi!"

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 $i done

Script Ornekler • #!/bin/bash if test -f /etc/foo then # dosya var, kopyala ve message yaz. cp /usr/foo. echo "Done. " else # dosya yok , message yaz ve çık. echo "This file does not exist. " exit fi

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
![Ornek • #!/bin/bash x=0; while [ "$x" -le 10 ]; do echo “Su anki Ornek • #!/bin/bash x=0; while [ "$x" -le 10 ]; do echo “Su anki](http://slidetodoc.com/presentation_image_h/327167b4ad13be90c850e79287d4401d/image-26.jpg)
Ornek • #!/bin/bash x=0; while [ "$x" -le 10 ]; do echo “Su anki x: $x" # x değerini artır: x=$(expr $x + 1) sleep 1 done

Ornek • Aşağıdaki program. html ekini dosyaların sonuna ekler • #!/bin/bash for file in *; do echo “Sonuna. html eklene dosya $file. . . " mv $file. html sleep 1 done

Ornek-case • #!/bin/bash x=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
![Ornek-if • #!/bin/bash x=5 if [ "$x" -eq 0 ]; then echo “x degeri Ornek-if • #!/bin/bash x=5 if [ "$x" -eq 0 ]; then echo “x degeri](http://slidetodoc.com/presentation_image_h/327167b4ad13be90c850e79287d4401d/image-29.jpg)
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

Ornek- Hesap Makinesi • #!/bin/bash x=5 y=3 add=$(($x + $y)) # Toplama sub=$(($x - $y)) # Cıkarma mul=$(($x * $y)) # Carpma div=$(($x / $y)) # Bolme mod=$(($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"

Ornek-Selamlama 1 • #!/bin/bash # Isım okur ve selamlar echo -n “Isminizi Girin: " read user_name echo “Merhaba $user_name!"

Ornek-Selamlama 2 • #!/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!" exit fi echo “Merhaba $user_name!"

Fonksiyon Kullanımı • #!/bin/bash # hello() fonksiyonu selamlama message yazar hello() { echo “hello() fonksiyonundan merhaba" } echo “ Fonksiyonhello() cagrılıyor. . . " # hello() function cagır: hello echo “ Sımdi fonksiyon hello() dısına cıktın"

Compiling • $> gcc A. c B. c –o my. App. exe A. c B. h “gcc” Preprocessor Compile Link

Build: make • gcc –c A. c • gcc –c B. c • gcc A. o B. o –o my. App. exe A. c make B. c Makefile B. h my. App. exe
- Slides: 35