19 Şubat 2016 Cuma

UBUNTU'DA JAVA JDK ve NETBEANS KURULUMU

Merhaba arkadaşlar bu yazımda Ubuntu'ya nasıl Netbeans ve jdk paketlerini yükleyeceğimizden bahsedeceğim.
Ben konsol kullanmayı sevdiğim için jdk paketlerini konsoldan yüklemeyi göstereceğim.

$ sudo add-apt-repository ppa:webupd8team/java 
$ sudo apt-get update 
$ sudo apt-get install oracle-java8-installer

komutlarını kullanarak son sürümünü bilgisayarıma yükledim.

Daha sonra Netbeans için bu adresteki linke giderek "All" seçeneğinin altından Download kısmına tıklayarak dosyamızı bilgisayarımıza yüklüyoruz.

























Yüklendikten sonra konsolumuzu(terminalimizi) açarak indirdiğimiz klasöre giderek,
Örneğin

$cd Downloads/  -> "İndirilen dosyaların bulunduğu dizine(klasöre) geldik."
$ ls -> "Dizinin içindeki dosyaları listeleyen komut.İndirdiğimiz dosya dizinin içinde mi dosyamız diye bakıyoruz."
$chmod 777 netbeans-8.1-linux.sh
$./netbeans-8.1-linux.sh  komutunu da yazarak kurulumu gerçekleştirebiliriz.

Burada işlemler bittikten sonra NetBeans'ın kendi kurulumuna girmiş bulunuyoruz bundan sonrası zaten çocuk oyuncağı.












Daha sonra açılan ekrandan next ve finish diyerek kurulumu tamamlıyoruz.




Şimdiden kolay gelsin :)

12 Şubat 2016 Cuma

Linux Konsol Komutları

Linux işletim sistemi kullanacaksınız öğrenmeniz gereken ilk kavram Linux terminali(konsol) ve Linux komut satırı kavramlarıdır.

Yapılan her işlem aslında arka planda komutların yorumlanıp çalıştırılması ile olmaktadır.Linux sistemlerde bu işi komut satırı dediğimiz ve bir kabul(shell) programını temel alarak çalışan yapı sayesinde gerçekleştiriyoruz.

Linux terminali(konsol/uçbirim), sistemde yapmak istediğimiz işler için bize çok esnek ve kullanışlı bir yapı sunuyor.Shell(kabuk) programının yetenekleri ölçüsünde bu esnek yapının performansı tatmin edici oluyor.  

Shell(Kabuk)  

Görevi kernel ile kullanıcı arasında yer alarak,kullanıcıdan gelen komutları yorumlayıp kernel'e iletmektir.Birçok shell programı kullanılmaktadır. 

  • Sistemimizde kullanılan kabuk programını öğrenmek için echo $SHELL komutunu kullanırız.
        root@dilek# echo $SHELL 
       /bin/bash    

Çevre Değişkenleri 

Bir komutu çalıştırmak için sırası ile bazı dizinlere bakmam gerekir.Eğer verilen komutun çalıştırılabilir dosyası bu dizinlerin altındaysa çalıştırırım.
$echo PATH → Yani yola(PATH) ekliyse çalıştırırım yoksa çalıştıramam.
Herhangi bir anda çalıştırma ortamınız için çevre(ortam) değişkenlerini görmek için printenv ya da env komutunu kullanabiliriz.
Örneğin bir programın konsoldan verdiğimiz bir komutla direk çalışmasını istiyoruz diyelim.Yani programın olduğu dizin altına gidip çalıştırmak yerine yola(PATH) ekleyip, programla ilgili komutu kullandığımızda direk çalışmasını istiyoruz.Bunun için programımızın olduğu dizini yola eklememiz gerekir.
Mesela program /usr/local/prog dizinde ise:
PATH=$PATH:/usr/local/prog komutunu yazarak yola eklemiş oluruz. 

