Bash devam

İçindekiler

1.0 Önsöz
2.0 Giriş
3.0 Komutlar
        3.1 less
        3.2 grep
        3.3 wc
        3.4 df ve du
        3.5 updatedb ve locate
        3.6 ln
        3.7 chmod, chgrp ve chown
                3.7.1 Dosyanın sahibi ve grubunu atamak
                3.7.2 Dosyanın erişim haklarını atamak
        3.8 export
        3.9 wget
        3.10 rev
4.0 Belgeler

sürüm 1.0 - Mart 2006

1.0 Önsöz

Bu yazı Can Kavaklıoğlu tarafından, Pozitif Pc e-dergisinin üçüncü sayısı için yazılmıştır.

Yazıdaki hataları, önerileri, soruları ve/veya yazının oluşturduğu tepkileri yukarıdaki bağlantıdan ulaşabileceğiniz eposta adresine yollarsanız pek de güzel olur.

Herzamanki gibi bu yazıda yazanlar etkisinde kalarak yaptığınız hareketlerden yazar sorumlu değildir.

2.0 Giriş

Bu yazı Bash başlangıç yazısında anlatılanların bilindiği varsayılarak, o yazıdaki bilgilere ek olarak yazılmıştır. Bu yazıda anlaşılamayan noktalar varsa, başlangıç yazısı yardımcı olabilir.

3.0 Komutlar

Konsolda kullanabileceğiniz komut sayısı ve bu komutların yapabileceklerinin sayısı gerçekten oldukça çoktur. Pratik bir yolla kaç komut yazabileceğinizi, komut satırında hiçbirşey yazmadan iki kere tab tuşuna basarak öğrenebilirsiniz. Mesela benim şuanda kullandığım sistemde komut satırında iki kere tab tuşuna bastığımda şu mesaj çıkıyor:

Display all 2418 possibilities? (y or n)

Bu demektir ilk komut olarak kullanabileceğim 2418 tane komut var. (Aynı işlemi root kullanıcısı olarak yaptığımda 2790 cevabını aldım) Bu ürkütücü rakam Linux sistemlerinin ne kadar gelişmiş olabileceğinin de bir göstergesidir. Şimdi bu komutlardan birkaç oldukça önemli olan birkaç tanesinin detaylarına bakalım.

3.1 less

Komut satırında işlem yaparken çoğunlukla ekranda görüntüleyebildiğimiz satır sayısından fazla sayıda satıra sahip belgelerle yada çıktılarla uğraşırız. Eğer less gibi bir yazılım kullanmazsak ekranımızın satır sayısını aşan çıktılarda yukarıya bakmanın tek yolu "shift+pageup" yada "shift+pagedown" tuşlarını kullanarak ekranı yukarı yada aşağı kaydırmaktır. Deneyenlerin görebileceği gibi bu genelde kullanışlı olmamaktadır.

Bu noktada imdadımıza less ve | (dik çizgi, "pipe") işleçi ("operator") yetişir. Mesela Debian sistemimizdeki Debian tüzüğünü okumak istersek, less olmadan kullanabileceğimiz yollardan birisi cat komutudur:

> cat /usr/share/doc/debian/constitution.txt
>
                  Constitution for the Debian Project (v1.2)

   Version 1.2 ratified on October 29^th, 2003. Supersedes Version 1.1
   ratified on June 21^st, 2003, which itself supersedes Version 1.0
   ratified on December 2^nd, 1998.

.... 25 sayfa sonra ...

   part of the constitution. It may be used only to aid interpretation in
   cases of doubt.
>

Bu çıktı içerisinde "shift+pageup/down" tuşları ile dolaşmak gerçekten sıkıcı olabilir. Bunun yerine less komutunu kullanırsak:

> less /usr/share/doc/debian/constitution.txt
...

less dosyanın arabelleğine koyduğu kısmında ister klavyedeki ok tuşlarıyla, ister "pageup/down" tuşlarıyla, ister less in kendi kısayol tuşları ile rahatça dolaşabilirsiniz, "home", "end" klavyedeki yada less in kendi kısayolları tuşlarını kullanabilirsiniz. Hatta belge içinde arama da yapabilirsiniz. Arama yapmak için / ("shift+7") karakterinden sonra aradığınız harf dizisini yazıp giriş ("enter") tuşuna basmanız gereklidir. Bu işlemi yaptıktan sonra, aramanın sonraki eşlemesini görmek için "n" tuşuna basmanız yeterlidir. Aramayı dosya içinde geriye doğru yapmak isterseniz "?" ve giriş tuşuna basmanız yeterlidir. Bu sefer "n" tuşu sizi dosya içinde geriye götürecektir.

less in kısayollarını görmek için "h" tuşuna basmanız gereklidir. Yardım ekranından yada kendi dosyanızdan çıkmak içinse "q" tuşuna basmanız gereklidir. Diğer kısayollar ve özellikler için ("man less" komutunu kullanarak) less in kılavuz sayfasına bakabilirsiniz.

less i dosya okumak için direk olarak kullanmanın yanında diğer komutların çıktısını daha rahat görmek için "|" işleçi ile beraber kullanabilirsiniz. Mesela genelde kalabalık olan /usr/bin klasörünün elemanlarını görmek istediğimizde ls komutunu kullanabiliriz:

> ls /usr/bin
411toppm                                 mmount
822-date                                 mmove

...50 den fazla sayfa sonra...

mktexpk                                  zipsplit
mlabel                                   zxpdf
mmd

Bu çıktıyı less kullanarak çok daha rahat görüntüleyebiliriz:

> ls /sbin/ | less
...

"|" işleçini daha sonra da göreceğiz, çıktıları diğer programlara yollamak için kullanılan oldukça işe yarar bir işleçtir.

3.2 grep

Çıktılar genelde gereğinden fazla uzun olduğu ve kullanıcıların da belli şeyler aradığı için, less i çalıştırıp arama yapmak yerine, bazı zamanlarda çıktıdan sadece belli bir ifadenin geçtiği satırları çıkarıp görüntülemek daha kullanışlı olur. Mesela root kullanıcısı olarak, bugün sistemin en son kütük ("log") dosyasındaki kayıtlı dosyasına kaydedilmiş olayları görüntülemek istersek iki yol izleyebiliriz. Birincisi less kullanarak dosyayı açtıktan sonra gözle yada arama yaparak aradığımız bilgiye ulaşmayı deneyebiliriz. Yada diğer bir yol olarak, şöyle bir grep satırı kullanabiliriz:

> grep "^Mar 28" /var/log/syslog
...

Eğer çıktı hala çok büyükse, aradığımız düzenli ifadeyi ("regular expression") biraz daha sınırlamaya çalışabiliriz yada yine less kullanarak çıktıyı gözden geçirebiliriz. Mesela saat 11de yapılmış girdileri görüntülemek istersek şöyle bir satır kullanabiliriz.

> grep "^Mar 28 11" /var/log/syslog
...

Yada istediğimiz bir program tarafından, örnek olarak anacron programı tarafından, yapılmış çıktıları görüntülemek istersek de şöyle bir satır kullanabiliriz:

> grep anacron /var/log/syslog

"|" işleçi ile iki grep komutunun çıktısını birbirine de yollayabiliriz. Mesela bugün anacron tarafından yapılan kayıtları görüntülemek için, önce bugünkü çıktıları elimize alıp, ondan sonra da anacron un yaptığı kayıtları eleyebiliriz:

> grep "^Mar 28" /var/log/syslog | grep anacron /var/log/syslog

grep i diğer bir grep in çıktılarını elemek için kullandığımız gibi herhangi başka bir komutun da çıktısını elemek için kullanabiliriz. Mesela /usr/bin klasöründeki z harfi ile başlayan komutların listesini almak için şöyle bir komut çalıştırabiliriz:

> ls /usr/bin | grep "^z"
zdump
zed
zedx
zeisstopnm
zenity
zip
zipcloak
zipgrep
zipinfo
zipnote
zipsplit
zsh
zsoelim
zxpdf

Belirttiğimiz düzenli ifadenin dışındaki satırları seçmek için grep in -v seçeneğini kullanabiliriz. Mesela bugünden önce yapılmış kayıtları seçmek için şöyle bir komut kullanabiliriz:

> grep -v "^Mar 28" /var/log/syslog
...

Eşlenen satırlar yerine kaç satırın eşlendiğini bulmak istersek -c seçeneğini kullanabiliriz:

> grep -v "^Mar 28" /var/log/syslog
32
>

3.3 wc

Dosyaların içindekiler hakkında sayısal bilgilere ulaşmak için wc komutunu kullanabiliriz. wc komutunun kullanımı oldukça basittir. Dosyadaki bayt sayısını öğrenmek için -c yada --bytes, karakter sayısını öğrenmek için -m yada --chars, satır sayısını öğrenmek için -l yada --lines, kelime sayısını öğrenmek için -w yada --words, en uzun satırın karakter sayısını öğrenmek için -L yada --max-line-length seçeneklerini kullanabilirsiniz. Mesela Debian sözleşmesi için bu değerleri bulalım:

> wc -c /usr/share/doc/debian/constitution.txt
30233 /usr/share/doc/debian/constitution.txt
>
> wc -m /usr/share/doc/debian/constitution.txt
30233 /usr/share/doc/debian/constitution.txt
>
> wc -l /usr/share/doc/debian/constitution.txt
607 /usr/share/doc/debian/constitution.txt
>
> wc -w /usr/share/doc/debian/constitution.txt
4516 /usr/share/doc/debian/constitution.txt
>
> wc -L /usr/share/doc/debian/constitution.txt
73 /usr/share/doc/debian/constitution.txt
>

Yine "|" işleçi sayesinde ilginç bilgilere ulaşabiliriz. Mesela bugün içerisinde anacron dosyası kaç satır çıktı oluşturmuş:

> grep "^Mar 28" /var/log/syslog | grep anacron /var/log/syslog | wc -l
7
>

3.4 df ve du

Komut satırından dosya disklerinizin doluluk durumunu ve dosyaların boyutlarını öğrenmek için du (disk kullanımı "disk usage") ve df (boş disk "disk free") komutlarını kullanabilirsiniz.

> df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/hda13 4806904 4164560 398160 92% /
/dev/hda7 5036284 4458916 321536 94% /mnt/5Gig
/dev/hda1 5106676 4854748 251928 96% /mnt/win-c
/dev/hda5 8177128 3409532 4767596 42% /mnt/win-d
/dev/hda15 9388800 2948416 6440384 32% /mnt/win-g
/dev/hda10 4806904 2184504 2378216 48% /mnt/4Gig
tmpfs 354940 4 354936 1% /dev/shm

df komutunu daha anlaşılır bir şekilde görüntülemek için -h seçeneğini kullanmak gerekir:

> df -h

Filesystem          Size  Used Avail Use% Mounted on
/dev/hda13 4.6G 4.0G 389M 92% /
/dev/hda7 4.9G 4.3G 314M 94% /mnt/5Gig
/dev/hda1 4.9G 4.7G 247M 96% /mnt/win-c
/dev/hda5 7.8G 3.3G 4.6G 42% /mnt/win-d
/dev/hda15 9.0G 2.9G 6.2G 32% /mnt/win-g
/dev/hda10 4.6G 2.1G 2.3G 48% /mnt/4Gig
tmpfs 347M 4.0K 347M 1% /dev/shm
du komutunu ise disk üzerindeki tek dosyaların ve klasörlerin boyutunu görüntülemek için kullanabilirsiniz. Bulunduğunu

> du
18948   ./3
128     ./kek/images
288     ./kek
24      ./keko
4       ./sil
4       ./sil2
4       ./den/bb
4       ./den/b
4       ./den/d
4       ./den/dosya
20      ./den
17864   ./1
18852   ./2
56036   .
>

Tek başına kullanıldığında df gibi du nun da çıktısını anlamak zor olabilir. Bu yüzden her klasörün içindeki klasörler için ayrı bir değer yerine, her klasör için bir değer verilmesini sağlayan -s seçeneğini, ve df de kullandığımız birimleri anlaşılır hale getiren -h seçeneğini kullanmamız iyi olacaktır.

> du -sh
55M     .
>

