- Önceki komutun son parametresini almak: !$ (Ör: ls !$)
- Üstteki ile aynı: ESC + . (nokta) (Ör: ls ESC + .)
- Dosya sıkıştırma: tar cfvz files.tar.gz file-or-dir
- Sıkıştırılmış dosyayı açma: tar xzvf files.tar.gz
- scp örneği: scp root@11.11:/home/egulhan/file1 /home/egulhan2/Desktop/
- İstenilen sayıda cd.. uygulamak:
# up 4 -> go up 4 directories up() { dir="" if [[ $1 =~ ^[0-9]+$ ]]; then x=0 while [ $x -lt ${1:-1} ]; do dir=${dir}../ x=$(($x+1)) done else dir=.. fi cd "$dir"; }
- Betik içinde mevcut betiğin dirname’ini almak: $(dirname $0)
Monthly Archives: November 2012
Postgresql İpuçları
- Tabloların sadece kayıtlarını dump alma: pg_dump –column-inserts –data-only –inserts -t table1 -f dump.sql -U user db_name
- Bazı tabloların dump’ını alma: pg_dump -t table1 -t table2 -f dump.sql -U user db_name –inserts
- sql sorgu sonucunu dışarı aktarma (superuser gerektirmez): \copy (select * from maillog) To ‘/tmp/mail-logs.dump.csv’ With CSV header
- sql sorgu sonucunu dışarı aktarma (superuser gerektirebilir): copy (select * from table1) to ‘/tmp/test.csv’ with csv;
- Login iken client character encoding’i öğrenme: show client_encoding
- Login iken sunucu character encoding’i öğrenme: show server_encoding
- Character encoding’i öğrenme: psql database user –list
- ILIKE ile case-insenstive arama yapma: select * from table1 where city ILIKE ‘istanbul’
- Konsoldan import: psql -f dump.sql
- psql prompt’dan import: \i dump.sql
- Tüm tabloları listeleme: \d
- Bir tablonun yapısını görme: \d+ table1
- Sorgu sonuçlarını dikey formatlı görme: select * from users\x\g\x
- Sorgu ile bir tablonun varlığını kontrol etme: select * from pg_class where relname=’tablename’
Postgresql’den Benzer Tabloları Topluca Silme
psql -d mydb -P tuples_only=1 -c '\dt' | cut -d '|' -f 2 | paste -sd "," | sed 's/ //g' | xargs -I{} echo psql -d mydb -c "drop table {};"
Tablonun Constraint’lerini Öğrenme
SELECT * FROM information_schema.table_constraints tc right JOIN information_schema.constraint_column_usage ccu ON tc.constraint_catalog = ccu.constraint_catalog AND tc.constraint_schema = ccu.constraint_schema AND tc.constraint_name = ccu.constraint_name and ccu.table_name in ('table_name') WHERE lower(tc.constraint_type) in ('foreign key');
Örnek-1: Table Oluşturma
CREATE TABLE accountsdisabled( id serial NOT NULL PRIMARY KEY, accountname CHARACTER VARYING(100) DEFAULT ''::CHARACTER VARYING NOT NULL, organization CHARACTER VARYING(100) DEFAULT ''::CHARACTER VARYING NOT NULL, generalorganization CHARACTER VARYING(100) DEFAULT ''::CHARACTER VARYING NOT NULL, --- smailint col. status SMALLINT DEFAULT (0)::SMALLINT NOT NULL, --- timestamp col. without zone and miliseconds crtdate TIMESTAMP WITHOUT TIME zone DEFAULT now()::timestamp(0) );
Vim İpuçları (vim tips)
Kopyalama-Yapıştırma
- Clipboard’a içerik kopyalama: “+y[movement] veya :%y+
- Clipboard’dan içerik yapıştırma: “+p
- Bir dosyanın tüm içeriğini clipboard’a kopyalama: gg”+yG
Case sensitive-Case insensitive
- Kalıcı case insensitive ayarlama: :set igorecase veya :set ic
- Kalıcı case sensitive ayarlama: :set noigorecase veya :set noic
- Tümü küçük harf girilerek yapılan aramalarda case insensitive davranmasını sağlama: :set smartcase
- Case insensitive arama yapma: /search\c
- Case sensitive arama yapma: /search\C
Lowercase-Uppercase
- Bir satırdaki tüm harfleri küçük yapma: :s/\(.*\)/\L\1/
- Bir satırdaki tüm harfleri büyük yapma: :s/\(.*\)/\U\1/
- Bir satırdaki ilk harfi büyük yapma ve diğerlerini küçük yapma: :s/^\(.\)\(.*\)/\u\1\L\2/
- Bir satırdaki kelimelerin ilk haflerini büyük diğerlerini küçük yapma: :s/\<\(\w\)\(\w*\)\>/\u\1\L\2/g
Karışık
- J: mevcut satırı sonraki satırlara birleştirir
- K: linux’de cursor altındaki kelimenin man sayfasını getirir
- set nrformats=: bu vim’i onların başında sıfır olduğuna bakmadan tüm sayıları 10’luk olark algılamasını sağlar
- ,: f{chart}, F{char}, t{char} veya T{char} ile yapılan aramayı tersine doğru tekrarlar
- ;: f{chart}, F{char}, t{char} veya T{char} ile yapılan arama tekrarlar
- F{char}: satırdaki bir karakteri geriye dönük arar
- f{char}: satırdaki bir karakteri ileriye dönük arar
- s: cl gibi cursor altında karakteri siler ve insert moduna geçer
- S: ^C gibi satır başına konumlanır, satırı siler ve insert moduna geçer
- C: c$ gibi mevcut yerden satır sonuna kadar siler ve insert moduna geçer
- vit: açılmış ve kapanmış tag’lar (<div></div> gibi) arasındaki metni seçer
- vim -u NONE -N: vim’i .vimrc’siz(-u NONE) ve vi uyumlu olmadan (-N)
- Tek seferde birden fazla komut çalıştırma: :%s/erman/ERMAN/g | %s/gulhan/GULHAN/g
- :Helptags: dizinler için help tag dosyalarını oluşturur (* örneğin :help ile arattığınız bir şeyi bulmuyorsa bu komut verilmeli)
- V125gg: mevcut satırdan yukarıya doğru 125 nolu satıra kadar görsel olarak seçer
- V125G: mevcut satırdan aşağıya doğru 125 nolu satıra kadar görsel olarak seçer
- :e $MYVIMRC: .vimrc dosyanızı açar
- :e $MYGVIMRC: .gvimrc dosyanızı açar
- :so $MYVIMRC: .vimrc dosyasını tekrar yükler
- ^M karakterlerini temizleme: :%s/<Ctrl-V><Ctrl-M>//g
- Vim’i varsayılan svn editörü olarak atama: export SVN_EDITOR=vim
- Dosyanın karakter kodlamasını öğrenme :set fileencoding
- Kursörün altındaki karakterin Ascii/Unicode değerini öğrenme: ga veya :as veya :ascii
- Vim ile açılan son dosyayı açmak: alias lvim=”vim -c \”normal ‘0\””
- Substitution syntax: :[range]s[ubstitute]/{pattern}/{string}/[flags] [count]
- Tüm satırların başına satır numarası ekleme: :%s/^/\=line(“.”).”- “/g
- Ortam değişkenlerini gerçek değerleri ile değiştirme: :%s/\$USER/\=expand($USER)/g
- Php dosyasında syntax hatası kontrolü: :! php5 -l reports.php
- Bir satırı etiketleme ve ona gitme:
- etiketleme: m{letter} veya :ma {letter}
- gitme: ‘{letter}
- Etiketlenmiş satırı kopyalama: y'{letter}
- Dosyanın adını gösterme: :echo @%
- Açılıp-kapanmış (‘, (, {, [, vs.) karakterlere gitme:
- sonrakine gitme: %
- öncekine gitme: [{char}
- :abbr proglang programming language: Yazarken “proglang” kısaltmalarını otomatik olarak “programming language” olarak çevirir
- U: mevcut satırda değişiklikleri geri alır
- g+, g-: metin değişikliklerini ileri ve geri alır
- :0;/echo: echo geçen ilk satırı bulur
- :/echo/+1: ilk echo geçen satırdan bir sonraki satır
- :.+5: mevcut satırdan sonraki 5. satır
- :,+7s/echo/print: mevcut satırla birlikte sonraki 6 satırıdaki echo’ları print’e çevirir (uzun hali: :.,.+7/echo/print)
- :s/echo/print/ 3: mevcut satırdaki ve sonraki 2 satırdaki echo’ları print’e çevirir
- :1d 5: mevcut ve sonraki 4 satırı siler
- :set paste: clipboard’dakini kopyalarken olduğu gibi kopyalar (kopyalamadan önce bu komut çalıştırılmalıdır [fazladan indent’leri ekleme problemini çözer])
- :edit: mevcut dosyayı tekrar yüklemek için de kullanılır
Window / split / vsplit
- :resize 10: pencereyi 10 satırlık ayarlar
- :res +10: pencerenin yüksekliğine 10 satırlık yükseklik ekler
- :vertical res 10: pencerenin genişliğini 10’luk yapar
- Ctrl-w + / Ctrl-w –: split window yüksekliğine 1 satır ekler/çıkarır
- Ctrl-w > / Ctrl-w <: vsplit window genişliğine 1 satır ekler/çıkarır
- 5 Ctrl-w +: window yüksekliğine 5 satır ekler
- Ctrl-w =: split window genişliklerini eşitler
- Ctrl-w _: vsplit window yüksekliğini maksimum ayarlar
Zoom
- zt: mevcut satırı en üste çeker (zt: zoom top)
- zb: mevcut satırı en alta çeker (zb: zoom bottom)
- zz: mevcut satırı ortaya çeker
* zoom’lama komutları komut modunda yazılmalı