Putty und Cygwin

Cygwin ist eine schöne und freie Posix Umgebung für Windows, welche aber leider ein ordentliches Terminal vermissen lässt. Man kann zwar einen X-Server automatisch starten und dann mit xterm arbeiten, so ganz toll ist das aber auch nicht, weil die Schriften nicht so einfach auszutauschen sind und es wirkt insgesamt immer ein bisschen hakelig.

Ok, nun bin ich schonmal über einen Putty Patch gestolpert, der sich mit Cygwin verbinden kann. Leider habe ich es noch nicht hinbekommen gehabt, heute dann doch. Zunächst muss man die modifizierte Version von Putty laden http://code.google.com/p/puttycyg/ und entpacken, sagen wir mal nach ‘D:\opt\puttycyg-20071202′.

Jetzt ist das Putty genauso startklar wie ein normales, wie kommt man nun aber zu einer lokalen Bash? Auch einfach, man muss es nur wissen ;)

Diese Einstellung speichert man - wie hier zu sehen - gleich mal unter ‘localhost’ ab, damit man nicht immer die Konfiguration vornehmen muss. Nach dem Doppelklick geht das auch soweit.

Nun wäre es aber noch schön, die lokale Session nicht erst immer über die Putty Abfrage zu starten. Dafür bauen wir noch eine Verknüpfung (man beachte den Parameter -load localhost am Ende der Datei).

Bei Bedarf tauscht man noch das Icon gegen “C:\cygwin\Cygwin.ico” aus und man hat eine wunderschöne und schnelle Startverknüpfung zu einem ordentlichen lokalen Terminal.

Nun fehlen nur noch Cygwin- oder Bash spezifische Einstellungen, welche auch gleich noch gemacht werden können. Zum einen fehlen noch die Umlaute in der Bash, das macht die angehangene .Xmodmap Datei, welche ins Home kopiert werden muss. In der .bashrc und der .inputrc werden ein paar Farbwerte gesetzt, die ‘Reverse History Search’ auf die BildAuf/BildAb Tasten gelegt und der Prompt so angepasst, dass der Pfad immer durch einen Doppelklick markierbar ist.

In der .bashrc wird dieser teil unten eingefügt:

export LANG=de_DE
export LANGUAGE=de_DE
export LC_CTYPE=de_DE
export LC_NUMERIC=C
export LC_TIME=de_DE
export LC_COLLATE=de_DE
export LC_MONETARY=de_DE
export LC_MESSAGES=C
export LC_PAPER=de_DE
export LC_NAME=de_DE
export LC_ADDRESS=de_DE
export LC_TELEPHONE=de_DE
export LC_MEASUREMENT=de_DE
export LC_IDENTIFICATION=de_DE
export LC_ALL="de_DE xterm -fn"

export HISTCONTROL=ignoredups

PS1='${debian_chroot:+($debian_chroot)}\[33[01;32m\]\u@\h\[33[00m\]: \[33[01;34m\]\w\[33[00m\] \$ ‘

# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
PROMPT_COMMAND='echo -ne "33]0;${USER}@${HOSTNAME}: ${PWD/$HOME/~}07"'
;;
*)
;;
esac

# enable color support of ls and also add handy aliases
if [ "$TERM" != "dumb" ]; then
eval “`dircolors -b`”
alias ls=’ls –color=auto’
#alias dir=’ls –color=auto –format=vertical’
#alias vdir=’ls –color=auto –format=long’
fi

# coloured grep
export GREP_OPTIONS='--color=auto' GREP_COLOR='1;32'

In der .inputrc fügen wir diese Zeilen ein, damit die History Search funktioniert:

# alternate mappings for "page up" and "page down" to search the history
"\e[5~": history-search-backward
"\e[6~": history-search-forward

Und die .Xmodmap sieht so aus:

