Kendi meşrebinde hem blog, hem Türkçe dökümantasyon

Etiketler

21 Kasım 2008 Cuma

Textmate ve php.ini

Textmate kullanıyormusunuz? Eğer hayır ise cevabınız çok şey kaçırıyorsunuz. Gerçekten de adını hak eden bir yazılım : TextMate — The Missing Editor for Mac OS X yani MacOS'daki büyük bir eksikliği tamamlayan muhteşem bir text editörü. Textmate ile ilgili detaylara daha sonraki yazılarımda değinmeye çalışacağım. Pek çok farklı iş yapabildiğiniz, tonlarca dil desteği olan, ultra customize edilebilen ( Türkçesini çıkaramadım ) bir editör. Plugin ve Bundle desteği harika. Php'den Python'a, OpenGL'den Objective-C'ye, aklınıza gelen neredeyse her tür yazılım diline destek veriyor.

Bu yazımda Textmate kullanıcıları için minik bir bundle örneği vermek istiyorum. Php konfigürasyon dosyası olan php.ini'yi Textmate'de açınca renkli ve anlaşılır bir şekilde görmek için, "comment out" edilen satırların "comment out" olduğunu, direktif isimlerini farklı, değerlerini farklı görmek ve ini dosyasını bir bakışta anlayabilmek için Bundle Editor'e girip yeni bir dil ekleyin.



Textmate otomatik olarak size "default" bir dil şablonu çıkarır. Bu alana aşağıdaki kodu yapıştırın :
{
scopeName = 'php-ini';
comment = 'by vigo/bronx';
fileTypes = ( 'ini' );
foldingStartMarker = '';
foldingStopMarker = '';
patterns = (
{
name = 'comment.line';
match = '(;).*$\n?';
},
{
name = 'constant';
match = '^[\w\.]+';
},
);
}
Daha sonra Bundle menüsünden, Reload Bundles yapın ( Bundles > Bundle Editor > Reload Bundles ). Şimdi "php.ini" dosyasını açtığınızda aşağıdaki gibi bir görüntü alırsınız:



Yaptığımız iş kısaca şu;
  • önce bu yeni dile bir isim verdik ( scopeName )
  • dosya türünü seçtik yani .ini ler için dedik. ( sonu ini olan başka bir dosya açarsanız da aynan bu şablon geçerli olur, eğer bunu önlemek isterseniz 'ini' yerine direk 'php.ini' de yazabilirsiniz )
  • comment'ler ve değişkenler için kural tanımladık.
name = 'comment.line'; dediğimiz şey aslında



preferences'daki fonts & colors ile alakalı bir tanımlama. Textmate içinde "default" olarak tanımlı stiller bulunmakta. Bunlar;
  • comment
  • comment.line
  • comment.block
  • comment.documentation
  • ...
  • ...
gibi uzayıp gidiyor. Hani php yada javascript'te :
// line comment
/*
block comment
bu bölümler derleyici tarafından
yorumlanmıyor
*/
durumu!

match'e yazdığımız şey ise Regular Expression. Yani diyoruz ki;
satır başındaki ilk karakter ; ile başlayan ve takiben her ne karakter olursa olsun yakala, satır sonunda da \n ( new line ) olabilir. ( (;).*$\n? )
Eğer bu kriter varsa direk "comment.line" renk stilini uygula...

Diğer pattern ise değişkenleri yakalamak için. Aslında üşenmeden tek tek tüm php.ini de tanımlı direktifleri yazarak bir RegPattern de yapılabilir ama ben işin kolayına kaçtım. Dedim ki;
satır başında bir word yani kelime ve içinde nokta geçen leri kaale al ve en az bir tane yakala... ( ^[\w\.]+ )
Tabi umarım bu yazıyı okuyan kişilerin Regular Expression konusundan haberi vardır.

Aynen "comment.line" da olduğu gibi, uygun kriter gelince "constant" için tanımlı renk stili aktif olacak.

Dikkat ettiyseniz Textmate'in içinde renk temaları/şablonları var. Sizde kendinize uygun bir tema oluşturup, tek tek iligi durumları tanımlayabilirsiniz.

20 Kasım 2008 Perşembe

