Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: как открыть терминал из командной строки с определённой кодировкой?  (Прочитано 10509 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн rpomov

  • Автор темы
  • Любитель
  • *
  • Сообщений: 74
    • Просмотр профиля
Друзья!
То есть в идеале хотелось бы, что бы было примерно так

gnome-terminal -<ключ-или_параметр_отвечающий_за установление-определённой_кодировки>
Но такого ключа нет
man gnome-terminal, как и gnome-terminal -? gnome-terminal --help результатов не дали.
То есть так: сперва выполняе команду gnome-terminal, а потом вручную устанавливаем кодировку. Мне такой способ не подходит

Другой вариант: если бы я знал, какой файл отвечает за установление кодировки, можно было бы работать
То есть хорошо бы найти некий конфигурационный (?) файл, в котором была бы прописана строка типа (необходимая кодировка)

 WINDOWS-1251 или CP866

Тогда бы я смог приступить к созданию некоего монструального скрипта (ничего не поделать), который по запуску сперва правил бы этот файл, (в частности, строку, отвечающую за кодировку), а потом выполнял бы gnome-terminal

Но где найти такой файл? Я человек в Linux новый, но подозреваю, что раз предполагается вмешательство в сырцы, то должно быть какието-общие праил для конфигурационных файлов. Самым просты выходоммне видится наличие файла с расширением , например config, где и были бы прописаны параметры
gnome-terminal.config

Но файла с таким именем нет. В общем, прошу помочь. C уважением, ваш rpomov


Как я люблю Windows!

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
В man gnome-terminal упоминается про профили. Поэкспериментируйте, вероятно, это то, что нужно.
У меня в системе еще присутствует исполняемый скрипт на перле gnome-terminal.wrapper, который просто преобразовывает аргументы из одного формата в другой и запускает gnome-terminal.

UPD. "Опытные люди" (google :) ) пишут, что гномовый терминал такого не умеет. Пользуйтесь konsole.
« Последнее редактирование: 19 Января 2010, 11:19:47 от wl »
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

Оффлайн rpomov

  • Автор темы
  • Любитель
  • *
  • Сообщений: 74
    • Просмотр профиля
Пользуйтесь konsole.
Ну вот я решил на этом варианте остановиться.
Дело в том, что в konsole можно настроить по умолчанию кодировку, тоесть чтобы в нужной кодировке сразу включалось, в отличие от гнома-терминала
Короче, наклёвывается скрипт
#!/bin/bash
konsole
exit
Но возникла одна проблема. Дело в том, что мне надо в этот скрипт как-то прописать запуск команды ./a.out ИЗ КОНСОЛИ! То есть чтобы запускалась консоль и сразу в ней эта команда (нужный не исполняемый файл) Есть какой-нибудь совет?

...Понимаете, я Linux с ноля поштутдирую ещё, а на данный момент мне просто надо некоторые свои проги перенести с винды, чтобы мои инструменты были при мне. Это тык скыть просьба не отсылать к изучению Linuxа. Это я сам потом.

У меня в системе еще присутствует исполняемый скрипт на перле gnome-terminal.wrapper, который просто преобразовывает аргументы из одного формата в другой и запускает gnome-terminal.
Во всей этой перекодировке, с коей я справился бы сам (в крайнем случае вручную, я работаю с русскими шрифтами в виндусовской кодировке, 33 буквы перекодировал бы влёгкую) есть одна непрятная вещь. Я всегда как чёрт ладана боялся юникода (кодировка гнома по умолчанию). Вообще не представляю как с ним работать. Жалко, что он у меня есть. Ёлки-палки, я ведь скачал русскоязычную Ubuntu, есть же несколько сответвующих кодировок c кириллицей, почем бы разработчикам не использовать одну из них в терминале, предполагая, что 2 байта на символ просто не нужны, одного хватит за глаза?
Недостаток, блин. Умел бы убирать юникод из гнома- убрал бы. Так опять же, русскоязычные названия файлов и директорий будут отображаться некорректно!