keycode   8 =
keycode   9 = Escape
keycode  10 = 1 exclam
keycode  11 = 2 quotedbl twosuperior
keycode  12 = 3 paragraph threesuperior
keycode  13 = 4 dollar
keycode  14 = 5 percent
keycode  15 = 6 ampersand
keycode  16 = 7 slash braceleft
keycode  17 = 8 parenleft bracketleft
keycode  18 = 9 parenright bracketright
keycode  19 = 0 equal braceright
keycode  20 = ssharp question backslash
keycode  21 = apostrophe grave
keycode  22 = BackSpace
keycode  23 = Tab
keycode  24 = q Q at
keycode  25 = W
keycode  26 = E
keycode  27 = R
keycode  28 = T
keycode  29 = Z
keycode  30 = U
keycode  31 = I
keycode  32 = O
keycode  33 = P
keycode  34 = Udiaeresis
keycode  35 = plus asterisk asciitilde
keycode  36 = Return
keycode  37 = Control_L
keycode  38 = A
keycode  39 = S
keycode  40 = D
keycode  41 = F
keycode  42 = G
keycode  43 = H
keycode  44 = J
keycode  45 = k K Arabic_kaf
keycode  46 = l L Arabic_lam Greek_lambda
keycode  47 = Odiaeresis
keycode  48 = Adiaeresis
keycode  49 = asciicircum degree
keycode  50 = Shift_L
keycode  51 = numbersign apostrophe
keycode  52 = Y
keycode  53 = X
keycode  54 = C
keycode  55 = V
keycode  56 = B
keycode  57 = N
keycode  58 = m M mu
keycode  59 = comma semicolon
keycode  60 = period colon
keycode  61 = minus underscore
keycode  62 = Shift_R
keycode  63 = KP_Multiply
keycode  64 = Alt_L Meta_L
keycode  65 = space
keycode  66 = Caps_Lock
keycode  67 = F1
keycode  68 = F2
keycode  69 = F3
keycode  70 = F4
keycode  71 = F5
keycode  72 = F6
keycode  73 = F7
keycode  74 = F8
keycode  75 = F9
keycode  76 = F10
keycode  77 = Num_Lock
keycode  78 = Scroll_Lock
keycode  79 = Home KP_7 KP_7 Home
keycode  80 = Up KP_8 KP_8 Up
keycode  81 = Prior KP_9 KP_9 Prior
keycode  82 = KP_Subtract
keycode  83 = Left KP_4 KP_4 Left
keycode  84 = Begin KP_5 KP_5 Begin
keycode  85 = Right KP_6 KP_6 Right
keycode  86 = KP_Add
keycode  87 = End KP_1 KP_1 End
keycode  88 = Down KP_2 KP_2 Down
keycode  89 = Next KP_3 KP_3 Next
keycode  90 = Insert KP_0 KP_0 Insert
keycode  91 = Delete KP_Decimal KP_Decimal Delete
keycode  92 = 0x1007ff00
keycode  93 =
keycode  94 = less greater bar
keycode  95 = F11
keycode  96 = F12
keycode  97 = Home
keycode  98 = Up
keycode  99 = Prior
keycode 100 = Left
keycode 101 = Begin
keycode 102 = Right
keycode 103 = End
keycode 104 = Down
keycode 105 = Next
keycode 106 = Insert
keycode 107 = Delete
keycode 108 = KP_Enter
keycode 109 = Control_R
keycode 110 = Pause
keycode 111 = Print
keycode 112 = KP_Divide
keycode 113 = Mode_switch
keycode 114 = Break
keycode 115 = Meta_R
keycode 116 = Meta_R

Tags: , ,

Eine Antwort zu “Putty und Cygwin”

  1. [...] ähnlich)…wo dann zum Beispiel wieder das UTF-8 fehlt.  Irgendwann einmal fand ich diesen Link: Cygwin in nem PuTTY. PuTTY als SSH-Client unterstützt ja alle wichtigen Sachen wie UTF-8 und [...]

Eine Antwort hinterlassen