notebook


[ Пред. ] [ Содержание ] [ След. ]

notebook



Сбрасываем пароль на рута в linux


1. В grub жмём `e'
2. Находим строку, что начинается с `kernel' и опять жмём `e'
3. В конец добавляем `init=/bin/sh'
4. Жмём `b' и дожидаемся приглашения командной строки
5. Вбиваем `mount -o remount rw /'
6. Пишем `passwd' и вводим новый пароль
7. reboot.

How to update kernel?


First you need to download a proper kernel tar pack located at the end of board download section (Kernel, U-boot, DTB). This example is for Cubietruck but it’s the same for all other boards – just grab a kernel pack for board of your choice.
mkdir 3.19.6
cd 3.19.6
wget http://mirror.igorpecovnik.com/kernel/archive/3.19.6-cubietruck-next.tar
tar xvf 3.19.6-cubietruck-next.tar
dpkg -i linux-image*.deb
If u-boot and dtb packets are not installed automatic, install them too:
dpkg -i linux-u-boot*.deb
dpkg -i linux-dtb*.deb
Optional:
dpkg -i linux-headers*.deb
Create some temporary directory
Go into it
Grab a kernel pack
Install at least linux-image
If pack refuses to install, uninstall it and try again.
Reboot.
Optional work after you boot into new kernel – only if you are planning to compile some kernel drivers.
cd /usr/src/linux-headers-$(uname -r)
make scripts


При установке соединения выполняется скрипт /etc/ssh/sshrc, причём помешать этому со стороны клиента невозможно. Создадим ещё один скрипт для оповещения и поместим команду для его запуска в /etc/ssh/sshrc:
/usr/local/alert/start.sh

Скрипт будет выводить сообщение с важной информацией через пакет notify-osd и включать привлекающую внимание сирену:
#!/bin/bash
export DISPLAY=:0
notify-send "Security Warning" "SSH Connection Established with \"$USER\" $(echo $SSH_CONNECTION | sed 's/\(.*\) \(.*\) \(.*\) \(.*\)/from \1:\2 to \3:\4/')" -u critical -i /usr/local/alert/icon.png
play /usr/local/alert/sound.wav > /dev/null 2>&1

480 x 270 (16:9)
1024 x 576 1,78 (16:9)
1152 x 648 1,78 (16:9)
1280 x 720 1,78 (16:9)
1536 x 864 1,78 (16:9)
1600 x 900 1,78 (16:9)
1920 x 1080 1,77 (16:9)
2048 x 1152 1,78 (16:9)
2560 x 1440 1,78 (16:9)
3840 x 2160 1,78 (16:9)

#подключение webdav YandexDisk
#Ставим утилиту davfs2:
sudo apt-get install davfs2
#Создаём папку, в которую будем монтировать наш Яндекс Диск:
mkdir /home/setapt/Yandexdisk
sudo gedit /etc/davfs2/secrets
#В конец файла дописываем параметры соединения с сервером:
#https://webdav.yandex.ru:443 логин_в_яндексе пароль_в_яндексе
sudo gedit /etc/fstab
#Добавляем строчку:
#https://webdav.yandex.ru:443 /home/setapt/Yandexdisk davfs uid=setapt,file_mode=640,dir_mode=755,user,noauto 0 0
#Заносим своего пользователя в группу davfs2:
sudo usermod -a -G davfs2 setapt
#Даём возможность запускать mount.davfs пользователю:
sudo chmod 4755 /usr/sbin/mount.davfs
#Пробуем монтировать от пользователя:
mount /home/setapt/Yandexdisk
#И размонтировать:
umount /home/setapt/Yandexdisk

