際際滷

際際滷Share a Scribd company logo
聴STANBUL N聴VERS聴TES聴
S聴BER GVENL聴K TOPLULUU
BASH BET聴K D聴L聴N聴N TEMELLER聴
Haz脹rlayan :
Ramazan Furkan MATARACI
Monolitik ekirdek
Yayg脹n kullan脹lan
shell dilleri
Bsh : sh olarak da ge巽er a巽脹l脹m脹 Bourne Shell
dir.GNU projesinin ilk d旦nemlerinde kullan脹lan shell
dilidir.Bug端nlerde yerini b端y端k 旦l巽端de bash'e
b脹rakm脹t脹r.
Bash : bsh nin ard脹l脹 durumundad脹r.Bsh'nin 端zerine
eklentiler yap脹lm脹 halidir.A巽脹l脹m脹 Bourne Again
Shelldir
Csh : Syntax'脹 C diline benzeyen bir shell'dir.Domine
da脹t脹mlar taraf脹ndan varsay脹lan olarak gelmediinden
dolay脹 kullan脹c脹 say脹s脹 k脹s脹tl脹d脹r.A巽脹l脹m脹 ise C shell dir.
Ksh : Bash ve Csh dillerini bir araya getiren ve
端zerinede yeni birka巽 komut ve yordamlar脹 i巽eren shell
dilidir.A巽脹l脹m脹 ise Korn Shell dir.
Zsh : Korn shell'in 端zerine ekstra birka巽 komut
bar脹nd脹ran bir shell dilidir.A巽脹l脹m脹 ise Z shell dir.
聴巽sel(聴nternal) Shell
Komutlar脹
B端t端n diller kendi i巽erisinde i巽sel komutlar bulundurur bunlar
dilden dile farkl脹l脹k g旦stersede ama巽lar脹 genellikle ayn脹d脹r.Bu
komutlar ile sisteme dair hayati temel ilemler
ger巽ekletirilebilir.Bash i巽erisindeki internal komutlar ;
Cd : Bu komut sayesinde dizinler aras脹nda ge巽iler
yap脹labilir.rnek cd /home/rfm komutu rfm kullan脹c脹s脹na ait
home dizinine ge巽i yapar.
Pwd : uanda komut sat脹r脹n脹n i巽erisinde bulunduu dizini
terminale yazar.
Echo : Akabinde yaz脹lacak olan komutlar脹 terminale
yazar.rnein echo rfm komutunun 巽脹kt脹s脹 terminale rfm
olacakt脹r.
Exec : Akabinde yaz脹lacak olan komutu 巽al脹t脹r脹p terminali
kapat脹r.rnein exec firefox komutunu 巽al脹t脹r脹rsan脹z terminal
kapan脹p firefox web browser a巽脹lacakt脹r.
Time : Akabinde yaz脹lcak olan komutun ne kadar s端rede
巽al脹t脹脹n脹 ms cinsinden terminale yazar.
Set : 聴lerde bahsedilecek olan komut sat脹r脹 parametrelerini
belirli kurallara g旦re 旦nceden atayan komuttur.
Exit : A巽脹k olan shelli kapat脹r.
External(D脹sal)
Shell Komutlar脹
Kullan脹lan shell haricinde varsay脹lan olarak var
olmayan komutlara verilen genel isimdir.Bu komutlara
bir 巽ok 旦rnek verilebilir.聴lk akla gelen komutlar : ls ,
cat , nano ,vi , vim , emacs , micro vb. Komutlard脹r.Bu
komutlar Linux da脹t脹m脹 kurulduu esnada otamatik
olarak y端klenmi olabilir.Herzaman y端kl端 olmak
zorunda deillerdir.Bu komutlar genellikle /bin dizini
i巽erisinde tutulurlar.Bu dizin d脹脹nda var olan
komutlar脹n komut sat脹r脹 taraf脹ndan alg脹lanabilmesi i巽in
PATH 巽evre deikeninde g旦sterilmesi
gerekmektedir.Bir linux da脹t脹m脹 olan debian'da bu
deiken varsay脹lan olarak :
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
Yukar脹daki gibi belirlenmitir ':' karakteri ile yeni komut
dizinlerini shell'in tan脹mas脹 i巽in bu deikene
ekleyebilirsiniz.Bu gibi 巽evre deikenlerine deerler
verirken dikkatli olunmazsa sistemsel baz脹
bozukluklara sebep olunabilir.
Shell 聴巽in Ge巽erli
Olan Baz脹 Tu
K脹sayollar脹
 Ctrl + C : al脹makta olan shell komutunu durdurur.

Ctrl + A : 聴mleci sat脹r ba脹na g旦t端r端r

Ctrl + E : 聴mleci sat脹r sonuna g旦t端r端r.

Ctrl + L : Terminali temizler.

Ctrl + R : nceden yaz脹lm脹 olan komutlar i巽in arama
yap脹lmas脹n脹 salayan istemciyi a巽ar.

Ctrl + D : Shelli kapat脹r.Exit komutuyla edeerdir.
 Tab : Dosya ad脹,dizin ad脹 veya komutadlar脹n脹n yaz脹lmayan
k脹s脹mlar脹n脹 tamamlar.rnein , bas harflerini istemciye
yaz脹p tab tuuna bas脹l脹rsa otomatik olarak istemci , komutu
bash 'e tamamlar.
 Ctrl + Z : al脹an bir program脹 durdurur 'fg' komutu ile
duran program脹 tekrardan geri getirmek m端mk端nd端r.
 !! : En son 巽al脹t脹r脹lan komutu tekrardan 巽al脹t脹r脹r

!!<komut> : En son 巽al脹脹t脹r脹lan komutun ba脹na belirlenen
baka bir komutu ekler.

