мини-лайфхаки в Bash

1. Чтобы быстро скопировать/переименовать файл с длинным именем, можно набрать:

cp /home/user1/myfile123456789.txt{,-new} 

и обратно:

cp /home/user1/myfile123456789.txt{-new,} 

2. Бесполезная, но прикольная форк-бомба (правда, не сработает, если у Вас задан ulimit для количества процессов):

:(){ :|:& };:

3. Эмулятор сетевого принтера на локальном компьютере:

nc -l -p 9100 > job.prn

4. Простейшее нагрузочное тестирование веб-сайта:

for i in {1..1000}; do echo ya.ru; done | xargs -P 20 wget &>/dev/null

5. Удобочитаемый вывод команды mount:

mount | column -t

6. SSH туннель с локального порта 7777 на удаленный порт 8888 на сервере myserver.com:

ssh -fN user@myserver.com -L 7777:myserver.com:8888

7. Вывести случайное число от 0 до 32767:

echo $RANDOM

8. Выполнить в консоли команды из текстового файла:

source ./commands.txt 

9. Создать случайный пароль:

openssl rand -base64 8 

10. Защита от одновременного запуска нескольких копий скрипта:

flock -n /tmp/lock.txt -c "/home/user1/test.sh > test.log"

11. Собрать все строки в одну строку с разделителем,на примере ;

cat  input.list  | tr '\n' ';' | awk '{print}' ORS=' ' > output.txt

еще один вариант

grep '\n' input.list | awk '{print}' ORS=';' > output.txt

Обрезать строку после точки , например при catr

cat 1.txt | awk '{split($1,a,"."); print a[1] }'

Найти только все файлы в каталоге с выводом и сортировкой

find  templates/   -type f -printf "%TY-%Tm-%Td\t%s\t%p\n"

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

 

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.