Здесь собраны различные советы Ubuntu, которые показывают нестандартные приёмы или красивое решение какой-либо проблемы.
Новый совет: Журнал DHCP сервера в отдельный файл.
Советы:
Журнал DHCP сервера в отдельный файл.
Что нужно сделать, чтобы заработал retracker.local в Ubuntu?
Как получить миниатюры с файлов XCF в Nautilus?
Не сворачивать Conky.
Как удалить все старые ядра, кроме текущего.
Как удалить программу, которой нет в Центре Приложений Ubuntu?
Найти пакеты для исполняемого файла.
Из просмотра в редактирование.
Вывод виртуальной консоли в файл.
Прокрутка клавишами в Firefox и в Evolution.
Полные пути в скриптах.
Хочу всё начать с нуля.
Из какого пакета этот файл?
Очистка кэша.
UTF8 в cp1251.
Принудительная проверка жестких дисков в Ubuntu.
Sudo для мазохистов.
Кто сожрал всё место? Или какие самые большие установленные пакеты Ubuntu?
Добавить ключи к репозиториям Ubuntu.
Как правильно компилировать в Ubuntu.
Правильно используем sudo при перенаправлении в файл.
Скачиваем образы и обновляем Ubuntu по прогрессивным технологиям.
Создать файл /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
}
На просторах Интернета можно найти совет, который правда уже не работает. Вам рекомендовалось в файле /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
sudo apt-get install 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
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, они в разделе / и нет проблемы "хватит-не хватит" места.
мне кажется для десктопа - это оптимально.
#!/bin/sh
if [ -z $1 ]; then
echo "Дайте имя файла в качестве аргумента"
exit 0
fi
cat $1 | iconv -f cp1251 -t utf8
exit 0
v1251 имя_файла
.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 по прогрессивным технологиям
Как установить
а) поставьте пакет 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.
Скрипты, которые автоматизируют рутинные операции или помогают в работе.