пишут, что гномовый терминал такого не умеет.
Обязан уметь. Пусть там нет конфигурационного файла. Но сырец-то *.c есть! А значит, есть выбор одной из имеющихся кодировок. Например, используя оператор switch. Надо будет поискать тот сырец.
Как я люблю Windows!

Оффлайн arrecck

  • Старожил
  • *
  • Сообщений: 1725
    • Просмотр профиля
a.out что за файл все таки? скомпилированный? непонятно вы написали про нужный не исполняемый файл
а так, если локаль установлена в системе, то
#!/bin/bash
export LANG=локаль (допустим ru_RU.cp1251)
1.exec a.out
или
2.konsole -e a.out
или
3.gnome-terminal -x a.out
как то так

Оффлайн athost

  • Старожил
  • *
  • Сообщений: 1897
    • Просмотр профиля
To TC

А на фейхоа тебе это надо? Если не секрет, конечно.

Оффлайн arrecck

  • Старожил
  • *
  • Сообщений: 1725
    • Просмотр профиля
человек приверженец вин кодировок, пока  :)

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
rpomov, даю дружеский совет лучше учи Linux сначала. В частности что такое локали и как они работают. После этого вопросы с кодировками отпадут.

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Какая выгода в 1 байт/символ?
Сами же замучаетесь и другим хуже сделаете.

Оффлайн rpomov

  • Автор темы
  • Любитель
  • *
  • Сообщений: 74
    • Просмотр профиля
arrecck, странно. ./a.out есть исполняемый файл, который получен мной при компиляции некоторой програамы на языке C. Просто я думал это и так ясно. НУ типа есле *exe это по умолчанию исполняемый файл в винде, то то же самое и ./a.out в Linuxе
...Короче, объясняю. Есть текстовый файл, который скопирован в строку. Все пробельные симолы программно заменены на ноль. Периодически вызывается функция printf, которая принимает адреса элементов, которые В ЭТОЙ СТРОКЕ. То есть допустим, строка такая
"privetприветпокаpokaяпошёлdomoy"

Ну вот Пусть строка размещена по адресу 0 (для простоты). ТОгда пишу
printf ("%s", 0X7)
(Адреса (второй аргумент "printf") высчитываются по ОПРЕДЕЛЁННОМУ алгоритму, который и есть СУТЬ пограммы)
Получу "привет"
Так вот. Теперь самое главное. Если я буду использовать кириллические кодировки (кроме юникод), в самом худшем случае мне нужно будет пробежаться по строке и программно заменить одни байты на другие (касаемо только кириллицы). (Это в САМОМ ХУДШЕМ. Если с помощью  того же breda мне этого не сделать)

А если мне учитывать кодировку юникод, то мне нужно будет
1) учесть, что строка будет в два раза длиннее
2) пересчитать адреса- фактически переделать программу. Нехороший путь.
Вот и хочу сделать так, что бы локаль сразу открывалась с какойй там котировкой, позабыл я уже название. Их всего 4 или 5

Теперь маленько по форме разговора
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
человек приверженец вин кодировок, пока  :)
Так-то я много чего там приверженец. Та много чего хорошего и путёвого.
...arrecck, надеюсь, Вы меня поняли

Какая выгода в 1 байт/символ?
Сами же замучаетесь и другим хуже сделаете.
Объясняю один раз.
НАдеюсь, Вы согласитесь со мной, что глупо усложнять там, где усложнять не надо. 1 байт проще двух по-любому, угу?
ТЕперь.  Я являюсь скромным русскоязычным разработчиком программ для себя. А посему мне за глаза хватило бы кириллицы, латыни , зников препинания, служебных сиволов и циф, которые с лёгкостью умещаются в одном байте и даже место остаётся.
Понимаете мне не нужно два байта. Зачем они мне? ДО сих пор с одним байтом не замучался. И уверяю Вас, вышесказанное относится не только ко мне.
...Ну, вот так исторически сложилось, что кодировок (не юникод) с кирилицей несколько штук. Но это уже другой вопрос.

