Salı, Haziran 05, 2007

SA-100 Fundementals of Solaris Ders Notlari

SA-100 Fundementals of Solaris

1.1.1970 Unix'in resmi olarak çalışmaya başladığı tarihtir. Sistem başlatıldığında 1970'den ileriye doğru saniye sayar. Sistem saniye saymaktadır, dolayısıyla 2000 yılı problemi bulunmamaktadır.

groupadd -g 101 sales

groupadd -g 102 support

cat /etc/group

UNIX'de dosyaların uzantılarının bir anlamı bulunmamaktadır. Dosyanın çalıştırılabilir (executable) olup olmaması verilecek X (execute) hakkı ile ilgilidir.

UNIX'de dosya isimleri en fazla 256 karakter olabilir.

useradd -u 1501 -g 101 -d /export/home/mali -m -s /bin/bash mali

Tüm UNIX'lerde kullanıcı oluşturulduğunda varsayılan değer olarak hesabı kilitlidir.

showrev : OS versiyonunu ekranda göstermek için kullanılır.

ifconfig -a Tüm interfacelerin IP bilgilerini gösterir.

Hostname : bilgisayarın adını görmek için kullanılır.

/usr/sbin/ping -s (statistics) IP

pwd (print working directory) : O an içinde çalışılan klasörü gösterir.

Solaris'deki komutların çoğu /usr/bin veya /usr/sbin'de bulunmaktadır. /usr/bin daha çok normal kullanıcının kullandığı, /usr/sbin ise Admin tarafından kullanılan komutları içerir.

Solaris OE (Opeating Environment) olarak değerlendirilir.

- SunOS 5.10

Solaris

  • GUI – CDE (Common Desktop Environment)

  • Java Desktop

Kernel, işletim sisteminin kalbidir. Kullanıcı doğrudan donanımla konuşamaz, onun yerine Kernel konuşur. Kernel ile kullanıcının anlaşmasını da ara katman olarak Shell (Kabuk) sağlar. Shell, komutları C çağrılarına çevirir.

Sistemin bellekten okuma hızı yaklaşık 10 nanosaniye, diskten okuma hızı ise 10 milisaniye civarındadır. Disk belleğe göre en az 1000 kat, normalde 1 milyon kat daha yavaştır.

Kernel, bellek sayfalama işlemleri için Kernel Paging Algorithm denen bir sistem kullanır.

Swap (Takas) alanı oranı (RAM) 1 / 2 (SWAP) dir.

Sistemde canlı olarak bulunan proseslerin üç hali vardır. Running, Ready ve Wait.

CPU'ya atanan işlem atandığı süre boyunca (Time Slice) çalışır. Sürekli “Running” halinde kalmaz.

Wait modu başka bir prosesden bilgi beklendiğinde bulunulan durumdur. Örneğin, www.sun.com yazıldığında ekranda göstermek için Internet'ten web sayfasına ait bilgilerin inmesini bekleyen browser gibi.

Shell, bir Interpreter (yorumcu) dur. İlk UNIX shell AT &T Bell Laboratuvarlarında geliştirilen Bourne Shell'dir (sh). Steven Bourne tarafından geliştirilmiştir.

Diğer Shell'ler :

  • Korn (David Korn)

  • Bash (Bourne Again Shell)

  • C Shell (csh)

  • Z Shell (zsh)

  • Tc Shell (tsh)

Shell'lerin farklı olması yazılan temel UNIX komutlarını etkilemez. En büyük farklılıklar script yazarken görülmektedir.

UNIX'de kullanılan en gelişmiş script dili PERL'dir.

  • Tüm konfigürasyon dosyaları /etc klasöründe durur.

  • C:\windows klasörünün Sun Solaris karşılığı /usr ' dir. Sun Solaris'deki tüm OS dosyaları /usr'da durur.

  • C:\Program Files\ karşılığı /opt' dir.

  • Emailler, printer dosyaları, sistem logları ve Web Server /var altında durur.

  • Cihazlar /dev' de durur.

  • Kullanıcı ev dizinleri (home), /export' da durur. Ör : /export/home/mali.

