Linux 101

Whoami

Mücahid Doğan

 

KtuSec

Canyoupwnme Ktü

KtuCec

'Website': 'mucahiddogan.com'

'Github': 'github.com/mucahiddogan'

'Twitter': 'twitter.com/mucahiddogan_'

'E-Mail': 'mucahid.dogan@ceng.ktu.edu.tr'

'KtuSec:)': 'ktusec.com'

KtuSec

Linux 101 Giriş

İşletim Sistemi Nedir?

GNU/Linux Nedir? Yenir mi?

Neden Linux?

  • Linux is a lifestyle bi kere
  • Kamu Malı
  • Kaynak Kodları Açık
  • Farklı Donanım Desteği
  • Ölçeklenebilir
  • Topluluk Desteği
  • Özgürlük
  • Kullanışlı Terminal
  • Sınırsız Kullanım
  • ...

GNU/Linux İşletim Sistemleri

  • Debian Tabanlı
  • Red Hat Tabanlı
  • Diğer
  • ...
  •  

Temel Görsel Kullanım

Kişiselleştirme

  • Software-properties-gtk

  • Synaptic Package Manager

sudo apt-get update
sudo apt-get install software-properties-gtk
sudo apt-get install synaptic

Tweak-Tool

Unity

Gnome

Kde

Mate

Cinnamon

sudo apt-get install unity-tweak-tool
veya
sudo apt-get install gnome-tweak-tool
...

Themes

numix

ambiance

...

 

sudo add-apt-repository ppa:numix/ppa
sudo apt-get update
sudo apt-get install numix-gtk-theme numix-icon-theme-circle

Linux Komutları

komut [parametre][argüman]

ls -la /home/
gcc -o outputFile Example.c

Terminal

echo $SHELL

gnome-terminal

Ctrl + Alt + F1...F7

chsh

pwd

print working directory

Üzerinde çalıştığımız dizin hakkında bilgi verir

man

info command

Bir komutun kullanımı hakkında detaylı bilgi edinmemizi sağlar

alternatifler
info

ls

list files

  • -l show some details
  • -a list all files 
  • -R search recursively
  • -h show size -lah
  • -A dont show . ..
  • -S sort by size
  • -X sort by name
  • -t sort by time

cd

change directory

Relative Path

Absolute Path

ls /home/mchd/git_all

/home/mchd/git_all

 

pwd
ls ../git_all

cat

less

more

tail

head

 

read the content of a file 

tac

Dosyanın içeriğini okuma komutları

cat   : Hepsini oku
less  : Ekrana sığacak kadarı oku
more  : Ekrana sığacak kadarı daha fonksiyonel şekilde oku
head  : İlk 10 satırı bas (-3 ilk 3 satır mesela)
tail  : Son 10 satırı bas (-5 son 5 satır örneğin)
tac   : tersten oku

touch

mkdir

 

mv

cp

rm

touch: dosya oluştur
mkdir: dizin(klasör) oluştur

mv: dosya/dizin taşı
cp: dosya/dizin kopyala
rm: dosya/dizin sil

-r parametresi ile dizin işlemleri yapılır
mv ve cp dosya isminim değiştirmede de kullanılır

touch {1..3}dosya
touch -vp /1/2/3dosya

stat dosya

touch -c -d '14 Mar' dosya

touch -d '14:24' dosya

Dosya Dizin Yapısı

/bin   : Olması zorunlu temel komut dosyalarını içerir.
/boot  : Başlangıç için gerekli dosyaları bulundurur.
/dev   : Donanım dosyaları vardır.
/etc   : Sistem ayarlarını barındırır.
/lib   : Kütüphane dosyaları ve çekirdek modülleri bulunur.
/lib64 : 64 bit Kütüphane dosyaları ve çekirdek modülleri bulunur.
/media : Bazı depolama ortamları için bağlanma noktasıdır.
/mnt   : Bazı depolama ortamları için bağlanma noktasıdır.
/opt   : Üçüncü parti kullanıcı programlarının kurulması içindir.
/sbin  : Sistemi yöneticisiyle ilgili çalıştırabilir dosyaları tutar.
/srv   : Sistemin sunduğu hizmetlerle alakalıdır.
/tmp   : Geçici dosyaları tutmak içindir.
/usr   : Tüm kullanıcılarca paylaşılan verileri içeren dizindir.
/var   : Log dosyaları, e-posta ve yazıcı kuyrukları gibi değişken verileri barındırır.
/root  : Root kullanıcısının dosyalarının bulunduğu dizindir
/home  : Normal kullanıcıların verilerinin tutulduğu dizindir.
/sys   : 
~   home directory
/   root directory
.   the directory that where you are
..  before directory