MacOS X ve Çoklu RaR Hazırlama

Windows kullanırken vazgeçilemez tool'larımdan biri de WinRar'dı. Genelde herkes gibi bende (!) gün içinde sık sık rar açan biriyim. Biraz google aramasından sonra MacOS için opensource tonla rar açan program buldum. Geçenlerde bir arkadaşım için büyükce bir iso imajını çoklu rar haline getirmem gerekti. Peki nasıl yapacaktım? Hemen rar'ın sitesine gittim : http://www.rarlab.com/ Downloads bölümünden MacOS ( 3.80 ) için olan versiyonunu indirdim. İndirdiğiniz tar.gz dosyasına Finder'dan çift tık yapınca MacOS otomatik bulunduğunuz yere açar tar'ı. Dikkat ederseniz adı rar olan bir folder oluştu.

Dosyanın yanından "command line only" diyordu. Hmmm dedim, demekki bir şekilde, aynı AmigA günlerinde olduğu gibi shell'den yapıcaz işleri... Öncelikle indirdiğim tar.gz dosyasını sistemime kopyaladım ( Benim default download yerim ~/Downloads/ ). Şimdi, /usr/local/bin altına rar380 adında bir folder açalım, Downloads/rar/ altındaki dosyaların hepsini rar380 ( açtığımız folder ) altına atıp sembolik bir linkle /usr/local/bin altına rar adında bir link dosyası oluşturalım.
~$ sudo mkdir -p /usr/local/bin/rar380
~$ cd Downloads/
~$ sudo cp -R rar/* /usr/local/bin/rar380
~$ cd /usr/local/bin/
~$ sudo ln -s rar380/rar rar
~$ sudo ln -s rar380/unrar unrar
Böylece Terminal'den rar ve unrar komutunu çalışır hale getirdim. rar ile dosyaları sıkıştırma ( rar'lama ), unrar ile de rar'lanmış dosyaları açma ( unrar / extract ) işlemleri yapılır. Eğer sizde bu folder ( /usr/local/bin ) yoksa;
~$ sudo mkdir -p /usr/local/bin
yaparak önce bu dizini açın. ( Ben XCode kullandığım için belki kurulum sırasında bu folder oluşmuş yada ben bişileri compile ederken yapmışımdır hatırlamıyorum )

Ufak bir hatırlatma : Her seferinde sudo yazmak istemiyorsanız;
sudo -i
Yaparak sudo moduna geçebilirsiniz fakat buna elinizi alıştırmayın. Yanlışlıkla istenmeyen dosyaları silebilir yada hasar verebilirsiniz.

Evet, rar çalışabiliyorsa ( denemek için Terminal'de rar yazıp enter yapın, karşınıza yardım bilgilileri çıkar ) hemen çoklu rar paketi yapmaya başlayalım.

Hiç sıkıştırma yapmadan, sadece parçalara bölmek için:
~$ rar a -m0 -ep -v_KAC_MEGABYTE_M "NEREYE_KAYIT" "KAYNAK_DOSYA"

sıkıştırmak istediğim dosya, desktop'ımda duran : deneme_dosya.iso ( 300 Megabytes )
bunu 50 Megabyte'lık parçalara bölücem

~$ cd ~/Desktop
~$ rar a -m0 -ep -v50M "deneme_parcalar" "deneme_dosya.iso"
Bu "new style" rar isimlendirmesiyle;
  • deneme_parcalar.part01
  • deneme_parcalar.part02
gibi çıkış verir. Eğer "old style" yapmak istersiniz yani;
  • deneme_parcalar.r00
  • deneme_parcalar.r01
  • deneme_parcalar.rar
gibi;
~$ rar a -m0 -ep -v50M -vn "deneme_parcalar" "deneme_dosya.iso"

iPhone için MacOS uygulaması : DiskAid



iPhone kullanıcıları için harika bir OSX uygulaması. Ücretsiz. Bu uygulamayı kullanmak için telefonunuzun "JailBreak" edilmesine de gerek yok üstelik!!! Standart iphone-usb kablosu ile çalışan, hem iphone, hem de ipod-touch için kullanılabilen bir uygulama. Yaptığı iş ise, telefonunun içini görmek, cihazı browse etmek yani. iPhoneOS aynı MacOS gibi çalışıyor. root ve mobile adında 2 user bulunuyor. Genelde telefonu kullanan kişinin yaptığı tüm işlemler "mobile" adlı kullanıcı tarafından yapılıyor. Bu bakımdan çektiğiniz resimler, indirdiğiniz uygulamalar vs hep mobile user'ı ile ilgili folder altına atılıyor.

Bu uygulamayı asıl kullandığım alan, iPhone bir disk-storage gibi kullanmak. Yani bir usb-stick gibi. Normalde ( eğer jailbroken değil ise telefon ) sadece iTunes ile yönetilebiliyor iphone. Yani ofistesiniz, eve dönerken yanınıza bazı dosyaları almak istiyorsunuz, 200Megabyte'lık bir video, yada pdf dosyaları vesaire. Ne yapacaksınız? ya cd'ye yada dvd'ye kaydedeceksiniz. Boşuna disk tüketmektense yada yanınızda taşımaktansa bu file'ları atın iphone! (:

Eğer telefonunuz jailbroken ise bu tool daha da çok işe yarıyor. Nasılmı? Eğer iphone'nunuzda video oynatmak isterseniz bunu ancak iTunes ile yapma şansınız var. Video'yu iTunes formatına yani "m4v" formatına çevirmeniz gerekiyor. Bu işlem aslında varolan videonun, iTunes tarafından x264 codeği ile sıkıştırılıp uygun aspect ratio'ya göre croplanması işlemidir. Keza sürekli olarak iTunes ile sync etmeniz gerekir. Her video da bazen bu çevrime uygun olmayabilir.

Eğer jb bir iphone kullanıyorsanız, Cydia ile ( jb iphone için application management yani aynen debian'da bulunan paket yönetim sistemi ) Cycorder adlı video recorder ( yani iphone ile video kaydetmeye yarayan uygulama ) uygulamasını indirin. Bu hem video kaydeden hem de oynatan bir tool. Bu tool ile, mpeg4 ( yani mp4 ) videolarımızı oynatabiliyoruz. Aslında tool'un yaptığı şey, iphone içinde bulunan ( $mobile: /Media/Videos/ folder'ı ) video dosyasını, iphone'nun kendi internal video player'ına göndermek!

Herhangi bir video'yu iphone'da oynatabilmek için;
  • Video'nun eni boyu : 480x320 ( width x height )
  • Kaynağın durumuna göre 4:3 yada 16:9 / 16:10 aspect ratio
olması gerekiyor. Ben biraz sıkıştırmak ve yerden de tasarruf etmek için video'nun bitrate'ini 512Kbps, audio'nun bitrate'ini 64K ve 22050Hz yapıyorum. Senkron ve framerate sorunu yaşamamak için de ffmpeg'e rate parametresi olarak : -r 30000/1001 geçiyorum.

ffmpeg nedir diyenlere daha sonra detaylı açıklama yapacağım ama kullananlar için :
ffmpeg -i INPUT.avi -s 480x320 -aspect 4:3 -r 30000/1001 -b 512k -ab 64k -ar 22050 OUT.mp4
Yine laf lafı açtı konudan konuya zıpladım. Neyse, bu güzide programı indirmek için :
http://www.digidna.net/diskaid/

Güncelleme ( 27 Ağustos 2009 )
Ne yazıkki uygulama paralı olmuş ):

19 Kasım 2008 Çarşamba

Sabah Klasiği : Americano ve Sigara

Sevgili dostlarım Burak ve Lale tarafından bağımlısı olduğum kahve : Caffè Americano. Kendisi "Espresso" familyasından. Eğer yalan söylemiyorlarsa, "Double-Espresso" ya "2 shot" sıcak su... Ne acaip dimi? Resmen bağımlısı olmuş durumdayım. Her sabah mutlaka içiyorum.

Hafta sonları da evde yapıyorum. Nasılmı? Kahve öğütücü aldı eşim bana ( Coffe Grinder ). Starbucks'dan çekirdek olarak alıyorum kahveyi. French-press için çekirdek kahveyi öğütüyorum ve aynı filtre kahve yapar gibi evde de Starbucks heyecanını yaşıyorum!

Eğer sizde evde yapacaksanız almanız gereken kahve ( Americano için ) ESPRESSO ROAST. Eğer evde espresso makineniz varsa birebir aynı kahveyi de yapmanız mümkün. Daha detaylı bilgiyi Starbucks'ın sitesinde bulabilirsiniz. Kahve paketi üzerinde şu logo bulunmalı

Tabi kahveden daha zararlı olan şey ise tahmin edeceğiniz gibi sigara. Hesab ettim, 1989 yılından beri sigara içiyorum. Yani 2008 itibariyle 19 yıl olmuş. Son aylarda bırakmak için ciddi çaba sarfediyorum. Günde 1 paket'in altına inmeyi başardım... Umarım komple kurtulucam yakın zamanda...

Not: Starbucks sitesinden resim kullanılmasını istemiyor anladığım kadarıyla. Baya kasmışlar javascript filan (: Sanırım firebug'ı hesaba katmamışlar... Neyse, amacım insanlara Starbucks tanıtımı yapmaktı kötü bir niyetim yok (:

18 Kasım 2008 Salı

MacOS X ve ls komutu

Güncelleme :
Yazımı okuyan sevgili N.Burak Yetgin'in haklı ikazı üzerine, "peki finder varken ls komutunu neden kullanayım?" sorusuna açıklık getirmek istiyorum. Yazıdaki amacım, standart Mac kullanıcısı, bilgisiyarındaki dosyalara gözatarken otomatikman finder'ı kullanır. Finder pek çok açıdan faydalı ve iş gören bir uygulama/özelliktir. Pek çok dosya, sistem icabı "hidden" yani gizli/görünmez durumdadır. Amacım, gerçekten fiziksel olarak dosyaların ne durumda olduğunu anlama, yönetme ve yetkilendirme açısından shell/Terminal komutlarının da her kullanıcının işine yarayabileceğini göstermek.

Genelde Windows kullanımından Mac'e geçiş olunca, GUI ( Graphical User Interface ) alışkanlığımız devam etmektedir. GUI kolay ve rahat bir şeydir fakat genelde arka planda ne olduğundan hiç bir zaman haberimiz olmaz!

Her nekadar karmaşık gibi görünse de, Terminal/shell kullanarak bilgisayara daha fazla hükmetme/kontrol etme şansına sahip oluruz!


"Directory Almak" nedir? Eğer benim gibi Commodore 64'le başladıysanız:
load "$",8
komutunu biliyorsunuzdur! Bu komut disketin içindeki listeyi bize gösteren komuttur. Yani "Directory"yi... Windows kullanıcıları genelde "My Computer" a tıklar ve folder( dizin )'leri listeler. Pek çok kişinin kullanmadığı Command Prompt ( Start > Run > cmd.exe ) a çıkarak da aynen directory'i listeleyebilirsiniz :
c:\dir
Linux / Unix işletim sistemlerinde aynı işi yapan ls komutulu bulunmaktadır. Kullanımı :
$ ls
şeklindedir. Genelde her komuta karşılık gelen bir yardım/açıklama sayfası bulunur. Buna MAN PAGES yani kullanım kılavuzu ( manual ) sayfası denir. Eğer komutun ne işe yaradığını bilmiyorsanız bunu anlamak için :
$ man KOMUT
yaparsınız. yani ls komutunun olaylarını anlamak için :
$ man ls
yaparsınız. Karşınıza devasa bir açıklama sayfası çıkar. Genelde ben çoğu şeyin nasıl yapıldığını ve kullanıldığını tam anlayamam. Sanırım daha üstün anlama kabiliyeti olan insanlar için tasarlanmış bu yardım sayfaları.



man sayfalarında "space" tuşuna basarak yazının devamını görürsünüz. ( yani -more- manasında ). Çıkmak için "q" ve bu metin içinde arama yapmak için "/" ( bu tuş numerik klayve üzerindeki slash yada shift+7'ye basınca çıkan slash )

Eğer bu help dosyasını daha rahat okumak isterseniz, "ya keşke şunu bir text editörle filan açabilsem rahat rahat okusam" derseniz :
$ cd ~/Desktop
$ man ls | col -b > ls_help.txt
$ open ls_help.txt
Böylece "pipe" yardımıyla, "man ls" den dönenleri "col" komutuna geçtik. Bu iki işlemden dönen sonucu da "ls_help.txt" dosyasına dönüştürdük. Neyse, "ls" komutuna geri dönüyorum. Sizinde gördüğünüz gibi, ls'ye ait tonlarca parametre, özellik mevcut. Ben en çok kullandığım bir-iki özelliği sizinle paylaşmak istiyorum. Linux'un türüne göre ls komutu da farklılıklar gösteriyor. Örneğin pek çok linux sürümünde directory'i renkli görmek işlemi "--color" ile gerçekleşirken MacOS'da durum farklı. ( Bilemiyorum belki darwin-kernel için farklı bir BSD olayı olabilir )

Bulunduğunuz dizin ( folder/directory ) de ne var ne yok görmek için :
$ ls -al
demeniz gerekiyor. Bu, adı nokta ile başlayan dosya/dizin'leri de gösteren ( a ) ve gösterme şekli olarak da en detaylı ( l ) yani "long format" denilen şekilde bilgiyi ekrana yollar.

Bu şekilde listeleme yapınca karşımıza şu tarz bir görüntü çıkar :
rwxrwxrwx@  1 vigo  staff      13780  1 Kas 15:30 TexmateFirefoxSplit.app
drwxr-xr-x 31 vigo staff 1054 16 Kas 23:13 Trash
drwxr-xr-x 17 vigo staff 578 28 Eki 09:33 Vice2.0.6
drwxr-xr-x@ 7 vigo staff 238 23 Eyl 06:02 Warblade Full
-rw-r--r-- 1 vigo staff 166069960 17 Kas 19:34 cf208.mp4
-rwxr-xr-x@ 1 vigo staff 886 9 Kas 22:22 deneme.sh
-rw-r--r--@ 1 vigo staff 61087 16 Kas 23:07 fisherking.jpg
-rw-r--r--@ 1 vigo staff 99 25 Eki 20:26 index.php
İlk blok, yani rwxrwx şeklinde görünen alan "file attributes/permissions" şeklinde ifade edilir. Yani bir dosyamı? directory ( dizin ) mi? sahibinin hakları, grubun hakları, diğerlerinin hakları şeklinde bir anlam ifade eder. "deneme.sh" dosyasının bulunduğu satıra bakılırsa :
-rwxr-xr-x@  1 vigo  staff        886  9 Kas 22:22 deneme.sh
- : bunun bir standart file ( dosya ) olduğunu, ( ilk karakter )
rwx : bu dosyanın sahibinin ( yani owner ) read , write ve execute ( okuma , yazma ve çalıştırma ) haklarına sahip olduğunu,
r-x : bağlı bulunduğu grubun read ve execute hakkı olduğunu,
r-x : yine diğer ( others ) lerinin de read ve execute hakkı olduğunu
gösterir. ( -rwxr-xr-x@ )

Eğer ilk karakter d ise bu file değilde directory ( folder yani dizin ) olduğu anlamındadır. Başka harfler de görmek mümkün ( b , c , l , s , p )

Bu garip harflerden sonra gelen sayısal değer "kaç tane link" olduğu anlamındadır. Yani eğer bu bir folder olsaydı ( d ) ve sayı olarak da 3 yazsaydı, buradan şunu anlardık, "bu folder altında 3 tane dosya var"

Keza;
drwxr-xr-x@  7 vigo  staff        238 23 Eyl 06:02 Warblade Full
Baktığımızda, "Warblade Full" ün bir directory/folder ( dizin ) olduğunu ve altında 7 adet link ( bu dosyada olabilir, folder da ) olduğunu görürüz. İçine girince;
vigbookpro:Desktop vigo$ ls -al Warblade\ Full/
total 184
drwxr-xr-x@ 7 vigo staff 238 23 Eyl 06:02 .
drwx------+ 28 vigo staff 952 17 Kas 20:02 ..
-rwxrwxrwx@ 1 vigo staff 7205 23 Eyl 00:58 Important new version notes_V1.33_Eng.txt
-rw-r--r--@ 1 vigo staff 0 23 Mar 2008 Warblade Homepage on the net.webloc
drwxr-xr-x@ 4 vigo staff 136 29 Eki 18:45 Warblade.app
-rwxrwxrwx@ 1 vigo staff 75562 23 Eyl 01:01 Warblade_Manual_V1.33_Eng.txt
-rwx------@ 1 vigo staff 1671 22 Mar 2008 license.txt
Dikkat ederseniz "total 184" diye bir şey görürsünüz. Keza, ilk iki satırı . ve .. şeklinde görürsünüz. Tek nokta kendisini ( Current Path ), çift nokta da ( .. ) bir üst path'i yani Parent Path'i ifade eden linklerdir. Dolayısıyla bu path ifadeleri dahil toplam 7 link görünür. ( 2 path , 5 adet dosya! ) Peki total 184 nereden geldi? Yani benim anladığım burada 184 adet link var!

Evet yanlış anlamadınız... Tam 184 adet link var ama nerede? Warblade.app adlı dosyada. Aslında o bir dosya değil. Bir paket. Bir tür sıkışmış zip gibi düşünün ama bir folder gibi içine girebildiğiniz bişi. Tabi onun içinde de çeşitli paketcikler, dizinler, dosyalar tonla şey var. Bunlar da hesaba girince ilgili dizinimizde toplam 184 adet link bulunmuş oluyor...

Komut satırından bakınca;
$ ls -al Warblade\ Full/Warblade.app/Contents/Resources/data/music/
gibi giden bir şey görüyorum. Umarım otomatik tamamlama işlemleri için TAB tuşuna basmayı biliyorsunuzdur. Yani yukarıdaki uzun path'i ben elle yazmadım. ls -al yaz dıktan sonra W tuşuna bastım ve sonra TAB'a bastım, ilgili path bilgileri otomatik geldi. Aynı şekilde TAB'e basa basa ne var ne yok gördüm...

Neyse, link sayısından sonra görülen vigo ve staff kelimeleri, ilgili link'in vigo adlı kullanıcıya ve staff adlı kullanıcı grubuna ait olduğunu ifade ediyor. Bu tam olarak ilgili dosya ile bişi yapabilecekler vigo adlı kullanıcı ve staff grubuna üye kullanıcılardır anlamına gelir. Unix user/permission olayları biraz kazık. Bunu vaktim olursa başka bir zaman detaylı anlatmak istiyorum.

Kullanıcı ve Grup bilgisinden sonra gelen bilgi link'in byte cinsinden büyüklüğünü verir. Yani cf208.mp4 adlı dosya 166069960 bytes büyüklüğündedir. Bişi anladınızmı? bende anlamadım. 166,069,960 yani 166milyon byte. Bu kaç K ? yada kaç Megabyte? Bu sayıyı 1024'e bölünce kaç KB olduğunu, sonucu da bir daha 1024 e bölünce kaç MB olduğunu buluruz. Yani bizi asıl ilgilendiren rakkam yaklaşık olarak : 158.4 dür. Yani bu 158.4 Megabyte'lık bir dosyadır.

Ya bunu anlamak için mühendis mi olmak lazım? İşte bu noktada ls'nin -h opsiyonu imdada yetişir. Yani;
$ ls -alh
Diyince;
rwxr-xr-x  17 vigo  staff   578B 28 Eki 09:33 Vice2.0.6
drwxr-xr-x@ 7 vigo staff 238B 23 Eyl 06:02 Warblade Full
-rw-r--r-- 1 vigo staff 158M 17 Kas 19:34 cf208.mp4
-rwxr-xr-x@ 1 vigo staff 886B 9 Kas 22:22 deneme.sh
-rw-r--r--@ 1 vigo staff 60K 16 Kas 23:07 fisherking.jpg
Şeklinde bir görüntü gelir. Gördüğünüz gibi 158M olarak dosya boyu yazar. Kiminin yanında B ( Bytes ) kiminin yanında K ( Kilobytes ) gibi, en makül ve anlaşılır olanı neyse o yazar.

Son olarak da, dosyanın cinsine göre renkli görünmesi durumu vardır. Directory'ler farklı renk, Write Protection ( Silinemez / Yazılamaz ) olanlar farklı renk, script olan text olan farklı renk şeklinde görünür. Bu çok rahat anlaşılan bir durumdur. Bunu sağlamak için de;
$ ls -alhG
Şeklinde kullanırız. Bunun sonucunda da aşağıdaki gibi rengarek bir görüntü elde ederiz!



Tabi ls'nin manual'ini iyice okursanız bu renkleri de nasıl ayarlayabileceğinizi görebilirsiniz. Eğer bu hoşunuza gittiyse ve her Terminal'i açtığınızda "ls" yapınca yukarıdaki gibi görünmesini istiyorsanız "alias" kullanımı yapabilirsiniz. Terminal'de;
$ alias ls="ls -alhG"
Yaparsanız artık sizin "ls" diye çağırdığınız şey otomatikman "ls -alhG" olarak yorumlanacaktır. Tabi bilgisayarınızı her açtığınızda bunun otomatikman oluşmasını isterseniz iki şekilde yapabilirsiniz;
  1. System Wide denilen, yani makinenizdeki tüm kullanıcıları kapsayan şekilde
  2. Sadece kendi / tekil kullanıcıyı kapsayacak şekilde.
Yani sadece ben, vigo adlı user için bu kullanımı aktif etmek istiyorsam, ilgili şeyi;
~/.profile
dosyasına, eğer tüm kullanıcıların istifade etmesini istiyorsam;
/etc/profile
dosyasına bu eklemeyi yapmam lazım. Tabi /etc/ bölümü sakat yerlerden olduğu için öyle yol geçen hanı gibi önüne gelen her kullanıcı bu dosyada bir değişiklik yapma hakkına sahip değildir. ( Tabi siz özel bir durum belirtmediyseniz ) Bu bakımdan, SUDO gücünü kullanmanız gerekir. Tek becerebildiğim shell editörü olan nano ile /etc/profile dosyasını açmak için;
$ sudo nano -w /etc/profile
diyin, karşınıza aşağıdaki gibi bir dosya çıkar;
System-wide .profile for sh(1)

if [ -x /usr/libexec/path_helper ]; then
eval `/usr/libexec/path_helper -s`
fi

if [ "${BASH-no}" != "no" ]; then
[ -r /etc/bashrc ] && . /etc/bashrc
fi
Bu dosyaya aşağıdaki satırı ekleyip kaydedin ve çıkın ( kntrl + o ve kntrl + x )
alias ls="ls -alhG"
Terminal'den de çıkın komple kapatın. Şimdi yeniden Terminali açın ve deneyin!

Keza belki Windows'dan hatırlarsınız,
dir *.jpg
yapınca bize sonu .jpg olan dosyalar görüntülenir. Aslında burada çaktırmadan Regular Expression olayı kullanılır. Yani bu başı ne olursa olsun , sonu .jpg ile bitsin anlamındadır. Tabi bu tarz regex ( Regular Expression yani Türkçesi sanırım Düzenli İfade oluyor ) kullanımların kralı , esası , aslı linux/unix sistemlerdir. Tabiki ls'de de babalar gibi her tür regex numaraları yapabilirsiniz;
$ ls *.mp[34]
yaptığınızda, extension'ı mp3 yada mp4 olan dosyalar listelenir. Aynen Windows'da olduğu gibi sadece jpg'leri listelemek için;
$ ls *.jpg
yapabilirsiniz.

Aslında grep kullanarak daha çılgın sorgulamalar da yapmak mümkün. Bu konulara daha sonra girmeyi düşünüyorum.

17 Kasım 2008 Pazartesi

.DS_Store sorunsalı

Windows'dan MacOS'a geçince yaşadığım en büyük farklardan biri de sevgili Finder'ın sürekli olarak .DS_Store adlı dosyalar üreterek fazladan file kalabalığı yaratmasıydı. Sadece Mac ile çalışıyorsanız sorun yok, ama benim gibi hem windows, hem linux karışık bir durumunuz varsa, özellikle bu çalıştığınız alan Proje Folder'ınızsa ( ve versiyon kontrol -SVN- da kullanıyorsanız ) biraz can sıkıcı oluyor bu .DS_Store'lar.

Bunu çözmek için terminal'i açıp ufak bir-iki hareket yapmamız yeterli. Önce çalıştığınız folder'a gidin :
$ cd ÇALIŞTIĞINIZ_FOLDER

Daha sonra bir kontrol yapın bakalım .DS_Store varmı?
$ find . -name '\.DS_Store' -print

Eğer varsa, bunları tek hareketle silmek için :
$ find . -name '\.DS_Store' -print -delete

find komutuna geçilen ilk parametre arama işlemini nerede yapacağımızı söylüyor. Dikkat ettiyseniz ilk başta ilgili yere gidin dedim. Böylece path olarak . ( nokta ) vermek yeterli oldu. nokta bulunduğumuz yer yani "Current" path anlamındadır.

Eğer bakmak istediğimiz yer :
~/Desktop/HedeHodo

altında olsaydı :
$ find ~/Desktop/HedeHodo -name '\.DS_Store' -print

şeklini de kullanabilirdik. -name argümanına dosya ismini geçiyoruz. nokta işaretini escape ediyoruz . yerine \. yazıyoruz. ( Tabi tırnak içinde geçiyoruz adı )

Eğer yeni yeni bu işlerle uğraşıyorsanız bence 2 sorunuz olacak :
  1. \ işaretini nasıl yapıcam?
  2. ~ işaretini nasıl yapıcam?
MacOS'unuzda klavye modeli olarak : Turkish QWERTY PC kullandığınızı varsayarak;
ters slash için :
alt+? ( alt aynı zamanda option olarak da ifade edilir ) : alt ve soru işareti
tilda ( dalga ) için :
alt + ü : alt ve ü
yapabilirsiniz.

Eğer login olduğunuz kullanıcının silme yetkisi yoksa sudo ile işlemi yapmanız lazım. yani :
$ sudo find . -name '\.DS_Store' -print -delete

14 Kasım 2008 Cuma

Yemeğin üzerine kahve keyfi

Cafe Kirpi'deki güzel yemeğin üzerine, soluğu "Starbucks" Erenköy'de aldık. Ben "Americano" içtim, Burak'la Lale "Hot Chocolate" içti, Yeşim ise adını tam bilemediğimiz bişi içti, hoşuna gitti mutlu oldu...

Google Harita


Sohbet koyu...


Fantastic Trio Evleri : Ben, Eşim ( Yeşim ) ve Lale ...


Altın kızlar : Yeşim ( eşim ) ve Lale...


Yeşim her zamanki gibi kıllığını yaptı ve görüntülenmek istemedi. Lale ve Burak ise bu duruma güldü!

Cafe Kirpi

Cuma akşamı canımız değişik bir yerde yemek yemek istedi. Bizde "acaba nerede yesek?" derken Bağdat caddesi üzerinde, Erenköy'de, arada kalmış gözden uzakta bir yer bulduk. "Cafe Kirpi" Merak ettik daldık içeri. Gerçekten çok şaşırdık. Harika bir atmosfer ( sessiz sakin ), hızlı servis, nefis yemekler... Fiyatlar da gayet makul. Yedik içtik mutlu mesut ayrıldık mekandan. Sanırım tek olumsuz şey Burak'ın yediği "Sufle" idi. Sebebi de hazır sufle olmasıymış. İşin uzmanı olduğu için saygı duyduk...

Merak edenler için adresi :
Bağdat Caddesi, No : 325 A Blok 1-2
Erenköy - İstanbul

0216 385 34 43


Google Harita


Kızarmış dondurma...


Susamlı tavuk


Chicken Mushroom


Fajita Combo!


Margarita


Nachos ( Tavuklu ) sonu...


Yer döşemesi hoşuma gitti...


Sigara içilen alanda Burak!




Canım eşim ve ben...





İzleyiciler

Blog Listem

Yazılacak Yazılar

  • Snow Leopard için service yazıyoruz!
  • MacPorts nedir?
  • Virtualbox , Ubuntu ve Host'da duran web folder'ı
  • Django'ya giriş?
  • Dashcode ile MobileSafari uygulaması
  • Quicklook için Plug-in yazalım?
View blog authority