2015. január 3., szombat

Hatékony munkakörnyezet készítése Zsh terminállal

A Linux rendszerek felhasználói általában terminálok segítségével érik el céljaikat. Fejlesztőként nagy segítség lehet egy jól összerakott Linux környezet, de átlagfelhasználóként is fontos annak használhatósága. A Linux és OSX rendszereken általában a Bash shell az alapértelmezett, ennél azonban sokkal jobban testreszabhatóbb és fejlettebb az ezen cikk alapjául is szolgáló Zsh.

## Zsh telepítés
$ sudo apt-get install zsh
## beállítás alapértelmezett shell-ként
$ chsh -s `which zsh`

A legjobb dolog a Zsh-val kapcsolatban, hogy funkcionalitása pluginekkel könnyen kiterjeszthető. A legnépszerűbb módja a Zsh konfiguráció kezelésének az Oh My Zsh, mely a Zsh felhasználói közösség által készített keretrendszer.

## Oh My Zsh telepítés
$ curl -L http://install.ohmyz.sh | sh

jump, z

A pluginek az Oh My Zsh telepítésével már fel is lettek telepítve, csak engedélyezni kell őket a ~/.zshrc fájlban. Az elérhető pluginekről itt lehet bővebben olvasni. A következő plugineket mindenkinek ajánlom, sokkal produktívabbá teszik a parancssoros környezeteket, korábban már Bash shell-nél is használtam őket. A jump nevű kiegészítéssel gyakran használt könyvtárakat menthetünk el könyvjelzőként és később gyorsan ugorhatunk hozzá; míg a z plugin egy autojump variáns, amely megjegyzi, hogy milyen mappákba lépünk be gyakran és reguláris kifejezések illesztésével megpróbál a legjobb mappába ugrani. Példa a használatukra:

## jump
$ cd /very/very/very/very/very/long/path
## mentés könyvjelzőbe
$ mark longpath
$ cd ~/
## ugrás könyvjelzőhöz
$ jump longpath
$ pwd
/very/very/very/very/very/long/path
## mentett könyvjelzők listázása
$ marks
longpath  -> /very/very/very/very/very/long/path
## könyvjelző törlése
$ unmark longpath
## z
$ cd ~/
## legjobban illeszkedő mappába ugrás
$ z path
$ pwd
/very/very/very/very/very/long/path

Syntax highlight

Egy másik nagyon jó kiegészítés, amely nincs benne az alap pluginek között a shell syntax highlight. Ezt a feature-t a Fish shellből kölcsönözték és rendkívül hasznos, hogy az enter leütése nélkül is látszik, hogy helyes-e az adott parancs.

## syntax highlight plugin telepítése
$ cd ~/.oh-my-zsh/custom/plugins
$ git clone git://github.com/zsh-users/zsh-syntax-highlighting.git
## hozzáadás a ~/.zshrc plugins listához
$ sed 's/plugins=(\(.*\))/plugins=(\1 zsh-sytax-highlighting)/' -i ~/.zshrc

apt-fast

Ha voltál már vele úgy, hogy untad a hosszan tartó apt-get vagy aptitude letöltéseket, akkor ez a kiegészítés szintén neked szól. Az apt-fast egy wrapper, mely párhuzamosan több szálon tölti le a csomagokat, így drasztikusan csökkentve a letöltések várakozási idejét. Az Oh My Zsh keretrendszer tartalmaz autocomplete funkciót az apt-fast-hoz is.

## apt-fast telepítése
$ sudo add-apt-repository 'deb http://ppa.launchpad.net/saiarcot895/myppa/ubuntu utopic main'
$ sudo apt-get update
$ sudo apt-get install apt-fast

t

A következő kis program más módon teszi még használhatóbbá a terminálunkat. Ez pedig a t, mely egy rendkívül egyszerű, kevés feature-rel rendelkező, de azokat nagyon jól végző TODO list manager. Erőssége abban rejlik, hogy a teendőinket szöveges fájlba tárolja el, mely tulajdonságot - a Linux rendszereken megszokott módon - sok féleképpen kihasználhatunk: szerkeszthetjük, feldolgozhatjuk bármilyen szövegszerkesztővel, verziókezelhetjük, szinkronizálhatjuk gépek között teendőinket. Használata nagyon egyszerű:

## taskok létrehozása
$ t First task.
$ t Second task.
## taskok listázása
$ t
1 - First task.
2 - Second task.
## task törlése
$ t -f 1
$ t
2 - Second task.
## task szerkesztése
$ t -e 2 Other task.
$ t
2 - Other task.

Telepítése:

## t telepítése
$ mkdir -p ~/.scripts/t
$ git clone https://github.com/sjl/t.git ~/.scripts/t
$ mkdir ~/.tasks
## alias létrehozása t-re
$ alias t='python ~/.scripts/t/t.py --task-dir ~/.tasks --list tasks'

alias

Az Oh My Zsh rengeteg operációsrendszer specifikus alias-t tartalmaz, melyek könnyebbé teszik a munkát, de néhány sajáttal kiegészíteném a listát.

alias ..="cd .."
alias ...="cd ../.."
alias ....="cd ../../.."
alias .....="cd ../../../.."
alias ......="cd ../../../../.."

## biztonságos fájlműveletek
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

## telepítés egyszerűsítése
alias install='sudo apt-fast -y install' 
alias search='apt-cache search' 
alias purge='sudo apt-fast -y purge'

## vágólapkezelés
alias xclip='xclip -selection c'

## t
alias t='python ~/.scripts/t/t.py --task-dir ~/.tasks --list tasks'

Az xclip parancs segítségével terminálból vágólapra helyezhetünk szövegeket a következő módon:

## ilyenkor az 123 szöveg lesz a vágólapon
$ echo 123 | xclip

Összefoglalás

Látható, hogy a terminálunkból egy igen hatékony eszközt tudunk varázsolni, egy kis munkával. Ha fejlesztő vagy, nem nagyon lehet elkerülni a parancssoros környezetek használatát, így érdemes azok használatát megtanulni, és hogy ez ne járjon akkora fájdalommal, érdemes úgy beállítani a környezetet, hogy abból a legtöbbet tudjuk kihozni.

4 megjegyzés:

  1. Thanks a lot for sharing and I have some special things for you.
    running games online
    drifting car games

    VálaszTörlés
  2. I like what you shared in the article, thank you for that, it has given me more experience. I would like to share with you some interesting things, if you have free time and want to find a tool for fun read it now.truyện ngôn tình hiện đại h nặng Read and ponder the good quotes of life below, you will surely draw in life's own deep lessonsthank you for your hard work quotesOr you can go and search for the most fun games to play likenhạc chuông lạnh. Surely what I'm introducing to you will not disappoint you. Please click and experience. Having fun.

    VálaszTörlés
  3. Very nice blog, thanks for this post and I have some special things for you. If you are finding something to relax, cross the line game; beauty games for girls will be my best recommendation for you. Let’s play and get more deep relaxation!
    Beside, you can try pop pop rush. Now, you can completely play this addicting fun game on your mobile. Have fun!!!!

    VálaszTörlés