21 Mayıs 2016 Cumartesi

Linux chmod, chown komutları

chmod : Dosya ve dizinlerin izinlerini değiştirmek için kullanılır.

Örnek :

dosya1 ve bir dizin oluştururuz. izinleri aşağıdaki gibidir.

drwxr-xr-x  2 root root 4096 May 19 00:59 dizin1/
-rw-r--r--  1 root root    0 May 19 00:59 dosya1

rwx = 111 in binary = 7
rw- = 110 in binary = 6
r-x = 101 in binary = 5
r-- = 100 in binary = 4


şeklindedir. ve biz bunları 755 olarak değiştirmek istiyoruz.

hakan eren # touch dosya1
hakan eren # mkdir dizin1
hakan eren # ll
total 40
drwxr-xr-x  5 root root 4096 May 19 00:59 ./
drwx------ 26 root root 4096 May 18 04:42 ../
drwxr-xr-x  2 root root 4096 May 19 00:59 dizin1/
-rw-r--r--  1 root root    0 May 19 00:59 dosya1
-rw-r--r--  1 root root    0 May 16 05:00 ornek1.html
drwxr-xr-x  2 root root 4096 May 17 02:11 ornek2/
drwxr-xr-x  2 root root 4096 May 17 02:11 ornek3/
-rw-r--r--  1 root root   31 May 17 02:12 ornek4
-rw-r--r--  1 root root   29 May 17 02:20 ornek5
-rw-r--r--  1 root root   23 May 17 02:22 ornek7
-rw-r--r--  1 root root   31 May 17 02:23 ornek8
-rw-r--r--  1 root root   31 May 17 02:22 ornek9
hakan eren # chmod 755 dosya1
hakan eren # ll
total 40
drwxr-xr-x  5 root root 4096 May 19 00:59 ./
drwx------ 26 root root 4096 May 18 04:42 ../
drwxr-xr-x  2 root root 4096 May 19 00:59 dizin1/
-rwxr-xr-x  1 root root    0 May 19 00:59 dosya1*
-rw-r--r--  1 root root    0 May 16 05:00 ornek1.html
drwxr-xr-x  2 root root 4096 May 17 02:11 ornek2/
drwxr-xr-x  2 root root 4096 May 17 02:11 ornek3/
-rw-r--r--  1 root root   31 May 17 02:12 ornek4
-rw-r--r--  1 root root   29 May 17 02:20 ornek5
-rw-r--r--  1 root root   23 May 17 02:22 ornek7
-rw-r--r--  1 root root   31 May 17 02:23 ornek8
-rw-r--r--  1 root root   31 May 17 02:22 ornek9


en baştaki 7 sahibi ile ilgili ortadaki grubu en sondaki diğerleri ile ilgili izinleri belirtiriz.

Aynı işlemi sayısal ifadelerle yapabileceğimiz gibi sembolik ifadelerlede kullanabiliriz.

chmod o-x dosya1 dediğimizde dosya1'den çalışma iznini diğer userlardan siler. o parametresi other anlamında kullanılır.


hakan eren # chmod o-x dosya1
hakan eren # ll
total 40
drwxr-xr-x  5 root root 4096 May 19 00:59 ./
drwx------ 26 root root 4096 May 18 04:42 ../
drwxr-xr-x  2 root root 4096 May 19 00:59 dizin1/
-rwxr-xr--  1 root root    0 May 19 00:59 dosya1*


chmod -R 755 dizin1/ ile -R parametresi ile kullandığımızda dizin1 ve dizin1 in altındaki dosyaların izinlerini recursive olarak 755 izin bilgisi ile değiştiririz.

chown : Dosya ve dizinlerin sahibini ve grubunu belirleriz.

hakan eren # ll 
total 40
drwxr-xr-x  5 root root 4096 May 19 00:59 ./
drwx------ 26 root root 4096 May 18 04:42 ../
drwxr-xr-x  2 root root 4096 May 19 00:59 dizin1/
-rwxr-xr--  1 root root    0 May 19 00:59 dosya1*

chown hakan dosya1

Dosya1 in sahibini hakan olarak değiştireceğiz.

hakan eren # chown hakan dosya1
hakan eren # ll
total 40
drwxr-xr-x  2 root  root 4096 May 19 00:59 dizin1/
-rwxr-xr--  1 hakan root    0 May 19 00:59 dosya1*


chown hakan:hakan dosya1 şeklinde kullandığımızda dosya1 in hem sahibini hem grubunu değiştirmiş oluruz.

hakan eren # chown hakan:hakan dosya1
hakan eren # ll
total 40
drwxr-xr-x  2 root  root 4096 May 19 00:59 dizin1/
-rwxr-xr--  1 hakan hakan    0 May 19 00:59 dosya1*

sadece grubunu değiştirmek için

chown :root dosya1 şeklinde de yapabiliriz.

hakan eren # chown :root dosya1
hakan eren # ll
total 40
drwxr-xr-x  2 root  root 4096 May 19 00:59 dizin1/
-rwxr-xr--  1 hakan root    0 May 19 00:59 dosya1*

chown -R hakan:hakan dizin1/ şeklinde -R parametresi ile kullanıldığında dizini ve dizinin altındakilerin recursive olarak sahibini ve grubunu değiştiririz.

dizin1 in sahibini ve grubunu kendisi ve altındaki tüm dizinler dahil hakan olarak değiştiririz.

Aşağıda chmod ile ilgili dosyaların rakamsal olarak değerlerine daha detaylı bakabilirsiniz. Kaynak : http://linuxcommand.org/lts0070.php

777 (rwxrwxrwx) No restrictions on permissions. Anybody may do anything. Generally not a desirable setting.
755 (rwxr-xr-x) The file's owner may read, write, and execute the file. All others may read and execute the file. This setting is common for programs that are used by all users.
700 (rwx------) The file's owner may read, write, and execute the file. Nobody else has any rights. This setting is useful for programs that only the owner may use and must be kept private from others.
666 (rw-rw-rw-) All users may read and write the file.
644 (rw-r--r--) The owner may read and write a file, while all others may only read the file. A common setting for data files that everybody may read, but only the owner may change.
600 (rw-------) The owner may read and write a file. All others have no rights. A common setting for data files that the owner wants to keep private.

20 Mayıs 2016 Cuma

Linux umask, chattr, mount, tar komutları


umask : Dosya ve dizinlerin varsayılan izinlerini görmeye ve değiştirmeye yarar.

hakan eren # umask
0022


Ekran çıkan bu değer verilmeyen izinleri temsil eder.

777-022 = 755 varsayılan dizin iznimizdir.
666-022 = 644 varsayılandaki dosya iznimizdir

usmask ile bu değerleri değiştirebiliriz

hakan eren # umask 0011
hakan eren # umask
0011


777-011 = 766 varsayılan dizin izni
666-011 = 655 varsayılan dosya izni

Dosya sistemlerinde  izinlerin yanı sıra veri günlükleme, sıkıştırma ve değişmezlik gibi ek özniteliklerde bulunmaktadır. Bu gibi öz nitelikleri chattr komutu ile değiştirebiliriz.

chattr +i ornekdosya

hakan eren # touch ornekdosya
hakan eren # chattr +i ornekdosya 
hakan eren # rm -rf ornekdosya 
rm: cannot remove ‘ornekdosya’: Operation not permitted


+i parametresi ile kullandığımızda dosyayı root kullanıcısı olmamıza rağmen silemiyoruz. not permitted diye izinli olmadığımızı söyleyen bir uyarı verir. Dosyayı kimsenin silmesini istemezsek chattr komutunu +i parametresi ile kullanırız.

Bu işlemi geri almak istediğimizde chattr komutunu -i parametresini kullanarak yazarız. ve silebiliriz.

hakan eren # chattr -i ornekdosya
hakan eren # rm -rf ornekdosya

chattr -i dosya
chattr -a dosya
chattr -A dosya

a : Tanımlandığında,dosya üzerine sadece yeni veri eklenebilir fakat varolan veriler değiştirilemez.
veyasilinemez
i : Tanımlandığında,dosya içeriğiherhangi bir şekildedeğiştirilemez(silinemez, isimdeğişikliğiyapılamaz)
A: Tanımlandığında dosyaya yapılanerişimlere ait zamanbilgisi (atime)güncellenmez.

mount : Sistemdeki aygıtların bağlanma yerlerini bu komutu ile görebiliriz.


hakan@hakan ~ $ mount
/dev/sda2 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/cgroup type tmpfs (rw)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
none on /sys/firmware/efi/efivars type efivarfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
none on /run/user type tmpfs (rw,noexec,nosuid,nodev,size=104857600,mode=0755)
none on /sys/fs/pstore type pstore (rw)
/dev/sda1 on /boot/efi type vfat (rw)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)
systemd on /sys/fs/cgroup/systemd type cgroup (rw,noexec,nosuid,nodev,none,name=systemd)
gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,user=hakan)


/dev/sda2 kök dizinine bağlıdır.

mount komutuyla sistem aygıtlarını istediğimiz dizinede bağlayabiliriz.

mount -o loop,rw centos.iso /mnt herhangi bir iso dosyasını istediğimiz dizine bu komut ile bağlayabiliriz

