четверг, 10 мая 2012 г.

Здесь собраны различные советы Ubuntu,



Из просмотра в редактирование
Вывод виртуальной консоли в файл
Прокрутка клавишами в Firefox и в Evolution
Полные пути в скриптах
Хочу всё начать с нуля
Из какого пакета этот файл?
Очистка кэша
Очистка KDE
UTF8 в cp1251
Прозрачность Conky в KDE4
Принудительная проверка жестких дисков в Ubuntu
Sudo для мазохистов
Кто сожрал всё место? Или какие самые большие установленные пакеты Ubuntu?
Добавить ключи к репозиториям Ubuntu
Как правильно компилировать в Ubuntu
Правильно используем sudo при перенаправлении в файл
Скачиваем образы и обновляем Ubuntu по прогрессивным технологиям





Из просмотра в редактирование

Если просматриваете в консоли файл с помощью less и нужно этот файл отредактировать, то просто нажмите на клавиатуре клавишу V и всё.




Вывод виртуальной консоли в файл

Часто необходимо скопировать весь вывод в консоли в файл, выделять мышой длинный список команд и их вывод часто не удобно.
Проще сделать дамп экрана с помощью screendump
sudo screendump > ~/output.txt




Прокрутка клавишами в Firefox и в Evolution

В Firefox и в Evolution есть скрытая возможность прокрутки страницы с помощью клавиш клавиатуры. Нажмите F7 и используйте вверх-вниз клавиши для прокрутки страницы.




Полные пути в скриптах

Часто при написании скрипта требуется его выполнение через планировщик Cron. У Крона есть переменная PATH в которой указаны пути, в которых Крон ищет команды без полных путей. Вы должны дополнить своими путями переменную PATH, если ваши вызываемые команды расположены в путях не прописанных в PATH. Но если по ряду причин НЕЛЬЗЯ или не охота править PATH, то можно просто дополнить ваши команды до команд с полными путями с помощью whereis -b команда1 команда2 команда3.
Пример
whereis -b grep cat sleep awk
grep: /bin/grep
cat: /bin/cat
sleep: /bin/sleep
awk: /usr/bin/awk

Whereis быстро найдёт и укажет полные пути к командам.




Хочу всё начать с нуля

