{"id":611,"date":"2004-08-20T07:49:00","date_gmt":"2004-08-20T07:49:00","guid":{"rendered":"https:\/\/lasg.dk\/wp\/?p=611"},"modified":"2025-12-23T14:54:16","modified_gmt":"2025-12-23T14:54:16","slug":"min-opsaetning-af-ksh-og-xterm","status":"publish","type":"post","link":"https:\/\/lasg.dk\/wp\/min-opsaetning-af-ksh-og-xterm\/","title":{"rendered":"Min ops\u00e6tning af ksh og xterm i OpenBSD"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Noter fra 2004.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">Min ops\u00e6tning af ksh og xterm\nLars Sommer, 2004-08-20 \nlasg@lasg.dk\n\nMed denne artikel vil jeg fort\u00e6lle hvordan min shell og xterm er sat op, s\u00e5 de\n passer godt i mit arbejdsmilj\u00f8. Jeg vil beskrive de enkelte indstillinger p\u00e5\n en m\u00e5de, s\u00e5 du let kan lave noget lignende, der passer til dig.\n\nI min hverdag bruger jeg prim\u00e6rt ksh som shell. Ksh er relativt lille, og\n indeholder alligevel alle de funktioner jeg har brug for. P\u00e5 min openbsd, hvor\n det reelt er pdksh jeg har, fylder den en smule over 300KB, og det er statisk\n l\u00e6nket. Jeg foretr\u00e6kker den statisk, da jeg ogs\u00e5 bruger den som root's shell.\n Ksh minder p\u00e5 mange m\u00e5der om csh. De har begge en rimelig kraftig\n historiefunktion og fine scripting-muligheder. Jeg foretr\u00e6kker s\u00e5dan set\n csh's syntakt for brug af historiefunktionen, men det der g\u00f8r at jeg alligevel\n v\u00e6lger ksh, er dens mulighed for VI'ish editing mode. For dem der foretr\u00e6kker\n emacs-agtig mode, tilbyder ksh ogs\u00e5 det.\n\nKsh's rc-filer er den globale \/etc\/ksh.kshrc og den lokale ~\/.profile. Jeg vil\n kun besk\u00e6ftige mig med .profile, da den anden som default i Openbsd er meget\n p\u00e6n, og efter min mening ikke beh\u00f8ver \u00e6ndringer. Jeg vil gennemg\u00e5 min .profile\n lidt ad gangen her.\n\n\nPATH=$HOME\/bin:$HOME\/shellscripts:\/usr\/X11R6\/bin:\/bin:\/sbin:\/usr\/bin:\/usr\/sbin\\\n:\/usr\/local\/bin:\/usr\/local\/sbin:\/usr\/games:.\n \nPATH er den variabel, der indeholder alle mapper med kommandoer og programmer,\n du let vil kunne finde via din shell. Mappenavnene er adskildt med kolon. N\u00e5r\n du f.eks. skriver ls i din shell, s\u00f8ger shellen i mapperne listet i PATH,\n efter programmet ls, og k\u00f8rer s\u00e5 reelt (normalt) \/bin\/ls\n\nShellen s\u00f8ger kronologisk, alts\u00e5 i f\u00f8rstn\u00e6vnte mappe f\u00f8rst. Derfor er det en\n god id\u00e9 at skrive mapper som ~\/bin f\u00f8rst, hvis man nu engang laver sin eget\n \u00e6ndrede udgave af ls, og l\u00e6gger den der, s\u00e5 det er den der bliver brugt, n\u00e5r\n man blot skriver ls i sin shell.\n\n\nEDITOR=vi\n\nEDITOR-variablen s\u00e6tter om du vil have ksh i en editor-mode, og i s\u00e5 fald\n hvilken du vil have den i. S\u00e6ttes denne variabel ikke, har du en helt normal\n ksh. S\u00e6tter du den til vi, bliver linjeredigeringen i ksh ligesom n\u00e5r du\n redigerer tekst i vi. Det kan v\u00e6re lidt sv\u00e6rt at v\u00e6nne sig til, men\n efterh\u00e5nden synes jeg det er ret effektivt og let. Hvis man i stedet er\n emacs-tilh\u00e6nger, kan EDITOR sandelig s\u00e6ttes til emacs :)\n\n\nPWD=`pwd`\nHOST=`hostname -s`\nPS1='^[[00;32m${USER}@${HOST}: ${PWD} : '\n\nDisse tre linjer s\u00e6rger for at give mig en smuk prompt. Det er de tre mest\n kryptiske linjer i min .profile, og de kan g\u00f8res langt v\u00e6rre at se p\u00e5, hvis\n jeg ville have en endnu mere avanceret prompt. F\u00f8rste linje s\u00f8rger blot for at\n PWD er mit aktuelle bibliotek. Anden linje for at HOST er lig med mit\n v\u00e6rtsnavn, og trejde linje s\u00e6tter det hele lidt magisk sammen.\n\nEn lidt simplere PS1, kunne se s\u00e5dan ud:\nPS1='${USER}@${HOST}$ '\n\nDen skriver s\u00e5 en prompt der for mig ville se s\u00e5dan her ud:\nlasg@vanilje$ \n\nGrunden til variablene er sat i {}, er for explicit at fort\u00e6lle hvad der er\n variablens navn. Det kryptiske i min PS1 nu, er ^[[00;32m Det betyder kort og\n godt, at teksten skal s\u00e5 normalt, men farvet gr\u00f8nt. hvis man s\u00e6tter 00 til 01,\n bliver teksten fed, og \u00e6ndrer man 32 til et andet tal, \u00e6ndres farven. Der er\n sikkert en oversigt i manual-siden.\n\nHvis du f.eks. kun vil have din promt farvet, og din alm. tekst normal (gr\u00e5?),\n kan du afslutte din PS1 med ^[[0m. Det vigtigste du skal v\u00e6re opm\u00e6rksom p\u00e5,\n for overhoved at f\u00e5 farverne til at virke, er at ^[ ikke bare er ^[. Det er en\n escape-sekvens. du skriver ^[ i VI, ved at taste ctrl+v og s\u00e5 taste esc, mens\n du er i insert-mode. Den anden [ efter ^[, er en helt normal kantet parentes.\nF\u00f8r jeg fort\u00e6ller om resten af .profile, vil jeg lige vise den eneste forskel\n fra min normale .profile til min roots .profile, nemlig PS1'en:\n\n\nPS1='^[[01;31m${USER}@${HOST}: ${PWD} : '\n\nDenne viser at n\u00e5r jeg skifter til root med su, bliver prompten og teksten fed,\n og r\u00f8d. Det giver mig opm\u00e6rksomhed p\u00e5 at jeg skal v\u00e6re lidt forsigtig med\n hvad jeg g\u00f8r.\n\nResten af min .profile kommer her:\n\n#s\u00f8ger for at skifte hele milj\u00f8et n\u00e5r du su'er,\n# s\u00e5 roots prompt ogs\u00e5 f\u00e5r fede farver\nalias su=\"su -l\"\n#starter links op i grafisk udgave\nalias links=\"links -g\"\n#starter links i konsoludgaven, til konsolbrug vel kun..\nalias links-console=\"\/usr\/local\/bin\/links\"\n#xcdroast har problemer med at finde devs i openbsd, og skal hj\u00e6lpes\nalias xcdroast=\"xcdroast -f \/dev\/rcd0c;\/dev\/rcd1c\"\n#giver mig en l\u00e6kker xterm\nalias xterm=\"xterm -ls -r\"\n\nexport PATH HOME TERM\n\n\nJeg har husket at skrive kommentarer til mine aliaser, s\u00e5 jeg bedre kan huske\n hvad de enkelte g\u00f8r. Derfor vil jeg heller ikke gennemg\u00e5 hver enkelt alias.\n De to der er v\u00e6rd at bem\u00e6rke i denne her sammenh\u00e6ng, er \u00f8verste og nederste.\n Det nederste vil jeg komme ind p\u00e5 om lidt, n\u00e5r jeg begynder at tale om xterm.\n Det \u00f8verste s\u00f8rger for at l\u00e6se roots .profile, samt cd'e til \/root.\n\nP\u00e5 min prim\u00e6re arbejdsstation, arbejder jeg en del i X, og har derfor brug for\n en terminal. xterm er med n\u00e6sten alle vegne, og den opfylder fint mine behov.\n Man kan b\u00e5de tilpasse fonte, st\u00f8rrelser og farver i den. Da jeg startede xterm\n f\u00f8rste gang i min Openbsd, startede den op med hvid baggrund og sort tekst,\n med en st\u00f8rrelse som jeg havde sv\u00e6rt ved at l\u00e6se p\u00e5 afstand. Xterm har et\n smart menusystem, som tilg\u00e5es ved at holde ctrl nede, og trykke en af sine tre\n musetaster. Med h\u00f8jre musetast, kan man blandt andet v\u00e6lge lidt\n skriftst\u00f8rrelse, og med midterste kan man blandt andet v\u00e6lge at invertere\n farverne (Reverse Video). Jeg fandt hurtigt ud af at man kunne starte den op\n inverteret, med parameteren -r eller -rv, og lavede derfor et alias til det, i\n min .profile. Man skal dog v\u00e6re opm\u00e6rksom p\u00e5 at xterm ikke l\u00e6ser ens .profile\n ved opstart. Det tilg\u00e5es ved at starte med parameteren -ls. De to parametre\n forklarer det prim\u00e6re i sidste alias i min .profile. Jeg bruger fluxbox som\n windowmanager, og bruger dens menu til blandt andet at starte xterm'er fra.\n Derfor har jeg puttet en linje magen til xterms alias i .profile, i min\n menu-fil til fluxbox. Derudover starter min .xinitrc ogs\u00e5 en xterm for mig,\n sammen med X. i .xinitrc har jeg ligeledes m\u00e5tte indskrive linjen\n \"xterm -ls -r\".\n\nDet eneste jeg mangler nu, er at s\u00f8rge for min xterm starter med en st\u00f8rre\n skriftst\u00f8rrelse hver gang. Du skal tilf\u00f8je en linje i filen .Xdefaults\n (m\u00e5ske .Xresources ogs\u00e5 kan bruges?). Hvis du ikke allerede har denne fil,\n kan du bare oprette den som alm. fil. Linjen der skal tilf\u00f8jes, hvis du vil\n have xterm skal starte med skriftst\u00f8rrelsealiaset large, ser s\u00e5dan ud:\n\nXTerm.VT100.font:       9x15\n\nDenne linje er s\u00e5dan set ogs\u00e5 et alias, til en linje i filen:\n\/usr\/X11R6\/lib\/X11\/fonts\/misc\/fonts.alias\nDenne fil indeholder en smuk oversigt over hvad 9x15 og mange andre muligheder\n egentlig er. Ved at tage et kig i denne fil, kan du nok let se hvad du skal\n skrive for at f\u00e5 din xterm med lille skrift, fed skrift, andre fonte og\n lignende.\n\nJeg h\u00e5ber min lille artikel har givet dig lyst til at tilpasse din shell,\n prompt og xterm. Jeg synes selv man f\u00f8ler sig langt bedre tilpas ved at sidde\n i et milj\u00f8, der er tilpasset n\u00f8jagtigt som man vil have det. \n\nDu er velkommen til at kontakte mig, hvis du finder fejl i artiklen,\n eller har forslag, kommentarer eller sp\u00f8rgsm\u00e5l.\n\n\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Noter fra 2004. Min ops\u00e6tning af ksh og xterm Lars Sommer, 2004-08-20 lasg@lasg.dk Med denne artikel vil jeg fort\u00e6lle hvordan min shell og xterm er sat op, s\u00e5 de passer godt i mit arbejdsmilj\u00f8. Jeg vil beskrive de enkelte indstillinger p\u00e5 en m\u00e5de, s\u00e5 du let kan lave noget lignende, der passer til dig. I min hverdag bruger jeg prim\u00e6rt ksh som shell. Ksh er relativt lille, og indeholder alligevel alle de funktioner jeg har brug for. P\u00e5 min openbsd, hvor det reelt er pdksh jeg har, fylder den en smule over 300KB, og det er statisk l\u00e6nket. Jeg foretr\u00e6kker den statisk, da jeg ogs\u00e5 bruger den som root&#8217;s shell. Ksh minder p\u00e5 mange m\u00e5der om csh. De har begge en rimelig kraftig historiefunktion og fine scripting-muligheder. Jeg foretr\u00e6kker s\u00e5dan set csh&#8217;s syntakt for brug af historiefunktionen, men det der g\u00f8r at jeg alligevel v\u00e6lger ksh, er dens mulighed for VI&#8217;ish editing mode. For dem der foretr\u00e6kker emacs-agtig mode, tilbyder ksh ogs\u00e5 det. Ksh&#8217;s rc-filer er den globale \/etc\/ksh.kshrc og den lokale ~\/.profile. Jeg vil kun besk\u00e6ftige mig med .profile, da den anden som default i Openbsd er meget p\u00e6n, og efter min mening ikke beh\u00f8ver \u00e6ndringer. Jeg vil gennemg\u00e5 min .profile lidt ad gangen her. PATH=$HOME\/bin:$HOME\/shellscripts:\/usr\/X11R6\/bin:\/bin:\/sbin:\/usr\/bin:\/usr\/sbin\\ :\/usr\/local\/bin:\/usr\/local\/sbin:\/usr\/games:. PATH er den variabel, der indeholder alle mapper med kommandoer og programmer, du let vil kunne finde via din shell. Mappenavnene er adskildt med kolon. N\u00e5r du f.eks. skriver ls i din shell, s\u00f8ger shellen i mapperne listet i PATH, efter programmet ls, og k\u00f8rer s\u00e5 reelt (normalt) \/bin\/ls Shellen s\u00f8ger kronologisk, alts\u00e5 i f\u00f8rstn\u00e6vnte mappe f\u00f8rst. Derfor er det en god id\u00e9 at skrive mapper som ~\/bin f\u00f8rst, hvis man nu engang laver sin eget \u00e6ndrede udgave af ls, og l\u00e6gger den der, s\u00e5 det er den der bliver brugt, n\u00e5r man blot skriver ls i sin shell. EDITOR=vi EDITOR-variablen s\u00e6tter om du vil have ksh i en editor-mode, og i s\u00e5 fald hvilken du vil have den i. S\u00e6ttes denne variabel ikke, har du en helt normal ksh. S\u00e6tter du den til vi, bliver linjeredigeringen i ksh ligesom n\u00e5r du redigerer tekst i vi. Det kan v\u00e6re lidt sv\u00e6rt at v\u00e6nne sig til, men efterh\u00e5nden synes jeg det er ret effektivt og let. Hvis man i stedet er emacs-tilh\u00e6nger, kan EDITOR sandelig s\u00e6ttes til emacs \ud83d\ude42 PWD=`pwd` HOST=`hostname -s` PS1=&#8217;^[[00;32m${USER}@${HOST}: ${PWD} : &#8216; Disse tre linjer s\u00e6rger for at give mig en smuk prompt. Det er de tre mest kryptiske linjer i min .profile, og de kan g\u00f8res langt v\u00e6rre at se p\u00e5, hvis jeg ville have en endnu mere avanceret prompt. F\u00f8rste linje s\u00f8rger blot for at PWD er mit aktuelle bibliotek. Anden linje for at HOST er lig med mit v\u00e6rtsnavn, og trejde linje s\u00e6tter det hele lidt magisk sammen. En lidt simplere PS1, kunne se s\u00e5dan ud: PS1=&#8217;${USER}@${HOST}$ &#8216; Den skriver s\u00e5 en prompt der for mig ville se s\u00e5dan her ud: lasg@vanilje$ Grunden til variablene er sat i {}, er for explicit at fort\u00e6lle hvad der er variablens navn. Det kryptiske i min PS1 nu, er ^[[00;32m Det betyder kort og godt, at teksten skal s\u00e5 normalt, men farvet gr\u00f8nt. hvis man s\u00e6tter 00 til 01, bliver teksten fed, og \u00e6ndrer man 32 til et andet tal, \u00e6ndres farven. Der er sikkert en oversigt i manual-siden. Hvis du f.eks. kun vil have din promt farvet, og din alm. tekst normal (gr\u00e5?), kan du afslutte din PS1 med ^[[0m. Det vigtigste du skal v\u00e6re opm\u00e6rksom p\u00e5, for overhoved at f\u00e5 farverne til at virke, er at ^[ ikke bare er ^[. Det er en escape-sekvens. du skriver ^[ i VI, ved at taste ctrl+v og s\u00e5 taste esc, mens du er i insert-mode. Den anden [ efter ^[, er en helt normal kantet parentes. F\u00f8r jeg fort\u00e6ller om resten af .profile, vil jeg lige vise den eneste forskel fra min normale .profile til min roots .profile, nemlig PS1&#8217;en: PS1=&#8217;^[[01;31m${USER}@${HOST}: ${PWD} : &#8216; Denne viser at n\u00e5r jeg skifter til root med su, bliver prompten og teksten fed, og r\u00f8d. Det giver mig opm\u00e6rksomhed p\u00e5 at jeg skal v\u00e6re lidt forsigtig med hvad jeg g\u00f8r. Resten af min .profile kommer her: #s\u00f8ger for at skifte hele milj\u00f8et n\u00e5r du su&#8217;er, # s\u00e5 roots prompt ogs\u00e5 f\u00e5r fede farver alias su=&#8221;su -l&#8221; #starter links op i grafisk udgave alias links=&#8221;links -g&#8221; #starter links i konsoludgaven, til konsolbrug vel kun.. alias links-console=&#8221;\/usr\/local\/bin\/links&#8221; #xcdroast har problemer med at finde devs i openbsd, og skal hj\u00e6lpes alias xcdroast=&#8221;xcdroast -f \/dev\/rcd0c;\/dev\/rcd1c&#8221; #giver mig en l\u00e6kker xterm alias xterm=&#8221;xterm -ls -r&#8221; export PATH HOME TERM Jeg har husket at skrive kommentarer til mine aliaser, s\u00e5 jeg bedre kan huske hvad de enkelte g\u00f8r. Derfor vil jeg heller ikke gennemg\u00e5 hver enkelt alias. De to der er v\u00e6rd at bem\u00e6rke i denne her sammenh\u00e6ng, er \u00f8verste og nederste. Det nederste vil jeg komme ind p\u00e5 om lidt, n\u00e5r jeg begynder at tale om xterm. Det \u00f8verste s\u00f8rger for at l\u00e6se roots .profile, samt cd&#8217;e til \/root. P\u00e5 min prim\u00e6re arbejdsstation, arbejder jeg en del i X, og har derfor brug for en terminal. xterm er med n\u00e6sten alle vegne, og den opfylder fint mine behov. Man kan b\u00e5de tilpasse fonte, st\u00f8rrelser og farver i den. Da jeg startede xterm f\u00f8rste gang i min Openbsd, startede den op med hvid baggrund og sort tekst, med en st\u00f8rrelse som jeg havde sv\u00e6rt ved at l\u00e6se p\u00e5 afstand. Xterm har et smart menusystem, som tilg\u00e5es ved at holde ctrl nede, og trykke en af sine tre musetaster. Med h\u00f8jre musetast, kan man blandt andet v\u00e6lge lidt skriftst\u00f8rrelse, og med midterste kan man blandt andet v\u00e6lge at invertere farverne (Reverse Video). Jeg fandt hurtigt ud af at man kunne starte den op inverteret, med parameteren -r eller -rv, og lavede derfor et alias til det, i min .profile. Man skal dog v\u00e6re opm\u00e6rksom p\u00e5 at xterm ikke l\u00e6ser ens .profile ved opstart. Det tilg\u00e5es ved at starte med parameteren -ls. De to parametre forklarer det prim\u00e6re i sidste alias i min .profile. Jeg bruger fluxbox som windowmanager, og bruger dens menu til blandt andet at starte xterm&#8217;er fra. Derfor har jeg puttet en linje magen til xterms alias i .profile, i min menu-fil til fluxbox. Derudover starter min .xinitrc ogs\u00e5 en xterm for mig, sammen med X. i .xinitrc har jeg ligeledes m\u00e5tte indskrive linjen &#8220;xterm -ls -r&#8221;. Det eneste jeg mangler nu, er at s\u00f8rge for min xterm starter med en st\u00f8rre skriftst\u00f8rrelse hver gang. Du skal tilf\u00f8je en linje i filen .Xdefaults (m\u00e5ske .Xresources ogs\u00e5 kan bruges?). Hvis du ikke allerede har denne fil, kan du bare oprette den som alm. fil. Linjen der skal tilf\u00f8jes, hvis du vil have xterm skal starte med skriftst\u00f8rrelsealiaset large, ser s\u00e5dan ud: XTerm.VT100.font: 9&#215;15 Denne linje er s\u00e5dan set ogs\u00e5 et alias, til en linje i filen: \/usr\/X11R6\/lib\/X11\/fonts\/misc\/fonts.alias Denne fil indeholder en smuk oversigt over hvad 9&#215;15 og mange andre muligheder egentlig er. Ved at tage et kig i denne fil, kan du nok let se hvad du skal skrive for at f\u00e5 din xterm med lille skrift, fed skrift, andre fonte og lignende. Jeg h\u00e5ber min lille artikel har givet dig lyst til at tilpasse din shell, prompt og xterm. Jeg synes selv man f\u00f8ler sig langt bedre tilpas ved at sidde i et milj\u00f8, der er tilpasset n\u00f8jagtigt som man vil have det. Du er velkommen til at kontakte mig, hvis du finder fejl i artiklen, eller har forslag, kommentarer eller sp\u00f8rgsm\u00e5l.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[25],"tags":[24,46,44],"class_list":["post-611","post","type-post","status-publish","format-standard","hentry","category-computer","tag-computer","tag-openbsd","tag-unix"],"acf":[],"_links":{"self":[{"href":"https:\/\/lasg.dk\/wp\/wp-json\/wp\/v2\/posts\/611","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lasg.dk\/wp\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lasg.dk\/wp\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lasg.dk\/wp\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lasg.dk\/wp\/wp-json\/wp\/v2\/comments?post=611"}],"version-history":[{"count":2,"href":"https:\/\/lasg.dk\/wp\/wp-json\/wp\/v2\/posts\/611\/revisions"}],"predecessor-version":[{"id":829,"href":"https:\/\/lasg.dk\/wp\/wp-json\/wp\/v2\/posts\/611\/revisions\/829"}],"wp:attachment":[{"href":"https:\/\/lasg.dk\/wp\/wp-json\/wp\/v2\/media?parent=611"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lasg.dk\/wp\/wp-json\/wp\/v2\/categories?post=611"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lasg.dk\/wp\/wp-json\/wp\/v2\/tags?post=611"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}