Dec. 19th, 2011

По умолчанию в файловом менеджере PCManFm не предусмотрена функция поиска файлов. Но можно воспользоваться небольшой хитростью, и добавить в контекстное меню функцию поиска в папке.


Установите пакет:

    sudo apt-get install catfish

Создайте файл с правами рута:

    sudo gedit /usr/local/bin/folder-search.sh

В этот файл введите:

    #!/bin/sh
    catfish --fileman= pcmanfm  --path=$*

далее нужно дать права 755:

    sudo chmod 755 /usr/local/bin/folder-search.sh

Далее нужно создать файл "~/.local/share/applications/catfish-folder-handler.desktop":

    gedit ~/.local/share/applications/catfish-folder-handler.desktop

В этот файл введите:

    [Desktop Entry]
    Type=Application
    Name=Искать файл в папке
    Exec=/usr/local/bin/folder-search.sh %f
    Icon=catfish
    NoDisplay=true
    Encoding=UTF-8

Добавьте в конце файла ~/.local/share/applications/mimeapps.list

    inode/directory=catfish-folder-handler.desktop;

Готово. Теперь нажав на папку правой кнопкой появится пункт "Искать файл в папке".


PS.
ещё проще:

1. sudo apt-get install gnome-search-tool

2. nano ~/.local/share/applications/search-folder-handler.desktop

В этот файл введите:

[Desktop Entry]
Type=Application
Name=Искать файл в папке
Exec=/usr/bin/gnome-search-tool --path=%f%d
Icon=gsearchtool
NoDisplay=true
Encoding=UTF-8

3. Добавьте в конце файла ~/.local/share/applications/mimeapps.list

inode/directory=search-folder-handler.desktop;



посмотреть
https://wiki.archlinux.org/index.php/DOSBox_(Русский)
https://help.ubuntu.ru/wiki/dosbox
https://www.dosbox.com/wiki/Dosbox.conf
Russian languagefile+ Readme

Освобождение фокуса указателя
Если DOSBox захватил фокус указателя, нажмите Ctrl+F10, чтобы освободить его.

Русификация
В DOSBox вводим
keyb ru

А чтоб не вводить при каждом старте пишем в нем же
config -writeconf .dosboxrc

и уже в терминале
echo "keyb ru" >> ~/.dosboxrc

dosbox-0.74.conf




http://www.vdosplus.org/

autoexec.txt




config.txt




копируются шрифты lucon.ttf consola.ttf прямо в папку vDosPlus

тематические сайты
https://www.dosgames.com/
http://www.abandonia.com/
ftp://major.butt.care/mirrors/DOS%20Software/
http://alexfru.narod.ru/emiscdocs.html
http://www.old-games.ru/
http://old-dos.ru/
http://nostalgy.net.ru/
http://www.fdd5-25.net/


http://ttorrott.narod.ru/

sudo apt-get install tor tor-geoipdb privoxy vidalia
sudo echo "forward-socks4a / 127.0.0.1:9050 ." >> /etc/privoxy/config

sudo apt-get install rcconf
sudo rcconf
В появившемся консольном редакторе найти строку с tor и снять крестик с tor нажать ok

http://getfoxyproxy.org/downloads.html
http://check.torproject.org/




заглянуть

для понимания этой разницы нужно сделать следующие действия:
1) Переключись в консоль:
chvt 2
или нажав ctrl+alt+f2
2) Залогинься root (для простоты - можно и обычным пользователем)
3) Запусти X-сервер:
X :9 &
4) Вернись обратно в консоль:
нажав ctrl+alt+f2
5) Выполни
export DISPLAY=:9
и какою-нить графическую утилиту, например
xclock &
export DISPLAY=:9 && xclock &
6) Переключись обратно в X(:9)
нажав alt+f8 - это подойдет для многих дистрибутивов.
Точнее можно глянуть:
ps -fC X | grep ":9"
и нажать
Переключившись увидишь работу графической утилиты без всяких WM и DE.
7) Запусти WM:
перейдя в консоль alt+f2
kwin или metacity или twm или mwm или ... и тд
вернись в X (:9) - как в пункте 6 - и пойми что изменилось с появлением WM
8) Запусти DE:
перейдя в консоль alt+f2
startkde или gnome-session или ... и тд
вернись в X (:9) - как в пункте 6 - и пойми что изменилось с появлением DE

Красоту можно навести командами:
xsetbg /путь/к/красивой/картинке
Консоль запустить:
xterm -g -0-0
часики:
xclock -update 1 200x200-0+0
Приложения закрывать:
xkill

Запуск игр и программ в отдельных иксах:
startx xterm -- :1

запуск сессии
xinit -- :1
startx -- :1
xinit `which xterm` -- :1

сообщение в соседнюю консоль
echo "Привет" > /dev/tty2

usermod -aG audio,video,tty,input пользователь

https://wiki.archlinux.org/title/Xorg_(Русский)
чтобы запустить X через xinit
vi /etc/X11/Xwrapper.config
allowed_users=anybody
needs_root_rights=yes

Отдельная X-сессия на ubuntu 18.04
разрешить пользователю запускать иксы
sudo apt install xserver-xorg-legacy
sudo dpkg-reconfigure xserver-xorg-legacy (выбираем “кто угодно”)
echo "needs_root_rights = yes" | sudo tee --append /etc/X11/Xwrapper.config
sudo gpasswd -a $USER video (добавляем пользователя в группу Video)
sudo gpasswd -a $USER audio (добавляем пользователя в группу Audio)
sudo reboot (компьютер будет перезагружен)
startx "ваша_программа_или_игра" -- :1
https://portwine-linux.ru/category/portwine-linux/

chvt переход в tty без ctrl+alt+F.. блокировка tty
How to change between TTY (virtual terminal) on Linux guest VMs when using a console launched from Prism Element
В Linux соединения с операционной системой могут быть выполнены:
сеанс физического терминала / сеанс консоли
сеанс псевдо-терминала, такой как SSH, xterm (для X-Windows)
сеанс виртуального аппаратного терминала

Чтобы показать идентификацию этих разных соединений, используйте команду «w»:
Обратитесь к столбцу TTY:
tty2 и tty3 относятся к сеансам виртуального терминала
:0 относится к физическому терминалу, или в этом случае консоль, запущенная из Prism Element
pts/0 и pts/2 относятся к сеансам псевдотерминала, который является видимым сеансом терминала (см. столбец FROM: 0), и к удаленному сеансу SSH

выполните в эмуляторе терминала (напр. xterm) sudo chvt 2 чтобы перейти к TTY2, это аналог ctrl+alt+F2 для перехода в /dev/tty2
затем в TTY2 ввести chvt 7 для перехода обратно в графическую консоль

Завершить процесс (kill) tty в Unix/Linux
w
who -la
skill -KILL -v pts/4
pkill -9 -t pts/0
ps -ft pts/0
kill -9 9721
killall -u username
pkill -U username
loginctl kill-user username

https://wiki.archlinux.org/index.php/Xorg#Block_TTY_access
Чтобы заблокировать доступ tty в X, добавьте следующее в xorg.conf
Section "ServerFlags"
    Option "DontVTSwitch" "True"
EndSection

Запретить пользователю убивать X
добавьте в xorg.conf следующее:
Section "ServerFlags"
    Option "DontZap"      "True"
EndSection


Как заблокировать сеансы виртуальной консоли в Linux
sudo apt-get install vlock
a — Блокировать все сеансы виртуальной консоли,
c — заблокировать текущий сеанс виртуальной консоли,
n — Переключиться на новую пустую консоль, прежде чем блокировать все сеансы,
s — Отключить механизм ключа SysRq,
t — указать тайм-аут для плагинов заставки,
h — Показать раздел справки,
v — Показать версию.


