В последнее время, дистрибутивы становятся все более и более русифицированными, но это как правило касается графической среды.
Иногда возникает желание работать с кирилицей в консоли. В свое время, еще под восьмым редхатом, я пытался разобраться как этого добиться, чем и хочу поделиться.
Для русификации консоли я отредактировал и заменил одну из кирилических раскладок я брал ru_win в каталоге /lib/kbd/keymaps/i386/querty на следующее:
! $Header: /home/abel/cvs/src/misc/cyr/ru_win.map,v 1.1 1998/03/05 23:05:32 abel Exp $ ! ! Russian cp1251 (Windows Cyrillic) keyboard.map. ! ! Adapted from ru.map by Alexander L. Belikoff (abel@bfr.co.il) ! ! "Cyrillic" mode is toggled by Right_Ctrl key and shifted by AltGr key. keycode 0 = keycode 1 = Escape Escape Escape Escape alt keycode 1 = Meta_Escape keycode 2 = one exclam one exclam alt keycode 2 = Meta_one keycode 3 = two at two quotedbl control keycode 3 = nul alt keycode 3 = Meta_two keycode 4 = three numbersign three U+2116 control keycode 4 = Escape alt keycode 4 = Meta_three keycode 5 = four dollar four semicolon control keycode 5 = Control_backslash alt keycode 5 = Meta_four keycode 6 = five percent five percent control keycode 6 = Control_bracketright alt keycode 6 = Meta_five keycode 7 = six asciicircum six colon control keycode 7 = Control_asciicircum alt keycode 7 = Meta_six keycode 8 = seven ampersand seven question control keycode 8 = Control_underscore alt keycode 8 = Meta_seven keycode 9 = eight asterisk eight asterisk control keycode 9 = Delete alt keycode 9 = Meta_eight keycode 10 = nine parenleft nine parenleft alt keycode 10 = Meta_nine keycode 11 = zero parenright zero parenright alt keycode 11 = Meta_zero keycode 12 = minus underscore minus underscore control keycode 12 = Control_underscore alt keycode 12 = Meta_minus keycode 13 = equal plus equal plus alt keycode 13 = Meta_equal keycode 14 = BackSpace BackSpace BackSpace BackSpace alt keycode 14 = Meta_Delete keycode 15 = Tab Tab Tab Tab alt keycode 15 = Meta_Tab keycode 16 = +q +Q U+0439 U+0419 control keycode 16 = Control_q altgr control keycode 16 = Control_q keycode 17 = +w +W U+0446 U+0426 control keycode 17 = Control_w altgr control keycode 17 = Control_w keycode 18 = +e +E U+0443 U+0423 control keycode 18 = Control_e altgr control keycode 18 = Control_e keycode 19 = +r +R U+043A U+041A control keycode 19 = Control_r altgr control keycode 19 = Control_r keycode 20 = +t +T U+0435 U+0415 control keycode 20 = Control_t altgr control keycode 20 = Control_t keycode 21 = +y +Y U+043D U+041D control keycode 21 = Control_y altgr control keycode 21 = Control_y keycode 22 = +u +U U+0433 U+0413 control keycode 22 = Control_u altgr control keycode 22 = Control_u keycode 23 = +i +I U+0448 U+0428 control keycode 23 = Tab altgr control keycode 23 = Tab keycode 24 = +o +O U+0449 U+0429 control keycode 24 = Control_o altgr control keycode 24 = Control_o keycode 25 = +p +P U+0437 U+0417 control keycode 25 = Control_p altgr control keycode 25 = Control_p keycode 26 = bracketleft braceleft U+0445 U+0425 control keycode 26 = Escape altgr control keycode 26 = Escape alt keycode 26 = Meta_bracketleft keycode 27 = bracketright braceright U+044A U+042A control keycode 27 = Control_bracketright altgr control keycode 27 = Control_bracketright alt keycode 27 = Meta_bracketright keycode 28 = Return alt keycode 28 = 0x080d keycode 29 = Control keycode 30 = +a +A U+0444 U+0424 control keycode 30 = Control_a altgr control keycode 30 = Control_a keycode 31 = +s +S U+044b U+042b control keycode 31 = Control_s altgr control keycode 31 = Control_s keycode 32 = +d +D U+0432 U+0412 control keycode 32 = Control_d altgr control keycode 32 = Control_d keycode 33 = +f +F U+0430 U+0410 control keycode 33 = Control_f altgr control keycode 33 = Control_f keycode 34 = +g +G U+043F U+041F control keycode 34 = Control_g altgr control keycode 34 = Control_g keycode 35 = +h +H U+0440 U+0420 control keycode 35 = BackSpace altgr control keycode 35 = BackSpace keycode 36 = +j +J U+043E U+041E control keycode 36 = Linefeed altgr control keycode 36 = Linefeed keycode 37 = +k +K U+043B U+041B control keycode 37 = Control_k altgr control keycode 37 = Control_k keycode 38 = +l +L U+0434 U+0414 control keycode 38 = Control_l altgr control keycode 38 = Control_l keycode 39 = semicolon colon U+0436 U+0416 alt keycode 39 = Meta_semicolon keycode 40 = apostrophe quotedbl U+044D U+042D control keycode 40 = Control_g altgr control keycode 40 = Control_g alt keycode 40 = Meta_apostrophe keycode 41 = grave asciitilde U+0451 U+0401 control keycode 41 = nul alt keycode 41 = Meta_grave keycode 42 = Shift keycode 43 = backslash bar backslash bar control keycode 43 = Control_backslash alt keycode 43 = Meta_backslash keycode 44 = +z +Z U+044f U+042f control keycode 44 = Control_z altgr control keycode 44 = Control_z keycode 45 = +x +X U+0447 U+0427 control keycode 45 = Control_x altgr control keycode 45 = Control_x keycode 46 = +c +C U+0441 U+0421 control keycode 46 = Control_c altgr control keycode 46 = Control_c keycode 47 = +v +V U+043c U+041c control keycode 47 = Control_v altgr control keycode 47 = Control_v keycode 48 = +b +B U+0438 U+0418 control keycode 48 = Control_b altgr control keycode 48 = Control_b keycode 49 = +n +N U+0442 U+0422 control keycode 49 = Control_n altgr control keycode 49 = Control_n keycode 50 = +m +M U+044c U+042c control keycode 50 = Control_m altgr control keycode 50 = Control_m keycode 51 = comma less U+0431 U+0411 alt keycode 51 = Meta_comma keycode 52 = period greater U+044e U+042e alt keycode 52 = Meta_period keycode 53 = slash question period comma control keycode 53 = Delete alt keycode 53 = Meta_slash keycode 54 = Shift keycode 55 = KP_Multiply keycode 56 = Alt keycode 57 = space space space space control keycode 57 = nul alt keycode 57 = Meta_space keycode 58 = Caps_Lock keycode 59 = F1 F11 F1 F11 control keycode 59 = F1 alt keycode 59 = Console_1 altgr alt keycode 59 = Console_1 keycode 60 = F2 F12 F2 F12 control keycode 60 = F2 alt keycode 60 = Console_2 altgr alt keycode 60 = Console_2 keycode 61 = F3 F13 F3 F13 control keycode 61 = F3 alt keycode 61 = Console_3 altgr alt keycode 61 = Console_3 keycode 62 = F4 F14 F4 F14 control keycode 62 = F4 alt keycode 62 = Console_4 altgr alt keycode 62 = Console_4 keycode 63 = F5 F15 F5 F15 control keycode 63 = F5 alt keycode 63 = Console_5 altgr alt keycode 63 = Console_5 keycode 64 = F6 F16 F6 F16 control keycode 64 = F6 alt keycode 64 = Console_6 altgr alt keycode 64 = Console_6 keycode 65 = F7 F17 F7 F17 control keycode 65 = F7 alt keycode 65 = Console_7 altgr alt keycode 65 = Console_7 keycode 66 = F8 F18 F8 F18 control keycode 66 = F8 alt keycode 66 = Console_8 altgr alt keycode 66 = Console_8 keycode 67 = F9 F19 F9 F19 control keycode 67 = F9 alt keycode 67 = Console_9 altgr alt keycode 67 = Console_9 keycode 68 = F10 F20 F10 F20 control keycode 68 = F10 alt keycode 68 = Console_10 altgr alt keycode 68 = Console_10 keycode 69 = Num_Lock keycode 70 = Scroll_Lock Show_Memory Show_Registers control keycode 70 = Show_State alt keycode 70 = Scroll_Lock keycode 71 = KP_7 alt keycode 71 = Ascii_7 keycode 72 = KP_8 alt keycode 72 = Ascii_8 keycode 73 = KP_9 alt keycode 73 = Ascii_9 keycode 74 = KP_Subtract keycode 75 = KP_4 alt keycode 75 = Ascii_4 keycode 76 = KP_5 alt keycode 76 = Ascii_5 keycode 77 = KP_6 alt keycode 77 = Ascii_6 keycode 78 = KP_Add keycode 79 = KP_1 alt keycode 79 = Ascii_1 keycode 80 = KP_2 alt keycode 80 = Ascii_2 keycode 81 = KP_3 alt keycode 81 = Ascii_3 keycode 82 = KP_0 alt keycode 82 = Ascii_0 keycode 83 = KP_Period altgr control keycode 83 = Boot control alt keycode 83 = Boot keycode 84 = Last_Console keycode 85 = keycode 86 = less greater bar alt keycode 86 = Meta_less keycode 87 = F11 F11 F11 F11 control keycode 87 = F11 alt keycode 87 = Console_11 altgr alt keycode 87 = Console_11 keycode 88 = F12 F12 F12 F12 control keycode 88 = F12 alt keycode 88 = Console_12 altgr alt keycode 88 = Console_12 keycode 89 = keycode 90 = keycode 91 = keycode 92 = keycode 93 = keycode 94 = keycode 95 = keycode 96 = KP_Enter keycode 97 = AltGr_Lock keycode 98 = KP_Divide keycode 99 = VoidSymbol control keycode 99 = Control_backslash alt keycode 99 = Control_backslash keycode 100 = AltGr keycode 101 = Break keycode 102 = Find keycode 103 = Up keycode 104 = Prior shift keycode 104 = Scroll_Backward keycode 105 = Left alt keycode 105 = Decr_Console keycode 106 = Right alt keycode 106 = Incr_Console keycode 107 = Select keycode 108 = Down keycode 109 = Next shift keycode 109 = Scroll_Forward keycode 110 = Insert keycode 111 = Remove altgr control keycode 111 = Boot control alt keycode 111 = Boot keycode 112 = keycode 113 = keycode 114 = keycode 115 = keycode 116 = keycode 117 = keycode 118 = keycode 119 = keycode 120 = keycode 121 = keycode 122 = keycode 123 = keycode 124 = keycode 125 = keycode 126 = keycode 127 = string F1 = "\033[[A" string F2 = "\033[[B" string F3 = "\033[[C" string F4 = "\033[[D" string F5 = "\033[[E" string F6 = "\033[17~" string F7 = "\033[18~" string F8 = "\033[19~" string F9 = "\033[20~" string F10 = "\033[21~" string F11 = "\033[23~" string F12 = "\033[24~" string F13 = "\033[25~" string F14 = "\033[26~" string F15 = "\033[28~" string F16 = "\033[29~" string F17 = "\033[31~" string F18 = "\033[32~" string F19 = "\033[33~" string F20 = "\033[34~" string Find = "\033[1~" string Insert = "\033[2~" string Remove = "\033[3~" string Select = "\033[4~" string Prior = "\033[5~" string Next = "\033[6~" string F21 = "" string F22 = "" string F23 = "" string F24 = "" string F25 = "" string F26 = "" ! end of $Source: /home/abel/cvs/src/misc/cyr/ru_win.map,v $
Затем запустил redhat-config-keyboard и выбрал измененную расладку консоль работает в utf8 нормально.
P.S. CapsLock у меня не работает для русских букв. Если знаете как исправить - пишите.
Killy 2008-11-13 14:35:40 (#)
altgr keycode 58 = Caps_Lock