U N I X ' E G I R I S
ELTEK ELEKTRONIK TEKNOLOJI A.S.
EGITIM HIZMETLERI
Hazirlayan : KADIR DECDELI
I C I N D E K I L E R :
-----------------------------------------------------------------------
- GIRIS SAYFA
-------
- UNIX NEDIR ? ............................................. 1
User olarak Giris/Cikis islemleri 2
Shell 3
Komutlarin Execute Edilmesi 4
-FILE SISTEMI .............................................. 5
File sisteminin kullanimi 7
Directory yapisinin Organizasyonu 10
File Access ve Manipulasyonu 13
File Korumasi Chmod 23
Elektronik Posta 25
-SCREEN EDITOR ................................................ 27
Cursor'in Hareketi 28
Cursorun'in Satir Uzerindeki Hareketi 28
Satir Belirleme 29
Sozcuk Belirleme 29
Cumle Belirleme 30
Paragraf Belirleme 30
Ekran Ici Hareketi 31
Text Ici hareket 31
Ozel Bir Satira Gidis 31
Satir Numarasi Elde Etme 31
Karakter Dizisi Arastirma 32
Text Olusturma 32
Silme Komutlari 32
Text Degistirme 33
Text'in Buffer'a Alinmasi ve File'a Ylmasi 34
Text'in Kopyalanmasi 34
Kopyalamanin Registerler Yoluyla Yapisi 35
Ozel Komutlar 35
SAYFA
-------
-LINE EDITOR KOMUTLARI 36
Text'in Yazilmasi 36
Satir Numarasi Bulma 36
Buffer'in Kalan Kisminilme 37
Buffer'a Bir File Eklem 37
File Uzerinde Global Deiklikler 37
VI'dan Cikis 38
Birden Fazla File'nin Ei 38
VI'da recovery 38
-SHELL KOMUT DILI .............................................. 39
Sehell'in Ozel Karakteri 39
Bazi shell Komutlari 40
Input'u Yonlendirme 42
Output'u Yonlendirme 42
Pipes 43
-SHELL PROGRAMLAMA .............................................. 45
Calistirilabilir File'lar icin Bin Directory 46
Degiskenler 46
Ozel Anlamli Parametreler 47
Degisken Isimler 48
Read Komutu 48
Komut Output'unu Degiskene Esitleme 50
Shell Pprogramlama Yapisi 50
Dongu 51
For Dongusu 51
While Dongusu 53
Kosullu Yapi: If...Then 54
Donguler icin Test Komutu 56
Kosullu Yapi: case...esac 57
BC: A Calculator 60
GIRIS
----------------------------------------------------------------------
UNIX, zaman paylasimli,cok prosesli bir sistemdir.tasinabilir bir
yapiya sahiptir.Entegre bir software setiyle, bilgisayar sistemin-
in tum kaynaklarini koordine eder. UNIX bir real-time sistem degil-
dir; programin olasi sonucu prosessor'un is yukune gore, herhangi
bir zaman araliginda alinabilir.
UNIX, tek bir 'Operating System' programi olarak
dusunulmemistir. UNIX, 'Operating System' programiyla
birlikte calisan bir programlar grubudur. Bu grub ayni zamanda
amaca ulasmak icin koordine olmus bir takimdir.
UNIX NEDIR ?
UNIX isletim sistemini uc ana bolumden olusan,bu bolumlerin karsilik-
li etkilesimleriyle fonksiyonel bir butun olarak is goren bir sistem
olarak dusunebiliriz.
Isletim sisteminin sozu edilen kisimlari sunlardir:
KERNEL
SHELL
SISTEM PROGRAMLARI, KOMUTLARI
Bu uc bolumu daha sonra ayrintilariyla incelemek uzere kisaca tanimla-
yacak olursak kernel makinanin hardware fonksiyonlarini, file sistemi-
ni, input-output cihazlarini ve prosesleri yoneten kisimdir.Shell disa-
ridan yeniden duzenlenebilir bir ortam icinde komutlari calistirir,
gerektiginde sistem call'lari yoluyla kernel'le iliski kurar. Isletim
sisteminin fiziksel olarak asil yer kaplayan kismi sistem programlari
yada komutlardir. Sistemin alisilagelmis komutlari vardir.Ancak istege
gore yenileri eklenebilir.
User olarak Giris/Cikis islemleri
---------------------------------
Makina acildiktan sonra ekrana;
"login:" promput'u goruntulenir.
Bu durumda ekran kullanilmaya hazirdir. onceden tanimli olan bir user-
name ile login'den giris yapilir.
Ornek;
login: Userl <return>
User-name yazilip return tusuna basilir. Eger yazilan user-name icerde
tanimli ise sisteme girer ve user-name icin prompt goruntulenir.
Ornek; $
Bu prompt'tan sonra istenilen komutlar uygulanir.
Tekrar login durumuna donmek icin yani bu user-nameden cikmak icin
prompta iken (CTL-D <=>^D) CONTROL-D tusuna basilir.
Ekranda tekrar login goruntulenir.
SHELL:
-------
Kernel'den login'e kadar birbirini izleyen prosesleri iceren dizgenin
son urunu shell adini verdigimiz, komutlari yorumlayan, execute eden
bir 'interpreter'dir.Shell'in standard input-output'u terminale bagli-
dir.
Shell'lerin geleneksel islevi konsoldan verilen komutlari okumak ve
yorumlamaktir. UNIX shell'i ozel bir alana yonelik degildir.Kullanici-
ya tum bir komut setini kullanma olanagi tanir.Standart shell C dilin-
de yazilmistir.
X-20'nin kullandigi UNIX altinda shell (sh) yada C-shell (chs)'le calis-
mak mumkundur. User'in calisacagi shell /etc/passwd dosyasinda belirti-
lir.
Shell logon'le ayni PID'e sahiptir.Terminalin kitlenmesi durumunda, o
terminal icin yeni bir shell yaratmak amaciyla, isler durumdaki shell
oldurulebilir.Bu durumda init yeniden harekete gecer, login'e giden dizi
islemeye baslar.
Iki ayri genel amacli shell kullanmamiz mumkundur; biri tum Unix sistem-
leri altinda kullanilan bourne shell, digeri ise daha modern olanlarda
kullanilan C-shell Her ikiside program gelistirmek icindir.Komutyapilari
ve error yapilari temelde aynidir.
Bourne shell steve Bourne tarafindan Bell labaratuvarlarinda yazilmistir
/bin/sh adli programdirBourne shell kontrol komutlari,kompleks yapisiyla
Algol 68'i andirirC-shell BillJoy tarafindan Berkeley'de C diline en ya-
kin syntax'a sahip bir command dili olusturmak amaciyla yazilmistir.
C- shell'in proses kontrol ozelligi geliskindir.
Hangi shell'in daha iyioldugu sorulabilir.Bu sorunun en iyi yaniti ozel-
liklerini acik olarak ortaya koymaktadir.
C- Shell baslama sirasinda digerine gore daha yavastir. Bunun
nedeni C-Shell'in , $PATH listesindeki tum directory'lerin
altindaki komutlarin indexsini olusturmasi ve her yeni shell'in
.cshrc file'inin execute edilmesiyle baslamasidir. Fakat
C-shell hazirlamis oldugu index nedeniyle digerinden daha hizli
calisir. C-Shell proses kontrolundeki gelismisligi nedeniyle
'interactive work' icin daha uygundur. Bourne Shell ise daha guclu
bir dil yapisina sahiptir.Yazilim icin daha uygundur.
Komutlarin Execute Edilmesi:
----------------------------
Shell once, execute izni olmasi kosuluyla, PATH'de siralanan tum direc-
tory'lerde, calistirilmasi istenen komutu arar. PATH adani verdigimiz
aranmasi gereken directory'leri iceren degisken, root directory'de login
file'i icinde tanimlanir.Tipik bir PATH'in icerigi soyledir;
:$HOME/bin:/bin:/usr/bin
Aranan komutun execute edilebilir dosyasi bulundugunda,shell eger bu
file binary program iceriyorsa fork ve exec system call'larini execute
ederek file'i run eder. Eger ilgili file bir shell yazilimiysa, yeni bir
shell input'unu bu file'dan almak uzere baslatilir.Shell file'in binary
olup olmadigini kernel'e sorar. kernel file'i execute edemezse shell
script oldugunu anlar.
FILE SISTEMI
Kernel'in onemli bir isi file system'ini yonetmektir.File sistemi,mantik
sal bir yontemle bilginin organize bir sekilde saklanmasini ya da sakla-
nan bilgiye erisilmesini saglar. File sistemi yapi olarak biragaci andi-
rir. File bu sistemin en temel parcasidir, uc ayri ture girebilir.
Siradan bir file(ordinary file) en basit tanimiyla bir karakterler dizi-
sidir. File herhangi bir bilgiyi saklamak icin kullanilir.Bu bilgi Text
ya da data olabilecegi gibiprogramlarin binary kodlari da olabilir.Iste-
nildiginde file'a bilgieklenir yada silinir.Gerekli degilse file tumuyle
silinebilir.
Directory operating sistemce file sisteminin agacabenzeyenyapisini orga-
nize etmek icin kullanilir.Directory file'lari ya da baska directoryleri
kapsar.
Special file adini verdigimiz ozel file'lar ya bir terminale ya da disk
disket unitesi gibi cihazlara karsi gelirler. UNIX sisteminde her fizik
sel cihaz icin bir ozel file bulunur. Kullanici herhangi bir cihaza er
ismek istediginde,bu cihazla ilgili file'i kullanmak zorundadir.Cihazlar
ve ilgili file'ler daha ayrintili islenecektir.
UNIX sisteminde file yapisinin kaynagi,ya da daha onceki benzetmemizi
kulla nirsak agaci andiran yapinin koku, root adlandirilir.Root slash
isaretiyle (/) gosterilir.File sistemdeki tum file'ler ve directory'ler
root'un altinda hi- yerarsik bir yapi icinde duzenlenmistir. Root'un al
tinda onemli sistem directory'leri bulunur.Bu directory'ler ve kisa acik
lamalari asagida gosterilmistir.
/bin Pek cok execute edilebilir program ve utility bu directorydebulunur
/dev Bu directory konsol,line printer,terminaller ve disk gibi I/o cihaz
larina karsi gelen special file'lar icerir
/etc sistem yonetimiyle ilgili program ve data file'lar bu directory'de
bulunur.
/lib Program dilleri icin gerekli kutuphaneler burada bulunur.
/tmp Gecici file'larin olusturabilecegi bir directory'dir.
/usr Bu directory altindadegisik amaclaricin hazirlanmis sistemdirectory
leri ve kullanicilara ait directory'ler bulunur.
File Sisteminin Kullanilmasi :
--------------------------------
Komutlar :
Shell tarafindan execute edimek uzere ekrandan girilen komutlar, ancak
bir komut satiri syntax'i icinde kullanilabillrler. Komut satiri syntaxi
asagidaki elemanlarin tumunu yada bir kismini icerir.
Komut - Secenek - Argument :
Komut : Run edilecek programin ismidir.
Secenek : Programin nasil calisacagini belirler.
Argument: Programin isleyecegi elemanlari belirtir. Bunlar genellikle
file ya da directory'dir.
Ornek;
ls -l file1
------ -------- ----------
command secenek argument
User sisteme girdiginde, UNIX onu file sistemi icinde ozel bir noktada
tutar. Bu noktada, sisteme login'den hemen sonra home directory olur,
user dilediginde file sistemi icinde baska bir directory'ye gecebilir.
User'in calistigi directory'nin file yapisi icindeki yerini belirlemek
icin pathname kullanilir.Pathname kullanim sekline gore relative ya da
absolute olabilir.
ornek ;
----------------------------------------------
: : : : : :
bin dev etc usr lib tmp
:
:
:
--------------------
: : :
user1 user2 user3
:
:
:
-----------------
: :
muhasebe stock
:
fis.c
Absolute ve relative pathname kavramlari ornek bir file yapisi uzerinde
daha iyi anlasilir. Root altindaki file sistemi icinde bir noktada, or-
negin user3 altinda calistigimizi, fis.c file'i uzerinde degisiklik yap
mak istedigimizi varsayalim. Fis.c'ye nasil ulasiriz?
-Absolute pathname ile,
cd /usr/user1/muhasebe komutu ile calistigimiz directory'yi muhasebe
olarak belirleyebiliriz. Muhasebeye gectikten sonra ilgili komutla
fis.c'ye ulasmak mumkundur.Muhasebe directory'sine file sisteminin her
hangi bir yerinden ayni komutla gecmek mumkundur.
-Relative pathname ile,
cd ../user1/muhasebe komutu muhasebe directory'sine gecmemizi saglar.
.. isereti ile onceki directory'yi gostermek icin kullanilir.bu path-
name'i,stock directory'sinde kullanmak hataya yol acacaktir.
HOME DIRECTORY :
----------------
sisteme login ile girildiginde, disk uzerinde nerede calisilacagini be-
lirten directory'dir.Sistem yoneticisi tarafindan kullanici tanimi yapi-
lirken belirtilir.
WORKING (CURRENT) Directory :
Sistemde calisma aninda , icinde bulunulan directory'dir. ilk anda
(sisteme login ile girildiginde) working directory ayni zamanda home
directory'dir.
Directory Yapisinin Organizasyonu
-----------------------------------
Directory yapisinin organizasyonu ve kullanimini saglayan bazi
komutlar sunlardir.
mkdir
-----
Yeni bir directory yada alt directory'nin olusumunu saglar.
Ornek;
$ mkdir draft draft adli bir directory yaratir.
$ mkdir draft letters draft ve letters adli directory'ler yaratir.
$ isareti promt anlaminda kullanilmistir.
cd
--
Bir directory'den digerini gecmeyi saglar.
ornek;
$ cd /user/user1/stock
$ cd ../user1/stock
ls
--
Bir directory'nin icerdigi directory ve file'larin isim,buyukluk, son
degistirilme tarihi gibi ozelliklerini listeler.
ls'ten sonra herhangi bir directory'nin adi yazildiginda bu directory
nin adi yazildiginda bu directory'nin icerigine iliskin bilgi elde edi-
lir. ls tek basina ya da secenek bildiren bir harfle kullanildiginda
working directory'ye iliskin bilgi verecektir.
ornek;
$ ls :working directory'nin icerigi gosterilir.
-plan
-bina
-olcum
$ ls draft :Relative pathname'i,ayni zamanda adi draft
-muhasebe olan directory'nin icerigini gosterir.
-stock
-senet
onemli ls secenekleri:
----------------------
-a :Directory'nin altindaki tum file ve alt directory isimleri
. (dot) ile baslayanlari da icerecek sekilde gosterilir.
. ile baslayan bazi file isimlerinin anlamlari soyledir:
. (dot) :current directory
.. (dot dot) :parent directory
. profile :Directory'ye girildiginde sistemce okunan bir file
ornek;
$ ls -a <CR>
.
.. .
. profile
bin
draft
letters
list
-l :Cok sik kullanilan, onemli bir ls secenegidir.
ornek;
$ ls -l <CR>
total 30
drwxr-xr-xr-x 3 kurs easyusr 96 oct 27 08:16 bin
-rwx--------- 2 root sys 12301 nov 2 10:15 list
total 30 : Harcanan toplam memory'yi block cinsinden gosterir.
ls -l komutuyla elde edilen bilgi her file icin ayri bir satira yazilir.
Her satirin ilk karekteri d,-, ya da c'dir.
d : Directory
- : Siradan file (ordinary file)
b : Block special file
c : Character special file
ilk karekteri izleyen dokuz karekter file'i okuma ya da kullanma iznini
gosterir.
rwx r-x r-x
---- ---- -----
owner group others
Unix altinda her user bir grubun uyesidir. File'in yaraticisi daha
sonra inceleyecegimiz chmod komutuyla grubun diger uyelerine ve grup
disi user'lara read write ya da execute izni verebilir.'-' isareti hangi
karekterin yerine kullanildiysa, o karektere karsi gelen kullanim sek
line izin verilmemis demektir. Yukaridaki ornekte grup uyeleri ve diger
leri icin file'a yazma izni verilmemistir.
Permission (izin) belirten karekter dizisini izleyen sayi eger file'a
iliskin ise bu file'a yapilan link'leri, eger bir directory satirina
ait ise bu directory'nin altindaki directory'lerin sayisini gosterir.
bir sonraki sozcuk file'in sahibinin login ismini goterir, diger soz
cuk ise grup ismine karsi gelir.ornegimizde starship login ismi,project
grup ismidir. Grup isminden sonraki sayi file'in byte olarak buyuklugu
nu gosterir. Satirin sonundaki ay, gun ve saat iceren bilgi file'in son
degistirilme tarihine iliskindir. En sondaki sozcukler ise file ya da
directory isimlerine karsi gelirler.
-x : Directory'nin icerdigi file'larin ve alt directory'lerin satirlar
boyunca ardarda siralanmalarini saglar.Boylece ekran daha etkili kul-
lanilir.
pwd
---
Current directory'nin ismini ekrana getirir.
rmdir
----
File ya da baska directory icermeyen directory'leri siler.
ornek;
$rmdir draft Eger draft baska bir directory ya da file icermiyorsa
bu komutla silinir.
File Access ve Manipulasyonu
----------------------------
cat
---
{lgili file ya da file'lar[, output'u baska bir file'a yonlendiril-
medigi surece, ekrana pespese goruntuler.
\rnek;
$ cat file1
$ cat file1 file2
> isareti bir komutun output'unu istenilen bir file'a aktarmak icin
kullan[l[r.
$ cat file1 file2>file3
File1 file2'ye eklenir, sonuc file3'e yaz[l[r.
>> isareti bir komutun output'unu istenilen bir file'[n uzerine
append eder.
pg
--
pg bir file ya da birden fazla file'[n iceriginin incelenmesini saglar.
\rnek;
$ pg file1
Ekrana file1'in ilk sayfas[ gelir. Sayfan[n sonunda, sol alt kosede :
isareti belirir. Bu isareti izleyen k[sma seceneklere kars[ gelen ka-
rakterler yaz[labilecegi gibi <CR> tusuyla bir sonraki sayfa cagr[la-
bilir. Kullan[lacak seceneklerin bir k[sm[ asag[da gosterilmistir.
h : Help
Q, q : pg'den cikis
l : Bir sonraki sat[r goruntulenir.
^d,d : Diger sayfan[n yar[s[ goruntulenir.
f,<CR> : Bir sonraki sayfa goruntulenir.
n : Bir sonraki kutuk goruntulenir.
p : Bir onceki kutuk goruntulenir.
$ : Kutugun en son sayfas[ goruntulenir.
(say[) : Belitilen nolu sayfa goruntulenir.
!<unix komutu> : Belirtilen unix komutunu cal[st[r[r.
/pattern/ : pattern icin ileri dogru arama.
^pattern^ : pattern icin geriye dogru arama.
pr
--
Bir yada birden cok file'[ k[smen formatl[ olarak ekrana (aksi belir-
tilmemisse) print eder. Sayfa boyu 66 sat[rd[r. Her sayfa bas[nda 5
bos sat[r ve basl[k icin ayr[ca 5 sat[r vard[r. Basl[k icin, 2 bos
sat[r; tarih, saat, file ad[ ve sayfa numaras[ icin 1 sat[r ve tekrar
2 bos sat[r kullan[l[r.
\rnek;
$ pr johnson <CR>
nov 29 09:19 1983 Johnson Pagel
This file contains a letter
to Mr.Johnson on the topic of
office automation.
ps
--
Cal[san islerin durumunu gosterir.ps komutu girildiginde PID (process
Identification Number) numaras[ goruntulenir.
ornek;
$ ps <CR>
PID TTY TIME COMMAND
286 10 0:00 sh
284 10 0:04 grep
287 10 0:04 ps
kill
----
Aktif olan shell islemini durdurur. Kill PID <CR> olarak kullan[l[r.
Ornek;
$ kill 284 <CR>
283 terminated
lp
--
{lgili file'[n print edilmesini saglar (spooler).
Secenekler :
-d : Ozel bir printer'in secilmesini saglar.
Ornek;
$ lp -dpr1 file1
Bu ornekte file1 isimli kutugun pr1 isimli printer'dan listelenmesi
saglan[r.
-m : Print isleminin bitmesinden sonra gonderen user'[n mail'[na mesaj
gelmesi icin kullan[l[r.
lpstat :
--------
Sistemdeki spool bilgileri al[nabilir.
lpstat -v : Sistemdeki tum line-pinter'lar[ listeler.
lpstat -t : Tum spool bilgilerini verir.
lpstat -d : Default'unda hangi spool file'[ tan[ml[ oldugunu goruntuler
Ornek;
lpstat <RETURN>
"lp1-13 user-name 36777 sep 22 09:40"
gibi sat[rlar goruntulenir. Burada prl-13, tan[ml[ bulunan spool
dosyas[d[r. prl, spool ad[ 13 ise, spool'a 13 uncu file gonderilmis an-
lam[ndad[r. User-name; hangi user gondermisse o isim goruntulenir.
36777, gonderilen file'[n size'[, hangi gun, hangi saatte spool'a
at[lm[s oldugu goruntulenir.
cancel
------
Spool'a gonderilmis bir file'[ spool'dan temizlemek icin kullan[l[r.
Ornek;
cancel lp1-13 <RETURN>
cp
--
Bir file'[n icerigini diger bir file'a kopya eder.
Ornek1;
$ cp outline new.outline <CR>
$ ls <CR>
new.outline
outline
table
Ornek2;
$ cp outline ../letters/outline <CR>
$ cp outline ../letters <CR>
$ cp outline ../user1/starship/letters/outline <CR>
$ cp outline ../user1/starship/letters <CR>
Yukaridaki komutlarin tumu outline isimli file'i ayni isimle letter
directory'sinin altina kopyalar.
cp komutunu bir secenekle kullanmak sozkonusu degildir.
mv
--
Bir file'i baska bir file'a tasimak veya file'in ismini degistirmek
icin de kullanilir.mv komutu ile directory de tasinabilir.
ornek1;
$ mv table new.table <CR>
mv komutuyla bir veya daha fazla file'i bir directory'den digerine
gecirmek mumkundur.
ornek2;
$ mv file(s) directory <CR>
Current directory'deki file'lar diger directory'ye(current directory'
den silinerek)tasinirlar.
$ mv table /user1/starship/letters <CR>
Table isimli file ayni isimle letters'in altina tasinir.
rm
--
Gereksinim duyulmayan bir file'in tumuyle silinmesini saglar.
rm files(s) <CR>
Ornek;
$ rm outline table
-i secenegi ile kullanilirsa silme islemi interactive (soru cevap
biciminde) olarak gerceklesir.
-r secenegi ile kullanilirsa silme islemi recursive (yinelemeli)
olarak gerceklesir.
Ornek;
$ rm -r * komutu ile current directory'nin altindaki tum file'lar
ve tum subdirectory'ler silinir.
wc
--
File icinde satir ,sozcuk ve karekterlerin sayisini bulur.
wc file1 <CR>
Bu komut verildiginde sistem gerekli bilgiyi su formatta print eder.
1 w c file1
-1 : satir sayisi
-w : sozcuk sayisi
-c : karekter sayisi
Ornek;
$ wc table <CR>
3 14 78 table
Ornek;
$ wc -l table <CR>
3 table
diff
----
Iki file arasindaki farkliliklari bulur ve rapor eder.Eger iki file
arasindahicbir fark yoksa $ promt'una donulur.
Genel yazilisi:
diff file1 file2
bicimindedir.
Ornek;
$ cat birinci
Zeynep
Ayse
Mehmet
$ cat ikinci
Zeynep
Gulay
Nedret
Dilek
$ diff birinci ikinci <CR> dendiginde asagidaki satirlar goruntulenir:
2,3c2,4
< Ayse
< Mehmet
----
> Gulay
> Nedret
> Dilek
Burada;
2,3c2,4
< Birinci kutukteki farkli
< olan 2 ile 3. satirdir
----
> ikinci kutukteki farkli
> olan 2, 3 ve
> 4. satirdir
$
Burada < isaretli satirlar birinci kutugun farkli olan 2-3 . satir
larini; > isaretli satirlar da ikinci kutugun farkli olan 2-4 . satir
larini gosterir.
sort
----
Bir yada birden fazla kutuk uzerinde siralama ve birlestirme
islemi yapar. Hic secenek kullanilmamis ise siralama ve
birlestirme isleminde ASCII karekterler esas alir. Genel
yazilisi;
sort file (s) <CR>
bicimindedir.
Ornek;
$ cat birinci <CR>
Zeynep
Ayse
Mehmet
$ cat ikinci <CR>
Hasan
Fatma
$ sort birinci ikinci <CR>
Ayse
Fatma
Hasan
Mehmet
Zeynep
Bazi secenekleri sunlardir:
-n :Numerik sirada oldugunu belirler.
-r :Tersinden sort eder.
-o :Cikis kutuk ismi belirler.
Ornek;
sort -o file1 birinci
Bu ornekte birinci file'ini sort ederek sort edilmis sekli ile
file1'in icine yukler.
File korumasi : Chmod
---------------------
Chmod komutu file'in modunun degismesini, bu baglamada file'i
kimlerin okuyabilecegi, degistirebilecegini ve
kullanabilecegini belirlenmesini saglar.
ls -l komutunun output'unda yer alan , Chmod komutuyla da
kullanilmasi gereken r, w, x karekterlerinden yeniden soz
edersek;
r : File'i okuma yada kopyalama izni (read)
w : File'i degistirme izni (write)
x : File'i execute etme izni (execute)
Bu izlenimlerin kimlere verilebilecegi de uc ayri karakterle
belirlenir.
u : File'in sahibi (user)
g : File'in sahibinin dahil oldugu grup (gpoup)
o : Diger kullanicilar (others)
Kullanma formati :
chmod kim +(-) izin file<CR>
chmod : Komut adi
kim : u,g veya 0
u : user
g : Group
o : Other
+ (-) : izin veren (+) veren veya yasaklayan (-) isaretler
izin : r,w,veya x
r : Okuma (read)
w : Yazma (write)
x : Calisma (execute)
file(s) : File veya directory ismi
ornek :
$ chmod u-w file1 <CR>
Bu komutun verilmesiyle file1 adli user tarafindan degistirilmez
Degistirme izninin yeniden verilmesi yine chmod programi yoluyla
olur.
$ chmod go-r display <CR>
Gurp uyelerinin ve digerlerinin file'i okuma izinilerini kaldirir
Chmod komutuyla birlikte semboller yerine octal sayilarda kullanila
bilir. Octal kullanimla ilgili aciklama UNIX system User Reference
Manual'da bulunabilir.
Elektronik Posta
Mail;
Bir ya da birden cok kullaniciya (login adi) mesaj gondermek icin ya da
gelen mesajlari incelemek,uzerinde islem yapmak icin kullanilir.
Mesaj gondermek;
$mail ayse<CR>
Bu mesaj,ayse isimli <CR>
kullaniciya gonderilmis <CR>
olan bir mesajdir<CR>
.<CR>
$
Mesajin icerigi yazildiktan sonra,sonlandirmak icin "." veya CTRL-d
kullanilir.Birden fazla kullaniciya,
mail login1 login2...<CR>
yazilarak mesaj gonderilebilir.
File gondermek;
mail login <filename <CR>
ile filename isimli kutuk,login isimli kullaniciya gonderilir.
Mesajlari inceleme:
Sisteme login olduktan sonra,eger ekrana:
you have mail
geliyor ise,kullaniciya mesaj gelmis demektir.Bu durumda;
$mail <CR>
komutu girilir.
Ornek;
$mail <CR>
Form mehmet Mon may 21 15:33 CST 1987
Bu mesaj Mehmet tarfindan
gonderilmis bir mesaldir.
?
Yukaridaki ornekte ilk satir,mesajin ne zaman ve kim tarafindan
gonderildigini gosterir.Diger iki satir mesajin icerigidir.Burada
?,sistemin kullanicidan bir cevap bekledigini gosterir.Asagidakiler-
den birisi cevap olarak verilebilir:
d <CR> :Mesaj silinir.
<CR> :Varsa bir sonraki mesaja gecilir,yoksa $'a
donulur.
s <CR> :Mesaj login directory'de default olarak mbox
isimli bir kutukte saklanir.
s filename <CR> :Mesaj, istenen bir filename verilerek burada
saklanir.
q <CR> :Mail komutundan cikilir.
SCREEN EDITOR (VI)
----------------------
vi editor file'larin olusturulmasi ve edit edilmelerini saglayan
etkili bir editor'dur. vi cagrildiginda ekrana gelen text uzerinde,
cursor tuslar yoluyla kullanilarak dilenen degisiklik yapilabilir.
vi yoluyla file'in olusturulmasi:
$ vi filename
ornek;
$ vi plan
Directory'nin altinda plan adli file varsa,bu file ekrana gelir.Eger
boyle bir file yoksa vi,plan adli yeni bir file olusturur,text ya da
program girisi icin ekrana getirir.
vi yoluyla file cagrildiktan sonra a veya i tuslariyla yeni text'in
yazilimina baslanabilir.
a:append
i:insert
<ESC> tusuyla tekrar command moda donulur.
ornek;
<i>
Bugun hava <CR>
cok guzel <CR>
olacak <ESC>
Cursor'un Hareketi:
--------------------
<h> :Cursor'u bir karekter sola kaydirir.
<j> :Cursor'u bir satir asagi kaydirir.
<k> :Cursor'u bir satir yukari kaydirir.
<l> :Cursor'u bir karekter saga kaydirir.
Insert (i) veya (a)modunda iken bu tuslar cursor hareketi icin kullanil-
mazlar.Command moda <ESC> tusu ile donulur.
Command modda, h ,j , k, l gibi bir tusa basilmadan once bir sayi kulla-
nilirsa (/h, 3j) gibi cursoristenilen kaymayi belirtilen sayikadar yapar
Space tusu cursoru saga bir bos karekter,back space ise solabir karekter
kaydirir.Her iki tus da bir n on sayisiyla kullanilabilirler.
<space bar>, n<space bar>
<BS> , n<BS>
Cursor'in Satir uzerinde Hareketi:
----------------------------------
<$> :Cursor satirin son karekterine gelir.
<O> :Cursor satirin ilk karekterine gelir.
<^> :Cursor satirin bosluk olmayan ilk karekterini bulur.
<fx>:Cursor saga dogru kayarak x ile belirtilen ilk karekteri bulur.
<Fx> : Cursor sola dogru kayarak x ile belirtilen ilk karakteri
bulur.
<;> :Arastirmayi surdurur.
Ornek;
fA :Cursor satir uzerinde,saga dogru kayarak ilk A'yi bulur.
tx komutu fx gibidir.
<tx> :cursor'i belirtilen karakterin bir oncesine getirir.
<Tx> :sola dogru kayarak,cursor'i belirtilen karakterin bir oncesine
getirir.
Satir Belirleme:
---------------
<n-> : cursor n satir yukari kayar.
<n+> : cursor n satir asagi kayar.
n<CR>: cursor n satir asagi kayar.
ornek;
13- :cursor 13 satir yukari kayar.
Sozcuk Belirleme:
----------------
<w> :cursor bir sonraki sozcugun ilk karakterine gelir.
<nw>:cursor n sozcuk sonraya gider.
<w> :noktalama isaretleri ihmal edilir,cursor ilk boslugu izleyen
sozcugun ilk karakterine gelir.
<b>,<nb> ve <B> komutlari w ile ayni isleri ters yonde yaparlar.
ORNEK;
b :bir sozcuk geri
4b :4 sozcuk geri
18w :18 sozcuk ileri
<e> :cursor sozcugunun sonuna gider.
<ne> :cursor n'inci sozcugun sonuna gider.
Cumle Belirleme:
---------------
<(> :cursor'i cumlenin basina getirir.
<)> :cursor'i cumlenin son karakterine getirir.
<n(>:cursor'i n'inci cumlenin basina getirir.
vi editor'de cumle ?,! veya . ile biter.eger bu isaretlerden
biri satir ortasinda kullanildiysa ,isaretin sonrasina
iki bosluk konulmalidir.
Paragraf Belirleme :
--------------------
<}> :cursor'i bulunulan paragrafin basina getirir.
<}> :cursor'i sonraki paragrafin basina getirir.
<n}> :cursor'i n'inci paragrafin basina getirir.
pargraf sonu bos bir satirdir.
Ekran ici Hareket:
------------------
Shift H : Cursor ekrandaki ilk satira gelir.
Shift M : Cursor ekranin orta satirina gelir.
Shift L : cursor ekranin son satirina gelir.
Text icinde Hareket:
--------------------
CTRL F : Text'in bir ekran sonrasina gider. Ilk ekranin son iki satiri
iki satiri cagrilan ekranin ilk iki satiri olur. Bos satirla-
rin basina (~) isareti gelir.
CTRL D : Yarim ekran yukari kayar.
CTRL B : Bir ekran asagi kayar.
CTRL U : Yarim ekran asagi kayar.
Ozel Bir Satira Gidis:
----------------------
<G> : File'in son satirina gider.
<nG> : File'in n'inci satirina gider.
Satir Numarasi Elde Etme:
-------------------------
CTRL g : Cursor'in uzerinde bulundugu satirin numarasini, satirin de-
gistirilip degistirilmedigini, file ismini, file'daki son sa-
tirin numarasini, satirin buffer'daki yuzde sirasini.
Ornek ;
CTRL g
Output : "File ismi" (modified) line 36 of 116 ...34%...
Karakter Dizisi Arastirma:
--------------------------
/ : Ileri dogru ara
? : Geriye dogru ara
n : Onceki aramayi tekrarla
N : Aramayi ters yonde tekrarla
Ornek;
/analiz <CR> : Analiz sozcugunu ileri dogru arar.
Arama turunu belirten isaretlerin basina n sayisi gelirse n'inci soz-
cugu bulur.
Text Olusturma:
---------------
<o> : Bulunulan satirin hemen altina bos bir satir acar, ve yazmaya
hazir hale getirir (Insert mode'a gecer).
<O> : Bulunulan satirin ustu icin ayni seyi yapar.
Silme Komutlari:
----------------
Insert modu icin ;
<BS> (back space): Cursor'in altindaki karakteri siler.
CTRL W : Sozcuk siler.
CTRL : Satir siler.
Komut mod'u icin;
-----------------
<u> : Son komutu iptal eder.
<U> : Satirdaki son degisikligi siler.
<x> : Karakter siler.
<dw> : Cursor'in altindaki sozcugu siler.
<dd> : Tum satiri siler.
<D> : Cursor'dan satir sonuna kadar siler.
<d)> : Tum cumleyi siler.
<d}> : Tum paragrafi siler.
<ndx> : n tane text parcasi olan x'i siler.
(Burada x; sozcuk (w), cumle ()), paragraf (}), satir (d) ola-
bilir).
Text Degistirme:
----------------
<r> : Cursor'in uzerinde bulundugu karakteri istenilen karakterle
degistirir.
<nr> : n karakteri ayni harfle degistirir.
<R> : ESC komutu verilene kadar girilmis olan karakterleri degisti-
rir.
Ornek;
-----
Ekrandaki sozcugumuz 'analiz' olsun. Eger cursor n harfi uzerindeyse;
rc komutu sozcugu 'acaliz' haline getirir.
4rs komutuyla karakter dizisini 'ssssiz' e ceviririz.
<s> : Cursor'in uzerinde oldugu karakteri siler, yeni text'i girme-
ye bu noktadan baslar. ESC komutuyla komut moduna doner (cur-
sor'in bulundugu karaktere $ isareti koyar).
<S> veya
<cc> : Bir satirdaki tum karakterleri yenileriyle degistirir.
<cw> : Bir sozcugu ya da sozcugun cursor'dan sonraki karakterlerini
yeni text'le degistirir (kelimenin sonuna $ isareti koyar).
<c)> : Cumlenin degistirilmesini saglar.
<c}> : Paragrafin degistirilmesini saglar.
<ncx> : n sayidaki text parcasinin degistirilmesini saglar (burada x;
sozcuk (w), cumle ( ) ), paragraf ( } ) olabilir).
<C> : Cursor'in bulundugu yerden satirin sonuna kadar degistirilme-
sini saglar.
Text'in Buffer'a Alinmasi, File'a yazilmasi:
--------------------------------------------
vi'da en son silinen text veya satir gecici bir buffer'da saklanir.
Istenildiginde <p> komutu yoluyla bu buffer'in icerigi file'in herhan-
gi bir kismina yazilir.
<p> : Buffer'in icerigini cursor'dan hemen sonraya yazar.
Text'in Kopyalanmasi:
---------------------
<yw> : Sozcugun kopyasini buffer'a alir.
<yy> : Satirin kopyasini buffer'a alir.
<nyy> : n tane satiri buffer'a kopyalar.
y) : Cumlenin kopyasini buffer'a alir.
y} : Paragrafin kopyasini buffer'a alir.
<nyx> : n sayida text parcasini buffer'a kopyalar (burada x; sozcuk
(w), cumle ()), paragraf (}) olabilir).
Ornek;
<5yw> : 5 sozcugu buffer'a alir.
<p> : Cursor'in bulundugu yere 5 sozcugu print eder.
Kopyalamanin Registerler Yoluyla Yapilmasi:
-------------------------------------------
Bir file'in degisik kisimlarini file'in belli bir yerine tasimak iste-
digimizde birden fazla buffer'a ihtiyac duyariz. vi editor, kopyalama
isi icin a-z arasi harflerle gosterilen register'lar kullanilir.
Text'i register'a saklamanin genel formati sudur:
sayi "R komut text parcasi
R herhangi bir register'e karsi gelen harfi gosterir.
Ornek;
3"ayy komutu 3 satiri a register'ina saklar.
"ap komutu bu satirlari cursor'in bulundugu noktaya tekrar yazar.
Ozel Komutlar (Command Mode):
-----------------------------
<.> : Son komutu tekrarlar.
<J> : Alt satiri cursorun bulundugu satirla birlestirir.
CTRL l : Ekrani temizler ve yeniden cizer.
<~> : Kucuk harfi buyuk harfe cevirir veya tersini yapar.
<\> veya
CTRL-V : Input mode'da yazilamayan ozel karakterlerin yazilmasini sag-
lar. Yazilmak istenen ozel karakterden once kullanilir.
LINE EDIT KOMUTLARI
-------------------
Line editor komutlarini kullanmak icin vi'nin komut moduydayken <:>
yoluyla line editor moduna gecmek gerekir.
vi'nin line editor'u ex olarak adlandirilir.
Cok kullanilan ex komutlarindan biri shell'i kul-
lanmayi saglayanidir.
:sh <CR> komutundan sonra shell istenildigi gibi kullanilir.
CTRL d ile cursor vi'deki yerine doner.
:!<unix komutu>: O anda Unix komutunu calistirir. File'da kaldigi ye-
re doner.
Text'in yazilmasi:
------------------
vi altindaki file'in bir kismi baska bir file'a yazilabilir.
:nw file komutu n'inci satiri yeni bir file'a yazar.
Ornek;
:3w three <CR> Ucuncu satir three adli file'a yazilir.
:23,27W newfile 23 ve 27'inci satirlar arasi newfile'a yazi-
lir.
Satir Numarasi Bulma:
---------------------
:.=<CR> : Cursor'in bulundugu satirin numarasini verir.
:n <CR> : Cursor'i n'inci satira goturur.
Buffer'in Kalan Kismini Silme:
------------------------------
:.,$d <CR> Cursor'in bulundugu satirdan sonrasini siler.
"." Cursor'in satiri
"$" Son satir anlamina gelir.
Buffer'a Bir File Ekleme:
-------------------------
:r data <CR> Cursor'in satirinin altina data file'ini ekler.
:56r data <CR> 56'inci satirin ardina data file'ini ekler.
<u> komutu ex komutlariyla yapilanlari duzeltir, file'i ex komutu on-
cesine getirir.
File Uzerinde Global Degisiklikler:
-----------------------------------
vi'in line editor'u ex yoluyla file uzerinde global degisiklikler ya-
pilabilir. Bu tur degisiklikler icin gerekli line editor komutlari
sunlardir:
:g/characters <CR> Text icinde belirtilen karakter dizisini
:g/characters/p <CR> Belirtilen karakter dizisini iceren satir
lari listeler.
:s/sozcuk/new words <CR> Satir uzerinde ilk rastlanan text new
words'le degistirilir.
:s/sozcuk/new words/g <CR> Line uzerindeki tum sozcuk'ler new words
ile degistirilirler.
:l,$S/isim/soyad <CR> File icindeki tum isimler soyad ile degis-
tirilirler.
vi'dan Cikis:
-------------
<ZZ> vi buffer'ini file'a save ederek shell'e doner.
:wq <CR> vi buffer'ini file'a save ederek shell'e doner.
:w filename Gecici buffer'i file'a yazar.
:q! Shell file'ina yazmadan vi'dan cikar.
:q Ilk yazimda vi'dan cikar.
Birden Fazla File'in Editi:
---------------------------
Format:
vi file1 file2 file3
File'in editinden sonra;
:n komutuyla file2 cagrilir. File2'de gerekli duzeltmeler yapildiktan
sonra ayni komut file3'u cagirir.
:n filename komutuyla bu file'lardan herhangi birine ulasilabilir.
vi'da Recovery:
---------------
Elektrik kesintisi yada terminal kitlenmesi gibi,vi buffer'ini file'a
yazma imkani olmadan sistemden cikmayi gerektiren bir durum oldugunda
UNIX sistemi vi buffer'inin bir kopyasini saklar.
vi -r filename <CR> komutuyla bu kopyaya ulasmak ve save etmek mum-
kundur.
SHELL KOMUT DILI
---------------
Shell'in Ozel Karakterleri:
---------------------------
* ? [] Metakarakterlerdir. Metakarakterler shell'de ozel bir anlama
sahiptir. Bu uc karakter file isimlerine karsilik olarak kul-
lanilirlar.
& Komutunun background mode'da calismasini saglar. Komut cali-
sirken terminal serbest kalir.
; Tek satirda birden fazla komutun verilmesini saglar.
\ Ozel karakterlerden (ornegin; *, ?, [], &,

once kullanil-
diginda onlarin anlamlarini yok eder.
"-"'-' Cift ve tek apostrof isareti ozel karekterlerin ve sonlandi-
rici anlaminda kullanilan boslugun (space) anlamini kaldirir.
Yalniz cift apostrof $ ve \'in ozel anlamini bozmaz.
Ornekler;
$ file * Directory altindaki tum file'lara iliskin bilgi
ekrana gelir.
* isareti tek basina directory altindaki tum
file'lari yazar.
$ ls (crf) at <CR> c,f veya r ile baslayip at ile biten
cat file'lari anlatir.
fat
rat
$ ls chapter? <CR> ? isareti tek bir karaktere karsi gelir.
chapter1
chapter2
chapter6
chapter7
$ grep word * & <CR> Word tum file'larda aranir. Arama
background'da yapilir, terminal ser-
bestir.
$ ls -l ; pg file1 Iki komut ardarda calisir.
$ grep \* file1 <CR> * (star) isaretinin ozel anlami kal-
kar. Gercekten * iceren satir, file1'
de aranir, print edilir.
Bazi Shell Komutlari:
---------------------
grep:
-----
Bir karakter dizisi istenilen file yada file'larda aranir. Diziyi ice-
ren satir ekrana gelir. Pek cok secenegi vardir.
Format:
grep word filename
banner:
-------
Argumentlerini, bir satir on karakter olacak sekil