для подключения к pty следует использовать клиент ttysnoop
ttysnoop /dev/pts/0
tty -s && echo "Внутри tty"

openvt — запустить программу на новом виртуальном терминале
openvt [-c номер_vt] [-s] [-u] [-l] [-v] [--] команда параметры_команды
openvt -f -c 9 -- eсho "12345"

https://serverfault.com/questions/19634/how-to-reconnect-to-a-disconnected-ssh-session
Как повторно подключиться к отключенному сеансу SSH
tty
apt install reptyr
ps -aux |grep 'pts/3'
reptyr -T 6447
_______________________________________________________________________

1) X-ов можно хоть сотню запустить - главное что у них разный ":цифра" - номер дисплея.
9) Для kwin, metacity и тд - тоже нужно чтобы задана была переменная DISPLAY - раз уж пошел в другую консоль, задай там эту переменную тоже.

_________________________________________________________________________

клиент-серверная архитектура X11 позволяет сделать это
ssh -X remotehost xterm

https://wiki.archlinux.org/index.php/Xorg
https://xneur.ru/settings
Чтобы запустить вложенный сеанс другой среды рабочего стола:
$ /usr/bin/Xnest :1 -geometry 1024x768+0+0 -ac -name Windowmaker & wmaker -display :1
$ Xephyr :1 -geometry 1024x768+0+0 -ac -name Windowmaker & wmaker -display :1
Это запустит сеанс Window Maker в окне 1024 на 768 в текущем сеансе X.
опция -ac позволяет удалённым клиентам подключаться к вашему X-серверу
$ Xephyr -query localhost -screen 800x600 :1 Если localhost – это XDMCP сервер, 800x600 – требуемое разрешение, а :1 – номер дисплея (можно использовать любой свободный номер)
в одном окне консоли вбить Xephyr :2
в другом xterm -display :2
Xephyr :2 -screen 1024x768+0+0 -resizeable & fluxbox -display :2
Xephyr :2 -geometry 1280x1024+0+0 -resizeable & fluxbox -display :2
DISPLAY=:2 fvwm1 &

узнать № дисплея сеанса:
echo $DISPLAY
cat /proc/$$/environ | tr '\0' '\n' | grep '^DISPLAY='

запуск хрома из snap (сходный механизм и у других приложений)
xhost +si:localuser:root
xhost +si:localuser:пользователь

export PATH="/snap/bin/:$PATH"
echo $DISPLAY
xhost +si:localuser:пользователь
export DISPLAY=:10 && chromium &

nano $HOME/bin/chromium.sh



chmod +x $HOME/bin/chromium.sh

https://linux-notes.org/utilita-xhost-v-unix-linux/
vi ~/.xinitrc
#!/bin/bash
xhost +si:localuser:root &
xhost +si:localuser:пользователь &

ошибка при запуске с sudo или su
"Не удалось подключиться к: В соединении отказано Ошибка инициализации GTK."
export XAUTHORITY=$HOME/.Xauthority
sudo программа

раскладка
setxkbmap -layout "us,ru" -option "alt_shift_toggle,grp_led:scroll"

setxkbmap -model pc105 -layout "us,ru" -variant ",winkeys" -option "grp:alt_shift_toggle"

Параметры "XkbOptions"
Параметры "XkbOptions"
Варианты переключателей между языками в файле /etc/X11/xorg.conf
grp:toggle - переключение правым Alt;
grp:shift_toggle - двумя клавишами shift;
grp:ctrl_shift_toggle - ctrl+shift;
grp:alt_shift_toggle - alt+shift;
grp:ctrl_alt_toggle - ctrl+alt;
grp:caps_toggle - переключение по CapsLock;
grp:lwin_toggle - переключение по левой "Win" клавише на Windows клавиатуре (для X Window старше 4.2);
grp:rwin_toggle - переключение по правой "Win" клавише на Windows клавиатуре (для X Window старше 4.2);
grp:menu_toggle - переключение по клавише "Контекстное меню" на Windows клавиатуре (для X Window старше 4.2);
grp:lctrl_toggle переключение по левой клавише Control
grp:rctrl_toggle переключение по правой клавише Control
grp:switch - переключение по правому Alt только на момент нажатия
grp:lwin_switch - переключение по левой клавише Windows только на момент нажатия
grp:rwin_switch - переключение по правой клавише Windows только на момент нажатия
grp:win_switch - переключение по любой клавише Windows только на момент нажатия
Возможные значения grp_led:
grp_led - использовать индикаторы на клавиатуре для показания изменения группы
grp_led:num - индикатор Num_Lock показывает изменения группы
grp_led:caps - индикатор Caps_Lock показывает изменение группы
grp_led:scroll - индикатор Scroll_Lock показывает изменение группы


:: /etc/X11/xorg.conf ::
...
Section "InputDevice"
...
Option "XkbOptions" "grp:switch,grp:caps_toggle,grp_led:scroll"
...
EndSection
...



локаль

echo 'export LANG=en_US.utf8' >> ~/.profile
source ~/.profile

Локаль Системы По Умолчанию
https://www.shellhacks.com/ru/linux-define-locale-language-settings/
Ubuntu-18.04 и CentOS-7
localectl set-locale LANG=en_US.utf8

Ubuntu-14.04
/etc/default/locale
LANG="en_US.utf8"

CentOS-6
/etc/sysconfig/i18n
LANG="en_US.utf8"


export LANG = "ru_RU.UTF-8"
export LC_ALL = "ru_RU.UTF-8"
export LC_COLLATE = "ru_RU.UTF-8 "


разрешение экрана в tty

grep vga /proc/cmdline
grep -ir vga /etc/modprobe.d/
Вывод обеих команд должен быть пустым
sudo apt-get install v86d

hwinfo --framebuffer

nano /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="vga=795"
GRUB_GFXMODE=1280x1024x32
GRUB_GFXPAYLOAD_LINUX=keep

sudo update-grub

lsmod | grep drm

sudo apt install fbset
vi /etc/fb.modes
fbset --test
fbset --help
fbset -xres 1280 -yres 1024 -depth 32
mplayer video.avi -vo fbdev2 -bpp 32


xrandr
Настройка основного монитора в Ubuntu без xrandr
xrandr --query # Возвращает список моих мониторов
xrandr --output <monitor identifier> --primary # установить основной

пример команды, для hdmi
xrandr --output eDP-1 --auto --output HDMI-1 --auto --same-as eDP-1


ssh
установка XRDP, VNC и SSH на Ubuntu и Debian
$ sudo apt install openssh-server
$ sudo systemctl enable sshd

$ ssh user@192.168.88.10
$ export DISPLAY=:0
$ nohup chromium "ya.ru"
$ ssh 192.168.0.100 'DISPLAY=:0 nohup vlc $HOME/Музыка/04\ Kadavergehorsam.mp3
$ ssh 192.168.0.100 'DISPLAY=:0 nohup notify-send "Hello" "World"'
$ ssh пользователь@комп 'команда1; команда2; команда3'
$ ssh root@192.168.88.10 'bash -s' < script.sh
$ ssh root@192.168.88.10 'uptime; df -h; free -m | cat /proc/loadavg'
$ ssh root@192.168.88.10 'reboot'
$ ssh user@192.168.88.10 "bash -s -- $args" < "$script"

