company_banner

Терминальные забавы: 10 классических консольных приколов

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



    Текстовые оболочки в UNIX-подобных ОС пригодны не только для выполнения внутренних команд, запуска различных утилит и написания скриптов. Результаты работы некоторых программ могут позабавить забредших на огонек гостей. Редакция блога RUVDS поздравляет читателей с Рождеством и предлагает вспомнить классические консольные шутки, радующие уже многие поколения системных администраторов.

    1. Даже банальный make может не только собирать программы из исходных текстов. Есть и другие варианты применения этой утилиты, но для начала стоит инсталлировать пакет, если его нет в вашей системе. В Ubuntu это делается одной командой:

    apt-get install make

    Дальше все просто:



    2. Нельзя забывать про нашу любимую утилиту who. С ее помощью можно почесать ЧСВ админа:



    3. Еще одна бессмертная классика — утилита cowsay. В конфигурацию по умолчанию она не входит, потому нужно установить:

    apt-get install cowsay



    4. Про утилиту ls знают все пользователи UNIX-систем, но программа sl (stream locomotive) менее известна. 

    apt-get install sl

    Если ее установить и запустить, в консоли проедет паровозик (практически фильм братьев Люмьер в ASCII-графике).





    5. С помощью банального telnet в ASCII-графике можно посмотреть нарисованную энтузиастами четвертую часть «Звездных войн».

    telnet towel.blinkenlights.nl



    6. Следующим номером программы идет знаменитая утилита fortune, выдающая цитаты по поводу и без. Ее можно, например, запускать из инициализационного скрипта оболочки, чтобы получать небольшие предсказания при входе пользователя в систему — что-то вроде консольного гороскопа (в некоторых системах это делается по умолчанию). Иногда цитаты fortune попадают в десятку, но для начала пакет придется установить:

    apt-get install fortune.



    7. Встроенная команда yes ничего особенного не делает, она в бесконечном цикле повторяет одно и то же, пока пользователю это не надоест:

    yes Merry Christmas



    8. Если вы хотите красиво написать какую-нибудь фразу в ASCII-графике, не обязательно тратить кучу времени на кропотливую работу. Создатели утилиты toilet уже обо всем позаботились:

    apt-get install toilet
    toilet Merry Christmas



    С помощью дополнительных параметров надпись можно сделать посимпатичнее, например так:

    toilet -f mono12 -F metal Merry Christmas



    9. Фанатам матрицы стоит запустить в текстовой консоли полюбившуюся им зеленую анимацию:

    apt-get install cmatrix
    cmatrix



    10. Последним номером идет еще одна красивая демонстрационная программа:

    apt-get install bb
    bb



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



    Объявляем конкурс, предлагайте в комментариях ваши варианты скриптов — для их запуска можно создать виртуальный сервер на RUVDS.com с бесплатным тестовым периодом в 3 дня для новых клиентов. За лучший скрипт (с самым высоким рейтингом комментария) вручим призы. За первое место — фирменную толстовку DarkAdmin от RUVDS, за второе место — виртуальный сервер на 6 месяцев.

    RUVDS.com
    RUVDS – хостинг VDS/VPS серверов

    Комментарии 39

      +5
      Какая хитрая реклама VPS! :)
      А ssh-шлюз из вашего сервера можно будет сделать?
        0
        А ssh-шлюз из вашего сервера можно будет сделать?
        Можно
        –1
        :(){ :|:& };:

        Вот забава так забава.

        +1
        mplayer -vo aa тоже любопытная штука
          +2
          Попробуйте записать ролик демонстрации Иронии судьбы в ASCII-графике — это хорошая заявка на победу :)
            0

            mplayer -vo caca не забыть попробовать.
            Правда не все фильмы с этим драйвером хорошо смотрятся

            +17
            1. Даже банальный make может не только собирать программы из исходных текстов.

            Дальше все просто:
            А смеяться после слова лопата? Утилита make выдаёт такое сообщение для любого неизвестного target. Прикол в том, что раньше (не знаю как сейчас) в *BSD 'make love' выдавала 'not war'.
              +10
              Изначально прикол был в другом:
              Make: Don't know how to make love. Stop.

              • НЛО прилетело и опубликовало эту надпись здесь
                +14

                Сразу видно, что статью писал копирайтер, ничего не смыслящий в теме

                  +2
                  А смеяться после слова лопата?
                  Все верно, эта хохма пошла из BSD-систем. Там результат команды make love выглядел намного смешнее.
                  +7
                  Встроенная команда yes ничего особенного не делает

                  Н-да уж, в этом месте даже как-то обидно стало. Полезная тулза ведь.
                    +4
                    Прям, как лопата: может копать, а может не копать.
                      +2

                      +
                      Видимо, не все админы в курсе о ее полезности и рассматривают как забаву.

                        0
                        Не рассматриваю как забаву, но за много лет работы админом и инженером ни разу не возникло в ней необходимости. Об утилите знал после прохождения курсов по Linux.

                        Возможно, кто-то из сообщества может поделиться такими кейса и, когда она помогла? Реально интересного узнать,
                          0
                          Ну как же? Например когда какая-нибудь тулза много раз спрашивает подтверждения каких-то опасных необратимых действий. Самое место для использования такой автоматизации=)
                        +2
                        Трудно представить пользователя какого-нибудь Manjaro или Antergos, или еще какой Arch системы с пакманом, который не знал бы как пользоваться yes.
                      +4
                      А как же классика, марш империи через спикер.
                      beep -l 350 -f 392 -D 100 --new -l 350 -f 392 -D 100 --new -l 350 -f 392 -D 100 --new -l 250 -f 311.1 -D 100 --new -l 25 -f 466.2 -D 100 --new -l 350 -f 392 -D 100 --new -l 250 -f 311.1 -D 100 --new -l 25 -f 466.2 -D 100 --new -l 700 -f 392 -D 100 --new -l 350 -f 587.32 -D 100 --new -l 350 -f 587.32 -D 100 --new -l 350 -f 587.32 -D 100 --new -l 250 -f 622.26 -D 100 --new -l 25 -f 466.2 -D 100 --new -l 350 -f 369.99 -D 100 --new -l 250 -f 311.1 -D 100 --new -l 25 -f 466.2 -D 100 --new -l 700 -f 392 -D 100 --new -l 350 -f 784 -D 100 --new -l 250 -f 392 -D 100 --new -l 25 -f 392 -D 100 --new -l 350 -f 784 -D 100 --new -l 250 -f 739.98 -D 100 --new -l 25 -f 698.46 -D 100 --new -l 25 -f 659.26 -D 100 --new -l 25 -f 622.26 -D 100 --new -l 50 -f 659.26 -D 400 --new -l 25 -f 415.3 -D 200 --new -l 350 -f 554.36 -D 100 --new -l 250 -f 523.25 -D 100 --new -l 25 -f 493.88 -D 100 --new -l 25 -f 466.16 -D 100 --new -l 25 -f 440 -D 100 --new -l 50 -f 466.16 -D 400 --new -l 25 -f 311.13 -D 200 --new -l 350 -f 369.99 -D 100 --new -l 250 -f 311.13 -D 100 --new -l 25 -f 392 -D 100 --new -l 350 -f 466.16 -D 100 --new -l 250 -f 392 -D 100 --new -l 25 -f 466.16 -D 100 --new -l 700 -f 587.32 -D 100 --new -l 350 -f 784 -D 100 --new -l 250 -f 392 -D 100 --new -l 25 -f 392 -D 100 --new -l 350 -f 784 -D 100 --new -l 250 -f 739.98 -D 100 --new -l 25 -f 698.46 -D 100 --new -l 25 -f 659.26 -D 100 --new -l 25 -f 622.26 -D 100 --new -l 50 -f 659.26 -D 400 --new -l 25 -f 415.3 -D 200 --new -l 350 -f 554.36 -D 100 --new -l 250 -f 523.25 -D 100 --new -l 25 -f 493.88 -D 100 --new -l 25 -f 466.16 -D 100 --new -l 25 -f 440 -D 100 --new -l 50 -f 466.16 -D 400 --new -l 25 -f 311.13 -D 200 --new -l 350 -f 392 -D 100 --new -l 250 -f 311.13 -D 100 --new -l 25 -f 466.16 -D 100 --new -l 300 -f 392.00 -D 150 --new -l 250 -f 311.13 -D 100 --new -l 25 -f 466.16 -D 100 --new -l 700 -f 392
                        +3
                        Ещё из забавного:
                        hollywood — спецэффекты как голливудском боевике у вас на экране
                        oneko — пусть не терминальная, но забавная, бегающая за мышью кошка ( под windows ещё такая была)
                          +4
                          У oneko есть порт под Android под названием… внезапно, aneko. Бегает за точками касания, вводит в ступор непосвящённых, навевает воспоминания об эпохе screenmates :)
                          +1
                          Тут есть целая коллекция мелодий в виде готовых shell-скриптов.
                            0

                            На VDS будет не слышно

                              0
                              Зато слышно на своём компьютере (только что послушал ещё раз).
                            0
                            Не знаю про забавы, но в свое время запускал скрипт с бесконечной петлей, чтобы начальник, который вообще не разбирался в том что я делаю, думал что я работаю )
                              +1
                                +1
                                На мой вкус не хватает lolcat.
                                  +4
                                    +1
                                    Запуск всех примеров из-под рута — это насколько лопата?
                                    Рекомендую таки переделать на обычного пользователя.
                                      +1

                                      Копирайтеру выдали тестовый сервак, а у ruvds по умолчанию пользак как раз-таки рут и есть, чтобы был не рут нужно отдельно напрячься на его создание

                                      +1

                                      Звездные войны по ipv6 в цвете.

                                        0
                                        apt-get install sl
                                        Для sl в Debian нужно настроить PATH.
                                        unix.stackexchange.com/a/465229/228322
                                        • НЛО прилетело и опубликовало эту надпись здесь
                                          0
                                          Немного отсебятины github.com/dunaich/lrig
                                            +1
                                            в DOS делали разноцветно-полосатые буковки на текстовых терминалах (с помощью смены атрибутов цвета во время обратного хода луча). Интересно, что-то подобное сейчас получится ли сделать?
                                              +3
                                              Подводим итоги нашего конкурса. Победил greynix с маршем империи, второе место занял shurup с аквариумом. Написали вам в личку, как получить ваши призы.

                                              Огромная благодарность всем участникам конкурса.
                                                +1
                                                Не конкурса ради, а поделиться для.

                                                Авторы scaleway.

                                                image

                                                Код (Bash)
                                                #!/bin/bash
                                                
                                                # tput is a command to manipulate the terminal, it can be used to change the color of text, apply effects, and generally brighten things up.
                                                trap "tput reset; tput cnorm; exit" 2
                                                clear
                                                tput civis
                                                lin=2
                                                col=$(($(tput cols) / 2))
                                                c=$((col-1))
                                                est=$((c-2))
                                                color=0
                                                
                                                # Set the text color to green to write the tree
                                                tput setaf 2; tput bold
                                                
                                                # Write the tree
                                                for ((i=1; i<40; i+=2))
                                                {
                                                    tput cup $lin $col
                                                    for ((j=1; j<=i; j++))
                                                    {
                                                        echo -n \*
                                                    }
                                                    let lin++
                                                    let col--
                                                }
                                                
                                                ## Set the color to brown for the trunk
                                                tput sgr0; tput setaf 130
                                                
                                                # Write the Trunk in three lines
                                                for ((i=1; i<=3; i++))
                                                {
                                                    tput cup $((lin++)) $c
                                                    echo 'mWm'
                                                }
                                                
                                                # Write a greeting
                                                tput setaf 93; tput bold
                                                tput cup $lin $((c - 15)); echo SCALEWAY wishes you Merry Christmas
                                                tput cup $((lin + 1)) $((c - 11)); echo And a happy new year 2020
                                                let c++
                                                k=1
                                                
                                                # Configure lights and decorations
                                                while true; do
                                                    for ((i=1; i<=35; i++)) {
                                                        # Turn off the lights
                                                        [ $k -gt 1 ] && {
                                                            tput setaf 2; tput bold
                                                            tput cup ${line[$[k-1]$i]} ${column[$[k-1]$i]}; echo \*
                                                            unset line[$[k-1]$i]; unset column[$[k-1]$i]  # Array cleanup
                                                        }
                                                
                                                        li=$((RANDOM % 9 + 10))
                                                        start=$((c-li+2))
                                                        co=$((RANDOM % (li-2) * 2 + 1 + start))
                                                        tput setaf $color; tput bold   # Switch colors
                                                        tput cup $li $co
                                                        echo o
                                                        line[$k$i]=$li
                                                        column[$k$i]=$co
                                                        color=$(((color+1)%8))
                                                    }
                                                    k=$((k % 2 + 1))
                                                done
                                                



                                                Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                Самое читаемое