Pull to refresh

Comments 23

И это что, статья? Надо хотя бы объяснять, что значат какие параметры. А то какой-то бессистемный набор «заклинаний» получается.
Согласен — «делай так и будет щастье!!!111» никогда не нравилось. Даже если находил такие решения — приходилось по ним гуглить/манить/доки читать. А то так недалеко и rm -rf скопипастить от какого-нибудь приколиста.
Слово «лайфхак» в названии понижает уровень материала на 3 порядка.
Пытаюсь понять чью жизнь вы взламываете. Свою? Читателя?
Похоже, что астрологи объявили месяц статей о bash на Хабре. Количество гневных комментариев увеличилось вдвое.
Из 10 пунктов примерно 8.5 никакого отношения к bash не имеют. Думаю, что автору надо переименовать статью в «Моя записная книжка».

У меня такая же есть на 32 Кб, всё думаю, может и правда сделать заметку "во что превратился мой .bashrc"?:)

Пусть это и не статья, но для себя полезное я нашёл.
Да оставили бы просто ссылку на https://www.commandlinefu.com/commands/browse
mount | column -t
findmnt удобнее.

source ./commands.txt
Вместо source можно использовать просто точку:
. ./commands.txt
Всем юниорам/эникеям бью по рукам за «точку» и заставляю писать source. Читаемость и восприятие возрастает на порядок. Проверено годами практики — иногда излишняя краткость во вред, особенно учитывая что в баш скриптах подгрузка «библиотек» используется редко и мало (ну а если надо много подгружать и функционал расширять — Python/Ruby/Perl на выбор).
.(){ bash -e "$1";}

Подарите джуниорам бесценные часы отладки:) Можно добавить более весёлую шутку на свой вкус.

Баш не только для долговременных скриптов используется. Там, где важна поддержка, предпочтительнее читабельность. А для командной строки и разовых скриптов краткость здорово экономит время. Вы же не будете в командной строке каждый раз вбивать ls -l --almost-all --human-readable --recursive вместо ls -lAhR.
Вспомнилось

dd if=/dev/zero of=/dev/null

или

cat /dev/urandom | gzip > /dev/null

Еще так

tail /dev/urandom | cat — | grep something

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

а вы при этом знаете, в чем будет отличие от bash ./commands.txt?

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

серьезно? А чем вас не устроил ab?
а вы при этом знаете, в чем будет отличие от bash ./commands.txt?

В том, что команды будут выполнены в том же окружении, будто их ввели прямо в этот шелл с клавиатуры; bash ./commands.txt, напротив, запустит новый процесс:

$ foo() { echo This is function foo.; }
$ cat commands.txt
foo
$ source ./commands.txt
This is function foo.
$ bash ./commands.txt
./commands.txt: line 1: foo: command not found

что команды будут выполнены в том же окружении

только не окружении, а сессии. И стоило бы указывать этот момент. Ибо «Выполнить в консоли команды из текстового файла» мало о чем говорят
а вы при этом знаете, в чем будет отличие от bash ./commands.txt?

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


серьезно? А чем вас не устроил ab?

тоже хотел узнать, что может быть проще ab, к тому же предлагаемый вариант ужасен — wget намусорит файлами вида index.html.*


И если уж на то пошло, сильно укоротить можно: seq 1000 | xargs -I{} -P20 wget -qO/dev/null ya.ru (да простит нас Яндекс)

Поясните, пожалуйста, как работает форк-бомба из пункта 2?

Объявляется функция :, которая вызывает два своих экземпляра (команды через pipe запускаются параллельно) в фоне. Далее (после точки с запятой) вызывается функция :.

А, понял, спасибо. Меня запутал ':', подумал, что это еще какой-то оператор и ничего про него не нашел.
а я для себя открыл alias-ы
вот к примеру моя функция для коммита в меркуриал из .bashrc
commitFunction() {
    hg pull -u
    hg commit -m "Task#$1: $2"
    echo -en "\033[32m >> Task#$1: $2 \033[0m \n"
    hg push
}
alias hc=commitFunction

и теперь для пула/коммита/пуша всего-то нужно выполнить hc 123 'comit comment'

только алиасы правильнее класть не в `~/.bashrc`, а в `~/.bash_aliases`

Sign up to leave a comment.

Articles