LINUX.ORG.RU

Избранные сообщения teod0r

а можно youtube-dl скачивать видео, но не складывать его на диск, а сразу подавать на вход ffplay?

Форум — Multimedia

Чтобы было что то вроде

 youtube-dl (link) | ffplay

Есть в этом направлении хоть что то?

 ,

burato
()

Не копируйте shell из браузера!

Форум — Security

Когда вы видите команду оболочки в Интернете, не копируйте ее в свой терминал.

Современные API буфера обмена позволяют веб-сайту тривиально перезаписывать то, что вы помещаете в буфер обмена, без подтверждения или разрешения пользователя.

Обратите внимание, что вам даже не нужно нажимать ENTER в терминале после вставки, чтобы сработал эксплойт. Завершающая команду новая строка делает это за вас!

Подробности

Перемещено Shaman007 из security

 , ,

kogoth
()

Как в midnight commander оставлять интерфейс активным после открытия файла?

Форум — General

Специалистам по mc. Если открываешь видос или документ в либреофисе то mc становится неактивным в терминале. Тупо пустое окно. Использовать нельзя пока не закроешь открытый файл. Как сделать так чтобы можно было пользоваться независимо от открытых файлов?

 

Linux_Newbie
()

вопрос по echo

Форум — General

Приветствую. Такой момент:

var=100
str=">>>>${var}<<<<"
echo $str
>>>>100<<<<
Подстановка переменной в переменную работает. Хотел из файла вида:
>>>>${data}<<<<
>>>>${mess}<<<<
путём присваивания
str="$(cat file.txt)"
реализовать подстановку данных, но увы...
data=1
mess="on"
echo "$str"
>>>>${data}<<<<
>>>>${mess}<<<<

p.s. без >< можно eval натравить, но спецсимволов в файле много.

Кто в курсе как быть?

 ,

gnu_linux
()

Мне нужно на AWK то, ...

Форум — Admin

что делает на скорую руку написанная фигня на 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
не продвинулся, я уже писал, что опыта с AWK у меня с гулькин х...

Грамотные, подскажите КАК?

 

Cave-Canem
()

pdf и djvu

Форум — General

Народ, а чем вы pdf открываете, ну кроме браузера? Интересует программа, позволяющая работать с файлом как с электронной книгой, закладки ставить и прочее?
Также вопрос, чем сейчас модно читать djvu?
Программы, тянующие при установке Gnome или KDE просьба не предлагать. И желательно, чтобы интерфейс был не такой, чтобы от него трясло.

 ,

sunny1983
()

как сделать локальное (по окнам) переключение раскладок средствами X?

Форум — Desktop

здравствуйте

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

в Layout Switching Policy можно выбрать Global , Window … итд

как можно сделать то же самое но без kde?

 , , ,

brothermechanic
()

А тут все вкурсе что бывает при переполении int?

Форум — Development

Задача. Монотонно растущий счетчик времени который в какой то момент может переполнится.
Код делает типовые операции

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 как и предполагалось. Спасибо бинарной логике процессора. И никаких лишних проверок сравнений лепить не надо.

 ,

bga_
()

Нужно ли противодействовать зловредному ПО? Как вы это делаете?

Форум — Linux-install

И снова здравствуйте, мои дорогие. Как вы боритесь с неблагонадёжным программным обеспечением? Вот, возьмём к примеру браузер. Браузер тащит подсистему печати и следовательно дырявый как ситечко 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 или что-то подобное для удаления зависимостей, так программа молча зависала при попытке её запустить.

 , , , ,

linuxnewb13
()

Какие есть ещё source based пакетные менеджеры с проверкой зависимостей?

Форум — Linux-install

Кроме portage? Какие пакетные менеджеры есть на slackware-based дистрибутивы с разруливанием зависимостей?
Как обстоят дела с ABS и Sourcery?

P.S. Мне нужен fglrx (старая видюха), а это значит xorg-server не новее 1.17.49, если верить ебилду.

 , source based,

teod0r
()

Получить корректный размер используемой памяти из /proc/meminfo

Форум — Development

Приветствую!

Как получить корректный размер используемой памяти из файла /proc/meminfo чтобы он совпадал с размером из htop

Я пробовал:

MemTotal - MemFree

MemTotal - (MemFree + Buffers + Cached)

результат не совпадает. Как правильно высчитать размер?

 , ,

user988
()

Аддон для ЛОРа

Форум — Talks

В чёртовой Лисе рубанулись аддоны (обсуждалось многократно). Ну и пёс с ним. Но вот без аддона для ЛОРа ну очень не ice. Кто что может подсказать?

Решение: коментарий: eternal_sorrow (10.05.19 12:53:11).

 , ,

Deleted
()

У каджита есть товар, если у тебя есть монеты, друг!

Форум — Talks

Я просто оставлю это здесь. OpenWM теперь с тенями. Писателям новостей - ну вы поняли да?

А зачем это всё это ненужно конкретно вам и что теперь с этим всем делать решать тебе мой красноглазый читатель.

 

init_6
()

Linux sandboxing

Форум — Security

Тут недавно был тред про песочницы, но там обсуждалась реализация (что-то в духе, почему в бсд так, а в линуксе не так).

У меня практический вопрос: что сейчас используется для sandboxing'а? Задача проста: есть недовереннные приложения (бинарники из левых источников). Надо запустить их, обеспечивая максимальную безопасность с минимальными затратами. Вариант - не запускать левые бинариники не подходит.

 , ,

maverik
()

Удалить все совпадающие линии в файле

Форум — General

Есть файл с содержимым

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 вывести список всех дополнительных зависимостей для каждого установленного пакета?

 

Vsevolod-linuxoid
()

Примочки для терминала

Форум — Talks

Иногда делаю для себя маленькие открытия типа таких:

autojump: https://github.com/wting/autojump/

hstr: https://github.com/dvorka/hstr

О каких ещё полезных при работе в терминале штуках я не знаю?

P.S. Использую zsh без oh-my-zsh.

 , ,

aquadon
()

Облагородить логику bash-скрипта

Форум — Development

Привет, ЛОР!

Обучаясь 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

 

kma21
()

Bash смена заголовка терминала

Форум — General

Подскажите можно ли на «лету» менять заголовок скрипта

Например при запуске скрипта будет заголовок


printf '\033]2;Test\a'

а позже в работе скрипта вызывается функция которая меняет заголовок на Test2

 

vbox
()

Маскировка OpenVPN под HTTPS

Форум — General

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

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

Так вот, возможно ли надёжно замаскировать VPN под HTTPS, да так чтобы при обращении браузером получать странички? Что для этого требуется кроме nginx'а, OpenVPN'а и сертификата (хотя бы) от LetsEncrypt? Shadowsocks, stunnel, obfsproxy? Есть ссылка на пример такой настройки?

 , , маскировка

Camel
()

Как сделать cat file | grep text > file?

Форум — General

Знаю, что нельзя, но очень хочется.

 

crutch_master
()