Ortam değikenlerinden yaptığımız değişikliklerin kalıcı olmasını istiyorsak .bashrc dosyasına eklememiz gerekir.Çünkü sistem açılırken bu dosyayı okuyarak dosyada yer alan değerlere göre açılacaktır.
 

/bin/bash (kabuğun kendisi)
/etc/profile (kabuğun genel profik ayarlarının bulunduğu dosya) 

Bash kabuğunun birçok özelliği vardır.Bunlardan biri de kabuktan çıkmak için kullanılan CTRL + D tuş takımıdır. 
set -o ignoreeof komutu ile CTRL + D ile kabuktan çıkılmasını engeller. 
set +o ignoreeof komutu ile geri eski haline getirebiliriz.
Yada .bashrc dosyasının alt satırına export IGNOREEOF=2 yazıp kayıt ederek bu ayarı kalıcı hale getirebilirz.
Birde noclobber komutundan bahsedeceğim. Bu komut ile, bir komutun çıktısı bir dosyaya gönderildiğinde, dosyanın eski içeriği aynı kalır.Bu tanım sayesinde  yanlışlıkla bir dosyanın üzerine başka bilgilerin yazılması önlenebilir.

Yardım Alma Komutları

$help <komut>
$<komut> --help
$man <komut> → Kılavuz sayfasıdır (manual pages)
$whatis <komut> → Bir uygulama yada komutla ilgili yardımın hangi kılavuz sayfalarında olduğunu öğrenebiliriz.
$apropos <x> → x ifadesinin geçtiği uygulamaları bize listeler.Aslında aynı işlemi yapan $man -k <x> komutunu arka planda çalıştırır.
Eğer aradığımız yardımı man sayfalarında bulamıyorsak, man dizin belleğini güncellemeliyiz:   root@dilek # mandb
 
Bilgi Alma Komutları 
root@dilek# lsb_release -a→ Kullandığımız Linux dağıtımının adını öğrenmek için kullanılır veya cat /etc/*release komutu kullanılır.
cat /etc/issue → Kullandığımız Linux'un adını görmek için kullanılır. 
uname  → Kernel adını öğrenmek için kullanılır.
uname -n veya hostname → Hostname'i öğrenmek için kullanılır.
uname -m → Çekirdek mimarisi
uname -r → Çekirdek sürümü
uname -a → Bu bilgilerin hepsini birlikte gösterir.


w → hangi kullanıcının o anda hangi uygulamayı/komutu çalıştırdığı bilgisi
whoami → Kullanıcın hangi kimlikte çalıştığını gösteririr.
who →Sistemde hangi kimlikle çalışıldığı
who -b → sistemin en  son ne zaman açıldığı bilgisi
who -r → açılış seviyesini(runlevel) gösterir. 
uptime → sistemin ne kadar zamandır açık olduğunu gösterir.

whereis → Bir dosya ile ilgili çalıştırılabilir dosyanın, kaynak ve yardım dosyalarının konumunu öğrenmek için kullanılır.
whereis -b <komut> → Sadece çalıştırılabilir dosyanın yerinin gösterir.
whereis -m <komut> → Sadece man sayfalarının yerini gösterir.
whereis -s <komut> → Varsa kaynak kodunun konum bilgisini verir.
which <komut> → Verilen bir komutun tam yol bilgisini öğrenmek için kullanılır.
locate <komut> → Aradığımız dosyanın nerede olduğunu yani hangi dizin yada dizinlerde olduğunu gösterir.
dmidecode -t <donanım> → Sistemin donanım bileşenleri ve BIOS ile ilgili bilgiyi görmek için kullanılır.
<donanım>→system,baseboard,chassis,processor,memory,cache,connector,slot 
bilgilerini öğrenebiliriz.
Eğer CPU bilgisini görmek isterseniz $dmidecode –t 4 komutunu kullanmalısınız.
DMI(Desktop Management Interface)->0...39 ile diğer bileşenler hakkında bilgi edinebiliriz.
proc → CPU ve RAM hakkında ayrıntılı bilgi edinmek için, sanal dosya sistemi olan proc kullanılır.
CPU için ; cat /proc/cpuinfo
Hafıza için; cat /proc/meminfo
fdisk -l → Sistemimizdeki disk bölümlerini görebiliriz.
df → Disk kullanımı ile ilgili ayrıntılı bilgiyi gösterir.Daha düzgün bir çıktı(MB,GB türünde) için df -h komutu kullanılır.
df -T → Dosya sistemi bilgisi ile birlikte liste almak için kullanılır.
du → Bir dizinin altında bulunan alt dizin,dosya yada klasörlerin diskte kapladıkları alanın boyutunu öğrenmek için kullanırız.Çeşitli parametreler alarak kullanılabilir.
free →  Kullanılan bellek miktarını gösterir. -m parametresiyle daha düzenli görünecektir.
hdparm <disk> → Harddisk ile ilgili bilgi almak için kullanılır.
hdparm -Tt <disk> → Disk performansı ile ilgili bilgi almak için kullanılır.
 

