какво е echo -ne '\033(K' ?
12 отговора
535 прегледа
какво е echo -ne '\033(K' ?
Забелязвам тези няколко реда код в много програми за кирилизиране на конзолата:
for i in 1 2 3 4 5 6
do
echo -ne '\033(K' > /dev/tty$i
done
Какво всъщност означава '\033(K' ?
for i in 1 2 3 4 5 6
do
echo -ne '\033(K' > /dev/tty$i
done
Какво всъщност означава '\033(K' ?
Re: какво е echo -ne '\033(K' ?
Ескейп команда към терминала( подобно на командите към принтерите), мисля , че тази точно установява клавиша за смяна на кодовата таблица на клавиатурата.
Re: какво е echo -ne '\033(K' ?
lmBlack ти го каза.
Само едно уточнение, че това е цикъл за всички конзолни терминали (ATL+F*) и описани в /etc/inittab за да не кирилизираш отделно всяка конзола.
Може да прегледаш man-овете и също bash-HOWTO
Само едно уточнение, че това е цикъл за всички конзолни терминали (ATL+F*) и описани в /etc/inittab за да не кирилизираш отделно всяка конзола.
Може да прегледаш man-овете и също bash-HOWTO
Редактирано от TV!OOO на
Re: какво е echo -ne '\033(K' ?
Моля, не потвърждавайте грешни мнения. Никакъв клавиш за смяна на кодовата таблица не установява, а просто избира коя кодова таблица да се използва (G0 за '(K' и G1 за ')K').
Re: какво е echo -ne '\033(K' ?
Моля за извинение :-), грешката е моя, проверих какво пише в console_codes.
Командата :
echo -ne '\033(K'
в превод е:
Отпечатай на конзолата като тълкуваш символите след обратната наклонена( в конкретния случай) като осмичен код на символ ( конкретния код e 033/десетично 27/шеснадесеттично 1B/ ESCAPE) и символите (К. Което се тълкува от конзолата като като : избери потребителско мапване за G0 чарактер сета(ескейп команда - "ESC ( K" )
За повече инфо :
man console
man console_codes
Командата :
echo -ne '\033(K'
в превод е:
Отпечатай на конзолата като тълкуваш символите след обратната наклонена( в конкретния случай) като осмичен код на символ ( конкретния код e 033/десетично 27/шеснадесеттично 1B/ ESCAPE) и символите (К. Което се тълкува от конзолата като като : избери потребителско мапване за G0 чарактер сета(ескейп команда - "ESC ( K" )
За повече инфо :
man console
man console_codes
Re: какво е echo -ne '\033(K' ?
Като стана дума за кирилизация, някой знае ли защо след превключване в графична конзола (alt+F7) кирилизацията на текстовата конзола се скапва, и има ли начин това да се оправи?
Re: има
Аз съм със Slackware и съм си настроил шрифта на текстовата конзола от правилното място - това е скрипта /etc/rc.d/rc.font:
#!/bin/sh
#
# This selects your default screen font from among the ones in
# /usr/share/kbd/consolefonts.
#
setfont -m cp1251 -f Cyr_a8x16 -v
Освен това съм направил така, че при всяко логване на потребителя, шрифта да се зарежда отново. За целта съм си написал във файла /etc/profile.d/lang.sh следното:
#!/bin/sh
export LANG=bg_BG
# Променливата LANGUAGE указва какъв да бъде езика на интерфейса на програмите.
# Ако желаете интерфейса на програмите да бъде
# на английски вместо на български, махнете # в началото на следващия ред
#export LANGUAGE=en
# тази команда решава някои проблеми свързани с man
export LESSCHARSET=latin1
case `tty` in
/dev/tty[0-9]*) # следващите команди ще се изпълнят само, ако терминала е виртуален
# Повторно зареждане на шрифта
. /etc/rc.d/rc.font
;;
esac
Може да вмъкнеш
. /etc/profile.d/lang.sh
в някой скрип, който се изпълнява при спиране на графичната среда или да го пишеш всеки път ръчно (което е достадно).
При мен се разваля шрифта след пускане на MPlayer от root в текстовата конзола (обикновен потребител може да гледа филм в текстовата конзола само в текстов режим т.е. с mplayer име_на_филм -vo аа)
При мен след спиране на графичната среда шрифта не се разваля. Работя в режим 25 реда с 80 символа на ред. Този режим не е особено добър за очите (много трепти).
За повече информация:
[линк]
#!/bin/sh
#
# This selects your default screen font from among the ones in
# /usr/share/kbd/consolefonts.
#
setfont -m cp1251 -f Cyr_a8x16 -v
Освен това съм направил така, че при всяко логване на потребителя, шрифта да се зарежда отново. За целта съм си написал във файла /etc/profile.d/lang.sh следното:
#!/bin/sh
export LANG=bg_BG
# Променливата LANGUAGE указва какъв да бъде езика на интерфейса на програмите.
# Ако желаете интерфейса на програмите да бъде
# на английски вместо на български, махнете # в началото на следващия ред
#export LANGUAGE=en
# тази команда решава някои проблеми свързани с man
export LESSCHARSET=latin1
case `tty` in
/dev/tty[0-9]*) # следващите команди ще се изпълнят само, ако терминала е виртуален
# Повторно зареждане на шрифта
. /etc/rc.d/rc.font
;;
esac
Може да вмъкнеш
. /etc/profile.d/lang.sh
в някой скрип, който се изпълнява при спиране на графичната среда или да го пишеш всеки път ръчно (което е достадно).
При мен се разваля шрифта след пускане на MPlayer от root в текстовата конзола (обикновен потребител може да гледа филм в текстовата конзола само в текстов режим т.е. с mplayer име_на_филм -vo аа)
При мен след спиране на графичната среда шрифта не се разваля. Работя в режим 25 реда с 80 символа на ред. Този режим не е особено добър за очите (много трепти).
За повече информация:
[линк]
Re: има
Благодаря за информацията, но говоря за друг проблем:
Стартирам КДЕ, връщам се в текстова конзола с "цтрл+алт+Ф1"(КДЕ остава стартирано), кирилизирам си конзолата, с алт+Ф7 превключвам в КДЕ , и после с алт+Ф1 се връщам в кирилизираната конзола(КДЕ продълкава да си работи) и установявам , че се четат иероглифи. Сега ако стартирам отново скрипта за кирилизация разбира се всичко се оправя, но не е достатъчно функционално решение всеки път да стартирам скрипта на всяко превключване, особено ако го правя често. Ти казваш да го стартирам от друг скрипт който се изпълнява автоматично при спиране на графична конзола, но аз говоря не за спиране, а за превключване (освен ако няма скрипт който се изпълнява при превключване м/у конзолите).
А иначе при мен "mplayer -vo aa filename" не разваля кирилизацията, даже и с "-vo svga" (като root) пак не се разваля, но с "-vo vesa" се разваля.
Като навсякъде под разваляне разбирам, че кирилския шрифт се е сменил с нещо друго и българския текст не се чете..
Стартирам КДЕ, връщам се в текстова конзола с "цтрл+алт+Ф1"(КДЕ остава стартирано), кирилизирам си конзолата, с алт+Ф7 превключвам в КДЕ , и после с алт+Ф1 се връщам в кирилизираната конзола(КДЕ продълкава да си работи) и установявам , че се четат иероглифи. Сега ако стартирам отново скрипта за кирилизация разбира се всичко се оправя, но не е достатъчно функционално решение всеки път да стартирам скрипта на всяко превключване, особено ако го правя често. Ти казваш да го стартирам от друг скрипт който се изпълнява автоматично при спиране на графична конзола, но аз говоря не за спиране, а за превключване (освен ако няма скрипт който се изпълнява при превключване м/у конзолите).
А иначе при мен "mplayer -vo aa filename" не разваля кирилизацията, даже и с "-vo svga" (като root) пак не се разваля, но с "-vo vesa" се разваля.
Като навсякъде под разваляне разбирам, че кирилския шрифт се е сменил с нещо друго и българския текст не се чете..
Re: има
Сега като направих опити излиза, че и при мен е така:
* при -vo aa не се разваля;
* при -vo svga не се разваля;
* при -vo vesa се разваля;
С каква дистрибуция си?
Какъв е текстовия режим на текстовата конзола (виртуалния терминал)?
Аз съм на най-стандартния 25 реда с по 80 символа на ред. Много пече. Май ще трябва да се хвана да си оправя режима.
* при -vo aa не се разваля;
* при -vo svga не се разваля;
* при -vo vesa се разваля;
С каква дистрибуция си?
Какъв е текстовия режим на текстовата конзола (виртуалния терминал)?
Аз съм на най-стандартния 25 реда с по 80 символа на ред. Много пече. Май ще трябва да се хвана да си оправя режима.
Re: има
Slackware-9.0.
И моя е стандартния 25 на 80 - т.е. в lilo.conf - default.
Какво значи "пече" - неприятен е за очите ли ? Това е заради честотата. Знам че с фреимбуфера може да се настрои на по висока, но не съм го правил защото ползвам КДЕ и виртуални конзоли - там може да се изцеди всичко от видеокартата и монитора. А кирилизирана tty ползвам когато някоя от програмите ми в КДЕ не се оправя с cp1251- като gnomeicq например, или пък когато искам претърсвам текстови файлове или да пиша нещо в обикновен текст на български - с "mc" ми е най-удобно . Аз не съм KDEI като теб :).
И моя е стандартния 25 на 80 - т.е. в lilo.conf - default.
Какво значи "пече" - неприятен е за очите ли ? Това е заради честотата. Знам че с фреимбуфера може да се настрои на по висока, но не съм го правил защото ползвам КДЕ и виртуални конзоли - там може да се изцеди всичко от видеокартата и монитора. А кирилизирана tty ползвам когато някоя от програмите ми в КДЕ не се оправя с cp1251- като gnomeicq например, или пък когато искам претърсвам текстови файлове или да пиша нещо в обикновен текст на български - с "mc" ми е най-удобно . Аз не съм KDEI като теб :).
Re: има
Аз когато бях на Slackware 9.0 нямах такъв проблем със счупване на шрифта. Нямам представа на какво може да се дължи това.
До колкото разбирам, не си настроил системата си да работи на български, защото ти е неприятно интерфейса на програмите да бъде на български език. Този проблем може лесно да се реши с командата
export LANGUAGE=en
Това не оказва влияние на KDE - трябва от контролния център да си настроиш Country: Bulgaria
Languages: English US
По този начин кирилицата ще си работи и менютата на програмите ще са на английски. Аз така съм си настроил системата (превода на български на места е ужасен).
Езика на интерфейса на програмите от GNOME се влияе от променливата LANGUAGE. Изключение прави май само KDE.
Препоръчвам ти да редактираш файла файла /etc/profile.d/lang.sh така:
#!/bin/sh
export LANG=bg_BG
export LANGUAGE=en
export LESSCHARSET=latin1
case `tty` in
/dev/tty[0-9]*)
. /etc/rc.d/rc.font
;;
esac
Аз с такива настройки, когато бях със Slackware 9.0 бях правил успешен опит с GNOMEICU да пиша на кирилица на потребител на ICQ клиент, работещ под Windows. Със GAIM не се получаваше.
До колкото разбирам, не си настроил системата си да работи на български, защото ти е неприятно интерфейса на програмите да бъде на български език. Този проблем може лесно да се реши с командата
export LANGUAGE=en
Това не оказва влияние на KDE - трябва от контролния център да си настроиш Country: Bulgaria
Languages: English US
По този начин кирилицата ще си работи и менютата на програмите ще са на английски. Аз така съм си настроил системата (превода на български на места е ужасен).
Езика на интерфейса на програмите от GNOME се влияе от променливата LANGUAGE. Изключение прави май само KDE.
Препоръчвам ти да редактираш файла файла /etc/profile.d/lang.sh така:
#!/bin/sh
export LANG=bg_BG
export LANGUAGE=en
export LESSCHARSET=latin1
case `tty` in
/dev/tty[0-9]*)
. /etc/rc.d/rc.font
;;
esac
Аз с такива настройки, когато бях със Slackware 9.0 бях правил успешен опит с GNOMEICU да пиша на кирилица на потребител на ICQ клиент, работещ под Windows. Със GAIM не се получаваше.
Re: има
Просто нямам КДЕИ - на дайлап съм и ми е много ограничен трафика та за това не съм го изтеглил (това е и причината да съм още на 9.0).
Би ли пробвал да кирилизираш конзола така:
#!/bin/bash
MAP_FILE="/usr/lib/kbd/consoletrans/cp1251_to_ibm866.trans"
FONT_FILE="/usr/lib/kbd/consolefonts/ibm866_8x16.psf.gz"
KEYMAP_FILE="/usr/lib/kbd/keymaps/i386/qwerty/bg_phon-cp1251.map.gz"
/usr/bin/setfont -m $MAP_FILE $FONT_FILE
/usr/bin/loadkeys $KEYMAP_FILE
echo -en '\033(K'
за да видим дали ще се появи проблема при теб.
Би ли пробвал да кирилизираш конзола така:
#!/bin/bash
MAP_FILE="/usr/lib/kbd/consoletrans/cp1251_to_ibm866.trans"
FONT_FILE="/usr/lib/kbd/consolefonts/ibm866_8x16.psf.gz"
KEYMAP_FILE="/usr/lib/kbd/keymaps/i386/qwerty/bg_phon-cp1251.map.gz"
/usr/bin/setfont -m $MAP_FILE $FONT_FILE
/usr/bin/loadkeys $KEYMAP_FILE
echo -en '\033(K'
за да видим дали ще се появи проблема при теб.