Bu komut bir fazla genel oldu; çünkü aldığımız çıktı sadece bulunduğumuz klasörü kastetti. Bunun yerine bulunduğumuz klasördeki dosyaları kastetmek için * işleçini kullanmamız gereklidir:

> du -sh *
18M     1
19M     2
19M     3
4.0K    a.c
8.0K    a.out
20K     den
288K    kek
4.0K    keki
4.0K    keki.pl
24K     keko
4.0K    kk.pl
4.0K    sil
4.0K    sil2
4.0K    sil3
>

Eğer dosyalarınızı boyutlarını daha şık bir şekilde görüntülemek istiyorsanız, xdiskusage programını kullanabilirsiniz.

3.5 updatedb ve locate

Dosya sisteminizdeki aradığınız dosyaları bulmak için updatedb komutunu kullanabilirsiniz. Sistemdeki bütün dosyaların aranabilmesi için root kullanıcısı tarafından çalıştırılması gereken updatedb, dosya sistemine bakarak bir veri tabanı oluşturur. Bundan sonra locate komutunu kullanarak çok hızlı bir şekilde dosyalarınızın hangi konumlarda olduklarını bulabilirsiniz.

Dikkat edilmesi gereken bir nokta updatedb nin güncelliğidir. Eğer bir dosyanın yeri updatedb çalıştırıldığından sonra değiştirilirse, bir sonraki updatedb komutu çalıştırılmasına kadar locate komutu o dosyanın eski yerini gösterecektir.

3.6 ln

Normal dosya ve klasörlerden sonra ele alacağımız üçüncü dosya tipimiz de bağlardır. Bağlar normal bağ ("hard link") ve sembolik bağ ("symbolik link") olarak ikiye ayrılırlar. Şimdilik sadece sembolik bağlara bakacağız.

Örnek klasörümüzde, "hedef" dosyasına işaret eden "c" isimli bir sembolik bağ oluşturmak için şöyle bir yol izleyebiliriz:

> ls -l
drwxr-xr-x  2 can can 4096 Feb 20 02:00 dosya
-rw-r--r-- 1 can can 0 Feb 20 03:01 hedef
-rw-r--r-- 1 can can 0 Feb 20 03:01 kaynak
> ln -s c hedef
> ls -l
drwxr-xr-x  2 can can 4096 Feb 20 02:00 dosya
lrwxr-xr-x 1 can can 5 Mar 28 14:11 c -> hedef
-rw-r--r-- 1 can can 0 Feb 20 03:01 hedef
-rw-r--r-- 1 can can 0 Feb 20 03:01 kaynak
>

Bundan sonra c sembolik bağını, hedef yerine herhangi bir yerde kullanabiliriz. Mesela c sembolik bağını kullanarak önceden boş olan hedef dosyasının içine yazı yazalım.

> echo "selam" > c
> cat hedef
selam
>

yada

> cat c
selam
>

3.7 chmod, chgrp ve chown

Linux dosya sisteminin temel noktalarından birisi her dosyanın sahip olduğu değiştirme/erişim/çalıştırma haklarıdır. Dosyaya atanmış kullanım haklarına göre sistem herhangi bir kullanıcının söz konusu dosyaya erişim hakkı olup olmadığını belirler. Hemen bir örnek ile konuyu açalım:

> ls -l
drwxr-xr-x  2 can can 4096 Feb 20 02:00 dosya
lrwxr-xr-x 1 can can 5 Mar 28 14:11 c -> hedef
-rw-r--r-- 1 can can 0 Feb 20 03:01 hedef
-rw-r--r-- 1 can can 0 Feb 20 03:01 kaynak
>

Burada gördüğümüz birkaç bilgi var. Öncelikle en sağda dosya yada klasörün isimlerini görüyoruz. Onun yanında dosyanın değiştirilme tarihi, tarihin de yanında dosyanın bayt cinsinden boyutunu görüyoruz.

Örneklerimizde 2 yada 1 olan değerler ise dosyaya yapılmış bağlantıları belirtir (sembolik bağlantılar sayılmaz), şimdilik bu değerle bir işimiz olmayacak.

3.7.1 Dosyanın sahibi ve grubunu atamak