ÖNEMLİ !! Hdparm komutunu bazı parametrelerle kullanılım tehlikeli olabilir, bu nedenle kullanırken dikkat edilmelidir.
modinfo → Linux kernel modülleriyle ilgili bilgileri listeler.
lsmod → Modül listesini görmek için kullanılır.
stat <dizin/dosya>→ Dosya yada dizin durumu hakkında bilgi almak için kullanılır. -f parametresi ile de kullanılabilir
vmstat → Sistemin genel durumunu görmek için kullanılır.
history → Linux sisteminde kullanılan komutlar hafızada tutulur.Bu yüzden daha önce kullandığımız komutlara bu komut ile bakabiliriz.
.bash_history dosyasına, komut satırında kullanılan komutlar kayıt edilir.Yani history komutu bu dosyayı referans alarak çıktı verecektir.
Listenen komutların yanında sayılar olacaktır. Başına !125 yazarak 125. satırdaki komutun tekrardan çalıştırmış oluruz.
Eğer son kullanmak istediğimiz komutu tekrar kullanmak istersek, !!  komutunu kullanabiliriz.
CTRL + R → Bu tuş kombinasyonu reverse search yapmamızı sağlar.Konsol açıkken bu tuşlara bastığımızda ekranda (reverse-i-search)”: ifadesi çıkar. Yani buraya yazdığımız karakterler başlayan komutun son kullanma şekli ekranda görünür ve o komutu istersek yeniden kullanabilir.
 
Dizinler/Klasörler Arasında Gezme ve İçeriğini Listeleme
Linux dünyasında her şey bir dizin altında alt dizin/dosya görünümünde yer alır.Bütün dizinler hiyerarşik şekilde kök dizine(root dizin) bağlıdır.Root dizin
/ (slash) ile ifade edilir.


pwd → Hangi dizinde çalıştığımızı görmek için kullanılır.
cd → (Change directory) Bu komut dizinler arasında geçiş yapmamızı sağlar.
Herhangi bir dizindeyken ana dizine dönmek için yine cd komutu kullanılabilir.
./ → bulunduğumuz dizin
../ → bir üst dizin
cd - → Çalıştığımız iki dizin arasında geçiş yapmamızı sağlar.

