Skip to content

Bash frissítés

Először csak rendes UTF-8 támogatást akartam terminálban, hogy egy-egy ő-t leütve ne kapjak kérdőjeleket és két két sortörést, de aztán vérszemet kaptam. Íme az eljárás lépésről lépésre.

Utfnyolcasítás

  1.  A *.profile*-ba, ha akad, aki nem ismeri: a home folderben található rejtett fájl, a következő **két** sor kerül:
    

    export LC_CTYPE=hu_HU.UTF-8
    export LC_ALL=hu_HU.UTF-8

    ha magyar nyelvű basht szeretnénk, akkor pluszba még egy ilyen is. (De amúgy nem szeretnénk, rémisztőek a magyar hibaüzenetek.)

    export LANG=hu_HU.UTF-8

  2. A .inputrc-be, ugyanott van mint a .profile, négy sor kerül:

    set meta-flag on
    set input-meta on
    set output-meta on
    set convert-meta off

    de ha már úgyis ott vagyunk, akkor még egy sort érdemes hozzáadni:

    set completion-ignore-case on

    ezzel megkérjük a rendszert, hogy a tab completionnél (parancskiegészítés?) ne izguljon a shell a kis- és a nagybetűk különbségén. A bash mégse Édes Anyanyelvünk, szabad a kisbetű.

  3. Az [igazán hozzáértők szerint][1] még a ~/.MacOSX/environment.plist fájban fel kell venni egy LC_CTYPE keyt hu_HU.UTF-8 értékkel. Erre adta nekünk az isten a Property List Editor programot a devtools részeként. Igaz, nekem enélkül is működött rendesen az UTF-8, öröm volt nézni.
    

Új bash

Innentől jönnek az igazából nem túl fontos dolgok, amiket kizárólag a köhögéscsillapító tea hatására követtem el.

  1.  Új bash és coreutils - ha már lúd - beszerzése. Fent van finken a 3.0.2-es bash, macportson meg a még eggyel újabb is, pillanatok alatt leszedi a gép. A pillanatok csak akkor nyúlnak meg kicsit, ha nem kérjük meg a finket, hogy bináris csomagot szedjen le. Egyszer ez is véget ér, mint a lázas ifjúság meg a csillagkapu.
    
  2.   A */etc/shells* fájlba fel kell venni az új bashunkat a (fink esetében) következő elérési úttal: */sw/bin/bash*. Macportsszal pedig <del>azt hiszem */opt/bin/bash* lenne, de mérget nem veszek rá.</del> */opt/local/bash*.
    
  3.  Most már be lehet állítani, hogy az új bash legyen az alapértelmezett shellünk. Ezt vagy a Netinfo Manager.app-ban tehetjük meg, vagy a
    

chsh -s /sw/bin/bash

parancs kiadásával.

  1. Utolsó lépésként még a .profile-ba még át lehet másolni a /etc/bashrc-ből a bash promtra vonatkozó sorokat, mert onnan nem olvassa ki magának.

if [ -n "$PS1" ]; then PS1='\h:\w \u\$ '; fi

10 Comments

  1. MiszterX wrote:

    Szupi! ez nagyon hasznos! koszi!

    Wednesday, February 7, 2007 at 20:07 | Permalink
  2. +1 sor a .profile-ba, mert LC_ALL nélkül warningokat dobál a fink. Működni működik enélkül is.

    Thursday, February 8, 2007 at 00:36 | Permalink
  3. a. wrote:

    /opt/local/ a portsnal a prefix

    Thursday, February 8, 2007 at 11:55 | Permalink
  4. Köszönet, javítottam.

    Thursday, February 8, 2007 at 11:57 | Permalink
  5. Tamás wrote:

    Az új bash mennyivel tud többet, mint a már benne lévő, érdemes egyáltalán vacakolni a váltással?

    Másrészt nekem a .profile-ba meg az .inputrc-be beírandó cuccok a bejegyzésben sortörés nélkül jelennek meg (Safari alatt), gondoltam, szólok…

    Thursday, February 8, 2007 at 14:40 | Permalink
  6. Nem csak safari alatt volt gond, nem néztem meg, hogy gond nélkül renderelődik-e a html-be ágyazott markdown. User error. Kösz, hogy szóltál.

    Komoly okokat nem tudok felhozni, a jobbnak érzett utf támogatáson túl, a váltásra. Igaz, vacakolásnak sem nevezném; maximum öt perc, ha bináris installt választasz.

    Thursday, February 8, 2007 at 15:35 | Permalink
  7. Tamás wrote:

    Egyelőre nálam még bugzik a dolog, pl beírok parancssorba két hosszú ő-t, visszatörlöm őket, aztán ütök egy Enter-t a látszólag üres parancssorra, mire ő:

    -bash: ő: command not found

    Ezek után indítok a bash-ből egy újabb bash-t, és ott már működik… és nem igazán értem, mert a .profile-t elvileg akkor olvassa be, amikor új terminált indítok, de ha csak új shell-t a már meglévőből, akkor nem. Lehet, hogy tényleg megpróbálom azt a bash frissítést…

    Thursday, February 8, 2007 at 16:08 | Permalink
  8. Az új verzióban ez már teljesen jó. De gondolom tegnap délután óta már ránéztél.

    Friday, February 9, 2007 at 08:30 | Permalink
  9. Herman Tamás wrote:

    en a http://www.rift.dk/news.php?item.7.6 alapjan csinaltam, de ahogy elnezem te is azokat a lepeseket csinaltad. viszon nalam meg mindig szar a gnu ls-el is a megjelenites:

    tombook:~/test admin$ >éáűőúöüóí; /opt/local/bin/gls e??a??u??o??uouoi?????????? $ echo $LANG $LC_ALL $LC_CTYPE hu_HU.UTF-8 hu_HU.UTF-8 hu_HU.UTF-8 GNU bash, version 3.2.15(1)-release (i386-apple-darwin8.9.1)

    az a backspace-elos problema valoban eltunt, amit 1 masik hozzaszolo is irt, meg a screen -U-n belul is jo igy a bash, de ez a coreutils/fileutils-os ls parancs tovabbra is fos. any idea? koszi!

    Tuesday, April 10, 2007 at 17:57 | Permalink
  10. A legújabb bash nekem annó megoldotta a problémát, de azóta friss rendszerre költöztem, és nem frissítettem újra mindent naprakészre. Még tippem sincs sajnos.

    Wednesday, April 11, 2007 at 16:08 | Permalink