Запуск графических приложений через SSH (X11Forwarding)
Настройка сервера
/etc/ssh/sshd_config
...
X11Forwarding yes
...
Перезагрузка
/etc/init.d/sshd restart

Настройка клиента
/etc/ssh/ssh_config
...
ForwardX11 yes

Запуск
Заходим на удаленный хост и потом запускаем приложение kopete

ssh -XC user1@remotehost
xterm
Сразу запустить приложение xterm

ssh -XC user1@remotehost "xterm"
Опции:
X : перенаправлять графический вывод
С : компрессия передаваемых данных

Запуск графических приложений Wayland через SSH https://gitlab.freedesktop.org/mstoeckl/waypipe https://man.archlinux.org/man/extra/waypipe/waypipe.1.en waypipe ssh -C user@server weston-terminal Waypipe должен быть установлен как на стороне клиента, так и на стороне сервера - один экземпляр выступает в роли сервера Wayland, а второй клиента Wayland.
Подключение к рабочему столу Linux Ubuntu с использованием XDMCP. nano /etc/lightdm/lightdm.conf Для разрешения TCP-подключений к графическому серверу X11, нужно в файл конфигурации lightdm.conf добавить строку : xserver-allow-tcp=true Для разрешения удаленных подключений к менеджеру дисплея нужно добавить секцию [XDMCPServer] enabled=true service lightdm restart netstat –na | more XDMCP и принимает входящие подключения на UDP порт 177 (по умолчанию) , а графический сервер (сервер X11 ) – принимает входящие подключения на порт 6000/TCP


Как "освободить" клавиши Ctrl+C, Ctrl+V, Ctrl+X в терминале
Вот какие действия обычно поддерживает любой Linux-терминал:

  • intr - Послать сигнал прерывания текущего процесса

  • quit - Послать сигнал выхода

  • erase - Удалить последний введенный символ

  • kill - Удалить текущую строку

  • eof - Послать конец файла (завершить ввод)

  • eol - Конец строки

  • eol2 - Альтернативный символ конца строки (Не-POSIX)

  • swtch - Переключиться на другой уровень оболочки (Не-POSIX)

  • start - Запустить вывод далее, если он был приостановлен

  • stop - Приостановить вывод

  • susp - Послать сигнал остановки терминала

  • dsusp - Послать сигнал остановки терминала после сброса ввода (Не-POSIX)

  • rprnt - Перерисовать текущую строку (Не-POSIX)

  • werase - Удалить последнее введенное слово (Не-POSIX)

  • lnext - Протолкнуть в ввод следующий символ, даже если это специальный символ


Чтобы узнать, к каким комбинациям клавиш привязаны действия, можно дать команду:
# stty -a
Сия команда выведет на консоль примерно такой текст:
speed 38400 baud; rows 35; columns 110; line = 0;
intr = ^C; quit = ^; erase = ^?; kill = ^U; ....

из него видно, что заняты комбинации клавиш Ctrl+C (^C) и Ctrl+V (^V) (а Ctrl+X, кстати, свободна).

Если писать точнее, то мы видим, что:
При нажатии комбинации Ctrl+C происходит действие intr. Действие intr означает отправку сигнала SIGINT, который сигнализирует консольной программе что нужно завершить работу.
При нажатии комбинации Ctrl+V происходит действие lnext. Это действие означает, что следующий вводимый символ надо воспринимать как символ, а не как команду (Последовательное нажатие Ctrl+V и Ctrl+A протолкнет в терминал символ ^A, имеющий код 01h).
Что мы должны сделать в такой ситуации, чтобы освободить Ctrl+C и Ctrl+V? Вначале подумать, а нужны ли нам действия intr и lnext. Действие intr вроде как нужно. А возникала ли у вас хоть раз необходимость в действии lnext? Нет? Значит, ненужно.
Почитав невнятную документацию по программе stty, кое-как можно понять, что для освобождения комбинации Ctrl+V нужно просто удалить привязанное к комбинации действие lnext. Для этого нужно воспользоваться командой:
# stty lnext undef

stty может перенастраиваться только на 26 букв латинского алфавита (и, возможно на некоторые знаки препинания), которые можно задавать десятичными кодами 1-26. Например, команда "stty intr 10" задаст для действия intr комбинацию Ctrl+J, т.к. буква J - десятая буква в латинском алфавите.
настроим действие intr на комбинацию Ctrl+Q (ибо Q - это "quit", "выход").
Обратите внимание, что команда "stty -a" показывает, что Ctrl+Q сопоставлено с действием start. Это действие вызывает команду "продолжать вывод на теринал после приостановки вывода" (приостановка вывода делается с помощью действия stop клавишами Ctrl+S).

Сначала нужно освободить комбинацию клавиш Ctrl+Q от действия start
# stty start undef

Затем выполняем команду:
# stty intr ^Q

и после нее, сразу, прерывание программы будет работать по Ctrl+Q (вместо традиционного для консоли Ctrl+C). Работу комбинации Ctrl+Q можно проверить на любой подходящей программе cat, top, и т.д.
Теперь вышеуказанные команды мы можем поместить в файл .bashrc в домашней директории, и терминал с этого момента будет запускаться со свободными комбинациями Ctrl+C и Ctrl+V.

https://gitlab.freedesktop.org/xorg/xserver
http://ftp.xfree86.org/pub/XFree86/
https://gitlab.freedesktop.org/wayland/wayland
https://github.com/canonical/mir
https://github.com/ghaerr/microwindows/
https://github.com/sidorares/node-x11

The Linux Graphics Stack
Графический стек Linux
Что придет на замену X Window System?
Wayland на замену X Window System
Вперед в будущее: Wayland против X11

Виртуальные твари и места их обитания: прошлое и настоящее TTY в Linux
Оболочка и терминал Unix — это одно и то же?
Hello, World! Глубокое погружение в Терминалы
Linux: Difference between /dev/console , /dev/tty and /dev/tty0
Глава 18, TTY драйверы
Команды управления терминалом
Text-Terminal-HOWTO
Хрестоматия по программированию на Си в Unix 6.4. Сигналы.
Сетевые соединения X11

установка XRDP, VNC и SSH на Ubuntu и Debian.
скриншоты в иксах и консоли, разрешение экрана в tty
рабочий стол в консоли

    ____       _       __     __    ______                     _____   
   / __ \__  _| |     / /__  / /_  / ____/___  ____  __  __   /__  /   
  / /_/ / / / / | /| / / _ \/ __ \/ /   / __ \/ __ \/ / / /     / /    
 / ____/ /_/ /| |/ |/ /  __/ /_/ / /___/ /_/ / /_/ / /_/ /     / /     
/_/    \__, / |__/|__/\___/_.___/\____/\____/ .___/\__, /     /_/      
      /____/                               /_/    /____/               


раскрыть
https://github.com/rajatomar788/pywebcopy/

pip install pywebcopy
pip install validators



взято тут


Как очистить CD-RW/DVD-RW

Предполагается, что CD/DVD-ROM смонтирован в /dev/cdrom

sudo umount /dev/cdrom
cdrecord dev=/dev/cdrom blank=fast

Как записать файлы/папки на CD/DVD?

nautilus burn:///

* File Browser: CD/DVD Creator

* Перетащите в окно файлы/папки

File Menu -> Write to Disc... -> Write

Как записать файлы образов (ISO) на CD/DVD?

Кликните правой кнопкой мыши на файле образа (ISO) -> Write to Disc... -> Write

Как сделать копию CD/DVD?

Как создать файлы образов (ISO) CD/DVD?

Предполагается, что CD/DVD-ROM смонтирован в /dev/cdrom

