özgür dünya

Burası Vim, buradan çıkış yok!

Stackoverflow'da dün yayınlanan blog yazısına göre vim editöründen çıkmayı en çok aratan 2. ülke olmuşuz. Bunun nedenleri ayrı bir tartışma konusunda yer alacağını söylemekle birlikte yaklaşık iki gündür sosyal medyada dönen geyikleri izlemekteyiz. Bu yazımda ise basit bir biçimde Vim'den nasıl çıkılacağını, ve daha büyük kabus olan vi'de düzenleme yapıp çıkabilmeyi anlatacağım. Tabi Vim'in onlarca verimli ve güzel özelliği varken bunları anlatmak biraz absürt olsa da kim bilir bu seviyeden durumu yakalayan arkadaşlar daha detaylı ilgilenmeye başlarlar.

Öncelikle espriler ve geyiklerden sıyrılıp Vim'den çıkış için gerekli tuş kombinasyonunu yazmak gerekir. "Visual mod" yani varsayılan mod açıkken aşağıdaki komutu yazarsanız editörden yaptığınız değişikleri kaydetmeden çıkarsınız

:q!

Eğer kaydederek çıkmak istiyorsanız:

:wq

yazmanız gerekmekte. Yani aslında aranılan mucizevi komut budur.

Eğer vim'inizin ayarları yoksa yön tuşları ve backspace sorunlu karakterler çıkartacaktır. Bunu önlemek için geçici olarak:

:set nocompatible
:set backspace=2

komutlarını yazmak veya bulunduğunuz kullanıcı üzerinde kalıcı olması için bu komutları ev dizininizdeki .vimrc içerisine yazmanız gerekli. yani:

printf "set nocompatible\nset backspace=2\n" >> ~/.vimrc

yazmanız gerekmekte.

Bir de eğer "vim" kurulu olmayan bir bilgisayarda veya bash ayarlarında vi yazınca vim'e yönlendirmiyorsa ilk girdiğinizde "yön tuşları" ve "geri" tuşlarının saçma sapan görevler yaptığına şahit olmuş olabilirsiniz. Bu illetten kurtulmak için için kalıcı olarak aşağıdaki komutu kullanabilirsiniz.

printf "alias vi='TERM=rxvt-unicode-256color vi'" >> ~/.bashrc

İlk paragrafta da bahsettiğimiz gibi popüler kültürün bir iki gündür meşhur ettiği bu konu vim'in esprili bir noktası fakat gerçek anlamda verimlilik sağlamak için vim'de kullanılan oldukça güzel araçlar ve eklentiler bulunmaktadır. Araştırarak güzel noktalara varabilirsiniz.

Microsoft'un Gelir Dağılımı Hakkında

Birçok insanın çoğu zaman merak ettiği, teknoloji alanında büyük şirketlerin gelir modelleri neler ve gelirlerini nereden elde ediyorlar konulu bir araştırma Visual Capitalist tarafından 12 Mayıs 2017 tarihinde duyuruldu.

Bu rapora göre Microsoft'un gelirleri aşağıdaki yüzdeyle gerçekleşmekte:

Bu rapordan çıkartılan ön sonuç, genel anlamda MS'un Office gelirleri %28 ile şirketin en büyük kazandığı noktayı gösteriyor. %22 ile Windows'un sunucu tarafında yaptığı yatırımların sonucunu görüyoruz. Tabi ki bu tabloda sunucu tercihleri konusunda %9 kar elde ettikleri istemci Windows satışının önemli rol oynadığını unutmamamız gerekmektedir. Yüzde 18'lik "Diğer" bölümü de oldukça muamma olduğu için aslında önemli bir noktayı barındırdığını unutmamak gerekir.

Bu tabloda ana ürünleri olan MS Windows işletim sisteminden ana kalem olarak kar etmedikleri açıkça görünüyor. Bunu düz bir biçimde bakıp "işletim sisteminden gelir elde edemiyoruz" şeklinde yorumlayacak kendi yöneticileri elbette bulunmamaktadır. Çünkü işletim sistemini yalnızca diğer yan ürünlerini iyi bir biçimde pazarlayabilmek için "ucuz"a satmaktalar. Ve bir anlamda daha önce onlarca kez belirtildiği gibi sürümden kazanmaktalar.

Özgür ve açık kaynak işletim sistemlerinin bu tabloda Ofis anlamında bir üstünlük elde etmesi gerekliliğinin bir kere daha altını çizmek istiyorum. Eğer kullanıcılar Ofis alışkanlıklarını değiştirirse Microsoft'un Windows'una bağlı kalmamak için en büyük kalelerden ilki olan MS Office bağımlılığından kurtulabiliriz. Tabi bu adımdan sonra bir de Windows Server'ın muadil yapısının detaylandırılması önemli noktalardan birisi. Çok daha profesyonel bir çözüm sunulup, kullanıma gidilmesi gerekiyor. Zamanla hepsi olabilir ama yol haritasının bu şekilde olması gerektiğini düşünmekteyim.

Desktop dosyası anatomisi

Linux "X Masaüstü Sistemleri"nde genel olarak yani tüm Masaüstü ortamlarında masaüstünde görüntülenen ikonlar .desktop dosya tipiyle tutulmaktadır.

.desktop dosya tipinde elemanlar aşağıdaki gibi listelenmektedir:
eleman=değer

