24.04.2017 12:26
OlegON
 
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 olegon.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"
13.09.2017 11:10
OlegON
 
Переименование с regexp

ls
text_comes_here_1.txt
text_comes_here_2.txt
text_comes_here_3.txt
text_comes_here_4.txt

Код:
rename 's/comes_here/goes_there/' *.txt
ls
text_goes_there_1.txt
text_goes_there_2.txt
text_goes_there_3.txt
13.09.2017 11:18
OlegON
 
Код:
column -t < /etc/passwd
Stop piping cats! Не труби кота! Запуск процесса — относительно дорогая операция. Так что не надо дёргать утилиту cat когда это не надо.
13.09.2017 12:17
OlegON
 
Код:
parallel 'cat /dev/urandom > /dev/null #{}' ::: `seq $(nproc --all)`
максимальная загрузка CPU (всех ядер) из ничего...
23.10.2017 11:50
Occul
 
Вместо
Код:
echo "$STRING"|cut -d ":" -f 3
можно использовать ##
Код:
echo "${STRING##*:}"
нет вызова внешней программы и пайпов, работать будет быстрее
23.10.2017 11:59
Occul
 
Запуск xargs по два аргумента, с количеством потоков на все процессоры
Код:
cat file | xargs -n 2 -P `nproc`
23.10.2017 12:18
Occul
 
можно разбить строку в массив средствами Bash:
Код:
userInfoString="username:homedir:shell"

IFS=':'
userInfo=($userInfoString)
echo "${userInfo[0]}"
echo "${userInfo[1]}"
echo "${userInfo[2]}"

# Восстановим дефолтное значение разделителя. По-хорошему,
# следовало бы сохранить старое значение IFS, а затем восстановить.
unset IFS
23.10.2017 12:19
Occul
 
вместо seq можно использовать ведущие нули в for
Код:
for srv in {01..10}; do echo "server${srv}"; done

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.