Shell İpuçları

  • Ö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)

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 {};"

Kaynak: http://stackoverflow.com/questions/4202135/how-to-drop-multiple-tables-in-postgresql-using-a-wildcard#answer-26480962

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ı