Linux Komutları. Temel Linux Komutları - Sed ve Awk, Kabuk Programlama - Bash / Csh, Süreç Otomasyonu - crontab vb.



Benzer belgeler
Temel Li nux Eği t i mi Böl üm

16-18 Nisan 2012 Pazartesi-Çarsamba 9:30-12:30. Temel Linux Eğitimi. Süha TUNA.

Temel Linux Eğitimi 1., 2. ve 3. Bölümler

Komut Penceresi ile Çalışmaya Başlamak

Linux altında komut satırında...

Bash ile Programlama. Cem Ahmet Mercan. Ulusal Yüksek Başarımlı Hesaplama Merkezi (UHeM) 13 Temmuz 2017

Linux ta komutlar hakkında yardım almak için aşağıdaki komutlar kullanılır : - man - info - whatis - apropos

Regular Expressions Version 0.1

man komut man ls (ls komutu hakkında bilgi verir.) man pwd (pwd komutu hakkında bilgi verir.)

Komutlar (Devam) ls -a > deneme (ls -a komutunun çıktısı deneme isimli. ls -a >> deneme (ls -a komutunun çıktısı deneme

Linux Dosya ve Dizin Yapısı

BİLGİ İŞLEM DERS 3. Yrd Doç Dr. Ferhat ÖZOK MSGSU FİZİK BÖLÜMÜ MSGSU FİZİK BÖLÜMÜ

Aşağıda listelenen temel linux komutları bilgisayarınızın komut satırında çalıtırılacaktır.

3. DOSYA SİSTEMİ VE ÇALIŞMA MANTIĞI

Temel Linux Komutları

LİNUX. Dosyalar ve dizinler

Kazanımlar. Linux nedir? Linux dizin yapısı. Linux kabuğu nedir? Temel kabuk komutları. Bash programlama. Dosya işlemleri. Süreç yönetimi.

Temel Linux Eğitimi. İçindekiler

Linux işletim sistemlerinde dosya hiyerarşisinde en üstte bulunan dizindir. Diğer bütün dizinler kök dizinin altında bulunur.

Güvenli Kabuk: SSH. Burak DAYIOĞLU, Korhan GÜRLER

*nix' lerde Etkin ve Pratik Arama Yöntemleri

Pardus ta Komutlarla Çalışmak

AÇIK KAYNAK İŞLETİM SİSTEMLERİ - BÖLÜM 1. Temel komutlar,dosya ve Dizin İşlemleri, Kullanıcı ve Grup İşlemleri

LİNUX. Dosyalar ve dizinler

Linux'ta Kabuk ve Kabuk Programlama

Temel LINUX Komutları

Kullanım şekli: cal <ay> <yıl> Bu komut ile takvim görüntülenebilir.

Linux Dosya Yapısı. Eren BAŞTÜRK.

Linux konsol uygulamaları ve BASH programlama

qmail ile üniversite mail sistemi yönetimi Devrim Sipahi Dokuz Eylül Üniversitesi

PBS Betiği Hazırlama ve PBS Komutları. Feyza Eryol

Bir üst dizinde yer alan prog1 programını çalıştırmak için aşağıdaki komutlardan hangisini çalıştırmak gerekir?

$ echo $PATH /sbin:/bin:/usr/sbin:/usr/bin:/usr/x11r6/bin: /usr/local/sbin:/usr/local/bin:/usr/games:.

Kabuk Programlama (Bash)

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 7. LINUX OS (Sistem Yapısı) BİLGİ & İLETİŞİM TEKNOLOJİLERİ. LINUX Yapısı

CHAPTER 3. ZAMANLANMIŞ GÖREVLER (Automated Tasks)

İşletim Sistemleri. İşletim Sistemleri. Dr. Binnur Kurt Omega Eğitim ve Danışmanlık

KABUK PROGRAMLAMA (shell programming- scripting)

Temel Linux Bilgileri Türk Standardları Enstitüsü Yazılım Test ve Belgelendirme Dairesi Başkanlığı

qmail ile üniversite mail sistemi yönetimi Devrim Sipahi Dokuz Eylül Üniversitesi

Ağ Nedir? Birden fazla bilgisayarın iletişimini sağlayan printer vb. kaynakları, daha iyi ve ortaklaşa kullanımı sağlayan yapılara denir.

LİNUX SERVER TEMEL KOMUTLAR

LABORATUVAR ÇALIŞMASI 1 - Python a Giriş

Temel Bilgisayar Programlama Final Sınavı Çalışma Notları

LINUX YAPISI VE KOMUTLARI

Pardus 2013 te Metin Editörleri

Dosya/Dizin İzinleri. Okuma (r) Yazma (w) Çalıştırma (x) Dosya içeriğini görebilir mi? (Klasörler için) dosya listesini alabilir mi?

Adım Adım SPSS. 1- Data Girişi ve Düzenlemesi 2- Hızlı Menü. Y. Doç. Dr. İbrahim Turan Nisan 2011

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

Paralel Hesaplama - Beowulf Cluster

Yrd. Doç. Dr. A. Burak İNNER

Kurumsal Güvenlik ve Web Filtreleme

Aktif Dizin Logon/Logoff Script Ayarları Versiyon

Fen ve Mühendislik Uygulamaları ile MATLAB

Kurumsal Güvenlik ve Web Filtreleme

Sun Solaris Jumpstart Sistemi

k ise bir gerçek sayı olsun. Buna göre aşağıdaki işlemler Matlab da yapılabilir.

1 STUNNEL NEDİR? 2 STUNNEL KURULUMU

BİLGİ İŞLEM DERS 1. Yrd Doç Dr. Ferhat ÖZOK MSGSU FİZİK BÖLÜMÜ MSGSU FİZİK BÖLÜMÜ

moduli ssh_host_dsa_key.pub ssh_host_rsa_key ssh_config ssh_host_key ssh_host_rsa_key.pub ssh_host_dsa_key ssh_host_key.

C Konsol ve Komut Satırı

Genel Bilgiler. Sistemimiz Güvenli Kabuk (Secure Shell/SSH) Protokülünü kullanan bağlan:ları kabul etmektedir.

Bölüm 10: PHP ile Veritabanı Uygulamaları

Kullanıcı Klavuzu

BİLGİSAYAR UYGULAMALARI Şırnak Üniversitesi Mühendislik Fakültesi Güz Dönemi Arş.Gör. Eren DEMİR ve Arş.Gör. Veysel KIŞ (

VISUAL BASIC DE İŞLETİM SİSTEMİ DENETİM KOMUTLARI VE FONKSİYONLARI

PBS Betiği Hazırlama ve PBS Komutları

WebInstaller. 1. Kurulum Đçin Gereksinimler

Ağ Üzerinde MATLAB kurulum rehberi (Sunucu makine)

CYGWIN KURULUMU ve KULLANIMI

Veritabanına Giriş. Oğuzhan Ceylan. 19 Eylül 2011

$ rm dosya1 dosya2 dosya3 dosya4 dosya5 dosya6 dosya7 dosya8

yazılabilir. Bundan sonra programın ismi yazılıp enter tuşuna basıldığı zaman bir program Linux komutuymuş gibi çalışacaktır.

SAMBA Linux Dosya Sunucusu

Windows XP Professional Kurulumu

SIMAN KULLANIM KILAVUZU

Linux Dosya Yapısı. Eren BAŞTÜRK.

Scream! e gelen veri akışlarından bazılarını diğer bir kurum yada bilgisayarla paylaşmak için kullanılabilir.

SM 100 Terazi Ayarları. Digi SM 100. SM 100 Terazi Ayarları

Merkezi İşlem. Birimi

OMÜ HAVACILIK VE UZAY BİLİMLERİ FAKÜLTESİ METEOROLOJİ MÜHENDİSLİĞİ BÖLÜMÜ MET103 BİLGİSAYAR PROGRAMLAMA I BÜTÜNLEME SINAVI

Apache üzerinden Red Hat 5 yüklenmesi

Denetim Masası/Programlar/Windows özelliklerini Aç/Kapat

Shell(Bash,sh, zsh,) Programming- Kabuk Programlama

JasperReports Server ve Ireport raporlama Sistemi Kurulumu / Kullanımı 1. Bölüm 2. Bölüm 1- JasperReports Server ve Ireport Nedir?

Linux Dosya Sistemi Yapısı. Dosya Sistemleri:

BM-209 Nesne Yönelimli Programlama. Yrd. Doç. Dr. İbrahim Alper Doğru Gazi Üniversitesi Teknoloji Fakültesi Bilgisayar Mühendisliği Bölümü

Yrd. Doç. Dr. A. Burak İNNER

Excel Formüller ve Fonksiyonlar. Yusuf MANSUROĞLU Mühendislik Hizmetleri Müdür Yardımcısı

Temel Bilgisayar Programlama

Microsoft Excel. Çalışma Alanı. Hızlı Erişim Çubuğu Sekmeler Başlık Formül Çubuğu. Ad Kutusu. Sütunlar. Satırlar. Hücre. Kaydırma Çubukları

Oluşturmak istediğimiz OU ye bir isim veriyoruz. Name kısmına ISTANBUL yazıyoruz,

BLGM 354 DENEY 1 * GİRİŞ

Bilindik engelleme yöntemlerinin dışında olan, kurumsal web filitreleri nasıl aşılır?

Usta Aritmetik Bayi Kontrol Programı Kullanım Kılavuzu (V.1.3.0)

Bilgisayar Programlama MATLAB

program uc_hata implicit none integer : x(5),i

Autofs. Hüseyin Kaya

Linux Sunucuları için Güvenlik İpuçları. Korhan Gürler, Burç Yıldırım

sunucu uygulaması Devrim Sipahi

Transkript:

Linux Komutları Temel Linux Komutları - Sed ve Awk, Kabuk Programlama - Bash / Csh, Süreç Otomasyonu - crontab vb.

ls komutu ls [dizin] : Dizin içeriğini gösterir. Dizin verilmezse içinde bulunulan dizini gösterir. Mesela Root (/) dizinin içeriğini görmek için: $ ls / bin boot cdrom dev etc home lib lost+found media mnt opt proc root sbin selinux srv sub sys tmp usr var Ancak sadece ls dersek: $ ls Desktop Documents Downloads examples.desktop namaz ncnn Pictures Public Templates tezim Videos

pwd komutu pwd : İçerisinde bulunulan dizinin adını/yolunu gösterir. $ pwd /home/mercan ls /home/mercan dersek: $ ls /home/mercan Desktop Documents Downloads examples.desktop namaz ncnn Pictures Public Templates tezim Videos

Ev (Home) Dizini Sisteme girince (login olunca) kendi ev dizinimizde başlarız. Her kullanıcının ev dizini kendi kontrolündedir. Bu dizinde kullanıcı yeni dosyalar ve dizinler oluşturabilir. ~ işareti, Ev dizini için bir kısa yoldur. $ ls ~ Desktop Documents Downloads examples.desktop namaz ncnn Pictures Public Templates tezim Videos

cd komutu cd [dizin] : Verilen dizine gider. Dizin adı verilmezse ev dizinine gider. $ pwd /home/mercan $ cd Desktop $ pwd /home/mercan/desktop

$ pwd /home/mercan $ cd Desktop $ pwd /home/mercan/desktop $ cd / $ cd Desktop -bash: cd: Desktop: No such file or directory Tam Yol /Göreli Yol (Path) $ pwd / $ ls bin dev lost+found mnt root srv tmp boot etc opt sbin sub usr cdrom home lib media proc selinux sys var $ cd /home/mercan/desktop $ pwd /home/mercan/desktop

Dizin Kısa yolları (./ ve../ ) Bulunulan Dizin Kısa yolu (. ): $ ls. Desktop Documents Downloads examples.desktop namaz ncnn Pictures Public Templates tezim Videos Bir üst dizin kısayolu (.. ): $ ls.. mercan

cp komutu cp { -r dizin dosya } hedefdizin : Dizin / Dosya 'yı hedefdizin'e kopyalar. -r Dizin kopyalamak için gereklidir. $ cp dosya1 Desktop/ $ cp /tmp/birdosya./ $ cp -r Videos Desktop/ $ cp -r ~/ /mnt/yedekdiski/

mv komutu mv -n { dizin dosya } { hedefdizin dosyayayeniisim } : Dizin / Dosya 'yı hedefdizin'e taşır, yada dosyayayeniisim adı ile taşır. -n ile var olan bir dosyanın üzerine yazma engellenir. $ mv dosya1 Desktop/ $ mv -n dosya1 Desktop/ $ mv /tmp/birdosya./ $ mv Videos Desktop/ $ mv ahmet.txt mehmet.txt

rm komutu rm [ -i ] { -r dizin dosya } : Dizin / Dosya 'yı siler. -r : Dizin silmek için gereklidir. -i : Her dosya için ayrı ayrı onay sormasını sağlar. $ rm dosya1 $ rm -i /tmp/birdosya $ rm Videos/ rm: cannot remove `Videos/': Is a directory $ rm -r Videos/

mkdir komutu mkdir dizin : Dizin adında yeni bir dizin oluşturur. $ mkdir Odevler $ mkdir Odevler/Odev1 $ mkdir ~/Odevler/Odev2 rmdir dizin : Dizin adındaki boş dizini siler. $ rmdir Desktop/ rmdir: failed to remove `Desktop/': Directory not empty

nano editor http://wiki.uhem.itu.edu.tr/w/index.php/login_sunucular%c4%b1nda_dosya_%c4%b0%c3%a7eri%c4%9fini_de%c4%9fi%c5%9ftirme

ls -l -h ls komutuna -l (küçük L) parametresi verilerek: Erişim Hakları Sahibi Grubu Boyutu (Byte olarak) Değişilik Tarihi Dosya Adı bilgileri görüntülenir. drwxr-xr-x 2 mercan mscelebi 4096 Apr 12 12:56 sonuc_tanima -rw-r--r-- 1 mercan mscelebi 7298402 Apr 12 12:57 target.png -rwxr-xr-x 1 mercan mscelebi 1037 Apr 13 10:52 temizle.sh ls -l komutuna bir de -h parametresi eklersek boyutu uygun birimde gösterir: drwxr-xr-x 2 mercan mscelebi 4.0K Apr 12 12:56 sonuc_tanima -rw-r--r-- 1 mercan mscelebi 7.3M Apr 12 12:57 target.png -rwxr-xr-x 1 mercan mscelebi 1.1K Apr 13 10:52 temizle.sh

ls -lrt # ls -lrt total 10248 -rw-r--r-- 1 root root 372187 Jan 5 01:47 deletedlist.2015 -rw-r--r-- 1 root root 7805904 Jan 12 01:57 rs_file_aging -rw-r--r-- 1 root root 4327 Jan 15 09:00 ibdiagnet_ibis.log -rw-r--r-- 1 root root 1371211 Jan 15 09:00 ibdiagnet.db -rw-r--r-- 1 root root 283686 Jan 15 09:00 ibdiagnet.lst -rw-r--r-- 1 root root 18367 Jan 15 09:04 ibdiagnet.pkey -rw-r--r-- 1 root root 550412 Jan 15 09:04 ibdiagnet.fdbs -rw-r--r-- 1 root root 110 Jan 15 09:05 ibdiagnet.sm -rw-r--r-- 1 root root 23325 Jan 15 09:05 ibdiagnet.mcfdbs -rw-r--r-- 1 root root 1371 Jan 15 09:05 ibdiagnet.log -rw-r--r-- 1 root root 5194 Jan 15 09:11 pim.info.manager -rw-r--r-- 1 root root 13 Jan 15 09:23 tmp_mailbody

man komutu man komut : : ( ( ). <(. : ( > : ( (. ( ( > ( ( (< ( (B(. ) (< ( < ( )(B :( ( (. $ man cp $ man mkdir

man komutu

tar komutu (Arşiv dosyası oluşturmak) tar c[ v ][ z j ]f tardosyası { dosyalar dizin } : Dizin / Dosyalar 'ı tardosyası adında tekbir dosya haline getirir. c : dizin/dosyalar'dan yeni bir tar dosyası oluştur. v : birleştirilen dosyalar hakkında bilgi ver. z : birleştirilen dosyayı zipleyerek sıkıştır. j : birleştirilen dosyayı b2zip ile sıkıştır. $ tar cvzf odev1.tgz odev1/ a odev1/ a odev1/sonuclar.txt a odev1/program.exe

tar komutu (Arşiv dosyası geri açmak) tar x[ v ][ z j ]f tardosyası : Dizin / Dosyalar 'ı tardosyası adında tekbir dosya haline getirir. x : tardosyası'nı geri aç. v : açılan dosyalar hakkında bilgi ver. z : tardosyası zip ile sıkıştırılmıştı. j : tardosyası b2zip ile sıkıştırılmıştı. $ tar xvzf odev1.tgz x odev1/ x odev1/sonuclar.txt x odev1/program.exe

Uzaktaki Makineye Erişim hostname: Bulunulan makinenin adını gösterir. Çeşitli Bağlantı yöntemleri: Terminal bağlantısı: Ssh: güvenli (şifreli) bağlantı, ilave port taşıtmak mümkün. Telnet, rsh: Güvensiz (şifresiz), eski, kullanmayın. Masaüstü bağlantısı: Vnc : yaygın kullanımda

ssh ssh [-X] [ -l kullanıcı] bilgisayar ssh [-X] kullanıcı@bilgisayar Uzaktaki bilgisayar'a kullanıcı kullanıcısı ile güvenli terminal bağlantısı sağlar. -l (küçük L) ile kullanıcı verilmezse, çalıştıran kullanıcı ile bağlanır. -X ile X görüntüsü aktarımını da sağlar. Örnekler: ssh -X akinci@lnode2.uybhm.itu.edu.tr ssh -X -l akinci lnode2.uybhm.itu.edu.tr ssh -X lnode2.uybhm.itu.edu.tr -l akinci

Uzaktaki Makineye Erişim Bir bilgisayarı internete/ağa bağlamak için IP denilen bir ağ numarasına ihtiyaç vardır. Ancak kolaylık için alan adı denilen isimler kullanılır. Mesala: Makine Alan Adı: lnode1.uybhm.itu.edu.tr IP Adres: 160.75.121.131 Makine Alan Adı: www.google.com IP Adres: 209.85.149.147 Ayrıca bilgisayardaki dışarıdan gelen isteklere cevap verecek her programın bir port numarasına ihtiyacı vardır: ssh port no:22 web server (http) port no:80 x-server port no:6000,6001,...

Uzaktaki Makineye Erişim Bir bilgisayarı internete/ağa bağlamak için IP denilen bir ağ numarasına ihtiyaç vardır. Ancak kolaylık için alan adı denilen isimler kullanılır. Mesala: Makine Alan Adı: lnode1.uybhm.itu.edu.tr IP Adres: 160.75.121.131 Makine Alan Adı: www.google.com IP Adres: 209.85.149.147 Ayrıca bilgisayardaki dışarıdan gelen isteklere cevap verecek her programın bir port numarasına ihtiyacı vardır: ssh port no:22 web server (http) port no:80 x-server port no:6000,6001,...

Uzaktaki Makineye Erişim Bilgisayarlarda ve ağ cihazlarında (router), haberleşmenin IP yada port bilgisine bakarak, haberleşmeye izin veren yada engelleyen programlar vardır. Bilgisayarlardakine firewall (güvenlik duvarı) denir. Genellikle ssh portu açıkken, x-server, rsh vb. daha az kullanılan portlar kapalıdır. Bu sebeble ssh port tunneling / forwarding denen bir özellikle görüntü taşımaya da izin verir. DISPLAY değişkeni normalde görüntü aktarmada kullanılırken, ssh port forwarding ile bu değişkeni ayarlamaya gerek kalmaz. Yani değiştirmeyin, dokunmayın, ellemeyin!

scp Kendi makinamızdan Uzaktaki makinaya: scp { -r dizin dosya } kullanıcı@bilgisayar:hedefdizin Dizin / Dosya 'yı uzaktaki bilgisayar 'ın kullanıcı kullanıcısının hedefdizin 'ine kopyalar. Örnek: scp -r hesap/ mercan@lnode2.uybhm.itu.edu.tr:~/ Uzaktaki makinadan Kendi makinamıza: scp [-r] kullanıcı@bilgisayar:{dizin dosya } hedefdizin Uzaktaki bilgisayar 'ın kullanıcı kullanıcısının Dizin / Dosya 'sını bulunulan makinenin hedefdizin 'ine kopyalar. Dizin için -r gereklidir. Örnek: scp -r mercan@lnode2.uybhm.itu.edu.tr:~/hesap ~/

şifresiz ssh ssh-keygen -t dsa Enter file in which to save the key (/home/mercan/.ssh/id_dsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/mercan/.ssh/id_dsa. Your public key has been saved in /home/mercan/.ssh/id_dsa.pub. The key fingerprint is: 04:be:15:aa:1d:0a:1e:e2:a1:e5:de:93:4f:b1:a6:01 mercan@burasi scp ~/.ssh/id_dsa.pub root@uzaktaki:~/ ssh root@uzaktaki # cat ~/id_dsa.pub >>.ssh/authorized_keys ssh root@uzaktaki #

ssh ile komut çalıştırmak ssh root@uzaktaki ls /tmp Uzaktaki makinada ls /tmp komutunu çalıştırır. ssh root@uzaktaki shutdown -h now Uzaktaki makinayı kapatır.

nano ile dosyamız Windowsta yazdığımız dosyamızı linux'a taşıdık. Nano editörü ile içine bakarken DOS formatından dönüştürüldüğüne dikkat edin! Sadece görüntülenirken dönüştürülüyor dosya değiştirilmiyor.

Bir garip Hata! Subject: Job 179575: <#!/bin/bash^m;#bsub -q tezq^m;#bsub -oo birsh.txt^m;^m;ls -alh^m> Exited Job <#!/bin/bash^m;#bsub -q tezq^m;#bsub -oo birsh.txt^m;^m;ls -alh^m> was submitted from host <cn02> by user <mercan>. Job was executed on host(s) <cn18>, in queue <tezq>, as user <mercan>. </SFS2/users/mercan> was used as the home directory. Your job looked like: ------------------------------------------------------------ # LSBATCH: User input #!/bin/bash^m #BSUB -q tezq^m #BSUB -oo birsh.txt^m ^M ls -alh^m ------------------------------------------------------------ Exited with exit code 126. The output (if any) follows: /bin/bash^m: bad interpreter: No such file or directory

dos2unix dos2unix dosya_ms [dosyalinux] windows dosyası dosya_ms 'i linux formatına çeviririp dosyalinux adıyla kaydeder. Dosyalinux verilmezse yine dosya_ms dosyasının üzerine yazar. Örnek: dos2unix Makefile Makefile_linux dos2unix Makefile

Kullanıcılar Linux'ta her kullanıcının bazı temel özellikleri vardır: Kullanıcı Adı Şifresi Kullanıcı numarası Kullanıcı ana grubu Kullanıcı Uzun (Gerçek) Adı Ev dizini Kullandığı kabuk Kullanıcılar ilave grublara da üye olabilirler. Her sistemde herşeyi yapmaya yetkili bir root kullanıcısı vardır. hpsmh:x:101:501::/opt/hp/hpsmh:/sbin/nologin vtunesag:x:28888:28888::/sbin:/bin/false materials:x:501:0:materials Studio User :/home/materials:/bin/bash

passwd komutu passwd : kullanıcının şifresini değiştirir. Önce eski şifreyi sorar. Sonrasında 2 kez yeni şifreyi ister. $ passwd Changing password for user mercan. Enter login(ldap) password: New UNIX password: Retype new UNIX password: LDAP password information changed for mercan passwd: all authentication tokens updated successfully.

id komutu İd [kullanıcı] : kullanıcı hakkında bilgi verir, kullanıcı verilmezse komutu çalıştıranın bilgilerini gösterir. $ id uid=1022(mercan) gid=5001(mscelebi) groups=12(mail),13(news),2000(gaussian),5001(mscelebi) $ id root uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel) $ id adem uid=1374(adem) gid=5000(starter) groups=5000(starter), 2000(gaussian)

getent komutu getent komutu bilgisayar hakkında çeşitli bilgileri gösterir. getent passwd Geçerli tüm kullanıcı listesini verir. hbm51301:x:641:363:hbm51301:/akdeniz/users/hbm51301:/bin/bash hbm51302:x:642:363:hbm51302:/akdeniz/users/hbm51302:/bin/bash hbm51303:x:643:363:hbm51303:/akdeniz/users/hbm51303:/bin/bash hbm51304:x:644:363:hbm51304:/akdeniz/users/hbm51304:/bin/bash passwd dışında aliases, ethers, group, hosts, netgroup, networks, protocols, rpc, services, shadow parametreleri var.

Dosya Hakları Linux'ta her dosyanın/klasörün bir sahibi vardır. Her dosyanın ayrıca sistemin takip ettiği 3 grup hakları vardır: Dosya Sahibinin Hakları Dosya Grubundaki Diğer Kullanıcıların Hakları Geriye Kalan Diğer Kullanıcıların Hakları Her grubun 3 tip hak bilgisi tutulur: Yazma Hakkı Okuma Hakkı (dizinler için dizin içindeki dosya adlarını görme hakkı) Çalıştırma Hakkı (dizinler için dizine girme hakkı)

ls -l -h ls komutuna -l (küçük L) parametresi verilerek: Erişim Hakları Sahibi Grubu Boyutu (Byte olarak) Değişilik Tarihi Dosya Adı bilgileri görüntülenir. drwxr-xr-x 2 mercan mscelebi 4096 Apr 12 12:56 sonuc_tanima -rw-r--r-- 1 mercan mscelebi 7298402 Apr 12 12:57 target.png -rwxr-xr-x 1 mercan mscelebi 1037 Apr 13 10:52 temizle.sh ls -l komutuna bir de -h parametresi eklersek boyutu uygun birimde gösterir: drwxr-xr-x 2 mercan mscelebi 4.0K Apr 12 12:56 sonuc_tanima -rw-r--r-- 1 mercan mscelebi 7.3M Apr 12 12:57 target.png -rwxr-xr-x 1 mercan mscelebi 1.1K Apr 13 10:52 temizle.sh

chmod chmod [-R] kişilerhaklar { dosya dizin } : Dosya /Dizin erişim haklarını değiştirir. -R ile dizindeki tüm alt dizinleri / dosyaları da değiştirir. Kişiler: u : kullanıcının kendisi g : kullanıcının kendi ana grubu o: bunların dışındaki diğer kullanıcılar a: Tüm kullanıcılar Haklar: w : yazma hakkı r : okuma hakkı, dizinler için dizin içindeki dosya adlarını görme hakkı x: çalıştırma hakkı, dizinler için dizine girme hakkı. + - : + ile hak verilir, - ile hak geri alınır Örnek : chmod -R a+rx hesap/ bu komut ile herkese (a) hesap dizinindeki tüm dosyaları okuma (r) ve çalıştırma (x) hakkı veriliyor.

chown chown [-R] kullanıcı:grubu { dosya dizin } : Dosya /Dizin sahibi olan kullanıcı ve grubunu değiştirir. -R ile dizindeki tüm alt dizinleri / dosyaları da değiştirir. Örnek : chmod -R mercan:workshop hesap/ bu komut ile hesap dizinindeki tüm dosyaların sahibi mercan kullanıcısı ve workshop grubu yapılıyor.

ls -a Linux, ismi. (nokta) ile başlayan dosyaları gizli dosya olarak görür. Normalde bu dosyalar ls komutu ile görüntülemez. ls komutuna -a parametresi verilince gizli dosyaları da gösterir. $ ls matmul mpihello ncnn $ ls -a....bash_history.lsbatch matmul.mpd.conf mpihello ncnn.profile.ssh.viminfo.xauthority

df -h df [-h] : Bilgisayara bağlı diskler hakkında bilgi verir. -h ile disk boyutlarını uygun birim cinsinden verir. $ df Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda3 151717124 25115228 118895116 18% / /dev/sda1 101086 15170 80697 16% /boot none 1990388 0 1990388 0% /dev/shm $ df -h Filesystem Size Used Avail Use% Mounted on /dev/sda3 145G 24G 114G 18% / /dev/sda1 99M 15M 79M 16% /boot none 1.9G 0 1.9G 0% /dev/shm

du -s -h du [-s] [-h] { dosya dizin } : Dizin / Dosya 'nın diskte ne kadar yer kapladığını gösterir. -s : dizinin toplam boyunu göster, ayrı ayrı gösterme. -h : boyut bilgisini uygun birimde göster. $ du -h 14M./dizin_naynisi_ipostaticO3 4.0K./ctube_real 7.3G./dizin_OPAK-50PARCA-CLAHE-CE 14M./dizin_naynisi_ 2.1M./dizin_naynisi_nop_gcc 2.5M./medi3

~/.profile ~/.bashrc Kabuk (shell) başlatılırken bazı dosyalar çalıştırılır. Hangi kabuğu kullandığınıza göre farklı dosyalar çalıştırılır. Sistem geneli için /etc/profile dosyası sonrasında da kişisel ayar dosyası çalıştırılır. Bash için, aşağıdaki dosyalardan sadece ilk bulunan çalıştırılır: $HOME/.profile $HOME/.bash_profile $HOME/.bash_login Şayet kabuk bir login işlemi sonucu açılmamışsa sadece $HOME/.bashrc dosyası varsa o çalıştırılır.

Kabuk (Shell) Ortamı Kabuk (shell), yazdığımız komutları çalıştırabildiğimiz etkileşimli bir ortam sunan bir programdır. Linux /Unix'de birçok kabuk (shell) vardır: sh, bash, csh, tcsh, fish vb. Bash en yaygın kullanılan kabuktur. Bash, sh kabuğunun yeniden GNU projesi kapsamında yeniden yazılması ile oluşmuştur. Sh'dan daha gelişmiş özelliklere sahiptir. Bash'in sistem genelindeki ayarları /etc/profile dosyasındadır. Kişisel ayarlarımız ise kendi ev dizinimizde duran bazı dosyalarda durur.

Kabuk (Shell) Ortamı Linux /Unix kabuklarında (shell) pek çok ayar değişkenler üzerinden yapılır. Bazı ayarlamalar için komutlar olsa da pratikteki pek çok durum için değişkenler üzerinden ayarlama yapılır. Özel değişkenlerin değerlerinin değişmesi kabuğun tamamen farklı davranmasına yol açar. Mesela çalıştırmak istediğiniz komutun hangisi olduğunu belirlenirken $PATH değişkenindeki dizinler, oradaki sıralarına göre kontrol edilir. Bu dizinlerde komutu bulamazsa, komut bulunamadı hatası verir, başka yerlere bakmaz.

Kabuk Değişkenleri Değişken isimleri harfle başlayıp; harf, rakam yada _ karakteri ile devam edebilir. Ingilizce karakterler değişken isminde kullanılabilir. Türkçeye özel karakterler isim için kullanılamaz. Değişken isimlerinin BUYUK harflerden seçilmesi adeti vardır ama mecburi değildir. Harflerin büyük yada küçük olmasına

env env yada printenv komutları ile o an tanımlı değişkenleri ve değerlerini görebiliriz. $ env MANPATH=/SFS2/progs/intel/idbe/10.1.012/ man:/sfs2/progs/intel/cce/10.1.012/man HOSTNAME=cn02 INTEL_LICENSE_FILE=/SFS2/progs/licens es TERM=xterm-color SHELL=/bin/bash

export / echo export DEGISKEN=deger : şeklinde değişken tanımlayabiliriz. Örnek: export FAYDASIZ= Nerede burada orada? echo [DEGISKEN] [yazılar] : terminale yazı yazdırmaya yarar. Değişken değerini yada istediğimiz her hangi bir yazıyı yazdırabiliriz. Örnek: echo $FAYDASIZ

$PATH Değişkeni Komutların aranacağı dizin listesini tutar. Dizinler arasını : karakteri ayırır. Çalıştırmak istediğiniz komutun hangisi olduğunu belirlenirken $PATH değişkenindeki dizinler, oradaki sıralarına göre kontrol edilir. Bu dizinlerde komutu bulamazsa, komut bulunamadı hatası verir, başka yerlere bakmaz. $ export PATH="" $ ls -bash: ls: No such file or directory

which $ echo $PATH /RS/progs/intel/impi/3.1/bin64 :/RS/progs/intel/ Compiler/11.1/069/bin/intel64 :/RS/progs/intel/ Compiler/11.1/069/bin/intel64 :/usr/bin :/bin :/usr/local/bin :/local/bin :/sbin :/usr/sbin :/usr/ ucb :/usr/sbin :/usr/bsd :/usr/bin :/bin :/usr/local/bin :/local/bin :/sbin :/usr/sbin :/usr/ucb :/usr/ sbin :/usr/bsd :/RS/progs/LSF/gui/2.0/bin :/RS/progs/ LSF/perf/1.2/bin :/usr/bin :/bin :/usr/ local/bin :/local/bin :/sbin :/usr/sbin :/usr/ucb :/usr/sbin :/usr/bsd :/RS/progs/LSF/7.0/ linux2.6-glibc2.3-x86_64/etc :/RS/progs/LSF/7.0/linux2.6-glibc2.3-x86_64/bin :/usr/kerberos/bin :/usr/ local/bin :/bin:/usr/bin :/RS/progs/LSF/7.0/ linux2.6-glibc2.3- x86_64/bin/k3di :/AKDENIZ/ users/mercan/bin which komut : Komutun hangi dizinden çalıştırıldığını gösterir. $ which ls

echo echo [-n] [-e] [yazılar] : terminale yazı yazdırmaya yarar. -n ile yazının sonunda aşağı satıra geçmez. -e ile \ ile başlayan özel karakterleri tanır (kullanır). Örnek: ahmet ahmet echo ahmet ; echo ahmet echo -n ahmet ; echo ahmet ahmetahmet echo -e \t1\t2\t3\t4 1 2 3 4

Yazı sınırlama ( ) karakteri ile içerisinde boşluklar bulunan bir yazı, tek bir kelime gibi gruplanabilir. Örnek: mkdir ahmet mercan ls ahmet mercan mkdir ahmet mercan ls ahmet mercan export AHMET= ahmet mercan

Yazı sınırlama ( ) ve $ işareti karakteri ile içerisindeki değişkenler ve bazı ifadeler çözümlenir. Örnek: export AHMET= ahmet mercan mkdir cem $AHMET ; ls cem ahmet mercan Fakat: mkdir $AHMETa aittir ; ls aittir Çözüm: mkdir ${AHMET}a aittir ls ahmet mercana aittir

Yazı sınırlama (') ' karakteri ile içerisinde boşluklar bulunan bir yazı, tek bir kelime gibi gruplanabilir. karakterinden farklı olarak değişkenler çözümlenmez. Örnek: mkdir 'ahmet mercan' ls ahmet mercan mkdir '$AHMET' ls $AHMET

Yazı sınırlama (`) yada $() ` karakteri ile içerisinde yazılanlar çalıştırılarak çıktıları değer olarak alınır. Örnek: export LISTE=`ls dizin` echo $LISTE veli.doc veli.txt resim.jpg sarki.mp3 ses.mp3 Ya da: export LISTE=$( ls dizin ) echo $LISTE veli.doc veli.txt resim.jpg sarki.mp3 ses.mp3

Kaçış karakteri (\) Özel anlamlalı karakterleri kullanmak için, \ karakteri ile onların doğrudan kendi anlamları ile kullanabiliriz. Örnek: *.mp3 echo \*.mp3 Boşluk için: mkdir ahmet\ mercan ; ls ahmet mercan Ya da kendi kendisi için: echo \\ kulanimi \ kullanimi

* işareti * işareti ile herhangi bir şey demiş oluruz. Mesela: ls veli.doc veli.txt resim.jpg sarki.mp3 ses.mp3 ls *.mp3 sarki.mp3 ses.mp3 ls veli* veli.doc veli.txt

{ } işareti { } arasında liste verilebilir. Mesela: ls veli.{doc,txt} veli.doc veli.txt convert resim{.jpg,.png} ls resim.jpg resim.png

[ ] işareti [ ] arasında aralık verilebilir. Mesela: ls dosya[1-7].txt dosya2.txt dosya3.txt dosya6.txt rm /var/log/messages.[1-9] rm /tmp/tmp[0-9][0-9][0-9][0-9]

> işareti Komutun ekrana yazacağını bir dosyaya kaydeder. Dosya varsa onu silip üstüne kaydeder. Mesela: ls veli.{doc,txt} veli.doc veli.txt ls veli.{doc,txt} >veliler ls *.mp3 >mp3listesi.txt Bazen çıktıyı çöpe atmak isteriz: ls mp3listesi.txt >/dev/null

>> işareti Komutun ekrana yazacağını bir dosyaya kaydeder. Dosya varsa mevcutları koruyup, en alta ilave eder. Dosya yoksa yeni bir dosya oluşturur. Mesela: ls Dizin1/*.mp3 >>mp3listesi.txt ls Dizin2/*.mp3 >>mp3listesi.txt ls Dizin3/*.mp3 >>mp3listesi.txt

cat komutu cat kendisine verilen dosyayı ekrana yazar. echo yazıyı yazar, cat dosya içeriğini yazar. Mesela: ls Dizin1/*.mp3 >>mp3listesi.txt ls Dizin2/*.mp3 >>mp3listesi.txt ls Dizin3/*.mp3 >>mp3listesi.txt cat mp3listesi.txt

more ve less komutu more ve less komutları ile bir dosyanın içeriği görüntülenebilir. less more'dan daha fazla özelliğe sahiptir. Ancak daha eski olan more daha yaygındır. Mesela: ls Dizin1/*.mp3 >>mp3listesi.txt ls Dizin2/*.mp3 >>mp3listesi.txt ls Dizin3/*.mp3 >>mp3listesi.txt more mp3listesi.txt

head ve tail komutları head komutu dosyanın başından n adet satırı görüntüler. tail komutu dosyanın sonundan n adet satırı görüntüler. Mesela: head -10 mp3listesi.txt tail -5 mp3listesi.txt

Dikkat Çok Önemli! Satır İşleme

sort komutu sort kendisine verilen dosyayı sıraya dizerek ekrana yazar. -n ile sayısal sıralama yapar. -r ile ters sıralama yapar. -k ile başlangıç kelimesi yerine istenilen sütundaki kelimelere göre sıraya dizer. Mesela: sort mp3listesi.txt Bir sarki.mp3 Bir Sezen Aksu Sarkisi.mp3 Muazzez Abaci.mp3 Sezencik.mp3 sezen aksudan türküler.mp3

grep komutu grep kendisine verilen dosyayı ekrana yazarken verilen kritere göre eleme yapar. -v ile kritere uymayanları gösterir. -i ile büyük/küçük harf ayırmadan filtreler: grep Sezen mp3listesi.txt Sezencik.mp3 Bir Sezen Aksu Sarkisi.mp3 grep -i Sezen mp3listesi.txt Sezencik.mp3 Bir Sezen Aksu Sarkisi.mp3 sezen aksudan türküler.mp3 grep -v root /etc/passwd nobody:*:-2:-2:unprivileged User:/var/empty:/usr/bin/false daemon:*:1:1:system Services:/var/root:/usr/bin/false

grep komutu --color ile kritere uyanları renkli gösterir. -r ile alt dizinleri de arar. -n ile bulduğu dosyanın adını ve satır numarasını da yazar. 160.75.90.50 ifadesini /etc dizininde aratalım: grep -nr --color 160.75.90.50 /etc /etc/httpd/access:33: Server 160.75.90.50 /etc/httpd/logs/pma-error_log.2:1: host 160.75.90.50 is missing /etc/httpd/logs/pma-error_log.2:8: host 160.75.90.50 is missing

RegEx (Regular Expressions) Aranacak bir ifadeyi (metni) sabit/kesin/net bir şekilde yazamadığımızda ama belli şartlara uyan metinleri ifade etmek istediğimizde kullanabileceğimiz bir standartdır. Mesela, Büyük B harfi ile başlayan herşey demek için: B.*. herhangi bir karakter demektir. B.N BiN B?N B1N * kendisinden önceki ifadenin 0 ila sonsuz sayıda tekrarı H* H HH HHHHHHHH [ ] içerisinde aralık verilir. dosya[0-9] dosya1 dosya9 ^ Satır Başı ^Ahmet Satırın başında Ahmet olan demek $ Satır Sonu ^$ Satır Boş demek

RegEx (Regular Expressions) karakterinin sağı yada solundaki demektir. Ahmet Mehmet Ahmet Mehmet \ RegEx'de özel karekterleri yazmak için 12\$ 12$ (Satır sonunda 12 değil!) \( \) içerisinde verilen ifadeyi başka yerde kullanmak için \(dosya[0-9]\) daha sonra \1 (yada kaçıncı ise \2 vb.) *** RegEx vim editöründe de geçerlidir.

grep komutu --color ile kritere uyanları renkli gösterir. -r ile alt dizinleri de arar. -n ile bulduğu dosyanın adını ve satır numarasını da yazar. -e ile yada -E ile verilen regex ifadesini uygular. 160.75.90.50 ifadesini /etc dizininde aratalım: grep -nr --color '^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' /etc /etc/httpd/logs/admin-access_log.2:40826:10.0.30.9 - - [03/Jan/2015:06:56:40 +0200] "GET /ld50_jobs.html HTTP/1.1" 200 27572 /etc/httpd/logs/admin-access_log.2:40827:10.0.30.9 - - [03/Jan/2015:06:56:41 +0200] "GET /ld50_bhost.html HTTP/1.1" 200 141820 /etc/httpd/logs/admin-access_log.2:40828:10.0.30.9 - -

sed komutu sed kendisine verilen dosyayı satır satır işleyerek -e yada -r ile regex kurallarını uygular. Sonucu ekrana yazar. -i parametresi ile dosya üzerinde değişiklik yapar. Bul-Değiştir: s/aranan/yenideger/g Mesela: sed -e 's/:/\t/g' /etc/passwd root x 0 0 /bin/sh daemon x 10 10 /usr/bin/false nobody x 77 10 /usr/bin/false

sed komutu File0013 File1023 File99 İçeriği yukarıdaki gibi olan dosyadaki FileXXX ifadelerini XXXnolu-dosya şeklinde değiştirelim: sed -r 's/file([0-9]*)/\1-nolu-dosya/g' 0013-nolu-dosya 1023-nolu-dosya 99-nolu-dosya

awk komutu awk kendisine verilen dosyayı satır satır işleyerek istenilen sıradaki kelimeleri yazar. -F ile sütun ayırıcı verilir. Satırı sütun ayıracı ile sütunlara ayırır. Satırın tümü $0, ilk sütun $1, sonra $2, $3... $NF şeklinde numaralandırılır. Aslında çok gelişmiş bir dili vardır. Çok boyutlu diziler, matematik fonksiyonları, döngüler, vb. Bir programlama dilinde olması gereken her türlü özellik mevcuttur. Mesela: root /bin/sh awk -F: '{print $1, $7}' /etc/passwd daemon /usr/bin/false nobody /usr/bin/false

awk komutu İçinde Ahmet geçen satırları yazdırmak: awk '/Ahmet/ {print $0}' liste.txt Cem Ahmet Mercan 42 Kabuğu /bin/false ayarlı kullanıcılar: awk -F: '$7=="/bin/false"{print $0}' /etc/passwd ldap:x:55:55:ldap User:/var/lib/ldap:/bin/false İkinci sütunu para miktarı olan listedeki para değerlerin toplamı: awk 'BEGIN{toplam=0;} {toplam+=$2;} END{print Toplamı=,toplam;}' liste.txt Toplamı= 3500

Dikkat Satır İşleme Sonu!

; işareti Komutlar arasında ; konularak arkası arkasına çalışmaları sağlanır. Mesela: ls veli.{doc,txt} ; mkdir ahmet ; ls veli.doc veli.txt ahmet veli.doc veli.txt

&& işareti Komutlar arasında && konularak başarılı olunduğu sürece arkası arkasına çalışmaları sağlanır. Mesela: mkdir ahmet && cd ahmet && mkdir iceride tar xvfz ahmet.tgz && rm ahmet.tgz

& işareti Çalıştırılan komutu arkaplana atar. Böylece yeni komut girilebilir olur. Mesela: xterm & xterm & ls xterm *** Dikkat arka plana atılsa da kabuk kapatılınca kapatılır.

( ) ile gruplama Çalıştırılacak komutun gruplar. Mesela: xterm & && xterm & && ls -bash: syntax error near unexpected token `&&' ( xterm & ) && ( xterm & ) && ls veli.doc veli.txt

işareti Komutlar arasında konularak birinin çıktısının diğerinin girdisi olması sağlanır. Pek çok komut bu tarz bir girdiyi kullanabilir. Mesela: ls grep doc veli.doc cat mp3listesi.txt grep Sam sort -r Sevval Sam.mp3 Samanyolu.mp3 bhosts -w grep ok cn02 cn08

history history : Terminalde geçmişte çalıştırılan komutları listeler. $ history 1 cd /RS/users/mercan/ 2 ls -al /RS/users/mercan/ 3 ls -al /RS/users/mercan/hbm514/ 4 ls -al /RS/users/mercan/hbm514/ 5 ls -al /RS/projects/hbm514/mercan

Geçmişte Arama Ctrl-r : Bu tuşlara basıldıktan sonra yazılan kelimeler geçmiş listesinde aranır.!kelime : Kelime ile başlayan son komutu çalıştır.!sayı : Geçmiş listesindeki sayı nolu komutu çalıştır.!! : Geçmiş listesindeki son komutu getirir. echo!!!# : Geçmiş listesindeki son komutun ilk kelimesi.!^ : Geçmiş listesindeki son komutun ikinci kelimesi.!$ : Geçmiş listesindeki son komutun son kelimesi.

Değişken işleme export yazi= ABCDEFG_ABCDEFGz echo ${yazi} --> ABCDEFG_ABCDEFGz 3. karakterden sonrasını al: echo ${yazi:3} --> DEFG_ABCDEFGz 3. karakterden sonra 7 karakter al: echo ${yazi:3:7} --> DEFG_AB Sondan 4 karakter al: echo ${A:(-4)} --> EFGz Baştan en kısa A*F kısmını sil: echo ${A#A*F} --> G_ABCDEFGz Baştan en uzun C*F kısmını sil: echo ${A##A*F} --> Gz

Değişken işleme export A= ABCDEFG_ABCDEFGz Sondan en kısa C*z kısmını sil: echo ${A%C*z} --> ABCDEFG_AB Sondan en uzun C*z kısmını sil: echo ${A%%C*z} --> AB Baştaki FG geçen ilk yeri xx yap: echo ${A/FG/xx} --> ABCDExx_ABCDEFGz FG geçen tüm yerleri xx yap: echo ${A//FG/xx} --> ABCDExx_ABCDEFGz export Sayi=3; ((Sayi=Sayi+4)) let Sayi=Sayi / 3 #Sonuc=2

convert komutu Resim dosyasını çeşitli formatlara dönüştürür. Mesela: convert resim.jpg resim.png Animasyon da yapabilir, Mesela animated gif için: convert resim*.jpg resim.gif Ya da video oluşturmak için: convert resim*.jpg resim.avi Dahası resim üzerinde değişik işlemler de yapabilir. Mesela boyut değişikliği gibi: Dahası convert resim.png -thumbnail 250x250 kucuk.jpg

find komutu Verilen dizindeki verilen şartlara uyan dosyaları bulur. -name :aranması istenen dosya adı verilir. -iname :büyük/küçük harf ayırımı olmadan isim verilir. -type :dosya tipi vb. verilebilir. (d, f) -exec :bulunan dosya üzerinde istenen komut çalıştırılır. Burada {} yerine dosya adı konularak çalıştırılır. -atime :erişim zamanı, normalde gün (s, m, h, d, w) -mtime :değişme zamanı, -ctime :oluşturma zamanı, -maxdepth :aranacak dizin derinliği -size :dosya büyüklüğü,normalde byte (k,m,g,t,p)

find komutu, 2 -and :ve, şartları birleştirmek için -or :or, şartları birleştirmek için ( ) :ile parametre gruplama yapılabilir.! :değil, parametre tersi için. -path :bash tipi ifadeler ile dosya adı (dosya[1-9] gibi) -regex :regular expresion ile dosya adı -iregex :büyük/küçük harf duyarsız regular expresion -print : ekrana dosya adını yaz, normalde zaten yapar. Parametrelere değer verilirken verilen değere tam eşit olması gerekir. Ancak - ile verilenden az olanlar, + ile verilenden fazla olanlar denebilir.

find komutu, 3 Mesela, / dizininde adının sonu mp3 olanları bul: find / -name *.mp3 /mp3/sevval Sam.mp3 /home dizininde 1gigabyte'dan büyük dosyaları bul: find /home -size +1G Bulunulan dizindeki adında core geçen dosyaları rm komutu ile sil: find. -iname *core* -exec rm {} \; Bulunulan dizindeki 8 haftadan fazladır erişilmeyen ve 16 haftadan eski dosyaları göster: find. \( -atime +8w -and -ctime +16w \) -print

for komutu Verilen edeki her bir eleman için bir kez döngü çalıştırılır. Mesela: for i in *.jpg ; do echo $i; cp $i yedekdizini/ ; done ahmet.jpg resim.jpg limit.c find. -iname *.c -exec cp {} /yedekdizini \; hesapla.c

for komutu 2 Mesela, : for i in `awk '{print $1;}' /etc/passwd grep -v root` do echo 'Kullanıcı:' $AD tar cfz /yedek/${ad}.tgz /home/$ad done ahmet ali Uzantısı png olan dosyaları eps formatına çevir: for i in *.png ; do convert $i ${i%png}eps ; done

Script dosyası Bir dosyanın ilk satırı: #!/bin/bash İle başlıyorsa bu dosyadaki komutları bash ile çalıştır demektir. İçerisine istediğimiz bash komutlarını yazarak istediğimiz işleri yapan bir program yazabiliriz. # ile başlayan satırlar normalde yorum satırıdır. Bu dosyayı: source./dosya.sh diyerek çalıştırabiliriz. Ancak çalıştırma hakkını verirsek: chmod +x./dosya.sh Doğrudan da çalıştırabiliriz:./dosya.sh

Script dosyasına parametre Bir script çalıştırırken parametre verebiliriz:./donustur.sh./dizin jpg png Sonrasında bu parametrelere $1 $2 $3... diyerek ulaşabiliriz: #!/bin/bash cd $1 && for i in *.$2 do echo $i donusturuluyor. convert $i ${i%.${2}}.$3 done echo Bitti...

if komutu ( man test ) if komutu ile şartlı işlemler yapabiliriz: if [ a = b ] then echo a b'ye esittir. else echo a b'den farkli fi Burada [ ] parantezler mutlaka boşluklu yazılmalıdır. [a=b] şeklinde yazılırsa hata oluşur. if komutu testin sonucu 0 ise doğru, 1 yada başka bir sayı ise yanlış olarak değerlendirir. C dekinden farklı!

if komutu dosya testleri -e ad :ad isimli bir dosya/dizin var ise doğru. -f ad :ad isimli sıradan bir dosya var ise doğru. -d ad :ad isimli bir dizin var ise doğru. -s ad :ad isimli bir dosya/dizin var ve 0 byte'tan büyükse. -r ad :ad isimli bir dosya/dizin var ve okunabilir ise doğru. -w ad :ad isimli bir dosya/dizin var ve yazılabilir ise doğru. -x ad :ad isimli bir dosya/dizin var ve çalıştırılabilir ise. Mesela: if [ -d $DIZIN ] ; then cd $DIZIN ; #birşeyler yap fi

if komutu metin testleri -z değer :değer 0 uzunlukta ise doğru. -n değer :değer 0 uzunlukta değilse doğru. değer :değer NULL değilse doğru. değer1 = değer2 :değer1, değer2'ye eşitse doğru. değer1!= değer2 :değer1, değer2'ye eşit değilse doğru. değer1 > değer2 :değer1, değer2'den büyükse doğru. değer1 < değer2 :değer1, değer2'den küçükse doğru. Mesela: if [ $DIZIN = /home/mercan ] ; then cd $DIZIN ; #birşeyler yap fi

if komutu sayı testleri n1 -eq n2 n1 -ne n2 n1 -gt n2 n1 -ge n2 n1 -lt n2 n1 -le n2 :n1 ve n2 eşit ise. :n1 ve n2 eşit değil ise. :n1, n2 'den büyük bir sayı ise. :n1, n2 'den büyük yada eşit bir sayı ise. :n1, n2 'den küçük bir sayı ise. :n1, n2 'den küçük yada eşit bir sayı ise. Mesela: if [ $DOSYASAYISI -ge 12 ] ; then echo Bir suru dosya var ; #birşeyler yap fi

if komutu mantıksal birliktelik ifade1 -a ifade2 :ifade1 ve ifade2 arasında ve(and) işlemi. ifade1 -o ifade2 :ifade1 ve ifade2 arasında veya(or) işlemi.! ifade : tersi (not) işlemi. Doğru ise yanlış. ( ifade ) : gruplamak için, içi doğru ise doğru. Mesela: if [ ( $DOSYASAYISI -ge 12 ) -a ( $SAY -lt 36 ) ] ; then echo Bir suru dosya var ; #birşeyler yap fi

until ve while komutuları until :test değeri yanlış olduğu sürece tekrar yap until ( -z $AD ) do #birşeyler yap done while :test değeri doğru olduğu sürece tekrar yap while read i j do cp $i $j done <dosyalistesi.txt

Crontab crontab -e #Dak. Saat Gün Ay Haftanın Günü #0-59 0-23 1-31 1-12 0-6 # hergün saat 15:00'da çalış 0 15 * * * /root/saat15-oldu.sh # hergün 8:30, 16:30, ve 22:30'da çalıştır. 30 8,16,22 * * * /RS/istatistik/istatistik_al.sh # her 6 dakikada bir (60/10=6) çalış */10 * * * * /root/server_parca_degisimi.sh # her pazar saat 3:00'da çalış 0 3 * * 0 /yedek/yedek-al.sh