Пользователь решил продолжить мысль 20 Января 2010, 10:06:55:
rpomov, даю дружеский совет лучше учи Linux сначала. В частности что такое локали и как они работают. После этого вопросы с кодировками отпадут.
Да выучу. Просто меня прижало. Вот надо мне щас эту прогу запустить и всё тут. ЭТо, кстати, тренажёр для запоминания английских слов. Если всё нормально будет, я её всем покажу и подарю.
« Последнее редактирование: 20 Января 2010, 10:06:55 от rpomov »
Как я люблю Windows!

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Re: как открыть терминал из командной строки
« Ответ #9 : 20 Января 2010, 11:18:41 »
Весь мир ( и даже M$) перешли на юникод. Догадайтесь почему. ;D

Один из вариантов ответа.
Кто не перешел, тот до сих пор решает вопросы с кодировкой.
PS. Справедливости ради, скажу, что некоторые сайты остаются на 1251.
« Последнее редактирование: 20 Января 2010, 11:23:41 от alexander.pronin »

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Почему-то вспомнилось...


Впрочем, удачи вам в этом нелёгком деле.

Оффлайн rpomov

  • Автор темы
  • Любитель
  • *
  • Сообщений: 74
    • Просмотр профиля
Re: как открыть терминал из командной строки
« Ответ #11 : 20 Января 2010, 11:33:37 »
Весь мир ( и даже M$) перешли на юникод. Догадайтесь почему. ;D
голословное утверждение

Все, у кого XP, ни у кого в консоли ни уникод. Не знаю, как обстоят дела с вистой и 7.
А везде, где нет единых стандартов- везде костыли. Так что привет.

a.out что за файл все таки? скомпилированный? непонятно вы написали про нужный не исполняемый файл
прошу прощения нужный мне исполняемый файл
« Последнее редактирование: 20 Января 2010, 15:27:36 от rpomov »
Как я люблю Windows!

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
Цитировать
пишут, что гномовый терминал такого не умеет.
Обязан уметь. Пусть там нет конфигурационного файла. Но сырец-то *.c есть! А значит, есть выбор одной из имеющихся кодировок. Например, используя оператор switch. Надо будет поискать тот сырец.

Не научили.
Сырцы добываются командой
apt-get source gnome-terminal
Пользователь решил продолжить мысль 20 Января 2010, 13:16:50:
#!/bin/bash
konsole
exit
Но возникла одна проблема. Дело в том, что мне надо в этот скрипт как-то прописать запуск команды ./a.out ИЗ КОНСОЛИ! То есть чтобы запускалась консоль и сразу в ней эта команда (нужный не исполняемый файл) Есть какой-нибудь совет?

Уже ответили, повторю на случай, если было незаметно.
konsole -e " имя скрипта с полным путем "

konsole --helpпоказывает все ключи, какие есть.
« Последнее редактирование: 20 Января 2010, 13:16:50 от wl »
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

Оффлайн rpomov

  • Автор темы
  • Любитель
  • *
  • Сообщений: 74
    • Просмотр профиля
Спасибо всем, особено arrecck и wl
Устанавливаю в konsole нужную мне кодировку и использую
konsole -e " имя скрипта с полным путем "
...Всё остальное не получилось но ничё страшного, в ступор не впадаю.  Разбрусь со временем и с  apt-get source gnome-terminal, которая просит меня заполнить какой-то source.list
Как я люблю Windows!

Оффлайн Alie Alexandross

  • Старожил
  • *
  • Сообщений: 1576
    • Просмотр профиля
Цитировать
как открыть терминал из командной строки с определённой кодировкой?
Я так понимаю - man xterm чем-то не угодил...
Подпись автора jillsmitt истинна...

 

Страница сгенерирована за 0.019 секунд. Запросов: 19.