for döngüsü örnekleri

Ağustos 17, 2011 § Yorum yok § Kalıcı bağlantı

#!/usr/bin/env bash
 
for x in one two three four
do
    echo number $x
done
 
output:
number one
number two 
number three 
number four

#!/usr/bin/env bash
 
for myfile in /etc/r*
do
    if [ -d "$myfile" ] 
    then
      echo "$myfile (dir)"
    else
      echo "$myfile"
    fi
done
 
output:
 
/etc/rc.d (dir)
/etc/resolv.conf
/etc/resolv.conf~
/etc/rpc               

for x in /etc/r??? /var/lo* /home/drobbins/mystuff/* /tmp/${MYPATH}/*
do
    cp $x /mnt/mydir
done

for x in ../* mystuff/*
do
    echo $x is a silly file
done

for x in /var/log/*
do
    echo `basename $x` is a file living in /var/log
done

#!/usr/bin/env bash
 
for thing in "$@"
do
    echo you typed ${thing}.
done
 
output:
 
$ allargs hello there you silly
you typed hello.
you typed there.
you typed you.
you typed silly.

tar kullanımı

Ağustos 17, 2011 § Yorum yok § Kalıcı bağlantı

tar dosyasının içeriğini görmek:

tarview() {
    echo -n "Displaying contents of $1 "
    if [ ${1##*.} = tar ]
    then
        echo "(uncompressed tar)"
        tar tvf $1
    elif [ ${1##*.} = gz ]
    then
        echo "(gzip-compressed tar)"
        tar tzvf $1
    elif [ ${1##*.} = bz2 ]
    then
        echo "(bzip2-compressed tar)"
        cat $1 | bzip2 -d | tar tvf -
    fi
}

$ tarview shorten.tar.gz
Displaying contents of shorten.tar.gz (gzip-compressed tar)
drwxr-xr-x ajr/abbot         0 1999-02-27 16:17 shorten-2.3a/
-rw-r--r-- ajr/abbot      1143 1997-09-04 04:06 shorten-2.3a/Makefile
-rw-r--r-- ajr/abbot      1199 1996-02-04 12:24 shorten-2.3a/INSTALL
-rw-r--r-- ajr/abbot       839 1996-05-29 00:19 shorten-2.3a/LICENSE

find ile dosya aramak

Ağustos 17, 2011 § Yorum yok § Kalıcı bağlantı

find -name "MyCProgram.c"
./backup/MyCProgram.c
./MyCProgram.c

Büyük-küçük harf duyarlılığı olmaksızın aramak

 find -iname "MyCProgram.c"
./mycprogram.c
./backup/mycprogram.c
./backup/MyCProgram.c
./MyCProgram.c

Klasör derinliğini belirleyerek dosya aramak

find / -name passwd
./usr/share/doc/nss_ldap-253/pam.d/passwd
./usr/bin/passwd
./etc/pam.d/passwd
./etc/passwd
 
 find -maxdepth 2 -name passwd
./etc/passwd
 
 find / -maxdepth 3 -name passwd
./usr/bin/passwd
./etc/pam.d/passwd
./etc/passwd
 
 find -mindepth 3 -maxdepth 5 -name passwd
./usr/bin/passwd
./etc/pam.d/passwd

Bulunan dosyalar için işlem yapılmak istenirse “{}” dosya ismi yerine kullanılabilir.

find -iname "MyCProgram.c" -exec md5sum {} \;
d41d8cd98f00b204e9800998ecf8427e  ./mycprogram.c
d41d8cd98f00b204e9800998ecf8427e  ./backup/mycprogram.c
d41d8cd98f00b204e9800998ecf8427e  ./backup/MyCProgram.c
d41d8cd98f00b204e9800998ecf8427e  ./MyCProgram.c

Kriterlerle uyuşmayan dosyaları bulmak.
(maxdebth 1 olduğu için sadece bulunduğu klasöre bakar)

 find -maxdepth 1 -not -iname "MyCProgram.c"
.
./MybashProgram.sh
./create_sample_files.sh
./backup
./Program.c

inode numarasına göre dosya bulmak

find -inum 16187430 -exec mv {} new-test-file-name \;
 ls -i1 *test*
16187430 new-test-file-name
16187429 test-file-name

İzinlerine göre dosya aramak

Diğer izinlerine bakmaksızın grup tarafından okunabilen dosyaları bulmak

 find . -perm -g=r -type f -exec ls -l {} \;
-rw-r--r-- 1 root root 0 2009-02-19 20:30 ./everybody_read
-rwxrwxrwx 1 root root 0 2009-02-19 20:31 ./all_for_all
----r----- 1 root root 0 2009-02-19 20:27 ./others_can_only_read
-rw-r----- 1 root root 0 2009-02-19 20:27 ./others_can_also_read

Sadece grupun okuma iznine sahip olduğu dosyaları bulmak

 find . -perm g=r -type f -exec ls -l {} \;
----r----- 1 root root 0 2009-02-19 20:27 ./others_can_only_read

İzinleri octal olarak verilip dosyaların bulunması

 find . -perm 040 -type f -exec ls -l {} \;
----r----- 1 root root 0 2009-02-19 20:27 ./others_can_only_read

0 bytelık lock vs dosyalarını tesbit etmek

find ~ -empty

Gizli olmayan 0 byte dosyalarını bulmak

find . -maxdepth 1 -empty -not -name ".*"

Boyutu en büyük 5 dosyayı bulmak

find . -type f -exec ls -s {} \; | sort -n -r | head -5

Yüre göre dosya aramak
Soket dosyalarını bulmak

 find . -type s

Dizinleri bulmak

 find . -type d

Normal dosyaları bulmak

find . -type f

Gizli dosyaları bulmak

find . -type f -name ".*"

Gizli dizinleri bulmak

find -type d -name ".*" 

Boyutlarına göre dosya aramak
Belirli boyuttan büyük dosyaları bulmak

 find ~ -size +100M

Belirli boyuttan küçük dosyaları bulmak

 find ~ -size -100M

Belirli boyuttaki dosyaları bulmak

 find ~ -size 100M 

Dosya içeriklerini araştırmak

find . -type f -exec grep '4583_20080820115047.mp4' /dev/null {} \;
./databasemp4isim.txt: 4583_20080820115047.mp4
./isimmp4.txt:4583_20080820115047.mp4

Dosya boyutlarının bulmak

find . -size +100M -type f -print0 | xargs -0 ls -lahS

Regular expression kullanımı

find . -name \txt -exec tail -1 {} \;

Modifikasyonu belirli aralıkda olan dosyaları bulmak

find . -type f -newermt "2010-01-01" ! -newermt "2010-06-01"

ffmpeg ile ekran görüntüsü yakalamak

Ağustos 16, 2011 § Yorum yok § Kalıcı bağlantı

Ekran görüntüsü yakalamak için

ffmpeg -f x11grab -s 1280x1024 -i 0:0 /home/egitim/desktop.avi

veya

ffmpeg -video_size 1920x1080 -framerate 25 -f x11grab -i :0 -f mpegts udp://172.16.101.131:5555

ekranı nc ile ağa basıp yakalamak

ffmpeg -video_size 1920x1080 -framerate 25 -f x11grab -i :0 -f mpegts -| nc -l -p 9000
nc localhost 9000 > 1.mp4

ffmpeg ile video edit etmek

Ağustos 16, 2011 § Yorum yok § Kalıcı bağlantı

Bir videoyu mpeg4e dönüştürmek

ffmpeg -i 4126_20071228004214.mp4 -f avi -vcodec mpeg4 -b 637k -acodec mp3 -ab 32k ../sonuc/32k_4126_20071228004214.mp4

libx264 ile multithread kullanarak (ffmpeg static build ile: http://dl.dropboxusercontent.com/u/24633983/ffmpeg/index.html ; http://dl.dropbox.com/u/24633983/ffmpeg/builds/ffmpeg-linux64-20130508.tar.bz2)

../ffmpeg -i "shuttle-flip.mp4" -codec:v libx264 -quality good -cpu-used 0 -b:v 4000k -profile:v baseline -level 30 -y -maxrate 4000k -y -bufsize 2000k -vf scale=-1:1080 -threads 2 -codec:a libvo_aacenc -b:a 128k "fullhd.mp4"

webm için

../ffmpeg -i "shuttle-flip.mp4" -codec:v libvpx -quality good -cpu-used 0 -b:v 2000k -qmin 10 -qmax 42 -maxrate 2000k -y -bufsize 2000k -vf scale=-1:720 -threads 2 -codec:a libvorbis -b:a 128k "webm.webm"

Not:-preset değerinin slow olması sıkıştırmanın oldukça iyi yapılacağı anlamına gelmektedir.
Yapılan denemede, slow ile oluşan dosya 570M iken ultrafast ile oluşan dosyanın 1.1G olduğu gözlemlenmiştir. Fakat slowda encoding süresi 59m58.255s iken ultrafastde encoding 9m6.937s zamanda tamamlanmıştır. -preset degeri ultrafast,veryfast,faster,fast,medium, slow,slower,veryslow,placebo olabilir.

Not: Daha detaylı bilhi için “x264 –help” kullanılabilir.

Not: -crf değeri ne kadar kayıp verilebileceğini belirler.
Verilen değer küçüldükçe kayıp azalır. Makul değerler 18-28 arasıdır. 0 değeri kayıpsızdır.

ffmpeg -i input -acodec copy -vcodec libx264 -preset slow -crf 22 output.mp4

Animasyon için tune edilmiş bir örnek:


ffmpeg -i input -acodec copy -vcodec libx264 -preset medium -tune animation 
    -profile baseline -level 3.0 -crf 20 output.mp4

Değişik level kullanımları mümkündür.
Örneğin:

    iPhone, iPod 5.5G
        --level 30 --profile baseline --vbv-bufsize 10000 --vbv-maxrate 10000


    iPod
        --level 1.3 --no-cabac --vbv-bufsize 768 --vbv-maxrate 768


    PSP
        --level 2.1 --vbv-bufsize 4000 --vbv-maxrate 4000


    Zune
        --level 30 --no-cabac --vbv-bufsize 10000 --vbv-maxrate 10000


    AppleTV
        --level 3.1 --no-cabac --vbv-bufsize 14000 --vbv-maxrate 14000


    PS3-Xbox360
        --level 4.1 --vbv-bufsize 62500 --vbv-maxrate 62500

Dosyanın bitrate verilerek belirli bir boyutta sonuçlanmasını sağlamak için 2 fazlı dönüşüm yapılabilir. Örneğin
Not:bitratei sabitlemek yerine crf kullanmak tavsiye edilir. Zira farklı bitratelerde aynı kalitede görüntü elde edilebilir. Kaynak

ffmpeg -i input -pass 1 -vcodec libx264 -preset fast -b 512k -f mp4 -an -y /dev/null \
    && ffmpeg -i input -pass 2 -vcodec libx264 -preset fast -b 512k -acodec libfaac \
    -ab 128k -ac 2 output.mp4

Kayıpsız H264 oluşturmak için:

ffmpeg -i input -vcodec libx264 -preset ultrafast -crf 0 -acodec copy output.mkv

Not: Kayıpsız video oluştururken -preset değeriyle yapılan denemelerde
-preset ultrafast iken
oluşan dosya 8.5G (9108193825) ve gerekli zaman 23m54.441s
-preset medium iken
oluşan dosya 6.6G (7070383360) ve gerekli zaman 99m18.887s
-preset placebo iken
oluşan dosya 6.6G (7036744106) ve gerekli zaman 433m10.011s

ffmpeg hakkına iyi bir kaynak

FFMpeg in static buildi. Herhangi bir bağımlılığı yoktur.
Static build referansı ve yeni versiyonları…

Tekrar eden dosyaların tesbiti

Ağustos 16, 2011 § Yorum yok § Kalıcı bağlantı

Birbirinin aynı olan dosyaları “fdupes” kullanarak tebit eebiliriz.

/var/www klasöründe arama yapmak için

fdupes /var/www

/var/www klasöründe recursive arama yapmak için

fdupes -r /var/www

/var/www klasöründe recursive arama yapıp tekrarları silmek için soru sorması içim

fdupes -rd /var/www

Şifre güvenliği

Ağustos 16, 2011 § Yorum yok § Kalıcı bağlantı

Maaaan, this isn’t my dad. This is cell phone!

Ağustos 11, 2011 § Yorum yok § Kalıcı bağlantı

Maun Suresinin Meali

Ağustos 2, 2011 § Yorum yok § Kalıcı bağlantı

بسم الله الرحمن الرحيم

Bismillāhirahmānirahīm

1.Dini yalanlayanı gördün mü?

2.İşte o, yetimi itip kakar;

3.Yoksulu doyurmaya teşvik etmez;

4.Yazıklar olsun o namaz kılanlara ki,

5.Onlar namazlarını ciddiye almazlar.

6.Onlar gösteriş yapanlardır,

7.Ve hayra da mâni olurlar.

 

Bilim Adamlarına Çağrı

Ağustos 2, 2011 § Yorum yok § Kalıcı bağlantı

Bu çağrı afillifilintalar.com dan alınmıştır.
Gayet yerinde bulunmuştur…

Bir insanın kendi dirseğini yalayamayacağını savunan bilimsel bir makale okudum. Bence bilim adına çok üzücü bir tablo bu. Oysa bugüne kadar bir insanın kendi dirseğini yalayabilmesi sağlanmalıydı. Bu kadar fon nereye harcandı? Vergilerim nereye gitti? Ben kendi dirseğimi yalayamayacaksam, kendi dirseğime hakettiği ilgiyi gösteremeyeceksem nasıl çağdaş bir insan olabilirim? Teknolojik ilerlemeler bir insanın kendi dirseğini yalamasını mümkün kılana kadar herkesi bilim adamlarını protestoya davet ediyorum. Beyaz önlüklü demogoji ustalarının “E sen de arkadaşının dirseğini yala, o da seninkini yalasın, o onun o onun derken toplumsal dayanışma doğsun” dediğini duyar gibiyim. Yok öyle efendim. Sen şişe dibi gözlüklü, ak saçlı biri olarak yan gelip yatacaksın ben de senin açığını bir başkasının dirseğinde kapayacağım? Adama sorarlar. Size köşe ayıran gazetelerin arka sayfalarına yazıktır. Burdan sesleniyorum: Derhal toparlanın. Dirsekleri ve dilleri düşünün. İşiniz ne.

Neredeyim ben!?

Ağustos, 2011 arşivinde geziniyorsun.