Linux – history Komutu

Linux command line’da history komutu daha önce komut satırına yazdığımız tüm komutları listeler. Sistemi yeni olmayan normal bir kullanıcının terminal’de binlerce komut çalıştırmış olabileceği düşünüldüğünde history komutu tek başına yetersizdir. Ancak diğer linux komutlarında olduğu gibi history komutu da çeşitli parametreler alıp özelleştirilebildiği için son derece kullanışlı hale gelebilmektedir. Örnek olarak;

history 10 – son çalıştırılan 10 komutu listeler

Burada dikkat edersek her komutun başında bir sıra numarası bulunuyor. Bu numaraları kullanarak istediğimiz komutu tekrar çalıştırabiliyoruz. Bunun için komutun başında bulunan numaraya ‘!’ eklememiz yeterli.

!1212 gibi

Normalde üst ok tuşuyla ulaşabildiğimiz komutu da

!! ile çalıştırabiliyoruz.

Başka bir örnek;

!d komutunu çalıştırdığımızda ünlem işaretinden sonra gelen ‘d‘ karakteriyle başlayan en son çalıştırılmış komut tekrar çalışır. Mesela bende date komutu en son kullanılmış ‘d’ ile başlayan komut olduğundan otomatik çalıştı.

Son olarak, daha önceki komutları tek tek inceleyip aradığımızı bulmak yerine, ctrl+R ile geçmiş komutlarda arama yapabiliyoruz.

Örneğin ctrl+R yaptığımızda terminalin son satırı şu şekilde oluyor

(reverse-i-search)`’:

Buraya örnek olarak ‘hi‘ yazdığımızda ‘hi‘ ile başlayan çalıştırılmış en son komutumuz olan ‘history 10’ u bulmuş oluyoruz.

(reverse-i-search)`hi’: history 10

Görüldüğü üzere linux command line birçok konuda kullanıcıların işini kolaylaştırmak için akıllıca tasarlanmış. Daha fazla kısayol öğrenip uygulamanın verimliliği artırdığını düşündüğüm için daha fazlasını öğrenip buraya yazmayı umuyorum.

kolaylıklar dilerim.

 

 

 

 

django static files -bootstrap- problemi çözümü

 

Bu yazımda django template’lerine eklediğimiz bootstrap ya da diğer js/css dosyalarımızın düzgün çalışabilmesi için gerekli static dosyası konfigrasyonundan bahsedeceğim.

Kısaca çözümü yazıyorum;

settings.py içerisinde INSTALLED_APPS adlı listede

'django.contrib.staticfiles' eklenmiş olmalı.

bootstrap kullanacağınız template'ler için projeadı/projeUygulaması içerisinde
 'templates' adında bir klasör açın.

TEMPLATES' listesinde DIRS key'ini
'DIRS': [os.path.dirname(__file__), 'templates'] 

şeklinde ayarlayın.

projeadı/projeUygulaması içerisinde 'static' adında bir klasör açıp
 içerisine bootstrap dosyalarınızı atın (css,js, gibi) 

settings.py içerisinde herhangi bir yere 

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "static"),
    'C:/ProjeYolu/static',
]

değerlerini yazın.

settings.py içerisinde
STATIC_URL = "/static/" değerinizin doğru olduğundan emin olun.

artık template'leriniz içerisinde /static/css/bootstrap.css şeklinde ekleme yapabilirsiniz

Ayrıca,
 eğer projenizi tek bir settings.py üzerinden yönetiyorsanız 
settings.py içerisindeki BASE_DIR değerini
BASE_DIR = os.path.dirname(os.path.abspath(__file__))

şeklinde ayarlamanız gerekiyor.

 Kolay gelsin, iyi çalışmalar.








01 – Proje Oluşturmak- Django/Python

Django ile proje oluşturmak için projenizin nerede olmasını istiyorsanız command line’dan cd komutu ile oraya giderek aşağıdaki komutu çalıştırmanız yeterlidir.

django-admin startproject projeadi

Bu komut command line o sırada hangi directory'deyse oraya şu dosyaları oluşturur.
manage.py
    projeadi/
        __init__.py
        settings.py
        urls.py
        wsgi.py

Burada;
 manage.py projenizi yönetmenizi/etkileşiminizi sağlar(çalıştırmak gibi).
 projeadi/ folder'ı ise aslında gerçek workspace'iniz diyebilirim. Proje dosyaları
burada saklanır.
__init__.py python'a bulunduğu dosyanın python paketi olarak yorumlanmasını söyler.
settings.py içerisine ayarları/konfigurasyon özelleştirmelerimizi yazarız. İleride
değineceğiz ancak database bilgileri ya da diğer ayarlar/bilgiler burada bulunacak.

 urls.py içerisine aslında bulunan url'leri, içerik uzantılarını yazacağız.
 wsgi.py şimdilik pek bi işimiz yok. Bunun kullanım amacı uygulamayı barındıracak
serverin konfigurasyonları. Ancak biz kolayca geliştirme amaçlı serverı kullanarak
çalışmalarımızı sürdüreceğiz.

 İlk projemizi çalıştıralım.
 Commandline'dan projemizin bulunduğu yere giderek şu komutu çalıştırıyoruz.
python manage.py runserver

 projemiz default olarak burada 127.0.0.1:8000 çalışmaya başladı.
'Welcome to Django" , "it worked" vs. yazacaktır.
 Bu aslında projemizin giriş sayfası diyebiliriz.
 Zaten başka birşey de yok henüz :) -admin bölümü dışında- 

Ek olarak, projenizi başka bir port ya da ip üzerinde çalıştırmak isterseniz
bunu argüman olarak gönderebilirsiniz.
$ python manage.py runserver 0.0.0.0:8080 