.desktop dosyasında gerekli elemanlar: 

Type : ikon tipini belirtir. Yandaki seçeneklerden birisi olabilir: Application, Link ve Directory.
Name : ikonun görüntülecek ismini belirtir.
Exec : tıklanıldığında çalıştırılacak komutu gösterir.

.desktop dosyasında opsiyonel elemanlar: 

Version – ikonun versiyonunu belirtir
Encoding – dosyanın encode tipini belirtir.GenericName – jenerik ismini belirtir.
Comment – ikon hakkında yorumIcon – ikonun görselinin bulunduğu dizin veya ismini belirtir.
Path – hangi dizin üzerinde çalıştırılacağı belirtilir.Terminal – terminal üzerinde çalışıp çalışmayacağı belirtilir.
MimeType – mimetipini belirtir
Categories – uygulamanın bulunduğu kategorileri belirtir

Örnek bir desktop dosyası:

[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Terminal=false
Exec=ls -l
Name=Ekranı Görüntüle
Icon=$HOME/ikonlar/ikon.png

Python ile geçici Web Sunucusu açmak

Python ile bulunduğunuz dizinde paylaşılabilir bir alan oluşturarak 8000 portundan aynı ağda bir web sunucusu açabilirsiniz. Bunun için bulunduğunuz konumda aşağıdaki komutu çalıştırmanız yeterli:
python -m SimpleHTTPServer
Böylelikle sizin IP adresini bilen bir kullanıcı, aynı ağınıza bağlı ise IP adresinizi yazarak giriş yapabilecektir. Test etmek için: http://localhost:8000 adresini kullanabilirsiniz.

Uçbirim geçmişi hakkında 9 ipucu

Linux üzerinde uçbirimi oldukça kullanıyorsanız bu 15 ipucuyu ya biliyorsunuzdur, ya da öğrenmeniz gerekmektedir.

1. HISTTIMEFORMAT üzerinde tarih damgası oluşturmak

Eğer "history" komutunuzun çıktısında yer alan komutların hangi tarihte yazıldığına ihtiyanız varsa aşağıdaki komut ile bunun önüne geçebilirsiniz.
export HISTTIMEFORMAT='%F %T '
Tabi ki bu komutu kullanıp history'ye bakarsanız yeni oluşturacağınız komutları o şekilde görebilirsiniz. Ve bu şekilde kullanımı geçici süreliğine kullanımdır. Bunu kendi ev dizininizdeki .bashrc dosyasının en altına yazarsanız tüm oturumlarda aynı sonucu almaya başlayabilirsiniz.


2. Geçmişteki komutları arama yapmak

Geçmişteki yazdığınız ve .bashrc dosyanızda HISTSIZE ve HISTFILESIZE parametreleriyle sınırlandırdığınız geçmiş komutlarınızda arama yapmak için komut satırındayken CTRL + R'ye basabilirsiniz. Böylelikle geçmişte bir arama ekranı açılmış olur. Çokça kullandığınız komutları da bu şekilde kolaylıkla bulabilirsiniz.


3. Bir önceki komutu çalıştırabilmek

Bir önce yazdığınız komutu tekrar çalıştırmak için önünüzde 4 yöntem bulunmakta.
1) Klavyede genellikle sağ altta bulunan "Üst Ok" tuşuna basıp, enter'a basmak.
2) "!!" yazıp, enter'a basmak.
3) "!-1" yazıp, enter'a basmak.
4) CTRL + P 'ye aynı anda basıp, sonrasında enter'a basmak. 


4. Geçmiş listesinde belirli bir komutu çalıştırmak

Öncelikle bilgilenmek için geçmiş listenizin en üstündeki 4 komutu aşağıdaki gibi listeleyebilirsiniz:
history | head -4
Gördüğünüz çıktılardan örneğin 3. çıktıyı çalıştırmak isterseniz komutunuz aşağıdaki gibi olmalıdır:
!4


5. Belirli bir karakter dizisi ile başlayan en yakın komutu çalıştırma

Belirli bir karakter dizisi ile başlayan son komutu çalıştırmak için de aşağıdaki komutu uygulamalısınız.
!apt
Bu şekilde apt ile başlayan son komutu tekrar çalıştırmış olacaksınız.


6. Geçmiş listenizin boyutunu değiştirmek

Ev dizininizdeki .bashrc dosyanızı açın ve içerisindeki aşağıdaki parametreleri kendinizde göre düzenleyiniz:
HISTSIZE=1000000
HISTFILESIZE=100000000


7. Tekrarlayan komutları engelle

Tekrarlayan komutları engellemek için aşağıdaki komutu çalıştırmanız gerekmektedir. Kalıcı hale geçirmek için ev dizininizdeki .bashrc dosyası içerisine eklemeniz gerekmektedir.
export HISTCONTROL=ignoredups


8. Tüm geçmişte tekrarlayan komutları engelle

Geçmişteki tüm aynı olan komutları engeller ve en son kullanılan şekilde tutulmasını sağlar.
export HISTCONTROL=erasedups


9. Geçmişteki bir komutun çıktısını kelime olarak ekleme

Örneğin bir önceki komutun çıktısını komut satırına eklemek için aşağıdaki komutu kullanmanız gerekmektedir:
#ls ali.txt
ali.txt
#vi !!:$
vi ali.txt

Kaynak: https://goo.gl/iShxgK