su (switch user) komutunun (-) ile kullanılması kıdemli UNIX yöneticilerinin tercih ettiği bir yoldur.

id komutu, whoami gibi çalışır.

cd home (path yazılımı Relative Path'dir)

cd /export/home (path yazılımı Absolut Path'dir)

cd (doğrudan home folder'a yönlendirir)

cd ~ (doğrudan home folder'a yönlendirir)

/tmp klasörü Virtual Memory'i kullanır. Buraya yazılan dosyalar sistemin ilk kapatıp açılmasında silinebilir. Bu klasörde farklı bir dosya sistemi kullanılır. Bu (silinme), Solaris'e özgü bir durumdur.

Root kullanıcısının şifresi 'Master Key'dir. Yani tüm şifreleri açabilir. Şifreli ekran koruyucuları dahil.

uname -a ekrana işletim sistemine dair tüm bilgileri döker.

shovrev daha da detaylı bilgi verir.

Birden fazla komutu ard arda çalıştırmak için aralarına (;) konulur.

cal komutu takvimi görüntüler.


“Dont let your fıngers go faster than your mind”


Sun dokümanları http://docs.sun.com adresinden indirilebilir.

Başına (.) konan dosyalar görünmez olur.

ls -al ; all + long formatta gösterir.

ls -ltr ; dosyaları baştan sona doğru yaratılma tarihine göre sıralar.

ls -lt ; sondan başa sıralar.

ls -f ; dosya tipi hakkında özet bilgi verir. (dosya tipleri : / directory, @ link, * executable)

ls -R : (Recursive search) Alt dizinleri gösterir.

Akan ekranı CTRL+S durdurur. CTRL+Q kaldığı yerden devam ettirir.

file komutu dosyanın tipini verir.

strings komutu ile binary dosya içindeki text kısımlar görüntülenebilir.

cat komutu içeriğin tamamımı bir seferde ekranda gösterirken, more sayfa sayfa gösterir.

head -3 /var/adm/messages ile içeriğin ilk 3 satırını göstermek mümkündür.

tail -3 /var/adm/messages ile sondan 3 satır görüntülenebilir.

Bir dosyadaki satırları saymak için ;

cat /var/adm/messages | wc -l

lpstat -o (status)

lpstat -t (detaylı göster)

lp /etc/paswd (dokümanı yazıcıdan basar)

cancel (baskıyı iptal eder)

head -27 /var/adm/messages | tail -7 (20-27 satırları ekrana bas)

rm komutu sadece görünen dosyaları siler. Saklı dosyaları silmek için rm .* kullanılabilir.

touch dosya1 dosya 2 ... ile aynı anda birden fazla dosya yaratmak mümkündür.

cp ../file2 . ( üst klasörden buraya file2 dosyasını kopyala)

mv komutu dosyanın adını değiştirmek için kullanılabilir.

mv dosya1 dosya2

mv ../file2 . (üst dizinden dosyayı buraya al)

cp -r DIR2 DIR5 (Alt klasör ve dosyalarla birlikte kopyala)

rmdir komutu dolu klasörü silmez. rm -rf (recursive + force) ile silmek mümkün olabilir.

rm -ri BACKUP (Interactive remove). Silerken soru sorar.

ln -s /var/adm/messages log (Sembolik link oluşturur)

Linkleri silmek gerçek dosyayı silmez. Link Windows'daki shortcutlarla aynı işlevdedir.

vi' de farklı iki mod bulunur. Yazım ve komut modları.

Yazı moduna geçmek için : i a o

Komut moduna geçmek için : ESC

Cursorun olduğu yerden itibaren yazmak için Insert (i), sondan devam etmek için append (a) komutları kullanılır.

Cursorun altına boş satır açmak için Open (o) komutu kullanılır.

x: Cursorun üzerinde olduğu karakteri siler.

3x : Baştaki sayı kadar karakteri cursordan itibaren siler.

dd : Cursorun bulunduğu satırı siler.

4dd : 4 satır siler.

u: undo

yy : Satır kopyalama komutu.

5yy : 5 satır kopyala.

p : Cursorun altına yapıştır.

/karpuz : Cursordan sonraki ilk diziyi bulur.

:7 : yedinci satıra gider.

:q : Çıkış.

:q! : Quit without save.

:wq : write + quit

:wq! : Salt okunur dosyaların üzerine zorlayarak yazmak için kullanılır.
cmp file1 file2 : İki dosyayı karşılaştırır.

diff file1 file2 : İki dosyayı daha detaylı karşılaştırır.

sdiff file1 file2 : Çok daha detaylı karşılaştırma bilgisi verir.

sort : Dosyanın içeriğini sıralar.

sum : komutu checksum oluşturmaya yarar.

cksum : Daha güçlü bir checksum algoritması kullanarak checksum oluşturur. (CRC32)

cd ~ (kullanıcı adı) yazarak kullanıcının ev dizinine gitmek mümkündür.

cd - : Bir önceki dizine geri döner, üst klasöre değil.

ls file* ; ls file?* ; ls ????

ls file[azum07bc]*

ls file[a-k0-7]*

ls file[a-kzpn0-57]

İşletim sisteminin değişken değerlerini görmek için değişken başına $ konulması gereklidir.

echo $PATH

PATH'in aynı kalması için ; PATH=$PATH:/usr/sbin komut örneğindeki gibi bir ekleme yapılabilir. Değişkenlerin tüm shellere aktarılması için komutun arkasından export komutu da çalıştırılmalıdır.

Değişken atamak için set komutunu kullanıyoruz. İstenmeyen değişkenleri silmek için de unset komutu kullanılır.

Prompt değişkeni PS1' dir

ör : set PS1='$PWD>'

history komutu , kabuğa yazılan komut geçmişini listeler.

Komut geçmişi, ~/.bash_history dosyasına yazılır. Bellekte tutulan komut geçmişi ise ancak kullanıcı logout olurken bu dosyaya kayıt edilir. Dolayısıyla tam bir komut geçmişine ancak bir sonraki loginde ulaşmak mümkündür.

Listelenen geçmişten n nolu komutu çalıştırmak için !komutno yazılabilir.


Bash, Korn ve Bourne Shell için system wide Init dosyası /etc/profile' dir.

Tüm kabuklar için Primary User Init dosyası ~/.profile ve ~/.bashrc' dir.

I/O Redirection

UNIX makinaları başlatıldığında 3 dosya otomatik olarak yaratılır.

stdin stdout stderr

0 1 2

keyboard screen screen

> standart redirection (mevcut değerin yerine yazar)

>> append (mevcutun sonuna ekler)



CAL > file1 2>file2

büyük harfli stderr dosyaya yönlensin

komut yok


CAL 1>file1 2>file2

stdout stderr


banner : dikkat çekici mesaj için kullanılır.

tty (terminal type) : terminal no görmek için kullanılır.

banner ........ > /dev/pts/7


which : Bu komut bir komut ya da çalıştırılabilir dosyanın hangi path'de durduğunu söyler.

which /s : Sadece $PATH değişkeninde bulunan klasörlere bakar.

whereis : bu komut da aynı işlem için kullanılır.

who : Makinaya bağlı kullanıcı ve terminal oturumlarını listeler.


Dosya Yetkileri

-rw-r—r-- (en başta bulunan alan type belirtir.)

types :

d: directory

l: link

-: file

c, b: device

p: pipe


haklar :

r : Read (+copy)

w: Write (+delete)

x: Execute

scriptlere x (execute) hakkı verilmezse çalıştırılamaz.

Windows'tan farklı olarak grup yetkilerinin kişi yetkileriyle toplanarak toplamda bir yetki oluşturması modeli uygulanmamaktadır.

@page {size:8.5in 11in;margin:0.79in;} P {margin-bottom:0.08in;}

Ör : user : r-- group : -w- toplam yetki: rw- değildir.

chmod dosya ve klasörler üzerinde yetkileri değiştirmek için kullanılan komuttur.

rw-

(110) 2lik düzende = 6 10luk düzende

r-x

(101) 2lik düzende = 5 10luk düzende

7 = rwx

6 = rw-

5 = r-x

4 = r--

3 = -wx

2 = -w-

1= --x

chmod 777 “dosyaadı”

chmod 000 “dosyaadı” ile dosya üzerindeki tüm yetkiler kaldırılır.

Dosyanın yetkileri 000 ile kaldırılsa ile dosyanın sahibi olduğu için kişinin rm komutu ile dosyayı silme imkanı vardır.

chown dosya veya klasörün sahibini değiştirir.

Bir dosyanın sahibi, o dosyanın sahipliğini değiştiremez. Yalnızca root bu yetkiye sahiptir.

Bunun sebebi, yapılan bir işleme dait kanıtların silinmesinin engellenmesi ya da eylemin suçunun başkasına atılmasını (sahipliği başkasına atamak yoluyla) engellemek içindir.

Harfleri kullanarak yetki verme yazım kuralları :

u : user

o : other

g : group

a : all

ör :

chmod g+x dosyaadı

chmod g+w,o+x dosyaadı

chmod a-x dosyaadı

chmod a+x ve chmod +x aynı anlama gelir.

chmod -rwx

chmod -R ile dizin ve altındaki tüm dosyalara aynı yetkiyi tanımlamak mümkündür.

Bir klasöre kopyalanan dosyaların üst veya “parent “ dizinden kalıtım (inheritance) ile yetki alabilmesi durumu yoktur.

chown ve chgrp komutları için de -R parametresi kullanılabilir.

777

umask 022 - - - - w - - w -

755 r w x r – x r – x

7 5 5


umask xxx ile istenen maske verilebilir.

bir klasöre sadece r (444) yetkisi vermek klasörün içeriğini okumak için yeterli değildir. Bu yetki seti sadece basit olarak listelemeye yeterlidir.

Bir klasörün içini okumak ve incelemek için en az r_x (555) yetkisi gereklidir.

Klasör için chmod 555

komutu çalıştırıldığında -R parametresi olmadığından altındaki dosya ve izinler etkilenmez.

Access Control List

getfacl ( Get File Access Control List)

setfacl (Set File Access Control List)

getfacl -> ls -l

setfacl -> chmod

Dosyaya yeni ACE (Access Control Entry) eklendiğinde ls -l komutunun çıktısında ilave olarak (+) işareti görülür. Bu, dosyada ACE olduğun gösterir.

setfacl -m user:lab:r-- dosyaadı

ancak mask'in değiştirilmesi gereklidir.

setfacl -m mask:7 dosyaadı (mask değiştirir)

grep -i ( büyük küçük harf farkı gözetme)

grep -v (yazılı dizi dışında kalanları göster)

^ - satır başı

$ - satır sonu

'x..y' - x ile başlayan ve y ile biten arada iki karakter olan diziler

'[a-z]*' - küçük harf ile olan her şey

'[Rr]oot' - Root veya root

'[^a-m]attern' - a'dan m'ye kadar OLMAYAN harfler

find /usr -name ifconfig 2>file2

oluşan çıktıdaki hata mesajlarını dosyaya atar.

find /usr -name ifconfig 2>/dev/null

oluşan çıktıdaki hata mesajlarını UNIX'in karadeliği NULL'a atar.

find -name

-user

-perm 755

-mtime +365

-mtime -7

-size +10000

ps -ef (varolan tüm prosesleri listeler)

sleep x ( x sn boyunca bekler)

arkasına & (and) işareti konan komutlar arka planda çalışır.

Ör : xclock &

ptree : Process Tree'yi gösterir.

pgrep xclock : sadece xclock PID'lerini verir.

jobs : İş nolarını verir.

kill %3 : 3 nolu işi öldür.

pkill xclock : verilen isme uygun işleri bitirir.

alias : komutlara takma isimler vermke için kullanılır.

Ör : alias c=clear , alias ll='ls -a'

unalias : verilen aliasları silmek için kullanılır.



Hiç yorum yok: