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
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ç...