İletileri Göster

Bu özellik size üyenin attığı tüm iletileri gösterme olanağı sağlayacaktır . Not sadece size izin verilen bölümlerdeki iletilerini görebilirsiniz


Konular - HS-Abdullah

Sayfa: 1 [2] 3
16
PHP / SMF 1.x Mesaja Kimin Alıntı Yaptığını Gösterme Modu
« : Ocak 23, 2011, 07:58:13 ÖS »
Merhaba Arkadaşlar,

Hostingsiteniz.NET olarak SMF  1.X forum sistemi  için geçerli olan ufak bir modül yazdık.

Modül ile ilgili olarak:

Özellikleri

- Alıntı yapan kişinin kimliği mesaj sahibine gider
- Alıntıya verilen cevap mesaj sahibine gider
- Şayet mesajda birden fazla alıntı varsa alıntı sahiplerine ayrı ayrı özel mesaj gider.Örneğin bir alıntı hostingsiteniz nickli üyeye aynı mesajda bir diğer alıntı ise smf nickli kullanıcı aitse alıntıların konumları önemsenmeksizin (iç içe veya ayrı ayrı) her bir şahsa ayrı ayrı bilgilendirme mesajı gider.
- Bir kişiye ait birden fazla alıntı yapılmışsa örneğin hostingsiteniz nickli kişiye ait 6 adet alıntı yapılmışsa yanlızca 1 adet özel mesaj formatında ilgili şahsa bilgilendirme mesajı gider.
- Bilgilendirme mesajını "Haber Botu" diye betimlenen hayali bir üye atar. Bu sebeple geri yanıtlanamaz.
- Bir mesaj için maksimum 4 adet özel bilgilendirme mesajı atılabilir. Bu özellik veritabanının gereksiz yere şişmemesi için konulmuştur. 4 limiti arttırılıp azaltılabilir.


Kurulum:

Forum Dizini/Sources/Subs-Post.php Açınız

Bulunuz
Kod: [Seç]
// Something went wrong creating the message...
Üstüne ekleyiniz:
Kod: [Seç]
// POST HOSTINGSITENIZ
$veri=$msgOptions[body];
preg_match_all("/\[quote author=(.*?) link/",$veri,$dizi);
$dizi= array_reverse($dizi);