Ctrl + T : 聴mlecin 端zerinde bulunduu karakter ile bir
旦ncesindeki karakterin yerini deitirir.
Man komutu
Man komutu ile bir komuta ait kullan脹m klavuzuna ulamak
m端mk端nd端r.Kullan脹m klavuzlar脹nda ise komutun ne ie
yarad脹脹 ile ilgili temel bilgiler ve eer al脹yorsa
parametrelerine ait bilgiler bulunur.man <komut ad脹>
eklinde yaz脹ld脹脹nda komuta ait kullan脹m klavuzunu
getirir.Komutlar d脹脹nda aa脹dki tabloda g旦r端lebilecek
旦elerinde kullan脹m klavuzuna man ile ulamak m端mk端n
olacakt脹r.rnein , man passwd komutu ile passwd
komutunun man sayfas脹na eriebilirken man 5 passwd
komutu ile passwd dosya uzant脹s脹na ait man sayfas脹na
eriirsiniz.Eer arad脹脹n脹z isimde bir man sayfas脹 yoksa
hata ile kar脹la脹rs脹n脹z.
Metin ak脹lar脹(Stream)
Terminal ortam脹nda 巽al脹an programlar metin
ak脹lar脹yla 巽al脹ma durumlar脹n脹 program脹 kullanan
kiiye aktarabilirler.rnein , ls komutu dizi ve dosylar脹
listeleyebilmesi i巽in metin ak脹脹na ihtiya巽 duyar.
Ak脹 tipleri :
Standart Output : Bir program 巽al脹maya balad脹ktan
sonra o program脹n 端rettii 巽脹kt脹lara verilen isimdir.
Standart 聴nput : Kullan脹c脹 klavyesinden ya da stdout
ak脹脹ndan gelen metni programa girdi olarak alabilen
ak脹 t端r端d端r.
Standart Error : Standart output'un bir t端revi olup hata
巽脹kt脹lar脹n脹 i巽eren 巽脹kt脹lard脹r.Bir program 巽al脹脹rken hata
mesajlar脹n脹 dosyalara yazmak , dier mesajlar脹 ise
terminalde tutmak istersek stderr 巽脹kt脹lar脹n脹
kullanabiliriz.
Girdi-脹kt脹
Y旦nlendirmesi
Ak脹lar脹 birbirlerine y旦nlendirmek i巽in baz脹 karakterler
kullan脹l脹r.Bunlar脹n kullan脹m ekilleri aa脹daki gibidir.
Stdout > File : bir program脹n oluturduu stdout verisini yeni bir
dosya a巽arak o dosyaya kaydeder eer dosya var ise 端zerine yazar.
Stdout >> File : bir program脹n oluturduu stdout versini var olan bir
dosyaya kaydeder.Eer dosya bulunmuyorsa yeni dosya oluturur.
Stderr 2> File : ilk kullan脹mla ayn脹 mant脹ktad脹r. Farkl脹 olarak stdout
deilde stderr mesajlar脹n脹 kullan脹r.
Stderr 2>> File : ikinci kullan脹mla ayn脹 mant脹ktad脹r.Farkl脹 olarak
stdout deilde stderr mesajlar脹n脹 kullan脹r.
Stdout ve stderr &> : stdout ve stderr mesajlar脹n脹 yeni bir dosyaya
yazar eer dosya varsa 端zerine yazar.
Stdin < File : dosya i巽eriine stdin mesaj脹 alan bir programa toplu
halde g旦nderir.
Stdin << File : dosya i巽eriine stout mesaj脹 alan bir programa sat脹r
sat脹r g旦nderir.
Stdin | stdout | stdin | stdout | . : Pipe ilemi olarak adland脹r脹l脹r.bir
programa ait stdout ak脹脹n脹 akabinde gelen dier programlara stdin
olarak g旦nderir.
Stdout | tee File : ayn脹 anda output hem terminalde okunabilir hem
de bir dosyaya kaydedilebilir.
Komut i巽erisinde
komut 巽al脹t脹rma
Baz脹 旦zel durumlarda komut i巽erisnde komut
巽al脹t脹rma ihtiyac脹 olabilir.rnein bir dizinde birden
fazla dosya bulunmas脹 durumunda bu dosyalar脹n
hepsinin i巽eriinin terminale yaz脹lmas脹n脹 isteyecek
olursak bu y旦ntemle kolay bir ekilde
ger巽ekletirilebilir.
Bir komut i巽erisinde baka bir komutu 巽al脹t脹rmak i巽in
komutlar脹 aa脹daki formda yazmak gerekir.
Komut `komut` buradaki 旦zel karakter (`) kesme iareti
olan (') karakter ile kar脹t脹r脹lmamal脹d脹r.
Deikenler
Hemen her dilde olduu gibi bash dilinde de deikenler
bulunmakta.Temelde deikenler programlar i巽erisinde belli
say脹 veya baka tipteki veriyi tekrar tekrar yazmay脹 engeller ve
yaz脹lan komutlar dizisinin daha anlaml脹 olmas脹n脹 salarlar.bash
dilinde deiken tan脹mlamas脹 aa脹daki gibi yap脹l脹r.
rfm@debian:~/IUSiberSlaytlar$ x=rfm
Burada dikkat edilmesi gereken husus ise atama yaparken
aralarda boluk olmamas脹d脹r eer bir metin atamas脹
yap脹lacaksa ya ka巽脹 karakteri () kullan脹larak boluklar
belirtilmeli ya da i巽erisinde boluk olan metinler ( ) iaretleri
aras脹na yaz脹lmal脹d脹r aksi halde komut yorumlay脹c脹s脹 her bir
boluktan sonras脹n脹 ya komut ya da parametre olarak
yorumlayacakt脹r.Bu da hatalara sebep olur.
nceden tan脹ml脹 olan deikenlerin deerlerine ulamak i巽in
balang脹巽lar脹na ($) iareti konulur.echo komutu sayesinde bir
deikenin i巽eriini terminale yazd脹rabiliriz.rnein ;
rfm@debian:~/IUSiberSlaytlar$ echo $x
12
Deikenler 端zerinde aritmetik ilemler yapmak
m端mk端nd端r aritmetik ilemler i巽in let komutu
kullan脹l脹r.rnein ;
rfm@debian:~/IUSiberSlaytlar$ x=12
rfm@debian:~/IUSiberSlaytlar$ let x=$x+13
rfm@debian:~/IUSiberSlaytlar$ echo $x
25
rfm@debian:~/IUSiberSlaytlar$ x=12
rfm@debian:~/IUSiberSlaytlar$ let x=$x*2
rfm@debian:~/IUSiberSlaytlar$ echo $x
24
evre Deikenleri
Shell i巽erisinde baz脹 ilemlerin yap脹labilmesi i巽in gerekli
olan ve kullan脹c脹 taraf脹ndan 端zerinde deiiklikler
yap脹labilen deikenler vard脹r bu deikenlere 巽evre
deikeni ad脹 verilir.rnein java ile yaz脹lan kodu
derlemek i巽in jdk'ya ihtiya巽 duyulur.jdk belirli bir dizin
i巽erisinde olmak zorunda deildir bundan dolay脹
旦ntan脹ml脹 bir jdk dizini yoktur.Fakat komut sat脹r脹n脹n jdk'nin
bulunduu dizini bilmesi gerekmektedir.Bu durumda
komut sat脹r脹 bu adresi elde etmek i巽in $JAVA_HOME
isimli 巽evre deikenine bakacakt脹r.Bir baka 旦rnek ise
terminal'in 巽al脹t脹raca脹 d脹sal komutlar脹n bulunduu
dizinler i巽in verilebilir.Genellikle linux da脹t脹mlar脹nda
巽al脹t脹r脹labilir dosyalar /bin dizini i巽erisinde tutulur.Fakat
bu bir zorunluluk deildir eer komut sat脹r脹ndan dorudan
erimek istediiniz programlar varsa bunlar脹n bulunduu
dizinleri $PATH deikenine aralar脹nda ( : ) olmak 端zere
eklerseniz bu programlara komut sat脹r脹ndan rahatl脹kla
eriebilirsiniz.rneklerden de anla脹ld脹脹 端zere 巽evre
deikenleri b端y端k harflerle ifade edilirler bu y端zden
deiken atamas脹 yaparken t端m端n端 b端y端k harfle
yapmamak olas脹 bir kar脹脹kl脹脹n 旦n端ne ge巽ilmesine
yard脹mc脹 olacakt脹r.
D端zenli
聴fadeler(Regular
Expressions)
D端zenli ifadeler bir metnin i巽erisinde bir metin desenini
ifade etmek i巽in kullan脹l脹r.Baka bir deyile d端zenli ifadeler
birden fazla ya da belli bir kurala uyan fakat 旦nceden
belirlenemeyen baz脹 metinlerin yerine ge巽ebilir.
Regex karakterleri
K旦eli parantezler : 聴巽erisinde bulunan karakterlerden
herhangi biri yerine ge巽ebilirler.rnek ;
r[fse]m ifadesi rfm rsm rem ifadelerine kar脹l脹k gelecektir.
Tire karakteri : Belirli bir harf ya da rakam aral脹脹n脹 ifade
etmek i巽in kullan脹l脹rlar.rnek ;
r[a-c]m ifadesi ram rbm rcm ifadelerinin , 15[2-4]3 ifadesi
1523 1533 1543 ifadelerinin, [A-Z] A'dan Z'ye t端m harflerin
yerine [a-z] a'dan z'ye t端m harfler yerine ge巽ecektir.
Nokta karakteri : Yerine yeni sat脹r karakteri hari巽 herhangi
bir karakter gelebilir.rnek ;
r.m ifadesi yerine rfm r2m r*m rFm  vb. Ifadeler kar脹l脹k
gelecektir.
( ^ ) ve ( $ ) karakterleri : (^) karakteri sonras脹nda gelen
metin ile balayan t端m metinleri ifade etmek i巽in
kullan脹l脹r. ( $ ) karakteri ise 旦ncesinde gelen metin ile
biten metinleri ifade etmek i巽in kullan脹l脹r.rnek ;
^r ifadesi rfm rnm rrr rsm rqw rWx vb. metinler yerine
kullan脹labilir.
r$ ifadesi ise awr wwr rrr qWr 1wr vb. metinler yerine
kullan脹labilir.
( * ) ve ( ? ) karakterleri : ( * ) karakteri 0 veya 1'den fazla
herhangi bir karakter i巽in kullan脹l脹r.( ? ) karakteri ise 0
veya 1 adet herhangi bir karakterin yerine ge巽mesi i巽in
kullan脹l脹r.rnek ; *Atat端rk ifadesi MustafaKemalAtat端rk
M.KemalAtat端rk MustafaK.Atat端rk ya da Atat端rk
ifadelerinin yerine ge巽ebilir.
??Mehmet ifadesi ise FSMehmet FMehmet SMehmet ya
da Mehmet ifadesi yerine ge巽ebilir.
( | ) karakteri : iki farkl脹 kural脹 birletirmek i巽in
kullan脹l脹r.rnek; (*Atat端rk)|(??Mehmet) ifadesi bir 旦nceki
a巽脹klamadaki a巽脹l脹mlar脹n hepsinin yerine ge巽ebilir
(  ) karakteri : ka巽脹 karakteri olarak adland脹r脹l脹r.T脹rnak
iaretinin i巽erisinde t脹rnak iareti kullanma,kesme
iaretinin i巽erisinde kesme kullanma,komut sat脹r脹nda
boluk kullanmak vb. Ilemler i巽in tercih edilir.Asl脹nda
kendinden sonra gelen karakterin eer 旦zel bir g旦revi
varsa o g旦revi yoksaymas脹n脹 salar.rnek ;  - _ *

More Related Content

What's hot (20)

Linux Yaz Kamp脹 2017 GNU/Linux Eitim D旦k端man脹
Linux Yaz Kamp脹 2017 GNU/Linux Eitim D旦k端man脹Linux Yaz Kamp脹 2017 GNU/Linux Eitim D旦k端man脹
Linux Yaz Kamp脹 2017 GNU/Linux Eitim D旦k端man脹
聴brahim UAR
Pardus yazici islemleri_mseml
Pardus yazici islemleri_msemlPardus yazici islemleri_mseml
Pardus yazici islemleri_mseml
mimarsinantl
Linux101 - Standart Girdi-脹kt脹
Linux101 - Standart Girdi-脹kt脹Linux101 - Standart Girdi-脹kt脹
Linux101 - Standart Girdi-脹kt脹
SDU CYBERLAB
Linux'a Giris ve VirtualBox a Ubuntu Kurulumu
Linux'a Giris ve VirtualBox a Ubuntu KurulumuLinux'a Giris ve VirtualBox a Ubuntu Kurulumu
Linux'a Giris ve VirtualBox a Ubuntu Kurulumu
Ahmet G端rel
Temel Linux Kullan脹m脹 ve Komutlar脹
Temel Linux Kullan脹m脹 ve Komutlar脹Temel Linux Kullan脹m脹 ve Komutlar脹
Temel Linux Kullan脹m脹 ve Komutlar脹
Ahmet G端rel
Pwnlydays - Linux 101
Pwnlydays - Linux 101Pwnlydays - Linux 101
Pwnlydays - Linux 101
canyoupwn.me
Development of Dynamic Engine and Graphical User Interface Software for Railw...
Development of Dynamic Engine and Graphical User Interface Software for Railw...Development of Dynamic Engine and Graphical User Interface Software for Railw...
Development of Dynamic Engine and Graphical User Interface Software for Railw...
Mahmut Bulut
Rust'a Giri v1
Rust'a Giri v1Rust'a Giri v1
Rust'a Giri v1
Mahmut Bulut
Linux 101
Linux 101Linux 101
Linux 101
Mehmet G端rol ay
Linux101
Linux101Linux101
Linux101
MURAT ARSLAN
Unix Denetim Dok端man脹
Unix Denetim Dok端man脹Unix Denetim Dok端man脹
Unix Denetim Dok端man脹
BTRisk Bilgi G端venlii ve BT Y旦netiim Hizmetleri
Pascal 旦Gren
Pascal 旦GrenPascal 旦Gren
Pascal 旦Gren
guestfd6b9d
Linux Kullan脹m Rehberi
Linux Kullan脹m RehberiLinux Kullan脹m Rehberi
Linux Kullan脹m Rehberi
Mert Can ALICI
delphi xe5
delphi xe5 delphi xe5
delphi xe5
Raziye Ate
Ubuntu Linux
Ubuntu LinuxUbuntu Linux
Ubuntu Linux
Ouzhan TA Akademi
Nmap sonuclarinin yorumlanmasi
Nmap sonuclarinin yorumlanmasiNmap sonuclarinin yorumlanmasi
Nmap sonuclarinin yorumlanmasi
cigalkan
Linux komutlari
Linux komutlariLinux komutlari
Linux komutlari
artvincoruh
Linux sunum
Linux sunumLinux sunum
Linux sunum
Ouzhan TA Akademi
Linux Yaz Kamp脹 2017 GNU/Linux Eitim D旦k端man脹
Linux Yaz Kamp脹 2017 GNU/Linux Eitim D旦k端man脹Linux Yaz Kamp脹 2017 GNU/Linux Eitim D旦k端man脹
Linux Yaz Kamp脹 2017 GNU/Linux Eitim D旦k端man脹
聴brahim UAR
Pardus yazici islemleri_mseml
Pardus yazici islemleri_msemlPardus yazici islemleri_mseml
Pardus yazici islemleri_mseml
mimarsinantl
Linux101 - Standart Girdi-脹kt脹
Linux101 - Standart Girdi-脹kt脹Linux101 - Standart Girdi-脹kt脹
Linux101 - Standart Girdi-脹kt脹
SDU CYBERLAB
Linux'a Giris ve VirtualBox a Ubuntu Kurulumu
Linux'a Giris ve VirtualBox a Ubuntu KurulumuLinux'a Giris ve VirtualBox a Ubuntu Kurulumu
Linux'a Giris ve VirtualBox a Ubuntu Kurulumu
Ahmet G端rel
Temel Linux Kullan脹m脹 ve Komutlar脹
Temel Linux Kullan脹m脹 ve Komutlar脹Temel Linux Kullan脹m脹 ve Komutlar脹
Temel Linux Kullan脹m脹 ve Komutlar脹
Ahmet G端rel
Pwnlydays - Linux 101
Pwnlydays - Linux 101Pwnlydays - Linux 101
Pwnlydays - Linux 101
canyoupwn.me
Development of Dynamic Engine and Graphical User Interface Software for Railw...
Development of Dynamic Engine and Graphical User Interface Software for Railw...Development of Dynamic Engine and Graphical User Interface Software for Railw...
Development of Dynamic Engine and Graphical User Interface Software for Railw...
Mahmut Bulut
Pascal 旦Gren
Pascal 旦GrenPascal 旦Gren
Pascal 旦Gren
guestfd6b9d
Linux Kullan脹m Rehberi
Linux Kullan脹m RehberiLinux Kullan脹m Rehberi
Linux Kullan脹m Rehberi
Mert Can ALICI
delphi xe5
delphi xe5 delphi xe5
delphi xe5
Raziye Ate
Nmap sonuclarinin yorumlanmasi
Nmap sonuclarinin yorumlanmasiNmap sonuclarinin yorumlanmasi
Nmap sonuclarinin yorumlanmasi
cigalkan
Linux komutlari
Linux komutlariLinux komutlari
Linux komutlari
artvincoruh

Similar to Introduction to BASH and Terminal (18)

Kabuk / bash proglama
Kabuk / bash  proglamaKabuk / bash  proglama
Kabuk / bash proglama
Cyber-Warrior.org
Csharpnedir
CsharpnedirCsharpnedir
Csharpnedir
bykezza
SN聴FF聴NG VE SERV聴S DII BIRAKMA SALDIRILARI
SN聴FF聴NG VE SERV聴S DII BIRAKMA SALDIRILARISN聴FF聴NG VE SERV聴S DII BIRAKMA SALDIRILARI
SN聴FF聴NG VE SERV聴S DII BIRAKMA SALDIRILARI
MehmetEminDOAN1
Python Programlama Dilleri Ders Notlari.pdf
Python Programlama Dilleri Ders Notlari.pdfPython Programlama Dilleri Ders Notlari.pdf
Python Programlama Dilleri Ders Notlari.pdf
ZaferBilge2
ARM Mimarisinde Exploit Gelitirme
ARM Mimarisinde Exploit GelitirmeARM Mimarisinde Exploit Gelitirme
ARM Mimarisinde Exploit Gelitirme
SignalSEC Ltd.
Linux Sistem Y旦netimi
Linux Sistem Y旦netimiLinux Sistem Y旦netimi
Linux Sistem Y旦netimi
Kurtulu Karasu
Puppet ile Linux Sistem Y旦netimi Otomasyonu
Puppet ile Linux Sistem Y旦netimi OtomasyonuPuppet ile Linux Sistem Y旦netimi Otomasyonu
Puppet ile Linux Sistem Y旦netimi Otomasyonu
BilgiO A.S / Linux Akademi
A巽脹k Kaynak Kodlu Yaz脹l脹m Gelitirme
A巽脹k Kaynak Kodlu Yaz脹l脹m GelitirmeA巽脹k Kaynak Kodlu Yaz脹l脹m Gelitirme
A巽脹k Kaynak Kodlu Yaz脹l脹m Gelitirme
Serkan Kaba
programlama giris C++ Ders notu fonksiyon
programlama giris C++ Ders notu fonksiyonprogramlama giris C++ Ders notu fonksiyon
programlama giris C++ Ders notu fonksiyon
uleAmet
Linux 聴letim Sistemi - G端ncelleme-2018
Linux 聴letim Sistemi - G端ncelleme-2018Linux 聴letim Sistemi - G端ncelleme-2018
Linux 聴letim Sistemi - G端ncelleme-2018
Murat KARA
Phyton Programlama Dili
Phyton Programlama DiliPhyton Programlama Dili
Phyton Programlama Dili
Cumhuriyet niversitesi
Roket Yaz脹l脹m脹 Eitimi Hafta 1
Roket Yaz脹l脹m脹 Eitimi Hafta 1Roket Yaz脹l脹m脹 Eitimi Hafta 1
Roket Yaz脹l脹m脹 Eitimi Hafta 1
Uurkan Ate
Unixlinux (1)
Unixlinux (1)Unixlinux (1)
Unixlinux (1)
sagsaglim
Temel D端zeyde MySQL ve PHP Eitimleri 1
Temel D端zeyde MySQL ve PHP Eitimleri 1Temel D端zeyde MySQL ve PHP Eitimleri 1
Temel D端zeyde MySQL ve PHP Eitimleri 1
Univerist
Mehmet旦zcan 20102846
Mehmet旦zcan 20102846Mehmet旦zcan 20102846
Mehmet旦zcan 20102846
Mehmet zcan
Csharpnedir
CsharpnedirCsharpnedir
Csharpnedir
bykezza
SN聴FF聴NG VE SERV聴S DII BIRAKMA SALDIRILARI
SN聴FF聴NG VE SERV聴S DII BIRAKMA SALDIRILARISN聴FF聴NG VE SERV聴S DII BIRAKMA SALDIRILARI
SN聴FF聴NG VE SERV聴S DII BIRAKMA SALDIRILARI
MehmetEminDOAN1
Python Programlama Dilleri Ders Notlari.pdf
Python Programlama Dilleri Ders Notlari.pdfPython Programlama Dilleri Ders Notlari.pdf
Python Programlama Dilleri Ders Notlari.pdf
ZaferBilge2
ARM Mimarisinde Exploit Gelitirme
ARM Mimarisinde Exploit GelitirmeARM Mimarisinde Exploit Gelitirme
ARM Mimarisinde Exploit Gelitirme
SignalSEC Ltd.
Linux Sistem Y旦netimi
Linux Sistem Y旦netimiLinux Sistem Y旦netimi
Linux Sistem Y旦netimi
Kurtulu Karasu
Puppet ile Linux Sistem Y旦netimi Otomasyonu
Puppet ile Linux Sistem Y旦netimi OtomasyonuPuppet ile Linux Sistem Y旦netimi Otomasyonu
Puppet ile Linux Sistem Y旦netimi Otomasyonu
BilgiO A.S / Linux Akademi
A巽脹k Kaynak Kodlu Yaz脹l脹m Gelitirme
A巽脹k Kaynak Kodlu Yaz脹l脹m GelitirmeA巽脹k Kaynak Kodlu Yaz脹l脹m Gelitirme
A巽脹k Kaynak Kodlu Yaz脹l脹m Gelitirme
Serkan Kaba
programlama giris C++ Ders notu fonksiyon
programlama giris C++ Ders notu fonksiyonprogramlama giris C++ Ders notu fonksiyon
programlama giris C++ Ders notu fonksiyon
uleAmet
Linux 聴letim Sistemi - G端ncelleme-2018
Linux 聴letim Sistemi - G端ncelleme-2018Linux 聴letim Sistemi - G端ncelleme-2018
Linux 聴letim Sistemi - G端ncelleme-2018
Murat KARA
Roket Yaz脹l脹m脹 Eitimi Hafta 1
Roket Yaz脹l脹m脹 Eitimi Hafta 1Roket Yaz脹l脹m脹 Eitimi Hafta 1
Roket Yaz脹l脹m脹 Eitimi Hafta 1
Uurkan Ate
Unixlinux (1)
Unixlinux (1)Unixlinux (1)
Unixlinux (1)
sagsaglim
Temel D端zeyde MySQL ve PHP Eitimleri 1
Temel D端zeyde MySQL ve PHP Eitimleri 1Temel D端zeyde MySQL ve PHP Eitimleri 1
Temel D端zeyde MySQL ve PHP Eitimleri 1
Univerist
Mehmet旦zcan 20102846
Mehmet旦zcan 20102846Mehmet旦zcan 20102846
Mehmet旦zcan 20102846
Mehmet zcan

Introduction to BASH and Terminal

  • 1. 聴STANBUL N聴VERS聴TES聴 S聴BER GVENL聴K TOPLULUU BASH BET聴K D聴L聴N聴N TEMELLER聴 Haz脹rlayan : Ramazan Furkan MATARACI
  • 3. Yayg脹n kullan脹lan shell dilleri Bsh : sh olarak da ge巽er a巽脹l脹m脹 Bourne Shell dir.GNU projesinin ilk d旦nemlerinde kullan脹lan shell dilidir.Bug端nlerde yerini b端y端k 旦l巽端de bash'e b脹rakm脹t脹r. Bash : bsh nin ard脹l脹 durumundad脹r.Bsh'nin 端zerine eklentiler yap脹lm脹 halidir.A巽脹l脹m脹 Bourne Again Shelldir Csh : Syntax'脹 C diline benzeyen bir shell'dir.Domine da脹t脹mlar taraf脹ndan varsay脹lan olarak gelmediinden dolay脹 kullan脹c脹 say脹s脹 k脹s脹tl脹d脹r.A巽脹l脹m脹 ise C shell dir. Ksh : Bash ve Csh dillerini bir araya getiren ve 端zerinede yeni birka巽 komut ve yordamlar脹 i巽eren shell dilidir.A巽脹l脹m脹 ise Korn Shell dir. Zsh : Korn shell'in 端zerine ekstra birka巽 komut bar脹nd脹ran bir shell dilidir.A巽脹l脹m脹 ise Z shell dir.
  • 4. 聴巽sel(聴nternal) Shell Komutlar脹 B端t端n diller kendi i巽erisinde i巽sel komutlar bulundurur bunlar dilden dile farkl脹l脹k g旦stersede ama巽lar脹 genellikle ayn脹d脹r.Bu komutlar ile sisteme dair hayati temel ilemler ger巽ekletirilebilir.Bash i巽erisindeki internal komutlar ; Cd : Bu komut sayesinde dizinler aras脹nda ge巽iler yap脹labilir.rnek cd /home/rfm komutu rfm kullan脹c脹s脹na ait home dizinine ge巽i yapar. Pwd : uanda komut sat脹r脹n脹n i巽erisinde bulunduu dizini terminale yazar. Echo : Akabinde yaz脹lacak olan komutlar脹 terminale yazar.rnein echo rfm komutunun 巽脹kt脹s脹 terminale rfm olacakt脹r. Exec : Akabinde yaz脹lacak olan komutu 巽al脹t脹r脹p terminali kapat脹r.rnein exec firefox komutunu 巽al脹t脹r脹rsan脹z terminal kapan脹p firefox web browser a巽脹lacakt脹r. Time : Akabinde yaz脹lcak olan komutun ne kadar s端rede 巽al脹t脹脹n脹 ms cinsinden terminale yazar. Set : 聴lerde bahsedilecek olan komut sat脹r脹 parametrelerini belirli kurallara g旦re 旦nceden atayan komuttur. Exit : A巽脹k olan shelli kapat脹r.
  • 5. External(D脹sal) Shell Komutlar脹 Kullan脹lan shell haricinde varsay脹lan olarak var olmayan komutlara verilen genel isimdir.Bu komutlara bir 巽ok 旦rnek verilebilir.聴lk akla gelen komutlar : ls , cat , nano ,vi , vim , emacs , micro vb. Komutlard脹r.Bu komutlar Linux da脹t脹m脹 kurulduu esnada otamatik olarak y端klenmi olabilir.Herzaman y端kl端 olmak zorunda deillerdir.Bu komutlar genellikle /bin dizini i巽erisinde tutulurlar.Bu dizin d脹脹nda var olan komutlar脹n komut sat脹r脹 taraf脹ndan alg脹lanabilmesi i巽in PATH 巽evre deikeninde g旦sterilmesi gerekmektedir.Bir linux da脹t脹m脹 olan debian'da bu deiken varsay脹lan olarak : /usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games Yukar脹daki gibi belirlenmitir ':' karakteri ile yeni komut dizinlerini shell'in tan脹mas脹 i巽in bu deikene ekleyebilirsiniz.Bu gibi 巽evre deikenlerine deerler verirken dikkatli olunmazsa sistemsel baz脹 bozukluklara sebep olunabilir.
  • 6. Shell 聴巽in Ge巽erli Olan Baz脹 Tu K脹sayollar脹 Ctrl + C : al脹makta olan shell komutunu durdurur. Ctrl + A : 聴mleci sat脹r ba脹na g旦t端r端r Ctrl + E : 聴mleci sat脹r sonuna g旦t端r端r. Ctrl + L : Terminali temizler. Ctrl + R : nceden yaz脹lm脹 olan komutlar i巽in arama yap脹lmas脹n脹 salayan istemciyi a巽ar. Ctrl + D : Shelli kapat脹r.Exit komutuyla edeerdir. Tab : Dosya ad脹,dizin ad脹 veya komutadlar脹n脹n yaz脹lmayan k脹s脹mlar脹n脹 tamamlar.rnein , bas harflerini istemciye yaz脹p tab tuuna bas脹l脹rsa otomatik olarak istemci , komutu bash 'e tamamlar. Ctrl + Z : al脹an bir program脹 durdurur 'fg' komutu ile duran program脹 tekrardan geri getirmek m端mk端nd端r. !! : En son 巽al脹t脹r脹lan komutu tekrardan 巽al脹t脹r脹r !!<komut> : En son 巽al脹脹t脹r脹lan komutun ba脹na belirlenen baka bir komutu ekler. Ctrl + T : 聴mlecin 端zerinde bulunduu karakter ile bir 旦ncesindeki karakterin yerini deitirir.
  • 7. Man komutu Man komutu ile bir komuta ait kullan脹m klavuzuna ulamak m端mk端nd端r.Kullan脹m klavuzlar脹nda ise komutun ne ie yarad脹脹 ile ilgili temel bilgiler ve eer al脹yorsa parametrelerine ait bilgiler bulunur.man <komut ad脹> eklinde yaz脹ld脹脹nda komuta ait kullan脹m klavuzunu getirir.Komutlar d脹脹nda aa脹dki tabloda g旦r端lebilecek 旦elerinde kullan脹m klavuzuna man ile ulamak m端mk端n olacakt脹r.rnein , man passwd komutu ile passwd komutunun man sayfas脹na eriebilirken man 5 passwd komutu ile passwd dosya uzant脹s脹na ait man sayfas脹na eriirsiniz.Eer arad脹脹n脹z isimde bir man sayfas脹 yoksa hata ile kar脹la脹rs脹n脹z.
  • 8. Metin ak脹lar脹(Stream) Terminal ortam脹nda 巽al脹an programlar metin ak脹lar脹yla 巽al脹ma durumlar脹n脹 program脹 kullanan kiiye aktarabilirler.rnein , ls komutu dizi ve dosylar脹 listeleyebilmesi i巽in metin ak脹脹na ihtiya巽 duyar. Ak脹 tipleri : Standart Output : Bir program 巽al脹maya balad脹ktan sonra o program脹n 端rettii 巽脹kt脹lara verilen isimdir. Standart 聴nput : Kullan脹c脹 klavyesinden ya da stdout ak脹脹ndan gelen metni programa girdi olarak alabilen ak脹 t端r端d端r. Standart Error : Standart output'un bir t端revi olup hata 巽脹kt脹lar脹n脹 i巽eren 巽脹kt脹lard脹r.Bir program 巽al脹脹rken hata mesajlar脹n脹 dosyalara yazmak , dier mesajlar脹 ise terminalde tutmak istersek stderr 巽脹kt脹lar脹n脹 kullanabiliriz.
  • 9. Girdi-脹kt脹 Y旦nlendirmesi Ak脹lar脹 birbirlerine y旦nlendirmek i巽in baz脹 karakterler kullan脹l脹r.Bunlar脹n kullan脹m ekilleri aa脹daki gibidir. Stdout > File : bir program脹n oluturduu stdout verisini yeni bir dosya a巽arak o dosyaya kaydeder eer dosya var ise 端zerine yazar. Stdout >> File : bir program脹n oluturduu stdout versini var olan bir dosyaya kaydeder.Eer dosya bulunmuyorsa yeni dosya oluturur. Stderr 2> File : ilk kullan脹mla ayn脹 mant脹ktad脹r. Farkl脹 olarak stdout deilde stderr mesajlar脹n脹 kullan脹r. Stderr 2>> File : ikinci kullan脹mla ayn脹 mant脹ktad脹r.Farkl脹 olarak stdout deilde stderr mesajlar脹n脹 kullan脹r. Stdout ve stderr &> : stdout ve stderr mesajlar脹n脹 yeni bir dosyaya yazar eer dosya varsa 端zerine yazar. Stdin < File : dosya i巽eriine stdin mesaj脹 alan bir programa toplu halde g旦nderir. Stdin << File : dosya i巽eriine stout mesaj脹 alan bir programa sat脹r sat脹r g旦nderir. Stdin | stdout | stdin | stdout | . : Pipe ilemi olarak adland脹r脹l脹r.bir programa ait stdout ak脹脹n脹 akabinde gelen dier programlara stdin olarak g旦nderir. Stdout | tee File : ayn脹 anda output hem terminalde okunabilir hem de bir dosyaya kaydedilebilir.
  • 10. Komut i巽erisinde komut 巽al脹t脹rma Baz脹 旦zel durumlarda komut i巽erisnde komut 巽al脹t脹rma ihtiyac脹 olabilir.rnein bir dizinde birden fazla dosya bulunmas脹 durumunda bu dosyalar脹n hepsinin i巽eriinin terminale yaz脹lmas脹n脹 isteyecek olursak bu y旦ntemle kolay bir ekilde ger巽ekletirilebilir. Bir komut i巽erisinde baka bir komutu 巽al脹t脹rmak i巽in komutlar脹 aa脹daki formda yazmak gerekir. Komut `komut` buradaki 旦zel karakter (`) kesme iareti olan (') karakter ile kar脹t脹r脹lmamal脹d脹r.
  • 11. Deikenler Hemen her dilde olduu gibi bash dilinde de deikenler bulunmakta.Temelde deikenler programlar i巽erisinde belli say脹 veya baka tipteki veriyi tekrar tekrar yazmay脹 engeller ve yaz脹lan komutlar dizisinin daha anlaml脹 olmas脹n脹 salarlar.bash dilinde deiken tan脹mlamas脹 aa脹daki gibi yap脹l脹r. rfm@debian:~/IUSiberSlaytlar$ x=rfm Burada dikkat edilmesi gereken husus ise atama yaparken aralarda boluk olmamas脹d脹r eer bir metin atamas脹 yap脹lacaksa ya ka巽脹 karakteri () kullan脹larak boluklar belirtilmeli ya da i巽erisinde boluk olan metinler ( ) iaretleri aras脹na yaz脹lmal脹d脹r aksi halde komut yorumlay脹c脹s脹 her bir boluktan sonras脹n脹 ya komut ya da parametre olarak yorumlayacakt脹r.Bu da hatalara sebep olur. nceden tan脹ml脹 olan deikenlerin deerlerine ulamak i巽in balang脹巽lar脹na ($) iareti konulur.echo komutu sayesinde bir deikenin i巽eriini terminale yazd脹rabiliriz.rnein ; rfm@debian:~/IUSiberSlaytlar$ echo $x 12
  • 12. Deikenler 端zerinde aritmetik ilemler yapmak m端mk端nd端r aritmetik ilemler i巽in let komutu kullan脹l脹r.rnein ; rfm@debian:~/IUSiberSlaytlar$ x=12 rfm@debian:~/IUSiberSlaytlar$ let x=$x+13 rfm@debian:~/IUSiberSlaytlar$ echo $x 25 rfm@debian:~/IUSiberSlaytlar$ x=12 rfm@debian:~/IUSiberSlaytlar$ let x=$x*2 rfm@debian:~/IUSiberSlaytlar$ echo $x 24
  • 13. evre Deikenleri Shell i巽erisinde baz脹 ilemlerin yap脹labilmesi i巽in gerekli olan ve kullan脹c脹 taraf脹ndan 端zerinde deiiklikler yap脹labilen deikenler vard脹r bu deikenlere 巽evre deikeni ad脹 verilir.rnein java ile yaz脹lan kodu derlemek i巽in jdk'ya ihtiya巽 duyulur.jdk belirli bir dizin i巽erisinde olmak zorunda deildir bundan dolay脹 旦ntan脹ml脹 bir jdk dizini yoktur.Fakat komut sat脹r脹n脹n jdk'nin bulunduu dizini bilmesi gerekmektedir.Bu durumda komut sat脹r脹 bu adresi elde etmek i巽in $JAVA_HOME isimli 巽evre deikenine bakacakt脹r.Bir baka 旦rnek ise terminal'in 巽al脹t脹raca脹 d脹sal komutlar脹n bulunduu dizinler i巽in verilebilir.Genellikle linux da脹t脹mlar脹nda 巽al脹t脹r脹labilir dosyalar /bin dizini i巽erisinde tutulur.Fakat bu bir zorunluluk deildir eer komut sat脹r脹ndan dorudan erimek istediiniz programlar varsa bunlar脹n bulunduu dizinleri $PATH deikenine aralar脹nda ( : ) olmak 端zere eklerseniz bu programlara komut sat脹r脹ndan rahatl脹kla eriebilirsiniz.rneklerden de anla脹ld脹脹 端zere 巽evre deikenleri b端y端k harflerle ifade edilirler bu y端zden deiken atamas脹 yaparken t端m端n端 b端y端k harfle yapmamak olas脹 bir kar脹脹kl脹脹n 旦n端ne ge巽ilmesine yard脹mc脹 olacakt脹r.
  • 14. D端zenli 聴fadeler(Regular Expressions) D端zenli ifadeler bir metnin i巽erisinde bir metin desenini ifade etmek i巽in kullan脹l脹r.Baka bir deyile d端zenli ifadeler birden fazla ya da belli bir kurala uyan fakat 旦nceden belirlenemeyen baz脹 metinlerin yerine ge巽ebilir. Regex karakterleri K旦eli parantezler : 聴巽erisinde bulunan karakterlerden herhangi biri yerine ge巽ebilirler.rnek ; r[fse]m ifadesi rfm rsm rem ifadelerine kar脹l脹k gelecektir. Tire karakteri : Belirli bir harf ya da rakam aral脹脹n脹 ifade etmek i巽in kullan脹l脹rlar.rnek ; r[a-c]m ifadesi ram rbm rcm ifadelerinin , 15[2-4]3 ifadesi 1523 1533 1543 ifadelerinin, [A-Z] A'dan Z'ye t端m harflerin yerine [a-z] a'dan z'ye t端m harfler yerine ge巽ecektir. Nokta karakteri : Yerine yeni sat脹r karakteri hari巽 herhangi bir karakter gelebilir.rnek ; r.m ifadesi yerine rfm r2m r*m rFm vb. Ifadeler kar脹l脹k gelecektir.
  • 15. ( ^ ) ve ( $ ) karakterleri : (^) karakteri sonras脹nda gelen metin ile balayan t端m metinleri ifade etmek i巽in kullan脹l脹r. ( $ ) karakteri ise 旦ncesinde gelen metin ile biten metinleri ifade etmek i巽in kullan脹l脹r.rnek ; ^r ifadesi rfm rnm rrr rsm rqw rWx vb. metinler yerine kullan脹labilir. r$ ifadesi ise awr wwr rrr qWr 1wr vb. metinler yerine kullan脹labilir. ( * ) ve ( ? ) karakterleri : ( * ) karakteri 0 veya 1'den fazla herhangi bir karakter i巽in kullan脹l脹r.( ? ) karakteri ise 0 veya 1 adet herhangi bir karakterin yerine ge巽mesi i巽in kullan脹l脹r.rnek ; *Atat端rk ifadesi MustafaKemalAtat端rk M.KemalAtat端rk MustafaK.Atat端rk ya da Atat端rk ifadelerinin yerine ge巽ebilir. ??Mehmet ifadesi ise FSMehmet FMehmet SMehmet ya da Mehmet ifadesi yerine ge巽ebilir. ( | ) karakteri : iki farkl脹 kural脹 birletirmek i巽in kullan脹l脹r.rnek; (*Atat端rk)|(??Mehmet) ifadesi bir 旦nceki a巽脹klamadaki a巽脹l脹mlar脹n hepsinin yerine ge巽ebilir ( ) karakteri : ka巽脹 karakteri olarak adland脹r脹l脹r.T脹rnak iaretinin i巽erisinde t脹rnak iareti kullanma,kesme iaretinin i巽erisinde kesme kullanma,komut sat脹r脹nda boluk kullanmak vb. Ilemler i巽in tercih edilir.Asl脹nda kendinden sonra gelen karakterin eer 旦zel bir g旦revi varsa o g旦revi yoksaymas脹n脹 salar.rnek ; - _ *