Dosya haklarını ilgilendiren kısımlar birinci alan ve kullanıcı isimleri (3. ve 4.) yazan alanlardır. Kullanıcı isimlerinden birincisi dosyanın sahibini, ikincisi ise dosyanın ait olduğu kullanıcı grubunu belirtir.

Dosyanın ait olduğu kullanıcı chown komutu ile, dosyanın ait olduğu grup chgrp komutu ile değiştirilebilir. Bu komutları dikkatle kullanmanızda fayda vardır, ulaşımınız olmayan bir kullanıcıya dosyanızın sahipliğini devrederseniz, dosyanızı diğer kullanıcının izni olmadan geri alamazsınız. chgrp ve chmod için de bu durum geçerlidir.

(root kullanıcısının şifresini bildiğimiz bir sistemde bunları denersek dosyamızı geri alabiliriz)

> chown root hedef
>

Komutundan sonra "hedef" dosyasını incelersek:

> ls -l hedef
-rw-r--r--  1 root can 6 Mar 28 14:48 hedef
>

Üçüncü alanın "root" olduğunu görürüz. Aynı şekilde chgrp komutunu da kullanabiliriz:

> chgrp root hedef
> ls -l hedef
-rw-r--r--  1 root root 6 Mar 28 14:48 hedef
>

root kullanıcısı olarak şu komutları verirsek dosyamızı geri alabiliriz:

> chown can hedef
> chgrp can hedef
> ls -l hedef
-rw-r--r--  1 can can 6 Mar 28 14:48 hedef
>

3.7.2 Dosyanın erişim haklarını atamak

"ls -l" komutunun çıktısındaki birinci alan, dört alt bölümden oluşur. Bu alanlarda kullanılabilecek karakteler şöyledir:

Karakter Konumu
Olasılıklar
Anlam
1
d
"Directory", klasör

l
"symbolic Link", sembolik bağ

s
"Socket"

p
"named Pipe"

-
"regular file", normal dosya

c
"Character (unbuffered) device special file"

b
"Block (buffered) device special file"



2-10
r
"Read", okuma

w
"Write", yazma

x
"eXecute", çalıştırma

-
hiçbiri

Birinci karakter tabloda belirtildiği gibi dosyanın tipini belirtir.

Birinciden sonraki karakterler üçerli gruplara ayrılmışlardır. Her konumdaki karakter ya aşağıda denk gelen karakter ile verilmiş bir hakkı yada kısa çizgi (-) karakteri ile veirlmemiş bir hakkı temsil eder.

Hangi Kullanıcı
Dosyanın Sahibi
Dosyanın Grubu
Diğerleri
Olası Haklar
r
w
x
r
w
x
r
w
x


"kaynak" isimli dosyayı inceleyelim:

> ls -l kaynak
-rw-r--r--  1 can can 0 Feb 20 03:01 kaynak
>

Birinci karakter (-) "kaynak" ın normal bir dosya olduğunu gösteriyor.

Ondan sonraki dosya sahibinin haklarını bildiren kısım, "rw-" olarak belirtilmiş. Bu demek ki dosyanın sahibi dosyayı okuyabilir, dosyaya yazabilir, ancak dosyayı çalıştırılamaz. Dosyanın çalıştırılamaz olması, daha çok dosyanın çalıştırılabilir olmadığını belirtmek için kullanılır; zira dosyanın sahibi olan kullanıcının, sahibi olduğu bir dosyayı çalıştıramaması (hakları uygun olarak düzenledikten sonra) gibi bir durum söz konusu olamaz.

"r--" olarak belirtilmiş ilk kısım dosyaya atanmış olan grup (can) ile aynı grupta bulunan kişilerin bu dosyaya ulaşırken sahip oldukları kuralları gösterir. "w" ve "x" harfleri yerine "-" harfi kullanıldığı için bu kişiler sadece "r" ile belirtilmiş okuma hakkına sahiptirler. Diğer bir değişler "can" grubunda olmayan kullanıcılar bu dosyaya yazmak isterlerse reddedileceklerdir.

Üçüncü kısım da "r--" olarak belirtilmiştir. Bu da ne bu dosyanın sahibi ne de bu dosyanın atandığı gruba dahil olanlar için geçerli kuralı belirtir. Önceki grupta olduğu gibi bu kişiler de bu dosyayı sadece okuyabilirler.

Erişim hakları değiştirmek için chmod komutunu çalıştırmamız gereklidir. chmod komutuna belirtmek istediğimiz hakları iki şekilde belirtebiliriz. Bunlardan birtanesi, yukarıda kullanılan kısaltmaları kullanmaktır, diğeri ise biraz daha karmaşık ama bazı durumlarda kullanımı daha uygun olan numaralı yöntemdir.

Yukarıdaki kısaltmalarda belirttiğimiz dosyanın sahibi "u" ("user", kullanıcı), atandığı grup "g" ("group", grup), diğerleri "o" ("others", diğerleri) karakterleri ile belirtilir. Bunların yanında bütün kullanıcıları kastetmek için "a" ("all", hepsi) karakteri de kullanılabilir.

"hedef" dosyasını herkes tarafından çalıştırılabilir yapmak istersek şöyle bir komut kullanabiliriz:

> chmod a+x hedef
>

"hedef" dosyasının haklarını tekrar görüntülersek:

> ls -l hedef
-rwxr-xr-x  1 can can 6 Mar 28 14:48 hedef
>

Görüldüğü gibi bütün üçlü gruplarda "x" karakteri ortaya çıktı. Bu demektir ki bu dosyaya ulaşabilen bütün kullanıcılar dosyayı çalıştırabilir.

"can" grubundaki kullanıcılara dosyaya yazma hakkı vermek istersek:

> chmod g+w hedef
> ls -l hedef
-rwxrwxr-x  1 can can 6 Mar 28 14:48 hedef
>

Grup bölümündeki "w" (6. karakter) belirdi.

Diğer (ne dosya sahibi ne de dosyanın grubunda bulunan) kullanıcılar dosyayı okuyamasın istersek:

> chmod o-r hedef
> ls -l hedef
-rwxrwx--x  1 can can 6 Mar 28 14:48 hedef
>

Diğerleri bölümündeki "r" karakteri "-" ye dönüştü.

Dosyanın sahibinden çalıştırma hakkını kaldıralım:

> chmod u-x hedef
> ls -l hedef
-rw-rwx--x  1 can can 6 Mar 28 14:48 hedef
>

Dosyanın sahibi bölümündeki "x" karakteri "-" ye dönüştü.

Bunun yanında numaralı yöntemde ise şöyle bir tablo mevcuttur:

400 dosya sahibi okuma
040 dosya grubu okuma
004 diğerleri okuma

200 dosya sahibi yazma
020 dosya grubu yazma
002 diğerleri yazma

100 dosya sahibi çalıştırma
010 dosya grubu çalıştırma
001 diğerleri çalıştırma

İstediğimiz hakların değerlerini bu tablodan bularak alt alta toplarız ve chmod a yollarız. Mesela hedef dosyamızı eski haline getirmek istersek şöyle bir yol izleyebiliriz:

400 dosya sahibi okuyabilir
200 dosya sahibi yazabilir

040 grup okuyabilir

004 diğerleri okuyabilir

Hepsi toplarsak 644 eder. Bunu da chmod a gönderirsek:

> chmod 644 hedef
> ls -l hedef
-rw-r--r--  1 can can 6 Mar 28 14:48 hedef
>

Dikkat ederseniz, toplama işlemi incelikle oluşturulmuş rakamlardan oluşmaktadır. Yüzler basamağı dosya sahibi haklarını, onlar basamağı grup haklarını, birler basamağı da diğerlerinin haklarını belirlemektedir. 4, 2 ve 1 sayıları da özellikle seçilmiştir; çünkü toplamları ihtiyacımız olan 3 farklı durumu belirtebilir ve birbirlerine karışmaz. Herhangi iki tanesini topladığınızda özgün bir durum elde edebiliriz.

3.8 export

Bash başlangıç yazısında Bash'ın değişkenlerinden bahsetmiştik. Bu değişkenleri atamak için şöyle bir yol izlenebilir:

> A=deneme
>

Bu komutu kullanarak bulunduğumuz Bash kabuğunda A değişkenine deneme değerini atayabiliriz. Kontrol etmek için:

> echo $A
deneme
>

