Linux konsol uygulamalari ve BASH programlama

Transkript

Linux konsol uygulamalari ve BASH programlama
Giriş
Temel linux komutları
Akademik uygulamalar
Linux konsol uygulamaları ve BASH programlama
Aydın ÜSTÜN
Selçuk Üniversitesi
e-posta: [email protected]
04.07.2010
Aydın ÜSTÜN (Selçuk Üniversitesi)
Linux konsol ve bash (v.04.07.10)
Giriş
Temel linux komutları
Akademik uygulamalar
İçerik
1
Giriş
Temel kavramlar
SSH araçları
2
Temel linux komutları
Kabuk uygulamalarına giriş
Temel linux komutları
Awk
3
Akademik uygulamalar
Editörler
Bilim ve mühendislik uygulamaları
Yerel uygulamalar
Aydın ÜSTÜN (Selçuk Üniversitesi)
Linux konsol ve bash (v.04.07.10)
Giriş
Temel linux komutları
Akademik uygulamalar
Temel kavramlar
SSH araçları
Tanımlar
Linux Linux çekirdeğine dayalı Unix benzeri işletim sistemine verilen
genel ad
Linux sunucu Linux kullanıcılarına (ya da genel olarak istemcilere)
dosya, yazıcı paylaşımı, veritabanı, DNS, web, ftp vb. hizmetleri
sunması amacıyla özel olarak tasarlanmış donamım ve yazılım sistemi
SSH (Secure SHell) Güvenli kabuk anlamına gelir. telnet, rlogin
gibi ağ üzerindeki uzak bir sunucuya bir başka bilgisayardan erişim
olanağı sağlar
BASH (Bourne Again SHell) Özgür yazılım projesi (GNU)
kapsamında hazırlanmış bir Unix kabuğudur. Kısaca komut satırı
yorumlayıcısı olarak tanımlanabilir.
Betik (Script) Bir veya birden fazla uygulamayı çalıştıran,
sonuçlarını denetleyen ve belli çıkışlara yönlendiren program
Aydın ÜSTÜN (Selçuk Üniversitesi)
Linux konsol ve bash (v.04.07.10)
Giriş
Temel linux komutları
Akademik uygulamalar
Temel kavramlar
SSH araçları
PuTTY: Özgür SSH/Telnet istemcisi
Aydın ÜSTÜN (Selçuk Üniversitesi)
Linux konsol ve bash (v.04.07.10)
Giriş
Temel linux komutları
Akademik uygulamalar
Temel kavramlar
SSH araçları
PuTTY: Özgür SSH/Telnet istemcisi
Aydın ÜSTÜN (Selçuk Üniversitesi)
Linux konsol ve bash (v.04.07.10)
Giriş
Temel linux komutları
Akademik uygulamalar
Temel kavramlar
SSH araçları
SSH Secure Shell Transfer
Aydın ÜSTÜN (Selçuk Üniversitesi)
Linux konsol ve bash (v.04.07.10)
Giriş
Temel linux komutları
Akademik uygulamalar
Temel kavramlar
SSH araçları
SSH Secure Shell Transfer
Aydın ÜSTÜN (Selçuk Üniversitesi)
Linux konsol ve bash (v.04.07.10)
Giriş
Temel linux komutları
Akademik uygulamalar
Kabuk uygulamalarına giriş
Temel linux komutları
Awk
Kullanıcılar ve sunucuya erişim
Linux kullanıcıları yönetici tarafından belirlenmiş (veya uygun
görülmüş) kullanıcı adı ve şifre yardımıyla sisteme giriş yapabilirler
login as : aydin
aydin@193 .255.245.202 ’ s password :
aydin@galileo :~ $
Bu şekilde sisteme giriş yapan kullanıcı, kendisi için diskte ayrılmış
ev dizininde (/home/username) kabuk uygulamalarını çalıştırabilir
Sisteme ilk girişten sonra güvenlik için kullanıcının passwd
komutuyla şifresini değiştirmesi önerilir. Şifreler en az 8 karakter ve
sayı-harf kombinasyonuyla oluşturulmalıdır
aydin@galileo :~ $ passwd
Changing password for aydin
( current ) UNIX password :
Enter new UNIX password :
Retype new UNIX password :
passwd : password updated successfully
aydin@galileo :~ $
Kabuktan çıkış ve SSH bağlantının kesilmesi için exit komutunun
yazılması yeterlidir
Aydın ÜSTÜN (Selçuk Üniversitesi)
Linux konsol ve bash (v.04.07.10)
Giriş
Temel linux komutları
Akademik uygulamalar
Kabuk uygulamalarına giriş
Temel linux komutları
Awk
Komut satırı ve komut çalıştırma
Komut satırı kabuk uygulamalarının çalıştırıldığı ve kabuk istemi işareti $
ile başlayan satırdır
aydin@galileo :~ $
Kabuk uygulamaları kabuk istemi işaretinden hemen sonra yazılan komut
ile çalıştırılır. İsteğe bağlı olarak bir komutu seçenekler ve argümanlar
izler. Aşağıda geçerli veya belirtilen bir dizin içerisindeki dosyaları
listeleyen ls komutunun üç değişik çalıştırılma biçimi gösterilmektedir.
aydin@galileo :~ $ ls
Mail
cptlib
geosoft journals . xls
aydin@galileo :~ $ ls -l
total 23208
drwx ------ 2 aydin aydin
4096 Mar 19 16:06 Mail
drwxr - xr -x 2 aydin aydin
4096 Mar 19 16:02 cptlib
drwxr - xr -x 5 aydin aydin
4096 Mar 19 16:06 geosoft
-rw -r -- r -- 1 aydin aydin
137728 Mar 19 16:09 journals . xls
aydin@galileo :~ $ ls -l cptlib
total 8
-rw -r -- r -- 1 aydin aydin
329 Mar 19 16:02 DEM_poster . cpt
-rw -r -- r -- 1 aydin aydin 2579 Mar 19 16:02 cd -d . cpt
aydin@galileo :~ $
Aydın ÜSTÜN (Selçuk Üniversitesi)
Linux konsol ve bash (v.04.07.10)
Giriş
Temel linux komutları
Akademik uygulamalar
Kabuk uygulamalarına giriş
Temel linux komutları
Awk
Kabuk işaretleri ve bilinmesi gerekenler
İşaret
komut
;
&&
~
|
>
<
>>
*
?
[]
←֓
Görevi
Komut satırını çalıştırır
Aynı komut satırında komutları birbirinden bağımsız çalıştırır
Aynı komut satırında komutları birbirine bağımlı çalıştırır
Kullanıcının ev dizinine karşılık gelir
Bir komutun standart çıktısını diğer komuta girdi olarak gönderir
Standart çıktıyı bir dosyaya veya aygıta yönlendirir
Bir dosya veya aygıttan gelen girdiyi komuta yönlendirir
Standart çıktıyı bir dosyaya veya aygıtın sonuna yönledirir
Dosya adları içindeki herhangi bir karakter sınıfıyla eşleşir
Dosya adları içindeki herhangi bir karakter ile eşleşir
Dosya adları içindeki olası bir karakter sınıfıyla eşleşir
Önemli
Kabuk işlemlerinde büyük-küçük harf ayrımı vardır
Komut, dosya ve dizin isimlerinde boşluk, yıldız ve Türkçe
harflerden mutlaka kaçınılmalıdır
Aydın ÜSTÜN (Selçuk Üniversitesi)
Linux konsol ve bash (v.04.07.10)
Giriş
Temel linux komutları
Akademik uygulamalar
Kabuk uygulamalarına giriş
Temel linux komutları
Awk
Dizin değiştirme komutları
Neredeyim?
aydin@galileo :~ $ pwd
/ home / aydin
Bulunduğum dizinin altındaki bir başka dizine gitmek istiyorum
aydin@galileo :~ $ cd cptlib
aydin@galileo :~/ cptlib$
Aynı işlemi mutlak konum tanımlayarak da yapabilirim
aydin@galileo :~ $ cd / home / aydin / cptlib
aydin@galileo :~/ cptlib$
Bir üst dizine çıkmak istiyorum
aydin@galileo :~/ cptlib$ cd ..
aydin@galileo :~ $
Doğrudan başlangıç ev dizinime gitmek istiyorum
aydin@galileo :~/ texsablon / SUsem$ cd ~
aydin@galileo :~ $
Aydın ÜSTÜN (Selçuk Üniversitesi)
Linux konsol ve bash (v.04.07.10)
Giriş
Temel linux komutları
Akademik uygulamalar
Kabuk uygulamalarına giriş
Temel linux komutları
Awk
Dizin-dosya oluşturma, kopyalama, taşıma ve silme
Geçerli dizinde dizin1 adında yeni bir dizin oluşturalım
aydin@galileo :~ $ mkdir dizin1
Dosya ve dizin (alt dizinleriyle birlikte) kopyalama
aydin@galileo :~ $ cp jeosoft / src / matris . cpp dizin1 /
aydin@galileo :~ $ cp -r jeosoft / inc / .
veya taşıma (. geçerli dizin anlamındadır)
aydin@galileo :~ $ mv jeosoft / src / matris . cpp dizin1 /
aydin@galileo :~ $ mv -r jeosoft / inc / .
Sembolik bağ oluşturma
aydin@galileo :~ $ ln -s ~/ jeosoft / inc / matris . h
aydin@galileo :~ $ ls -l
lrwxrwxrwx 1 aydin aydin 20 Jul 2 16:29 matris . h -> jeosoft / inc / matris . h
Bir veya birden fazla dosyayı (eşleştirme işaretleri kullanarak) silmek için
aydin@galileo :~ $ rm sil . dat abc *. txt
İçi boş bir dizini silmek için rmdir, belirtilen bir dizini alt dizinleriyle
birlikte silmek için rm -r dizinadi
aydin@galileo :~ $ rmdir dizin1 /
aydin@galileo :~ $ rm -r dizin2 /
rm komutunu kullanırken iki kez düşünülmelidir. Çoğu zaman silinenlerin geri getirilmesi şansı yoktur.
Aydın ÜSTÜN (Selçuk Üniversitesi)
Linux konsol ve bash (v.04.07.10)
Giriş
Temel linux komutları
Akademik uygulamalar
Kabuk uygulamalarına giriş
Temel linux komutları
Awk
Yardım ve bazı bilgi edinme komutları
Komut
help
man komut
date
du -sm
history
hostname
who
uname -a
Açıklaması ve örneği
Kabuk komutlarının listesini verir
Komut hakkında sisteme kayıtlı kullanım kılavuzudur. Çıkış için q
Sistem tarih ve zamanını verir
$ date
Fri Jul 2 20:20:50 EEST 2010
Geçerli dizinin MB cinsinden diskte ne kadar yer kapladığını verir
$ du -s
12768 .
Son girilen komutların listesini verir
Bilgisayarın konak adını verir
$ hostname
galileo
Sistemde o an çalışan kullanıcılar hakkında bilgi verir
$ who
aydin pts/0 2010-07-02 20:23 (195.174.24.109)
Sistem hakkında bilgi verir
$ uname -a
Linux galileo 2.6.18-5-amd64 #1 SMP Tue Dec 18 21:39:26 UTC 2007 x86 64 GNU/Linux
Aydın ÜSTÜN (Selçuk Üniversitesi)
Linux konsol ve bash (v.04.07.10)
Giriş
Temel linux komutları
Akademik uygulamalar
Kabuk uygulamalarına giriş
Temel linux komutları
Awk
Dosyalarla çalışma (bilgi alma)
Komut
file dosya
identify dosya
more dosya
less dosya
cat dosya
head dosya
tail dosya
cut -c M-N dosya
grep -e harita dosya
grep -v harita dosya
sort dosya
sort -nr dosya
wc dosya
wc -l dosya
Açıklaması ve örneği
Dosya hakkında bilgi verir
$ file linux.tex
linux.tex: LaTeX 2e document text
Resim dosyaları hakkında bilgi verir
$ identify putty.png
putty.png PNG 456x436 456x436+0+0 DirectClass 35
Dosya içeriğini sayfa sayfa gösterir. Çıkış için q
İçeriğe daha detaylı bakış. Çıkış için q
İçeriği standart çıktıya (ekrana) döker
İlk 10 satırını ekrana döker
Son 10 satırını ekrana döker
Her satırda M’den ve N’ye (dahil) kadar olan karakterleri e
İçeriğinde harita kelimesi geçen satırları ekrana döker
İçeriğinde harita kelimesi geçmeyen satırları ekrana döker
Satırları alfabetik olarak sıralar
Satırları sayısal olarak sıralar
Satır, kelime ve karakter sayısını verir
Satır sayısını verir
Aydın ÜSTÜN (Selçuk Üniversitesi)
Linux konsol ve bash (v.04.07.10)
Giriş
Temel linux komutları
Akademik uygulamalar
Kabuk uygulamalarına giriş
Temel linux komutları
Awk
Dosyalarla çalışma (arama ve sıkıştırma)
Komut
locate dosya
find
zip
unzip
tar
Açıklaması ve örneği
Veritabanında “dosya” kelimesi geçen kayıtlar aranır
Belirtilen dizin ve alt dizinlerinde doğrudan arama. Örnekler
$ find . -print | grep tex
$ find / -name tex
$ find / -name tex 2> /dev/null
$ find / -name tex* 2> /dev/null
zip biçiminde sıkıştırma (alt dizinleri de kapsaması için -r)
$ zip -r dosya.zip dizin/
zip biçimini açma
$ unzip dosya.zip
Unix/Linux sistemlerinin en bilindik sıkıştırma (ve açma) aracı
c sıkıştır, x aç, t gözat (sadece biri)
z tar.gz biçiminde açma, sıkıştırma ve göz atma
j tar.bz2 biçiminde açma, sıkıştırma ve göz atma
$ tar -cvf dosya.tar dizin/
$ tar -czvf dosya.tar.gz dizin/
$ tar -cjvf dosya.tar.bz2 dizin/
$ tar -xzvf dosya.tar.gz
Aydın ÜSTÜN (Selçuk Üniversitesi)
Linux konsol ve bash (v.04.07.10)
Giriş
Temel linux komutları
Akademik uygulamalar
Kabuk uygulamalarına giriş
Temel linux komutları
Awk
Ağ araçları
ftp dosya transfer protokolü. Sunucu adı, kullanıcı ve şifre gerektirir
aydin@galileo :~ $ ftp atlas . selcuk . edu . tr
Connected to atlas . selcuk . edu . tr .
220 Microsoft FTP Service
Name ( atlas . selcuk . edu . tr : aydin ): austun
331 Password required for austun .
Password :
230 User austun logged in .
Remote system type is Windows_NT .
ftp > quit
221
wget http/ftp üzerinden dosya indirme aracı
aydin@galileo :~ $ wget -q ftp :// ftp . ulakbim . gov . tr / ssh / SSHSecureShellClient -3.2.9. e
aydin@galileo :~ $ ls SSH *
SSHSecureShellClient -3.2.9. exe
ssh güvenli kabuk bağlantısı. Sunucu adı, kullanıcı ve şifre gerektirir
aydin@aydin - laptop :~ $ ssh aydin@193 .255.245.202
aydin@193 .255.245.202 ’ s password :
aydin@galileo :~ $
lynx interaktif web ve dosya tarayıcısı
aydin@aydin - laptop :~ $ lynx ftp :// ftp . ulakbim . gov . tr
aydin@galileo :~ $
Aydın ÜSTÜN (Selçuk Üniversitesi)
Linux konsol ve bash (v.04.07.10)
Giriş
Temel linux komutları
Akademik uygulamalar
Kabuk uygulamalarına giriş
Temel linux komutları
Awk
Çıktı yönlendirme (>, >>, | örnekleri)
pics dizin listesini dosyaya yönlendirelim ve ilk üç satırını ekrana dökelim
aydin@galileo :~ $ ls -l pics > liste
aydin@galileo :~ $ head -n 3 liste
total 5316
-rw -r -- r -- 1 aydin aydin
55789 2010 -03 -19 16:06 austun . tif
-rw -r -- r -- 1 aydin aydin 2501377 2010 -03 -19 16:06 selcuk - logo . eps
Bir önceki dosyanın sonuna, kaç satır bulunduğu bilgisini ekleyelim ve son
iki satırı ekrana dökelim
aydin@galileo :~ $ wc -l liste >> liste
aydin@galileo :~ $ tail -n 2 liste
-rw -r -- r -- 1 aydin aydin
240 2010 -03 -19 16:06 selcuk - unive risty . tex
7 liste
liste isimli dosyanın çıktısını grep komutuna girdi olarak gönderelim ve
içinde “.tif” geçen satır(lar)ı bulalım
aydin@galileo :~ $ cat liste | grep . tif
-rw -r -- r -- 1 aydin aydin
55789 2010 -03 -19 16:06 austun . tif
pics isimli dizindeki uzantısı “eps” olan dosyaları bulalım
aydin@galileo :~ $ ls pics /*. eps
pics / selcuk - logo . eps pics / selcuk - logol . eps
sonuçların yan yana değil alt alta verilmesini istiyorsak
aydin@galileo :~ $ ls pics /*. eps | tr ’ ’ ’\n ’
pics / selcuk - logo . eps
pics / selcuk - logol . eps
Aydın ÜSTÜN (Selçuk Üniversitesi)
Linux konsol ve bash (v.04.07.10)
Giriş
Temel linux komutları
Akademik uygulamalar
Kabuk uygulamalarına giriş
Temel linux komutları
Awk
Awk ile veri işleme
Kabuk uygulamalarıyla elde edilen sonuçların bazı durumlarda satır satır
taranarak başka biçimlere dönüştürülmesi (işlenmesi) istenir. Sütunlar halinde
birbirinden ayrılmış verilerin işlenmesinde awk güçlü bir yorumlayıcıdır ve
genellikle tek satırda yazılan komut bu iş için yeterli olur.
İçinde son deprem bilgilerinin yer aldığı bir dosyadan ilk iki satır
aydin@galileo :~ $ cat deprem . dat | head -n 2
2010.07.02 23:30:23 38.8477 27.9203 5.4 2.6 -.- -.- AKHISAR
2010.07.02 19:28:15 40.0053 36.4622 5.0 2.6 -.- -.- CAMLIBE L
Boşluk karakteri ile birbirinden ayrılmış 9 sütundan 3, 4 ve 9. sütun
aydin@galileo :~ $ cat deprem . dat | awk ’{ print $3 , $4 , $9 }’ | head -n 2
38.8477 27.9203 AKHISAR
40.0053 36.4622 CAMLIBEL
Şiddeti 3’den fazla ($6>3) olanların yeri ve zamanı
aydin@galileo :~ $ awk ’{ if ($6 >3) print $1 , $2 , $3 , $4 , $9 }’ d eprem . dat
2010.07.01 10:52:45 40.6273 34.9480 CORUM
2010.07.01 08:03:53 38.4522 39.1315 GOZELI - SIVRICE
Konum bilgisini karşı enlem ve boylam olarak iki basamaklı gösterelim
aydin@galileo :~ $ awk ’{ printf ("%.2 f %.2 f % -20 s\ n " ,90 - $3 , $4 , $9 )} ’ deprem . dat
49.37 34.95 CORUM
51.55 39.13 GOZELI - SIVRICE
Aydın ÜSTÜN (Selçuk Üniversitesi)
Linux konsol ve bash (v.04.07.10)
Giriş
Temel linux komutları
Akademik uygulamalar
Editörler
Bilim ve mühendislik uygulamaları
Yerel uygulamalar
Editörler
Editör
Editör metin dosyalarının oluşturulması, düzenlenmesi ve dosya sisteminde kaydedilmesi
işini yapan programdır. Her işletim sistemin temel bilşenlerinden biridir. Metin
editörleriyle veri, konfigrasyon ve kaynak kodları içeren dosyalar düzenlenir. Kullanımı:
aydin@galileo :~ $ editoradi [ secenekler ] dosya_adi
Editör adı
nano
mcedit
vim
Açıklaması ve kullanımı
Linux’a yeni başlayanların kullanabileceği en uygun editör
Ctrl tuşlarını kullanır (çıkış ctrl+X)
Kişisel (kullanıcıya özgü) ayarlar için
$ cp /etc/nanorc ~/.nanorc
$ nano ~/.nanorc renklendirmeyi düzenleyebilirsiniz
Midnight Commander’in editörüdür. Her sistemde olmayabilir.
Menu tuşlarını kullanır (çıkış F10 veya esc+0)
Unix/Linux kullanıcılarının gözde editörü
Türkçe yardım http://tr.pardus-wiki.org/Vim adresinden
alabilirsiniz veya $ vimtutor diyerek interaktif bir eğitime
hemen başlayabilirsiniz
Aydın ÜSTÜN (Selçuk Üniversitesi)
Linux konsol ve bash (v.04.07.10)
Giriş
Temel linux komutları
Akademik uygulamalar
Editörler
Bilim ve mühendislik uygulamaları
Yerel uygulamalar
Uygulama geliştirme ve bilimsel hesaplama
g++ kendi yazdığınız c/c++ kaynak kodlarınızı derlemenizi sağlar.
Aşağıdaki kodu deneme.c dosyasına yazalım
aydin@galileo :~ $ nano deneme . c
# include < stdio .h >
int main ()
{
printf (" Merhaba Dunya \ n ");
return 0;
}
aydin@galileo :~ $ g ++ deneme . c -o deneme
aydin@galileo :~ $ ls deneme *
deneme deneme .c
aydin@galileo :~ $ ./ deneme
Merhaba Dunya
octave matlab benzeri hesaplayıcı ve geliştirme ortamı
aydin@galileo :~ $ octave
octave :1 > format long
octave :2 > a =6387137; f =1/298.257222101
f = 0.003352810681 18 23 2
octave :3 > b = a *(1 - f)
b = 6356752.3141403 6
octave :4 > exit
Aydın ÜSTÜN (Selçuk Üniversitesi)
Linux konsol ve bash (v.04.07.10)
Giriş
Temel linux komutları
Akademik uygulamalar
Editörler
Bilim ve mühendislik uygulamaları
Yerel uygulamalar
galileo’da jeodezi-kartografya uygulamaları
Komut
Açıklaması ve kullanımı
ell2gkr
Elipsoidal koordinatlardan Gauss-Kruger koordinatlara
ell2xyz
Elipsoidal koordinatlardan global kartezyen koordinatlara
gkr2ell
Gauss-Kruger koordinatlardan elipsoidal koordinatlara
geodesic Elipsoit yüzeyinde 2. temel ödev çözümü (Vincenty’ye göre)
hgt2xyz
SRTM hgt dosyasından boylam, enlem ve yük. (jeoitten) bilgisine
harm2hgt GGM katsayılarından gravite alanı ve yükseklik sistemlerine
harm2und GGM katsayılarından jeoit yüksekliği, çekülsapması bileşenlerine
meanstd
Bir dizinin istatistiksel özelliklerini verir
nmea2gga GPS NMEA mesajından navigasyon bilgisine
nmea2kml GPS NMEA mesajından kml (Google Earth) biçimine
sph2xyz
Yermerkezli küresel koordinatlardan kartezyen koordinatlara
srtmhgt
Enlem ve boylam bilgisi bilinen bir nokta için SRTM yuksekliği
xyz2ell
Global kartezyen koordinatlardan elipsoidal koordinatlara
xyz2sph
Global kartezyen koordinatlardan yermerkezli küresel koordinatlara
Komutların kullanımı hakkında bilgi almak için
$ komut -h
Aydın ÜSTÜN (Selçuk Üniversitesi)
Linux konsol ve bash (v.04.07.10)
Giriş
Temel linux komutları
Akademik uygulamalar
Editörler
Bilim ve mühendislik uygulamaları
Yerel uygulamalar
Son
Teşekkürler...
Sorular???
Aydın ÜSTÜN (Selçuk Üniversitesi)
Linux konsol ve bash (v.04.07.10)

Benzer belgeler

T.C. SELC¸UK ¨UN˙IVERS˙ITES˙I FEN B˙IL˙IMLER˙I ENST˙IT¨US¨U

T.C. SELC¸UK ¨UN˙IVERS˙ITES˙I FEN B˙IL˙IMLER˙I ENST˙IT¨US¨U güçlükler nedeniyle yöntemin uygulanması da oldukça zordu. Uydu gözlem teknikleri jeodezik koordinatların elde edilmesini kolaylaştırdığından astrojeodezik yöntem günümüzde yeniden geç...

Detaylı