gibi.

Ubuntu 14.04 Apache Tomcat 7 Not responding / Waiting on Connecting progress

Ubuntu server’ımda /etc/default/tomcat7 dosyasında Xmx değerini 512m olarak ayarladıktan sonra server cevap vermemeye başlamıştı.

JAVA_OPTS’u şu şekilde ayarladıktan sonra sorun düzeldi..

JAVA_OPTS=”-Djava.security.egd=file:/dev/./urandom -Djava.awt.headless=true -Xmx1024m -XX:MaxPermSize=512m -XX:+UseConcMarkSweepGC”

Ubuntu Eclipse Mars – The superclass “javax.servlet.http.HttpServlet” was not found on the Java Build Path Hatası ve Çözümü

Ubuntu 15.04 sürümünde Eclipse Mars yükledikten sonra bir maven web app projesi başlattım. Proje bir hatayla başladı. ” The superclass “javax.servlet.http.HttpServlet” was not found on the Java Build Path” hatası index.jsp’nin ilk satırındaydı.

Hata şu şekilde çözüldü..

Öncelikle javaEE projelerimde tomcat8 kullandığım için tomcat8’i kurdum, siz diğer sürümleri kurabilirsiniz.

Tomcat8 için

sudo apt-get install tomcat8

Sonra eclipse’teki sol pencereden projeye sağ tık->properties’ten

Burada apache tomcat görünmüyordu.

Alttan new diyerek apache tomcat8’i seçtim.

Yükleme yolu olarak da /usr/share/tomcat8’i kullanarak yükledim. sorun çözüldü.

Mysql Server – Database’deki kullanıcıyı tüm IP’lere açma

Linux sunucumuzdaki /etc/mysql/my.cnf dosyasının içerisinde bind-address değerini 0.0.0.0 olarak değiştiriyoruz.

Bu Mysql Server sunucusunun diğer IP’lerden gelen istekleri dinlemesini sağlıyor.

Ancak herhangi bir database’e bağlanmak için o database’e ait, diğer sunuculardan bağlanabilen bir kullanıcı oluşturmamız gerekiyor.

CREATE USER 'kullanici_adi'@'%' IDENTIFIED BY 'sifre';

Bu kodu mysql server’da execute ederek diğer serverlardan db’ye bağlantı sağlayan bir kullanıcı oluşturmuş oluyoruz.

Şimdi de kullanıcıya yetkilerini verelim.

GRANT ALL PRIVILEGES ON * . * TO 'kullanici_adi'@'%';

Değişikliklerin uygulanması için

FLUSH PRIVILEGES;

herhangi bir sıkıntı olmaması için mysql server’ı resetlemeyi unutmayın.

Kolay gelsin.

Linux server’da unutulmuş Mysql Server root şifresini nasıl öğrenebilirim?

Yaklaşık 6 aydır giriş yapmadığım mysql server’ın root şifresini bulamadım. Mutlaka kaydetmişimdir ancak nereye baktıysam yok.

Biraz arama sonrası hangi dosyada kayıtlı olduğunu buldum. Sunucum linux olduğu için root folder’ında .my.cnf dosyasındaydı.

nano /root/.my.cnf

komutunu kullanarak ssh bağlantısı üzerinden dosyayı açtım ve şifre oradaydı.

Yaptığım aramalar sırasında aynı çözümü arayan birçok kişiye rastladım. Bu yüzden sizin de işinize yarayacağını umarak burada paylaşıyorum,

kolay gelsin.

JSP Nedir? Neden kullanılır? Neden geliştirilmiştir? Nasıl Çalışır?

JSP Nedir? Neden kullanılır? Neden geliştirilmiştir? Nasıl Çalışır?

JSP(JavaServer Pages) dinamik web içerikleri oluşturmamızı sağlayan bir java teknolojisidir. Yani java kullanarak geliştirme yaptığımız bir teknolojidir.

Neden geliştirilmiştir?

JavaServer Pages’in tabanı servlet teknolojisine dayanır. Servlet’ler basitçe, server(sunucu) tarafında çalışan java programlarıdır. JSP ise servlet’lere artı olarak
statik HTML kodları arasına gömülebilen, serpiştirilebilen java kodlarıdır. Bu sayede çok karmaşık yapılara girmeden, sadece istediğimiz yerlere java kodları yazarak
statik bir HTML sayfasını basitçe dinamik hale getirebiliyoruz.

Nasıl çalışır?

Ziyaretçi .jsp uzantılı dosyayı sunucudan ister. Sunucudaki JSP motoru .jsp uzantılı dosyada browserlarımızın yorumlayamayacağı java kodları olduğunu düşünerek <%…%>
tag’leri arasındaki kodları .java uzantılı servlet karşılığına çevirir. .java uzantılı servlet dosyası derlenerek .class uzantılı java dosyası oluşur ve .class dosyası çalıştırılarak
elde edilen çıktı HTML kodlarına dönüştürülerek ziyaretçiye iletilir. Bu durumda biz çözümü java ile üretmemize rağmen, tarayıcılarımız tarafından yorumlanabilen HTML kodları elde ederiz.
Ve bu HTML kodları her bilgisayarda aynı şekilde görüntülenebilir.

Windows’ta cd (change directory) ile diğer sürücülere geçme komutları

Az önce command prompt’ta git kullanırken E sürücüsüne bir repo’yu klonlamam gerekti. Ancak normal cd D:\ ya da cd E:\ komutları işe yaramadı. Ben de biraz araştırma sonrası çözümü buldum ve hem unutmamak hem de başkalarına da yardımcı olmak adına buraya yazmaya karar verdim.

C:\xyz> cd /d D:\

kolay gelsin.