Ancak bir program çalıştırdığımız zaman, bazı programlar kendilerine yeni Bash kabukları açarak işlemlerini orada sürdürürler ve ne yazık ki bizim kendi Bash kabuğumuzda atadığımız değişkenler özellikle belirtmediğimiz sürece diğerlerine aktarılmazlar. Hatırlarsak kabuk değişkenlerinin bir görevi de yazılımlar arası iletişimi sağlamaktı. Bu yüzden buradaki boşluğu doldurmak için export komutunu kullanırız.

export komutu bulunduğumuz Bash kabuğundan açılan yeni kabuklarda atadığımız değişkenlerin hala geçerli olmasını sağlar. Kullanımı da oldukça basittir:

> export A=deneme
>

Bu komuttan sonra gönül rahatlığı ile A değişkeninin deneme değerine sahip olduğunu düşünebiliriz.

3.9 wget

Komut satırını kullanarak Internet'ten dosya indirmek için wget programını kullanabilirsiniz. Basit kullanımı oldukça kolaydır, ancak birkaç özelliği biraz karışık olabilir. Normal bir dosya indirmek için şu şekilde kullanabiliriz:

> wget www.debian.org/index.html
...

Giriş gerektiren bir vekil sunucu ("proxy server") ile ulaştığımız bir sunucudaki bir siteyi bilgisayarımıza kopyalamak için de şöyle hallice bir wget komutuna ihtiyacımız vardır:

Önce vekil sunucumuzu belirten değişkeni ayarlamamız lazımdır. Ancak bunu yukarıda anlatılan sebeplerden dolayı export komutu ile yapmamız lazımdır:

> export http_proxy=vekilsunucu:KapıNumarasi("port")
>

Bundan sonra wget komutunu verebiliriz:

> wget --proxy-user=vekilSunucusundakiKullaniciAdi --proxy-passwd=Sifresi -np -l 1 -k -r -p -R .ps www.indirmekistedigimizsitedeki.com/ustdosya/altdosya/sayfa.html
...

Eğer başarılı olursa bu komut vekil sunucusuna verilen kullanıcı adı ve şifre ile giriş yaparak, indirmek istediğimiz sayfayı, sayfadan yapılan bağlantıları ve sayfalar üzerindeki dosyaları indirecektir. Seçenekleri biraz daha açalım:

Seçenek
Açıklama
-r Özyineli ("recursive") indirmeyi etkinleştirir. Bu seçenek olmadan wget sadece verilen sayfayı indirir. Ancak -r seçeneği belirtilirse, verilen sayfadan yapılan bağlantılar ve onlardan yapılan bağlantılar şeklinde diğer seçeneklere göre indirme işlemi devam eder.
-np
Hedef sunucunun dosya sistemi yapısında yukarıya doğru gidilmez. Mesela verilen örnekte sayfa.html deki bağlantıların ustdosya klasöründe bulunanları takip edilmez.
-l 1
Özyineleme derinliği seviyesi. Verilen sayfadan sonra kaç özyineleme yapılacağını belirtir.
-k
İndirilen sayfaları yerel dosya sisteminde görüntülenebilmesi için gerekli bağlantı değişikliklerini yapar
-p
Sayfa üzerindeki resim, ses, css dosyaları gibi ek dosyaların indirilmesini istediğimizi belirtir.
-R .ps
İndirilmesini istemediğimiz dosyaların uzantılarını belirtir. Verilen örnekte .ps uzantılı dosyalar indirilmez.

wget'in kılavuz sayfasında birçok diğer seçeneklere ve ilginç özelliklere rastlayabilirsiniz.

3.10 rev

Verilen satırı tersine çevirir. Kendi başına çok fazla bir anlamı olmasa da, ender durumlarda işe yarayabilecek bir komut.

> echo "selam" | rev
males
>

4.0 Belgeler

man less
man grep
man wc
man df
man du
man updatedb
man locate
man chmod
man chgrp
man chown
man bash
man wget
man rev
http://www.comptechdoc.org/os/linux/usersguide/linux_ugfilesp.html
http://www.tdl.com/~netex/linux-doc-project/install-guide/node130.html

----------------------------
Can Kavaklıoğlu