Etiketler

29 Mart 2013 Cuma

Linux-cygwin de kod çalışmaları

Merhaba Arkadaşlar
Bu yazımda linux terminal ekranıyla yada cygwin linux emulatoründe yeni tanışanlara , kod yazmaya başlayan arkadaşlara yardımcı olmak amacıyla paylaşımda bulunmak istiyorum. Yazının sonuna kadar okursanız faydalı olacağını düşünmekteyim.


Örnek1:
for file in *
do
 if grep -q POSIX  $file
 then
   echo $file
 fi
done

Bu kod da bütün dosyalarınızı tarar ve içinde posix olan dosyaları döndürür.

Örnek2:
nano deneme.sh
salution="hello"
echo $salution
echo "the program $0 is now runnig"
echo "the parameter list was $*"
echo "the parameter second parameter $2"


$0 ->scriptin ismini basar dosyanın adını gösterir
$*->toplam tüm parameteri yazdırır

nano komutu size boş bir dosya oluşturmanızı sağlar. nano deneme.sh yazdığınızda deneme isimli sh uzantılı yeni bir dosya oluşturursunuz. nano yerine gedit komuta da kullanabilirsiniz. Aynı zamanda yazdığınız kodları görmek isterseniz vi komutu da var.
vi deneme.txt
olarak da yazabilrisiniz ancak vi ile girdiğiniz penceren direk çıkamıyorsunuz.
Kayderek çıkmak istiyorsanız
:q
kaydetmeden çıkmak istiyorsanız
:!q
komutunu kullanmalısınız.

sh deneme.sh
diyerek yazılan komutları çalıştırabilirsiniz.
en başta dosya adını sonra bütün parameterleri sonra 2. parametre yi döndürür.

Örnek 3:
nano deneme.sh
read timeofdate
if [ $timeofdate = "yes"]; then
 echo " good morning"
else
 echo "good afternoon"

fi
exit 0

Kodun sonunda fi yazmamızın sebebi if in sonuna geldiğimizi belirtmek.
Aynı mantıkla case kullanırsanızda esac kullanmanız gerekiyor.
exit 0 -> hatasız çıkış yapabilmek için, eğer 1 olursa hata mevcur demektir.
for ile bir kod bloğu yazdığımızda kapatmamıza gerek yok çünkü for'lu blogumuzun kodlarını do-done arasına yazıyoruz.
Yukarıdaki kod da kullanıcı yes cevabını verirse good morning başka bir cevap verirse good afternoon yazısı basıyor.
"echo"istediğinizi yazdırmak, ekrana basmak, için kullanılır.
Terminal ekranında kod yazarken bir boşluk hatanız olursa bu hata olarak görünür, bu yüzden dikkat etmenizi öneririm.
Ayrıca   case methodunu kullanırsanırz  her satırın sonunda iki tane noktalı virgül koymanız gerekiyor .(;;)
Örnek 4:
nano f.sh

myvar="hello word"
echo $myvar
echo " enter new value"
read myvar
echo "myvar new equals $myvar"

Yukarıdaki kodu sh f.sh diyerek açıyoruz.
Başlangıçta  hello word yazıyor sonra girdiğimiz value yu döndürüyor.

-d komutu directory
-f komutu file
f*.sh komutu f harfi ile başlayan ve uzantısı sh olan dosyaları getirir.

cat a.txt
Yukarıdaki cat a.txt komutu a.txt adlı dosyanın içindeki yazanları , verileri gösterir.
cat a.txt>b.txt
Bu komut ise a.txt içindeki verileri b.txt adlı dosyaya kopyalarak yazar.
cat a.txt>>b.txt
Komutu ise a.txt dosyanın içini b.txt dosyasına ekler. b.txt dosyanın içinde daha önce veri var ise kaybolmaz onun sonuna a.txt de bulunan veriler eklenir.
grep -c in words.txt
words.txt adlı dosyadaki verilerde geçen "in" kelimesinin kaç satırda olduğunu döndürür.

Şimdilik bu kadar ama Linux komutları hakkında bilgi vermeye daha sonraki yazılarımda da devam edeceğim.
Herkese iyi çalışmalar
*YASEMIN DEMIRAL

6 yorum:

  1. ucmussun ya.cygwin kullanmıstım bi kaç sene önce ama bazı basıt komutları çalışmamıs ve paketleri güncelleyememistim.nereden ögrendin bu kadarını?

    YanıtlaSil
  2. Cygwin i kurarken eksik kütüphane kurmuş olabilirsin. Rahat kullanım için bütün hepsini kurmak en güzeli..

    YanıtlaSil
  3. Bu kodları linux ortamında nasıl kullanbiliriz?

    YanıtlaSil
  4. aynı kodları linux terminal ekranında (ctrl+alt+T) de yazarsan d çalışır. Zaten cygwin windows da kullanabileceğin linux terminal ekranı..

    YanıtlaSil
  5. Kodlar için teşekkürler.

    Bir açık kaynak kod olan R kodunun içeriğini başkalarının görmesini istemiyorsak, Windows'ta niçin CygWin kurmak zorunda kalıyoruz anlayamıyorum:
    http://www.enscryption.com

    Aynı şekilde, açık kaynak kod olan R kodu, niçin Linux'ta başkalarının içeriğini görmesi engellenebiliyor (ticari amaçlar vb. için) da Windows'ta içeriğinin görülmesini engellemek için 10 takla atmak zorunda kalıyoruz (CygWin kurma zorunluluğu vb.)?

    YanıtlaSil
  6. bana hack kodu lazım nereden bulabilirim

    YanıtlaSil