Top Banner
Linux Bazı Komutlar ve Scripting
35

Linux Bazı Komutlar ve Scripting

Jan 26, 2016

Download

Documents

Abril

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
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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