Linux Bazı Komutlar ve Scripting

Slides:



Advertisements
Benzer bir sunumlar
Kabuk ve Kısayollar-I.
Advertisements

Bölüm 11 Metin Dosyaları Metin Dosyaları Dosya Açma ve Kapama
Text Editörü BİLGİSAYAR PROGRAMCILIĞI BÖLÜMÜ
Dosya ve Klasör İşlemleri
EKRAN ÇIKTISI.
Bilgisayar Programlama Güz 2011
JavaScript Birinci Hafta.
Internet Tabanlı Programlama Dr. Erman Yukselturk
Kişisel Web Sayfaları Kullanım Bilgileri
Afyon Kocatepe Üniversitesi Bilgi İşlem Daire Başkanlığı
4. UNIX ve Linux’e Giriş.
ALGORİTMA ÖRNEKLERİ Programlamaya Giriş
MS-DOS DESEM 2008 EMRE UNSAL – ÖZLEM AKTAŞ. İ ŞLET İ M S İ STEM İ Kavramı İ şletim sistemini, bir bilgisayar sisteminde kullanıcı ile iletişim kurarak,
Dizi (array) değişkenleri
LİNUX’TA KULLANICI VE DOSYA-DİZİN İŞLEMLERİ
Bölüm 9 Dizgiler Dizgi Tanımı Dizgi Girdi İşlemleri
Bölüm 9 Dizgiler Dizgi Tanımı Dizgi Girdi İşlemleri
Diziler.
PHP-Dosya ve Dizinler Internet Tabanlı Programlama Dr. Erman Yukselturk.
Yapısal Program Geliştirme – if, if-else
İnternet Programcılığı II
İNTERNET PROGRAMCILIĞI I BTP 207 Ders 9. Tek değişkende birden fazla bilgi tutulmak istendiğinde kullanılır. Kullanım şekli: var dizi_adı= new Array(eleman1,
JAVA İ LE PROGRAMLAMAYA G İ R İ Ş Ekim Dr. Galip Aydın.
Kabuk ve Kısayollar BİLGİSAYAR PROGRAMCILIĞI BÖLÜMÜ
Lınux Command arch:Makine mimarisi hakkinda bilgi verir. “uname -m” komutu ile ayni isleve sahiptir. cat [dosya]:Dosyalari ardarda siralayarak standart.
Kabuk Programlama Kerem ERZURUMLU
WEB PROGRAMLAMA PHP Temelleri 2 Dr. Erman Yukselturk.
C ile Programlamaya Giriş
Paralel Programlamaya Giriş
Dosya İşlemleri BİLGİSAYAR PROGRAMCILIĞI BÖLÜMÜ
JAVA İLE PROGRAMLAMAYA GİRİŞ
Linux Dosyaları, Dizinleri, Komutları
Diziler Dizi, bellekte aynı isim altında toplanmış değişkenler kümesidir. Eğer ki aynı türden veriler grubunu bellekte tutmak gerekirse diziler kullanılır.
Çoklu dallanma seçimi: switch
Kabuk Programlama Kerem ERZURUMLU
PBS Betiği Hazırlama ve
Linux GNU Uygulamalar, Dizinleri Komutlar
İnternet Programcılığı II
Dosya İşlemleri Öğr. Gör. Mustafa SARIÖZ BİLGİSAYAR TEKNOLOJİLERİ VE PROGRAMLAMA BÖLÜMÜ BİLG 223 AĞ İŞLETİM SİSTEMLERİ DERSİ.
Dosya İşlemleri Öğr. Gör. Mustafa SARIÖZ BİLGİSAYAR TEKNOLOJİLERİ VE PROGRAMLAMA BÖLÜMÜ BİLG 223 AĞ İŞLETİM SİSTEMLERİ DERSİ.
Hayrettin Bucak Sistem yöneticisi TÜBİTAK ULAKBİM Ekim 2003.
PROGRAM DENETİM DEYİMLERİ
4. KONTROL VE DÖNGÜ KOMUTLARI
Kabuk işlemleri.
Python Aslı Ergün.
Paralel Programlamaya Giriş
Kabuk Programlama Shell Scripting(bash)
Kabuk Programlama Shell Scripting(bash)
TEMEL LİNUX KOMUTLARI.
BMS-301 Kabuk Programlama Güz 2015 (2. Sunu) (Yrd. Doç. Dr. Deniz Dal)
BMS-301 Kabuk Programlama Güz 2015 (6. Sunu) (Yrd. Doç. Dr. Deniz Dal)
BMS-301 Kabuk Programlama Güz 2015 (5. Sunu) (Yrd. Doç. Dr. Deniz Dal)
Yardım Komutları Linux’ta komutlar hakkında yardım almak için aşağıdaki komutlar kullanılır : - man - info - whatis - apropos.
SAYISAL ANALİZ Doç.Dr. Cüneyt BAYILMIŞ.
BM-308 Paralel Programlamaya Giriş Bahar 2016 (1. Sunu) (Yrd. Doç. Dr. Deniz Dal)
5. HAFTA Mart Discussion: comp.soft-sys.matlab An unmoderated newsgroup that focuses on the.
PHP'de Program Denetimi
Linux Komutları.
MATLAB R2013’e Giriş.
Paralel Programlamaya Giriş
Bilgisayar Programlamasına ve Veri Analizine Giriş - IV
BÖTE 323: Internet Tabanlı Programlama Dr. Ercan TOP
Javascript Kullanım Şekilleri.
Linux Paket ve Kabuk Yönetimi
BMS-301 Kabuk Programlama Güz 2017 (7. Sunu) (Yrd. Doç. Dr. Deniz Dal)
Bilgisayar Programlamasına ve Veri Analizine Giriş
Bilgisayar Programlamasına ve Veri Analizine Giriş - VII
Discussion: comp.soft-sys.matlab
Bilgisayar Programlamasına ve Veri Analizine Giriş - VII
C ile Programlamaya Giriş
Sunum transkripti:

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.

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

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-zA-z0-9] – tek harf veya sayı [^0-9] – Sayı olmayan herhangibir karakter

Grep -devam -i : harf duyuarlılığı olmadan ara. * 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 –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 file1 file2 > foo.gz cat file1 file2 | gzip > foo.gz

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

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

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

#!/bin/bash echo “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

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

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 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…."

Ornek PS3=“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 [ expr1 -a expr2 ]; then ... if [ test1 ] && [ test2 ]; then ... and if [ expr1 -o expr2 ]; then ... if [ test1 ] || [ test2 ]; 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 /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.

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 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 $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 : 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-Selamlama1 #!/bin/bash # Isım okur ve selamlar echo -n “Isminizi Girin: " read user_name echo “Merhaba $user_name!"

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!"     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 myApp.exe “gcc” Preprocessor Compile B.h “gcc” Preprocessor Compile Link

Build: make gcc –c A.c gcc –c B.c gcc A.o B.o –o myApp.exe make A.c B.h make Makefile myApp.exe