$sayi=count($dizi[0]);
$play_post=0;
if($dizi[0][0]!=""){

$hs_max_post=count($dizi[0]);
if($hs_max_post<5){
while($play_post < $sayi){

if(!ereg($dizi[0][$play_post],$veri_kisi)){
$veri_kisi=$veri_kisi.";".$dizi[0][$play_post];
$sql_inform_member=db_query("select `unreadMessages`,`ID_MEMBER` from {$db_prefix}members where `memberName` = '".$dizi[0][$play_post]."'");
$inform_member=mysql_fetch_array($sql_inform_member);
    $count_unread=$inform_member['unreadMessages']+1;
$member_id_mod=$inform_member['ID_MEMBER'];
$link = "http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];
db_query("
INSERT INTO {$db_prefix}personal_messages (`ID_MEMBER_FROM`,`deletedBySender`,`fromName`,`msgtime`,`subject`,`body`) VALUES ('0','1','Haber Botu','" . time() . "','Konunuz Alinti Yapildi','Mesajiniza ".$posterOptions[name]." Tarafindan Yanit Verilmistir. Verilen Yanit Sekildeki Gibidir.<br/>Konu linki: ".$link."?topic=".$topicOptions[id].".msg".$msgOptions['id']."#msg".$msgOptions['id']."<br/><br/>".$veri."')");
$_id_pm=mysql_insert_id();
db_query("
INSERT INTO {$db_prefix}pm_recipients (`ID_PM`,`ID_MEMBER`,`labels`) VALUES ('".$_id_pm."','".$member_id_mod."','-1')");

db_query("
UPDATE {$db_prefix}members SET `unreadMessages`='".$count_unread."' where `ID_MEMBER`='".$member_id_mod."'");

$play_post=$play_post+1;

}
$play_post++;
}}
}

    // Veri Sonu

Maksimum Veri Limitini Arttırmak İçin üstteki kodda " if($hs_max_post<5) " kırmızı işaretli 5 değerlini arttırınız örneğin 100 yazarsanız 99 adet limit verecektir.


17
SSH / Suphp İçin Özel Safe_Mode Ayarlaması
« : Ekim 08, 2010, 06:14:40 ÖS »
Merhaba Arkadaşlar,

Apache'nin php kolu olarak suphp'yi kullanıyorsanız istediğiniz dizine özel safe_mode verebilirsiniz. Yapmanız gereken tek şey örneğin /home/hostingsiteniznet/public_html/safemode klasörüne özel safe_mode vermek için yapmamız gekeren tek şey not defterini açmak içerisine safe_mode = Off / On yazdıktan sonra adını php.ini diye kaydetmek. Tabi sonrasında ilgili klasörün içine ftp veya ssh ile göndermek.Bir başka kimsenin php.ini yapılandırmasını görmesini sanırım istemeyiz bu sebeplen ilgili işlemden sonra php.ini nini chmoduna 000 verirseniz bu sorun ortadan kalkacaktır. İşlem bu kadar.

18
SSH / Suphp Chmod Düzenlemesi (Pratik Yol)
« : Ekim 07, 2010, 06:46:46 ÖS »
Merhaba Arkadaşlar,

Sunucuda suphp aktifse ve ssh üzerinden dosya düzenlemeleri yapıyorsanız mutlaka sıklıkla internal server hatası alıyorsunuzdur. Ben aşağıdaki gibi birşey yaptım toplam kodlama 4-5 satır fakat işe baya yarıyor. Aşağıdaki adamları sırasıyla uygulayın.

# nano -w /usr/bin/suphp_duzenle

sonrasında içeriğine aşağıdakini kopyalayın

Kod: [Seç]
#/usr/bin/!
echo 'Kullanici Adini Girin';
read kadi
find /home/$kadi/public_html -type f -exec chmod 0644 '{}' \;
find /home/$kadi/public_html -type d -exec chmod 0755 '{}' \;
find /home/$kadi/public_html -type f -exec chown $kadi:$kadi '{}' \;
find /home/$kadi/public_html -type d -exec chown $kadi:$kadi '{}' \;
echo 'Duzenleme Tamamdir';

# chmod +x /usr/bin/suphp_duzenle

sonrasında örnek kullanıcı adı "hsnet" aşağıdaki gibi olackaktır

root@server [~]# suphp_duzenle
Kullanici Adini Girin
hsnet
Duzenleme Tamamdir
root@server [~]#

Not: " * " sembolünü girmeyin sorun yaşarsınız.

İyi Çalışmalar

19
Genel / TMP Mountlama (noexec,nosuid ile birlikte)
« : Eylül 18, 2010, 05:58:51 ÖS »
Merhaba Arkadaşlar,

# mount -t tmpfs -o noexec,nosuid tmpfs /tmp
# cat /proc/mounts

Komutları Sırasıyla uygulayınız. En son komutta sizlere sunucuda mountlanmış dizinleri belirtecektir. tmp ile ilgili satırı kopyalayınız.

# nano -w /etc/fstab

içerine yapıştırınız. Sonrasında

# umount /tmp
# mount /tmp

Komutlarını çalıştırınız bu kadar. /var/tmp içinde aynı yolu uygulayabilirsiniz. Tek farkı /tmp yerine /var/tmp yazacaksınız.

20
PHP / Regexp ve PHP
« : Temmuz 24, 2010, 12:13:38 ÖS »
Merhaba Arkadaşlar,

Ön Bilgi
Bu konuda tamamen kendime ait bir makaleyi sizlere paylaşacağım. PHP ve regexp kullanımını bir arada sizlere kolay ve anlaşılır bir dille sunmaya çalışacağım. Arkadaşlar regexp aslında bir çok programlama dillerinde kullanılmakta perl gibi. Hatta şayet scriptlerinizde seo kullanıyorsanız veya bir linux sisteminde çalışıyorsanız mutalaka karşısınıza çıkmıştır. Regexp'nin zor tarafı değişik karakterler ve bu karakterlerin farklı yerde farklı anlamlarının olması aslında bunun haricinde iyi anlaşıldığı zaman uygulamasının kolay olduğunu düşünüyorum arkadaşlar. Bu kadar ön bilgiden sonra hemen dersimize başlayalım.


Yapılabilecekler ve Pattern Kavramı
Arkadaşlar regexp de mantık şudur. Metinde tekrar eden birşey vardır. Veya bazı şeyleri yakalamak istiyoruzdur. Fakat işin içine mantıksal işlemler girmektedir.

Örneğin
Kod: [Seç]
[url=http://www.link.com]
Şeklinde bir bbc kodumuz vardır. Fakat bizim burda yapmak istediğiniz aşağıdaki şekle çevirmektir.
Kod: [Seç]
<a href="http://link.com">
Şayet str_replace kullanırsak son ] çevirirken tıkanacağız. İşte bu sırada imdadımıza gerexp gelmekte. Veya aynı mantıkla değiştirmek yerine yakalamak istediğimizde ve bunu ekrana yazdırmak istediğimizde yine regexp yi kullanabiliriz. Veya bir başka örnek verirsek 5.432,014 şeklinde metnimizde geçen sayılar mevcut ve gördüğünüz gibi bokta ile virgül yanlış yazılmış. Bunların sırasını değiştirmek istiyorsunız.Bunları elle düzeltmek gerçekten büyük vakit almakta fakar aynı işlemi regexp ile saniyeler içinde yapabilirsiniz.Size son örneği verme sebebim pattern (desen) kavramını tarif edebilmek arkadaşlar. Yani metinde geçen ve tekrar eden en küçük yapı taşını buluyoruz.Ve bunu tüm metne veya istediğimiz herhangi bir kısma uygulayabiliyoruz.

Genel Kullanım Şekli

Regexp kullanımını 3 kısımda ifade edebiliriz: Sınırlayıcı-Desen Kısm-Sınırlayıcı-Ayar Kısmı
Sınırlayıcı olarak herhangi bir karakter alabiliriz. İnternette var olan hazır regexp kodlamalarında genellikle / kullanılmakta fakat @ gibi farklı sınırlayıcı karakter de kullanabiliriz. Bu aslında birazda yazacağımız desenin işlevine bağlı arkadaşlar. Örneğin bir mail için yazıyorsak desenimizi, @ kullanmak pek de akıllıca olmaz sanırım. Fakat kullansakda var olan özel anlamı gidermek için \ (ters slash) kullanabiliriz.

Devam edecek...

21
Perl / Programlama Hakkında
« : Mart 20, 2010, 05:45:57 ÖS »
Muhtemelen perl öğrenmeye başlamadan önce aklımıza gelecek sorular "Ben bununla ne yapabilirim?","Ne tür programlar yazabilirim?" şeklinde olacaktır.Bu belki kulağa biraz felsefi geliyor fakat inanın yanıtı basit. Aslında programlamayı bilgisayarla aramızda ,bilgisayara ne yapmak istediğimizi söyleyen, bir dil gibi düşünebiliriz. Aslında burda hüner bilgisayarın anlayacağı yoldan bir progralama kullanmaktır.Bunda bizim gereksinimiz bunu bir dil içerisinde yazmaktır örneğin perl gibi. Bu işe başlamadan önce bunu idrak etmeliyiz.

Program yazmak için özel yeteneklere sahip olmamıza gerek yok.Fakat gerçekten düşünmeyi gerektiren bir iştir.Bir bilgi verildiği zaman kesin kısımları alınmalıdır.



22
Perl / Perl'e Giriş
« : Mart 19, 2010, 11:58:31 ÖS »
Hemen hemen tüm programlama dilleri aynı yapılar üzerinde kuruludur.Hangi programı yapmak istiyorsanız bu değişmez temel olarak aynı mantık üzerinde yer alır.Bu bölümde program yazmaya başlamadan önce neleri keşfetmemiz gerekdiğini öğreneceğiz.Örneğin:

1) Programlamanın yolu nedir? Programın anlamı nedir?

2) Bizim yazdığımız program ne yapabilir?

3) Nasıl bir programı yazdığımız zaman anlaşılır olabilmesini sağlayabiliriz?

