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
|
|
|
|
"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