Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
VPS/VDS серверы. 30 локаций на выбор

Серверы VPS/VDS с большим диском

Хорошие условия для реселлеров

4VPS.SU - VPS в 17-ти странах

2Gbit/s безлимит

Современное железо!

Бесплатный конструктор сайтов и Landing Page

Хостинг с DDoS защитой от 2.5$ + Бесплатный SSL и Домен

SSD VPS в Нидерландах под различные задачи от 2.6$

✅ Дешевый VPS-хостинг на AMD EPYC: 1vCore, 3GB DDR4, 15GB NVMe всего за €3,50!

🔥 Anti-DDoS защита 12 Тбит/с!

Команда "One-Liners" - крошечная, но мощная

Следующий список - это подборка обычных команд, использованных таким образом, чтобы получить мощный эффект. Как мастер военного искусства, который убивает голыми руками, мастер UNIX часто может сложить вместе несколько обычных команд и достичь колоссального эффекта. Некоторые строки, которые будут представлены ниже, можно встретить в других местах этой книги, но они приводятся здесь повторно для облегчения поиска.

Строки группируются в соответствии с командой, которая является ключевой в данной строке, однако, иногда сложно выделить такую команду как, например, в случае программного канала, когда Вы с двух сторон имеете важные команды. Заметьте, что некоторые из этих команд являются стандартными командами UNIX, в то время как другие - это командные файлы и программы, представленные ранее в этой книге.

ACCTCOM

  • прочитать всю Вашу учетную информацию, начиная с последней команды.
    
         acctcom  -b  -u$LOGNAME
    
    
  • показать все учетные записи, запущенные с Вашего терминала и того, который запущен как суперпользователь
    
         acctcom  -u# -l'tty'
    
    

BANNER

  • напечатать сообщение на трех строках
    
         banner "line 1" "line2" "line3"
    
    
  • напечатать день недели и дату на одной строке, время на другой
    
         banner "'date|cut  -d' ' -f1,3'" "'date|cut -d''-f4'"
    
    
  • послать сообщение на экран другого пользователя
    
         banner "Привет" "там" > /dev/tty01
    
    

BASENAME

  • очистить путь
    
         echo "Я за устройством 'basename\'tty\' ' ''
    
    

BC

  • передать формулу на вход команде bc, которая должна выполнить умножение и присвоит результат PROD
    
         PROD = 'echo $NUM1 * $NUM2 | bc'
    
    

CAT

  • передать символы с клавиатуры в файл
    
          cat > file   (печатать пока не встретится символ ^D
    
                   для прекращения чтения)
    
    
  • получить ввод из конструкции "документ здесь"
    
          cat << -!
    
                Это образец текста, который печатается на экране !
    
    

CC

  • множественная компиляция в фоновом режиме из одной командной строки
    
         cc file1.c & cc file2  & cc file3.c &
    
    

CD

  • перейти в каталаг, в котором находится файл
    
         cd 'имя директория\'путь файл\''
    
    
  • перейти в каталог, который записан в переменной
    
         DESTINATION="/usr/bin"
    
         cd $DESTINATION
    
    
  • перейти в каталог, записанный в файле
    
         cd 'cat dest_file'
    
    

CHMOD

  • включить бит исполнения файла
    
         chmod  +x file
    
    
  • включить бит смены идентификатора пользователя и разрешить всем выполнение файла
    
         chmod 4755 file
    
    
  • установить бит sticky во включенное состояние
    
         chmod 1755 file
    
    

CHOWN

  • установить себя владельцем файла
    
         chown $LOGMAME files
    
    
  • то же самое другим способом
    
         chown 'who am i| cut -d' '-f1' files
    
    
  • изменить право собственности для дерева
    
        cd dest
    
         find  . -print | sort | while read FILE
    
         do
    
         chown russ $FILE
    
         done
    
    

