Архів рубрики: Для початківців

Масове перекодування файлів з cp1251 у utf8

Пересаджуючи старий проект на Twitter Bootstrap я стикнувся з необхідністю перекодування шаблонів HTML з кодової сторінки window-1251 у UTF-8. Шаблони всі були в одному каталозі, мали розширення *.tmpl і їх було не багато, але запускати для кожного файлу iconv було якось не по лінуксоїдські. Проблема була ще й у методі конвертації утиліти iconv – вона не перезаписувала файл, а робила вивід у новий. Тобто для кожного файлу треба було зробити такі дії:

  1. Перевести з cp1251 у utf8 та зберегти у новому файлі
  2. Замінити старий файл новим

Писати сценарій для такої простої операції не варто, тому я зробив це у 3 команди, але потім трохи подумав і зменшив їх до 2:

$ ls *.tmpl | sed s/tmpl$/tmp/ | xargs -I '{}'
 iconv -f cp1251 -t utf8 -o '{}' '{}'l

Знаходимо в поточній директорії всі файли шаблонів (з розширенням tmpl), змінюємо розширення на tmp, конвертуємо файл *.tmpl у *.tmp. Тепер tmp-файли містять шаблони в UTF-8 кодуванні.

А тепер у старі tmpl-файли кладемо новий зміст:

$ ls *.tmp | xargs -I '{}' mv '{}' '{}'l

Якщо вам треба перекодувати файли, що розташовані в піддиректоріях, то змініть команду ls на find.

Налаштування 3G інтернету від 3mob (Utel) в Gnome 3 (Linux)

Лінукс, як і всі Unix-оподібні операційні системи, традиційно сильна у налаштуванні мережі. Так було у епоху Ethernet, але з появою бездротових мереж та мобільного інтернету 2G (GPRS/EDGE) та 3G (UMTS/HSPA) підключення до мережі це лише сервіс. Тепер на перший план виходить зручність підключення.

У менеджері вікон Gnome 3 ці налаштування відбуваються майже автоматично, але є я зміг підключитися до 3G від 3mob (Utel) лише першого разу, коли спрацював “візард” налаштування. Потім коли я вставляв USB 3G-модем (HUAWEI) і клацав на перемикачі “Мобільна радіомережа” – з’являлось повідомлення, що “ви підключені до мережі Utel” і потім “з’єднання розірване”. Вам сюди – якщо у Вас проблеми на рівні драйверу USB 3G-модему.

Треба вручну прибрати за “візардом”. Для цього з командного рядка запускаємо:

$ nm-connection-editor

На вкладці “Мобільні широкосмугові” знаходимо підключення Utel та клацаємо кнопку “Змінити…”.

На наступному екрані також обираємо вкладку “Мобільні широкосмугові”. У себе я включив перемикач “Підключати автоматично” – це головне. А також змінив тип на “Віддавати перевагу 3G (UMTS/HSPA)”, та вимкнув “Вмикати роумінг, якщо недоступна домашня мережа”. Закриваємо діалог клацнувши на кнопку “Зберегти…”.

Все. Тепер щоб підключитися до інтернету я вставляю 3G модем, трохи чекаю поки його ідентифікує система та клацаю на кнопці включення “Мобільної радіомережі”.

Заміна одного рядка на два у вбудованому текстовому редакторі Midnight Commander

Не знаю як вам, а мені подобається вбудований текстовий редактор mc. Чогось я так і не зміг оволодіти vim, тому на новому сервері в мене перша команда:

# apt-get install mc

Потім включаю у конфігурації вбудований текстовий редактор для редагування:

F9 / Options / Configurations… / Use internal edit / OK

Тепер клавіша F4 закріплена саме за вбудованим редактором.

Нещодавно, мені довелось вручну правити файл конфігурації сервера імен BIND. Там було доволі багато зон для яких треба було замінити рядок:

type master;

на 2 рядка:

type slave;
masters {192.168.0.1;};

Пошук та заміна у вбудованому редакторі є (F4 Replace), проте незрозуміло як замінити рядок на два рядки. Клавіша Enter працює як OK.

Після декількох спроб я знайшов вихід. Треба перемкнути пошук у режим Regular expression та ввести символ нового рядка як n. Таким самим чином можна додавати символи табуляції – t.

Skype у Debian 7 (wheezy)

Версія Skype 4.2.0.11 з офіційного сайту хоча і була для архітектури i386, але встановилась майже без проблем (звичайно натягнула трохи зайвих пакетів). А от у роботі була дуже нестабільною:

  • час від часу пропадав звук
  • без видимої причини програма припиняла свою роботу (так звані crashes)
  • одного разу взагалі підвісила Х-и

Після чергового крешу, я спробував знайти щось на зразок логу, але це виявилось не так просто. Тому наступний раз я запустив скайп з командного рядка, щоб бачити, які повідомлення він пише до консолі. На жаль, вивід того терміналу я не зберіг, але там були повідомлення про невірні параметри налаштування звуку. Трохи погугливши, я знайшов рішення для 64-х розрядної Debian та 32-х розрядного Skype:

# apt-get install libasound2-plugins:i386

Після встановлення пакунку libasound2-plugins для архітектури i386 – попередження з консолі зникли.

Порівняння вмісту директорій