sudo umount /dev/cdrom
dd if=/dev/cdrom of=file.iso bs=1024

чтобы был виден процесс копирования
dd if=/dev/cdrom |pv| dd of=disk.iso
Read more... )


в консоли набрать ffmpeg -i video_in.avi audio_out.mp3

или вставить в меню наутилуса:

   1. Устанавливаем пакет nautilus-actions
   2. Запускаем Система/Параметры/настройка действий в Nautilus
   3. Жмем кнопку “Добавить”
   4. Заполняем поля
   5. Изменяем профайл Main
   6. На закладке “Actions” указываем путь /usr/bin/convert.sh
   7. Там же указываем аргументы: %d/%f
   8. На закладке  “Условия” указываем шаблоны файлов: *.avi ; *.flv ; *.iflv ; *.mpg ; *.mpeg; *.wmv
   9. Размещаем в /usr/bin ниже прилагаемый шелл-скрипт convert.sh
  10. Размещаем в /usr/share/convert.sh прилагаемый awk-скрипт convert.awk

Для работы скрипта требуются пакеты mplayer, mencoder, xdialog.

Теперь в контекстном меню для указанных файлов появится новый пункт меню. Звуковая дорожка видео-ролика появится после отработки скрипта в том же каталоге, что и видео-файл. Название аудиофайла будет такое же, как у видео, с добавлением расширения .mp3.

Теперь, собственно, сам скрипт convert.sh:
Read more... )


С использованием genisoimage

sudo apt-get install genisoimage

Создаем ISO образ

genisoimage -o output_image.iso directory_name

output_image.iso — имя будущего образа
directory_name — из какой директории создавать

Эта команда создаст образ, который будет содержать файлы file1, file2 и file3, без корневой директории

genisoimage -R -o output_image.iso file1 file2 file3

Еще одина полезная опция -R, которая использует протокол Rock Ridge, чтобы сохранить права собственности и разрешение записи

genisoimage -R -o output_image.iso file1 file2 file3

Создание ISO CD/DVD образов с помощью утилиты DD

dd if=/dev/cdrom of=~/cd_image.iso

if — устройство cdrom может называться по разному, например /dev/cdrw, /dev/scd0
of — куда и с каким именем сохраняем

чтобы был виден процесс копирования



новая опция status=progress
dd if=/dev/cdrom of=disk.iso status=progress

cp с прогрессбаром на питоне
https://github.com/yannicklm/pycp

Кроме того можно создать образ с аудио диска с помощью следующей команды

cat /dev/scd0 > ~/audio_image.iso


создание архива:

tar -zcvf название_архива.tar.gz папка/
tar -jcvf название_архива.tar.bz2 папка/

сжатие нескольких папок:

tar -czvf название_архива.tar.gz папка1/ папка2/
tar -cjvf название_архива.tar.bz2 папка1/ папка2/

разархивирование

tar -zxvf название_архива.tar.gz
tar -jxvf название_архива.tar.bz2

проверка архива

tar -zvtf название_архива.tar.gz
tar -jvtf название_архива.tar.bz2

Иногда из tar-архивов (.tar, .tar.gz, .tar.bz2) очень больших объемов требуется извлечь несколько определенных файлов. В таких случаях разархивировать исходный tar целиком не имеет смысла
для этого необходимо перечислить нужные файлы в качестве аргументов tar после самого имени архива. Например:

tar -xf archive.tar myfile1 dir2/myfile2

Эта команда извлечет из архива archive.tar файлы myfile1 и dir2/myfile2. В случае со сжатым архивом все делается аналогичным образом — добавляются соответствующие ключи: «z» для .gz (gzip) и «j» для .bz2 (bzip2).

для точного указания названия файла и полного пути к нему в архиве, нужно набрать эту команду:

tar -tf archive.tar

для поиска нужного файла по части его названия и пути следует использовать конвеер grep или egrep

Краткая памятка по работе с архиваторами из консоли в Linux


http://ru.wikipedia.org/wiki/RTMP
Cкачать видео, которе передаётся как rtmp-поток с Flash Media Server и в кеш броузера не попадает. Пример: tv.adobe.com.
Решение:
Запускаем

$ sudo tcpdump -eflAi eth0 -s 0 -w- | strings | grep -ao «rtmp://.\+.flv»

и открываем в броузере интересующие линки с tv.adobe.com
Когда все линки получены, можно воспользоваться программой rtmpdump.

(дебиан)http://packages.debian.org/ru/sid/main/rtmpdump

(из сырцов http://lkcl.net/rtmp/rtmpdump-1.9.tgz)

$ sudo apt-get install libboost-thread-dev libssl-dev
$ make linux

и запустить:

$ ./rtmpdump -r «rtmp://edge.tv.adobe.com/ondemand/media/adobetv2/C65F42BC-1C23-D1F3-EFAADD699EBF56FF.flv» -o «Что нового в Lightroom 3.flv»

p.s. Но в случае именно с tv.adobe.com можно поступить проще, т.к., на клиента передаются ещё и http-линки (возможно, для совместимости):
$ sudo tcpdump -eflAi eth0 -s 0 -w- | strings | grep -ao "http://.\+.flv"

p.p.s. Вероятно, strings, можно заменить и на col -b


Иногда бывает нужно собрать пакет с какими либо файлами, из которых скомпилировать ничего нельзя. например самописные bash-скрипты, файл с public ключами ssh… или можно так же паковать архивы.

в рассмотренном примере будет создан deb пакет с:
1) конфигурационными файлами nginx с нашего сервера
2) файл с public ключами для авторизации обладателей закрытой части этих ключей на сервере рутом
3) скрипт /usr/bin/ourscript.sh (неважно что он делает, по сути)
Read more... )


update-alternatives –config

Как изменить редактор по умолчанию в Debian/Ubuntu?
sudo update-alternatives –config editor. и выбрать текстовый редактор

либо заменить пути символических ссылок в каталоге /etc/


cat /usr/share/applications/exo-web-browser.desktop
xdg-settings get default-web-browser
xdg-mime default debian-sensible-browser.desktop x-scheme-handler/https
xdg-mime default debian-sensible-browser.desktop x-scheme-handler/http
xdg-mime query default application/x-mimearchive

mimeopen -d file.mhtml
mimeopen -D file.mhtml
Будет задан вопрос, какое приложение использовать при открытии /path/to/file:
Выбранное приложение будет обработчиком по умолчанию для данного типа файлов

xdg-open https://archlinux.org

https://askubuntu.com/questions/18418/how-can-i-set-which-application-is-launched-by-xdg-open
mimetype *.html
xdg-open http://example.com
cat /usr/share/xfce4/helpers/debian-sensible-browser.desktop
sudo update-alternatives --config x-www-browser
sudo update-alternatives --config gnome-www-browser

xdg-mime:
xdg-mime query default x-scheme-handler/http
chromium.desktop
xdg-mime query default x-scheme-handler/https
chromium.desktop

xdg-mime default chromium.desktop 'x-scheme-handler/http'
xdg-mime default chromium.desktop 'x-scheme-handler/https'