Pushd ve popd → İki ayrı klasör/dizin açıp, bu dizinler arasında istediğimiz gibi geçiş yapmamıza yarar.
Pushd ile devamlı dizinler arasında geçiş yapılabiliyorken,popd ile sadece diğer dizinlere tek tek bir kere geçiş yapılıp o dizinde çalışılabiliyor.
dirs – v → Açık olan dizinleri listelemek için kullanılır.
ls → Dizinler arasında bulunan alt dizin,klasör ve dosyaları listelemek için kullanılır.
ls -l → Daha ayrıntılı çıktı alırız.(Erişim izinleri , kullanıcı adı,tarih ve dosya isimleri...)
ls -la → Gizli dosyaları görmek istersek bu komutu kullanırız.(gizli klasörler “.” ile başlar.)
ls -R → Dizin içeriğini recursive olarak listelemek için kullanılır.
ls -1 → Ekran çıktısının liste şeklinde olması için kulanılır.
ls 'nin birlikte kullanıldığı daha birçok parametre vardır.Bunları öğrenmek için ls --help veya man ls komutları ile kılavuz sayfalarından bilgi edinebiliriz.
EK BİLGİ ! Web tarayıcmızdan da dizinler arasında geçiş yapabilir,dosyaları
listeleyebiliriz. Örneğin root dizin için browser'ımıza /(slash) ifadesini yazıp enter'ladığımızda içeriği göreceğizdir.
man:ls yada man:echo yazarakta kılavuz sayfalarına browserdan erişmek mümkündür.

Dosya İşlemleri

touch <dosyaismi> → Metin  dosyası oluşturmamızı sağlar.Bu komut aynı zamanda var olan dosyanın tarih etiketini güncellemek için de kullanılır.
cat → Dosya içeriğinin konsoldan okunmasını sağlar.Aynı zamanda oluşturulan dosyanın içine yazı yazılmasınıda sağlar. Şu şekilde $cat > <dosyaismi> yazdığımızda istediğimiz ifadeleri yazarak CRTL+D diyerek yazımızı sonlandırarak, dosyanın içeriğine istediklerimizin yazılmasını sağlarız.

Yukarıdaki ekran görüntüsünde kısaca “>” ve “>>” kullanımını anlatamaya çalıştım. :)
cat -n /etc/passwd → Bu komut satırları numaralandırarak dosya içeriğini gösterecektir. Bu komut yerine nl komutunuda kullanarak satırları numaralı olarak görebiliriz. 
more → Bu komut da metin dosyalarını terminalden okumaya yarar.Ama daha çok komut çıktısının uzun olduğu durumlarda çıktıyı daha rahat okuyabilmemiz için kullanılır. “Enter” tuşuna her bastığımızda satır satır ilerler, “space” tuşuda sayfa sayfa ilerler.Bir önceki sayfaya dönmek için “b” tuşu kullanılır.Çıkmak istediğimizde “q” tuşu kullanılır.
less → Yine dosya içeriğini okumak için kullanılır.More gibi ekran çıktısı uzun olan dosyaları daha kolay okumak için kullanırız. Yukarı ve aşağı ok tuşlarını kullanarak sayfada ilerleyebiliriz.”space” tuşu bir sonraki sayfaya,”b” bir önceki sayfaya geçmeyi sağlar.Çıkmak için “q” tuşu kullanılır.

head → Dosya içeriğini görüntülerken baştan görüntülememizi sağlar.Default değeri ilk on satırdır.
head -n /etc/passwd → İlk on satırı gösterir.
head -n 5 /etc/passwd → İlk beş satırı gösterir.
tail → Dosya içeriğini görüntülerken sondan görüntülememizi sağlar.Default değeri ilk on satırdır.
tail -n /etc/passwd → Son on satırı gösterir.
tail -n 5 /etc/passwd →Son beş satırı gösterir.