Більшість користувачів Лінукс знають, що команда diff застосовується для порівняння вмісту файлів, але вона також може порівнювати директорії.

Для цього достатньо викликати її з параметром -r

$ diff -r dir1 dir2

Мені вона стала у пригоді, коли треба було визначити розбіжності між двома WAR-файлами. Я розпакував їх вміст у дві директорії та порівняв їх.

Зручно те, що за умовчанням вона не показує розбіжності у двійкових файлах, а лише інформує, що файли різні.

Лінукс та програми для роботи з електронними книжками

e-book managementНаразі вже є гарною звичкою випускати вільне програмне забезпечення одразу для усіх популярних операційних систем. Не стало виключенням і ПЗ для роботи з електронними книжками, пристроями E-book.

Нагальної потреби у таких програмах немає, але все ж таки приємно, коли всі інструменти під рукою. Однією з таких програм є Calibre E-book management. В неї дещо дивний інсталятор – дуже довгий командний рядок, але все встановлюється швидко. До речі, ваш дистрибутив може мати цю програму у пакетах:

$ apt-cache search calibre
calibre - Конвертер та менеджер бібліотеки електронних книг
calibre-bin - Конвертер та менеджер бібліотеки електронних книг

У цієї програми дуже багато функцій, але особисто мені сподобалось підтримка дуже великої кількості E-book пристроїв та вміння конвертувати книжки з одного формата в інший. Так я без проблем переконвертував PDF у EPUB.

Також ця програма допоможе вам змінити автора чи назву книжки, що звичайно стане у пригоді, коли ви будете шукати книжку у E-book пристрої.

Як полагодити (видалити) смітник у Gnome з командного рядка

Якось в мене перестали видалятися файли зі смітника, що на робочому столі. В принципі і не проблема, але це неправильно.  Писало помулку про неможливість видалити файл.

Думаю причина в тому, що я видаляв директорії вміст яких мені не належав. Система Gnome перемістила їх до смітника, а видалити забороняє, бо там є не мої файли.

Вирішити проблему можно якщо присвоїти ці файли собі, але спочатку треба знайти корзину у файловій системі. Колись, вона була у каталозі ~/.Trash, але зараз чомусь переїхала до ~/.local/share/Trash

Отже, переходимо до потрібного каталогу та стаємо рутом:

$ cd ~/.local/share
$ sudo -s
# chown -R ЛОГІН_КОРИСТУВАЧА Trash
# exit
$ rm -fr Trash

Чому віруси не приживаються у Лінукс?

Нещодавно, бачив наслідки вірусної атаки на ноут з Windows XP. Вірус примудрився створити окремий розділ на жорсткому диску (причому з вільного місця 2-го розділу) і встановив цей розділ завантажувальним. Все закінчилось форматуванням вінчестера та встановленням системи з нуля.

Якщо Ви досі не розумієте, що таке комп’ютерний вірус, то спробую пояснити це стисло. Комп’ютерний вірус – це завжди програма, яка виконує шкідливі по відношенню до користувача дії. Пошкодити апаратну частину комп’ютера вона не може, все ж таки ваш ноут не секретний об’єкт і кнопка самоліквідації в ньому відсутня. Але пошкодити дані на вінчестері вірус може. По суті, вірус мало чим відрізняється від інших програм, таких як інтернет браузер чи текстовий редактор. От тільки в нього вся логіка спрямована на шкоду людині. На комп’ютер вірусна програма потрапляє через скачування сумнівних програм з інтернету, через електроні листи, через користування USB-накопичувачами на незнайомих комп’ютерах. Форматування вінчестеру та встановлення чистої операційної системи – завжди позбавляє від вірусів на 100%, але після такої процедури ви також втрачаєте всі ваші файли.

Але чому такі популярні у windows середовищі “віруси” не поширюються у Лінукс?

Причин тут багато, але головні такі:

  • лінукс слабо поширений, а якщо довитися на комп’ютерні віруси, як на бізнес, то написання Лінукс-вірусів комерційно не оправдане.
  • користувачі Лінукса, як правило, більш продвинені, вони позбавлені ілюзій щодо визначення типу файла його розширенням, а тому ймовірність запуска “віруса” від користувача root досить мала.
  • майже все програмне забезпечення встановлюється з репозиторію пакунків, що належить дистрибутиву Лінукс, який ви обрали. Тобто джерело программ дуже найдіне.
  • переважна більшість програм – безкоштовні і з відкритим кодом. Звичайно навіть продвинутий користувач не буде вчитуватись у код, щоб перевірити його на відстутніть “вірусів”, але популярність відкритого продукту притягує до нього дуже багато не тільки користувачів, але й програмістів. А приймаючи участь у розробці досить легко помітити злоякісний код.
  • незначна кількіть платних (ліцензійних) програм недозволяє у Лінукс процвітати хакерам, які розповсюджують серийні номери та програми для взлому ліцензій та систем активації. Тобто на ще одне джерело розповсюдження вірусів менше.
  • Лінукс користувачеві непотрібні права адміністратора для повсякденої роботи, томі навіть запуск вірусу від імені користувача не загрожує системі, адже вірус буде мати лише права одного користувача (максимальний ризик – втрата файлів 1-м користувачем).