BROWSER переменная окружения
sensible-browser( /usr/bin/sensible-browser, скрипт-оболочка, который пытается запустить некоторые другие элементы в этом списке)
gnome-www-browser( /usr/bin/gnome-www-browser, символическая ссылка на /etc/alternatives/gnome-www-browser)
x-www-browser( /usr/bin/x-www-browser, символическая ссылка на/etc/alternatives/x-www-browser
www-browser( /usr/bin/www-browser, символическая ссылка на /etc/alternatives/www-browser)
update-alternatives --get-selections

Настройка xdg-open под свой файловый менеджер


добавить ключ
При добавлении стороннего репозитория, в целях безопасности в ОС Debian и Ubuntu, принято добавлять ключ репозитория.
Очень часто на сайтах и
блогах выкладывают ссылки на репозитории, но ссылка на ключ не приводится.
Из-за чего возникают некрасивые надписи и различные ошибки в конце процесса обновления пакетов.

Если после обновления у Вас на экране возникает ошибка примерно следующего содержания:

Ошибка: http://wine.budgetdedicated.com jaunty Release: Следующие подписи не могут быть проверены, так как недоступен открытый ключ: NO_PUBKEY 58403026387EE263
Вы можете запустить 'apt-get update' для исправления этих ошибок

В данном примере не найден открытый ключ репозитория Wine. Адрес репозитория http://wine.budgetdedicated.com, публичный ключ 58403026387EE263. В вашем случае адрес и код ключа могут отличаться.
Для решения сложившейся проблемы нам потребуется:

1. Проверить упоминание ключа на официальных серверах. Это требуется для подтверждения подлинности репозитория.

Серверы расположены в порядке значимости, поэтому нахождение ключа хотя бы на одном сервере является положительным результатом.
# gpg --keyserver keyserver.ubuntu.com --recv 58403026387EE263
# gpg --keyserver pgp.mit.edu --recv 58403026387EE263
# gpg --keyserver keyserver.pgp.com --recv 58403026387EE263

В ответ на экране должно отобразиться следующее:

gpg: запрашиваю ключ 387EE263 с hkp сервера keyserver.ubuntu.com
gpg: ключ 387EE263: "Scott Ritchie " не изменен
gpg: Всего обработано: 1
gpg: неизмененных: 1

Эти строки говорят , что ключ найден и подлинность репозитория подтверждена. В общем случае, информация выведенная на экран в дальнейшем не пригодится.

Об особых случаях будет рассказано ниже.

2. Следующим этапом добавляем недостающий ключ репозитория:
# gpg --export --armor 58403026387EE263 | sudo apt-key add -

В особых случаях добавить ключ репозитория в операционную систему будет эффективнее командой:

# sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 387EE263

где используется имя key-сервера нашедшего ключ и число отмеченное в пункте №1.

В результате всех вышеизложенных действий проблема поиска недостающего ключа репозитория исчезнет навсегда.

вот ещё вариант того же самого:

gpg --keyserver subkeys.pgp.net --recv-keys 07DC563D1F41B907

gpg --export 07DC563D1F41B907 | apt-key add -

или

gpg --keyserver subkeys.pgp.net --recv-keys 07DC563D1F41B907 && gpg --export 07DC563D1F41B907 | apt-key add -

в случае если есть ссылка на ключ:
wget -O - http://deb.opera.com/archive.key | apt-key add -

(trinity kde3 )
apt-key adv --keyserver keyserver.quickbuild.pearsoncomputing.net --recv-keys 2B8638D0

(python 2.4 и 2.5)
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 5BB92C09DB82666C

добавить недостающие ключи
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com `sudo aptitude update 2>&1 | grep -o '[0-9A-Z]\{16\}$' | xargs`

раблта с ключами
Содержание папки ~/.gnupg



openpgp-revocs.d/
Хранит ревокационные сертификаты — файлы, которые позволяют отозвать ключ, если ты потеряешь доступ к закрытому ключу.
Здесь GPG хранит отзывные (revocation) сертификаты — они нужны, чтобы отозвать ключ, если ты потерял доступ к закрытому ключу или считаешь его скомпрометированным.
Почему только один файл?
Ревокация всегда делается только для основного ключа (primary key). Подключи автоматически считаются отозванными, если отозван основной.
Файл имеет имя вроде:

1A95AEC441F587EFCF0E01C2470F283D2ED5D036.rev
Обрати внимание, что в конце хеша файла rev тот же ID, что и у основного ключа 470F283D2ED5D036.

private-keys-v1.d/
Здесь хранятся закрытые ключи в зашифрованном виде, каждый в виде отдельного файла.
Каждый файл представляет собой один криптографический ключ (ключевой материал), например:
Основной (primary) ключ (обычно используется для подписи и сертификации)
Подключи (subkeys), например для шифрования или подписи

Можно узнать, кто есть кто:

gpg --list-secret-keys --keyid-format LONG
Пример вывода:



sec — основной секретный ключ ([SC] — может Sign и Certify)
ssb — подчинённый ключ ([E] — может Encrypt)

Идентификаторы 470F283D2ED5D036 и 842EF49E соответствуют хэшам имён файлов в private-keys-v1.d.

Тип ключа Хранится в private-keys-v1.d/ Ревокационный сертификат
Основной ✅ (по Keygrip) ✅ (по fingerprint)
Подключ ✅ (по Keygrip) ❌ (отзывается через основной ключ)

pubring.kbx и pubring.kbx~
Это ключевые кольца, содержащие открытые ключи (твой и других, которых ты импортировал). Файл с ~ — резервная копия.

trustdb.gpg
База данных уровня доверия ключам (насколько ты доверяешь владельцам других ключей).


добавить ключ
sudo apt-key add repo.asc

В Ubuntu 20.04+ команда apt-key устарела и не рекомендуется к использованию
sudo mkdir -p /etc/apt/keyrings
curl -fsSL http://адрес_репы/название_репы/repo.gpg | sudo tee /etc/apt/keyrings/repo.gpg > /dev/null

/etc/apt/sources.list.d/build-system.list:
deb [signed-by=/etc/apt/keyrings/repo.gpg] http://адрес_репы/название_репы/repo название_репы main

проверить ключ в repo.gpg:
gpg --show-keys /etc/apt/keyrings/repo.gpg

удалить ключ
находим ключ
sudo apt-key list | grep -A 1 "My Repo"



удаляем пробелы из fingerprint:
ABCD1234567890EF1234567890EFABCD12345678

берём последние 8 символов:
12345678

удаляем ключ:
sudo apt-key del 12345678

конвертировать ключ
gpg --dearmor < repo.asc > repo.gpg

конвертировать обратно
gpg --no-default-keyring --keyring ./temp-keyring.gpg --import repo.gpg
gpg --no-default-keyring --keyring ./temp-keyring.gpg --armor --export > repo.asc

Проверить наличие ключей:
gpg --list-keys --keyid-format short
gpg --list-secret-keys --keyid-format=long
gpg --list-secret-keys --with-keygrip


Если нужен именно полный идентификатор (полный fingerprint) для точного экспорта и доверия
gpg --list-keys --with-fingerprint

Пример:



Здесь:
ABCD1234567890EF1234567890EFABCD12345678 — отпечаток (используется для точной идентификации).

Для экспорта лучше использовать его:
gpg --armor --export ABCD1234567890EF1234567890EFABCD12345678 > repo.asc

Создайть новый ключ:
gpg --full-generate-key

Импортировать ключ
gpg --import <файл с ключом>
gpg --batch --import /папка/ключ.gpg
gpg --batch --allow-secret-key-import --import /папка/ключ.gpg

Указать ключ для использования:
git config --global user.signingkey <keyid>

Подписать репу ключём
gpg --batch --yes --pinentry-mode loopback --passphrase пароль -abs --cipher-algo AES --digest-algo SHA512 -o Release.gpg Release
gpg --batch --yes --pinentry-mode loopback --passphrase пароль -abs --cipher-algo AES --digest-algo SHA512 -o Packages.gpg Packages

Создать ключ репы
gpg --export идентификатор > repo.gpg # например почта, полный fingerprint или последние 8 символов
gpg --armor --export идентификатор > repo.asc

Создать резервную копию ключей
Сохраним публичный и секретный ключи в ASCII-файлы.
gpg --armor --export your_email@example.com > public_key_backup.asc

# Закрытый (секретный) ключ
gpg --armor --export-secret-keys your_email@example.com > private_key_backup.asc
Важно: файл private_key_backup.asc должен храниться в зашифрованном архиве или на офлайн-носителе.

получить из закрытого открытый ключ
есть файл ключа
-----BEGIN PGP PRIVATE KEY BLOCK-----
...
-----END PGP PRIVATE KEY BLOCK-----

импортировать закрытый ключ
gpg --import private.key

Если ключ защищён паролем, GPG запросит его. После импорта закрытого ключа GPG автоматически добавит соответствующий открытый ключ в ваше ключевой кольцо.

gpg --list-secret-keys

Вывод будет примерно таким:



Здесь 1234ABCD5678EFGH — это идентификатор ключа. Используйте его для экспорта открытого ключа в файл, например, public.key:

экспортировать публичный ключ
gpg --armor --export 1234ABCD5678EFGH > public.key

Флаг --armor обеспечивает экспорт ключа в текстовом формате (ASCII), который выглядит так:

-----BEGIN PGP PUBLIC KEY BLOCK-----
...
-----END PGP PUBLIC KEY BLOCK-----

Файл repo.asc обычно используется для хранения открытого ключа, который клиенты могут импортировать для проверки подписей репозитория. Просто переименуйте или скопируйте экспортированный открытый ключ в repo.asc:
cp public.key repo.asc

Опубликовать публичный ключ на ключевом сервере
Выбор сервера (рекомендуемые):
keyserver.ubuntu.com

keys.openpgp.org (лучше для email-верификации, но не показывает uid сразу)

Пример отправки:
# Ubuntu keyserver
gpg --send-keys --keyserver keyserver.ubuntu.com 470F283D2ED5D036

Проверь, что ключ опубликован:
gpg --keyserver keyserver.ubuntu.com --search-keys your_email@example.com

Отозвать ключ
Ревокационный сертификат есть (в openpgp-revocs.d), но можно сгенерировать новый в файл, чтобы использовать при необходимости:
gpg --output revoke_cert.asc --gen-revoke 470F283D2ED5D036

Чтобы реально отозвать ключ, просто импортируй этот файл:
gpg --import revoke_cert.asc

А затем при желании — заново отправь его на ключевой сервер:
gpg --keyserver keyserver.ubuntu.com --send-keys 470F283D2ED5D036


http://uzverss.livejournal.com/30439.html - Добавление ключей, когда другие способы не помогли
http://uzverss.livejournal.com/10514.html - добавление ppa репозитория в debian


Вопрос. Как я могу добавить пользователя в группу в Linux?

Ответ. Вы можете использовать команды useradd или usermod для добавления пользователя в группу. Команда useradd создает нового пользователя или обновляет информацию у существующего. Команда usermod модифицирует существующего пользователя. Вся информация о пользователях и группах храниться в файлах /etc/passwd, /etc/shadow и /etc/group.
Пример использования useradd - Добавляем нового пользователя в вторичную группу

Используем команду useradd для добавления нового пользователя в существующую группу. Если группа не существует создайте её. Синтаксис:
useradd -G {group-name} username
Read more... )

