Ak Kaynak letim Sistemleri r Gr A Doukan

  • Slides: 37
Download presentation
Açık Kaynak İşletim Sistemleri? Öğr. Gör. A. Doğukan SARIYALÇINKAYA

Açık Kaynak İşletim Sistemleri? Öğr. Gör. A. Doğukan SARIYALÇINKAYA

KONU BAŞLIKLARI. Script komutları

KONU BAŞLIKLARI. Script komutları

Script komutları

Script komutları

diff ve patch – diff dosyalar arasındaki farkları gösterir. diff –u my_file. orig |

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

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

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 •

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

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: – ^ -

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

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ığı

grep örnekler • Boş satırları yaz: grep –v ’^$’ my_file. txt • my_function çağrıldığı satırları yaz: grep –n ’my_function *(’ • grep –v ‘test’ myfiles. txt my_code. c

find • find dosyalarını yerini bulmak için kullanılır. • find / -name foo Komutu

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 –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

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

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

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

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 “ $#

#!/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

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 [

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

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 ]; 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

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

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

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

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

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 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

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

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 : 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 -

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: "

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

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()

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

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

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