Linux за българи: Форуми

Linux секция за напреднали => Хардуерни и софтуерни проблеми => Темата е започната от: Hapkoc в Aug 29, 2005, 11:33



Титла: TERM line wrapping
Публикувано от: Hapkoc в Aug 29, 2005, 11:33
Ситуация - пиша команда, командата е дълга и не се събира на един ред. Очаквам да се пренесе на нов ред, но не се пренася, а остава на същия ред и резултата е, че пиша върху промпта и първия ред от командата...
Не знам доколко ясно се изразих...
Нещо от този род:
---
user@host:~$ command goes here and is veeeeeeeeeeeeeeery long and
(и като свърши реда става така)
does nott:~$ command goes here and is veeeeeeeeeeeeeeery long and
does not fit in one line s here and is veeeeeeeeeeeeeeery long and
---

Значи, не е болка за умиране, обаче не е и много удобно.
$ echo $TERM
xterm

Получава се независимо от терминалния емулатор.
Ако трябва още информация казвайте.

Предварително благодаря...


Титла: TERM line wrapping
Публикувано от: int13 в Aug 29, 2005, 16:41
...демек като свърши реда и почва да пише отначалото на същия ред, така ли?


Титла: TERM line wrapping
Публикувано от: the_real_maniac в Aug 29, 2005, 17:13
Ами не съм сигурен точно как да окажеш това , но ползвай "\" и си продължавай писането получава се точно това, което искаш

$some long , but not just long , very loooooo\
ooong command

е равно на

$some long , but not just long, very loooooooooong command

;)

т.е

символите от следващия ред, се нареждат точно от позицията на ю нататък

успех !


Титла: TERM line wrapping
Публикувано от: nvdr в Aug 29, 2005, 17:56
С някой текстов едитор можеш да си напишеш командата и след това да я сейвнеш като фаил, който например се казва '/home/execfile' след това като 'root' пишеш:
# chmod 777 /home/execfile
след това когато викнеш execfile
#/home/execfile
 ще се испълни командата ти, а и така няма да има нужда да я пишеш цялата всеки път.


Титла: TERM line wrapping
Публикувано от: Hapkoc в Aug 29, 2005, 18:26
int13, точно това се получава, да.

the_real_maniac, известно ми е, но не е решение на проблема, а по-скоро заобикаляне...

nvdr, и това ми е известно, файла, в който слага човек командата, би могъл да се нарече "скрипт", освен това не е много коректно да му се chmod 777 от гледна точка на сигурност... и на последно място - отново не е решение, а заобикаляне...

интересува ме от какво се определят тези настройки, къде трябва да пипне човек. в работата ми (а и в нас, но на предишни инсталации) си работеше това, в смисъл пренасяше си на нов ред. или аз съм пипнал нещо, което не трябва или след някой ъпдейт се е счупило, не знам, обаче доста дразни...
всъщност проблемите са доста повече - history-то се омазва, като paste-неш нещо се омазва, изобщо не е много удобно за работа...


Титла: TERM line wrapping
Публикувано от: Agent_SMITH в Aug 29, 2005, 21:00
Премествам темата тук с надеждата някой по-добре запознат да те насочи къде да пипнеш нестройки за това. ;)

move


Титла: TERM line wrapping
Публикувано от: в Aug 30, 2005, 12:12
Hapkoc, ако веднага, след стартиране на графичната среда, пуснеш xterm, съществува ли проблема ?


Титла: TERM line wrapping
Публикувано от: Hapkoc в Aug 30, 2005, 12:41
rpetrov, ще трябва да проверя довечера...

какво точно имаш предвид под "веднага след стартиране"?


Титла: TERM line wrapping
Публикувано от: в Aug 30, 2005, 14:43
Цитат (Hapkoc @ Авг. 30 2005,13:41)
rpetrov, ще трябва да проверя довечера...

какво точно имаш предвид под "веднага след стартиране"?

най-вече да не си пускал програми от стартиран xterm.
например: да не си прекъсвал въвеждане на парола, да не е бил стартиран mplayer и ........


Титла: TERM line wrapping
Публикувано от: Hapkoc в Aug 30, 2005, 15:16
rpetrov, подозирам, че не е в това проблема. ще проверя въпреки всичко, но това, което ме кара да мисля така е следното:

от работата ssh към машината в нас, при което се получава същото в gnome-terminal-a или xterm-а или през каквото там съм се вързал към ssh-a на домашния комп. което ме навежда на мисълта, че дори в чист текстов режим на домашния ми комп ще се появи същия проблем, което пък е другото нещо което ще трябва да пробвам...


Титла: TERM line wrapping
Публикувано от: в Aug 30, 2005, 16:00
Цитат (Hapkoc @ Авг. 30 2005,16:16)
...от ... ssh към машината ..., при което се получава същото в gnome-terminal-a или xterm-а или през каквото там съм се вързал към ssh-a на...

Май изплю камъчето ;) - значи при ssh сесия.

Провери резултата от "echo $LINES $COLUMNS" преди стартирането на ssh сесията и в самата сесия. Подравни колоните (в ssh сесията) с stty columns NN, където NN е резултата за $COLUMNS преди сесията. А ако се оправя, т.е. това е проблема, може да го "борим" още - докато се открие кое го поражда.

Иначе без ssh сесия, в произволен графичен терминал, пробвай "stty columns 23" - това е ефекта, нали? После възстанови с resize.


Титла: TERM line wrapping
Публикувано от: yanchev в Aug 30, 2005, 16:13
Не видях последният ти коментар :)
Коригирането на $COLUMNS трябва да ти реши проблема.


Титла: TERM line wrapping
Публикувано от: Hapkoc в Aug 30, 2005, 22:27
Така, значи в произволен терминал - имам предвид наистина произволен (xterm, Terminal, gnome-terminal) - независимо от X (т.е. и в чиста конзола), независимо през ssh или без ssh, се получава проблема.

Стойностите на COLUMNS и LINES променливите са еднакви преди и след ssh login, така че май проблема остава...

Иначе ефекта за който говориш (при произволен терминал stty columns 23) е същия...


Титла: TERM line wrapping
Публикувано от: Hapkoc в Aug 30, 2005, 23:01
Така, значи открих кое причинява проблема, сега остава да разбера защо :).

PS1='\u@\e[1;33m\h\e[0;39m:\w\$ '

Идеята на таз работа беше да си оцветя малко промпта, понеже имам 3 машини, та да ми е по-лесно да се ориентирам на коя съм логнат в момента. Явно не съм дочел нещо, щото така се разбра какво се получава. Посипвам си глава с пепел и отивам да почета...  ???


Титла: TERM line wrapping
Публикувано от: в Sep 01, 2005, 15:09
Наркос, оправи ли го ?


Титла: TERM line wrapping
Публикувано от: Hapkoc в Sep 01, 2005, 17:08
Аха, оправи се, явно escape sequence-ите за цветовете, които бях сложил го шашкат нещо. Търсих из google-а как се прави шарен промпт и ги взех тез кодове от някаква страница.

Доколкото разбирам тези escape sequence-и са различни за различните темрминални емулатори (xterm, gnome-terminal, Terminal, eterm, etc.). Не съм много сигурен, но останах с такова впечатление от нещата, които четох.

Иначе намерих Bash prompt HOWTO от което взех съответните кодове за цветовете и сега е пушка. :)


Титла: TERM line wrapping
Публикувано от: в Sep 01, 2005, 17:48
точното за bash, описано в секция PROMPTING от bash(1), е:
\[ begin a sequence of non-printing characters, which could be used to embed a terminal control sequence into the prompt
\] end a sequence of non-printing characters

С други думи escape последователностите, които си ползвал, като например \e[1;33m, трябва да се оградят и съответно примерът става \[\e[1;33m\].

Именно това е използвано в частта примери на документа, които си намерил.

Не би трябвало да зависи от толкова от терминалните програми (xterm, gnome-terminal, Terminal, eterm, etc.), а по-скоро от това какво емулират. Ако не ме лъже паметта тази последователности за цвят са за dec-vt52 (?) или ansi.sys при едни други ОС и трябва да се поддържат и в по-следващи версии, като vt100,vt220...... (това вече е друга тема)


Титла: TERM line wrapping
Публикувано от: toxigen в Sep 02, 2005, 09:29
Определено оцветяването причинява разместване. Ако не укажеш на терминала, че escape sequences са непечатаеми той оделя място на реда за тях - от това се получават разместванията.