Динамические библиотеки и зависимости
https://skeletor.org.ua/?p=1529
В Linux исполняемые файлы можно условно разделить на две группы – те, которые содержат в себе весь код, необходимые для работы, и те, которым необходимы разделяемые библиотеки. Первые называют статически собранными бинарными файлами, вторые называют динамически собранными исполняемыми файлами.
Статически собранные программы характеризуются тем, что могут корректно функционировать в любых условиях, и не зависят от наличия или отсутствия разделяемых библиотек, что может оказаться полезным в ситуациях, когда возникают конфликты версий разделяемых библиотек, или когда системные библиотеки повреждены или недоступны (например во время восстановления операционной системы после серьезного сбоя). К недостаткам таких исполняемых файлов следует отнести то, что они имеют значительный размер и для обновления программы необходимо полностью заменить ее исполняемый файл – например, если несколько статически собранных программ, которые работают с архивами ZIP, содержат ошибку, то для исправления ошибки необходимо заменить все эти программы, что может быть затруднено (например, будет трудно точно установить, какие именно программы содержат ошибочный код и нуждаются в обновлении). Кроме того, статически собранные программы не умеют совместно использовать совпадающие участки кода, что ведет к излишнему расходу системных ресурсов.
Динамически собранные исполняемые файлы для корректной работы требуют наличия файлов разделяемых библиотек, и соответственно при их отсутствии/повреждении не могут корректно функционировать, но зато для обновления программы и исправления ошибки часто оказывается достаточным просто заменить соответствующую разделяемую библиотеку, после чего ошибка исчезает во всех программах, которые эту библиотеку используют динамически. Динамически связанные программы также значительно меньше по объему, чем статически связанные, и код разделяемых библиотек может использоваться одновременно многими программами – что позволяет экономить системные ресурсы.
Подавляющее большинство программ в современных дистрибутивах Linux являются динамически собранными. Определить тип исполняемого файла (статический ли он либо с динамическим связыванием) можно, например, с помощью команды ldd:
# ldd /bin/su
linux-gate.so.1 => (0xb77d0000)
libpam.so.0 => /lib/libpam.so.0 (0xb77be000)
libpam_misc.so.0 => /lib/libpam_misc.so.0 (0xb77bb000)
libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb765f000)
libdl.so.2 => /lib/i686/cmov/libdl.so.2 (0xb765b000)
/lib/ld-linux.so.2 (0xb77d1000)
Но здесь нас подстерегает несколько НО:
1) Существует способ загрузки библиотек в обход ldd, функцией dlopen(). Такие библиотеки в выводе ldd не отображены.
2) Принцип работы ldd состоит в следующем: она устанавливает переменную окружения LD_TRACE_LOADED_OBJECTS, а затем запускает программу на исполнение. Входящий в libc загрузчик динамических библиотек (для GNU glibc это ld-linux.so) проверяет наличие этой переменной. Если она установлена, то вместо нормального запуска программы он выводит список используемых ею динамически подгружаемых библиотек и завершает работу.
То есть, мало того, что не все библиотеки (в идеале) мы сможем увидеть, так ещё и запускаем на исполнение файл! А если это руткит? Что же делать? Выход есть, правда не совсем удобный.
Выход первый (для пункта 2): использовать вместо ldd -> lddsafe (https://github.com/rg3/lddsafe) Скрипт использует objdump и безопасен, так как не запускает на исполнение проверяемую программу.
Выход второй (для пунктов 1 и 2): использовать команду strace. Правда вывод не такой удобный будет, как в случае с ldd.
Так же можно эту информацию получить и таким образом:
# readelf -d /sbin/fsck / grep 'NEEDED'
0x00000001 (NEEDED) Shared library: [libblkid.so.1]
0x00000001 (NEEDED) Shared library: [libc.so.6]
Для более детальной вычинки бинарника можно использовать утилиту objdump и strace.
Что же делать, если вы получаете сообщения такого плана:
error while loading shared libraries: xxxx.so.0
cannot open shared object file no such file or directory
Это значит, что нет подходящих библиотек. Но что делать, если они есть, а система их не находит? На помощь приходит утилита ldconfig, которая управляет динамическими библиотеками.
С помощью этой программы вы можете добавить свои библиотеки, просматривать кеш библиотек. Список подключаемых библиотек находится в файле /etc/ld.so.conf, а кеш (собственно откуда берут информацию /lib/ld-linux.so) — /etc/ld.so.cache.
Создать кэш
#ldconfig
Посмотреть список библиотек
# ldconfig -p | grep mysql
libmysqlclient_r.so.15 (libc6) => /usr/lib/libmysqlclient_r.so.15
libmysqlclient.so.15 (libc6) => /usr/lib/libmysqlclient.so.15
Так же можно использовать переменную окружения LD_LIBRARY_PATH.
Анатомия динамических библиотек Linux
https://www.ibm.com/developerworks/ru/library/l-dynamic-libraries/index.html
В Linux доступны разнообразные утилиты для вывода содержимого и анализа ELF-файлов (в том числе совместно используемых библиотек). Одна из самых полезных утилит – ldd, которая выдает список библиотек, от которых зависит данный ELF-объект. Например, для последнего примера вывод команды ldd будет выглядеть примерно так:
mtj@camus:~/dl$ ldd dl
linux-gate.so.1 => (0xffffe000)
libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb7fdb000)
libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7eac000)
/lib/ld-linux.so.2 (0xb7fe7000) mtj@camus:~/dl$
ldd сообщила нам, что ELF-файл dl зависит от библиотек linux-gate.so (специальный псевдофайл, который отвечает за обработку системных вызовов Linux и не принадлежит файловой системе), libdl.so (API динамической загрузки), libc.so (библиотека GNU C) и ld-linux.so.2 (динамический загрузчик Linux – он присутствует всегда, когда есть зависимости от совместно используемых библиотек).
Понять и вывести содержимое ELF-файла поможет мощная команда readelf. Одна из интересных возможностей этой команды – вывод списка перемещаемых элементов файла. Например, покажем, какие символы в нашей тестовой программе из листинга 2 требуют перемещения:
$ readelf -r dl
Relocation section '.rel.dyn' at offset 0x520 contains 2 entries:
(Раздел перемещения '.rel.dyn' со смещением 0x520 содержит 2 пункта:)
Offset Info Type Sym.Value Sym. Name
(Смещение) (Инфо) (Тип) (Знач.симв.)(Имя симв.)
08049a3c 00001806 R_386_GLOB_DAT 00000000 gmon_start
08049a78 00001405 R_386_COPY 08049a78 stdin
Relocation section '.rel.plt' at offset 0x530 contains 8 entries:
Offset Info Type Sym.Value Sym. Name
08049a4c 00000207 R_386_JUMP_SLOT 00000000 dlsym
08049a50 00000607 R_386_JUMP_SLOT 00000000 fgets
08049a54 00000b07 R_386_JUMP_SLOT 00000000 dlerror
08049a58 00000c07 R_386_JUMP_SLOT 00000000 __libc_start_main
08049a5c 00000e07 R_386_JUMP_SLOT 00000000 printf
08049a60 00001007 R_386_JUMP_SLOT 00000000 dlclose
08049a64 00001107 R_386_JUMP_SLOT 00000000 sscanf
08049a68 00001907 R_386_JUMP_SLOT 00000000 dlopen
mtj@camus:~/dl$
Из этого списка видно, что перемещения требуют различные вызовы библиотек C (libc.so), в том числе вызовы к libdl.so. Обратите внимание на __libc_start_main: это функция библиотеки C, которая вызывается перед main и производит всю необходимую инициализацию.
Среди других утилит упомянем objdump, которая печатает сведения об объектных файлах, и nm, служащую для вывода списка символов объектного файла (включая отладочную информацию). Кстати, можно запускать динамический компоновщик Linux прямо из командной строки, указав в параметре ELF-программу, которую требуется выполнить:
$ /lib/ld-linux.so.2 ./dl
> libm.so expf 0.0
1.000000
>
В добавок, ld-linux.so может выдать список зависимостей для ELF-файла – точно так же, как делает команда ldd. Для этого существует опция --list. Не забывайте, что ld-linux.so является просто исполняемым приложением, которое в нужный момент запускается ядром.
Библиотеки, утилита libtool
http://www.linuxcenter.ru/lib/books/linuxdev/linuxdev6.phtml
error while loading shared libraries: libcalculate.so.0: cannot open shared object file: No such file or directory
То есть, линкер знает путь /usr/local/lib, а загрузчик динамических библиотек его не знает. Это свойство большинства современных дистрибутивов. Путь к загружаемым библиотекам придётся добавлять в систему вручную. Это ужасно неудобно. Человек, впервые столкнувшийся с этой проблемой, будет долго думать, в чём дело. Сделано так, вероятно, в целях безопасности, чтобы «левая» библиотека, случайно установленная невнимательным пользователем, не вступила в конфликт с системными библиотеками. Разумеется, вы должны очень подробно описать эту ситуацию для пользователя в файле README.
Добавим вручную нужный нам путь. Для этого надо задать системной переменной LD_LIBRARY_PATH значение /usr/local/lib (по умолчанию эта переменная в большинстве версий Linux вообще отсутствует).
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
Если сделать lsof -a -p $(pidof websdr)
можно заметить соединение
websdr 4859 websdruser 15u IPv4 120346364 0t0 TCP websdr:35242->etgd-websdr.ewi.utwente.nl:http (ESTABLISHED)