вручную
ntfs-3g /dev/hdd6 /mnt/6 -o force,locale=ru_RU.UTF-8 

fstab
/dev/sda4    /mnt/windows   ntfs-3g   umask=000,locale=ru_RU.UTF-8    0  1

ls -l /dev/disk/by-uuid/ - узнаём UUID диска или же командой  blkid

# /dev/sda4
UUID=BAF44B68F44B264B    /mnt/windows      ntfs-3g      umask=000,locale=ru_RU.UTF-8     0     1


youtube-dl [нужное имя файла] [URL на YouTube]

youtube-dl -o Danza_renacentista_cortesana.flv http://www.youtube.com/watch?v=wNdaJjq3S8U

youtube-dl -U обновить программу

По умолчанию видео будет сохраняться в домашней директории пользователя (/home/имя пользователя). Можно добавить, по мере надобности, некоторые параметры/опции: -b для закачки с высоким качеством изображения, -t для использования заголовока в имени файла (не во всех версиях работает), -с продолжение прерванной закачки.

Подробнее об опциях можно узнать в man youtube-dl или youtube-dl -h


1. Подключаемся по SSH к серверу:

serg@desktop:~$ ssh user@192.168.0.50

где:
serg@desktop:~$ — обозначает что следующий за этим код нужно выполнить на компьютере-клиенте, то есть на том с которого осуществляется вход.
user — имя пользователя на сервере под которым выполняется вход.
192.168.0.50 — пример IP-адреса домашнего сервера.

2. Отмонтируем cd/dvd-диск:

user@homeserver:~$ sudo umount /media/cdrom

где:
user@homeserver:~$ — означает что следующий за этим код нужно выполнять на сервере.
/media/cdrom — директория в которую Ubuntu обычно монтирует диски. Этот параметр может отличаться.

3. Просматриваем доступные приводы:

user@homeserver:~$ cdrecord -scanbus

вывод должен быть примерно таким:

user@homeserver:~$ cdrecord -scanbus
scsibus0:
0,0,0 0) ‘HL-DT-ST’ ‘RW/DVD GCC-4481B’ ‘1.05? Removable CD-ROM
0,1,0 1) ‘TSSTcorp’ ‘CDDVDW SH-S202J ‘ ‘SB01? Removable CD-ROM
0,2,0 2) *

Запоминаем первые три цифры, разделённые запятой, так как это адрес устройства:
0,0,0 — для первого привода;
0,1,0 — для второго.

4. А теперь очищаем диск, который находится в первом приводе.

Полностью:

user@homeserver:~$ cdrecord dev=0,0,0 blank=all

Быстро:

user@homeserver:~$ cdrecord dev=0,0,0 blank=fast


Создадим директорию arch в удобном для Вас месте (я выбрал /home/user):
mkdir /home/user/arch

В ней еще поддиректорию deb:
mkdir /home/user/arch/deb