Если у вас что-то произошло с Гномом или вы своими экспериментами сами всё испортили, хочется начать всё сначала, но не устанавливать систему заново. Можно вернуться к дефолтному Гному следующим способом:
* закройте все программы
* зайдите в консоль Ctrl+Alt+F1 и зарегестрируйтесь под своим логином
* остановите графику sudo gdm stop && sudo /etc/init.d/gdm stop
* удалите в своей домашней папке файлы в папке .gnome2/ вы удаляете свои настройки Гнома и начинаете с нуля rm -r ~/.gnome2/*
* перезагрузитесь sudo shutdown -r +0




Из какого пакета этот файл?

Часто нужно определить из какого пакета тот или иной файл, самый простой вариант сделать запрос на
packages.ubuntu.com, в примере мы ищем libGL.so
Можно установить apt-file и использовать его возможностями поиска sudo apt-file update && apt-file search /usr/lib/libGL.so. Если вы разыскиваете нужные пакеты с нужными файлами для компиляции исходников, то настоятельно рекомендую прочесть Для защитников и любителей компилировать из исходников.




Очистка кэша

При своей работе Linux старается оптимально загрузить ОЗУ. Согласитесь, лучше пусть работает быстрая ОЗУ, чем медленный HDD. Кому нужна свободная ОЗУ, которая "не работает", но за неё уплачены деньги? Linux "отдаст" приложениям память, когда в том будет необходимость, то есть никто не будет страдать от недостатка памяти. Но если приложениям пока не нужна свободная память и её много, Linux заполняет её необязательными буферами. Их можно "сбрасывать", синхронизируя тем самым содержимое в ОЗУ с данными на диске.
Зачем это делать? Ну, например, можно указать выполнить ниже описанный скрипт, когда ваш UPS сигнализирует о переходе на батарею. Таким образом, вы "сбрасывая" буфера минимизируете риск повреждения данных.
Многие подолгу не перезагружают свой компьютер, запуская скрипт, вы грубо говоря получаете "как бы" новую, только что перезагруженную систему. Частить этим скриптом не нужно, но периодически запускать полезно, особенно после большого количества копирований файлов. Создайте файл, вставьте код и сделайте файл исполняемым.
#!/bin/sh
echo "Было занято в кеше ОЗУ"
free
# Чистим pagecache:
sync
echo 1 | sudo tee -a /proc/sys/vm/drop_caches
#Чистим dentrie и inode кэши:
sync
echo 2 | sudo tee -a /proc/sys/vm/drop_caches
#Чистим pagecache, dentrie и inode кэши:
sync
echo 3 | sudo tee -a /proc/sys/vm/drop_caches
echo "Стало свободно в ОЗУ"
free
exit 0





Разделы для Ubuntu

Рекомендую разбивать разделы так
/ = ~40 Гб
swap = размер ОЗУ
/home = Остальное
Плюсы
1) после переустановки удаляется только /, home остается и хранит ваши настройки. При повторной установке не форматируйте раздел /home!
2) нет отдельного раздела /tmp и /var, они в разделе / и нет проблемы "хватит-не хватит" места.
мне кажется для десктопа - это оптимально




Очистка KDE

Со временем, кэш KDE заполняют файлы не нужные самой KDE. Ситуация усугубляется при обновлении KDE на новую версию. Желательно периодически удалять эти временные файлы, которые к тому времени становятся постоянными, гыгы.
Для этого:
Завершите сеанс KDE и нажмите Ctrl + Alt + F1 для переключения в консоль.
Остановите KDE любой ценой sudo stop kdm && sudo /etc/init.d/kdm stop.
Нужно удалить файлы в папке /var/tmp/kdecache-ВАШ_АККАУНТ, НО не саму папку! Для этого скомандуйте sudo rm -rf /var/tmp/kdecache-`whoami`/*.
Перезагрузитесь sudo shutdown -r +0.
Эта перезагрузка будет дольше предыдущих, так как создаются новые файлы кэшей, но потом всё придет в норму.




UTF8 в cp1251

Часто возникает ситуация когда нужно посмотреть файл в кодировке cp1251, которая используется в MS Windows, в горячо любимом Линуксе, который использует продвинутую кодировку UTF8. Если просто открыть любым редактором или просмотрщиком файл cp1251, то мы увидим крякозябры. Если необходимо просто посмотреть содержимое файла, а не редактировать его, то можно создать скрипт v1251 и вставив строки
#!/bin/sh
if [ -z $1 ]; then
echo "Дайте имя файла в качестве аргумента"
exit 0
fi
cat $1 | iconv -f cp1251 -t utf8
exit 0

сделать его исполняемым. Для удобства вызова, скрипт cp1251 можно разместить у себя ~/bin/ или /usr/bin/. Теперь для просмотра виндового файла, достаточно вызывать v1251 имя_файла.
Для изменения файла на Desktop компьютере придется воспользоваться редакторами, которые умеют переключаться между кодировками, например Bluefish.
На сервере Ubuntu можно установить файловый менеджер Midnight Commander sudo apt-get install mc и воспользоваться его редактором, с возможностью переключения между кодировками или воспользоваться командами
iconv -f cp1251 -t utf8 < имя_файл > имя_файл.utf8
nano имя_файл.utf8
iconv -f utf8 -t cp1251 < имя_файл.utf8 > имя_файл.cp1251





Прозрачность Conky в KDE4

В KDE4 у известного монитора Conky не работает "прозрачность". Суть проблемы в том, что Conky использует псевдопрозрачность, копируя на свою область часть Рабочего Стола. Но в KDE4, в отличии от Gnome, Рабочий Стол это не папка и не файл, а виджет, как и всё остальное. Добавьте сюда невозможность узнать через консоль какой файл KDE4 сейчас использует в роли Обоев на Рабочем Столе, выкиньте все советы для KDE3 и получите полную картину проблемы.
Выходы из ситуации следующие:
1) Не использовать Conky, а добавить из репозитория дополнительные виджеты и использовать их вместо Conky
2) Смирится с тем, что фон Conky не прозрачен
3) Использовать данный совет и применить скрипт Прозрачность Conky в KDE4
Что делает данный скрипт?
Скрипт определяет текущий режим Обоев в KDE4 и вызывает утилиту feh, которая помогает Conky оформить свой фон. На сегодняшний день скрипт может обрабатывать только два режима Обоев KDE4 - Изображение (одна статичная картинка) и Слайдшоу (один! каталог с изображением).
С помощью inotifywait отслеживаются изменения файла настроек KDE4 и каталога с картинками для Рабочего Стола, который укажете вы в свойствах KDE4. Как только происходят изменения, они применяются с помощью утилиты feh. Следующее обновление своего окна Conky учитывает изменения и фон Conky согласуется с картинкой на Рабочем Столе.
Как применять скрипт?
0) Установите пакеты inotify-tools и feh sudo aptitude install inotify-tools feh
1) Распакуйте архив скрипта в любую папку в домашней директории, например в ~/bin/. И сделайте его исполняемым, например в Konsole chmod +x ~/bin/kde4conky
2) Запустите в Konsole скрипт для проверки его работы ~/bin/kde4conky Прервать работу скрипта вы можете с помощью Ctrl + C
3) В свойствах Рабочего Стола измените на нужный вам режим показа. В окне, где работает скрипт, вы должны наблюдать изменения.
4) Conky должна автоматом получать изменения от feh и менять свой фон, согласуясь с текущей картинкой Рабочего Стола.
5) Если все проверки и тесты прошли нормально, можно занести скрипт в Автозагрузку KDE4.
Минусы скрипта:
1) У KDE4 не узнать смену одну статичной картинки на другую статичную картинку в режиме Изображение. Выход один - сменить режим на СлайдШоу и вернуться назад на режим Изображение, но указать уже новую картинку.
2) В режиме СлайдШоу пока можно использовать только ОДИН каталог
3) В режиме СлайдШоу бывает, что Conky использует не текущую картинку и происходит рассогласование до следующей смены картинки. Советую на чистом месте Рабочего Стола KDE4 щелчок правой клавишей мыши и там пункт меню Следущее Изображение.
4) KDE4 свои изменения не сразу сохраняет в файл и поэтому наблюдается некоторая инертность, на Рабочем Столе новая картинка, а фон Conky еще "старый".
Итог:
Как у любого костыля, у данного скрипта Прозрачность Conky в KDE4 много минусов, но в целом скрипт нормально работает. Временная дикость и нестыковки можно наблюдать только при смене режимов, в остальном костыль работает. На просторах Интернета вы можете найти другие костыли, но у них жирным минусом идёт необходимость, чтобы раздел /home не использовал в /etc/fstab параметры noatime и relatime, а я на это не согласен и поэтому пришлось писать свой костыль.
Вообщем, ждем нормальной реализации функции позволяющей получать путь к текущему изображению Рабочего Стола KDE4, тогда этот скрипт будет не нужен или он станет более элегантным и простым. Можно еще у автора Conky попросить, чтобы он в Conky реализовал нормальную работу в KDE4.




Принудительная проверка жестких дисков в Ubuntu

В Ubuntu через определенное количество монтирований жестких дисков (читай «перезагрузок компьютера») принудительно включается fsck для проверки жестких дисков. Многие знают, что с помощью tune2fs можно управлять интервалами проверок fsck.
Но иногда нужно проверить диск «здесь и сейчас». Если запустить fsck с указанием ваших дисков, то скорее всего они подмонтированы и fsck предупредит, что это чревато для вас. Как быть? Отмонтировать, чтобы проверить? А как быть с корнем?
Самый простой вариант такой:
sudo touch /forcefsck
Команда sudo (после ввода пароля) даст вам права создать с помощью touch пустой файл в корне диска /forcefsck, который служит сигналом (флагом) для fsck, что нужно проверить диски.
Вам осталось перезагрузить компьютер и fsck примется проверять все жесткие диски, указанные в /etc/fstab.




Sudo для мазохистов

Если вы мазохист и любите, когда вас бьют и оскорбляют, можете попросить sudo оскорблять вас при неверно набранном пароле (выводить забавные сообщения об ошибке аутентификации).
Для включения этого режима выполните следующие операции в терминале:
1. sudo visudo
2. В вызванном редакторе по умолчанию найдите параметр Defaults и допишите через запятую значение «insults». Например, «Defaults env_reset,insults».
3. Сохраните изменения и выйдите из редактора.
4. Выполните sudo -K, чтобы очистить sudo-сессию и забыть введенный пароль.
5. Для наслаждения от оскорблений введите, например, sudo ls / и пробуйте указывать неверный пароль.
6. Наслаждайтесь =)




Кто сожрал всё место? Или какие самые большие установленные пакеты Ubuntu?

Иногда хочется видеть список из установленных пакетов с размером. Возможно, некоторые уже не нужны и захочется их удалить, увидев их гигантский размер.
1. Запустите Терминал
2. Навсякий пожарный, вызовите для очистки баласта sudo aptitude autoclean
3. Вот волшебная команда, которая покажет установленные пакеты с размером. Список большой, поэтому перенаправляем в файл ~/list_installed_package.txt
sudo aptitude search '~i!~nlib' -F '%p %I' --sort installsize > ~/list_installed_package.txt
4. Откройте в Текстовом Редакторе файл ~/list_installed_package.txt, можно так gedit ~/list_installed_package.txt
5. Будьте аккуратны, если будете удалять пакеты! Смотрите, что удаляете и что будет удалено по зависимостям




Добавить ключи к репозиториям Ubuntu

В Ubuntu у каждого репозитория есть ключ, которым подписывают все пакеты и тем самым можно в дальнейшем проверять авторство пакетов. Из неподписанных ключом репозитариев, Ubuntu позволит ставить ПО, но это не рекомендуется. Есть способ добавить ключи через GUI, но он долог, так как вам нужно разыскать файл-ключ, скачать его и указать на него, для добавления в свою систему.
Эти пункты намного короче и быстрее приведут вас к желаемому.
1. Запустите Терминал
2. Вызовите sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com `sudo apt-get update 2>&1 | grep -o '[0-9A-Z]\{16\}$' | xargs`




Как правильно компилировать в Ubuntu

В Ubuntu используется философия пакетного менеджмента, то есть все программы ставятся из пакетов deb, в которых хранится
собственно сама программа и скрипты, которые корректно ставят/удаляют/обновляют. Пакеты deb можно найти в сети Интернет, на дисках. Самый лучший способ использовать репозитории, хранилища deb пакетов. Если использовать репозитория, то при появлении в них новых версий установленных у вас программ, вам будет предложено обновить их. Это очень удобно и позволяет держать систему актуальной и защищенной.
Старайтесь до последнего найти нужную вам программу в deb пакете - тем самым вы не нарушите стройность и целостность пакетной системы Ubuntu.
Но что делать если программы в пакете deb НЕТ? Многие сразу скажут, что нужно компилировать исходники. Да это так, но лучше делать правильно! Описанный ниже способ не повредит пакетной системе Ubuntu и точно лучше чем configure && make install
1) Поставьте auto-apt
sudo apt-get install auto-apt
2) Распакуйте исходники программы, почитайте файл INSTALL, в каталоге с распакованными исходниками командуйте
sudo auto-apt update && auto-apt -y run ./configure
Команда auto-apt автоматом будет доставлять пакеты с необходимыми файлами, всякие там заголовочные файлы .h
подробнее 5.3 Установка пакетов по запросу
Этот шаг позволит автоматически удовлетворить зависимости компилируемой программы и меньше будете пытать людей на форумах, типа чего надобно программе на слове
stdio.h NOT FOUND
3) сделайте deb пакет
checkinstall -D
4) Установите созданный deb пакет в вашу систему. Двойной щелчок на deb пакете в Файловом Менеджере Nautilus (Dolphin) или в Терминале
sudo dpkg -i ваш_пакет.deb
Заметьте! Мы не использовали make install и тем самым не вмешивались грубо в пакетную систему Ubuntu, мы элегантно создали deb пакет, который уже установили в систему. В дальнейшем этот ваш deb пакет можно корректно удалить или обновить новым deb пакетом.




Правильно используем sudo при перенаправлении в файл

В Ubuntu принято использовать sudo для получения прав root, и часто возникает задача записи какого-либо значения в файл, принадлежащий пользователю root.
Многие неправильно делают так:
sudo echo SomeValue > /путь/к/рутовому/файлу
Данный пример не работает по той причине, что благодаря sudo, вы получаете рутовые привилегии, но перенаправление > работает уже от вашей обычной учётной записи.
Правильно записывать в файлы, для которых нужны права рута, следует так:
echo Значение | sudo tee /путь/к/рутовому/файлу
Вот поясняющий пример, изменяющий у процессора схему работы на Консервативный и стартовую частоту 1,15 Ггц
echo conservative | sudo tee /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo 1150000 | sudo tee /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq





Скачиваем образы и обновляем Ubuntu по прогрессивным технологиям

  • Быстро скачать образы Ubuntu. Протокол BitTorrent. В дни выхода релиза Ubuntu начинается традиционный ажиотаж, все качают образ iso нового релиза Ubuntu, чтобы попробовать на своём компьютере. Представьте что происходит в данный момент с серверами Canonical! Скорость у всех пользователей падает, так как сервера едва выдерживают наплыв пользователей. Проблема в протоколе http и ftp, которые в основе своей используют клиент-серверную философию. Вы скачиваете по http/ftp всегда с сервера и чем больше нас на сервере, тем ему "тяжелее".
    Но мы, линуксоиды, используем продвинутые технологии в Убунту и для загрузки образов любимой Ubuntu должны использовать что-то лучше чем http. Как вы знаете, есть децентрализованные технологии и одна из них, BitTorrent. Используя BitTorrent, мы скачиваем на большей скорости образы Убунту и разгружаем сервера Canonical, облегчая и удешевляя их администрирование. Запоминаем в закладки торрент-трекер Убунту и советуем своим друзьям - "использовать BitTorrent". Скачав образ Ubuntu, посторайтесь выложить его в локальных сетях вашего города и порекомендовать его другим пользователям для скачивания на бОльшей скорости локальной сети.
  • Быстро качать Ubuntu пакеты - apt-p2p - это возможность использовать технологии p2p для получения/обновления пакетов из репозиториев.
    Как вы знаете, в Ubuntu используются репозитория, хранилища программ. Убунту на вашем компьютере обновляется через Интернет с серверов Canonical и серверов сторонних, не официальных, репозиториев. Люди нам бесплатно предоставляют возможность легко обновлять и устанавливать программы. Можно в ответ, облегчить бремя поддержания серверов-репозиториев и вместо обновления по
    http, обновляться по p2p. В добавок, используя p2p, вы гарантированно увеличите скорость загрузки пакетов, если ваша скорость соединения с Интернетом высокая. Как установить
    а) поставьте пакет apt-p2p. Отредактируйте файл /etc/apt-p2p/apt-p2p.conf по вашему желанию, советую параметр REMOTE_STATS = no, чтобы статистика работы была доступна только вам. Дополнительные параметры смотрите ниже.
    b) запустите Текстовый Редактор sudo gedit /etc/apt/sources.list
    c) замените адреса вида httр://*address*/ на httр://localhost:9977/*address*/ и сохраните изменения
    например (не копируйте эти строки себе)
    deb httр://archive.ubuntu.com/ubuntu/ maverick main universe restricted multiverse
    превращается
    deb httр://localhost:9977/archive.ubuntu.com/ubuntu/ maverick main universe restricted multiverse
    d) теперь ставьте программы из репозитария как вам удобно, через Синаптик или apt-get/aptitude.
    e) можно периодически заходить браузером по адресу http://localhost:9977/ и наблюдать статистику. Радоваться большому значению Peer Downloads, которые показывает, сколько мегабайт вы скачали НЕ с серверов, а других пользователей.
    Плюсы:
    1) Вы разгружаете сервера и зеркала Ubuntu, вносите свою лепту в продвижение Ubuntu. Делаете "в кайф" людям, которые столько всего делают для нас.
    2) Вы гарантированно забьете свой широкий канал с Интернетом и не будет ситуации, когда вы можете получать 100 кб/с, а вам перегруженный сервер отдает по 20 кб/с. В моей практике, видел скорость 620 кб/с при моем тарифе в ~130 кб/с из-за того, что apt-p2p, благодаря своей торрент сущности, качал с IP адресов моего же провайдера на более высокой скорости.
    3) Легкость перехода. Найти и заменить строки - это умеет любой редактор текста.
    4) Программа apt-get при отсутствии пиров сама скачает напрямую c источника, пакет вы получите в любом случае.
    Несущественные минусы:
    1) Если обновление не большое (<100кб) и это первое в этот день обновление (apt-p2p не кешировал еще инфу), то процесс скачки будет чуть дольше, чем сразу тянуть по http или ftp.
    2) Менее ровно стал работать прогресс скачки пакетов, кажется что ничего не качается, а потом сразу 10 пакетов скачалось, просто особенность p2p и всё.
    3) Иногда возникает ситуация, что пакет не скачен. Если тут же затребовать его снова, то он будет доставлен.
    4) Возможна ситуация, когда загрузка пакетов из репозитория через apt-p2p невозможна по ряду причин. Придётся для такого репозитория убрать localhost:9977 и использовать загрузку обычным способом через http.
    Многих интересует как долго apt-p2p будет "раздавать" скачанный пакет?
    Ответ: пока сам качает + 5 мин после скачки, можно изменить в /etc/apt-p2p/apt-p2p.conf
    Многих интересует как ограничить скорость отдачи apt-p2p?
    Ответ: можно изменить в /etc/apt-p2p/apt-p2p.conf параметр UNLOAD_PACKAGES_CACHE
    Сайты:
    родной http://www.camrdale.org/apt-p2p/

Выбор DM в Ubuntu

$ sudo dpkg-reconfigure gdm

Apt через proxy в Ubuntu

Создать /etc/apt/apt.conf.d/proxy.

Acquire::http::Proxy "http://user:password@IP_адрес_прокси:порт_прокси";
Acquire::ftp::Proxy "http://user:password@IP_адрес_прокси:порт_прокси";

Выбор редактора по умолчанию в Ubuntu

$ sudo update-alternatives --config editor

Ubuntu MySQL UTF8

Добавить в /etc/mysql/my.cnf в секции [mysqld]:
skip-character-set-client-handshake
default-character-set=utf8
init-connect='SET NAMES utf8'
default-collation=utf8_general_ci

И /etc/init.d/mysql restart

Чтение FB2

Можно читать FB2 из консоли следующим способом:
zcat book.fb2.zip|xsltproc FB2_2_txt.xsl -|less -s

Перекодировка файла cp1251 в koi8-r

iconv -f cp1251 -t koi8-r filename1 > filename2

Смотрим конфиги без комментариев

# grep -vE "^#|^$" config_filename

Работа с датами в консоли

date -> timestamp
$ date --date="Tue Oct 9 14:14:14 UTC 2007" +%s
1191939254
timestamp -> date
$ date -d @1191939254
Втр Окт 9 18:14:14 MSD 2007

Монтирование iso, mds образов в linux

# mount -o loop /path/to/iso/or/mds /mnt/point

Способ просмотра объема ОЗУ в Linux

Вывести в мегабайтах:
$ echo `cat /proc/meminfo | grep MemTotal | awk -F" " '{ print $2 }'`/1024 | bc

Добавление пользователей MySQL

Добавляем нового пользователя в СУБД MySQL с одновременным присваиванием ему во владения вашей БД:
mysql> GRANT ALL PRIVILEGES ON наша_база.* TO 'наш_пользователь'@'localhost' IDENTIFIED BY 'наш_пароль' WITH GRANT OPTION;

Правило iptables для прозрачного проксирования в squid

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128

Изменение имен сетевых интерфейсов

nano /etc/udev/rules.d/70-persistent-net.rules

Посмотреть все уникальные PID'ы процессов

# ps -auxefw

Монтирование smb шар в linux

# smbclient -U user -I 192.168.16.229 -L //smbshare/ # Посмотреть все шары
# mount -t smbfs -o username=winuser //smbserver/myshare /mnt/smbshare
# mount -t cifs -o username=winuser,password=winpwd //192.168.16.229/myshare /mnt/share

iso-образ из директории с файлами

# mkisofs -J -L -r -V TITLE -o imagefile.iso /path/to/dir

Конвертация bin, cue, nrg в iso

# bchunk imagefile.bin imagefile.iso
# bchunk imagefile.cue imagefile.iso
# dd bs=1k if=imagefile.nrg of=imagefile.iso skip=300

Монтирование ОЗУ на диск

# mount_mfs -o rw -s 64M md /memdisk

Создание, удаление маршрутов в Linux

# route add -net 192.168.20.0 netmask 255.255.255.0 gw 192.168.16.254
# ip route add 192.168.20.0/24 via 192.168.16.254
# route add -net 192.168.20.0 netmask 255.255.255.0 dev eth0
# route add default gw 192.168.51.254
# ip route add default via 192.168.51.254
# route delete -net 192.168.20.0 netmask 255.255.255.0

Проверка, бэкап и восстановление дисков

Проверка на бэд-блоки:
# dd if=/dev/sda of=/dev/null bs=1m
Создаем образ диска:
# dd bs=1k if=/dev/sda1 conv=sync,noerror,notrunc of=sda1.img
Монтируем:
# mount -o loop /sda1.img /mnt
Клонируем на новый диск:
# rsync -ax /mnt/ /newdisk/

Конвертация переносов строк DOS (CR/LF) в Unix (LF)

# sed 's/.$//' dosfile.txt > unixfile.txt