меняет только группу
chgrp -R <имя> <каталог>


Разгон осциллографов Hantek до 200мГц

DATA=$(date '+%d.%m.%y_%H:%M:%S')
IFCONFIG=~/$(date '+%d.%m.%y_%H:%M:%S')-ifconfig.log
DMESG=~/$(date '+%d.%m.%y_%H:%M:%S')_dmesg.log
echo $DATA > $IFCONFIG
cat $IFCONFIG


Просмотр сведений о ходе передачи файла
Для того, чтобы наблюдать за ходом передачи файла, воспользуйтесь командой pv:
$ pv access.log | gzip > access.log.gz
611MB 0:00:11 [58.3MB/s] [=> ] 15% ETA 0:00:59

Планирование заданий
Планировать задания в Linux можно с помощью команды at:
echo wget https://sample.site/test.mp4 | at 2:00 PM
Для того, чтобы посмотреть ожидающие выполнения задания, воспользуйтесь командой atq.

Переименование или перемещение файлов
Если вам нужно быстро переименовать или переместить множество файлов с суффиксами — попробуйте команду следующего вида:
$ cp /home/sample.txt{,-old}
Вот как её можно расшифровать:
$ cp /home/sample.txt /home/sample.txt-old
Ниже приведён пример переименования файлов с определённым расширением в пакетном режиме:
$ ls
text_comes_here_1.txt
text_comes_here_2.txt
text_comes_here_3.txt
text_comes_here_4.txt
$ rename 's/comes_here/goes_there/' *.txt
$ ls
text_goes_there_1.txt
text_goes_there_2.txt
text_goes_there_3.txt
watch -n 40 'notify-send -i accessories-dictionary --expire-time=15000 "Яндекс переводчик " "типа чёта перевёл"'
команда для завершения процессов
xkill
Введите её, затем щёлкните по тому окну, которое нужно закрыть.
Отображает расположение исполняемого файла нужной программы
whereis.
Очистка содержимого файла без удаления самого файла
Если вы хотите очистить содержимое текстового файла, не удаляя сам файл, можете использовать следующую команду:
> filename
Выяснение наличия в директории файлов, содержащих определённый текст
Командная строка Linux поддерживает множество способов поиска информации. Однако, если вам просто нужно узнать, имеются ли в некоей директории файлы, которые содержат определённый текст, вы можете воспользоваться такой командой:
grep -Pri Search_Term path_to_directory