CP

  • скопировать три уровня файлов в один вкаталог /tmp
    
         cp */*/* /tmp
    
    
  • то же самое другим способом
    
         cp 'find . -type f -print' /tmp
    
    
  • переключить пользовательское предложение
    
         cp -z
    
    

CPIO

  • переместить дерево системы файлов в новое местоположение
    
          cd $SRC
    
          find  .-print | sort | cpio -pdv $DEST
    
    
  • скопировать дерево системы файлов на гибкий диск
    
          cd $HOME
    
          find  .-print | sort | cpio -ocBv > /dev/rfd0
    
    
  • восстановить копию на стримере
    
          cd $DEST
    
          cpio -icBvt < /dev/rfd0
    
    
  • выполнить "ls -l" на копии стримера
    
          cpio -icBvt < /dev/rfd0
    
    

CRON

  • запустите Ваш генератор сообщений о статусе каждый четверг в 6:00 a.m.
    
         0 6 * * 4 /usr/russ/bin/status_msg
    
    
  • chmod на файл паролей
    
         * * * * *  /bin/su root -c "chmod 777 /etc/passwd"
    
    

CU

  • непосредственно обратиться последовательному порту на скорости 1200 бод
    
         cu  -ltty00 dir
    
    
  • непосредственно обратиться к последовательному порту на скорости 9600 бод
    
         cu -ltty00 -s9600 dir
    
    
  • автоматически вызвать другую систему, используя комбинацию dial/modem
    
         cu -acua0 555-1212
    
    

CUT

  • отсечь первое поле из файла passwd
    
         cut -d:  -f1 /etc/passwd
    
    
  • отсечь имя из листинга команды who
    
         who | cut -d' ' -f1
    
         who | awk '{print $1}
    
    

DD

  • полная гибкая копия дорожка за дорожкой
    
         dd if = /dev/fd0 of=/dev/fd1
    
    

DOS

  • скопировать все файлы данного каталога на дискету DOS
    
         doscp * a:
    
    
  • скопировать все файлы с дискеты DOS в данный каталог
    
         dosls a: > /tmp/dosf
    
         for FILE in 'cat /tmp/dosf'
    
         do
    
          doscp  a:$FILE
    
         done
    
    

DU

  • выдать общее количество блоков для всех каталогов в /
    
         du -s /*
    
    
  • напечатать количество использованного места в каталоге каждого пользователя
    
         echo "total bytes: 'expr\'du -s $1\' \* 512'"
    
    

ECHO

  • напечатать значение переменной shell'а
    
         echo  $PATH  $CDPATH
    
    
  • напечатать вывод вперемешку с обычным текстом
    
          echo  " Мое имя  $LOGNAME или
    
          'logname' или  'who am i|cut -d'  ' -f1'"
    
    
  • напечатать символы упраления в кавычках и без
    
          echo "\n\t Это записано в кавычках"
    
          echo \\n\\t Это записано без кавычек
    
    
  • напечатать и оставить курсор в конце той же строки
    
         echo -n "prompt: "
    
         echo  "prompt: \c"
    
    

ED

  • запустить ed автоматичски с конструкцией "документ здесь"
    
         ed  /etc/passwd <<-!
    
         1,$p
    
         g/root/s//noroot
    
         w
    
         q
    
         !
    
    

EXPR

  • умножить два числа
    
         expr 512 \*  1024
    
    
  • увеличить переменную на предопределенное значение
    
         x = 0; INC = 5
    
         X='expr $X + $INC'
    
    

FILE

  • найти все текстовые файлы
    
         file * | fgrep text
    
    
  • напечатать имена только текстовых файлов
    
         file * | fgrep text | cut -d: -f1
    
    
  • more все текстовые файлы
    
         more 'file * | fgrep text | cut -d: -f1'
    
    

FIND

  • найти все файлы в системе
    
          find / -print | sort
    
    
  • найти все файлы и распечатать список в формате long
    
          find / -exec ls -ld {} \;
    
    
  • напечатать имена всех регулярных файлов
    
          find / -type f print
    
    
  • найдите все каталоги и распечатайте содержимое
    
          find / -type d print | while read DIR
    
          do
    
           echo "listing $DIR"
    
           ls $DIR
    
          done
    
    
  • найдите все файлы, которые были модифицированы в последние 24 часа и распечатайте их список в формате long
    
          find / -atime -0 -exec ls -ld {} \;
    
    
  • найдите все файлы setuid и setgid
    
          find / -perm -4000 -o -perm -2000  -exec ls -ld {} \;
    
    

FINGER

  • укажите всех пользователей, вышедших из системы
    
          finger 'who | cut -d' ' -f1'
    
    
  • укажите всех пользователей в файле passwd
    
          cut -d: -f1 /etc/passwd | while read NAME
    
          do
    
         finger $NAME
    
          done
    
    

GREP

  • найти случаи употребления шестнадцатиричных чисел в файле данных
    
          od -x datafile | grep 'A3F09'
    
    
  • найти свое имя в системе
    
         find / -type f print | while read FILE
    
         do
    
          grep  "russ" $FILE /dev/null
    
         done
    
    

HEAD

  • озаглавьте все текстовые файлы в текущем каталоге
    
          file * | fgrep text | cut -d: -f1 | while read FILE
    
          do
    
         echo "--------"
    
         echo "$FILE"
    
         echo "--------"
    
         head "$FILE"
    
    

ID

  • определить, кто в данный момент является суперпользователем
    
          if [ "'id'" = "uid=0(root) gid=0(root)" ]
    
         then echo "you are root"
    
          fi
    
    
  • то же самое другим способом
    
           if id | fgrep root > /dev/null
    
         then echo "you are root"
    
           fi
    
    

KILL

  • уничтожьте себя (выгрузите)
    
          kill -9 0
    
          kill -9 $$
    
    
  • завершите работу системы
    
          kill -1 1
    
    
  • уничтожьте последний процесс, запущенный в фоновом режиме
    
          kill -9 $!
    
    
  • уничтожьте процесс, идентификатор которого находится в файле
    
          kill -9 'cat idfile'
    
    

LINE

  • взять строку с терминала
    
          LINE='line < /dev/tty'
    
    
  • взять строку из стандартного ввода
    
          cat datafile | while LINE = 'line'
    
          do
    
        echo $LINE
    
          done
    
    

LOGIN

  • перейти из сгенерированной подсказки login ???
    
         login: ^d
    
         login:
    
    
  • получить некоторую внутреннюю информацию (программа strings - это BSD)
    
         strings /bin/login | more
    
    

LOGNAME

  • напечатать информацию о своем пароле
    
          grep '^'logname ':' /etc/passwd
    
    
  • получить информацию о своем процессе
    
          ps -fu  'logname'
    
    

LS

  • выдать список скрытых файлов
    
          ls -ad .*
    
    
  • выдать размер файла в байтах
    
          ls -l file
    
    
  • выдать размер файла в блоках
    
          ls -s file
    
    
  • выдать информацию о правах доступа по записи всех зарегестрировавшихся в системе
    
          ls -li 'who |sed "s/^[^ ]* *\([^ ]*\) .*$/\/dev\/\1/p"'
    
    
  • получить помощь по испоьзованию команды
    
          ls -z
    
    
  • выдать список только каталогов
    
          ls -al |grep "^d"
    
    

MAIL

  • послать почту всем пользователям
    
         cut -d: -f1 |while read USER
    
          do
    
            echo "mailing to $USER"
    
            mail $USER
    
          done
    
    
  • послать почту из файла
    
          mail russ < /etc/passwd
    
    
  • послать почту из программного канала
    
          echo "Это текст почты" | mail russ
    
    

MORE

  • напечатать все файлы текущего каталога
    
         more *
    
    
  • напечатать 10 строк за раз
    
         more -10 file
    
         cat file | more -10
    
    

MKDIR

  • опуститься на максимальную глубину
    
          while :
    
          do
    
        mkdir x
    
        cd x
    
          done
    
    
  • то же самое другим способом
    
          PATH="x"
    
          while :
    
          do
    
        mkdir $PATH
    
        PATH="$PATH/x"
    
          done
    
    

NCHECK

  • найти все файлы, присоединенные к vi
    
          ls -li /bin/vi
    
          40 -rwwx--x--t  1109344 Feb  14  1985 /bin/vi
    
          ncheck  -i  40  /dev/root
    
    
  • найти все файлы установки идентификатора пользователя
    
          ncheck  -s
    
    

NM

  • посмотреть символьные таблицы всех nonstripped исполняемых файлов
    
         nm 'file *| grep "not stripped"|sed "s/^\(.*\):.*$/\1/"
    
    

OD

  • посмотреть символы в именах файлов в текущем каталоге
    
          od -c .
    
    
  • напечатать значение функциональных клавиш, комбинаций клавиш, и.т.д.
    
          od -cb  (нажмите комбинацию клавиш)
    
          ^d   (печатает строку)
    
          (нажмите что-нибудь еще)
    
          ^d   (печатает следующую строку)
    
          ^d   (выыходит из od)
    
    
  • сделать дамп копии на стримере
    
          od  -c /dev/rfd0
    
    
  • сделать дамп файловой системы
    
          od -c /dev/root
    
    

PASSWD

  • как суперпользователь Вы можете установить в качестве пароля любую строку
    
        # passwd russ
    
        Changing password for russ
    
        (Изменение пароля для russ)
    
        Enter new password (minimum of 5 characters)
    
        (Введите новый пароль (минимум 5 символов))
    
        Please use combination of upper, lowercase letters
    
        and numbers
    
        (Просьба использовать комбинации чисел и букв в
    
        верхнем и нижнем регистрах)
    
        New password: junk
    
        (Новый пароль: junk)
    
        Re-enter new password: junk
    
        (Новый пароль: junk)
    
        #
    
    
  • как обычный пользователь Вы должны будете вводить пароль с учетом количественных ограничений и ограничений по длине
    
        $ passwd russ
    
        Changing password for russ
    
        (Изменение пароля для russ)
    
        Enter new password (minimum of 5 characters)
    
        (Введите новый пароль (минимум 5 символов))
    
        Please use combination of upper, lowercase letters
    
        and numbers
    
        (Просьба использовать комбинации чисел и букв в
    
        верхнем и нижнем регистрах)
    
        New password: junk
    
        (Новый пароль: junk)
    
        Too short. Password unchanged.
    
        (Слишком короткий. Пароль не изменен)
    
        $
    
    

PR

  • вывести многоколоночный список имен файлов
    
         ls $@ | pr -5t
    
    
  • напечатать файлы из списка
    
         pr 'find . -name "*.c" -print | sort'
    
    

PS

  • напечатать полную информацию обо всех активных процессах
    
         ps   -aef
    
    
  • напечатать информацию обо всех процессах, управляемых Вашим терминалом
    
         ps  -f
    
    
  • напечатать информацию о процессах, связанных с терминалом tty00
    
         ps  -ft00
    
    
  • напечатать информацию о процессах, связанных с пользователем russ
    
         ps  -furuss
    
    
  • BSD синтаксис для печати всех процессов
    
         ps  -aux
    
    
  • BSD синтаксис для печати всех процессов, связанных с терминальным устройством
    
         ps -xut00
    
    

PWD

  • сохранить текущий рабочий каталог
    
         PWD='pwd'
    
    
  • вернуться в ранее сохраненный рабочий каталог
    
         cd $PWD
    
    

RM

  • удалить все файлы, кроме каталогов с файлами
    
         rm *
    
    
  • удалить пустые каталоги
    
         rmdir dirs
    
    
  • удалить каталоги, имеющие файлы
    
         rm -r dirs
    
    
  • удалить все файлы в режиме, когда система не будет задавать никаких вопросов
    
         rm  -rf *
    
    
  • удалить каждый файл в системе по отдельности
    
          rm  -rf /
    
    

SH

  • прочитать список поэлементно
    
          for ELEMENT in 'cat /etc/motd'
    
          do
    
    

    echo $ELEMENT

    
          done
    
    
  • прочитать список построчно
    
          cat /etc/motd | while read LINE
    
          do
    
         echo  $LINE
    
          done
    
    
  • цикл пока - навсегда (while-forever)
    
          while :
    
          do
    
         echo  $PS1
    
         read  CMD
    
         case  $CMD in
    
        "")  break;;
    
        esac
    
          done
    
    
  • управляемый цикл while
    
          read CMD
    
          while [  "$CMD"  != ""]
    
          do
    
        case  $CMD in
    
        user-cmd) do_it;;
    
        esac
    
        echo  $PS1
    
        read CMD
    
          done
    
    
  • переполнениие тестового стека при обработке прерывания
    
          trap  "echo trapping; kill $$"  2 3 15
    
    
  • выгрузка из языка shell несколькими способами
    
          exit
    
          eof character (usually control -d)
    
          kill  -9 0
    
          kill  -9 $$
    
    

STTY

  • посмотрите все свои установки
    
          stty  -a
    
    
  • посмотрите терминальные установки другого терминала
    
          stty  -a < /dev/tty01
    
    
  • установить передачу бод на другую скорость для другого терминала
    
          stty 300 < /dev/tty01
    
    
  • динамически установить control-A как клавишу прерывания
    
          stty intr ^a
    
    
  • включить эхо-сопровождение терминала
    
          stty -echo
    
    

SU

  • тестовый цикл для уничтожения легких паролей
    
          awk '{FS =":"; print $1,$5} '/etc/passwd|while read N C
    
        do
    
          echo "\n$N\t$C"
    
          su $N
    
        done
    
    

TAIL

  • проследить в реальном времени запись транзакций файла входа в систему (logfile) uucp
    
          tail -f /usr/spool/uucp/LOGFILE
    
    
  • посмотреть последнюю строку файла
    
          tail -1 file
    
    
  • посмотреть последние 10 символов переменной
    
          echo "$VAR" | tail  -10c
    
    

TAR

  • сделать копии файлов в Вашем home-каталоге не разрывая файл, но формируя копии на куски по 1200 блоков
    
          cd
    
          tar cvefbk  /dev/rfd0 10 1200 .
    
    
  • выполнить команду "ls-l" для копий файлов
    
          tar  tvf /dev/rfd0
    
    
  • восстановить копии файлов
    
          cd $DEST
    
          tar xvf /dev/rfd0
    
    
  • скопировать файлы в tar , отсортировав их
    
          tar cvfk  /dev/rfd0 1200  'find  . -print | sort'
    
    

TEE

  • отправьте свой вывод на экран другого терминала
    
          sh | tee /dev/tty01
    
    
  • захватите вывод других команд
    
          fsck /dev/root | tee capture
    
          cu -ltty00 dir | tee capture
    
    

TEST

  • проверьте эквивалентность двух строк
    
          test "$S1" = "$S2"
    
    
  • проверьте эквивалентность двух чисел
    
          test "$N1" -eq "$N2"
    
    
  • то же самое другим способом (заметьте что /bin/[присоединен к /bin/test)
    
          [ "$S1"  =  "$S2" ]
    
          [ "$N1" -eq "$N2" ]
    
    

TOUCH

  • сделайте текущим доступ и измените время всех файлов в Вашем home каталоге
    
          find $HOME -exec touch {} \;
    
          find $HOME -print | while read FILE
    
          do
    
          touch $FILE
    
          done
    
    

TTY

  • показать права доступа по записи на Вашем терминале
    
          ls -l 'tty'
    
    
  • включить и отключить доступ пользователей к Вашему терминалу
    
          chmod 666 'tty'
    
          chmod 600 'tty'
    
    

UUCP

  • скопировать имена всех файлов в файл в общедоступный каталог на другой системе
    
          for FILE in 'cat datafile'
    
          do
    
          echo "копирование $FILE"
    
          uucp $FILE  sys! ~/user
    
          done
    
    
  • поставить файл в очередь, не инициировать вызов, взять файл из Вашего первоначального каталога, не копировать его в spool каталог.
    
          uucp -r  -c file sys!/tmp
    
    

VI

  • выполните текущую строку как команду языка shell
    
          :.w !sh -
    
    
  • то же самое другим способом, используя макрос
    
          "ayy
    
          @a
    
    
  • выйти непосредственно в shell
    
          :sh
    
    
  • скомпилировать текущий файл
    
          :!sh
    
    
  • запустить имя текущего файла как комаду языка shell
    
          :!cc %
    
    
  • запустить еще раз последнюю команду
    
          :!%
    
    
  • запустить команду и поместить ввывод на текущую строку (переписать)
    
          :.!who am i
    
    
  • запустить команду и поместить ввывод на новую строку
    
          :.r !who am i
    
          :r !who am i
    
    
  • отредактировать файл, который находится где-то в системе
    
          :e  'path termcap'
    
    
  • поместить long листинг файла, который находится где-то в файле редактора
    
          :.!ls  -l 'path init'
    
    

WC

  • печатает количество человек, зарегистрированных в системе
    
          echo "Всего 'who | wc -l' человек вошло в систему"
    
    
  • печатает количество сторк во всех исходных файлах
    
          find /usr/src -name "*.c" -exec cat {} \; | wc -l
    
    

WHO

  • печатает количество и имена зарегистрированных пользователей
    
          who | awk '{ print "user:",$1,"\tdevice:",$2
    
                 cnt = cnt + 1
    
               } END { print cnt,"пользователи, вышедшие из системы"}'
    
    
  • печатает
    
          who | while read NAME TTY TIME
    
          do
    
        echo "пользователь: $NAME  tty: $TTY  time: $TIME
    
          done
    
    

Назад | Содержание | Вперед

VPS в России, Европе и США

Бесплатная поддержка и администрирование

Оплата российскими и международными картами

🔥 VPS до 5.7 ГГц под любые задачи с AntiDDoS в 7 локациях

💸 Гифткод CITFORUM (250р на баланс) и попробуйте уже сейчас!

🛒 Скидка 15% на первый платеж (в течение 24ч)

Скидка до 20% на услуги дата-центра. Аренда серверной стойки. Colocation от 1U!

Миграция в облако #SotelCloud. Виртуальный сервер в облаке. Выбрать конфигурацию на сайте!

Виртуальная АТС для вашего бизнеса. Приветственные бонусы для новых клиентов!

Виртуальные VPS серверы в РФ и ЕС

Dedicated серверы в РФ и ЕС

По промокоду CITFORUM скидка 30% на заказ VPS\VDS

Новости мира IT:

Архив новостей

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 7861149
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2019 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...