Linux 101
MetaRoc , Türkiye’nin çok farklı cografi konumlarında bulunan ve
Caner KÖROGLU önderliginde bir araya gelebilen altı kisilik bir ekiptir.
Bir araya gelme amaçlarımızdan biri, kendimizi Siber Güvenlik
alanında gelistirebilmek ve mümkün oldugunca ögrendiklerimizi,
basarabildiklerimizi sizlerle paylasmak.
“Bilgi paylastıkça çogalır.” düsüncesiyle hareket eden bir ekip,
MetaRoc
Günümüzde riskler, sadece dısarıda degil. Evimizde, odamızda
masamızın üstünde,cebimizde.. Ekip olarak öncelikli hedefimiz ülkemiz
ve insanlarımız için ‘Siber Güvenlik Farkındalıgı’ olusturabilmek.
Zamanla, kendimize ve size faydalı olabilecek projelerde tekrar
bulusmak dilegiyle.
Metaroc
selam!Murat Arslan
İYTE Bilgisayar Mühendisligi
Linux | Siber Güvenlik | Network | Pyhton
@marslan0535 | muratarslan0535@gmail.com
rootmarslan.blogspot.com.tr
Neler ögrenecegiz?
*GNU/LINUX
*TEMEL TERMINAL KOMUTLARI
*PAKET YÖNETIMI
*TEXT EDITÖRLERI
*KULLANICI ISLEMLERI
*IZINLER
*PROCESS
*DOSYA SISTEMLERI
*ÇEVRE DEGISKENLERI
*SERVISLER
...
1.
GNU/LINUX
GNU, LİNUX NEDİR?
GNU
(GNU IS NOT UNIX)
Linux terminali nedir???
**kernel(çekirdek) ** shell(kabuk)
Komutlar vererek islemleri yaptıgımız yerdir.
Shell programı sayesinde komutlarımız yorumlanır
Islemler gerçeklesir.
echo(ekrana yazdırmak için kullanılır)
echo $SHELL dersek kabuk programımızı ögrenebilir.
Linus torwalds
linux çekirdeGini
geliStirmiStir.
richard stallman
gnu yu
GELISTIRMISTIR.
2.
TEMEL TERMINAL
KOMUTLARI
Lınux cekirdekli
isletim
sistemlerinde
klasörlere “dizin”
denir!!!
Full Path
Full path kavramı komuta en
üst dizinden baslayarak
gidecegi yolu gösterir.
Baslangıcı en üst dizin yani /
(kök dizin)kabul eder.
/etc/passwd
/home/murat/Müzikler/pop
Full path / relatıve path
Relatıve Path
Baslangıcı suan bulundugu
dizin kabul eder. Eger
/home/murat
dizinindeysek
/Müzikler/pop yazarak
soldaki islemle aynı yere
gelmis oluruz.
PWD(PRINT WORKING DIRECTORY)
Kullanıcıya hangi dizinde bulundugunu full path ile
gösterir.
Linux
dosya
sistemı
genel
yapısı
Dizin degıstırmek ıcın kullanılır.
$ cd . (bulunulan dizin)
$ cd .. (bir üst dizin)
$ cd ~ (ev dizini)
$ cd - (bir önceki dizin)
Cd (change dırectory)
Place your screenshot here
Ls
(list directories)
Istenilen dizindeki
dizin,dosya vb alayını
listeler :)
ls -a (all) gizli dosyalarıda
gösterir.
ls -l ayrıntılı listeler
ls -h listelenenlerin
boyutlarını daha anlasılır
yapar.
Isminin Basında “ . ”
olan dosya ve
dizinler gizlidir
touch
Eger dosya önceden var
ise dosyanın islem tarihini
günceller.
Eger dosya önceden yok
ise belirtilen dizine dosya
olusturur.
*Dizin belirtilmezse
bulunulan dizine olusturur.
FILE
Istenilen dosya,dizin vb.
hakkında özet bilgiler
verir.
File / stat
STAT
Istenilen dosya,dizin vb.
hakkında file komutuna
göre daha genis bilgiler
verir. Uid,güncellenme vs.
Çalısılan terminali nasıl temizleriz????
$ clearCTRL+L
cat
Dosyanın icerigini
gösterir.
Yönelendirme
isaretleri ile dosya
da olusturulabilir.
Yine yönlendirme
isaretleri ile
dosyanın sonuna
ekleme yapılabilir.
Less more historyTerminale sıgmayan
büyük veya uzun
metinlerde,metini
Terminal boyutu
kadar ekrana
yazdırır. Okurnurluk
kazandırır. Büyük
dosyaları okumada
kullanıslıdır.
**-g -G parametleri
Less komutunda
içerik içinde ileri-geri
hareketler
yapılabilir. Ama
more komutunda
sadece ileri yönlü
hareket yapılır. Less
tüm içerigi bellege
almadıgı için daha
kullanıslıdır.
Terminale girilen
önceki komutları
gösterirkullanıcın
home dizinindeki
.bash_history
dosyasında history
limiti bulunur.
Terminalde kopyalama yapıstırma
ctrl+shift+c
ctrl+shift+v
cp(copy)
Dosya kopyalamamızı saglar.
$ cp /-/kaynak/-/hedef
Dizinleri kopyalamak için -r parametresi kullanılır.
Eger kopyalanacak yerde dizin yoksa önce dizin
olustururlur sonra kopyalama yapılır.
-i parametresi ise bizi dosyanın üzerine yazma
durumlarında uyarır.
mv(move)
Tasıma islemlerinde kullanılır.
$ mv kaynak/-/hedef
Cp deki -i parametresi burada da kullanılır.
Isim degistirmek için kullanılır.
$ mv eski isim/-/yeni isim
Yardım komutları
MAN(MANUEL)
man komut seklinde çalısır.
Komutun kılavuzudur.
Komut hakkında kapsamlı
bilgileri verir.
Q ile çıkıs yapılır.
HELP
Komut --help seklinde
çalısır.
Komut hakkında özet ve
önemli bilgileri verir.
dmidecode uname uptimeSistem ile ilgili
bilgileri verir.
Dmicode --type bios
Bios hakkındaki
bilgileri verir. --type
Parametresi ile
kullanılır.
Kullanılan kernel
hakkında bilgileri
verir.
-i parametresi
versiyonu
-a parametresi
bütün bilgileri verir.
Acaba sistem ne
zamandır açık???
mkdir(make directory)
Dizin olusturmak için kullanılır.
-p parametresi ile dizinin içine dizin olusturulur.
$ mkdir dizin{1..7} ne yapar???
$ mkdir dizin{4..8}/{1..3} ne yapar???
rm(remove)
rm
rm dosya dosyayı
siler
Bu ne ki???
$ rm -rf /*
rm -r
Dizinleri silmek için
kullanılır. Recursive
yolla silinir.
rmdir directory de
kullanılabilir.
rm -f
Silinecekleri zor
kullanarak siler.
Silmeye zorlar
Find komutu dizin,dosya vb aramamızı saglar.
find Aranacak yerler/-/özellikleri
-type parametresi ile dizin,dosya,karakter dosyası vb
-name dosyanın ismi
$ find /home -type d -name ödevlerim
find
Deneyelim ögrenelim :)
whatis
$ whatis cat
Çıktı sence ne??
exit
Yoksa
bulunduğun
kullanıcıdan mı
çıktı ???
ctrl+d
exit komutunun
kısayolu mu ;))
Ctrl+c (cut)
Bir process
islerken bunu
yapmalısın!!
Tab kullan!!!!
Tab tusu terminaldeki en iyi yardımcımızdır.
Bütün kelimeyi komutu yazmadan tab ile
tamamlayabiliriz veya komut satırında
hızlıca saga sola gitme islemlerini yapabilir
Daha neler nelerr….
alias
Alias kullanarak bir komutu bir kısayola atayabiliriz.
Mesela ~ isareti bir aliastır ~ = /home/murat demektir.
$ alias kas=’ls -la’ dersek kas yazdıgımızda ls -la komutunun
çıktısını alırız.
unalias kas yazarak bu kısayolu kaldırabiliriz.
Kanallar
Standart ın
(stdın)
(0)
Standart
out
(stdout)
(1)
Standarterror(stderr)
(2)
process
Yönlendirme isaretleri
DENEYELIM!!!
$ echo merhaba
$ echo merhaba > dosya.txt
$ echo dünya >> dosya.txt
$ Cat < dosya.txt > dosya2.txt
$ ls /olmayan/dizin > error.txt
$ ls /olmayan/dizin 2> error.txt
yönlendirmeler
<
İNPUT(GIRDI) ALIR.
Sagındakı dosya
solundakıne gırdı
olur.
> & >>
output(çıktı)alır.
Soldakinin çıktısı
sagdakine girdi olur.
$ Hello > dosya.txt
>> ise yine
yönlendirmedir fakat
dosyanın altına
ekleme yapar.
2> & 2<
Stderr kanalının
numarası 2 oldugu
için 2 kullandık. Eger
stderr da kanal
belirtmezsek hata
mesajı verir. Çünkü
hata oldugunu
bilmiyor,stdın veya
stdout sanar.
Pipe ( | ) and tee
pipe(|) bir çıktıyı diger
komutun girdisi yapar.
$ ls -la /etc | less
Bu komut ls -la çıktısını less
komutuna verir ve less
komutu sayfa sayfa çıktı
almamızı sağlar.
$ ls | tee dosya.txt
Dersek ls komutunun
çıktısını dosya.txt içine
yazar. Buradaki tee ise
dosya içine yazılanları
ekrana yazmasını saglar
Bunlar ne
demeeek???
1)dosy*
2)*zik
3)bil??say?r
Head
tail
$ head /var/log/syslog
Head komutu ile uzun
dosyaların sadece
istedigimiz kadarını
dosyanın basından
görebiliriz.
-n 20 dersek basından ilk
20 satırı görebiliriz.
$ tail /var/log/syslog
Head komutu ile uzun
dosyaların sadece
istedigimiz kadarını
dosyanın sonundan
görebiliriz.
Expand / unexpand
Uygulamada cat ile aynı gibi görünen bu komut dosyadaki
sekmeleri bosluk karakterine cevirir. Bu nedenle
expand dosya.txt dedikten sonra cat dosya.txt çalısmaz.
Öncesinde unexpand dosya.txt demeliyiz.
*** wc dosya adı ne ise yarar???
Join cut sort
Birden çok dosyayı
bir alanda
göstermek için
kullanılır.
$ join file1.txt file2.txt
metin dosyalarının
belirli bölümlerini
görüntüleme, bu
bölümleri ekleme
ve çıkarma gibi bir
çok islemi
yapmamıza
olanak saglayan
bir komuttur.
Belirli
parametlerle
dosyada
sıralama
yapmamızı
saglar.
grep
Grep komutu dosyanın içinde arama yapar,find komutu ise
dosyalar arasında aram yapıyordu.
$ grep --color kurt dosya.txt
Bu komut dosya.txt içerisindeki kurt karakterlerini boyar ve
yazdırır.
$ env | grep -i User
Env çıktısını grep girdi alır. Ve user karakterleri var mı bakar.
$ cut -f 1,3 --d “ “ dosyadadı
-f sütunları -d de neye göre ayırılacagın belirtir.
Linux101
meta
Bilginin Bilgisi :)))
Aslında datanın bilgisi bir nevi etiketi:)
3.
Isler karısıyor
:((
Text Editörleri
regex
(Regular
expressıons)
regex genel kurallar
ıcın tıkla
Vim terminalde en çok kullanılan text editörlerindendir.
Büyük çaplı dosyaları okumak için gelistirilmistir. Ögrenmesi
zahmetli fakat oldukça kullanıslıdır.
Vi de iki mod vardır. Komut ve yazma modu
Komut modu : Dosyanın içerigine etki etmez,dosyayı
kaydetme,mod degistirme,açma ,kapama vb. Islemleri yapar.
Yazı modu: Dosyanın içerigini degistirdigimiz moddur.
vim(vı)
vim(vi)
Esc tusu ile komut moduna “i” veya “a”tusu ile yazı moduna
Kaydedip çıkmak için esc ile komut moduna geçilir. Sonra
:wq komutu ile kaydedip çıkabilir.
:q! Dersek kaydetmeden çıkarız.
“h” ”j” ”k” ”l” tuslarını yönlendirmede kullanabiliriz.
X seçilen karakteri keser aynı zamanda silerde ;)
dd bulunulan bütün satırı siler.
y secilen yeri kopyalar
yy bulunulan bütün satırı kopyalar.
vım(vı)
p bulunulan yere kopyalı metni yapıstırır.
u son islemi geri alır.
v yapılan islemi kaydeder.
ZZ == :wq aynı islevi görürler.
Vim editörü hakkında daha kapsamlı komutları ögrenmek
için tıklanıyınız ;)
***Bu komutları sadece komut modunda kullanabiliriz.***
Dıger text edıtorlerı
Nano:
Kullanımı oldukça
kolay olan bu editör
ile birçok dosyanızı
düzenleyip
degistirebilirsiniz.
Daha fazla bilgi için
tıklayınız.
Emacs:
Bir diger çok
kullanılan text
editörü olup daha
fazla bilgi edinmek
için tıklayınız.
Linux cekirdekli
isletim
sistemlerinde
dosya uzantısı
yoktur!!!
4. Kullanıcı islemleri
Linux isletim sistemlerinde birden fazla kullanıcı olabilir.
Fakat bu kullanıcıların en yetkilisi ROOT kulllanıcıdır.
Kullanıcılar birleserek grupları olusturur.
Dosya sahibi kullanıcının grubun ve digerlerinin ayrı ayrı izin
hakları vardır.
Peki bu kullanıcıların ve grupların bilgisi parolaları nerede
tutulur???
User, group bilgisi
etc/passwd
Kullanıcılara ait genel bilgilerin tutuldugu dosyadır. Peki bu
bilgiler nelerdir???
isim:sifre:uid:gid:yorum:evdizini:kabuk
/etc/shadow
Kullanıcılara ait parolaların belirli sifreleme algoritmalarıyla
saklandıgı dosyadır. Peki nasıl sifreleniyor ki ???
/etc/group
Gruplara ait bilgilerin tutuldugu dosyadır.
/etc/passwd
/etc/shadow
/etc/group
Dosyalarında sadece
root kullanıcı
degısıklık yapabilir!!!
Peki yeni kullanıcı nasıl eklenir???
adduser
$ adduser murat
Komutu ile yeni kullanıcı
olusturulur. Parola ve
genel bilgiler olusum
sırasında sorulacaktır.
deluser
$ deluser murat komutu
ile de olusturulan
kullanıcıyı silebiliriz. Aynı
zamanda kullanıcının
grubunu da silecektir.
HMMM???
Adduser ve useradd komutlarını
kullanmadan bir kullanıcı ekleyelim.
Sonra grubunu olusturalım ve tabiki
kullanıcı parolası da lazım. Son olarak
bu kullanıcın ev dizini de olmalı tabi ;)
5.
IZINLER
dOSYA IZINLERI
Dosya izinler read(r),write(w),execute(x) olmak üzere 3 çesittir.
Her dosya için user,group,other izinleri ayrı ayrıdır.
r: readable(4) w: writable(2) x: executable(1) -: empty
Dosya izinleri degistırme
(r)4+(w)2+(x)1 = 7
$ chmod 761 dosya.txt
$ chmod 440 müzikler
$ chmod 142 /home/murat
$ chmod 700 /var/bin
$ chmod 000 /etc/passwd
$ chmod u+xw dosya.txt
$ chmod a+w dosya5.txt
$ chmod g-xw ödevler
$ chmod o+xr dolu.txt
Peki dosya ilk
olusturuldugunda ilk
izinlerini kim veriyor ki ???
Dosya sahipligini degistirme
chown
$ sudo chown murat dosya.txt
Dosya.txt dosyasının yeni sahini
murat oldu ;)
$ chown useradı:grupadı dosya.txt
Chgrp
$ sudo chgrp grupadı dosya.txt
Dosya.txt
Bu ne peki???
$ passwd komutu ile kullanıcı parolasını degistirebiliyorduk.
Peki kullanıcı parolaları nerede tutuluyordu? Bu dosyada
degisiklik için root olmak gerekmiyor muydu? Eee biz bu
dosyanın içerigini nasıl degistirdik ki???
suıd(set user ıd) / sgıd(set group ıd)
suıd/sgıd
Bir programı çalıstıran kullanıcılarınprogram çalıstıgı sürece
program dosyasının sahibinin yetkilerine sahip olmalarını
saglar. Yani sistemde bir programı kullanması gereken fakat o
programı kullanmasına normal sartlarda yetkisi olmayan bir
kullanıcının geçici olarak programı kullanabilmesi de diyebiliriz.
$ sudo chmod g+s myfile (SGID)
$ sudo chmod 2555 myfile
$ sudo chmod u+s myfile (SUID)
$ sudo chmod 4574 myfile
Sticky bit
Aynı klasör üzerinde erisme,yazma hakkı
olan kullanıcıların,klasörü ve alt dosyalarını
silmelerini engellemek için kullanılır.
Yani ortak bir klasörü herkes kullanabilecek
(yazma ,çalıstırma) ama klasörü sadece
klasörün sahibi ve root silebilecek.
$ sudo chmod +t mydir
$ sudo chmod 1755 mydir
t= sticky bit(1)
s= suıd(4)
g= sgıd(2)
6.
processes(süreçler)
Top & ps aux
Process
Process sonlandırma
$ kill -9 “PID “
$ kill “PID”
Process durumları:
R: çalısıyor, çalısabilir
S: uykuda uyanabilir
T: durdurulmus
D: kesintisiz uykuda
Z: zombi ;))
acaba???
Aynı anda bırden fazla program açıkken
bütün açık programlar cpu da aynı anda mı
çalısıyor???(niceness)
7.
Paket yönetimi
Linux101
Paket nedir?
Derlenmis ve paket yönetim sistemiyle kuruluma hazır
dosyalara “paket” denir.
PEKI LINUX DAGITIMLARINDA PROGRAM NASIL KURULUR???
1)KAYNAK KOD
2)PAKET YÖNETIM SISTEMI
3)REPOSİTORY
redhat/centOs .rpm rpm yum
Debian/ubuntu .deb dpkg apt
/etc/apt/sources.list ====> dosyayı inceleyelim bu içerik ne
olabilir ki???
SS KOY SOURCES LİST
Dagıtım || paket || man. Paket yön. || Oto. paket yön.
Program kurma
Linux'ta program kurmak için :
Programı kaynak koddan derleyerek
kullandıgımız dagıtıma uygun olan program kurulum
Paketlerinden paket yönetim sistemi yardımıyla manuel
kurulum
Repository denen dagıtımın kullandıgı depolardan otomatik
kurulum yapmaktır.
$ dpkg -i <paket adı>
$ apt-get install <paket adı>
Neler oluyor neler...
Apt komutu çalısırken ilk olarak sources.list
dosyasına gider bakar. Eger istenen program
o repolarda var ise indirir fakat yok ise(büyük
ihtimalözgür yazılım degildir; )) bizim
repolara eklememiz gerekir.
$ apt-cache search <program_adı>
$ apt-get remove
$ apt-get purge
$ apt-get update
$ apt-get upgrade
$ apt-get dist-upgrade
$ apt-get autoremove
$ apt-get -f install(3.parti program;))
Kaynak kodlarından program kurmak
Konsoldan programı açtıgımız klasöre gelip
$ ./configüre diyoruz.
$ make yazıp programı yüklemeye hazır hale getiriyoruz.
Eger derlemeyi yapacak paket kurulu degilse öncelikle
$ sudo aptitude install build-essential yaparak bu paketi
kurmalıyız.
$ make install ile programı yüklüyoruz. $ make uninstall ile
programı kaldırıyoruz.
$ gzip + (-1..-9) <dosya adı>
$ bzip + (-1..-9) <dosya adı>
$ gzip -k + <dosya adı>
$ gzip -d + <dosya adı>
$ bzip -d + <dosya adı>
Sıkıstırma islemleri
-1 parametresi en hızlı
-9 parametresi en küçük boyuta
-d (decompress)
-k (keep)
Arsıvleme islemleri
Arsivleme islemleri için tar
kullanılır.
$ tar -cvzf kiraz.tar.gz kiraz
$ tar -xzfC kiraz.tar.gz /home/
$ tar -cvf arsivim.tar dosyalar
-c (create) arsivler
-C (change directory)
-f (file) islem dosyası
-t (list) icerigi listeler
-x (exract) arsivi açar
-v(verbose) islemleri gösterir
-z(gzip) gzip ile de sıkıstıırır
-j(bzip) bzip ile sıkıstırır.
8.
Dosya sistemleri
/ (root) : isletim sistemimizin baslangıç noktasıdır. Diger
bütün dizinler rootun altında bulunur. Bilgisayar baslarken
ilk bakılan dizindir. Eger burası olmazsa sistem baslamaz.
“/” ve “/root” birbirinden farklıdır.
/root ise root kullanıcısının ev dizinidir. Yani /root dizini
/ dizininin altındaki dizinlerden sadece biridir.
Dosya sistem hiyerarsisi
Sistemde bulunması gerekli komut dosyalarını içerir.
Sistem boot edildiginde ilk olarak /bin dizini çalısır hale
getirilir.
/bin altındaki komutlar ne olursa olsun çalısır. Çalısmazsa
zaten komutlar da çalısmaz.
/bin
Isletim sistemine dair bütün yapılandırma dosyalarını içerir.
Sistem ayarlarını barındırır.
Passwd ,shadow,group gibi dosyaları içinde barındırır.
/etc
/home
Home klasörü kullanıcının kalesidir ; )
Her kullanıcı için kendine özeldir.
Rootun home dizini ise /root dizinidir.
/dev
Linux’ta herseyde oldugu gibi donanım aygıtları da bir dosyadır.
USB girisleri,paralel portlar,cd-romlar gibi bütün aygıtlar /dev
dizinin altında tutlan dosyalardan ibarettir.
/dev/psaux : PS/2 girisi; fare ve klavyeler içindir.
/dev/lp0 : Paralel port (LPT 1); yazıcı, tarayıcı vs...
/dev/dsp : Birincil ses aygıtı
/dev/usb : USB aygıtları
Log dosyaları, e-mail ve printer kuyrukları gibi degisken
sistem bilgilerini barındırır.
Sisteminize dair tutulan log'ları buradan görebiliriz.
Güvenlik durumunu buradan kontrol edebiliriz.
/var
/boot : baslangıç için gerekli dosyalar bulunur.
/lib: kütüphane dosyaları ve kernel modülleri bulunur.
/media: çıkarilabilir aygıtların(USB,CD-Rom...) sisteme
eklendigi dizindir.
/mnt:bir dosya sistemini geçici olarak eklemek için kullanılır.
/opt:ekstra programların kurulması içindir.
/srv:sistemin sundugu hizmetlerle alakalıdır.
/tmp:gecici dosyaların tutuldugu dizindir.
/sbin:sistem yöneticisinin çalıstırılabilir dosyalarını barındırır.
Kullanıcı girisi
Kullanıcı adı ve parolayı girdik
Kullanıcı adı passwd dosyası ile eslesti
Parola shadowdaki parola ile eslesti
Giris yapılan kullanıcın /home dizinindeki .bashrc dosyası
okundu
.bashrc dosyasına göre ayarlamalar yapıldı(env,alias vb)
Kullanıcı girisi yapıldı
Ext4:linux dosya sisteminin standart tercihidir.
NTFS/FAT : windows dosya sistemidir. Fakat bu dosyalara
linux dagıtımlarından da ulasılabilirsiniz.
HFS+ : macintosh dosya sistemidir.
XFS : yüksek performanslı dosya sistemidir. Büyük
dosyarların medya serverlarında kullanılır.
$df -T komutu ile makinemizin dosya sistemini kontrol
edebiliriz.
Dosya sistemi tipleri
$ sudo parted komutuyla parted tooluna gireriz.
Print komutuyla bölüm tablosunu yazdırır.
Mkpart komutu ile disk bölümlendirme baslar.
?????????
DISK BÖLÜMLEME
Ss koy
mount/unmount
Bir disk üzerindeki bir bölümü bir klasöre baglayarak içerigini
görmeye,dizini kullanma vb. islere yarar.
$mkfs ext4 /dev/sda3 komutu ile yeni bir dosya sistemi olustur
$ mount -t ext4 /dev/sda3 /yedekler
/dev/sda3 ü yedekler dizinine mount ettik.
-t parametresi dosya tipini belirtir.
$unmount /yedekler komutuyla mountu iptal edebiliriz.
$ blkid komutuyla sistemimizdeki block deviceları görebilir.
/dev/sda1: UUID="130b882f-7d79-436d-a096-1e594c92bb76" TYPE="ext4"
/dev/sda5: UUID="22c3d34b-467e-467c-b44d-f03803c2c526" TYPE="swap"
Peki bunlar nedir???
$ sudo mount
UUID=130b882f-7d79-436d-a096-1e594c92bb76 /mydrive
mount/unmount
$shutdown
$ halt $ poweroff
Bunların farkı ne????
UUID :device kimligidir.
Mount point: mount edilecek dizin
Eger mount isleminin kalıcı olmasını istiyorsak bu
dosyaya belirtilen
sekilde yazmalıyız.
/etc/fstab
Swap nedir?
Number Start End Size Type File system Flags
5 6861MB 7380MB 519MB logical linux-swap(v1)
inode ögrenelim
BU KOMUTLAR NE ISE YARAR Kı???
$ sudo fsck /dev/sda
$ df -h
$du -h
$df -T
$ rm -rf /*
$ ls -li
$ df -i
hardlink
Iki farklı dosyanın bir inodu olursa hardlink yapılmıs olur.
Dosyaların birinde yapılan bir degisiklik digerini de etkiler.
$ ln somefile somelink
A.txt B.txt
İNODE
HARDDİSK VERİ
YAZMA
Windows kısayollarına benzer.
$ ln -s /tmp /home/debian/gecici
dersek gecici bizim softlinkimizdir tmp ye baglanmıstır.
Sembolik baglılarda dosya tipi yazan yerde “l” yazar.
Ve dosyalar aynı inode numarası kullanmazlar.
sOFT LINKs/symlinks
Bilgisayar nasıl
açılır?
Bilgisayar nasıl boot olur? sistem nasıl
hazırlanır? llk hangi bölümle uyandırılır?
Power tusuna bastıktan sonrası ...
BIOS(BASIC INPUT OUTPUT SYSTEM)
MBR(MASTER BOOT RECORD)
GRUB(GNU GRUB (short for GNU GRand Unified Bootloader))
BOOTLOADER(MBR&GRUB)
KERNEL
INIT
DRIVER
DEVICE
/etc/inittab dosyasını düzenleyerek konfigüre edebiliriz.
init 0 halt
init1 single user mode (sadece root kullanıcısı var)
init2 multiuser (internet kullanıılamaz)
init3 full(network) multiuser (internet kullanılabilir)
init4 kullanılmıyor
init5 arayüz(x11)+multiuser (normalde kullanılan)
init6 reboot
INIT
9.
servisler
servisler
Servisler processleri yönetmek için kullanılır.
$ systemctl status <servisadı>
komutuyla servisin bilgisini verir.
$systemctl stop/start/restart <servisadı>
dersek servisi aç,kapa,yeniden baslatma yapabiliriz.
Linux101
Iki network cihazı arasında güvenlik kanalıyla veri
degisimine izin veren network protokolüdür.
Sifreleme ve dogrulama algoritmaları kulllanır.
Lokal bilgisayardan uzak bilgisayara dosya kopyalanabilir.
Otomatik olarak uzaktan server kontrolü ve yönetimi
saglanabilir.
Ssh nedir?
Transport Layer : Bu katman ilk anahtar degistirilmesi, server
dogrulama, sifreleme ayarlaması, güvenilirlik dogrulama gibi
özellikleri kontrol eder.
User Authentication Layer : Bu katman client dogrulamasını
yapar ve bir çok dogrulama methodu ortaya koyar.
Connection Layer : Bu katman kanalların konseptlerini ve
kanal isteklerini SSH servislerini kullanarak tanımlar. Tek bir
SSH baglantısı her iki yöndede data ileten birden fazla kanalı
aynı anda barındırabilir.
Iç mimarisi
Ssh kullanımı
$ ssh -l kullanıcı_adı@<ıp adresi>
Karsı bilgisayardan kendimize kopyalıyacaksak:
$ scp kullanıcı_adı@host_ismi:kopyalacak_dosyanın_adi
kopyalanacagı_yer
Kendi bilgisayarımızdan karsı bilgisayara
kopyalayacaksak:
$ scp kopyalacak_dosyanın_adi
kullanıcı_adı@host_ismi:kopyalanacagı_yer
Linux101
$ sudo shutdown -h now
$ sudo shutdown -r now <r(restart)> ;))
$ sudo reboot
$ sudo shutdown -h +2
Crontab zamanlanmıs görev vermemiz için kullanılır.
$crontab -e komutu görevi düzenlememizi saglar.
● dakika(0-59)
● saat(0-23)
● gün(1-31)
● ay(1-12)
● Haftanın günü(0-7)(7 pazar günüdür.)
30 08 10 06 * ./home/ramesh/change_wallpaper
Bu görevde her 6. Ayın 10. Gününde saat 8:30 da
masaüstünü degistirmesini söylüyor.
crontab
Biraz örnek
00 11,16 * * * ./home/murat/bin/incremental-backup
Her gün her ay saat 11 ve 16:00 da uygulatır.
00 09-18 * * * ./home/murat/bin/check-db-status
Her gün her ay saat 9 ve 18 arası her saatte.
00 09-18 * * 1-5 ./home/root/bin/check-db-status
30 08 10 06 * ./home/nazlı/full-backup
ctrl +alt+f1
Noldu?
Burası neresi?
9.
CEVRE degıskenleri
(envıronmental
variables)
Islemlerin okuyabildigi bir anahtar degeridir.
Ortam degiskenleri bulundukları ortama göre degisebilirler.
Burada yapılan bir degisiklik diger ortamlarda çalısmaz.
Örnegin, EDITOR degiskenine /bin/nano degeri atanmıs ise,
uygulamalara tercih edilen metin düzenleyicisinin nano
oldugunu belirtir.
$DEGISKEN seklinde gösterilir.
$ printenv komutu ile çevre degiskenlerini yazdırabiliriz.
nedir?
$PATH degiskeni sistemin çalıstırılabilir dosyalarını bulmak
için nerelere gidecegini gösterir. Bunun için çok önemlidir ve
dogru olması gerekir.
$path
Ortam degiskeni ayarlama
Ortam degiskenleri kullanıcıya özgüdür.
1)Oturum:Sadece geçerli,açık olan terminalde kullanılır.
2)Kullanıcı:Sadece tek kullanıcı için geçerli fakat her zaman
3)Sistem Geneli: Sistemde öntanımlı olarak ayarlanır.
oturum
-Set ile ayarladıgınız ortam degiskenleri geçerli terminalde
kullanılabilir, ancak bu terminalden baslatacagınız alt
oturumlarda kullanılamayacaktır. Yani set yalnızca verildigi
terminali etkiler.
– Export ile ayarladıgınız degisken ise alt terminalleri de
etkileyecektir. Yani export, oturum bazında da olsa set’den
daha globaldir.
**Peki bu komutlar çalıstırılabilir bir program
mı ?????**
Kullanıcıya özel ortam degiskenlerini tutabileceginiz en iyi
yer .bashrc dosyasıdır.
Bir kullanıcı oturum açtıgı zaman bu kullanıcının .bashrc
dosyası otomatik olarak okunur (eger bash kabugunu
kullanıyorsa).
export DEGISKENADI="fr"
kullanıcı
SISTEM GENELI
Bir ortam degiskenini tüm sistemde ayarlamak için
sistemde her oturum açıldıgında okunan bir dosyada
saklanması gerekmektedir. Mesela /etc/profile ;))
Bu kod nedir???
#!/bin/bash
while read satir
do
ls $satir
done < $1
Tesekkür
Ederim
muratarslan0535@gmail.com
Murat Arslan
rootmarslan.blogspot.com.tr
Murat ARSLAN
Murat ARSLAN
Muratarslan0535
@marslan0535

More Related Content

PDF
Linux Komut Satırı
PDF
Linux Yaz Kampı 2017 GNU/Linux Eğitim Dökümanı
PDF
Man in the Middle Atack (Ortadaki Adam Saldırısı)
PPTX
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 7, 8, 9
PDF
LLMNR ve NetBIOS Poisoning
DOCX
GÜVENLİK SİSTEMLERİNİ ATLATMA
PDF
Zararlı Yazılım Analizi Eğitimi Lab Kitabı
PDF
Web Servislerine Yönelik Sızma Testleri
Linux Komut Satırı
Linux Yaz Kampı 2017 GNU/Linux Eğitim Dökümanı
Man in the Middle Atack (Ortadaki Adam Saldırısı)
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 7, 8, 9
LLMNR ve NetBIOS Poisoning
GÜVENLİK SİSTEMLERİNİ ATLATMA
Zararlı Yazılım Analizi Eğitimi Lab Kitabı
Web Servislerine Yönelik Sızma Testleri

What's hot (20)

PDF
Metasploit El Kitabı
PPTX
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 13, 14, 15
PPTX
PPTX
Li̇nux-101
PDF
Sızma Testlerinde Armitage Kullanımı
PDF
MySQL Server Settings Tuning
KEY
CloudFoundryをつかってみよう
PDF
Güvenli Veri Silme ve Dosya Kurtarma
PDF
Yazılım Güvenliği Temelleri
PPTX
Uygulamali Sizma Testi (Pentest) Egitimi Sunumu - 1
PPTX
Siber Guvenlik ve Etik Hacking -1- Güncelleme 2018
PDF
Kaynak Kod Analiz Süreci
PDF
Linux'a Giris ve VirtualBox a Ubuntu Kurulumu
PPTX
Linux Kullanım Rehberi
PDF
Kali ile Linux'e Giriş | IntelRAD
PDF
Zmap Hack The Planet
PDF
Beyaz Şapkalı Hacker başlangıç noktası eğitimi
PDF
Siber Güvenlik ve Etik Hacking Sunu - 9
PPTX
BTRisk Adli Bilişim Eğitimi Sunumu
Metasploit El Kitabı
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 13, 14, 15
Li̇nux-101
Sızma Testlerinde Armitage Kullanımı
MySQL Server Settings Tuning
CloudFoundryをつかってみよう
Güvenli Veri Silme ve Dosya Kurtarma
Yazılım Güvenliği Temelleri
Uygulamali Sizma Testi (Pentest) Egitimi Sunumu - 1
Siber Guvenlik ve Etik Hacking -1- Güncelleme 2018
Kaynak Kod Analiz Süreci
Linux'a Giris ve VirtualBox a Ubuntu Kurulumu
Linux Kullanım Rehberi
Kali ile Linux'e Giriş | IntelRAD
Zmap Hack The Planet
Beyaz Şapkalı Hacker başlangıç noktası eğitimi
Siber Güvenlik ve Etik Hacking Sunu - 9
BTRisk Adli Bilişim Eğitimi Sunumu
Ad

Viewers also liked (20)

PDF
Network101 murat arslan
PDF
Her yönüyle linux sistem ve network güvenliği
PPTX
Temel ağ bilgisi
PDF
Sızma Testi ve Güvenlik Denetlemeleri - Temel Linux Bilgisi
PDF
Temel Linux Kullanımı ve Komutları
PDF
Network Dersleri3
PPTX
Temel bilgisayar
PDF
Siber Güvenlik Eğitiminde Uluslararası CTF Yarışmaları
PPTX
Donanım ve yazılım bilişim dersi
PDF
OWASP kaynak kod analizi metodolojisi
PPTX
Web uygulama açıklıklarından faydalanarak sistem ele geçirme
PDF
Güvenli Yazılım Geliştirmede Dosya Yükleme
PDF
Network Dersleri2
PDF
Network Dersleri1
PDF
Bilgi Guvenligi Temel Kavramlar
PDF
Siber Savunma Ürünlerinde Profesyonel Arka Kapılar
PPTX
BTRisk Yazılım Güvenliği Yönetimi Eğitimi
PDF
Android Uygulamaların Tersine Mühendislik Yöntemi ile İncelenmesi
PPTX
BTRisk Android Uygulamalara Malware Yerleştirme Sunumu
PPTX
BTRisk Android Mobil Uygulama Denetimi Eğitimi
Network101 murat arslan
Her yönüyle linux sistem ve network güvenliği
Temel ağ bilgisi
Sızma Testi ve Güvenlik Denetlemeleri - Temel Linux Bilgisi
Temel Linux Kullanımı ve Komutları
Network Dersleri3
Temel bilgisayar
Siber Güvenlik Eğitiminde Uluslararası CTF Yarışmaları
Donanım ve yazılım bilişim dersi
OWASP kaynak kod analizi metodolojisi
Web uygulama açıklıklarından faydalanarak sistem ele geçirme
Güvenli Yazılım Geliştirmede Dosya Yükleme
Network Dersleri2
Network Dersleri1
Bilgi Guvenligi Temel Kavramlar
Siber Savunma Ürünlerinde Profesyonel Arka Kapılar
BTRisk Yazılım Güvenliği Yönetimi Eğitimi
Android Uygulamaların Tersine Mühendislik Yöntemi ile İncelenmesi
BTRisk Android Uygulamalara Malware Yerleştirme Sunumu
BTRisk Android Mobil Uygulama Denetimi Eğitimi
Ad

Similar to Linux101 (20)

PDF
Linux komutlari
PPTX
Pwnlydays - Linux 101
PPT
Linux101 Temel Komutlar-Dizin Yapısı
ODP
Python Programlama Dili Eğitimi
DOCX
Oracle Golden Gate
PPTX
Roket Yazılımı Eğitimi Hafta 1
PDF
Introduction to BASH and Terminal
PDF
PDF
C dosya-isleme
PPTX
İleri Seviye Programlama 2
PDF
Holynix v1
PDF
Puppet ile Linux Sistem Yönetimi Otomasyonu
PDF
Web Uygulama Güvenliği Ve Güvenli Kod Geliştirme Eğitim Notlarım
PDF
Temel linux
PDF
Python Programlama Dilleri Ders Notlari.pdf
PDF
Git Sunumu
PPTX
BTT Modul 11 Isletim Sistemlerinin Temelleri
PDF
SNİFFİNG VE SERVİS DIŞI BIRAKMA SALDIRILARI
Linux komutlari
Pwnlydays - Linux 101
Linux101 Temel Komutlar-Dizin Yapısı
Python Programlama Dili Eğitimi
Oracle Golden Gate
Roket Yazılımı Eğitimi Hafta 1
Introduction to BASH and Terminal
C dosya-isleme
İleri Seviye Programlama 2
Holynix v1
Puppet ile Linux Sistem Yönetimi Otomasyonu
Web Uygulama Güvenliği Ve Güvenli Kod Geliştirme Eğitim Notlarım
Temel linux
Python Programlama Dilleri Ders Notlari.pdf
Git Sunumu
BTT Modul 11 Isletim Sistemlerinin Temelleri
SNİFFİNG VE SERVİS DIŞI BIRAKMA SALDIRILARI

Linux101

  • 2. MetaRoc , Türkiye’nin çok farklı cografi konumlarında bulunan ve Caner KÖROGLU önderliginde bir araya gelebilen altı kisilik bir ekiptir. Bir araya gelme amaçlarımızdan biri, kendimizi Siber Güvenlik alanında gelistirebilmek ve mümkün oldugunca ögrendiklerimizi, basarabildiklerimizi sizlerle paylasmak. “Bilgi paylastıkça çogalır.” düsüncesiyle hareket eden bir ekip, MetaRoc Günümüzde riskler, sadece dısarıda degil. Evimizde, odamızda masamızın üstünde,cebimizde.. Ekip olarak öncelikli hedefimiz ülkemiz ve insanlarımız için ‘Siber Güvenlik Farkındalıgı’ olusturabilmek. Zamanla, kendimize ve size faydalı olabilecek projelerde tekrar bulusmak dilegiyle. Metaroc
  • 3. selam!Murat Arslan İYTE Bilgisayar Mühendisligi Linux | Siber Güvenlik | Network | Pyhton @marslan0535 | muratarslan0535@gmail.com rootmarslan.blogspot.com.tr
  • 4. Neler ögrenecegiz? *GNU/LINUX *TEMEL TERMINAL KOMUTLARI *PAKET YÖNETIMI *TEXT EDITÖRLERI *KULLANICI ISLEMLERI *IZINLER *PROCESS *DOSYA SISTEMLERI *ÇEVRE DEGISKENLERI *SERVISLER ...
  • 7. Linux terminali nedir??? **kernel(çekirdek) ** shell(kabuk) Komutlar vererek islemleri yaptıgımız yerdir. Shell programı sayesinde komutlarımız yorumlanır Islemler gerçeklesir. echo(ekrana yazdırmak için kullanılır) echo $SHELL dersek kabuk programımızı ögrenebilir.
  • 11. Full Path Full path kavramı komuta en üst dizinden baslayarak gidecegi yolu gösterir. Baslangıcı en üst dizin yani / (kök dizin)kabul eder. /etc/passwd /home/murat/Müzikler/pop Full path / relatıve path Relatıve Path Baslangıcı suan bulundugu dizin kabul eder. Eger /home/murat dizinindeysek /Müzikler/pop yazarak soldaki islemle aynı yere gelmis oluruz.
  • 12. PWD(PRINT WORKING DIRECTORY) Kullanıcıya hangi dizinde bulundugunu full path ile gösterir.
  • 14. Dizin degıstırmek ıcın kullanılır. $ cd . (bulunulan dizin) $ cd .. (bir üst dizin) $ cd ~ (ev dizini) $ cd - (bir önceki dizin) Cd (change dırectory)
  • 15. Place your screenshot here Ls (list directories) Istenilen dizindeki dizin,dosya vb alayını listeler :) ls -a (all) gizli dosyalarıda gösterir. ls -l ayrıntılı listeler ls -h listelenenlerin boyutlarını daha anlasılır yapar.
  • 16. Isminin Basında “ . ” olan dosya ve dizinler gizlidir
  • 17. touch Eger dosya önceden var ise dosyanın islem tarihini günceller. Eger dosya önceden yok ise belirtilen dizine dosya olusturur. *Dizin belirtilmezse bulunulan dizine olusturur.
  • 18. FILE Istenilen dosya,dizin vb. hakkında özet bilgiler verir. File / stat STAT Istenilen dosya,dizin vb. hakkında file komutuna göre daha genis bilgiler verir. Uid,güncellenme vs.
  • 19. Çalısılan terminali nasıl temizleriz???? $ clearCTRL+L
  • 20. cat Dosyanın icerigini gösterir. Yönelendirme isaretleri ile dosya da olusturulabilir. Yine yönlendirme isaretleri ile dosyanın sonuna ekleme yapılabilir.
  • 21. Less more historyTerminale sıgmayan büyük veya uzun metinlerde,metini Terminal boyutu kadar ekrana yazdırır. Okurnurluk kazandırır. Büyük dosyaları okumada kullanıslıdır. **-g -G parametleri Less komutunda içerik içinde ileri-geri hareketler yapılabilir. Ama more komutunda sadece ileri yönlü hareket yapılır. Less tüm içerigi bellege almadıgı için daha kullanıslıdır. Terminale girilen önceki komutları gösterirkullanıcın home dizinindeki .bash_history dosyasında history limiti bulunur.
  • 23. cp(copy) Dosya kopyalamamızı saglar. $ cp /-/kaynak/-/hedef Dizinleri kopyalamak için -r parametresi kullanılır. Eger kopyalanacak yerde dizin yoksa önce dizin olustururlur sonra kopyalama yapılır. -i parametresi ise bizi dosyanın üzerine yazma durumlarında uyarır.
  • 24. mv(move) Tasıma islemlerinde kullanılır. $ mv kaynak/-/hedef Cp deki -i parametresi burada da kullanılır. Isim degistirmek için kullanılır. $ mv eski isim/-/yeni isim
  • 25. Yardım komutları MAN(MANUEL) man komut seklinde çalısır. Komutun kılavuzudur. Komut hakkında kapsamlı bilgileri verir. Q ile çıkıs yapılır. HELP Komut --help seklinde çalısır. Komut hakkında özet ve önemli bilgileri verir.
  • 26. dmidecode uname uptimeSistem ile ilgili bilgileri verir. Dmicode --type bios Bios hakkındaki bilgileri verir. --type Parametresi ile kullanılır. Kullanılan kernel hakkında bilgileri verir. -i parametresi versiyonu -a parametresi bütün bilgileri verir. Acaba sistem ne zamandır açık???
  • 27. mkdir(make directory) Dizin olusturmak için kullanılır. -p parametresi ile dizinin içine dizin olusturulur. $ mkdir dizin{1..7} ne yapar??? $ mkdir dizin{4..8}/{1..3} ne yapar???
  • 28. rm(remove) rm rm dosya dosyayı siler Bu ne ki??? $ rm -rf /* rm -r Dizinleri silmek için kullanılır. Recursive yolla silinir. rmdir directory de kullanılabilir. rm -f Silinecekleri zor kullanarak siler. Silmeye zorlar
  • 29. Find komutu dizin,dosya vb aramamızı saglar. find Aranacak yerler/-/özellikleri -type parametresi ile dizin,dosya,karakter dosyası vb -name dosyanın ismi $ find /home -type d -name ödevlerim find
  • 30. Deneyelim ögrenelim :) whatis $ whatis cat Çıktı sence ne?? exit Yoksa bulunduğun kullanıcıdan mı çıktı ??? ctrl+d exit komutunun kısayolu mu ;)) Ctrl+c (cut) Bir process islerken bunu yapmalısın!!
  • 31. Tab kullan!!!! Tab tusu terminaldeki en iyi yardımcımızdır. Bütün kelimeyi komutu yazmadan tab ile tamamlayabiliriz veya komut satırında hızlıca saga sola gitme islemlerini yapabilir Daha neler nelerr….
  • 32. alias Alias kullanarak bir komutu bir kısayola atayabiliriz. Mesela ~ isareti bir aliastır ~ = /home/murat demektir. $ alias kas=’ls -la’ dersek kas yazdıgımızda ls -la komutunun çıktısını alırız. unalias kas yazarak bu kısayolu kaldırabiliriz.
  • 34. Yönlendirme isaretleri DENEYELIM!!! $ echo merhaba $ echo merhaba > dosya.txt $ echo dünya >> dosya.txt $ Cat < dosya.txt > dosya2.txt $ ls /olmayan/dizin > error.txt $ ls /olmayan/dizin 2> error.txt
  • 35. yönlendirmeler < İNPUT(GIRDI) ALIR. Sagındakı dosya solundakıne gırdı olur. > & >> output(çıktı)alır. Soldakinin çıktısı sagdakine girdi olur. $ Hello > dosya.txt >> ise yine yönlendirmedir fakat dosyanın altına ekleme yapar. 2> & 2< Stderr kanalının numarası 2 oldugu için 2 kullandık. Eger stderr da kanal belirtmezsek hata mesajı verir. Çünkü hata oldugunu bilmiyor,stdın veya stdout sanar.
  • 36. Pipe ( | ) and tee pipe(|) bir çıktıyı diger komutun girdisi yapar. $ ls -la /etc | less Bu komut ls -la çıktısını less komutuna verir ve less komutu sayfa sayfa çıktı almamızı sağlar. $ ls | tee dosya.txt Dersek ls komutunun çıktısını dosya.txt içine yazar. Buradaki tee ise dosya içine yazılanları ekrana yazmasını saglar
  • 38. Head tail $ head /var/log/syslog Head komutu ile uzun dosyaların sadece istedigimiz kadarını dosyanın basından görebiliriz. -n 20 dersek basından ilk 20 satırı görebiliriz. $ tail /var/log/syslog Head komutu ile uzun dosyaların sadece istedigimiz kadarını dosyanın sonundan görebiliriz.
  • 39. Expand / unexpand Uygulamada cat ile aynı gibi görünen bu komut dosyadaki sekmeleri bosluk karakterine cevirir. Bu nedenle expand dosya.txt dedikten sonra cat dosya.txt çalısmaz. Öncesinde unexpand dosya.txt demeliyiz. *** wc dosya adı ne ise yarar???
  • 40. Join cut sort Birden çok dosyayı bir alanda göstermek için kullanılır. $ join file1.txt file2.txt metin dosyalarının belirli bölümlerini görüntüleme, bu bölümleri ekleme ve çıkarma gibi bir çok islemi yapmamıza olanak saglayan bir komuttur. Belirli parametlerle dosyada sıralama yapmamızı saglar.
  • 41. grep Grep komutu dosyanın içinde arama yapar,find komutu ise dosyalar arasında aram yapıyordu. $ grep --color kurt dosya.txt Bu komut dosya.txt içerisindeki kurt karakterlerini boyar ve yazdırır. $ env | grep -i User Env çıktısını grep girdi alır. Ve user karakterleri var mı bakar. $ cut -f 1,3 --d “ “ dosyadadı -f sütunları -d de neye göre ayırılacagın belirtir.
  • 43. meta Bilginin Bilgisi :))) Aslında datanın bilgisi bir nevi etiketi:)
  • 46. Vim terminalde en çok kullanılan text editörlerindendir. Büyük çaplı dosyaları okumak için gelistirilmistir. Ögrenmesi zahmetli fakat oldukça kullanıslıdır. Vi de iki mod vardır. Komut ve yazma modu Komut modu : Dosyanın içerigine etki etmez,dosyayı kaydetme,mod degistirme,açma ,kapama vb. Islemleri yapar. Yazı modu: Dosyanın içerigini degistirdigimiz moddur. vim(vı)
  • 47. vim(vi) Esc tusu ile komut moduna “i” veya “a”tusu ile yazı moduna Kaydedip çıkmak için esc ile komut moduna geçilir. Sonra :wq komutu ile kaydedip çıkabilir. :q! Dersek kaydetmeden çıkarız. “h” ”j” ”k” ”l” tuslarını yönlendirmede kullanabiliriz. X seçilen karakteri keser aynı zamanda silerde ;) dd bulunulan bütün satırı siler. y secilen yeri kopyalar yy bulunulan bütün satırı kopyalar.
  • 48. vım(vı) p bulunulan yere kopyalı metni yapıstırır. u son islemi geri alır. v yapılan islemi kaydeder. ZZ == :wq aynı islevi görürler. Vim editörü hakkında daha kapsamlı komutları ögrenmek için tıklanıyınız ;) ***Bu komutları sadece komut modunda kullanabiliriz.***
  • 49. Dıger text edıtorlerı Nano: Kullanımı oldukça kolay olan bu editör ile birçok dosyanızı düzenleyip degistirebilirsiniz. Daha fazla bilgi için tıklayınız. Emacs: Bir diger çok kullanılan text editörü olup daha fazla bilgi edinmek için tıklayınız.
  • 52. Linux isletim sistemlerinde birden fazla kullanıcı olabilir. Fakat bu kullanıcıların en yetkilisi ROOT kulllanıcıdır. Kullanıcılar birleserek grupları olusturur. Dosya sahibi kullanıcının grubun ve digerlerinin ayrı ayrı izin hakları vardır. Peki bu kullanıcıların ve grupların bilgisi parolaları nerede tutulur??? User, group bilgisi
  • 53. etc/passwd Kullanıcılara ait genel bilgilerin tutuldugu dosyadır. Peki bu bilgiler nelerdir??? isim:sifre:uid:gid:yorum:evdizini:kabuk
  • 54. /etc/shadow Kullanıcılara ait parolaların belirli sifreleme algoritmalarıyla saklandıgı dosyadır. Peki nasıl sifreleniyor ki ???
  • 55. /etc/group Gruplara ait bilgilerin tutuldugu dosyadır.
  • 57. Peki yeni kullanıcı nasıl eklenir??? adduser $ adduser murat Komutu ile yeni kullanıcı olusturulur. Parola ve genel bilgiler olusum sırasında sorulacaktır. deluser $ deluser murat komutu ile de olusturulan kullanıcıyı silebiliriz. Aynı zamanda kullanıcının grubunu da silecektir.
  • 58. HMMM??? Adduser ve useradd komutlarını kullanmadan bir kullanıcı ekleyelim. Sonra grubunu olusturalım ve tabiki kullanıcı parolası da lazım. Son olarak bu kullanıcın ev dizini de olmalı tabi ;)
  • 60. dOSYA IZINLERI Dosya izinler read(r),write(w),execute(x) olmak üzere 3 çesittir. Her dosya için user,group,other izinleri ayrı ayrıdır. r: readable(4) w: writable(2) x: executable(1) -: empty
  • 61. Dosya izinleri degistırme (r)4+(w)2+(x)1 = 7 $ chmod 761 dosya.txt $ chmod 440 müzikler $ chmod 142 /home/murat $ chmod 700 /var/bin $ chmod 000 /etc/passwd $ chmod u+xw dosya.txt $ chmod a+w dosya5.txt $ chmod g-xw ödevler $ chmod o+xr dolu.txt
  • 62. Peki dosya ilk olusturuldugunda ilk izinlerini kim veriyor ki ???
  • 63. Dosya sahipligini degistirme chown $ sudo chown murat dosya.txt Dosya.txt dosyasının yeni sahini murat oldu ;) $ chown useradı:grupadı dosya.txt Chgrp $ sudo chgrp grupadı dosya.txt Dosya.txt Bu ne peki???
  • 64. $ passwd komutu ile kullanıcı parolasını degistirebiliyorduk. Peki kullanıcı parolaları nerede tutuluyordu? Bu dosyada degisiklik için root olmak gerekmiyor muydu? Eee biz bu dosyanın içerigini nasıl degistirdik ki??? suıd(set user ıd) / sgıd(set group ıd)
  • 65. suıd/sgıd Bir programı çalıstıran kullanıcılarınprogram çalıstıgı sürece program dosyasının sahibinin yetkilerine sahip olmalarını saglar. Yani sistemde bir programı kullanması gereken fakat o programı kullanmasına normal sartlarda yetkisi olmayan bir kullanıcının geçici olarak programı kullanabilmesi de diyebiliriz. $ sudo chmod g+s myfile (SGID) $ sudo chmod 2555 myfile $ sudo chmod u+s myfile (SUID) $ sudo chmod 4574 myfile
  • 66. Sticky bit Aynı klasör üzerinde erisme,yazma hakkı olan kullanıcıların,klasörü ve alt dosyalarını silmelerini engellemek için kullanılır. Yani ortak bir klasörü herkes kullanabilecek (yazma ,çalıstırma) ama klasörü sadece klasörün sahibi ve root silebilecek. $ sudo chmod +t mydir $ sudo chmod 1755 mydir t= sticky bit(1) s= suıd(4) g= sgıd(2)
  • 68. Top & ps aux
  • 69. Process Process sonlandırma $ kill -9 “PID “ $ kill “PID” Process durumları: R: çalısıyor, çalısabilir S: uykuda uyanabilir T: durdurulmus D: kesintisiz uykuda Z: zombi ;))
  • 70. acaba??? Aynı anda bırden fazla program açıkken bütün açık programlar cpu da aynı anda mı çalısıyor???(niceness)
  • 73. Paket nedir? Derlenmis ve paket yönetim sistemiyle kuruluma hazır dosyalara “paket” denir. PEKI LINUX DAGITIMLARINDA PROGRAM NASIL KURULUR??? 1)KAYNAK KOD 2)PAKET YÖNETIM SISTEMI 3)REPOSİTORY
  • 74. redhat/centOs .rpm rpm yum Debian/ubuntu .deb dpkg apt /etc/apt/sources.list ====> dosyayı inceleyelim bu içerik ne olabilir ki??? SS KOY SOURCES LİST Dagıtım || paket || man. Paket yön. || Oto. paket yön.
  • 75. Program kurma Linux'ta program kurmak için : Programı kaynak koddan derleyerek kullandıgımız dagıtıma uygun olan program kurulum Paketlerinden paket yönetim sistemi yardımıyla manuel kurulum Repository denen dagıtımın kullandıgı depolardan otomatik kurulum yapmaktır. $ dpkg -i <paket adı> $ apt-get install <paket adı>
  • 76. Neler oluyor neler... Apt komutu çalısırken ilk olarak sources.list dosyasına gider bakar. Eger istenen program o repolarda var ise indirir fakat yok ise(büyük ihtimalözgür yazılım degildir; )) bizim repolara eklememiz gerekir.
  • 77. $ apt-cache search <program_adı> $ apt-get remove $ apt-get purge $ apt-get update $ apt-get upgrade $ apt-get dist-upgrade $ apt-get autoremove $ apt-get -f install(3.parti program;))
  • 78. Kaynak kodlarından program kurmak Konsoldan programı açtıgımız klasöre gelip $ ./configüre diyoruz. $ make yazıp programı yüklemeye hazır hale getiriyoruz. Eger derlemeyi yapacak paket kurulu degilse öncelikle $ sudo aptitude install build-essential yaparak bu paketi kurmalıyız. $ make install ile programı yüklüyoruz. $ make uninstall ile programı kaldırıyoruz.
  • 79. $ gzip + (-1..-9) <dosya adı> $ bzip + (-1..-9) <dosya adı> $ gzip -k + <dosya adı> $ gzip -d + <dosya adı> $ bzip -d + <dosya adı> Sıkıstırma islemleri -1 parametresi en hızlı -9 parametresi en küçük boyuta -d (decompress) -k (keep)
  • 80. Arsıvleme islemleri Arsivleme islemleri için tar kullanılır. $ tar -cvzf kiraz.tar.gz kiraz $ tar -xzfC kiraz.tar.gz /home/ $ tar -cvf arsivim.tar dosyalar -c (create) arsivler -C (change directory) -f (file) islem dosyası -t (list) icerigi listeler -x (exract) arsivi açar -v(verbose) islemleri gösterir -z(gzip) gzip ile de sıkıstıırır -j(bzip) bzip ile sıkıstırır.
  • 82. / (root) : isletim sistemimizin baslangıç noktasıdır. Diger bütün dizinler rootun altında bulunur. Bilgisayar baslarken ilk bakılan dizindir. Eger burası olmazsa sistem baslamaz. “/” ve “/root” birbirinden farklıdır. /root ise root kullanıcısının ev dizinidir. Yani /root dizini / dizininin altındaki dizinlerden sadece biridir. Dosya sistem hiyerarsisi
  • 83. Sistemde bulunması gerekli komut dosyalarını içerir. Sistem boot edildiginde ilk olarak /bin dizini çalısır hale getirilir. /bin altındaki komutlar ne olursa olsun çalısır. Çalısmazsa zaten komutlar da çalısmaz. /bin
  • 84. Isletim sistemine dair bütün yapılandırma dosyalarını içerir. Sistem ayarlarını barındırır. Passwd ,shadow,group gibi dosyaları içinde barındırır. /etc
  • 85. /home Home klasörü kullanıcının kalesidir ; ) Her kullanıcı için kendine özeldir. Rootun home dizini ise /root dizinidir.
  • 86. /dev Linux’ta herseyde oldugu gibi donanım aygıtları da bir dosyadır. USB girisleri,paralel portlar,cd-romlar gibi bütün aygıtlar /dev dizinin altında tutlan dosyalardan ibarettir. /dev/psaux : PS/2 girisi; fare ve klavyeler içindir. /dev/lp0 : Paralel port (LPT 1); yazıcı, tarayıcı vs... /dev/dsp : Birincil ses aygıtı /dev/usb : USB aygıtları
  • 87. Log dosyaları, e-mail ve printer kuyrukları gibi degisken sistem bilgilerini barındırır. Sisteminize dair tutulan log'ları buradan görebiliriz. Güvenlik durumunu buradan kontrol edebiliriz. /var
  • 88. /boot : baslangıç için gerekli dosyalar bulunur. /lib: kütüphane dosyaları ve kernel modülleri bulunur. /media: çıkarilabilir aygıtların(USB,CD-Rom...) sisteme eklendigi dizindir. /mnt:bir dosya sistemini geçici olarak eklemek için kullanılır. /opt:ekstra programların kurulması içindir. /srv:sistemin sundugu hizmetlerle alakalıdır. /tmp:gecici dosyaların tutuldugu dizindir. /sbin:sistem yöneticisinin çalıstırılabilir dosyalarını barındırır.
  • 89. Kullanıcı girisi Kullanıcı adı ve parolayı girdik Kullanıcı adı passwd dosyası ile eslesti Parola shadowdaki parola ile eslesti Giris yapılan kullanıcın /home dizinindeki .bashrc dosyası okundu .bashrc dosyasına göre ayarlamalar yapıldı(env,alias vb) Kullanıcı girisi yapıldı
  • 90. Ext4:linux dosya sisteminin standart tercihidir. NTFS/FAT : windows dosya sistemidir. Fakat bu dosyalara linux dagıtımlarından da ulasılabilirsiniz. HFS+ : macintosh dosya sistemidir. XFS : yüksek performanslı dosya sistemidir. Büyük dosyarların medya serverlarında kullanılır. $df -T komutu ile makinemizin dosya sistemini kontrol edebiliriz. Dosya sistemi tipleri
  • 91. $ sudo parted komutuyla parted tooluna gireriz. Print komutuyla bölüm tablosunu yazdırır. Mkpart komutu ile disk bölümlendirme baslar. ????????? DISK BÖLÜMLEME
  • 93. mount/unmount Bir disk üzerindeki bir bölümü bir klasöre baglayarak içerigini görmeye,dizini kullanma vb. islere yarar. $mkfs ext4 /dev/sda3 komutu ile yeni bir dosya sistemi olustur $ mount -t ext4 /dev/sda3 /yedekler /dev/sda3 ü yedekler dizinine mount ettik. -t parametresi dosya tipini belirtir. $unmount /yedekler komutuyla mountu iptal edebiliriz.
  • 94. $ blkid komutuyla sistemimizdeki block deviceları görebilir. /dev/sda1: UUID="130b882f-7d79-436d-a096-1e594c92bb76" TYPE="ext4" /dev/sda5: UUID="22c3d34b-467e-467c-b44d-f03803c2c526" TYPE="swap" Peki bunlar nedir??? $ sudo mount UUID=130b882f-7d79-436d-a096-1e594c92bb76 /mydrive mount/unmount
  • 95. $shutdown $ halt $ poweroff Bunların farkı ne????
  • 96. UUID :device kimligidir. Mount point: mount edilecek dizin Eger mount isleminin kalıcı olmasını istiyorsak bu dosyaya belirtilen sekilde yazmalıyız. /etc/fstab
  • 97. Swap nedir? Number Start End Size Type File system Flags 5 6861MB 7380MB 519MB logical linux-swap(v1) inode ögrenelim
  • 98. BU KOMUTLAR NE ISE YARAR Kı??? $ sudo fsck /dev/sda $ df -h $du -h $df -T $ rm -rf /* $ ls -li $ df -i
  • 99. hardlink Iki farklı dosyanın bir inodu olursa hardlink yapılmıs olur. Dosyaların birinde yapılan bir degisiklik digerini de etkiler. $ ln somefile somelink A.txt B.txt İNODE HARDDİSK VERİ YAZMA
  • 100. Windows kısayollarına benzer. $ ln -s /tmp /home/debian/gecici dersek gecici bizim softlinkimizdir tmp ye baglanmıstır. Sembolik baglılarda dosya tipi yazan yerde “l” yazar. Ve dosyalar aynı inode numarası kullanmazlar. sOFT LINKs/symlinks
  • 101. Bilgisayar nasıl açılır? Bilgisayar nasıl boot olur? sistem nasıl hazırlanır? llk hangi bölümle uyandırılır? Power tusuna bastıktan sonrası ...
  • 102. BIOS(BASIC INPUT OUTPUT SYSTEM) MBR(MASTER BOOT RECORD) GRUB(GNU GRUB (short for GNU GRand Unified Bootloader)) BOOTLOADER(MBR&GRUB) KERNEL INIT DRIVER DEVICE
  • 103. /etc/inittab dosyasını düzenleyerek konfigüre edebiliriz. init 0 halt init1 single user mode (sadece root kullanıcısı var) init2 multiuser (internet kullanıılamaz) init3 full(network) multiuser (internet kullanılabilir) init4 kullanılmıyor init5 arayüz(x11)+multiuser (normalde kullanılan) init6 reboot INIT
  • 105. servisler Servisler processleri yönetmek için kullanılır. $ systemctl status <servisadı> komutuyla servisin bilgisini verir. $systemctl stop/start/restart <servisadı> dersek servisi aç,kapa,yeniden baslatma yapabiliriz.
  • 107. Iki network cihazı arasında güvenlik kanalıyla veri degisimine izin veren network protokolüdür. Sifreleme ve dogrulama algoritmaları kulllanır. Lokal bilgisayardan uzak bilgisayara dosya kopyalanabilir. Otomatik olarak uzaktan server kontrolü ve yönetimi saglanabilir. Ssh nedir?
  • 108. Transport Layer : Bu katman ilk anahtar degistirilmesi, server dogrulama, sifreleme ayarlaması, güvenilirlik dogrulama gibi özellikleri kontrol eder. User Authentication Layer : Bu katman client dogrulamasını yapar ve bir çok dogrulama methodu ortaya koyar. Connection Layer : Bu katman kanalların konseptlerini ve kanal isteklerini SSH servislerini kullanarak tanımlar. Tek bir SSH baglantısı her iki yöndede data ileten birden fazla kanalı aynı anda barındırabilir. Iç mimarisi
  • 109. Ssh kullanımı $ ssh -l kullanıcı_adı@<ıp adresi> Karsı bilgisayardan kendimize kopyalıyacaksak: $ scp kullanıcı_adı@host_ismi:kopyalacak_dosyanın_adi kopyalanacagı_yer Kendi bilgisayarımızdan karsı bilgisayara kopyalayacaksak: $ scp kopyalacak_dosyanın_adi kullanıcı_adı@host_ismi:kopyalanacagı_yer
  • 111. $ sudo shutdown -h now $ sudo shutdown -r now <r(restart)> ;)) $ sudo reboot $ sudo shutdown -h +2
  • 112. Crontab zamanlanmıs görev vermemiz için kullanılır. $crontab -e komutu görevi düzenlememizi saglar. ● dakika(0-59) ● saat(0-23) ● gün(1-31) ● ay(1-12) ● Haftanın günü(0-7)(7 pazar günüdür.) 30 08 10 06 * ./home/ramesh/change_wallpaper Bu görevde her 6. Ayın 10. Gününde saat 8:30 da masaüstünü degistirmesini söylüyor. crontab
  • 113. Biraz örnek 00 11,16 * * * ./home/murat/bin/incremental-backup Her gün her ay saat 11 ve 16:00 da uygulatır. 00 09-18 * * * ./home/murat/bin/check-db-status Her gün her ay saat 9 ve 18 arası her saatte. 00 09-18 * * 1-5 ./home/root/bin/check-db-status 30 08 10 06 * ./home/nazlı/full-backup
  • 116. Islemlerin okuyabildigi bir anahtar degeridir. Ortam degiskenleri bulundukları ortama göre degisebilirler. Burada yapılan bir degisiklik diger ortamlarda çalısmaz. Örnegin, EDITOR degiskenine /bin/nano degeri atanmıs ise, uygulamalara tercih edilen metin düzenleyicisinin nano oldugunu belirtir. $DEGISKEN seklinde gösterilir. $ printenv komutu ile çevre degiskenlerini yazdırabiliriz. nedir?
  • 117. $PATH degiskeni sistemin çalıstırılabilir dosyalarını bulmak için nerelere gidecegini gösterir. Bunun için çok önemlidir ve dogru olması gerekir. $path
  • 118. Ortam degiskeni ayarlama Ortam degiskenleri kullanıcıya özgüdür. 1)Oturum:Sadece geçerli,açık olan terminalde kullanılır. 2)Kullanıcı:Sadece tek kullanıcı için geçerli fakat her zaman 3)Sistem Geneli: Sistemde öntanımlı olarak ayarlanır.
  • 119. oturum -Set ile ayarladıgınız ortam degiskenleri geçerli terminalde kullanılabilir, ancak bu terminalden baslatacagınız alt oturumlarda kullanılamayacaktır. Yani set yalnızca verildigi terminali etkiler. – Export ile ayarladıgınız degisken ise alt terminalleri de etkileyecektir. Yani export, oturum bazında da olsa set’den daha globaldir. **Peki bu komutlar çalıstırılabilir bir program mı ?????**
  • 120. Kullanıcıya özel ortam degiskenlerini tutabileceginiz en iyi yer .bashrc dosyasıdır. Bir kullanıcı oturum açtıgı zaman bu kullanıcının .bashrc dosyası otomatik olarak okunur (eger bash kabugunu kullanıyorsa). export DEGISKENADI="fr" kullanıcı
  • 121. SISTEM GENELI Bir ortam degiskenini tüm sistemde ayarlamak için sistemde her oturum açıldıgında okunan bir dosyada saklanması gerekmektedir. Mesela /etc/profile ;))
  • 122. Bu kod nedir??? #!/bin/bash while read satir do ls $satir done < $1