#!/bin/bash
. load_credentials
SLQ_REQUEST="
set line 1000
select name, lastlogin from users;
exit;"
sqlplus -s ${connstring} <<<"${SQL_REQUEST}"

КАК ЗАПУСТИТЬ ПРОЦЕСС В ФОНЕ LINUX
https://losst.ru/kak-zapustit-protsess-v-fone-linux
Работая в фоновом режиме, команда все равно продолжает выводить сообщения в терминал, из которого была запущена. Для этого она использует потоки stdout и stderr, которые можно закрыть при помощи следующего синтаксиса:
command > /dev/null 2>&1 &
Здесь >/dev/null 2>&1 обозначает, что stdout будет перенаправлен на /dev/null, а stderr — к stdout.
Узнать состояние всех остановленных и выполняемых в фоновом режиме задач в рамках текущей сессии терминала можно при помощи утилиты jobs c использованием опции -l:
jobs -l
В любое время можно вернуть процесс из фонового режима на передний план. Для этого служит команда fg:
fg
Если в фоновом режиме выполняется несколько программ, следует также указывать номер. Например:
fg %1
Для завершения фонового процесса применяют команду kill с номером программы:
kill %1
КАК ПЕРЕВЕСТИ ПРОЦЕСС В ФОНОВЫЙ РЕЖИМ
Если изначально процесс был запущен обычным способом, его можно перевести в фоновый режим, выполнив следующие действия:
Остановить выполнение команды, нажав комбинацию клавиш Ctrl+Z.
Перевести процесс в фоновый режим при помощи команды bg.
bg
РАБОТА ПРОЦЕССОВ В ФОНЕ
Запуск скрипта в фоне linux - это одно, но надо чтобы он ещё работал после закрытия терминала. Закрытие терминала путем нажатия на крестик в верхнем углу экрана влечет за собой завершение всех фоновых процессов. Впрочем, есть несколько способов сохранить их после того как связь с интерактивной оболочкой прервется. Первый способ — это удаление задачи из очереди заданий при помощи команды disown:
disown
Как и в предыдущих случаях, при наличии нескольких одновременно выполняемых процессов следует указывать номер того, относительно которого будет выполнено действие:
disown %1
Убедиться, что задачи больше нет в списке заданий, можно, использовав уже знакомую утилиту jobs -l. А чтобы просмотреть перечень всех запущенных процессов (в том числе и отключенных) применяется команда
ps aux
Второй способ сохранить запущенные процессы после прекращения работы терминала — команда nohup. Она выполняет другую команду, которая была указана в качестве аргумента, при этом игнорирует все сигналы SIGHUP (те, которые получает процесс при закрытии терминала). Для запуска команды в фоновом режиме нужно написать команду в виде:
nohup command &
<;f,fNerc2019>
<жабаТукс2019>

