а можно youtube-dl скачивать видео, но не складывать его на диск, а сразу подавать на вход ffplay?
Чтобы было что то вроде
youtube-dl (link) | ffplayЕсть в этом направлении хоть что то?
Чтобы было что то вроде
youtube-dl (link) | ffplayЕсть в этом направлении хоть что то?
Когда вы видите команду оболочки в Интернете, не копируйте ее в свой терминал.
Современные API буфера обмена позволяют веб-сайту тривиально перезаписывать то, что вы помещаете в буфер обмена, без подтверждения или разрешения пользователя.
Обратите внимание, что вам даже не нужно нажимать ENTER в терминале после вставки, чтобы сработал эксплойт. Завершающая команду новая строка делает это за вас!
Перемещено Shaman007 из security
Специалистам по mc. Если открываешь видос или документ в либреофисе то mc становится неактивным в терминале. Тупо пустое окно. Использовать нельзя пока не закроешь открытый файл. Как сделать так чтобы можно было пользоваться независимо от открытых файлов?
Приветствую. Такой момент:
var=100
str=">>>>${var}<<<<"
echo $str
>>>>100<<<<
>>>>${data}<<<<
>>>>${mess}<<<<
str="$(cat file.txt)"data=1
mess="on"
echo "$str"
>>>>${data}<<<<
>>>>${mess}<<<<p.s. без >< можно eval натравить, но спецсимволов в файле много.
Кто в курсе как быть?
что делает на скорую руку написанная фигня на Bash'е:
(вывод ТОЛЬКО совпадающих по ЗАДАННОМУ полю строк)
Файл (добавлена нумерация для наглядности):
1 hello, y-cat!
2 cat drank vodka
3 mom washed frame
4 dad drank vodka
5 123 456 789
6 Vova drowned
7 vova fool
8 cat drank vodka
9 mom at work
10 cat whore juvenile
11 hello, www!
12 petya the Fool
13 dad washed frame
14 Cat washed frame
15 cat vodka drank
16 cat drowned
17 cat the Fool
18 hello www!
#!/usr/bin/env bash
mapfile -O 1 a < <(cat "file" | nl | sort -k 2d)
i=0
f=0
for str in "${a[@]}"; do
(( i++ ))
mapfile fr < <(printf %s "${a[i]}" | awk '{print $2"\n"$0}')
mapfile sr < <(printf %s "${a[i+1]}" | awk '{print $2"\n"$0}')
if [[ "${fr[0]}" == "${sr[0]}" ]]; then
if (( f == 0 )); then
f=1
printf %s "${fr[1]}"
printf %s "${sr[1]}"
else
printf %s "${sr[1]}"
fi
else
f=0
fi
done
2 cat drank vodka
8 cat drank vodka
16 cat drowned
17 cat the Fool
15 cat vodka drank
10 cat whore juvenile
4 dad drank vodka
13 dad washed frame
9 mom at work
3 mom washed frame
(Проблему с сортировкой заметили?)
Дальше
awk 'BEGIN {i = 1} {ff = $1; f_l = $0; getline ; sf = $1; s_l = $0} {if (ff == sf) a[i] = f_l; a[i+1] = s_l; i = i +2 } END { (for i in a) print a[i]} ' file
Грамотные, подскажите КАК?
Народ, а чем вы pdf открываете, ну кроме браузера? Интересует программа, позволяющая работать с файлом как с электронной книгой, закладки ставить и прочее?
Также вопрос, чем сейчас модно читать djvu?
Программы, тянующие при установке Gnome или KDE просьба не предлагать. И желательно, чтобы интерфейс был не такой, чтобы от него трясло.
здравствуйте
в kde есть очень удобная опция настройки раскладок клавиатуры
в Layout Switching Policy можно выбрать Global , Window … итд
как можно сделать то же самое но без kde?
Задача. Монотонно растущий счетчик времени который в какой то момент может переполнится.
Код делает типовые операции
uint16_t startTime = millis();
...
uint16_t stopTime = millis();
uint16_t runSpeed = stopTime - startTime;
startTime будет равно 65535 а stopTime будет равно 1?runSpeed?//# ./a 1 - 65535
#include <stdio.h>
#include <stdint.h>
int main(int argc, char * argv[]) {
uint16_t a = atoi(argv[1]);
uint16_t b = atoi(argv[3]);
printf("%d", (uint16_t)(a - b));
return 0;
}
1 - 65535 будет равно 2 как и предполагалось. Спасибо бинарной логике процессора. И никаких лишних проверок сравнений лепить не надо.И снова здравствуйте, мои дорогие. Как вы боритесь с неблагонадёжным программным обеспечением? Вот, возьмём к примеру браузер. Браузер тащит подсистему печати и следовательно дырявый как ситечко ghostscript. Ни то ни другое мне не нужно (в браузере так точно).
Итак, я создаю заглушку, делаю следующее:
desktop ~ # cat cupsnop.c
void cupsGetOption(void){return;}
void cupsLastError(void){return;}
void cupsFreeDests(void){return;}
void cupsGetDests2(void){return;}
void cupsGetDests(void){return;}
void cupsGetDest(void){return;}
void cupsGetNamedDest(void){return;}
void cupsGetPPD2(void){return;}
void httpError(void){return;}
void cupsGetPPD(void){return;}
void httpConnectEncrypt(void){return;}
void httpClose(void){return;}
void httpBlocking(void){return;}
void ppdOpenFile(void){return;}
void ppdMarkDefaults(void){return;}
void ppdLastError(void){return;}
void ppdErrorString(void){return;}
void cupsParseOptions(void){return;}
void cupsMarkOptions(void){return;}
void cupsFreeOptions(void){return;}
void ppdFindMarkedChoice(void){return;}
void ppdFindOption(void){return;}
void ppdFindChoice(void){return;}
void ppdFindAttr(void){return;}
void ppdClose(void){return;}
desktop ~ # cat make.sh
#!/bin/sh
gcc -s -shared -fpic -march=native -O2 -pipe -fstack-clash-protection -fstack-protector-strong --param=ssp-buffer-size=4 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Wl,-O1 -Wl,--as-needed -Wl,--sort-common -Wl,-z,relro -Wl,-z,now -Wl,--hash-style=gnu -Wl,--no-copy-dt-needed-entries -Wall -Wextra cupsnop.c -olibcups.so.2
mv -v libcups.so.2 /lib64/libcups.so.2
desktop ~ # ./make.sh
renamed 'libcups.so.2' -> '/lib64/libcups.so.2'
И всё хорошо, все довольны и счастливы. Но браузер также тащит кучу дряни вроде gtk, а та в свою очередь тащит atk, at-spi2-atk с at-spi2-core, причём, не найдя любую из зависимостей категорически отказывается собираться. Я считаю, это не дело, так не должно быть.
В браузерах есть огромная беда с файловыми диалогами на гтк – они неудобные, выглядят очень инородно, и сразу затирают иксовый буфер выделения среди прочего. Это ужасно. Как мне рассказывали старшие товарищи, в opensuse файловые диалоги как-то патчили, чтобы сделать те человеческими. Можно ли такое же сделать, например, с хромом?
И ещё, браузер запускается без ffmpeg (выдаёт libffmpeg.so => not found), при этом с видео даже проблем нет. Ну или они есть, это не важно (их нет). А вот с cups так не работает, приложение отказывается запускаться, если библиотека не найдена. Что это такое? Пробовал patchelf или что-то подобное для удаления зависимостей, так программа молча зависала при попытке её запустить.
Кроме portage? Какие пакетные менеджеры есть на slackware-based дистрибутивы с разруливанием зависимостей?
Как обстоят дела с ABS и Sourcery?
P.S. Мне нужен fglrx (старая видюха), а это значит xorg-server не новее 1.17.49, если верить ебилду.
Приветствую!
Как получить корректный размер используемой памяти из файла /proc/meminfo чтобы он совпадал с размером из htop
Я пробовал:
MemTotal - MemFree
MemTotal - (MemFree + Buffers + Cached)
результат не совпадает. Как правильно высчитать размер?
В чёртовой Лисе рубанулись аддоны (обсуждалось многократно). Ну и пёс с ним. Но вот без аддона для ЛОРа ну очень не ice. Кто что может подсказать?
Я просто оставлю это здесь. OpenWM теперь с тенями. Писателям новостей - ну вы поняли да?
А зачем это всё это ненужно конкретно вам и что теперь с этим всем делать решать тебе мой красноглазый читатель.
Тут недавно был тред про песочницы, но там обсуждалась реализация (что-то в духе, почему в бсд так, а в линуксе не так).
У меня практический вопрос: что сейчас используется для sandboxing'а? Задача проста: есть недовереннные приложения (бинарники из левых источников). Надо запустить их, обеспечивая максимальную безопасность с минимальными затратами. Вариант - не запускать левые бинариники не подходит.
Есть файл с содержимым
9
7
1
8
2
1
3
2
4
2
5
2
6
6из него нужно сделать файл
9
7
1
8
2
3
4
5
6Продолжение тем Сравнение двух списков в bash Как в Arch Linux вывести список всех дополнительных зависимостей для каждого установленного пакета?
Иногда делаю для себя маленькие открытия типа таких:
autojump: https://github.com/wting/autojump/
hstr: https://github.com/dvorka/hstr
О каких ещё полезных при работе в терминале штуках я не знаю?
P.S. Использую zsh без oh-my-zsh.
Привет, ЛОР!
Обучаясь bash велосипедю такое нечто. И вот в case 3 у меня цикл, который ждёт подходящий $ANSWER.
Если отрабатывается case 1 и case 2 то всё корректно - или заново проигрывается скрипт или выход из него.
А в случае case 3 получается, что при выходе из цикла и выходе из case скрипт попадает в старший цикл и поскольку переменная $TIME_LAST пустая, то срабатывает условие и ожидается ввод от пользователя.
Данное поведение подходит, если пользователь хочет повторно завести таймер и не подходит, если он хочет закончить работу.
Т.е. если пользователь ответил Y или ответил N, то всё ок. А если он ответил «qwerty», его переспросили, он ответил N, то всё равно скрипт будет продолжать работу.
Как это организовать по-человечески?
#!/bin/bash
# timer.sh
# Таймер с интерактивным вводом.
# Умеет звенеть колокольчиком на старых терминалах.
# На некоторых современных может посылать уведомления
TIME_LAST="$1" # Время таймера
FLAG=TRUE # Флажок
INTEGER=^[0-9]+$ # Шаблон проверки числа. В данном случае целое положительное число, не строка
while [[ "$FLAG" = "TRUE" ]]; do
if [[ -z "$TIME_LAST" ]]; then
echo -e "\nИспользование: \"`basename $0` время_в_минутах\" или введите в интерактивном режиме"
echo -e "Введите время в минутах (для отмены нажмите Ctrl+C)\n"
read TIME_LAST
until [[ "$TIME_LAST" =~ $INTEGER ]]; do
echo -e "\nОшибка ввода. \"$TIME_LAST\" не является целым положительным числом.\nПовторите ввод\n"
read TIME_LAST
done
echo -e "\nОтсчёт $TIME_LAST мин. пошёл!"
fi
sleep $(( $TIME_LAST * 1 )) && echo -e "\nВремя вышло!\a" # ДЛЯ ТЕСТА ТУТ УКАЗАНО УМНОЖЕНИЕ МИНУТ НА 5, А НАДО НА 60!!!
TIME_LAST="" # Подметаем за собой
echo -e "\nХотите завести новый таймер? y / n\n"
read ANSWER
case "$ANSWER" in
#1 case
"Y" | "y" )
;;
#2 case
"N" | "n" )
FLAG=FALSE # Переключается флажок и выход из цикла
;;
#3 case
* )
echo -e "\nВведите \"y\" или \"n\"\n"
# Пока не будет получен нужный ответ переспрашивать
until [ "$ANSWER" = "y" -o "$ANSWER" = "Y" -o "$ANSWER" = "n" -o "$ANSWER" = "N" ]; do
read ANSWER
done
;;
esac
done
echo -e "\nBye-bye"
exit 0
Подскажите можно ли на «лету» менять заголовок скрипта
Например при запуске скрипта будет заголовок
printf '\033]2;Test\a'
а позже в работе скрипта вызывается функция которая меняет заголовок на Test2Вот здесь умный человек пишет как настроить OpenVPN так, чтобы при обращении к серверу браузером получать вебовую страницу, а если обратиться OpenVPN'овым клиентом, то устанавливается соединение.
Правда в первом же абзаце автор пишет, что ему в каментах указали, что не вся передаваемая информация скрывается и при большом желании можно отличить где мирный абрикосовый сайт, а где прячется VPN с урюками.
Так вот, возможно ли надёжно замаскировать VPN под HTTPS, да так чтобы при обращении браузером получать странички? Что для этого требуется кроме nginx'а, OpenVPN'а и сертификата (хотя бы) от LetsEncrypt? Shadowsocks, stunnel, obfsproxy? Есть ссылка на пример такой настройки?
Знаю, что нельзя, но очень хочется.
| ← назад | следующие → |