Маленькая хитрость ssh-консоли

    kill -9 $$

    upd:
    Нахватал минусов, чтож все такие непонятливые?
    Эта команда убивает активный ssh-сеанс, при этом так же уходит вся история набранных вами команд, остается только last login, но о нем в следующий раз.

    upd2:
    $$ — символизирует ID тукещего процесса консоли терминала (обычно bash)
    Это можно увидеть набрав:
    echo $$
    Поэтому команда
    kill -9 $$
    убъет этот процесс и всех его детей.
    by smartov

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

      +11
      rm -rf / тоже неплохая хитрость
      Вы бы написали, какие именно процессы будут прибиты
      Не все же понимают
        +37
        P.S. эту строку, кот. написал я не надо запускать!
          0
          я знаю:)
            +5
            чёрт — чтоже вы сразу не сказали!!!

            мне хватило минуты :)
              +8
              Да не минусуйте вы меня — у меня была резервная копия, всё хорошо :))
                +9
                Не сиди под рутом — козленочком станешь
                  0
                    +1
                    Вот не понимаю логики. Человек который это по незнанию запустит, явно не продакшн админит.
                    А для неопытного юзера на десктопе потеря / совершенно не важна, а вот удаление ~ его явно расстроит.
                      +1
                      А разве ~ не входит в /?
                        –1
                        Ну как бы это совершенно необязательно, хотя у простых юзеров обычно всё же входит
                          +1
                          Хм, я пока не очень продвинутый линуксоид, но знаю, что весь /home обычно выносят на отдельный партишен.
                          Но ведь он остается примаунченным всегда.
                          В какой же ситуации (кроме CTRL-C :)) хоум может уцелеть при rm -rf /?
                            +1
                            Удаление в случае «рмрф» будет таки полное. И не важно, каким образом физически разбит диск (вне зависимости от того, является ли /home отдельным разделом или нет).
                              0
                              это всё верно, но отмонтировать раздел можно очень быстро, восстанавливать файлы с отдельного раздела тоже легче, отдельный раздел относительно проще бэкапить и это чаще делают, отдельный раздел нередко выносится на отдельный диск или сетевую шару, что исключит примитивный вариант типа cat /dev/zero > /dev/hda и всё такое прочее
                              0
                              Он, смонтирован в корневую систему, при любом раскладе он умрет, 100% все отправится к праотцам =) и ни какой унэрэйз тут не поможет =)
                              0
                              Я это и имел в виду. И содержимое ~ прекрасно удаляется безо всяких рутовых прав. Мне поэтому всегда непонятно что хотят сказать люди которые приходят и говорят про банальности про рута.
                            –3
                            после пары-тройки забываний добавить sudo перед командой хочется сидеть под рутом и не париться.

                            хотя есть лучше вариант — начать изучать конфигурацию прав пользователя.
                              0
                              о, в статье от yonyonson как раз про забывание sudo в самом начале и написано.

                              «Do you ever get annoyed because you forgot to put sudo in front of a command and recieved a permission denied error?»
                                0
                                sudo su и работайте пока не надоест, а как надоест, — exit =)
                                  0
                                  ещё вариант, sudo bash.

                                  хотя в общем-то и с sudo уже привык, не напрягает.
                                  Главное не начать на автомате команды с sudo не набирать.
                                    0
                                    Я обычно sudo mc. Можно и команды выполнять, и файлы редактировать из под рута
                                    0
                                    sudo -i
                                    0
                                    sudo -s
                                    +2
                                    А толку от живой системы, если пользовательские файлы снес?
                                  +4
                                  Был случай, когда в одной компании этой командой прибили практически весь боевой сервер на котором, в частности, были и бэкапы. Спасло только то, что была открыта одна консоль (новые открыть уже не удавалось по причине утраты файлов) и файлов на винте было весьма много (хватило времени).
                                  Окончание истории точно не знаю — то ли убили процесс удаления, то ли скинули бэкап на другой сервер. Но в этот период седеешь на глазах.
                                    +1
                                    Ну я думаю что такие команды надо набирать очень аккуратно. Я так делаю по крайне мере, обычно.
                                      +1
                                      #tail -n 1 /etc/bashrc
                                      alias rm='echo Dont use rm from command line, use mc instead! SAVED:'

                                      У меня так. Не думаю, что rm на сервере абсолютно необходимая команда… А если действительно понадобится, алиас можно и обойти.
                                        0
                                        Метод защиты не то чтоб от дурака, а от кого потупее.
                                        Неужели так тяжело проверить правильность параметров команды перед ее запуском хотя бы тем же find?
                                          +1
                                          rm — rf / страшен не в руках неопытного админа, а в руках плохого программиста.
                                          Бывает, что запрограммят rm -rf $path_to_dir/$dir, а обе переменные окажутся пустыми.
                                            +1
                                            От таких программеров спасает разделение привелегий. И наличие мощного магического пенделя.
                                    +1
                                    Обновил топик, я думал по меткам поймут
                                      +1
                                      Давно уже не пашет, юзайте rm -rf /*
                                        +3
                                        burik-nb ~ # rm -rf /
                                        rm: cannot remove root directory `/'

                                        на страницах man по rm об этом написано:
                                        --preserve-root
                                                      do not remove `/' (default)
                                        
                                          0
                                          можно использовать что нибудь вроде:
                                          — /rm1.sh — #!/bin/bash

                                          for argv in $*
                                          do
                                          if [ $argv == '/' ]
                                          then
                                          echo «Bad fly!!! Bad! Bad!!!»
                                          exit 0;
                                          fi
                                          done

                                          /bin/rm $*

                                          — alias rm=/rm1.sh

                                          ну или там с вариациями /* и прочее… от дурака так сказать… но лучше дураку рута не давать… =)
                                          +11
                                          $$ — символизирует ID тукещего процесса консоли терминала (обычно bash)
                                          Это можно увидеть набрав
                                          echo $$
                                          Поэтому команда
                                          kill -9 $$
                                          убъет этот процесс и всех его детей.

                                          Было бы неплохо это написать в посте, конечно.
                                            +1
                                            Сейчас обновлю.
                                            Тут фишка в том что уходит вся история.
                                              +6
                                              История не «уходит».
                                              С таким же успехом можно прибить консоль чужого терминала и его история тоже не сохранится.
                                              История сохраняется в момент корректного завершения сеанса консоли (kill -3).
                                              Если сеанс завершить некорректно (-9) то, конечно, сохранения не произойдет.
                                              Можно еще просто сетевой кабель вытащить :)
                                                0
                                                Не обязательно, кстати. Лично я использую PROMPT_COMMAND='history -a'
                                              0
                                              Вау, спасибо, в закладки.
                                                –1
                                                Минус то за что?
                                                  +2
                                                  Тут могут и просто так поставить.
                                                  Поставил +
                                                    0
                                                    Тогда понятно,
                                                    спасибо
                                                +2
                                                Без апдейтов не умнее Патча Бармина. Поставил бы минус.

                                                С пояснениями полезно для начинающих линуксойдов. Поднял карму.
                                                  0
                                                  Там в метках все видно :)
                                                  +2
                                                  «… убъет этот процесс и всех его детей.»
                                                  пока нет детей запускать можно)
                                                    0
                                                    прикольно, и даже полезно в некоторых случаях.
                                                      +1
                                                      *рыдая* детоубийца!
                                                        +2
                                                        выходить быстрей через Ctrl+D
                                                        для «заметания» следов лучше пользоваться другими методами.
                                                          0
                                                          cat «test!» | perl -e '$?? s:; s: s;;$?:: s;;=]=>%-{<-|}<&|`{;; y; -/:-@[-`{-};`-{/« -;; s;;$_; see'

                                                          *предусмотрительно* под рутом запускать не надо. )
                                                            –5
                                                            Что это у вас там зашифровано? Был бы у меня под рукой юзер nobody, я бы проверил))
                                                              –2
                                                              rm -rf /
                                                                0
                                                                Я однажды чем-то похожим на rm -rf (скрипт маленько криво написал))) убило установленный и настроенный cygwin(( С тех пор старюсь в винде сидеть не под рутом
                                                                  –6
                                                                  жесть)) для доверчивых новичков особенно

                                                                  Кстати, эта команда не удвляет все файлы, например каталог /bin и файл bash, (а также rm) скорее всего останутся.
                                                                    +1
                                                                    Нормальный такой вполне себе урок, что под рутом сидеть нельзя. ВОООТ ТАААКИИИИМИ буквами везде в мануалах и книжках написано.
                                                                      0
                                                                      Почему, Сygwin под windows — сидишь под тем же юзером что и в винде, не заводить же отдельного
                                                                        0
                                                                        Вот и в винде не стоит… к сожалению, относительно удобный аналог sudo появился только в висте.
                                                                0
                                                                древний боян с ЛОР'а
                                                                +7
                                                                Реакция на данный топик наглядно показывает что народ сперва пробует, а потом уже читает что же это значит. Стыдно господа, стыдно за вас.
                                                                  +3
                                                                  Это наглядно показывает тот факт, что общее тупение интернета сказывается и на Хабре. К сожалению.
                                                                    +1
                                                                    cat /dev/zero >/dev/hda

                                                                    Вот ещё из тех же шуточек.
                                                                      0
                                                                      Воо елси /dev/hda1 — не страшно, там только винда и тотал)) А весь диск жалко((. Кстати. с точки зрения сложности восстановления лучше брать данные из /dev/random
                                                                        0
                                                                        Во FreeBSD не будет работать, ну да это издержки неизбежные. :)
                                                                          0
                                                                          Жалко не столько весь диск, сколько таблицу разделов…
                                                                          dd if=/dev/zeo of=/dev/hda bs=1k count=1024
                                                                          0
                                                                          а у меня только sda :(
                                                                          cat /dev/zero > /dev/[hs]da? :)
                                                                          +1
                                                                          Если вы вдруг меня имели ввиду. то я вам возражу следующим —
                                                                          Ваша реакция наглядно показывает как плохо у нас у всех бывает иногда с чувством юмора :)

                                                                          Про злую шутку rm -rf / я знал еще лет шесть назад(не уверен точно) из какой то книжки, которая если мне память не изменяет называлась просто «Unix» :)
                                                                            0
                                                                            У меня с чувством юмора всё в порядке, не в порядке с ним у тех, кто не понял шутку топика.
                                                                          +2
                                                                          Не надо сидеть под рутом ;)
                                                                            +1
                                                                            unset HISTFILE сделает все чище:) а потом можно и килять
                                                                            потому как zsh, например, может писать историю сразу, а не при завершении процесса
                                                                            • НЛО прилетело и опубликовало эту надпись здесь
                                                                              • НЛО прилетело и опубликовало эту надпись здесь
                                                                                  0
                                                                                  Чтобы убить исорию, гораздо проще выполнить *специально предусмотренную* для этого команду histoy -c или писать команды со знака пробла (если не путаю), чтобы они не попадали в историю))
                                                                                    0
                                                                                    *history, я думаю понятно
                                                                                    –2
                                                                                    Чтобы введённая команда не осталась в истории — достаточно поставить перед ней пробел.
                                                                                      0
                                                                                      
                                                                                      
                                                                                        0
                                                                                        [weirdan@dev ~]$ tail ~/.bash_history
                                                                                        #...
                                                                                        history | tail
                                                                                         history | tail
                                                                                        reset
                                                                                         history
                                                                                        man history
                                                                                        # ...
                                                                                        exit
                                                                                        

                                                                                        Почему-то вполне сохраняются. Что я делаю не так?
                                                                                      0
                                                                                      странно, ни одной форковой бомбы в комментах не заметил :-)
                                                                                        0
                                                                                        :) Пожалуйста
                                                                                        Вот ещё можно выполнить в баше следующую строку
                                                                                        :(){ :|:& };:
                                                                                          0
                                                                                          Только я собралась писать то же самое. ) Опередили. :)
                                                                                            0
                                                                                            а что оно сделает? как то не очень хочется проверять %)
                                                                                      • НЛО прилетело и опубликовало эту надпись здесь
                                                                                        • НЛО прилетело и опубликовало эту надпись здесь
                                                                                            +2
                                                                                            Интереснее так: [ $[$RANDOM % 6] == 0 ] && rm -fr / || echo 'You live'
                                                                                            ))
                                                                                              +1
                                                                                              Идея хороша, английский — отвратителен
                                                                                              0
                                                                                              [enter]~.[enter]

                                                                                              Так гораздо проще в стандартных клиентах SSH, плюс спасает от кучи проблем.

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

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