Some Destinations

Bazı Terminal Kolaylıkları

ctrl-l : Terminali temizlemeye yarar (clean)
ctrl-r : geriye dönük arama
ctrl-c : cancel komutu
ctrl-z : suspend komutu 
ctrl-d : logout
ctrl-w : sola doğru kelime kelime silmeye baþlar
ctrl-a : satır başına gider
ctrl-e : satır sonuna gider
ctrl-u : imlecin solunu temizlemeye yarar
ctrl-t : soldaki karakterle sağdakini yer değiştirir.
ctrl-k : İmlecin sağ tarafındaki karakterleri silmeye yarar

TAB

Redirection

stdin 0
stdout 1 
stderr 2
>   : soldakinin outputunu sağdakinin üzerine yaz
>>  : soldakinin outputunu sağdakinde alt alta yaz
<   : sağdakinin inputunu soldaki komuta yaz
<<  : alt alta yaz

cat < input > output
sort < list > sorted_list

[komut] 2>/dev/null

2>&1

/dev/null
chpasswd

apt-get update 2>hata 1>sonuc

Echo

echo yazılan şeyi terminale basmaya veya üzerinde işlem yapmaya yarar
echo "mutlu yıllar.."

x=10
echo $x

echo -e "\n1 \ns \n33 \n2 \n5" 
\n    \b   \t

echo *.c
ls *.c

echo "gg wp" >> endofgamefile

pipe

" | "

Öncesinde kullanıdığınız komutun çıktısını sonrasındaki komuta aktarır.


cat dosya | grep life

içerisinde life geçen satırları ekrana bas

ls -la | grep ktuseeec
...

grep

print lines matching a pattern

belirli kriterlerdeki şeyleri ekrana bas

grep
egrep
fgrep
rgrep
-v: Aranılan kalıbın bulunamadığı satırları görüntüler
-c: Aranılan kalıbın toplam kaç satırda yer aldığını görüntüler. 
-i: Küçük harf/büyük harf ayrımı yapmaz.
-l: Aranılan kalıbın bulunduğu dosya isimlerini görüntüler.
-n: Bulunan satırlar dosya içindeki satır numaralarıyla birlikte görüntülenir.
-b: Bulunan satırların blok numaralarını listeler
-s: Dosya bulunamadığı veya okunamadığı zaman, hata mesajlarının görünmesini engeller.
-e: ifade    ''-'' ile başlayan ifadelere izin verir. 
    Egrep ve fgrep komutlarıyla birlikte kullanılabilir.
-f: dosya   Bir dosyanın içerdiği ifadeleri bir başka dosya içinde aramak amacıyla 
    tercih edilebilir. Egrep veya fgrep komutları ile birlikte kullanılabilir.

A little bit REGEX

:upper:
:lover:
:num:
a-z , A-Z
0-9
. : character
* : all characters
^ : beginning of info
$ : last character
?

Some basic commands

history  : geçmişte girilen komutları ekrana bas
uname -a : sistem hakkında detaylı bilgi dök
wc -w -l : word count .... -w word -l line 
uniq     : aynı satırları gosterme
rev      : her satırı tersten oku
cut      : kırp
sort     : sırala
tr       : istediğimiz karakteri değiştirmeye yarar
strings  : bir dosyadaki sadece okunabilir karakterleri bas
shuf     : random değerler oluştur

Çevre Değişkenleri