tac → Bir metin dosyasının içeriğini sondan başa doğru yazmak için kullanılır.
rev → Her satır ters çevrilerek ekrana yazılır. İlginç bir komuttur. :)
sort → Alfabetik olarak metin dosyasını terminale yazar.sort -r şeklinde olursa ters alfabetik olarak gösterir.
wc → Bir dosyanın içindeki satır,kelime, karakter sayılarını gösterir.
wc -l → satır sayısını
wc -w → kelime sayısını
wc -c → karakter sayısını
pr → Belge içeriğini sayfalara bölmek için kullanılır.
paste <dosya1> <dosya2> → İki veya daha fazla dosyada bulunan karşılıklı satırları aralarına tab boşluğu koyarak yan yana listelemeyi sağlar.
grep → Dosyalar içerisinde yada bir komut çıktısı içinde bir ifade aramak için kullanılır.
-i : Büyük/Küçük harf ayırımı yapmaz.
-v : Aranılan kelimeyi içermeyen satırları gösterir.
-r : Verilen dizinin alt dizinlerinde de arama yapar.
-n : Aranılan kelimenin satır sayısını da gösterir.
Bu parametrelerle yetinmeyip daha fazlasını öğrenmek isteyenler için man grep kılavuz sayfası aydınlatıcı olacaktır. :)
cut → İncelemek istediğimiz dosyada bazı satırların belirli bazı alanlarını görmek için kullanılır.
cut -d: -f 2,4 /etc/passwd → /etc/passwd dosyasındaki satırların 2. ve 4. alanlarını listeler.
-d → Alanların ayrıldığı yerler
-f → Kaçıncı alanları görmek istedğimiz
cmp <dosya1> <dosya2>→ Dosyalar arasında karşılaştırma yapmak için kullanılır.
diff <dosya1> <dosya2>→ İki dosya arasında karşılaştırılma yapılacaksa kullanılır.
diff3 <dosya1> <dosya2> <dosya3>→ Üç dosya arasında karşılaştırma yapılacaksa kullanılır.
find → Nerede olduğunu hatırlayamadığımız dosyaları yada dizinleri bulmak için kullanırız.
find [dosya_yolu] -name [aranacak_ifade]
İşimizi kolaylaştıran bazı parametreler:
type -f → Dosyalar
type -d → Dizinler
ctime x→  x gün önce değişikliğe uğramış dosyaları
find [dosya_yolu] [parametre] -name [aranacak_ifade]
xargs → Find komutu ile kullanabileceğimiz bir araçtır.Kendisine girdi olarak verilen verileri tek tek kendisinden sonraki programa argüman olarak verir.
find /etc -name “*.conf” | xargs ls -l
ls *.txt | xargs ls -l → Çalışma dizinindeki txt ile biten dosyaları bul ve ayrıntılı listele demiş olduk.

Dosya Taşıma-Kopyalama-Silme

cp → Kopyalamak için kullanılan komuttur.
cp <kaynak> <hedef> → Kaynak dosya, hedef dosyaya kopyalanacaktır.
mv → Dosya taşımak için kullanılır.
mv <kaynak> <hedef> şeklindedir. Kaynak dosyayı hedef dosyanın altına taşır.
mv <kaynak> <hedef> /<yenisim> Taşıdığımız dosyayı bu şekilde farklı bir isimlede kayıt edebiliriz.
rm → Dosya veya dizin silmek için kullanılır.

Dizin Oluşturma

mkdir <dizinadı>→ Dizin oluşturmak için kullanılır.
mkdir -p <dizin1><dizin2> → Bir dizini, alt dizinleriyle beraber oluşturmak için kullanılır.
mkdir -m 700 <dizin> → İzinleri 700(rwx------) olan bir dizin oluşturmuş olduk.
rm → Dizinleri silmek için kullanılır.
rm -r → Bir dizini,alt dizin ve dosyalarıyla beraber silmek için.
rm -rf → Ne var ne yoksa sorgusuz silmek için.
rm -ri → Silerken bize sorsun istiyorsak.

Dosya Sıkıştırma-Açma-Arşivleme

Linux sistemlerde  istediğimiz dosyayı yada dosya grubunu arşiv dosyası olarak yedekleyebilir,saklayabilir,daha sonra gerektiğinde tekrar yükleyebiliriz.
Arşivleme işlemini sıkıştırarakta yapabiliriz. 
tar → Arşiv dosyası oluşturmak için kullanılır. 


 c → create demiş oluruz.
 f → oluşturulan arşiv dosyasının adını belirleriz.
 x → extract  v → verbose

