Birçok linux sistemde bu özellik default olarak çalışır halde gelse de en son yüklediğim kali linux’ta çalışmıyordu. Aşağıdaki komutlar işe yaradı.
complete -cf sudo
complete -cf man
Birçok linux sistemde bu özellik default olarak çalışır halde gelse de en son yüklediğim kali linux’ta çalışmıyordu. Aşağıdaki komutlar işe yaradı.
complete -cf sudo
complete -cf man
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.
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.
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 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 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ü.
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.
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(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.
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.