Измените текстовый редактор по умолчанию
select-editor
Select an editor. To change later, run 'select-editor'.
1. /usr/bin/vim.gtk
2. /bin/nano <---- easiest
3. /usr/bin/vim.basic
4. /usr/bin/mcedit
5. /usr/bin/vim.tiny
Choose 1-5 [2]:


http://vasilisc.com/tips_ubuntu#nominimize_conky
Для перенаправления лога 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
1. Откройте в Текстовом Редакторе файл ~/list_installed_package.txt, можно так gedit ~/list_installed_package.txt
2. Будьте аккуратны, если будете удалять пакеты! Смотрите, что удаляете и что будет удалено по зависимостям

Добавить ключи к репозиториям 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%D1%80://*address*/ на htt%D1%80://localhost:9977/*address*/ и сохраните изменения
например (не копируйте эти строки себе)
deb htt%D1%80://archive.ubuntu.com/ubuntu/ maverick main universe restricted multiverse
превращается
deb htt%D1%80://localhost:9977/archive.ubuntu.com/ubuntu/ maverick main universe restricted multiverse
d) теперь ставьте программы из репозитария как вам удобно, через Синаптик или apt-get.
e) можно периодически заходить браузером по адресу htt%D1%80://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_%D0%B0%D0%B4%D1%80%D0%B5%D1%81_%D0%BF%D1%80%D0%BE%D0%BA%D1%81%D0%B8:%D0%BF%D0%BE%D1%80%D1%82_%D0%BF%D1%80%D0%BE%D0%BA%D1%81%D0%B8";
Acquire::ftp::Proxy "http://user:password@IP_%D0%B0%D0%B4%D1%80%D0%B5%D1%81_%D0%BF%D1%80%D0%BE%D0%BA%D1%81%D0%B8:%D0%BF%D0%BE%D1%80%D1%82_%D0%BF%D1%80%D0%BE%D0%BA%D1%81%D0%B8";
Выбор редактора по умолчанию в 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 + B — Немедленно перезагружает систему. Без синхронизации и размонтирования дисков.
• Alt+SysRq+C — Крашит систему
• Alt+SysRq+E — посылает сигнал SIGTERM всем процессам кроме Init
• Alt+SysRq+I — посылает сигнал SIGKILL всем процессам кроме Init
• Alt+SysRq+O — выключает машину, но работает не на всех машинах
• Alt+SysRq+R — возвращает управление клавиатурой в случае сбора X сервера
• Alt+SysRq+U — перемонтирует файловые системы в Read-Only
• Alt+SysRq+S — записывает все кешированные данные на диск.
• Alt+SysRq+K — убивает все процессы в текущей консоли, ее можно использовать вместо Ctr+Alt+Backspace
• Alt+SysRq+N — сброс приоритета всех высоко приоритетных процессов
• Alt+SysRq+F — запускает механизм oom_kill, который уничтожит процесс занимающий очень много памяти.
• Alt+SysRq+T — вывести всю информацию о запущенных процессах на текущую консоль
• Alt+SysRq+L — посылает сигнал SIGKILL всем процессам включая Init.
• Alt+SysRq+P — ядро выдаст дамп текущего состояния регистров процессора в консоль

