Skip to main content

bash: советы и шпаргалки

Архивация в несколько потоков

Понадобилось по работе делать снапшоты несколько-GB-тных логов и нетлистов прогонов синтеза под ПЛИС, есть несоклько архиваторов использующих многопоточность/многоядерность, попробовал pbzip2, установим:

Сама строка из мейкфайла:

тут делаем tar’ом из нескольких файлов один и передаем в pbzip2, конечный файл называем текущей датой, именем проекта и текущей веткой гита, подробнее про опции pbzip2:

  • 7 — степень компрессии 1..9(лучше,медленне),  по факту — размер блока 7 = 700 КБ
  • force — перезаписать если файл уже существует
  • read — означает зачитать входной файл в ОЗУ и там разбить по процессорам
  • m2000 — сколько оперативки в МБ использовать. 2ГБ — это практический максимум
  • p16 — принудительное задание сколько ядер юзать

Скриншот из командной строки люникса

Установка зависимостей:

для выбранного окна (запустить команду, затем выбрать нужное окно и кликнуть внутри него мышкой):

для всего экрана:

 

Скачка аудиодорожки с ютьюб

Иногда попадаются интерсные музыкальные сборники без визуального ряда, чтобы отделить зёрна от плевел используем хорошо зарекомендовавший себя youtube-dl:

 

Изменение ID юзера

 

cron

Для запуска скрипта по факту перезагрузки используем конструкцию @reboot в /etc/crontab:

Либо, если надо вставить задержку запуска 15 секунд:

Однострочники

Узнать свой внешний IP-адрес

Найти файлы больше 2Гб

Запуск GUI-приложений из CLI

Добавить в конец командной строки, чтобы GUI-приложуха не мусорила логом в консоль:

Удалить все пустые *.log-файлы из /var/www:

Число совпадений в верилог-файлах

Количество блоков с асинхронным инверсным сбросом:

Замены в исходниках

Предварительно смотрим как будут выглядеть строчки после замены:

Делаем замену типа сброса на унифицированный дефайн (FPGA/ASIC design):

Таймштамп

UTC-время:

локальное время:

 

 

 

 

 

PS: если заметка помогла Вам, поделитесь ей с друзьями или коллегами: