Авторские статьи об OpenSource

Советы Ubuntu.


Здесь собраны различные советы Ubuntu, которые показывают нестандартные приёмы или красивое решение какой-либо проблемы.
Новый совет: Журнал DHCP сервера в отдельный файл.

Советы:
Журнал DHCP сервера в отдельный файл.
Что нужно сделать, чтобы заработал retracker.local в Ubuntu?
Как получить миниатюры с файлов XCF в Nautilus?
Не сворачивать Conky.
Как удалить все старые ядра, кроме текущего.
Как удалить программу, которой нет в Центре Приложений Ubuntu?
Найти пакеты для исполняемого файла.
Из просмотра в редактирование.
Вывод виртуальной консоли в файл.
Прокрутка клавишами в Firefox и в Evolution.
Полные пути в скриптах.
Хочу всё начать с нуля.
Из какого пакета этот файл?
Очистка кэша.
UTF8 в cp1251.
Принудительная проверка жестких дисков в Ubuntu.
Sudo для мазохистов.
Кто сожрал всё место? Или какие самые большие установленные пакеты Ubuntu?
Добавить ключи к репозиториям Ubuntu.
Как правильно компилировать в Ubuntu.
Правильно используем sudo при перенаправлении в файл.
Скачиваем образы и обновляем Ubuntu по прогрессивным технологиям.


Журнал DHCP сервера в отдельный файл.
Для перенаправления лога DHCP в отдельный файл в Debian или Ubuntu следует отредактировать файл настроек dhcp сервера /etc/dhcp/dhcpd.conf и добавить параметр log-facility local7;

Создать файл /etc/rsyslog.d/dhcpd.conf со следующим содержимым:
echo 'local7.* /var/log/dhcpd.log' > /etc/rsyslog.d/dhcpd.conf

В /etc/rsyslog.d/50-default.conf строку
*.*;auth,authpriv.none -/var/log/syslog
привести к виду
*.*;auth,authpriv.none,local7.none -/var/log/syslog

Перезапустить демоны dhcp и rsyslog:

/etc/init.d/isc-dhcp-server restart
/etc/init.d/rsyslog restart

Теперь лог dhcp сервера пишется в /var/log/dhcpd.log без дублирования в /var/log/syslog

Было бы великолепно настроить rotate журнала /var/log/dhcpd.log. Создаём файл /etc/logrotate.d/dhcpd с содержимым
/var/log/dhcpd.log {
daily
rotate 7
delaycompress
compress
notifempty
missingok
create 660 dhcpd dhcpd
}


Что нужно сделать, чтобы заработал retracker.local в Ubuntu?
Многие задаются вопросом, как заставить нормально в Ubuntu преобразовываться в IP адрес зарезервированное имя retracker.local, который помогает в розыске локальных пиров вашего провайдера. Как известно, ситуация связана с тем, что зона local связана с демоном Avahi и современный dnsmasq, использующийся в Убунту, по умолчанию не делает запрос к DNS серверам вашего провайдера для зоны local.

На просторах Интернета можно найти совет, который правда уже не работает. Вам рекомендовалось в файле /etc/nsswitch.conf строку
hosts: files mdns4_minimal [NOTFOUND=return] dns
привести к виду
hosts: files mdns4_minimal dns

Есть другой, рабочий вариант правильного преобразования retracker.local в современных linux дистрибутивах, в том числе Ubuntu 14.04 и новее!
Если сетевой кабель воткнут прямо в сетевую карту вашего компьютера, то вам нужно будет узнать IP адрес DNS сервера вашего провайдера. Возможно, в Терминале вам поможет команда nm-tool | grep DNS

Если вы используете домашний роутер (далее по тексту подразумевается IP адрес 192.168.1.1), в который воткнут сетевой кабель провайдера, то роутер получил нужные настройки, в том числе и адреса DNS сервера, по протоколу DHCP. Обращаясь с запросами DNS к роутеру, тот в свою очередь обратится к вышестоящим DNS серверам провайдера, и вы получите требуемое.

Если проследить командой ps auxxw | grep dnsmasq, то можно легко заметить, что он запущен с параметрами, среди которых есть --conf-dir=/etc/NetworkManager/dnsmasq.d/ В Dnsmasq есть директива server, позволяющая указывать какие домены и какими серверами DNS преобразовывать, этим мы и воспользуемся. Но сначала, до каких-либо изменений попробуйте в Терминале выполнить команду nslookup retracker.local 192.168.1.1. Если ваш провайдер сделал доброе дело и определил у себя retracker.local, то и вы получите IP адрес. Если преобразование retracker.local через DNS вашего провайдера в Терминале работает исправно, то можно указать dnsmasq делать это для всех программ в системе, в том числе и клиентов bittorrent. В системном каталоге /etc/NetworkManager/dnsmasq.d/ нужно создать текстовый файл retracker.conf со строкой
server=/retracker.local/192.168.1.1
Команда echo "server=/retracker.local/192.168.1.1" | sudo tee /etc/NetworkManager/dnsmasq.d/retracker.conf поможет сделать требуемое.

Перезагрузитесь! После перезагрузки, команда nslookup retracker.local должна сразу выдавать IP адрес. Bittorrent программы, наконец-то, начнут использовать retracker.local. Вы получите адреса локальных пиров, качающие то же что и вы, и сможете быстрее скачать требуемое на локальных скоростях в сети вашего провайдера. Все возможные директивы Dnsmasq можно посмотреть в файле /usr/share/doc/dnsmasq-base/examples/dnsmasq.conf.example


Как получить миниатюры с файлов XCF в Nautilus?
Файлы XCF (eXperimental Computing Facility) являются родным форматом GIMP, но в Наутилусе не видны в виде миниатюр. Для получения миниатюр XCF в Наутилусе нужно сделать следующее:

  • Установить gnome-xcf-thumbnailer - sudo apt-get install gnome-xcf-thumbnailer
  • К сожалению, не создаётся нужный файл /usr/share/thumbnailers/gnome-xcf.thumbnailer . Эта проблема в будущем, возможно, будет исправлена, но пока:
    sudo mkdir -p /usr/share/thumbnailers/
    echo -e "[Thumbnailer Entry]\nTryExec=gnome-xcf-thumbnailer\nExec=gnome-xcf-thumbnailer %i %o\nMimeType=image/x-xcf;image/x-compressed-xcf;" | sudo tee /usr/share/thumbnailers/gnome-xcf.thumbnailer
  • Новые файлы XCF будут представлены в виде миниатюр, но старые нет. Но если почистить кэш Наутилуса, то будут созданы миниатюры для всех ваших XCF.
    rm -r ~/.thumbnails/fail
    rm -r ~/.cache/thumbnails/fail

Не сворачивать Conky!
Когда вы нажимаете в Unity клавишу минимизации всех окон Ctrl + Super + D или на панели Launcher кликаете значок Show Desktop, то conky исчезает с экрана, послушно сворачиваясь в никуда. Для того, чтобы Conky всегда была на рабочем столе и не исчезала - запустите CCSM и в "Общие настройки" (General Options) и снимите галочку "Скрыть все, кроме окон панели задач" (Hide Skip Taskbar Windows).


Как удалить все старые ядра, кроме текущего?
Откройте Терминал и скомандуйте sudo apt-get purge $(dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | head -n -1) --assume-yes.


Как удалить программу, которой нет в Центре Приложений Ubuntu?
Откройте Терминал и скомандуйте dpkg -l *название_программы*, для примера dpkg -l *firefox*. Если напротив программы (точнее пакета) вы видите ii, то пакет действительно установлен. Удалить его можно с помощью команды sudo apt-get remove название_программы.


Найти пакеты для исполняемого файла.
Если возникла проблема, когда программе требуются библиотеки, но вы не знаете в каком пакете они находятся, то вам пригодится команда, которая выведет все внешние зависимости в виде пакетов. Если вы сели компилировать программу из исходников, то сначала прочтите как нужно правильно компилировать программы в системе Ubuntu с пакетным менеджментом.
dpkg -l $( dpkg -S $( ldd Исполняемый-Файл-Или-Библиотека | awk '{print $3}' ) | awk '{{sub(":"," ")} print $1}' )


Открыть ссылки в файле во вкладках браузера
Часто нужно все ссылки в файле открыть во вкладках веб браузера, типа Firefox. Простая команда cat links.txt | xargs firefox -new-tab & поможет вам.


Из просмотра в редактирование
Если просматриваете в консоли файл с помощью 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.


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


Очистка кэша
При своей работе Linux старается оптимально загрузить ОЗУ. Согласитесь, лучше пусть работает быстрая ОЗУ, чем медленный HDD. Кому нужна свободная ОЗУ, которая "не работает", но за неё уплачены деньги? Linux "отдаст" приложениям память, когда в том будет необходимость, то есть никто не будет страдать от недостатка памяти. Но если приложениям пока не нужна свободная память и её много, Linux заполняет её необязательными буферами. Их можно "сбрасывать", синхронизируя тем самым содержимое в ОЗУ с данными на диске.
Зачем это делать? Ну, например, можно указать выполнить ниже описанный скрипт, когда ваш UPS сигнализирует о переходе на батарею. Таким образом, вы "сбрасывая" буфера минимизируете риск повреждения данных.
Многие подолгу не перезагружают свой компьютер, запуская скрипт, вы грубо говоря получаете "как бы" новую, только что перезагруженную систему. Частить этим скриптом не нужно, но периодически запускать полезно, особенно после большого количества операций копирования файлов. Создайте файл, вставьте код и сделайте файл исполняемым. Вообще-то достаточно в скрипте вызывать sync && echo 3 | sudo tee -a /proc/sys/vm/drop_caches, но приведены все возможности и вам решать - как именно и что сбрасывать. Перед сбросом буфером постоянно вызывайте sync!

#!/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, они в разделе / и нет проблемы "хватит-не хватит" места.

мне кажется для десктопа - это оптимально.


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


Принудительная проверка жестких дисков в 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 apt-get 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, облегчая и удешевляя их администрирование. Запоминаем в закладки торрент-трекер Убунту torrent.ubuntu.com:6969 и советуем своим друзьям - "использовать 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.
    e) можно периодически заходить браузером по адресу httр://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

    Сайты:
    родной 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


Изменение имен сетевых интерфейсов
sudo -e /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 -t 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 apt-get dist-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


Самораспаковывающийся архив
Создаем скрипт (для 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.

Похожие материалы:
Советы Kubuntu.
Часто Задаваемые Вопросы Ubuntu.
Скрипты, которые автоматизируют рутинные операции или помогают в работе.

    Twitter   


Разделы

Главная
Новости
Ворох бумаг
Видео Linux
Игры в Linux
Безопасность
Статьи о FreeBSD
Статьи об Ubuntu
Статьи о Snappy
Статьи об Ubuntu Phone
Статьи о Kubuntu
Статьи о Xubuntu
Статьи о Lubuntu
Статьи об Open Source
Карта сайта

Лучшее на сайте:

1С под Linux.   Ускорение Ubuntu.   21 пример iptables.   Цикл статей о Ceph.   Убунту в дикой среде.   Ubuntu Linux на SSD.   Ubuntu для блондинок.   Поддержка железа в Linux.   BTSync на службе у админа.   Андроид программы в Ubuntu.   Прокидывание портов для p2p.   Анти СПАМ в Postfix.  



Круги Гугл Ада.


Группа поддержки