Выход из bash без сохранения истории

$ kill -9 $$

Cохранение роликов Youtube

sudo apt-get install youtube-dl && youtube-dl youtube.com/watch?v=dRDmirJATKs

Отправка сообщения MS Windows компьютеру, если на нём работает служба сообщений

$ echo "message" | smbclient -M имя_компьютера

Посмотреть MAC'и всех сетевых устройств на компьютере

# ifconfig -a| grep -o -E '([[:xdigit:]]{1,2}:){5}[[:xdigit:]]{1,2}'

Запустить последнюю команду с привилегиями root'а

$ sudo !!

Обнуление (очистка) файла

$ > some_file

Что больше всего весит в каталоге?

Просмотреть содержимое каталога с отображением объема и упорядочить по убыванию:
$ du -sm ./* | sort -gr

Обновление заблокированных пакетов в Ubuntu

sudo aptitude full-upgrade

Перевод кириллицы в транслит

$ echo Привет | iconv -t koi-7 | tr a-zA-Z A-Za-z
Priwet

Генерация случайного пароля

Оригинальный способ генерации пароля
cat /dev/urandom | tr -d -c 'a-zA-Z0-9' | fold -w 8 | head -1
или
pwgen -AB 8

Cамораспаковывающийся архив

Создаем скрипт (для bz2-архивов):
#!/bin/sh
sed -e '1,/^END_OF_SCRIPT$/d' $0 | base64 -d | tar -xj
exit
END_OF_SCRIPT

и приписываем к нему любой tar.bz2-архив:
$ cat archive.tar.bz2 | base64 >> scriptname.sh

Изменение кодировки в id3 тэгах у mp3 файлов

$ mp3unicode -s win1251 -1 none -2 unicode -p file.mp3
-s указывает на кодировку в которой представлены id3 тэги
-1 id3tag версии 1 отсутствует
-2 кодировка id3tag версии 2
-p защищает id3tag от перекодировки, если они уже перекодированные в unicode

Конвертация WMV в AVI

$ mencoder infile.wmv -ofps 23.976 -ovc lavc -oac copy -o outfile.avi

Вертикальная конкатенация файлов

Склеивание столбцов данных из файлов 1.txt и 2.txt, с разделителем пробел, производится командой:
$ paste -d " " 1.txt 2.txt > 3.txt
$ cat 1.txt
1 1
2 2
3 3
$ cat 2.txt
4
5
6
$ cat 3.txt
1 1 4
2 2 5
3 3 6

Заменить повторяющиеся пустые строки на одну пустую строку

$ sed -e ':a;/^$/N;/\\n$/{D;ba}' file.txt

Отключаем писк в терминале

$ setterm -blength

Просмотр mail логов с подсветкой email адресов

$ vim -c "set ft=mail" /var/log/maillog

Магические комбинации с SysRq

Alt+SysRq+K - убивает все зависшие процессы, которые не отвечают на Ctrl+C.
Alt+SysRq+E (tErm) - посылает всем процессам (кроме Init) сигнал SIGTERM. Остаются только ядро, Init и текущая консоль. После этого можно заново запустить все сервисы.
Alt+SysRq+I (kIll) - аналогично предыдущей, но посылает сигнал SIGKILL, т.е. моментально убивает процессы без сохранения данных.
Alt+SysRq+S (Sync) - заставляет ядро выполнить синхронизацию буферов ввода/вывода, т.е. сбросить содержимое дисковых буферов на диск.
Alt+SysRq+U (Umount) - размонтирование всех смонтированных ФС
Alt+SysRq+B (Reboot) - мгновенная перезагрузка (практически Reset)
Alt+SysRq+0 (p0wer off) - мгновенно выключает питание, не размонтируя ФС.
Желательно зависшую Linux машину перезагружать с помощью магических клавиш следующим способом Alt + SysRq + R,E,I,S,U,B

Комментариев нет:

Отправить комментарий