Желательно зависшую Linux машину перезагружать с помощью магических клавиш следующим способом
Alt + SysRq + R,E,I,S,U,B.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
В: Даже после выполнения этого, терминал ещё слишком маленький
О: В вашей домашней директории найдите файл .xsessionrc и добавьте в него
xrandr --dpi 180


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Запускаем раздачу интернета с интерфейса ppp0 на все доступные интерфейсы:

sudo iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
sudo sysctl -w net.ipv4.ip_forward=1


raspbian configuration for bridging eth0 and wlan0 interfaces
нажми сюданажми сюда
# /etc/network/interfaces
# Configured for bridging wifi<->ethernet
# Tested with:
# - RPi Model B Rev. 1
# - 2013-02-09-wheezy-raspbian
# - Edimax 8192-series USB wireless adapter
# - /etc/modprobe.d/8192cu.conf contents:
# - options 8192cu rtw_power_mgnt=0 rtw_enusbss=0
# - firmware: c2d133fb4efe9c9995da7fd7e1c45d74254f5c4b
# - installed using: https://github.com/Hexxeh/rpi-update
# - bridge-utils: sudo apt-get install bridge-utils
# Details, references, further info:
# - http://blog.chaucery.com/2013/02/raspberry-pi-wireless-bridge.html
auto lo
iface lo inet loopback
iface eth0 inet manual
auto wlan0
iface wlan0 inet manual
auto br0
iface br0 inet dhcp
bridge_ports wlan0 eth0
bridge_stp off
bridge_fd 0
bridge_waitport 0
wpa-iface wlan0
wpa-bridge br0
wpa-ssid "YourWifiSSID"
wpa-psk "YourWpaPassphrase"



I need to convert audio files to mp3 using ffmpeg.

When I write the command as ffmpeg -i audio.ogg -acodec mp3 newfile.mp3, I get the error:



















Содержание