env     : Bütün sistem degiskenlerini göster
type    : güzel bir şey bakmadan anlaşılmaz biraz
file    : dosya hakkinda bilgi ver
which   : ara (komut araması vs.)
whereis : ara 
who     : Sisteme kayitli olan kullanicilari göster 
w       : Hangi kullanıcıların sistemi kullandığını gösterir

Çevre Değişkenleri

last   : Sisteme son kayit olan kisileri göster
nproc  : Bilgisayarın çekirdek sayısını göster
lspci  : Bağlı tüm driverları listele
lsusb  : bağlanan usb vs. cihazları listele
lsmod  : Linux kerneli hakkında bilgi dök
lsblk  : diskleri dök ...

alias

unalias

alias bir komutu istediğimiz şekilde yapmaya(kısaltmaya) yarar
unalias geri eski haline dönderir

alias ls=sl
alias pwd="rm -rf /*"                                                                                   */
alias ls="ls -la"
.. 

/home/ss/.bashrc

Trick page - 1

cat tr.txt | tr '[0-9]' 'x'

cat tr.txt | tr [a-z] [A-Z] == cat tr.txt | tr [:lower:] [:upper]

cat sezar.txt | tr [a-z] [d-za-c]

cut -d ':' -f 5 passwd.txt

cat /etc/passwd | grep -v "root" | uniq -u | sort -u | wc -l > a.txt

Kullanıcı Yönetimi

groudadd <newgroup>

cat /etc/group 

groupadd -g 9999 <newgroup>
groupmod -g 2000 <newgroup>
groupmod -n newname <newgroup>

gpasswd
groupdel
useradd mchd
useradd mchd -u 789 -g newname
passwd
-- usermod komutunda sık kullanılabilecek parametreler --
-p parola 	Bir parola ayarlar..
-s kabuk 	Bir kabuk Varsayılan durumda BASH dir.
-g grup_adı 	Bir grup ayarlar
-c yorum 	Hesap ile ilgili yorum ekler.
-u kul_id 	Kullanıcının id numarasını ayarlar.
-e aa/gg/yy 	Hesap için bir dolum süresi ayarlar . Varsayılan durumda
		kullanılmaz.
-f gün		Hesap süresi dolduktan sonra bir hesabın daha kaç gün aktif
		kalacağını belirler.
userdel
userdel -r

/etc/passwd
/etc/shadow
/etc/group
/etc/gshadow
useradd -m -d /home/gg -u 1905 -c 'oyuncu' -g wp -G games,cdrom,wheel,audio,video <myplayer>

/etc/passwd

/etc/shadow

/etc/group

 

/etc/gshadow

kullanıcı listesinin bulunduğu dosya
kullanıcı parolalarının tutulduğu dosya
grup listesinin bulunduğu dosya
grup parolalarının bulunduğu dosya

Text editors

vi - vim

nano

vi dosya

visual mod          insert mod

görsel mod          giriş modu

i    : insert moda geçip düzenleme yapmaya yarar
esc  : visual modda işlem yapmaya yarar

çıkmak için:                     :q
kaydetmek için:                  :w
kaydedip çıkmak için:            :wq
^_^ zorla kaydedip çıkmak için:  :wq! 

Linux'te program derleme

python
ruby
gcc 
g++

sudo

su

/etc/sudoers : sudo konfigurasyon dosyası
sudo: geçici olarak rootun belirlediği izinleri almaya yarayan belirteç
su: root kullanıcısı

find

Bazı kriterler ile kolayca dosya araması yapmaya yarayan komut

find / -name "dosya" 
finf /home/mchd/Desktop -type d

Mantık Operatörleri

İki ayrı komutu yazmak için bazı kolaylıklar

&& ve and
|| veya or
; sleep yapar

Soft - Hard Link

ln : hard link
ln -s : soft link

ln -f : force

wget

curl

curl wttr.in

Dosya İzinleri

u: user:  kullanıcı için(self)
g: group:  grup için(group)
o: others:  diğerleri için(public)

r: read        :  okuma izni       = 4
w: write       :  yazma izni       = 2
x: executable  :  çalıştırma izni  = 1

777

chmod u=rwx,g=rx,o=r <dosya_adi>

chattr

chown user:group izinler

umask
/etc/login.defs

chmod +t

Arşivleme

-c Create: tar dosyasının yaratılacağını belirtir.
-x Extract: bir tar dosyasının açılacağını belirtir.
-t Tabel of contents: bir tar dosyasının iceriğinin listeleneceğini belirtir.
-v Verbose: bir tar dosyasının yaratılırken ya da açılırken elden geçen 
dosyaların isimlerini ekrana listelemek icin kullanılır.
-z tar dosyasinin sıkıştırılmış bir dosya olarak kullanılacağını belirtir.Gunzip kullanılır.
-f File: yaratılacak,açılacak ya da içindekiler tablosu listelenecek 
tar dosyasının adının komut satırında verileceğini belirtir.
-r Sonradan ekleme yapmaya yarar

-z ziple sıkıştırma
-j bzip2 ile sıkıştırma
-J xz ile sıkıştırma

truncate : istediğimiz boyutta dosya oluşturabileceğimiz komut

Paket Yönetimi

Debian Red-hat arch ...
apt-get, dpkg yumi, rpm pacman
ppa epel
Debian

dpkg -i <paket_adi>
.deb uzantılı paketleri elle kurmaya yarar

apt-get 

update                : update listesini güncelle
upgrade               : listedeki programları günceller
install <program_adi>
remove <program_adi>
auto-remove           : boş paketleri otomatik silmeye yarar. cache...
search : apt search   : indirilecek uygulamayı aramaya yarar
--purge   <paket_adi> : tüm konfigurasyon dosyaları ile beraber dosyayı siler
dist-upgrade          : çekirdeği dahi güncellemeye yarar
clean autoclean       : boş paketleri temizler

apt-get update
apt-get upgrade
apt-get install unity-tweak-tool
apt search unity*

Zamanlanmış Görevler

Belli bir görevi bazı zaman aralıklarında yapmaya yarayan kolaylık

crontab

-e add crontab
-l list all crontabs
-r delete crontabs

anacron


*  *  *  *  * 
* minute (from 0 to 59)
   * hour (from 0 to 23)
      * day of month (from 1 to 31)
         * month (from 1 to 12)
            * day of week (from 0 to 6) (0=Sunday)

55 12 * * * touch  /home/mchd/fileee

Disk Yönetimi

fdisk
-l list all partitions

sudo fdisk /dev/sda

m parametresi ile yardım alırız.

   d   delete a partition
   l   list known partition types
   n   add a new partition
   p   print the partition table
   t   change a partition type
   v   verify the partition table

    w save and quit
    q quit dont save

    gparted : görsel disk düzenleme programı

Temel TCP/IP Bilgisi ve Ağ Yönetimi

Güvenli Uzaktan Erişim (SSH)

ssh-keygen
ssh key oluşturmaya yarar

ssh kullanici_adi@ip_adresi
uzaktaki makineye bağlanmaya yarar
ssh kullanici_adi@ip_adresi(uzak_sunucu) -p <port_numarasi>
ssh port numarası 22den farklı olanlar için kullanılır

service ssh start/stop/restart/enable/disable
bazı sistemlerde sshd de kullanılır

scp makineler arasında dosya kopyalamaya yarar

/etc/ssh/
dizini altında konfigursayonu yapılır
/etc/ssh/ssh_config : konfigurasyon dosyası
sshd_config şeklinde de değişkenlik gösterebilir

id_rsa.pub dosyasını uzakta authorized_keys e eklersek parolasız erişebiliriz ::

Süreç Yönetimi

top/htop
çalışan uygulamaları göstermeye yarar

ps
çalışan tüm süreçleri anlık olarak göstermeye yarar

ps aux
detaylı olarak listelemeye yarar

ps aux | grep apt
içerisinde apt geçen tüm süreçleri listele

Sanallaştırma ve Yedekleme

Log Analizi

..

Made with Slides.com