Теперь копируем все deb пакеты из /var/cache/apt/archives/ в /home/user/arch/deb:
cp /var/cache/apt/archives/*.deb /home/user/arch/deb

развернуть
Скачиваем и устанавливаем пакет dpkg-dev:
sudo apt-get update
sudo apt-get dist-upgrade (это не обязательно, не всегда нужно обновлять ВСЕ пакеты)
sudo apt-get install dpkg-dev

Теперь нам нужно создать индексные файлы для наших пакетов утилитой dpkg-scanpackages (из пакета dpkg-dev), которые будет использовать утилита apt-get:
cd /home/user/arch/deb
dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz (или просто gzip, без -9c)

Вот и все, осталось добавить новый репозиторий в /etc/apt/sources.list:
sudo echo "deb file:/home/user/arch/deb ./" >>/etc/apt/sources.list

И обновим все листы:
sudo apt-get update

Вот и все, наш локальный репозиторий создан Wink

Более простой метод. Использование утилиты apt-move:

Устанавливаем утилиту apt-move:
sudo apt-get install apt-move

Формируем мастер-файл:
sudo apt-move get

Переносим все пакеты из /var/cache/apt/archives в /mirrors:
apt-move move

Удаляем устаревшие пакеты:
apt-move delete

Создадим Packages.gz и Sources.gz дерева локального зеркала:
apt-move packages

Собираем установленные пакеты:
Как я уже говорил, пакеты в /var/cache/apt/archives хранятся не вечно (это так сказать темп). Поэтому многие установленные пакеты в этой директории потираются. Есть очень простой метод сборки всех установленных пакетов в системе в одну директорию:

mkdir /home/user/deb
cd /home/user/deb
sudo dpkg --get-selections | grep -v "deinstall" | awk '{print $1}' | xargs dpkg-repack

Процесс может занять некоторое время (в зависимости от количества установленных пакетов), так что можете спокойно выпить чашку чая (или кофе, кто как любит Wink ) и подождать пока все пакеты не соберутся (кстати если завершить выполнение скрипта посредством нажатия комбинации клавиш Ctrl+C, то после повторного запуска скрипта процесс сборки пакетов начнется не сначала, а будет продолжаться дальше). После того как скрипт завершит свое выполнение, в директории /home/user/dev вы обнаружите кучу deb файлов. Далее дело за Вами, как я описывал выше остается только создать индексные файлы и прописать ссылку в файл /etc/apt/sources.list

Для тех кто не дружит с консолью, есть очень простая и дружелюбная GUI утилита APTonCD (sudo apt-get install aptoncd). Она все сделает за Вас. Ею можно собрать все пакеты и добавить свои дополнительные, а затем создать iso образ диска и записать его на CD или DVD командой cdrecord -v -eject speed=4 -dev=/dev/hdc my_repo.iso, где my_repo.iso образ диска, который вы создали.

http://mydebianblog.blogspot.ru/2013/10/deb-debian.html
------------------------------------------------------------------------
Aptly – свой репозиторий с контролем версий
Создаем собственный репозиторий для 1С:Предприятие в среде Linux
Создаем собственный репозиторий для 1С:Предприятие в среде Linux




Установка
* Установка MPD

sudo aptitude install mpd

* Создайте ссылку на Вашу аудио коллекцию (MP3 и т.д.)

sudo ln -s /path/to/your/music /var/lib/mpd/music/collection

* Перезапустите MPD

sudo /etc/init.d/mpd restart

* Продвинутая настройка

gksudo gedit /etc/mpd.conf

* Установите стандартный Gnome клиент

Альтернативные клиенты, включая основанные на Web, детально описаны в MPD Wiki.

sudo aptitude install gmpc

* Настройте GMPC

Приложения > Мультимедиа > Gnome Music Player Client

Нажмите на иконку опций, установите хост, порт и опции коллекции. По умолчанию клиент соединяется с MPD запущенным на "localhost". Установите опцию "Autoconnect" если нужно. Стандартный MPD порт: 6600, убедитесь, что порт открыт в Firewall.

* Использование GMPC

Нажмите на иконку плейлиста. Разверните дерево "Просмотр файловой системы", кликните правой кнопкой на своей аудио коллекции и нажмите "Обновить". Это заставит MPD server переиндексировать Ваши аудиофайлы. Сами файлы изменены не будут.

По завершении, выберите в дереве просмотра файлов папки и треки и по клику правой кнопкой мыши добавьте их в плейлист.


PS
Если в плеере (напр. в gmpc) выдаётся нечто вроде "error code 13: problems connecting to "localhost" on port 6600"(код ошибки 13...), это значит что mpd стартует раньше network-manager (или другого настройщика сети), в этом случае нужно изменить очерёдность запуска mpd в /etc/ rc2.d rc3.d rc4.d rc5.d хотя бы так:
mv S17mpd S20mpd
'K' - остановка службы, 'S' - запуск, число после 'K' или 'S' указывает порядок, в котором запускается служба, первыми выполняются с меньшими номерами.
хотя правильней пользоваться утилитой update-rc.d

Если при запуске клиента нет звука и выводится нечто наподобие "problem opening audio devices" то следует проверить включён ли пользователь в группу audio, если нет, то включить командой: sudo usermod -a -G audio user (user - имя пользователя) проверить что блокирует вывод звука можно командой: fuser -v /dev/snd/*
для того, чтобы была возможность одновременного вывода звука с другими приложениями (прочие звуко и видео плееры), необходимо в стандартной конфигурации (файл /etc/mpd.conf), в секции audio_output закомментировать (поставить #) device:

audio_output {
        type                 "alsa"
        name                 "My ALSA Device"
#       device               "hw:0,0"             # optional
        format               "44100:16:2"         # optional
        mixer_device         "default"            # optional
        mixer_control        "PCM"                # optional
        mixer_index          "0"                  # optional


Если в плеере выдаётся нечто вроде:
Couldn't connect to MPD (host = localhost, port = 6600): В соединении отказано
или
bind to '0.0.0.0:6600' failed: Address already in use (continuing anyway, because binding to '[::]:6600' succeeded)
то дело было в /etc/hosts, а именно в дефолтной строке:
::1 localhost
для IPv6
в этом случае надо изменить строку в /etc/mpd.conf
на
bind_to_address "127.0.0.1"
если не может прочитать собственные настройки
sudo chmod 644 /etc/mpd.conf

Слушаем музыку с одного ПК на другом с помощью MPD HTTP-Streaming

Версия, с которой MPD поддерживает HTTP Streaming - 0.15. Проверим какая у нас:

└─[% >mpd --version | grep mpd
mpd (MPD: Music Player Daemon) 0.16.5

Моя версия поддерживает.

Чтобы всё это заработало, меняем пару настроек в /etc/mpd.conf:

bind_to_address     "0.0.0.0" 
password                "myverysecurepassword@read,add,control,admin"

И добавляем куда нибудь в конец файла следующее:

audio_output {    
    type        "httpd"    
    name        "linux.fm"    
    encoder     "vorbis"          
    port        "8000"    
    bitrate     "128"               
    format      "44100:16:1"    
}

Немного про настройки:

  • bind_to_address - какой адрес будет слушать MPD. По-умолчанию - localhost, но нам же это не подходит. Верно?
  • password - думаю, тут всё понятно
  • type - Тип аудио вывода
  • name - Название потока
  • encoder - В каком формате отдаём. Поддерживается vorbis, lame
  • port - На какой порт будем вещать аудио-поток
  • bitrate - Битрейт потока
  • format - Характеристики. В данном случае вещаем 44100 KHz, 16 bit, 1 channel. Вещаем в моно, т.к. в stereo потребляется слишком много процессорного времени. У меня не очень новый ПК, поэтому мне бывает критично.

Перезапускаем MPD:

sudo service mpd restart

На этом настройку можно считать законченной. Если всё сделано верно, то сейчас можете открыть какую нибудь Sonata, запустить песню, открыть http://127.0.0.1:8000 (для некоторых плееров, возможно, потребуется указать формат потока через URL - http://192.168.1.2:8000/mpd.ogg) например, в firefox и должны услышать заветную музыку.



https://wiki.archlinux.org/index.php/Music_Player_Daemon/Troubleshooting
Слушаем музыку с одного ПК на другом с помощью MPD HTTP-Streaming


Начну с небольшого примера, наглядно иллюстрирующего основные параметры команды:

# dd if=/dev/urandom of=/dev/null bs=100M count=5 status=progress

Параметры:

* if: указывает на источник, т.е. на то, откуда копируем. Указывается файл, который может быть как обычным файлом, так и файлом устройства.
* of: указывает на файл назначения. То же самое, писать можем как в обычный файл, так и напрямую в устройство.
* bs: количество байт, которые будут записаны за раз. Можно представлять этот аргумент как размер куска данные, которые будут записаны или прочитаны, а количество кусков регулируется уже следующим параметром.
* count: как раз то число, которое указывает: сколько кусочков будет скопировано.


Таким образом, описанная команда читает 5*100 мегабайт из устройства /dev/urandom в устройство /dev/null. Придавая этой команде смысловую нагрузку получается, что система сгенерирует 500 мегабайт случайных значений и запишет их в null устройство. Конечно, единственное, что сделает эта команда: нагрузит процессор на несколько секунд. Рассмотрим примеры из практики:

Создание образа диска:

# dd if=/dev/cdrom of=image.iso

Команда будет считывать из устройства данные и записывать в файл до тех пор, пока не достигнет окончания устройства. Если диск битый, можно попробовать его прочитать, игнорируя ошибки чтения:

# dd if=/dev/cdrom of=image.iso conv=noerror

Параметр «conv» позволяет подключать несколько фильтров, применимых к потоку данных. Фильтр «noerror» как раз отключает остановку работы программы, когда наткнется на ошибку чтения. Таким образом, некоторые данные с диска все же можно будет прочитать. Точно таким образом я спас данные со своей флешки Corsair, которую погнули: подобрал подходящее положение, когда контакт есть, и сделал дамп файловой системы.
Подключить, кстати, такие образы можно при помощи команды mount с ключем "-o loop":

# mount -o loop image.iso /mnt/image

Если что-то не получается, процесс разбивается на 2 уровня:

# losetup -e /dev/loop0 image.iso
# mount /dev/loop0 /mnt/image

Если и так не работает, значит файловая система образа полетела.

Работа с носителями информации

Очень простое, хоть и не оптимальное решение клонирования жесткого диска:

# dd if=/dev/sda of=/dev/sdb bs=4096

Все то же побайтовой копирование с размером буфера 4 Кб. Минус способа в том, что при любой заполненности разделов копироваться будут все биты, что не выгодно при копировании разделов с маленькой заполненностью. Чтобы уменьшить время копирования при манипуляции с большими объемами данных, можно просто перенести MBR на новый носитель (я ниже опишу как), перечитать таблицу разделов ядра (при помощи того же fdisk), создать файловые системы и просто скопировать файлы (не забыв сохранить права доступа к файлам).

Как вариант, можно даже по расписанию делать бекап раздела по сети. Разрулив ключи ssh будет работать такая схема:

# dd if=/dev/DEVICE | ssh user@host «dd of=/home/user/DEVICE.img».

Когда-то читал исследование, согласно которому очень большая доля жестких дисков на барахолке подвергается восстановлению данных без привлечения чего-то специализированного, и содержит конфиденциальную информацию. Чтобы на носителе ничего нельзя было восстановить — можно забить его нулями:

# dd if=/dev/zero of=/dev/DEVICE

Думаю, понятно на что нужно заменить DEVICE. После проведения лекций по Linux, я очень тщательно стал следить за тем, что пишу.
Проверить можно тем же dd, но преобразовав данные в hex:

# dd if=/dev/sda | hexdump -C

Должны посыпаться нули.

Операции с MBR

MBR расположена в первых 512 байтах жесткого диска, и состоит из таблицы разделов, загрузчика и пары доп. байт. Иногда, ее приходится бекапить, восстанавливать и т.д. Бекап выполняется так:

# dd if=/dev/sda of=mbr.img bs=512 count=1

Восстановить можно проще:

# dd if=mbr.img of=/dev/sda

Причины этих махинаций с MBR могут быть разные, однако хочу рассказать одну особенность, взятую из опыта: после восстановления давней копии MBR, где один из разделов был ext3, а позже стал FAT и использовался Windows, раздел перестал видиться виндой. Причина — ID раздела, который хранится в MBR. Если UNIX монтирует файловые системы согласно суперблоку, то винды ориентируются на ID разделов из MBR. Поэтому всегда нужно проверять ID разделов при помощи fdisk, особенно если на компьютере есть винды.

Генерация файлов

При помощи dd можно генерировать файлы, а затем использовать их как контейнеры других файловых систем даже в зашифрованном виде. Технология следующая:
При помощи dd создается файл, забитый нулями (случайными числами забивать не рационально: долго и бессмысленно):

# dd if=/dev/zero of=image.crypted bs=1M count=1000

Создался файл размером почти в гигабайт. Теперь нужно сделать этот файл блочным устройством и, при этом, пропустить его через механизм шифрования ядра linux. Я выберу алгоритм blowfish. Подгрузка модулей:

# modprobe cryptoloop
# modprobe blowfish

Ассоциация образа с блочным устройством со включенным шифрованием:

# losetup -e blowfish /dev/loop0 image.crypted

Команда запросит ввести пароль, который и будет ключем к образу. Если ключ введен не правильно, система не смонтируется. Можно будет заново создать данные в образе, используя новый ключ, но к старым данным доступа не будет.
Создаем файловую систему и монтируем:

# mkfs.ext2 /dev/loop0
# mount /dev/loop0 /mnt/image

Образ готов к записи данных. После завершения работы с ним, нужно не забыть его отмонтировать и отключить от блочного loop устройства:

# umount /dev/loop0
# losetup -d /dev/loop0

Теперь шифрованный образ готов.

--------------------------------------------------------------------------------------

запись iso на флешку

sudo dd if=путь_к.iso of=/dev/sdb
или так
dd if=путь_к.iso of=/dev/sdb bs=8MB;sync
bs=8MB - записывать на флэшку блоками по 8Мбайт
НЕ ставим никакие цифры после sdb

лучше так
dd_rescue -A путь_к.iso /dev/sdb
dc3dd if=путь_к.iso of=/dev/sdb

PS
удобней когда виден процесс копирования



cp с прогрессбаром на питоне

https://github.com/yannicklm/pycp

http://habrahabr.ru/post/56796/
http://habrahabr.ru/post/117050/
http://habrahabr.ru/post/65384/


PS
в новых версиях dd есть опция status=progress


для того, чтобы вновь очутиться в DOS делаем следующее:

export PS1="C:\$( pwd | sed 's:/:\\\\\:g' )> "

и ностальгируем по временам MS-DOS :)

Если очень понравилось, то можно добавить в ~/.bashrc следующий код:

PS1="C:\$( pwd | sed 's:/:\\\\\:g' )> "

и наслаждаться красотой постоянно :)


Для полного конвертирования всей музыкальной библиотеки будем использовать скрипт mid3iconv, который поставляется в комплекте пакета python-mutagen.
Для правильной работы пакет python-mutagen должен быть версией не ниже 1.1.

   1. Устанавливаем пакет python-mutagen:
      Debian, Ubuntu, Kubuntu..:

      # sudo apt-get install python-mutagen
  
   2. Переходим в директорию с Вашей музыкальной библиотекой:

      # cd /home/ВАШ_ЛОГИН/Музыка

      Возможно директория с музыкальной библиотекой у Вас будет другой.

   3. Конвертируем библиотеку:

      # find -iname '*.mp3' -print0 | xargs -0 mid3iconv -eCP1251 --remove-v1


wget копирование статических сайтов
$ wget -r -l0 -np -k -c http://нужный адрес

ещё вариант

wget -m -k -nv -np -p -U "Mozilla/5.0 (compatible; Konqueror/3.0.0/10; Linux)"

Profile

uzverss: (Default)
uzverss

December 2024

S M T W T F S
12345 67
891011121314
15161718192021
22232425262728
293031    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Mar. 18th, 2026 08:34 am
Powered by Dreamwidth Studios