4) Bilgisayarımız sayıları ve harfleri nasıl görür?

5) Programlarımızdaki hataları nasıl kaldırabiliriz?

Kuşkusuz bu soruların cevaplarını perl perspektifinden bakarak arıyacağız.Ayrıca perl programlamanın temellerinden söz edip nasıl bunu oluşturabileceğimizi göreceğiz.Ayrıca bölüm sonunda sizlere anlattıklarımıza ilişkin sorularımızda olacak.

NOT:Bu bölüm hakkındaki tüm bilgiler çeşitli kaynaklardan şahsımca dilimize çevrilerek yazılmıştır.

Kaynak: http://www.perl.org/books/beginning-perl/

23
SSH / Klasor Kopyalama Taşıma
« : Ocak 09, 2010, 01:14:03 ÖS »
Merhaba

Klasor kopyalamak için veya taşımak için -r parametresi kullanılır. (içindeki klasorler ve dosyalarda dahil.

Örnek

cp -r klasor /dizin
mv -r klasor /dizin




24
SSH / Du komutu Kullanımı
« : Kasım 20, 2009, 10:48:18 ÖS »
Merhaba Hostingsiteniz Ailesi,

Bu yazımızda du komutun kullanımını bir kaç paratik bilgi ile pekiştireceğiz.

du = dosya boyutunu görmek için işimize yarar. Bunu çoğumuz biliyoruzdur. Bu yazımdaki amaç bunun 2 özel parametreyle kullanımını kolaylaştırmak.

kod formu :

du [parametre] dizin,dosyavb

parametreler

parametre olarak biz -kh kullanırsak dosya boyutu MB şeklinde listelenir.

Bir diğer parametremiz ise --max-depth= dir. Bununla listelenme miktarını ayarlıyoruz. Örnek yanlızca test klasörünün boyunu göreceksek :

--max-depth=0 şeklinde giriyoruz. fakat test klasoru içinde bulunan a, b, c klasorlerininde boyutlarını görmek istiyorsak --max-depth=1 veya /test/a/x , /test/b/y , test/c/z klasorlerinide boyutlarını görmek istiyorsak --max-depth=2 giriyoruz.

Örnek komut :

du -kh --max-depth=0 test

478M    test

------------------------------

du --max-depth=0 test

488712  test

Bir diğer kullanımıda exclude (dışlamak) parametresiyle kullanımıdır.


--exclude=dosya kullanırsak (ilk kısımdaki dosya adlı klasoru veya dosyayı saymaz.)

--exclude=./dosya_adi

Örnek :

du -kh --max-depth=1 /test --exclude=./a
12K     /test/test
16K     /test

25
SSH / Cd kullanımı Pratik 2 Bilgi
« : Ekim 25, 2009, 05:18:10 ÖS »
Merhaba Arkadaşlar

"cd" kullanımı konusunda 2 adet pratik bilgi sizlerle paylaşmak istiyorum.

örnek : /x/yZ/f/z/p/g/h/-4624/b/j/k adlı bir dizindesiniz. Bir üst dizine geçmek için cd .. yazıyoruz.
 
Kod: [Seç]
[~/x/yZ/f/z/p/g/h/-4624/b/j/k]
 [~/x/yZ/f/z/p/g/h/-4624/b/j/k]# cd ..
 [~/x/yZ/f/z/p/g/h/-4624/b/j]#

veya bir alt dizine geçmek için örnek Ali dizinine geçmek için cd ./Ali yazıyoruz.

Kod: [Seç]
  [~/x/yZ/f/z/p/g/h/-4624/b/j/k]#
  [~/x/yZ/f/z/p/g/h/-4624/b/j/k]# cd ./Ali
  [~/x/yZ/f/z/p/g/h/-4624/b/j/k/Ali

26
SSH / Komut İçinde Değişken Kullanımı
« : Ekim 06, 2009, 12:16:27 ÖS »
Merhaba

Arkdaşlar bugun konuya epey kafa yordum. Şimdi size değişken kullanımını anlatacağım. Bunu bir çok formda kullanabiliriz. Ben yanlızca anlamanız için en basit olarak anlatacağım. Bundan sonra örnek olarak toplu CHMOD değiştirmeleri kısmı backupslama veya toplu bir şekilde almak aklıma gelen yanlızca bir kaç şey. İhtiyaçlarımıza göre çok daha fazla şekillendirebiliriz.

Şimdi diyelim /home/user/test içinde bulunan a,b,c klasorlerinin yedeğini alacağız. Öncelikle bir klasor daha oluşturduk. Bu klasörde /home/user/test/user olacak ne tesadüf ki içinde 3 adet dosya olacak bunlarda ya aynı uzantıda veyahut uzantısız dosyalar olacaktır. Bunlarda a,b,c dosyalarıdır.

önce kodumuzu vereyim sonra bu kod'un yapımı konusunda konuşalım :

for zip in `ls /home/user/test/user|grep -v \/`; do tar -zcvf $zip.tar.gz /home/user/test/*; done

Bu kodun oluşturulmasını anlamanın en kolay yolu parça parça incelemek. Bende birkaç parçaya bölerek sizlere anlatacağım.

for zip in önce görmeyelim içindekileri düşünelim. ls komutu dizinin içinde bulunan dosyaları listelemek için kullanılır. Bunu sanırım herkes biliyordur. grep ise çıkan sonuçları ayıklamak için kullanılan bir koddur. Öncelikle bu ikisini tamamen kavrıyalım.

Gelelim 2. aşamaya :

SSH terminaline şuanda ls /home/user/test/user yazıyorum çıktıya bakalım.

./ ../ a b c

alt dizinleri alakadar etmemesi için grep -v \/ kullanıyoruz. ve Araya kod bağlacı | koyuyoruz.

ls /home/user/test/user|grep -v \/ şimdi çıktıya bakalım.
a
b
c

başardık. Şimdi diğer aşamaya geçelim yani for zip in `kodumuz` buna. Aslında kodu dikkatli inceleyenler bunu hemen anlıyacaklardır. for ingilizcede için anlamında kullanılır. Yani zip için `kod kullanılacak` bir anlamda değişkenin neye denk olduğunu anlıyoruz. ve bunu kullanırsan başına dolar işareti getiriyoruz $zip şeklinde aslında bu kısmı anladıysak %90 ı bitti demektir. Sözü daha uzatmadan diğer kısıma geçeyim.

Aslında bu kısım dayet bayip klasik tar -zcvf ( tar.gz leme kodunu kullandım). Normalde tar -zcvf dosyaadi.tar.gz /yol şeklinde bir kullanım gördük. Bunu değşkenli kullanmayı deniyelim.

tar -zcvf $zip.tar.gz /home/user/test/* mantık aynı ad yerine yanlızca $zip değişkenimiz geldi. sonra do ve done getiriyoruz. do ingilizcede çalışmak fiilidir. Done de 3. zamanıdır. Burdan aklımıza geldin. Ayrıcada aralarak ; kullanıyoruz. Matematiğimiz iyi ise bunuda mantık konusundan çıkara biliriz. Ve işte oldu son hali

for zip in `ls /home/user/test/user|grep -v \/`; do tar -zcvf $zip.tar.gz /home/user/test/*; done

Ayrıca yazarken aklıma geldi ama test etmedim. İkinci bir kısım kullanmadan direk cut -d '/' f1 ile klasorlerdende alabiliriz. Bunu siz test edersiniz..

27
SSH / AWK Komutu Kullanımı
« : Eylül 13, 2009, 05:12:31 ÖS »
Merhaba Hostingsiteniz Ailesi,

Awk kodu aslında programlamada veri dosyalarındaki dil dönüşümleri için kullanılmaktadır. Biz bu metnimizde awk nın " print " ayarlarıyla ilgili yoğunlaşacağız. Aslında kafa karıştırıcı şeyleri awk ile kolayca yapabiliriz .Awk kodunun genel kullanımı :

Kod: [Seç]
awk <pattern> '{print <stuff>}' <file>
Bu durumda, stuff metnin kombinasyonu olacaktır. Bu durumda özel değişkenler çıktıda gözükecektir.. Belki bu bir yada iki matematik operatörünün yapabilecekleriyle eşit bir işlem. Açıkcası bu kısım tamamen mantıksız gibi gelebilir. Aslında banada mantıksız gelen bir kısım. Keşke eklemeseydim diye düşünmemiş değilim. Neyse biz örneklere bakalım. Örneklerde emin olun daha iyi anlayacağız. Girişler her zaman saçma olur.

Haydi bir dosya oluşturalım. Adı words.data olsun. Ve içeriği aşağıdaki satırlardan ibaret olsun.

Kod: [Seç]
nail hammer wood
pedal foot car
clown pie circus

Dosya içeriğimiz çok düzgün olmadı. Biraz düzenlemeye ihtiyacımız var. Şimdi tam olarak yapmak istediğimiz şey 1. Kelime’nin önüne “Hit the” 1. Kelimenin arkasına ise  “with your” eklemek..Kodumuzu veriyorum. İnceleyelim:

Kod: [Seç]
awk '{print "Hit the",$1,"with your",$2}' words.data
Bu kodu uyguladıktan sonra tekrar bakalım. Words.data’ya :

Kod: [Seç]
Hit the nail with your hammer
Hit the pedal with your foot
Hit the clown with your pie

Şimdi ise bu awk kodunu sayısal olarak kullanımı görelim.  grades.data adlı bir dosya oluşturalım. İçine ise aşağıdaki metni yazalım.

Kod: [Seç]
Rogers 87 100 95
Lambchop 66 89 76
Barney 12 36 27

Şimdi awk ile yapabileceklerimizi sayısal olarakda görelim aynı zamanda pekiştirmek için ilk derste anlattığımız kelime aralarına kelime eklemeği görelim.

Kod: [Seç]
awk '{print "Avg for",$1,"is",($2+$3+$4)/3}' grades.data
çıktı metin:

Kod: [Seç]
Avg for Rogers is 94
Avg for Lambchop is 77
Avg for Barney is 25

Biraz daha açıklamak gerekirse “ Avg for “ kelimesini cümlenin başına getirdik. 2. 3. 4. Satırlarını da toplayıp 3 ‘e böldük. Tıpkı bir hesap makinası gibi.  Aslında hesaplama scriptlerinde de temel mantık budur.

Şimdiye kadar biz aslında yeterince model görmedik. Fakat Biz satırları bu işlem prosedüründen ayrı tutmak istiyorsak aşağıdaki kodlamayı inceleyelim:

Kod: [Seç]
awk /^clown/'{print "See the",$1,"at the",$3}' words.data
See the clown at the circus

Biz burada awk kodunu girdi satırlarıyla inceledik. Ayrıca son bir not print ve pattern arasında boşluk yok. Eğer oraya boşluk koyarsak awk printin çalışmadığını düşünür.Burda size anlatılanın hepsi awk nın temel seviyesidir. Bunun yanına bir çok parametler ekliyerek bu çok daha fazla genişletilebilir. Ancak şimdilik biz temelimizi atalım. İleride inşallah benim veya başka bir bu işle ilgilenen arkadaşın makalesinde daha profesyonel kullanımlarını görürüz.

Saygılarımla…
Abdullah ÇINAR

28
SSH / Grep Komutu Kullanımı
« : Eylül 13, 2009, 02:13:53 ÖS »
Linux'un en popüler komutu - grep

Unix'in en popüler komutu açık ara "grep"tir.Bazıları bunu tartışsada birkez kullanmaya başladınız mı, bu komut size tanrının bir hediyesi olarak gözükecek. Grep'in açılımı ,büyük bir kesime birşey ifade etmese de, "evrensel düzenli ifade yazıcısı"dır (Global Regular Expression Printer). Daha açıklayıcı olmak gerekirse grep , verilen bir yazıdan belirli kriterler dahilinde parçalar çıkarır. Basitçe , grep bir şablon girmenizi , ardından yine sizin belirleyeceğiniz bir metinde, bu şablona uygun yazıları arar. Belirlenen şablona uygun tüm satırları listeler. Grep iki türlü kullanılabilir - tek başına veya borularla (pipe)

Tek başına kullanmak

$ grep '12.00' /home/david/backup/log.txt
Bu komut basit  olarak grep in nasıl kullanılabileceğini gösteriyor.(Metin dosyalarının uzantısının .txt olması gibi bir zorunluluk yok).Yukarıdaki komut içinde 12.00 bulunan tüm satırları listeler.
Örneğin bu komut , 12.00 da yapılmış tüm backupların bulunması için kullanılabilir (Tabii içinde zamanların olduğu log.txt dosyasının olması koşuluyla)

$ grep -v '12.00' /home/david/backup/log.txt
Bu komutla ise içinde 12.00 bulunduran satırlar dışındaki tüm satırları listeler.

$ grep -l 'delay' /code/*.c
Bu komut /code dizininde .c uzantılı dosyalardan içinde "delay" yazısı bulunanların adlarını listeler. Bununla sadece dosya isimleri listelenir(Q:Yani satırlar listelenmez..)

$ grep -w '\<bay' *
$ grep -w 'watch\>' *
Bu iki komut aramayı biraz daha derinleştirir.İlk komur "bay" ile başlayan kelimelerin olduğu satıları , ikinci komut ise "watch" ile biten kelimelerin olduğu satırları arar.

-
Borularla kullanım

$ ls -l | grep rwxrwxrwx
Bildiğiniz gibi "ls -l" komutu dizin içeriğini listeler. "grep rwxrwxrwx" kısmı ise bize yazma,okuma,çalıştırma izinlerinin kullanıcı,grup,diğerleri için verildiği dizinleri listeler. Böylece tüm dizinleri görmektense sadece bu izinlerin olduğu dizinleri görürüz. (Aslında sadece metin araması yapıyoruz. "ls -l" nin çıktısını grep komutuna yönlendirerek süzgeçten geçiriyoruz)

Grep'in çıktısı diğer programlara şöyle yönlendirilir :

$ du | grep 'mp3' | more
Bu komutun ne yaptığını anlamışsınızdır...(Q:Ama ben en aşağıda açıkladım)

$ grep ` ^ #` /home/david/script1 | more
Bu komut /home/david/script1 dosyasından '#' ile başlayan satırları gösterir. '^#' bize , #'in ilgili satırın ilk karakteri olması gerekliliğini anlatır."more" kısmıda , çıktının çok uzun olması durumunda sayfalar halinde gösterilebilmesi içindir.

$ grep -v ` ^ [0-9]` /home/david/backup/log.txt | more
Bu komut , /home/david/backup/log.txt dosyasında ilk karakteri 0-9 arasındaki sayılar olan satırların dışındaki satırları listeler. More yine çıktıyı sayfalara bölmek için kullanılır.

Önemli: şablon ifadelerinin tekli tırnak ile kapatılması (yukarıdaki örneklerde olduğu gibi) ,yorumlayıcının doğru çalışması için önemlidir.

Grep için bazı önemli parametreler
-v
komutun davranışını tersine çevirir. Örneğin , şablona uygun olanları göstermesi gerekirken uymayanları listeler.

-c
Standart raporlamayı (Q:yani satırların hepsini göstermeyi) keser ve sadece şablona uyan satırların sayısını gösterir.

-i
Arama sırasında büyük/küçük harf eşleştirmesi yapmaz

-w
Şablonun başka bir kelime içinde olmayıp , kendi başına bir kelime olup olmadığını denetler. Böylece , "bay" kelimesi için arama yaptığınızda "baywatch" ile ilgili satırlar ekrana gelmez.

-l
Şablona uygun satırların bulunduğu dosya adlarını listeler.

-r
parametreden sonra verilen dizinin ,alt dizininlerinde de verilen şablona uygun arama yapar. (recursive)

Bu belgenin ,grep'e başlamanıza yardım ettiğini umarım. Grep , Linux'a diğer OSler karşısında avantaj kazandıran bir araç. Grep'i diğer araçlarla verimli kullanmak , kullanıcıya Unix'te büyük bir güç verir.

Q:
du komutu ,dosya boyutlarini gosterir
-h (human readable format) parametresi ise boyut bilgilerini daha anlasilir hale getirir(normalde KB cinsinden).Şimdi bir deneme yapalım.

knoppix@ttyp0[knoppix]$ cd //
knoppix@ttyp0[//]$ cd mnt
knoppix@ttyp0[mnt]$ cd hda5
knoppix@ttyp0[hda5]$ ls
1S0z     Pr0gz                      V1dz
1c0nZ    RECYCLER                   WallPap3Rz
1maG3Z   Spe3chZ                    jackass.the.movie.dvdrip.divx-glorious.avi
DocZ     System Volume Information  mp3
L3ssonZ  Th1ngZ
knoppix@ttyp0[hda5]$ du -h | grep 'mp3' | more
41M     ./mp3/01-DANCE AROUND The WORLD/Disc One
44M     ./mp3/01-DANCE AROUND The WORLD/Disc Two
84M     ./mp3/01-DANCE AROUND The WORLD
68M     ./mp3/02-TECHNO MILLENNIUM/Disc One
69M     ./mp3/02-TECHNO MILLENNIUM/Disc Two
137M    ./mp3/02-TECHNO MILLENNIUM
69M     ./mp3/03-CLUB IBIZA/Disc One
70M     ./mp3/03-CLUB IBIZA/Disc Two
138M    ./mp3/03-CLUB IBIZA
65M     ./mp3/04-TRANCE NON-STOP
64M     ./mp3/05-MINISTRY ANNUAL 2000/Disc One
65M     ./mp3/05-MINISTRY ANNUAL 2000/Disc Two
129M    ./mp3/05-MINISTRY ANNUAL 2000
68M     ./mp3/06-Paul Oakenfold - Travelling/Disc One
68M     ./mp3/06-Paul Oakenfold - Travelling/Disc Two
136M    ./mp3/06-Paul Oakenfold - Travelling
57M     ./mp3/Depeche_Mode_all/DM 81 Speak And Spell
38M     ./mp3/Depeche_Mode_all/DM 82 A Broken Frame
46M     ./mp3/Depeche_Mode_all/DM 83 Construction Time Again
48M     ./mp3/Depeche_Mode_all/DM 84 Some Great Reward
51M     ./mp3/Depeche_Mode_all/DM 86 Black Celebration
58M     ./mp3/Depeche_Mode_all/DM 87 Music For The Masses
39M     ./mp3/Depeche_Mode_all/DM 89 (Live) 101/Disc A
50M     ./mp3/Depeche_Mode_all/DM 89 (Live) 101/Disk B
88M     ./mp3/Depeche_Mode_all/DM 89 (Live) 101
44M     ./mp3/Depeche_Mode_all/DM 91 Violator
44M     ./mp3/Depeche_Mode_all/DM 93 Songs Of Faith And Devotion
54M     ./mp3/Depeche_Mode_all/DM 97 ULTRA
43M     ./mp3/Depeche_Mode_all/DM 98 The Singles 85-98/CD1
47M     ./mp3/Depeche_Mode_all/DM 98 The Singles 85-98/CD2
89M     ./mp3/Depeche_Mode_all/DM 98 The Singles 85-98
1.5M    ./mp3/Depeche_Mode_all/IMAGES
23M     ./mp3/Depeche_Mode_all/MLG 89 Counterfeit e.p
636M    ./mp3/Depeche_Mode_all
584M    ./mp3/Dj. Alex Techno Part 1 - Mp3
73M     ./mp3/DJ_TOP_40_(CD1)
73M     ./mp3/DJ_TOP_40_(CD2)
53M     ./mp3/EARTH WIND&FIRE.THE_PROMISE
63M     ./mp3/FUTURE_TRANCE_(CD1)
65M     ./mp3/FUTURE_TRANCE_(CD2)
635M    ./mp3/Karisik_Pop
823M    ./mp3/mixed
78M     ./mp3/soul_saucee
3.7G    ./mp3
knoppix@ttyp0[hda5]$

Görüldüğü gibi du komutunun çıktılarından grep yardımıyla "mp3" olanlılarını ayırdık.Gerçekten kullanışlı.

Not alıntıdır.

29
SSH / Sed Kodu Kullanimi
« : Eylül 12, 2009, 11:59:47 ÖS »
Merhaba,

sed kodunun basitce kullanimini sizinle paylasacagim. Bunun icin ingilizce bir makaleyi turkceye cevirdim. Size burda verecegim bilgiler temel bilgiler olacaktir. Bunun ekleriyle kullanabilecegimiz bir cok konu vardir.  Fakat oncelikle temel olarak girisimizi yapalim. Insallah ileride tamamini ben yada baska bir arkadasimiz paylasir.

Dersimize baslamadan once ornek parcamizi verelim. Ileride bu parca isimize yarayacaktir.Bu parca poem.txt icinde yer alsin.

Ornek Parca :

Mary had a little ham
Mary fried a lot of spam
Jack ate a Spam sandwich
Jill had a ham spamwich


Konunun yogunlasacagi 2 adet komutu sizlere verelim. Asagida aciklanan aslinda bu iki komutun mantigindan ve kullanim alanlarindan baska bir sey degil.

-------------------
Donusturucu sed   
Kod: [Seç]
's/eskiparca/yeniparca/g' dosya
Silici sed   
Kod: [Seç]
'baslangic,bitisd' dosya
------------------

Donusturucu "sed” ile ilgili alistirma yapalim. Ornek olarak poem.txt dosyamizin icindeki “lamb” kelimesini “hum” ile degistirelim.

Bunun icin asagidaki kodlari inceleyiniz:
Kod: [Seç]
sed 's/lamb/ham/g' poem.txt

Kod da verilen “s” nin anlamini cevirici olarak, “g” nin anlamini da evrensel degistirici olarak dusunebiliriz. Ayrıca "g" (her satırın yalnızca ilk olayini değiştirmek için) takisini yazmayabiliriz veya yerine (her satırda ilk X olaylarini değiştirmek için bir sayı belirtebiliriz.).

Simdide silici sed icin biraz alistirma yapalim. Ilk basta size ornek olarak verdigimiz ve baslangic - bitis olarak yazdigimiz terimler aslinda eslesmesi gereken satirlardir.

Hatirlayalim : Silici sed   
Kod: [Seç]
'baslangic,bitisd' dosya
Ornegin bizim klasik poem.txt mizde 2. Ve 3 satirlari kapsayalan bir silici sed yazalim.

Kod: [Seç]
sed '2,3d' poem.txtMary had a little lamb
Jill had a lamb spamwich

Bu ornekte ise silici sed 1. Satirdan baslayacak icinde Jack ismi gecen  ( o satir ) dahil son satira kadar silecektir.
Kod: [Seç]
sed '1,/Jack/d' poem.txt
Bir çok kişi sed komutunu iki değişkeni değiştirmek için kullanır. Fakat ben sed i bazı ifadeleri bulup silmek içinde kullanmak istiyorum. Bunun anlamı siz bunu eşleştirmek içinde kullanabilirsiniz. Grep gibi.Ancak muhtemelen bunun gibi birşey yapmaya gerek olmayacaktir..

Birinci satırdan son satıra kadar "lamp" kelimesini "ham" ile değiştirmek için ve çıktıyı yeni bir dosyaya yazmak için aşağıdaki komutları uygulayınız.

Sonuç çıktısını verene kadar ekranda herhangi bir işlem yapmayınız. Şayet new.file in içeriklerine bakarsanız bu satırları göreceksiniz.
Kod: [Seç]
sed 's/lamb$/ham/g' poem.txt > new.file
Saygilarimla...

Abdullah CINAR

30
Güvenlik / HyperVM ile Bölünmüş VPS ye CSF Kurmak
« : Ağustos 25, 2009, 11:13:24 ÖÖ »
Merhaba Arkadaşlar,

Aslında internette buna benzer makaleler mevcut. Fakat gerçekten hiç birinden tam sonuç alınamıyor. İnternetteki birkaç makaleyi birleştirerek Hypervm ile bölünmüş vps lerde CSF kurumunu izah edeceğim. Makale tamamen kendime aittir.

Adım 1 ) Öncelikle klasik bir şekilde csf kurulur. Kurum için kodları vermek gerekirse sırasıyla uygulamanız yeterli.

Kod: [Seç]
rm -fv csf.tgz
wget http://www.configserver.com/free/csf.tgz
tar -xzf csf.tgz
cd csf
sh install.sh

Adım 2 ) Bir önceki adımda kurmuş olduğumuz CSF yi başlatmadan evvel bazı portları açmamız gerekecek. Bunun için TCP_IN ve TCP_OUT kısmına 7777,7778,7779,5555 portlarını ekledik.


Adım 3 ) nano /etc/csf/csf.conf dedik. csf.conf dosyasının içinden PT_USERKILL değerini 1 olarak işaretledik.


Adım 4 ) nano /etc/csf/csf.pignore dedik. En altta boş satıra aşağıdakileri ekledik.

Kod: [Seç]
user:lxlabs
user:clamav
user:mysql
user:tinydns
user:qmails
user:qmaill
user:qmailq
user:qmailr


Adım 5 ) Yeniden CSF nin config sayfasına geliyoruz.

ETH_DEVICE

ETH_DEVICE_SKIP bu seçenekleri eternet kartımızı yazıyoruz. Bunu WHM panelimizin ilk kısmında Basic le başlayan seçenepinde yazacaktır. Bende bu venet0 sizde uygun olanı yazın.

İşte bu kadar 5 adım da csf niz sorunsuz çalışacaktır. İptables limitini artırmanız istenebilir. Bunu vps yi aldığınız firmanızdan rica ederseniz yapacaklardır. CSF yi ilgili sayfadan başlatmayı unutmayınız...

Saygılarımla...

Abdullah ÇINAROĞLU
Hostingsiteniz.NET INTERNET HİZMETLERİ


Sayfa: 1 [2] 3