рабочий стол в консоли

Jun 29, 2013 01:12



развернуть
посмотреть видео
mplayer -vo fbdev2 -zoom -x 1024 -y 600 -fs /адрес/имя_файла.avi
mpv -vo drm rtmp://сайт_с_раздачей/
mpv -vo drm http://78.29.1.71/live/2x2tv/copy/playlist.m3u8

youtube-dl https://www.youtube.com/watch?v=6pxRHBw-k8M --list-formats
mpv -vo drm https://www.youtube.com/watch?v=6pxRHBw-k8M --ytdl-format=22
echo "mpv -vo drm https://www.youtube.com/watch?v=6pxRHBw-k8M --ytdl-format=22" > /dev/tty2

ссылки на видео

ffplay film.avi

https://help.ubuntu.ru/wiki/ffmpeg
запись в файл
ffmpeg -f fbdev -r 10 -i /dev/fb0 out.avi

скачать потоковое видео
ffmpeg -i https://example.org/stream.m3u8 -c copy out.ts

записать и прослушать аудио
arecord audio.wav
aplay audio.wav

прослушать радио
curseradio
mpg123 http://strm112.1.fm/90s_mobile_mp3
mocp http://ic2.101.ru:8000/a183
ffplay http://ic2.101.ru:8000/a70
mpv http://strm112.1.fm/ccountry_mobile_mp3

ссылки на радио

музон в консоли
в ubuntu и debian
sudo apt-get install pulseaudio
sudo apt-get install libpulse-dev
sudo apt-get install osspd
wget -qO - http://radio.goha.ru:8000/grindfm.ogg |ffmpeg -i - -f u8 -ac 1 -ar 8000 -> /dev/dsp

sudo apt-get install sox libsox-fmt-all
wget -qO - http://radio.goha.ru:8000/grindfm.ogg |play -t ogg -

во фряхе
# virtual_oss -S -Q 0 -b 16 -c 2 -r 44100 -s 100ms -f /dev/dsp -d dsp.44100 -t vdsp.ctl
% fetch -o - http://radio.goha.ru:8000/grindfm.ogg |oggdec -R -e 1 -b 16 -s 1 - -o - > /dev/dsp.44100
http://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi?az=post&om=118115&forum=vsluhforumID3&omm=24&news_key=51258

посмотреть картинку
fim -A /адрес/имя_файла.png

прочесть pdf
fimgs /адрес/имя_файла.pdf
jfbview /адрес/имя_файла.pdf

pip3 install epy-reader
epy книга.mobi

интернет с картинками
w3m адрес_сайта
пакет w3m-img должен быть установлен
links2 -g адрес_сайта
apt install netsurf-fb

прочесть документы
antiword file.doc | less
odt2txt file.odt | less

глянуть погоду
curl http://wttr.in/

посмотреть звёздные войны
telnet towel.blinkenlights.nl
когда надоест Ctrl + ] и затем q

интернет
w3m elinks links2
https://github.com/browsh-org/browsh
docker run --rm -it browsh/browsh
https://github.com/fathyb/carbonyl
docker run -ti fathyb/carbonyl https://duckduckgo.com

скриншоты в иксах и консоли, запись терминальной сессии, разрешение экрана в tty
fbset -xres 1280 -yres 1024 -depth 32
fbset -xres 1920 -yres 1080 -depth 32
fbset -xres 1600 -yres 900 -depth 32

fbgrab -c 2 2.png #(снимок tty2)
sudo fbgrab -c 2 -s 5 2.png # снимок tty2 через 5 сек

tlog-rec --writer=file --file-path=tlog.log
tlog-play --reader=file --file-path=tlog.log

получить ссылки и картинки с сайта
http://www.videlibri.de/xidel.html
адреса ссылок:
xidel -s --extract "//a/@href" "http://www.videlibri.de/xidel.html"
адреса изображений:
xidel -s --extract "//img/@src" "http://www.videlibri.de/xidel.html"

локаль
echo 'export LANG=en_US.utf8' >> ~/.profile
source ~/.profile

QT во фреймбуфере
sudo gpasswd -a пользователь input # права на мышку и клаву для qt
QT_QPA_PLATFORM=linuxfb программа_на_qt # запуск qt программ, в tty
QT_QPA_PLATFORM=linuxfb qutebrowser https://raw.githubusercontent.com/qutebrowser/qutebrowser/master/doc/img/cheatsheet-big.png
в этом режиме работают только хоткеи программы, переключения на другую tty нет

Как закрыть терминал без убийства запущенной в нём команды
nohup команда &
или
команда & disown

строка bash
Поднятая целина: Осваиваем и обустраиваем консоль - «Хакер»
Разноцветные терминалы
командная строка в стиле DOS
Пользовательские настройки Bash

export PS1='\t C:\> '

или так
export PS1="C:\$( pwd | sed 's:/:\\\\\:g' )> "

если понравилось добавим в ~/.bashrc следующий код:
PS1="C:\$( pwd | sed 's:/:\\\\\:g' )> "

цветной текст
echo -e '\033[0;31mнекоторый текст\033[0m'

опции
Ёлочка в командной строке

0 Сбросить все атрибуты
1 Bright (повышенная яркость)
2 Dim (затемнение)
4 Underscore (нижнее подчеркивание)
5 Blink (мигание)
7 Reverse (инверсия)
8 Hidden (скрыть текст)

Foreground Colours (цвет пера, этим цветом выводится текст):
30 Black (черный)
31 Red (красный)
32 Green (зеленый)
33 Yellow (желтый)
34 Blue (синий)
35 Magenta (пурпурный)
36 Cyan (голубой)
37 White (белый)

Background Colours (цвет бумаги, или цвет фона):
40 Black (черный)
41 Red (красный)
42 Green (зеленый)
43 Yellow (желтый)
44 Blue (синий)
45 Magenta (пурпурный)
46 Cyan (голубой)
47 White (белый)

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

посложнее:
Файл дескриптор в Linux с примерами

откроем консоль с bash и посмотрим PID нашего процесса
[user@localhost ]$ echo $$
15771
Во второй консоли запустим
[user@localhost ]$ ls -lah /proc/15771/fd/
total 0
dr-x------ 2 user user 0 Oct 7 15:42 .
dr-xr-xr-x 9 user user 0 Oct 7 15:42 ..
lrwx------ 1 user user 64 Oct 7 15:42 0 -> /dev/pts/21
lrwx------ 1 user user 64 Oct 7 15:42 1 -> /dev/pts/21
lrwx------ 1 user user 64 Oct 7 15:42 2 -> /dev/pts/21
lrwx------ 1 user user 64 Oct 7 15:42 255 -> /dev/pts/21

Файл дескриптор с номером 255 можете смело игнорировать в рамках данной статьи, он был открыт для своих нужд уже самим bash, а не прилинкованной библиотекой.

Сейчас все 3 файл дескриптора связаны с устройством псевдотерминала /dev/pts, но мы все равно можем ими манипулировать, например запустим во второй консоли

[user@localhost ]$ echo "hello world" > /proc/15771/fd/0

И в первой консоли мы увидим

[user@localhost ]$ hello world

strace -s 1024 -f bash -c "ls | grep hello"

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

netcat чат меж компами

tmux
https://wiki.archlinux.org/index.php/Tmux_(Русский)
Краткая шпаргалка по tmux (менеджеру терминалов)
Tmux - что это и зачем? Обзор и урок tmux
GNU Screen и tmux: ключ к эффективному использованию консоли
Шпаргалка по работе с Tmux (терминальный мультиплексор)
Поддержка мышки в Midnight Commander запущенного из под tmux/screen

небольшой конфигурационный файл:
$ vi ~/.tmux.conf

set -g mouse on
setw -g xterm-keys on

vi ~/.profile

if [ $TERM = "screen" ]; then
export TERM=xterm
fi
if [ -n "$TMUX" ]; then
export COLORTERM=rxvt
fi

$ tmux source-file ~/.tmux.conf
кратко
для подключения обратно используется другой аргумент командной строки:
$ tmux attach

для перехода к предыдущему окну следует использовать следующую команду:
$ tmux last-window

А для создания окна такую:
$ tmux new-window

Весь перечень поддерживаемых команд можно получить так:
$ tmux list-commands

Получить список всех возможных опций можно так:
$ tmux show-options
$ tmux show-window-options

Очень хороший способ запустить tmux:
tmux attach || tmux new - делая так, вы сперва пытаетесь подключиться к уже существующему серверу tmux, если он существует; если такого ещё нет - создаёте новый.
tmux new -s session1 - создание сессии с именем session1
tmux attach -t session1 - подключение к сессии session1
tmux a -t session1
Ctrl+b s Выбрать сессию
tmux kill-session -t session1 - Завершение сессии

После этого вы попадаете в полноценную консоль.
Ctrl+b d - отключиться. (Точно так же вы отключитесь, если прервётся соединение. Как подключиться обратно и продолжить работу - см. выше.)

В одной сессии может быть сколько угодно окошек:
Ctrl+b c - создать окошко;
Ctrl+b 0...9 - перейти в такое-то окошко;
Ctrl+b p - перейти в предыдущее окошко;
Ctrl+b n - перейти в следующее окошко;
Ctrl+b l - перейти в предыдущее активное окошко (из которого вы переключились в текущее);
Ctrl+b & - закрыть окошко (а можно просто набрать exit в терминале).

В одном окошке может быть много панелей:
Ctrl+b % - разделить текущую панель на две, по вертикали;
Ctrl+b " - разделить текущую панель на две, по горизонтали (это кавычка, которая около Enter, а не Shift+2);
Ctrl+b →←↑↓ - переходить между панелями;
Ctrl+b x - закрыть панель (а можно просто набрать exit в терминале).

Недостаток - непривычным становится скроллинг:
Ctrl+b PgUp - вход в «режим копирования», после чего:
PgUp, PgDown - скроллинг;
q - выход из «режима копирования».

работа с tmux
Старт
# tmux //без параметров будет создана сессия 0
# tmux new -s session1 //новая сессия session1. Название отображается снизу-слева в квадратных скобках в статус строке. Далее идет перечисление окон. Текущее окно помечается звездочкой.

Префикс (с него начинаются команды)
(CTRL + b)

Новое окно (нажать CTRL+b, затем нажать с)

Список окон
// переключиться курсором вверх-вниз

Переключение
// следующее окно
// предыдущее окно
// переключиться на номер окна

Окна можно делить на панели (Panes)
Как в тайловых (мозаичных) оконных менеджерах.

Деление окна горизонтально

либо команда
# tmux split-window -h

Деление окна вертикально

либо команда
# tmux split-window -v

Переход между панелей
// либо режим мыши

Изменение размеров панелей
// либо режим мыши

Закрытие окон
// нужно подтвердить y
либо
# exit

Отключение от сессии

либо
# tmux detach

Список сессий
# tmux ls

Подключиться к работающей сессии
# tmux attach //подключение к сессии, либо к единственной, либо последней созданной
# tmux attach -t session1 // подключение к сессии session1

Выбрать сессию

Завершение сессии
# tmux kill-session -t session1

Завершить все сессии
# tmux kill-server

Список поддерживаемых комманд
# tmux list-commands

Дополнительная информация
# man tmux

GNU Screen
https://www.gnu.org/software/screen/manual/screen.html
https://wiki.archlinux.org/title/GNU_Screen_(Русский)
Краткая шпаргалка по использованию GNU screen

Стандартные команды
ctrl+a ? Отображает список команд и их параметры по умолчанию
ctrl+a : Ввод команды для screen
ctrl+a " Список окон
ctrl+a 0 Открыть окно 0
ctrl+a A Переименовать текущее окно
ctrl+a a Отправить ctrl+a в текущее окно
ctrl+a c Создать новое окно
ctrl+a S Разделить текущий регион на два по горизонтали
Ctrl+a | Разделить текущий регион на два по вертикали
ctrl+a tab Переключить фокус ввода на следующий регион
ctrl+a ctrl+a Переключение между текущим и предыдущим регионами
ctrl+a Esc Перейти в режим копирования (используйте enter для выделения текста)
ctrl+a ] Вставка текста
ctrl+a Q Закрыть все регионы кроме текущего
ctrl+a X Закрыть текущий регион
ctrl+a d Отключиться от текущего сеанса screen, оставив его работающим в фоне. Для переподключения используйте screen -r

Вводимые команды
Ctrl+a :quit Закрывает все окна и завершает сеанс screen
Ctrl+a :source ~/.screenrc Перезагружает файл настроек screenrc (также можно использовать /etc/screenrc)

Создание сеанса с определённым названием:
$ screen -S название_сеанса

Переименование текущего сеанса:
Ctrl+a :sessionname название_сеанса

Список всех существующих сеансов текущего пользователя:
$ screen -list

Подключение к существующему сеансу по его имени:
$ screen -x название_сеанса
или
$ screen -r название_сеанса

Ctrl+a a d Отсоединяется от внутреннего сеанса screen.
Ctrl+a a K Завершает (kill) внутренний сеанс screen.

Основные хоткеи в screen следующие.Основные хоткеи в screen следующие.

Окна:

Ctr + A, C Create, создать окно
Ctr + A, K Kill, прибить окно
Ctr + A, W Windows, показать список окон
Ctr + A, Space Переключитьcя на следующее окно
Ctr + A, N То же самое
Ctr + A, Backspace Переключиться на предыдущее окно
Ctr + A, P То же самое
Ctr + A, Ctr + A Вернутся на окно, с которого переключились
Ctr + A, " Выбрать из списка окно, на которое хотим переключиться
Ctr + A, 0-9 Переключиться на окно с таким-то номером
Ctr + A, ‘ Ввести номер окна, на которое хотим переключиться
Ctr + A, Shift + A Переименовать окно
Ctr + A, :number 3 Изменить номер окна
Ctr + A, I Info, информация о текущем окне
Ctr + A, Shift + N Number, номер и название текущего окна

Регионы:

Ctr + A, Shift + S Разделить текущий регион горизонтально
Ctr + A, | Разделить текущий регион вертикально
Ctr + A, :resize +5 Изменить размер региона вертикально (увеличить на 5)
Ctr + A, :resize -h 80 Изменить размер региона горизонтально (установить в 80)
Ctr + A, Tab Переключение между регионами
Ctr + A, Shift + X Прибить текущий регион
Ctr + A, Shift + Q Прибить все регионы кроме текущего

Мониторинг:

Ctr + A, Shift + M Включить/выключить мониторинг активности в окне
Сек + A, _ Мониторинг неактивности в течение 30 секунд

Скролинг и копирование текста:

Ctr + A, [ Перейти в режим copy/scrollback
Ctr + A, ] Вставить содержимое paste buffer (регистр . - «точка»)
Ctr + A, > Записать paste buffer во временный файл (bufferfile)
Ctr + A, < Считать paste buffer из временного файла
Ctr + A, = Удалить bufferfile
Ctr + A, :bufferfile Изменить имя bufferfile (нужно передать аргумент)
Ctr + A, :readreg a Положить paste buffer в регистр a
Ctr + A, :paste a Вставить содержимое регистра a

Разное:

Ctr + A, ? Подсказка по хоткеям
Ctr + A, D Detach
Ctr + A, \ Прибить все окна и выйти
Ctr + A, A Послать Ctr + A
Ctr + A, T Time, показать текущее время, имя хоста, LA
Ctr + A, V Version, показать версию screen
Ctr + A, X Lock, для разблакировки нужно ввести пароль пользователя
Ctr + A, F Fit, подогнать окно под размер текущего региона
Ctr + A, Z Как Ctr+Z для обычных приложений

Текстовые WM (wm в tty)
Viper Window Manager (VWM) - это легкий, расширяемый оконный менеджер для консоли.
http://vwm.sourceforge.net/index.html

Monotty Desktopio Текстовая среда рабочего стола внутри вашего терминала
https://github.com/netxs-group/vtm

Twin - это оконная среда с поддержкой мыши, оконным менеджером, эмулятором терминала и сетевыми клиентами, все внутри текстового дисплея.
https://github.com/cosmos72/twin

разница между DE и WM, а также работа в голых иксах
установка XRDP, VNC и SSH на Ubuntu и Debian. (tmux)
почта в консоли mutt и msmtp
делаем vim удобным
Редактируем iso в Ubuntu Linux из консоли
Копирование Audio CD
проверка скорости интернета в консоли
Профиты от использования консольного FTP-клиент lftp
UTF в консоли FreeBSD

консольная подборка
консоль python в роли командной строки

утилита, linux, ноут, bash, консоль

Previous post Next post
Up