Sıkıştırma için iki temel araç vardır gzip ve bzip2.
Sıkıştırma işleminde gzip kullanılırsa uzantısı gz, bzip2 kullanılırsa bz2 olacaktır.Dosyaları açarken ise gunzip ve bunzip araçları kullanılır.
Sıkıştırma ve açma işlemlerinden bahsettiğimize göre artık sıkıştırarak arşivleme ve arşivi açma komutlarını öğrenebiliriz. Sıkıştırılmış arşiv dosyası oluştururken gzip kullanılmışsa dosyanın uzantısı tgz ya da tar.gz olur, eğer bzip2 kullanılmışsa tar.bz2 olur.
gzipczvf parametreleri sıkıştırılırken; açarken xzvf,  
bzip2cjvf parametreleri sıkıştırılırken; açarken xjvf kullanılır.
Açarken c yerine x kullanılır.

 Linux sistemlerde .rar ve .zip uzantılı dosyaların nasıl açılacağına bir bakalım. rar dosyaları açabilmek için unrar aracını kullanırız.zip dosyaları içinde unzip aracını kullanabiliriz. zip komutu ile sıkıştırma işlemi de yapabiliriz.
Şimdiden kolay gelsin. :)

8 Şubat 2016 Pazartesi

AKADEMİK BİLİŞİM 2016

Bu yıl 18.si düzenlenen Akademik Bilişim'e, Aydın Adnan Menderes Üniversitesi ev sahipliği yaptı.

2.kez katıldığım Akademik Bilişim de, konferans öncesinde 4 gün süren kurslardan Postgresql DBA kursuna katıldım.Bununla beraber eşzamanlı birçok kurs vardı.(Kurs listesine bu linkten ulaşabilirsiniz.)

Kurs nasıldı derseniz kısaca şöyle bahsedeyim.

-İlk günümüzü hocalarımızın, kurulum yapmayan arkadaşlarımızın makinelerine gerekli araçları kurması ile sonlandırdık.(Virtualbox Kurulumu,Sanal makine import(ab16-pgdba),windows için: putty, winscp kurulumu,Pgadmin vs.)



Tabi ki kurs başlangıcında Atıf hocanın Postgresql'i kullanan şirketlerden bahsetmesi, neden postgresql ve daha önceki postgresql deneyimlerinden bahsetmesini de söylemeden geçmemem gerek.



-İkinci günümüzde psql nedir? , SQL ve pgAdmin üzerindeki işlemlerin nasıl yapılması gerektiği, konsoldan tablo oluşturulması gibi konuları ele aldık.






-Üçüncü gün wal kavramında bahsetti hocalarımız, configuration dosyasında neleri değiştirip nelere hiç dokunmamız gerektiğinden bahsettiler, bugünün geneli postgresql.conf dosyasıydı.



-Dördüncü gün ise güvenlik,nesne sahipliği,role kavramı(kullanıcı),backup(yedekleme) ve bunun yanında konsoldan veritabanımızda hangi komutları kullanarak değişiklikler yapabileceğimizi öğrenmek ile geçti.


Ve Tabi ki gün sonunda hocalarımızın müthiş tatlı sürprizlerini unutmak olmaz :)




Bu 4 günlük kurs süresi bana bilgiyi öğretmeye her daim açık, her şekilde yardıma koşacak, güzel yürekli iki insan kazandırdı; M.Atıf Ceylan hocam ve Koray Eyidoğan hocam :))



İkisinede ayrı ayrı teşekkürlerimi sunuyorum. Umarım onlarla başka alanlarda, başka projelerde ve başka zamanlarda da çalışmak nasip olur.


 Bu seneki Akademik bilişimle ilgili merak ettiklerinizi #ab2016 de ve postgresql kursunda merak ettiklerinizi #postgresql hashtaglerinde bulabilirsiniz. :)


Yandaki çizim bana aittir. Taklitlerine aldanmayın ! :)
"Elephants can remember" 🐘🐘🐘



 

Başka bir Akademik Bilişim yazımda görüşüne kadar Allah'a emanet olun. :)