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.