mount -t ext4 /dev/sda3 /mnt/ İstediğimiz bir disk bölümünü istediğimiz dizine bağlarız. -t parametresi ile ext4 formatı ile dizine bağlayacağımızı belirtmiş oluruz.

tar : Dosya ve dizinleri arşivlemek için kullanılır.

tar -cvzf log.tar.gz /var/log/

hakan paste # tar -cvzf log.tar.gz /var/log/
tar: Removing leading `/' from member names
/var/log/
/var/log/Xorg.20.log
/var/log/syslog.4.gz
/var/log/pm-powersave.log
/var/log/dpkg.log
/var/log/syslog.2.gz
/var/log/dmesg.1.gz
/var/log/ConsoleKit/
/var/log/ConsoleKit/history.2.gz
/var/log/ConsoleKit/history.1
/var/log/ConsoleKit/history
/var/log/dmesg.4.gz
/var/log/udev
/var/log/pm-powersave.log.2.gz
/var/log/syslog.5.gz
/var/log/hp/
/var/log/hp/tmp/
/var/log/fontconfig.log
/var/log/boot.log
/var/log/syslog.3.gz
/var/log/btmp.1
/var/log/cups/
/var/log/cups/access_log.6.gz
/var/log/cups/access_log.5.gz
/var/log/cups/error_log
/var/log/cups/access_log.3.gz
/var/log/cups/page_log
/var/log/cups/access_log
/var/log/cups/access_log.2.gz
/var/log/cups/access_log.7.gz
/var/log/cups/access_log.4.gz
/var/log/cups/access_log.1.gz
/var/log/auth.log.4.gz
/var/log/mysql/
/var/log/mysql/error.log
/var/log/mysql/error.log.4.gz
/var/log/mysql/error.log.6.gz
/var/log/mysql/error.log.3.gz
/var/log/mysql/error.log.7.gz
/var/log/mysql/error.log.5.gz
/var/log/mysql/error.log.1.gz
/var/log/mysql/error.log.2.gz
/var/log/mysql.log.3.gz
/var/log/fsck/
/var/log/fsck/checkroot
/var/log/fsck/checkfs
/var/log/mysql.log.6.gz
/var/log/btmp
/var/log/aptitude
/var/log/dmesg.2.gz
/var/log/mysql.log.5.gz
/var/log/upstart/
/var/log/upstart/cups.log.6.gz
/var/log/upstart/dbus.log.4.gz
/var/log/upstart/alsa-restore.log.6.gz
/var/log/upstart/plymouth-shutdown.log.3.gz
/var/log/upstart/procps-static-network-up.log.2.gz
/var/log/upstart/plymouth-shutdown.log.7.gz
/var/log/upstart/console-setup.log.5.gz
/var/log/upstart/gpu-manager.log.6.gz
/var/log/upstart/gpu-manager.log.4.gz
/var/log/upstart/mountall.log.1.gz
/var/log/upstart/network-manager.log.3.gz
/var/log/upstart/cups.log.7.gz
/var/log/upstart/cups.log.3.gz
/var/log/upstart/alsa-state.log.1.gz
/var/log/upstart/network-manager.log.5.gz
/var/log/upstart/modemmanager.log.5.gz
/var/log/upstart/dbus.log.6.gz
/var/log/upstart/mysql.log.3.gz
/var/log/upstart/mysql.log.6.gz
/var/log/upstart/network-manager.log.2.gz
/var/log/upstart/alsa-state.log.7.gz
/var/log/upstart/container-detect.log.2.gz
/var/log/upstart/kmod.log.4.gz
/var/log/upstart/alsa-state.log.5.gz
/var/log/upstart/ureadahead-other.log.7.gz
/var/log/upstart/mysql.log.5.gz
/var/log/upstart/dbus.log.1.gz
/var/log/upstart/kmod.log.1.gz
/var/log/upstart/console-setup.log.1.gz
/var/log/upstart/procps-virtual-filesystems.log.2.gz
/var/log/upstart/procps-static-network-up.log.6.gz
/var/log/upstart/gpu-manager.log.5.gz
/var/log/upstart/plymouth-shutdown.log.4.gz
/var/log/upstart/modemmanager.log.3.gz
/var/log/upstart/mountall.log.6.gz
/var/log/upstart/procps-virtual-filesystems.log.3.gz
/var/log/upstart/cups.log.5.gz
/var/log/upstart/network-manager.log.7.gz
/var/log/upstart/systemd-logind.log.2.gz
/var/log/upstart/kmod.log.2.gz
/var/log/upstart/kmod.log.3.gz
/var/log/upstart/alsa-state.log.6.gz
/var/log/upstart/alsa-restore.log.4.gz
/var/log/upstart/procps-virtual-filesystems.log.4.gz
/var/log/upstart/ureadahead-other.log.5.gz
/var/log/upstart/systemd-logind.log.7.gz
/var/log/upstart/procps-static-network-up.log.7.gz
/var/log/upstart/kmod.log.5.gz
/var/log/upstart/plymouth-shutdown.log.2.gz
/var/log/upstart/alsa-restore.log.1.gz
/var/log/upstart/alsa-state.log.4.gz
/var/log/upstart/plymouth-shutdown.log.5.gz
/var/log/upstart/console-setup.log.3.gz
/var/log/upstart/plymouth-shutdown.log.1.gz
/var/log/upstart/container-detect.log.1.gz
/var/log/upstart/procps-virtual-filesystems.log.7.gz
/var/log/upstart/dbus.log.3.gz
/var/log/upstart/kmod.log.6.gz
/var/log/upstart/ureadahead.log.2.gz
/var/log/upstart/container-detect.log.7.gz
/var/log/upstart/alsa-restore.log.3.gz
/var/log/upstart/mysql.log.7.gz
/var/log/upstart/wait-for-state-plymouth-shutdownmdm.log.1.gz
/var/log/upstart/alsa-state.log.2.gz
/var/log/upstart/modemmanager.log.7.gz
/var/log/upstart/container-detect.log.5.gz
/var/log/upstart/procps-static-network-up.log.4.gz
/var/log/upstart/ureadahead.log.5.gz
/var/log/upstart/procps-static-network-up.log.3.gz
/var/log/upstart/gpu-manager.log.2.gz
/var/log/upstart/mysql.log.1.gz
/var/log/upstart/console-setup.log.4.gz
/var/log/upstart/gpu-manager.log.1.gz
/var/log/upstart/console-setup.log.6.gz
/var/log/upstart/ureadahead.log.1.gz
/var/log/upstart/kmod.log.7.gz
/var/log/upstart/container-detect.log.6.gz
/var/log/upstart/mountall.log.7.gz
/var/log/upstart/dbus.log.7.gz
/var/log/upstart/ureadahead-other.log.3.gz
/var/log/upstart/mysql.log.2.gz
/var/log/upstart/modemmanager.log.6.gz
/var/log/upstart/procps-virtual-filesystems.log.5.gz
/var/log/upstart/mountall.log.3.gz
/var/log/upstart/mountall.log.2.gz
/var/log/upstart/ureadahead-other.log.4.gz
/var/log/upstart/systemd-logind.log.6.gz
/var/log/upstart/mountall.log.4.gz
/var/log/upstart/systemd-logind.log.5.gz
/var/log/upstart/mountall.log.5.gz
/var/log/upstart/console-setup.log.2.gz
/var/log/upstart/ureadahead-other.log.1.gz
/var/log/upstart/systemd-logind.log.1.gz
/var/log/upstart/procps-static-network-up.log.1.gz
/var/log/upstart/ureadahead.log.6.gz
/var/log/upstart/dbus.log.2.gz
/var/log/upstart/network-manager.log.4.gz
/var/log/upstart/ureadahead-other.log.6.gz
/var/log/upstart/ureadahead.log.3.gz
/var/log/upstart/modemmanager.log.4.gz
/var/log/upstart/alsa-state.log.3.gz
/var/log/upstart/systemd-logind.log.4.gz
/var/log/upstart/network-manager.log.1.gz
/var/log/upstart/mysql.log.4.gz
/var/log/upstart/container-detect.log.4.gz
/var/log/upstart/ureadahead.log.4.gz
/var/log/upstart/gpu-manager.log.7.gz
/var/log/upstart/ureadahead-other.log.2.gz
/var/log/upstart/ureadahead.log.7.gz
/var/log/upstart/gpu-manager.log.3.gz
/var/log/upstart/network-manager.log.6.gz
/var/log/upstart/procps-static-network-up.log.5.gz
/var/log/upstart/alsa-restore.log.5.gz
/var/log/upstart/plymouth-shutdown.log.6.gz
/var/log/upstart/cups.log.4.gz
/var/log/upstart/cups.log.1.gz
/var/log/upstart/alsa-restore.log.2.gz
/var/log/upstart/modemmanager.log.2.gz
/var/log/upstart/systemd-logind.log.3.gz
/var/log/upstart/procps-virtual-filesystems.log.6.gz
/var/log/upstart/cups.log.2.gz
/var/log/upstart/container-detect.log.3.gz
/var/log/upstart/dbus.log.5.gz
/var/log/upstart/modemmanager.log.1.gz
/var/log/upstart/procps-virtual-filesystems.log.1.gz
/var/log/upstart/console-setup.log.7.gz
/var/log/kern.log.3.gz
/var/log/lastlog
/var/log/dpkg.log.1
/var/log/faillog
/var/log/dmesg.0
/var/log/samba/
/var/log/samba/log.172.20.10.3
/var/log/samba/log.tamay-pc
/var/log/samba/log.10.99.10.216
/var/log/samba/log.10.99.13.165
/var/log/samba/log.10.99.12.45
/var/log/samba/log.10.99.8.248
/var/log/samba/log.10.99.1.32
/var/log/samba/log.10.99.9.127
/var/log/samba/log.kocatepekahve
/var/log/samba/log.user-bilgisayar
/var/log/samba/log.10.99.1.248
/var/log/samba/log.smbd
/var/log/samba/log.smbd.7.gz
/var/log/samba/log.nmbd.4.gz
/var/log/samba/log.10.99.4.165
/var/log/samba/log.nmbd.7.gz
/var/log/samba/log.192.168.1.37
/var/log/samba/log.user34
/var/log/samba/log.sengul
/var/log/samba/log.ert-bilgisayar
/var/log/samba/log.192.168.1.50
/var/log/samba/log.ahmety__cesan
/var/log/samba/log.lenovo-pc
/var/log/samba/log.smbd.1.gz
/var/log/samba/log.%m
/var/log/samba/log.nmbd.2.gz
/var/log/samba/log.192.168.43.101
/var/log/samba/log.nmbd
/var/log/samba/log.x
/var/log/samba/log.smbd.3.gz
/var/log/samba/log.smbd.2.gz
/var/log/samba/log.192.168.0.100
/var/log/samba/log.ender-pc
/var/log/samba/log.smbd.4.gz
/var/log/samba/log.desktop-5n291m6
/var/log/samba/log.smbd.5.gz
/var/log/samba/log.10.99.11.73
/var/log/samba/log.ert
/var/log/samba/log.10.99.9.249
/var/log/samba/log.metehn
/var/log/samba/log.smbd.6.gz
/var/log/samba/log.clientxp
/var/log/samba/cores/
/var/log/samba/cores/nmbd/
/var/log/samba/cores/smbd/
/var/log/samba/log.sahiner-vaio
/var/log/samba/log.192.168.1.64
/var/log/samba/log.10.99.0.150
/var/log/samba/log.10.99.9.77
/var/log/samba/log.192.168.1.48
/var/log/samba/log.192.168.1.35
/var/log/samba/log.nmbd.6.gz
/var/log/samba/log.10.99.7.218
/var/log/samba/log.192.168.1.33
/var/log/samba/log.user32
/var/log/samba/log.nmbd.5.gz
/var/log/samba/log.192.168.1.51
/var/log/samba/log.nmbd.1.gz
/var/log/samba/log.pc121
/var/log/samba/log.192.168.1.34
/var/log/samba/log.192.168.2.6
/var/log/samba/log.unipc
/var/log/samba/log.samsung
/var/log/samba/log.kali
/var/log/samba/log.nmbd.3.gz
/var/log/samba/log.192.168.1.59
/var/log/samba/log.ruya
/var/log/samba/log.mustafa
/var/log/samba/log.user5
/var/log/samba/log.10.99.6.30
/var/log/mintsystem.log
/var/log/kern.log.2.gz
/var/log/Xorg.0.log.old
/var/log/apache2/
/var/log/apache2/error.log.10.gz
/var/log/apache2/access.log.9.gz
/var/log/apache2/access.log.3.gz
/var/log/apache2/error.log
/var/log/apache2/access.log.8.gz
/var/log/apache2/error.log.4.gz
/var/log/apache2/access.log.2.gz
/var/log/apache2/error.log.9.gz
/var/log/apache2/access.log.7.gz
/var/log/apache2/access.log.6.gz
/var/log/apache2/error.log.6.gz
/var/log/apache2/other_vhosts_access.log
/var/log/apache2/access.log.5.gz
/var/log/apache2/error.log.11.gz
/var/log/apache2/access.log.10.gz
/var/log/apache2/error.log.8.gz
/var/log/apache2/error.log.3.gz
/var/log/apache2/error.log.7.gz
/var/log/apache2/access.log
/var/log/apache2/access.log.4.gz
/var/log/apache2/access.log.1
/var/log/apache2/error.log.5.gz
/var/log/apache2/error.log.1
/var/log/apache2/error.log.2.gz
/var/log/apache2/access.log.11.gz
/var/log/auth.log
/var/log/kern.log.4.gz
/var/log/pm-powersave.log.1
/var/log/alternatives.log.2.gz
/var/log/pm-suspend.log.2.gz
/var/log/syslog.1
/var/log/mysql.log
/var/log/mysql.log.7.gz
/var/log/mdm/
/var/log/mdm/:0.log
/var/log/mdm/:0.log.1
/var/log/mdm/:0.log.3
/var/log/mdm/:0.log.2
/var/log/mdm/:0.log.4
/var/log/mdm/:20.log
/var/log/syslog.7.gz
/var/log/pycentral.log
/var/log/apt/
/var/log/apt/history.log.1.gz
/var/log/apt/history.log
/var/log/apt/term.log.2.gz
/var/log/apt/term.log
/var/log/apt/term.log.1.gz
/var/log/apt/history.log.2.gz
/var/log/auth.log.3.gz
/var/log/kern.log.1
/var/log/wtmp
/var/log/dpkg.log.2.gz
/var/log/mysql.log.1.gz
/var/log/unattended-upgrades/
/var/log/unattended-upgrades/unattended-upgrades-shutdown.log
/var/log/mysql.log.2.gz
/var/log/alternatives.log
/var/log/syslog.6.gz
/var/log/kern.log
/var/log/Xorg.0.log
/var/log/pm-suspend.log.1
/var/log/alternatives.log.1
/var/log/syslog
/var/log/aptitude.1.gz
/var/log/speech-dispatcher/
/var/log/gpu-manager.log
/var/log/installer/
/var/log/installer/initial-status.gz
/var/log/installer/version
/var/log/installer/debug
/var/log/installer/partman
/var/log/installer/casper.log
/var/log/installer/syslog
/var/log/installer/media-info
/var/log/mysql.log.4.gz
/var/log/pm-suspend.log
/var/log/mysql.err
/var/log/auth.log.2.gz
/var/log/dbconfig-common/
/var/log/dbconfig-common/dbc.log
/var/log/auth.log.1
/var/log/dmesg
/var/log/vbox-install.log
/var/log/wtmp.1
/var/log/bootstrap.log
/var/log/dmesg.3.gz
hakan paste # ll
-rw-rw-rw-  1 root root 2478668 May 19 21:04 log.tar.gz


log dosyalarını tar ile tek bir dosya olacak şekilde sıkıştırarak arşivleriz /var/log dizini altındaki tüm dosyaları log.tar.gz şeklinde tek bir dosyada sıkıştırdı.

Sıkıştırılmış dosyayıda açmak için tar -xvzf log.tar.gz şeklinde yazarak çıkarabiliriz. /var ı çıkardı ve altındaki tüm dizinleri bunlarıda ls ile gördük

hakan paste # tar -xvzf log.tar.gz 
var/log/
var/log/Xorg.20.log
var/log/syslog.4.gz
var/log/pm-powersave.log
var/log/dpkg.log
var/log/syslog.2.gz
var/log/dmesg.1.gz
var/log/ConsoleKit/
var/log/ConsoleKit/history.2.gz
var/log/ConsoleKit/history.1
var/log/ConsoleKit/history
var/log/dmesg.4.gz
var/log/udev
var/log/pm-powersave.log.2.gz
var/log/syslog.5.gz
var/log/hp/
var/log/hp/tmp/
var/log/fontconfig.log
var/log/boot.log
var/log/syslog.3.gz
var/log/btmp.1
var/log/cups/
var/log/cups/access_log.6.gz
var/log/cups/access_log.5.gz
var/log/cups/error_log
var/log/cups/access_log.3.gz
var/log/cups/page_log
var/log/cups/access_log
var/log/cups/access_log.2.gz
var/log/cups/access_log.7.gz
var/log/cups/access_log.4.gz
var/log/cups/access_log.1.gz
var/log/auth.log.4.gz
var/log/mysql/
var/log/mysql/error.log
var/log/mysql/error.log.4.gz
var/log/mysql/error.log.6.gz
var/log/mysql/error.log.3.gz
var/log/mysql/error.log.7.gz
var/log/mysql/error.log.5.gz
var/log/mysql/error.log.1.gz
var/log/mysql/error.log.2.gz
var/log/mysql.log.3.gz
var/log/fsck/
var/log/fsck/checkroot
var/log/fsck/checkfs
var/log/mysql.log.6.gz
var/log/btmp
var/log/aptitude
var/log/dmesg.2.gz
var/log/mysql.log.5.gz
var/log/upstart/
var/log/upstart/cups.log.6.gz
var/log/upstart/dbus.log.4.gz
var/log/upstart/alsa-restore.log.6.gz
var/log/upstart/plymouth-shutdown.log.3.gz
var/log/upstart/procps-static-network-up.log.2.gz
var/log/upstart/plymouth-shutdown.log.7.gz
var/log/upstart/console-setup.log.5.gz
var/log/upstart/gpu-manager.log.6.gz
var/log/upstart/gpu-manager.log.4.gz
var/log/upstart/mountall.log.1.gz
var/log/upstart/network-manager.log.3.gz
var/log/upstart/cups.log.7.gz
var/log/upstart/cups.log.3.gz
var/log/upstart/alsa-state.log.1.gz
var/log/upstart/network-manager.log.5.gz
var/log/upstart/modemmanager.log.5.gz
var/log/upstart/dbus.log.6.gz
var/log/upstart/mysql.log.3.gz
var/log/upstart/mysql.log.6.gz
var/log/upstart/network-manager.log.2.gz
var/log/upstart/alsa-state.log.7.gz
var/log/upstart/container-detect.log.2.gz
var/log/upstart/kmod.log.4.gz
var/log/upstart/alsa-state.log.5.gz
var/log/upstart/ureadahead-other.log.7.gz
var/log/upstart/mysql.log.5.gz
var/log/upstart/dbus.log.1.gz
var/log/upstart/kmod.log.1.gz
var/log/upstart/console-setup.log.1.gz
var/log/upstart/procps-virtual-filesystems.log.2.gz
var/log/upstart/procps-static-network-up.log.6.gz
var/log/upstart/gpu-manager.log.5.gz
var/log/upstart/plymouth-shutdown.log.4.gz
var/log/upstart/modemmanager.log.3.gz
var/log/upstart/mountall.log.6.gz
var/log/upstart/procps-virtual-filesystems.log.3.gz
var/log/upstart/cups.log.5.gz
var/log/upstart/network-manager.log.7.gz
var/log/upstart/systemd-logind.log.2.gz
var/log/upstart/kmod.log.2.gz
var/log/upstart/kmod.log.3.gz
var/log/upstart/alsa-state.log.6.gz
var/log/upstart/alsa-restore.log.4.gz
var/log/upstart/procps-virtual-filesystems.log.4.gz
var/log/upstart/ureadahead-other.log.5.gz
var/log/upstart/systemd-logind.log.7.gz
var/log/upstart/procps-static-network-up.log.7.gz
var/log/upstart/kmod.log.5.gz
var/log/upstart/plymouth-shutdown.log.2.gz
var/log/upstart/alsa-restore.log.1.gz
var/log/upstart/alsa-state.log.4.gz
var/log/upstart/plymouth-shutdown.log.5.gz
var/log/upstart/console-setup.log.3.gz
var/log/upstart/plymouth-shutdown.log.1.gz
var/log/upstart/container-detect.log.1.gz
var/log/upstart/procps-virtual-filesystems.log.7.gz
var/log/upstart/dbus.log.3.gz
var/log/upstart/kmod.log.6.gz
var/log/upstart/ureadahead.log.2.gz
var/log/upstart/container-detect.log.7.gz
var/log/upstart/alsa-restore.log.3.gz
var/log/upstart/mysql.log.7.gz
var/log/upstart/wait-for-state-plymouth-shutdownmdm.log.1.gz
var/log/upstart/alsa-state.log.2.gz
var/log/upstart/modemmanager.log.7.gz
var/log/upstart/container-detect.log.5.gz
var/log/upstart/procps-static-network-up.log.4.gz
var/log/upstart/ureadahead.log.5.gz
var/log/upstart/procps-static-network-up.log.3.gz
var/log/upstart/gpu-manager.log.2.gz
var/log/upstart/mysql.log.1.gz
var/log/upstart/console-setup.log.4.gz
var/log/upstart/gpu-manager.log.1.gz
var/log/upstart/console-setup.log.6.gz
var/log/upstart/ureadahead.log.1.gz
var/log/upstart/kmod.log.7.gz
var/log/upstart/container-detect.log.6.gz
var/log/upstart/mountall.log.7.gz
var/log/upstart/dbus.log.7.gz
var/log/upstart/ureadahead-other.log.3.gz
var/log/upstart/mysql.log.2.gz
var/log/upstart/modemmanager.log.6.gz
var/log/upstart/procps-virtual-filesystems.log.5.gz
var/log/upstart/mountall.log.3.gz
var/log/upstart/mountall.log.2.gz
var/log/upstart/ureadahead-other.log.4.gz
var/log/upstart/systemd-logind.log.6.gz
var/log/upstart/mountall.log.4.gz
var/log/upstart/systemd-logind.log.5.gz
var/log/upstart/mountall.log.5.gz
var/log/upstart/console-setup.log.2.gz
var/log/upstart/ureadahead-other.log.1.gz
var/log/upstart/systemd-logind.log.1.gz
var/log/upstart/procps-static-network-up.log.1.gz
var/log/upstart/ureadahead.log.6.gz
var/log/upstart/dbus.log.2.gz
var/log/upstart/network-manager.log.4.gz
var/log/upstart/ureadahead-other.log.6.gz
var/log/upstart/ureadahead.log.3.gz
var/log/upstart/modemmanager.log.4.gz
var/log/upstart/alsa-state.log.3.gz
var/log/upstart/systemd-logind.log.4.gz
var/log/upstart/network-manager.log.1.gz
var/log/upstart/mysql.log.4.gz
var/log/upstart/container-detect.log.4.gz
var/log/upstart/ureadahead.log.4.gz
var/log/upstart/gpu-manager.log.7.gz
var/log/upstart/ureadahead-other.log.2.gz
var/log/upstart/ureadahead.log.7.gz
var/log/upstart/gpu-manager.log.3.gz
var/log/upstart/network-manager.log.6.gz
var/log/upstart/procps-static-network-up.log.5.gz
var/log/upstart/alsa-restore.log.5.gz
var/log/upstart/plymouth-shutdown.log.6.gz
var/log/upstart/cups.log.4.gz
var/log/upstart/cups.log.1.gz
var/log/upstart/alsa-restore.log.2.gz
var/log/upstart/modemmanager.log.2.gz
var/log/upstart/systemd-logind.log.3.gz
var/log/upstart/procps-virtual-filesystems.log.6.gz
var/log/upstart/cups.log.2.gz
var/log/upstart/container-detect.log.3.gz
var/log/upstart/dbus.log.5.gz
var/log/upstart/modemmanager.log.1.gz
var/log/upstart/procps-virtual-filesystems.log.1.gz
var/log/upstart/console-setup.log.7.gz
var/log/kern.log.3.gz
var/log/lastlog
var/log/dpkg.log.1
var/log/faillog
var/log/dmesg.0
var/log/samba/
var/log/samba/log.172.20.10.3
var/log/samba/log.tamay-pc
var/log/samba/log.10.99.10.216
var/log/samba/log.10.99.13.165
var/log/samba/log.10.99.12.45
var/log/samba/log.10.99.8.248
var/log/samba/log.10.99.1.32
var/log/samba/log.10.99.9.127
var/log/samba/log.kocatepekahve
var/log/samba/log.user-bilgisayar
var/log/samba/log.10.99.1.248
var/log/samba/log.smbd
var/log/samba/log.smbd.7.gz
var/log/samba/log.nmbd.4.gz
var/log/samba/log.10.99.4.165
var/log/samba/log.nmbd.7.gz
var/log/samba/log.192.168.1.37
var/log/samba/log.user34
var/log/samba/log.sengul
var/log/samba/log.ert-bilgisayar
var/log/samba/log.192.168.1.50
var/log/samba/log.ahmety__cesan
var/log/samba/log.lenovo-pc
var/log/samba/log.smbd.1.gz
var/log/samba/log.%m
var/log/samba/log.nmbd.2.gz
var/log/samba/log.192.168.43.101
var/log/samba/log.nmbd
var/log/samba/log.x
var/log/samba/log.smbd.3.gz
var/log/samba/log.smbd.2.gz
var/log/samba/log.192.168.0.100
var/log/samba/log.ender-pc
var/log/samba/log.smbd.4.gz
var/log/samba/log.desktop-5n291m6
var/log/samba/log.smbd.5.gz
var/log/samba/log.10.99.11.73
var/log/samba/log.ert
var/log/samba/log.10.99.9.249
var/log/samba/log.metehn
var/log/samba/log.smbd.6.gz
var/log/samba/log.clientxp
var/log/samba/cores/
var/log/samba/cores/nmbd/
var/log/samba/cores/smbd/
var/log/samba/log.sahiner-vaio
var/log/samba/log.192.168.1.64
var/log/samba/log.10.99.0.150
var/log/samba/log.10.99.9.77
var/log/samba/log.192.168.1.48
var/log/samba/log.192.168.1.35
var/log/samba/log.nmbd.6.gz
var/log/samba/log.10.99.7.218
var/log/samba/log.192.168.1.33
var/log/samba/log.user32
var/log/samba/log.nmbd.5.gz
var/log/samba/log.192.168.1.51
var/log/samba/log.nmbd.1.gz
var/log/samba/log.pc121
var/log/samba/log.192.168.1.34
var/log/samba/log.192.168.2.6
var/log/samba/log.unipc
var/log/samba/log.samsung
var/log/samba/log.kali
var/log/samba/log.nmbd.3.gz
var/log/samba/log.192.168.1.59
var/log/samba/log.ruya
var/log/samba/log.mustafa
var/log/samba/log.user5
var/log/samba/log.10.99.6.30
var/log/mintsystem.log
var/log/kern.log.2.gz
var/log/Xorg.0.log.old
var/log/apache2/
var/log/apache2/error.log.10.gz
var/log/apache2/access.log.9.gz
var/log/apache2/access.log.3.gz
var/log/apache2/error.log
var/log/apache2/access.log.8.gz
var/log/apache2/error.log.4.gz
var/log/apache2/access.log.2.gz
var/log/apache2/error.log.9.gz
var/log/apache2/access.log.7.gz
var/log/apache2/access.log.6.gz
var/log/apache2/error.log.6.gz
var/log/apache2/other_vhosts_access.log
var/log/apache2/access.log.5.gz
var/log/apache2/error.log.11.gz
var/log/apache2/access.log.10.gz
var/log/apache2/error.log.8.gz
var/log/apache2/error.log.3.gz
var/log/apache2/error.log.7.gz
var/log/apache2/access.log
var/log/apache2/access.log.4.gz
var/log/apache2/access.log.1
var/log/apache2/error.log.5.gz
var/log/apache2/error.log.1
var/log/apache2/error.log.2.gz
var/log/apache2/access.log.11.gz
var/log/auth.log
var/log/kern.log.4.gz
var/log/pm-powersave.log.1
var/log/alternatives.log.2.gz
var/log/pm-suspend.log.2.gz
var/log/syslog.1
var/log/mysql.log
var/log/mysql.log.7.gz
var/log/mdm/
var/log/mdm/:0.log
var/log/mdm/:0.log.1
var/log/mdm/:0.log.3
var/log/mdm/:0.log.2
var/log/mdm/:0.log.4
var/log/mdm/:20.log
var/log/syslog.7.gz
var/log/pycentral.log
var/log/apt/
var/log/apt/history.log.1.gz
var/log/apt/history.log
var/log/apt/term.log.2.gz
var/log/apt/term.log
var/log/apt/term.log.1.gz
var/log/apt/history.log.2.gz
var/log/auth.log.3.gz
var/log/kern.log.1
var/log/wtmp
var/log/dpkg.log.2.gz
var/log/mysql.log.1.gz
var/log/unattended-upgrades/
var/log/unattended-upgrades/unattended-upgrades-shutdown.log
var/log/mysql.log.2.gz
var/log/alternatives.log
var/log/syslog.6.gz
var/log/kern.log
var/log/Xorg.0.log
var/log/pm-suspend.log.1
var/log/alternatives.log.1
var/log/syslog
var/log/aptitude.1.gz
var/log/speech-dispatcher/
var/log/gpu-manager.log
var/log/installer/
var/log/installer/initial-status.gz
var/log/installer/version
var/log/installer/debug
var/log/installer/partman
var/log/installer/casper.log
var/log/installer/syslog
var/log/installer/media-info
var/log/mysql.log.4.gz
var/log/pm-suspend.log
var/log/mysql.err
var/log/auth.log.2.gz
var/log/dbconfig-common/
var/log/dbconfig-common/dbc.log
var/log/auth.log.1
var/log/dmesg
var/log/vbox-install.log
var/log/wtmp.1
var/log/bootstrap.log
var/log/dmesg.3.gz
hakan paste # ls
dosya1  dosya3  log.tar.gz  var  xab  xad  xaf  xah
dosya2  dosya4  ornek       xaa  xac  xae  xag  yenidosya
hakan paste # cd /var/
hakan var # ls
backups  cache  lib  local  lock  log  mail  opt  run  spool  tmp  www
hakan var #

19 Mayıs 2016 Perşembe

Linux shutdown, reeboot

shutdown : Linux sistemlerde sunucuyu kapatmak için kullanılan komuttur.

shutdown -h now ile kullanılırsa sunucu hemen kapatılır.

man shutdown ile daha detaylı bilgi alınabilir için.

reboot : Linux sistemlerde sunucuyu tekrar başlatırız.

Linux locate, find komutları

locate : Dosya ve dizinlerin dosya sistemindeki yerini bulmak için kullanılır.

locate komutu aramayı /var/lib/mlocate/mlocate.db veritabından yapar bu veritabanı varsayılanda gunde bir kere
guncellenir.

Bu yüzden yeni bir dosya oluşturduğumuzda locate komutu bulmayabilir. Arama yapmadan önce updatedb yaparak bu veritabanını güncelleyerek daha sağlıklı sonuçlar elde edebiliriz.

Örnek :  bir .deb paketi arayalım.
 
hakan hakan # locate google-chrome-stable_current_amd64.deb 
/home/hakan/google-chrome-stable_current_amd64.deb


find : Aradığımız dosyayı belirttiğimiz dizinin altında tarayarak bulmaya yarar. locate komutuna göre uzun süren bir komuttur.

Aynı paketi find ile /home dizini altında arayalım.

hakan hakan # find /home/ -name google-chrome-stable_current_amd64.deb 
/home/hakan/google-chrome-stable_current_amd64.deb


hakan hakan # find /home ! -user ali -name alibaba* -exec rm -rf {} \;



Bu komut home dizininde arama yapar ! işareti ise hangi kullanıcı olmayacağı anlamına gelir. ! koymazsak tam aksini hangi kullanıcıya ait olduğunu söylerdik. ali kullanıcısına ait olmayan dosyalarda arama yapar ve ismi alibaba şeklinde başlayan dosyalarda arar ve bulduğu dosyalarda rm -rf komutunu çalıştırır. ve bulduğu dosyaları siler.

hakan hakan # find /var/ -type d perm 777 -exec chmod 755 {} \;

var dizini altında arama yapar. - type d ile dizinlerde arama yapar - perm ile 777  iznine sahipli dizinleri bulur ve bunların izinlerini 755 olarak değiştirir.

hakan hakan # find /var/ -type f -perm 777 -exec chmod 644 {} \;

var dizini altında 777 izine sahip dosyaları bulup bunların izinlerini 644 olarak değiştiririz.

find komutunu yanlış izinli dosyaları değiştirmek için veya yanlış dosyaları silmek içinde kullanabiliriz.

17 Mayıs 2016 Salı

Linux join, paste, split, uniq, cut, sort komutları


Linux join, paste, split, uniq, cut, sort komutlarından bahsedeceğim.

Join : Dosya birleştirme işlemlerinde kullanılır. Parametresiz kullanılırsa ilk sutundaki ortak alanlara göre bize birleştirir.

Örnek : ornek8 ve ornek9 içerisindekileri ilk sütundaki ortak alanlara göre birleştireceğiz.


hakan eren # cat ornek8
2 mehmet
3 erdi
5 gazi
6 hasan
hakan eren # cat ornek9
1 hakan
2 ahmet
5 gazi
7 hasan
hakan eren # join ornek8 ornek9
2 mehmet ahmet
5 gazi gazi


join -1 2 -2 2 parametre vererek kullanırsak burada 1. dosyanın 2. sütununa, 2. dosyanın 2. sütunundaki ortak alanlara bakmasını belirtiyoruz.


paste : Dosya birleştirmek için kullanılan bir diğer komuttur. İki dosyayı satır satır birleştirilir.

hakan paste # cat dosya1
ahmet
linux
gazi
ali
hakan paste # cat dosya3
2
3
5
6
hakan paste # paste dosya1 dosya3
ahmet    2
linux    3
gazi    5
ali    6


paste -d parametresi ile kullanıldığında dosyaların satırların arasına bir ayrac eklemeye yarar. Kullanımı paste -d <ifade> şeklindedir.

Örnek : paste -d : kullandıgımızda dosyaların arasında : koyarak ayırır.

hakan paste # paste -d : dosya1 dosya3
ahmet:2
linux:3
gazi:5
ali:6


paste -s -d parametresi ile kullanıldığında dosyaları tek bir satır haline getirip ardından birleştirme işlemini gerçekleştirir.

Örnek : paste -s -d : dosya1 dosya3 şeklinde kullandığımızda aşağıdaki çıktıyı verecektir.

hakan paste # paste -s -d :  dosya1 dosya3 
ahmet:linux:gazi:ali
2:3:5:6


split : Dosyayı girilen bytelara gore ya da satır sayılarına gore boler.

Örnek : split -l 1 dosya1 şeklinde yazdığımızda dört satır oldugu için dörte bölüyor. xaa, xab, xac, xad şeklinde ve 2. satırda linux oldugu için kontrol etme amaçlı cat xab diyerek linux yazdığını görüyoruz.

hakan paste # cat dosya1
ahmet
linux
gazi
ali
hakan paste # split -l 1 dosya1
hakan paste # ls
dosya1  dosya2  dosya3  xaa  xab  xac  xad
hakan paste # cat xab
linux


split -b 1 dosya3 diye girdiğimizde dosya3 ü herbiri birer byte şeklinde böler.

hakan paste # split -b 1 dosya3
hakan paste # ls
dosya1  dosya3  xaa  xab  xac  xad  xae  xaf  xag  xah


split -b 2m dosya3 yaparsak her  biri 2m olan alt dosyalara böler.

uniq : Dosya içindeki tekrar eden satırları gizleyerek dosyasının içeriğini ekrana basar. i parametresi ile kullanıldığında büyük küçük harf uyumuna bakmaz.

Örnek : linux 3 kez tekrarlanmış uniq ile görmek istediğimizde bir kez bize gösterir.

hakan paste # cat dosya4
linux
linux
linux
centos
mint
hakan paste # uniq dosya4
linux
centos
mint



cut : Verilen parametrelere göre dosyaları görüntülemeye yarar.

cut -c 5,6 dosya4 şeklinde -c parametresi ile kullanırsak her satırdaki 5. ve 6. harfleri ekrana basar.
 
hakan paste # cut -c 5,6 dosya4
x
x
x
os



cut -d : -f 2 dosya4 şeklinde -d parametresi ile kullanıldığında parametreye göre sütunlara böler ve 2. sütunları alt alta ekrana basar.


hakan paste # cat dosya2
hakan:2
ahmet:4
linux:6
centos:98
hakan paste # cut -d : -f 2 dosya2
2
4
6
98


short : Dosya içerisindeki verileri sıralamak için kullanılır.

hakan paste # cat yenidosya 
2
6
3
9
1

hakan paste # cat yenidosya | sort

1
2
3
6
9


Şimdi hepsini ortak kullanarak bir uygulama yapacaz. İçerisinde isimlerin olduğu bir dosyada hangi ismin kaç defa geçtiğini en az tekrar edenden en çok tekrar edene kadar sıralayalım.

Komutunu kullanarak yaparız.
cat ornek | sort | uniq -c | sort -n


hakan paste # cat ornek
hakan
gazi
ahmet
linux
mint
metehan
hakan paste # cat ornek | sort | uniq -c | sort -n
      1 gazi
      1 hakan
      1 metehan
      1 mint
      2 ahmet
      3 linux


Linux cat, more, less, tac, rev, tail komutları

Linux cat, more, tac, less, rev, tail  dosya görüntüleme komutlarından kısa kısa bahsedeceğim.

cat : Dosyaları görüntülemek için kullanılır.

hakan linuxlink # cat ornek2
merhaba


cat -n parametresi ile kullanıldığında satır numarası vererek bilgileri bize verir.

cat ornek2 >> ornek3 şeklinde kullanıldığında ornek2 dosyasının içeriğini ornek3'e ekler. Eğer ornek3 yoksa önce onu oluşturur.

cat ornek2 > ornek3 şeklinde kullanıldığında ise ornek3 yoksa oluşturur. Varsa içeriğini temizleyip ornek2 nin içeriğini ekler.

more : Dosyaları görüntülemek için kullanır. İçeriği fazla olan dosyalarda kullanılır ve bize bilgileri sayfa sayfa verir. "space" ile ilerlenir "b" tuşu ile geri gelinir. /arama şeklinde anahtar kelime araması yapılabilir.

less : more komutuyla aynıdır. more komutundan farklı olarak yön tuşları kullanılarak arama yapabiliriz.

tac : cat'in tersi olarak bilgileri bize sondan itibaren verir.

hakan linuxlink # tac ornek3
 merhaba 3 
 merhaba2
 merhaba1
merhaba

rev : Satırları kendi içerisinde ters çevirerek bize verir. içeriği merhaba olan dosyayı "abharem" olarak bize verdi.

hakan linuxlink # rev ornek3 
abahrem


tail -n : -n parametresi ile kullanıldıgında vereceğimiz rakama göre sondan itibaren başlayarak dosya hakkında bilgi verir.

Son iki satırı bize götürdü.

hakan linuxlink # tail -n 2 ornek3
 merhaba2
 merhaba 3 


tail -f : Daha çok log dosyaları okumak için kullanılır.

örnek olarak tail -f  /var/log/maillog | grep hakan :  maillog dosyasında hakan geçen log düştükce ekrana basar. Ben centosda denemediğim için maillog adında bir dizin yok bu yüzden çıktı gösteremeyeceğim.

16 Mayıs 2016 Pazartesi

Linux ln, ln-s komutları

Linux'ta ln, ln-s komutlarından bahsedeceğim.

ln : Dosya bağlantıları oluşturmak için kullanılır. Parametresiz kullanıldığında Symbolic ( soft ) link oluşturulur. ln-s  şeklinde kullanıldığında ise hardlink oluşturur.

Örnek : Burada ;
-linuxlink adındaki dizine dosya1 dosyası oluşturduk.
-echo ile içine deneme yazdırdık.
-cat ile içine baktık.
-ln -s kullanarak dosya1softlink adında dosya oluşturduk.
-ln kullanarak dosya1hardlink adında dosya oluşturduk ve bunları ll ile gördük.

hakan linuxlink # touch dosya1
hakan linuxlink # echo "deneme" > dosya1
hakan linuxlink # cat dosya1 
deneme
hakan linuxlink # ln -s dosya1 dosya1softlink
hakan linuxlink # ll
total 12
drwxr-xr-x 2 root  root  4096 May 16 18:13 ./
drwxr-xr-x 4 hakan hakan 4096 May 16 18:12 ../
-rw-r--r-- 1 root  root     7 May 16 18:13 dosya1
lrwxrwxrwx 1 root  root     6 May 16 18:13 dosya1softlink -> dosya1
hakan linuxlink # ln dosya1 dosya1hardlink
hakan linuxlink # ll
total 16
drwxr-xr-x 2 root  root  4096 May 16 18:13 ./
drwxr-xr-x 4 hakan hakan 4096 May 16 18:12 ../
-rw-r--r-- 2 root  root     7 May 16 18:13 dosya1
-rw-r--r-- 2 root  root     7 May 16 18:13 dosya1hardlink
lrwxrwxrwx 1 root  root     6 May 16 18:13 dosya1softlink -> dosya1


Softlink ve Hardlink arasındaki fark ?

Soft link oluşturduğumuz dosyanın orjinal dosyasını sildiğimizde softlink kullanılamaz. Ama hardlink kullanılır.

Örnek :


hakan linuxlink # rm -f dosya1
hakan linuxlink # ll
total 12
drwxr-xr-x 2 root  root  4096 May 16 18:17 ./
drwxr-xr-x 4 hakan hakan 4096 May 16 18:12 ../
-rw-r--r-- 1 root  root     7 May 16 18:13 dosya1hardlink
lrwxrwxrwx 1 root  root     6 May 16 18:13 dosya1softlink -> dosya1
hakan linuxlink # cat dosya1hardlink 
deneme
hakan linuxlink # cat dosya1softlink 
cat: dosya1softlink: No such file or directory


Gördüğünüz gibi softlinkten dosyayı açmak istediğimizde açamadık.

Aralarındaki farkın görselleştirmiş halleride aşağıdaki gibidir.



Bir dosyanın kaç tane hardlinke sahip olduğunuda stat komutuyla görebiliriz.

Örnek : stat ile dosyanın kaç tane hardlink bağlantısı olduğunu göreceğiz.


hakan linuxlink # touch ornek2
hakan linuxlink # ln ornek2 ornek2hardlink1
hakan linuxlink # ln ornek2 ornek2hardlink2
hakan linuxlink # ll
total 12
drwxr-xr-x 2 root  root  4096 May 16 18:24 ./
drwxr-xr-x 4 hakan hakan 4096 May 16 18:12 ../
-rw-r--r-- 1 root  root     7 May 16 18:13 dosya1hardlink
lrwxrwxrwx 1 root  root     6 May 16 18:13 dosya1softlink -> dosya1
-rw-r--r-- 3 root  root     0 May 16 18:24 ornek2
-rw-r--r-- 3 root  root     0 May 16 18:24 ornek2hardlink1
-rw-r--r-- 3 root  root     0 May 16 18:24 ornek2hardlink2
hakan linuxlink # stat ornek2
  File: ‘ornek2’
  Size: 0             Blocks: 0          IO Block: 4096   regular empty file
Device: 802h/2050d    Inode: 4328590     Links: 3
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2016-05-16 18:24:31.151731102 +0300
Modify: 2016-05-16 18:24:31.151731102 +0300
Change: 2016-05-16 18:24:46.027731500 +0300
 Birth: -


inode numaraları hardlinklerin hiçbirinde değişmez. Buda zaten yukarıdaki görsellerde anlatıldığı gibi dosyanın orjinali silinse dahi hardlinklerin çalışmasının sebebidir.

15 Mayıs 2016 Pazar

Linux file, cd, pwd, touch, mkdir, ls, mv, cp, rmdir, rm komutları

Linux'ta file, cd, pwd, touch, mkdir, ls, mv, cp, rmdir, rm komutlarından kısa kısa bahsedeceğim.

file : Dosyalar hakkında bilgi almamızı sağlar. Kullanım şekli #file dosyaadi şeklindedir.

Örnek : index.html dosyası hakkında bilgi almak istiyoruz

hakan hakan # file index.html
index.html: HTML document, ASCII text


file --help ile komutun hangi parametreleri aldığını görebilirsiniz ve daha detaylı işlem yapabilirsiniz.

cd : ( Change director ) Bulunduğumuz dizinden farklı dizine geçmeye yarar. Direkt olarak çalıştırdığımızda hangi dizindeysek kullanıcının ev dizinine geçiş yaparız.

cd .. : Linux sistemleri ağaç yapısına sahiptir. Bu komutta bir üst dizine geçmeye yarar.

Örnek : /home dizinine geçmek istiyoruz.

hakan hakan # cd /home/
hakan home # pwd
/home


pwd : Bulunduğumuz dizinin ismini bize verir. Yukarıda /home dizinine geçiş yaptıktan sonra hangi dizinde olduğumuza bakmamız için pwd komutunu kullandık.

touch : Boş dosya oluşturmaya yarar.

Örnek : hakanerensan.blogspot adında bir dosya oluşturacağız.

hakan ~ # cd Desktop/
hakan Desktop # touch hakanerensan.blogspot
hakan Desktop # ls
hakanerensan.blogspot  netbeans-8.1.desktop
hakan Desktop # file hakanerensan.blogspot 
hakanerensan.blogspot: empty 
hakan Desktop # 


cat komutu ile de dosyasının içeriğini görüntüleriz.

mkdir : Klasör oluşturmak için kullanılır. Yeni bir dizin oluşturur.

Örnek : ornek2 adında bir dosya oluşturacağız.

hakan home # mkdir /ornek2
hakan home # cd /ornek2/
hakan ornek2 # pwd
/ornek2
hakan ornek2 # 


mkdir -p /ornek1/ornek2 şeklinde kullanıldığında ise önce ornek1 daha sonra ornek2 dizini oluşturulur. -p parametresi koyulmazsa hata verir.

ls : Bulunan dizindeki dosyaları sıralar.

Örnek : Masaüstümüzdeki dosyaları sıralamak için ls /Desktop dediğimizde masaüstündeki dosyaları sıralar. Yukarıdaki touch örneğinde ls komutunu kullandık.

ls -l : Şeklinde kullanıldığında dosya ve dizinlerin izin bilgileri ile verir.

hakan Desktop # ls -l
total 4
-rw-r--r-- 1 root root   0 May 16 04:46 hakanerensan.blogspot
-rwxr-xr-x 1 root root 267 Mar 22 10:51 netbeans-8.1.desktop
hakan Desktop # 


-rw-r--r-- gibi en baştaki değerler dosya hakkındaki izinler hakkındadır.

ls -1 : ile kullanılırsa sadece isimleri ile liste şeklinde verir.

ls -a : Bulunduğumuz dizindeki gizli dosya ve klasörleri görürüz

ls -al : Tüm bilgileri gösterir. Alternatif olarak ll 'de kullanılabilir.

mv :Dosya ve dizinleri taşımaya yarar.

Örnek : a isimli dosyayı /home dizinine taşımak için. mv a /home/ komutu kullanılır.

mv a/* /home diye kullanırsak * işareti hepsi anlamına geldiği için a dosyası içindeki herşeyi /home dizinine taşır.

mv komutu dosya ve dizin ismini değiştirmek içinde kullanabiliriz.

Örnek : ornek.html ismindeki dosyayı ornek1.html ismiyle değiştiriyoruz.

hakan eren # ls
hakan  ornek.html
hakan eren # mv ornek.html ornek1.html
hakan eren # ls
hakan  ornek1.html
hakan eren # 


cp : Kopyalama yapmaya yarar.

Örnek : ornek1.html dosyasının aynısından ornek2.html diye bir dosya oluşturarak ornek1.html'in bir kopyasını oluşturduk.

hakan eren # cp ornek1.html ornek2.html
hakan eren # ls
hakan  ornek1.html  ornek2.html
hakan eren # 


cp -R recursive olarak kopyalamaya yarar. Belirttiğimiz dizin altındaki tüm dosyaları kopyalar.

rmdir :  Boş dizinleri silmek için kullanırız.

Örnek : önce ornek diye bir boş dosya oluşturuyoruz. Daha sonrasındada rmdir ornek ile siliyoruz. Dosya boş olmazsa hata verir. Aksi durumu rm ile mümkündür.
hakan eren # mkdir ornek
hakan eren # ls
hakan  ornek  ornek1.html  ornek2.html
hakan eren # rmdir ornek
hakan eren # ls
hakan  ornek1.html  ornek2.html
hakan eren # 


rm : Dosyayı silmeye yarar. Parametresiz kullanıldığında kod çalıştıktan sonra uyarı verir. rm -f şeklinde kullanıldığında uyarı vermeden direk olarak siler.

rm -ri şeklinde r parametresi ile kullanırsak recursive olarak belirttiğimiz dizinin altındaki tüm dosyaları siler.

Linux man, info, whatis, apropos, which, whereis komutları

Linux'ta kullanılan yardımcı  komutlardan bahsedeceğim.


man  : Bir komut hakkında bilgi almak istediğimizde kullanılır.

Örnek olarak;

man ls yazdığımızda bize ls hakkında bilgi verir.

Komut satırına man ls yazdığımızda çıktı aşağıdaki gibi olacaktır.

LS(1)                            User Commands                           LS(1)

NAME
       ls - list directory contents

SYNOPSIS
       ls [OPTION]... [FILE]...

DESCRIPTION
       List  information  about  the FILEs (the current directory by default).
       Sort entries alphabetically if none of -cftuvSUX nor --sort  is  speci‐
       fied.

       Mandatory  arguments  to  long  options are mandatory for short options
       too.

       -a, --all
              do not ignore entries starting with .

       -A, --almost-all
              do not list implied . and ..

       --author
 Manual page ls(1) line 1 (press h for help or q to quit)


man ile bir komut hakkında bilgi almak istediğimizde bazen oldukça uzun sonuçlar çıkabiliyor. Sonuçta herhangi bir kelime aramak için /description gibi anahtar kelime ile arama yapabilir.

info : man ile aynı işi yapar tek farkı daha fazla bilgi vermesidir. Bir komut hakkında uzunca bilgi verir.

Sonuçlar çok olduğu ve sayfada gereksiz yer kapladığı için örnek vermeyeceğim. Kullanımı man ile aynıdır.

whatis : Kullanımı man ile aynıdır. Bir komutun yalnızca ilgili parametresi hakkında bilgi almak için kullanılır. man veya info kullanmak aradığınız komut hakkında uzun bilgi vereceği için whatis kullanmak hız açısından oldukça yarar sağlar.

apropos : Aradığımız kelime ile ilgili bütün komutları listelemek için kullanılır. Bu komutu bende ilk başta pek anlamamıştım ama ekşisözlükte birisi şöyle tanımlamış "turkce unix versiyonlarina "aklimdabiseyvaramaneiseyarar" diye cevrilmesi olasi komut"

Kullanımı şu ise  $apropos <aranılan kelime> şeklindedir.

Örnek : Ben system diye arattım system ile alakalı komutları listeledi.

Not : Gereksiz yer kaplamaması için kodun büyük çoğunluğunu sildim. Yazdığınızda daha uzun bir çıktı verecektir.


hakan@hakan ~ $ apropos system
Git (3pm)            - Perl interface to the Git version control system
UPower (7)           - System-wide Power Management
_syscall (2)         - invoking a system call without library support (OBSOLETE)
_sysctl (2)          - read/write system parameters
acpi_available (1)   - test whether ACPI subsystem is available
addgroup (8)         - add a user or group to the system
addmntent (3)        - get filesystem descriptor file entry
adduser (8)          - add a user or group to the system
adjtime (3)          - correct the time to synchronize the system clock
afs_syscall (2)      - unimplemented system calls
apm_available (1)    - test whether APM subsystem is available
AptPkg::System (3pm) - APT system abstraction class
arp (8)              - manipulate the system ARP cache
atobm (1)            - bitmap editor and converter utilities for the X Window...
attr (1)             - extended attributes on XFS filesystem objects
autodie::exception::system (3pm) - Exceptions from autodying system().
bitmap (1)           - bitmap editor and converter utilities for the X Window...
bmtoa (1)            - bitmap editor and converter utilities for the X Window...
break (2)            - unimplemented system calls
casper (7)           - a hook for initramfs-tools to boot live systems.
chattr (1)           - change file attributes on a Linux file system
cifs.idmap (8)       - Userspace helper for mapping ids for Common Internet F...
cifs.upcall (8)      - Userspace upcall helper for Common Internet File Syste...
closelog (3)         - send messages to the system logger
config.guess (1)     - guess the build system triplet
crypttab (5)         - static information about encrypted filesystems
date (1)             - print or set the system date and time
deb-systemd-helper (1p) - subset of systemctl for machines not running systemd
deb-systemd-invoke (1p) - wrapper around systemctl, respecting policy-rc.d
debugfs (8)          - ext2/ext3/ext4 file system debugger
debugreiserfs (8)    - The debugging tool for the ReiserFS filesystem.
delgroup (8)         - remove a user or group from the system
deluser (8)          - remove a user or group from the system
df (1)               - report file system disk space usage
discrete (6x)        - discrete map iterative function fractal systems.
dnsdomainname (1)    - show the system's DNS domain name
domainname (1)       - show or set the system's NIS/YP domain name
dosfsck (8)          - check and repair MS-DOS filesystems
dosfslabel (8)       - set or get MS-DOS filesystem label
dumpe2fs (8)         - dump ext2/ext3/ext4 filesystem information
e2fsck (8)           - check a Linux ext2/ext3/ext4 file system


which : Parametre olarak verilen komutu path değişkende tanımlanan dizinlerin altında arar ve komutun çalıştırılabilir dosya konumunu gösterir.

Komut satırına echo $PATH yazdığımızda kullanıcıya ait çalıştırılabilir dosyaların bulunduğu dizinlerin listesidir. which komutu ise path değişkeninde tanımlanan dizinlerin altında parametre olarak verilen komutu aramaya yarar.

hakan ~ # echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games


Örnek verecek olursak : which ls

Bu komutu path değişkeninde tanımlı olan dizinlerin hepsinde arıyor. Komutun yolunu verir. yani komut /bin altında bulunur.


hakan@hakan ~ $ which ls
/bin/ls


whereis : Komutun çalıştırılabilir dosya konumunu ve komutun kütüphane dosya yolunu gösterir.

Örnek : whereis whoami yazdığımızda hem which komutunun vereceği çıktıyı hem de yardımcı kütüphaneyi verir.


hakan@hakan ~ $ whereis whoami
whoami: /usr/bin/whoami /usr/bin/X11/whoami /usr/share/man/man1/whoami.1.gz


Linux'ta çok fazla komut vardır. Bunların hepsini ezberlemek zor olacağı için bu yardım komutlarının bize çok faydası olacaktır.

Faydalı olması dileğiyle...

12 Mayıs 2016 Perşembe

Php ereg() ve eregi() fonksiyonları nedir ?

Php'de düzenli değişkenler fonksiyonları olarak geçer.

Bir düzenli ifadeyi eşleştirmeye yarar.  ereg() ve eregi() fonksiyonları aynı işi yapar. Tek fark eregi() büyük küçük harfe duyarsız olarak çalışır.

Kullanımı aşağıdaki şekildedir.

if ( ereg("aranacak kelime","aranacagi yer","atanilacak dizin"))

Basit bir örnek verecek olursak,


<?php

$site = "hakanerensan.blogspot.com";

if (ereg("hakanerensan.blogspot.com", $site , $deger))
{
    echo "Böyle bir site var";
    echo "Site adi  :".$deger[0];
}
else
{
    echo "Böyle bir site bulunamadı.";
}



?>

Burada kodun çıktısı ;

Böyle bir site var
Site adi  : hakanerensan.blogspot.com

şeklinde olacaktır.

11 Mayıs 2016 Çarşamba

Php Mysqli_real_escape_string Fonksiyonu nedir ?

Mysqli_real_escape php dilinde güvenlik amaçlı kullanılan fonksiyonlardan biridir.

Burada veritabanina kullanici kaydetme senaryosu düşünelim. Ad soyad ve yaş soralım. Bu üç değişkeni filtreden geçirmemiz gerekir. Burada bu üç değişkeni yazarak özel karakterler çalıştırılması engellenir.


Aşağıdaki örnekte ;

$yas = mysqli_real_escape_string($con, $_POST['yas']);

yas degiskeni filtreden gecirilerek asagidaki sql ifadeye gönderilmiş.

<?php
$con=mysqli_connect("localhost","my_user","my_password","my_db");

// Check connection
if (mysqli_connect_errno()) {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
}


$adi = mysqli_real_escape_string($con, $_POST['adi']);
$soyadi = mysqli_real_escape_string($con, $_POST['soyadi']);
$yas = mysqli_real_escape_string($con, $_POST['yas']);

$sql="INSERT INTO Persons (FirstName, LastName, Age)
VALUES ('$adi', '$soyadi', '$yas')";

if (!mysqli_query($con,$sql)) {
  die('Error: ' . mysqli_error($con));
}
echo "1 kayit eklendi";

mysqli_close($con);
?> 



Php define nedir ?

Define php'de bir sabit tanımlamaya yarar. İki tane parametre alır.
define ( "sabit adı ", "sabit değeri" ) şeklinde kullanılır. Sabit değişken tanımlandığında sonrasında değiştirilemez.

<?php
define('site', 'hakanerensan.blogspot.com');

?>

Burada echo site; diye bir komut yazarsak hakanerensan.blogspot.com çıktısını verir.

Sabit değişkenin diğer değişkenlerden farkı değiştirilememesidir.


<?php
$hakan = "hakan";
$hakan = "eren";
echo $hakan;


?>

Burada echo eren çıktısını verecektir. Bunu define ile yapsaydık ilk yazdığımızı verecekti.

defined fonksiyonu ise sabit bir değişkenin olup olmadığını kontrol eder.
<?php
define('site', 'hakanerensan.blogspot.com');
echo defined('site');
?>

Eğer böyle bir değişken varsa 1 yoksa ekrana birşey yazmaz.

Faydalı olması dileğiyle...

8 Mayıs 2016 Pazar

Linux Oracle VirtualBox tam ekran sorunu çözümü

Linux üzerinde virtualbox'a Kali linux kurduğumda tam ekran sorunuyla karşılaştım. Bugünde gittiğim bir etkinlikte bir kaç kişide'de olduğunu görünce çözümü yazmak istedim.

Virtualbox'un güncelleştirme sorunu sebebiyle bu sorunla karşılaşıyor. Aşağıdaki komutu virtualbox üzerinde kurduğunuz sistemin komut satırında açarak yazınız.

sudo apt-get install virtualbox-guest-dkms

ardından sistemi reboot ettiğinizde problem ortadan kalkıyor. Eğer kalkmazsa ;

sudo apt-get install build-essential

sudo apt-get install dkms
sudo apt-get install build-essential module-assistant
sudo m-a prepare 
sudo apt-get install virtualbox-guest-dkms virtualbox-guest-utils virtualbox-guest-x11 

deneyebilirsiniz. Kolay gelsin.

5 Mayıs 2016 Perşembe

Php'de Location ve Refresh kullanımı

Php'de yönlendirme komutları olarak geçen Location ve Refresh adlı iki komuttan bahsedeceğiz.

Location : Anlık yönlendirme için kullanılır. Kullanım şekli ;


header(“Location : index.php” ) ;

şeklindedir.

Refresh : Burada bizim belirlediğimiz saniyede yönlendirme gerçekleştirilir. Kullanım şekli ;


header(“Refresh:10; url=index.php”) // 10 saniye sonra index.php'ye git

şeklindedir.

Örnek verecek olursak. Bir üye giriş senaryosu düşünelim. Üye eğer doğru şifreyi girerse location kullanarak kullanıcı paneline yönlendirelim.


if ($_POST[“sifre”] = 1234)
{
    header(“Location: kullanicipanel.php”);
    exit;
}

Burada şifrenin 1234 olarak girilmesi dahilinde kullanicipanel.php'ye direk olarak yönlendirilecektir.



<?php
header('Refresh: 3; url=http://www.hakanerensan.blogspot.com/admin');
echo “3 saniye sonra yönlendirileceksiniz...”;
?>

Burada da Refresh ile belirtilen linke 3 saniye sonra yönlendirilecektir. Dikkat edilmesi gereken nokta verilen integer değerin saniye cinsinden olmasıdır.


Php'de İnclude ve Require kullanımı

Php'de include, require  adlı iki tane deyimden bahsedeceğim. Bunlar bir php dosyasını başka bir php dosyasına dahil etmeye yarar. Farklarını yazıp bir örnekle açıklayalım.


include : Bir sayfayı diğer sayfaya eklemeye yarar. Fakat include edilen sayfa bulunmazsa hata verir. Hatayı yazdıktan sonra include'dan sonra yazılan kodlar çalıştırılır.

require : Bir sayfayı diğer sayfaya eklemeye yarar. İnclude ile arasındaki fark eklenilen sayfayı bulamazsa oda hata verir fakat kendinden sonra yazılan kodu çalıştırmaz.

İnclude kullanıldığında sayfa bulunmadı taktirde hata verir ve kullanıcıya kötü bir görüntü oluşturur. Fakat require kullanılırsa sayfa bulunmadığında bir sonraki kodu çalıştırmayacağı kullanıcıya hatadan başka bir şey göstermeyecektir.

require_once : Bu ise dahil edilen sayfanın birden fazla olmaması için kullanılır. Yani iki kez require_once yazmanız durumunda yalnızca bir tanesini çalıştırır. Diğerleri için bu durum geçerli olmayıp yazıldığı kadar çalıştırır. ( Genelde kullanılanda budur)

Aşağıdaki örnek require_once üzerinden anlatılmıştır. Yerine include,require koyarakta aynı sonucu alabilirsiniz.


<?php
$user = "admin";
$password = "1234";
?>

Basit bir config.php oluşturduğumuzu varsayalım. Bu iki değişkeni diğer sayfalarda da kullanacağımızı varsayalım. Tekrar yazmak yerine bu config.php dosyasını kullanmamız gereken sayfalara dahil ederiz.

<?php
require_once("config.php");
session_start();
ob_start();
if(($_POST["username"]==$user) and ($_POST["password"]==$pass)){
$_SESSION["login"] = "true";
$_SESSION["user"] = $user;
$_SESSION["pass"] = $password;
header("Location:admin.php");
}else{
echo "Kullancı Adı veya Şifre Yanlış.<br>";
echo "Giriş sayfasına yönlendiriliyorsunuz.";
header("Refresh: 2; url=index.php");
}
ob_end_flush();
?>

Burada gördüğünüz gibi sayfamıza config.php'yi dahil ediyoruz ve bu değişkenleri bu sayfada da kullanmış oluyor. Bu sayede aynı kodları diğer sayfada da yazmak durumunda kalmıyoruz. Diğer yazılan kodların bununla bir ilgisi yoktur. Örneği somutlaştırmak için basit bir login sayfasından gösterilmiştir.

Faydalı olması dileğiyle..