Команда head в linux

Синтаксис uniq

Запись команды осуществляется следующим образом:

$ uniq опции файл_источник файл_для_записи

Файл источник указывает откуда надо читать данные, а файл для записи — куда писать результат. Но их указывать не обязательно. В примерах мы будем набирать текст, который нуждается в редактировании, прямо в командную строку терминала, воспользовавшись ещё одной командой — echo, и применив к ней опцию -e. Это будет выглядеть так:

echo -e | uniq

Эта управляющая последовательность нужна, чтобы указать утилите, что каждое слово выводится в новой строке. Если указано только название файла источника, результат выполнения команды появится прямо в окне терминала. А при наличии выходного файла текст будет напечатан в теле документа.

Отображение больших блоков текстовых данных в скрипте

Вы можете использовать здесь документ для отображения больших блоков текстовых данных в скрипте, например help:

  cat <<HELPEOF
  Usage:
   opt1 : Do this
   opt2 : Do that
  HELPEOF

cat <<HELPEOF
Usage:
opt1 : Do this
opt2 : Do that
HELPEOF

Другой рабочий пример:

#!/bin/bash
# Author: Vivek Gite <http://www.cyberciti.biz/
# -----------------------------------------------
 
#Set default to my-dev-box
BASEDIR="/home/vivek/projects/bash/nginx-keepalived/chroot"  
 
# Now switch to prod 
 $HOSTNAME == "lb2.nixcraft.net.in"  && BASEDIR="/etc/nixcraft/nginx/lb2"
 $HOSTNAME == "lb2.nixcraft.net.in"  && BASEDIR="/etc/nixcraft/nginx/lb1"
 
_profile="$BASEDIR/redhat.conf"
_etc_files="$BASEDIR/redhat.etc.files.conf"
_etc_dirs="$BASEDIR/redhat.etc.dirs.conf"
_hooks="$BASEDIR/hooks.sh"
 
usage(){
cat<<EOF
 Usage $0
  -e | --enable:        Enable the nginx-chroot environment
  -E | --upgrade:       Upgrade bind and libs in the nginx-chroot environment
  -p | --php:           Enable the php-cgi in the nginx-chroot environment
  -P | --phpupgrade:    Upgrade the php-cgi in the nginx-chroot environment
  -i | --info:          Display the php-cgi and nginx environment information such as version, users, connections etc
EOF
}
 
rootuser(){
        local uid=$(id -u)
         $uid -ne   && { echo "Only root may enable the nginx-chroot environment to the system."; exit 2; }
}
 
## function code removed to keep script short and sweet ##
enable_nginix_chroot(){
  :
}
upgrade_nginx_chroot(){
  :
}
enable_php_cgi_nginx_chroot(){
  :
}
upgrade_php_cgi_nginx_chroot(){
  :
}
 
get_nginx_chroot_info(){
  :
}
 
# Make sure only root run this script
rootuser
 
# Load local hooks
 -f "${_hooks}"  && . ${_hooks}
 
# Load os specifc paths
source ${_profile}
 
# Main logic 
case $1 in
    -e|--enable)    enable_nginix_chroot ;;
    -E|--upgrade)   upgrade_nginx_chroot;;
    -p|--php)       enable_php_cgi_nginx_chroot;;      
    -P|--phpupgrade)  upgrade_php_cgi_nginx_chroot;;      
    -i|--info)          get_nginx_chroot_info;;      
    *)            usage; exit 9999;
esac

#!/bin/bash
# Author: Vivek Gite <http://www.cyberciti.biz/
# ———————————————— #Set default to my-dev-box
BASEDIR=»/home/vivek/projects/bash/nginx-keepalived/chroot» # Now switch to prod
] && BASEDIR=»/etc/nixcraft/nginx/lb2″
] && BASEDIR=»/etc/nixcraft/nginx/lb1″ _profile=»$BASEDIR/redhat.conf»
_etc_files=»$BASEDIR/redhat.etc.files.conf»
_etc_dirs=»$BASEDIR/redhat.etc.dirs.conf»
_hooks=»$BASEDIR/hooks.sh» usage(){
cat<<EOF
Usage $0
-e | —enable: Enable the nginx-chroot environment
-E | —upgrade: Upgrade bind and libs in the nginx-chroot environment
-p | —php: Enable the php-cgi in the nginx-chroot environment
-P | —phpupgrade: Upgrade the php-cgi in the nginx-chroot environment
-i | —info: Display the php-cgi and nginx environment information such as version, users, connections etc
EOF
} rootuser(){
local uid=$(id -u)
] && { echo «Only root may enable the nginx-chroot environment to the system.»; exit 2; }
} ## function code removed to keep script short and sweet ##
enable_nginix_chroot(){
:
}
upgrade_nginx_chroot(){
:
}
enable_php_cgi_nginx_chroot(){
:
}
upgrade_php_cgi_nginx_chroot(){
:
} get_nginx_chroot_info(){
:
} # Make sure only root run this script
rootuser # Load local hooks
&& . ${_hooks} # Load os specifc paths
source ${_profile} # Main logic
case $1 in
-e|—enable) enable_nginix_chroot ;;
-E|—upgrade) upgrade_nginx_chroot;;
-p|—php) enable_php_cgi_nginx_chroot;;
-P|—phpupgrade) upgrade_php_cgi_nginx_chroot;;
-i|—info) get_nginx_chroot_info;;
*) usage; exit 9999;
esac

Отображение файла с помощью команды cat

Чтобы просмотреть файл, введите:

cat filename
cat pathtofile
cat etcpasswd

cat filename
cat /path/to/file
cat /etc/passwd

Примеры результатов:

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
....
...
..hplip:x:109:7:HPLIP system user,,,:/var/run/hplip:/bin/false
vivek:x:1000:1000:Vivek Gite,,,:/home/vivek:/bin/bash
bind:x:110:118::/var/cache/bind:/bin/false
haldaemon:x:111:119:Hardware abstraction layer,,,:/var/run/hald:/bin/false
sshd:x:112:65534::/var/run/sshd:/usr/sbin/nologin
mysql:x:113:121:MySQL Server,,,:/var/lib/mysql:/bin/false

Синтаксис

grep  ШАБЛОН 

Ниже предоставлены основные опции утилиты.

-b — показывать номер блока перед строкой-c — Отключает стандартный способ вывода результата и вместо этого отображает только число обозначающее количество найденых строк.-h — не выводить имя файла в результатах поиска внутри файлов Linux-i — не учитывать регистр-l — отобразить только имена файлов, в которых найден шаблон-n — показывать номер строки в файле-s — не показывать сообщения об ошибках-v — инвертировать поиск, выдавать все строки кроме тех, что содержат шаблон-w — Ведет поиск по цельным словам. Например при обычном поиске строки ‘wood’ grep может найти слово ‘hollywood’. А если используется данный ключ то будут найдены только строки где есть слово ‘wood’-e — использовать регулярные выражения при поиске-An — показать вхождение и n строк до него-Bn — показать вхождение и n строк после него-Cn — показать n строк до и после вхождения-o — показать только совпадающие (непустые) части совпадающей строки, каждая из которых находится в отдельной строке.-P — Интерпретировать шаблон как регулярное выражение Perl. Это экспериментально, и grep -P может предупредить о невыполненных функции.-r — Производит поиск рекурсивно по всем поддиректориям.

Использование регулярных выражений

Истинная сила grep заключается в возможности применения для поиска соответствий регулярным выражениям. В регулярных выражениях в аргументе ШАБЛОН используются специальные символы для охвата более широкого диапазона строк. Рассмотрим простой пример.

Допустим, требуется найти  каждое появление фразы, похожей на «our products», которая всегда должна начинаться с «our» и заканчиваться на «products». Для этого нужно указать такой шаблон: «our.*products».

В регулярных выражениях точка («.») интерпретируется как маска для одного символа. Она означает «подойдет любой символ на этом месте». Звездочка («*») означает «подойдет предыдущий символ в количестве от нуля и более». Таким образом, комбинация «.*» означает, что подойдет любой символ в любом количестве. Например, «our amazing products», «ours, the best-ever products» и даже «ourproducts» будут соответствовать выражению. А так как указана опция –i, ему будут соответствовать также «OUR PRODUCTS» и «OuRpRoDuCtS». При запуске команды с этим регулярным выражением мы получим дополнительные совпадения:

$ grep –-color –n -i «our.*products» *.html
product-details.html:27:<p><b>OUR PRODUCTS</b></p>
product-details.html:59:<p class=”products-searchbox”>To search a comprehensive list of our products type your search term in the box below and click the magnifying glass</p>
product-replacement.html:58:<p>If you experience dissatisfaction with any of our fine products, do not hesitate to contact us using the form below.</p>
$

Была найдена фраза «our fine products».

Grep – мощный инструмент работы с текстовыми файлами. При умелом использовании регулярных выражений он предоставляет еще более широкие возможности. Здесь рассмотрены наиболее типичные примеры использования команды. Другие опции командной строки можно узнать, запустив команду с опцией —help.

Утилиты gzip — gunzip

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

paul@rhel55 ~$ ls -lh text.txt 
-rw-rw-r-- 1 paul paul 6.4M апр 17 13:11 text.txt
paul@rhel55 ~$ gzip text.txt 
paul@rhel55 ~$ ls -lh text.txt.gz 
-rw-rw-r-- 1 paul paul 760K апр 17 13:11 text.txt.gz

Вы можете получить оригинал вашего файла, воспользовавшись утилитой .

paul@rhel55 ~$ gunzip text.txt.gz 
paul@rhel55 ~$ ls -lh text.txt
-rw-rw-r-- 1 paul paul 6.4M апр 17 13:11 text.txt

Типы командных оболочек

В *nix-системах существует два основных типа оболочек: оболочки на основе Bourne shell и оболочки на основе C shell.

Типичными представителями оболочек типа Bourne shell являются:

   sh (Bourne shell)

   bash (Bourne Again shell)

   ksh (Korn shell)

   zsh (Z Shell)

К оболочкам типа C Shell относятся:

   csh (C shell)

   tcsh (TENEX/TOPS C shell)

Ниже представлены некоторые из самых распространенных шеллов, используемых в *nix-системах:

Примечание: Термин «*nix-системы» обозначает -подобные операционные системы.

sh (Bourne shell)

sh (сокр. от Bourne shell») — это самая старая (среди рассматриваемых) оболочка, написанная Стивеном Борном из AT&T Bell Labs для ОС UNIX v7. Оболочка доступна практически в любом *nix-дистрибутиве. Многие другие шеллы уходят своими корнями именно к sh. Благодаря своей скорости работы и компактности, данная оболочка является предпочтительным средством для написания shell-скриптов. К её недостаткам можно отнести отсутствие функций для использования оболочки в интерактивном режиме, а также отсутствие встроенной обработки арифметических и логических выражений.

Примечание: Стоит отметить, что из-за общего морального устаревания оболочки, в современных системах ссылка на шелл sh (/bin/sh), обычно, является псевдонимом для запуска текущей, более новой оболочки.

Характерные черты sh:

   Полные пути к интерпретатору: /bin/sh и /sbin/sh.

   Приглашение для обычного пользователя: .

   Приглашение для суперпользователя (root): .

bash (Bourne-Again shell)

bash (сокр. от Bourne–Again shell») — это усовершенствованный и дополненный вариант шелла sh, является одной из самых популярных современных командных оболочек *nix-систем.

   Совместим с sh.

   Объединяет в себе полезные фишки оболочек ksh и csh.

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

Характерные черты bash:

   Полный путь к интерпретатору: /bin/bash.

   Приглашение для обычного пользователя: (где — это домашний каталог текущего пользователя, например, ).

   Приглашение для суперпользователя (root): .

ksh (Korn shell)

ksh (сокр. от Korn shell) — это командная оболочка, разработанная Дэвидом Корном из AT&T Bell Labs в 1980-x годах.

   Является расширением sh.

   Имеет обратную совместимость с sh.

   Имеет интерактивный функционал, сравнимый с csh.

   Включает в себя удобные для программирования функции, такие как: встроенную поддержку арифметических выражений/функций, Си-подобный синтаксис скриптов и средства для работы со строками.

   Работает быстрее, чем csh.

   Может запускать скрипты, написанные для sh.

Характерные черты ksh:

   Полный путь к интерпретатору: /bin/ksh.

   Приглашение для обычного пользователя: .

   Приглашение для суперпользователя (root): .

csh (C shell)

csh (сокр. от C shell) — это командная оболочка, созданная Биллом Джоем (автором редактора vi) с целью усовершенствования стандартного шелла Unix (sh).

   Имеет встроенные функции для интерактивного использования, например, псевдонимы (aliases) и историю команд.

   Включает в себя удобные для программирования функции, такие как: встроенную поддержку арифметических выражений и Cи-подобный синтаксис скриптов.

Характерные черты csh:

   Полный путь к интерпретатору: /bin/csh.

   Приглашение для обычного пользователя: .

   Приглашение для суперпользователя (root): .

tcsh (TENEX C Shell)

tcsh (сокр. от TENEX C shell) — это командная оболочка, созданная Кэном Гриром, которая позиционируется как улучшенная версия шелла csh.

   Имеет полную совместимость csh.

   Именно в данном шелле впервые появилась функция автодополнения команд и путей.

   Удобна для интерактивной работы.

   Поддерживает редактор командной строки в стиле vi или emacs.

   Является стандартным шеллом во FreeBSD.

Характерные черты tcsh:

   Полный путь к интерпретатору: /bin/tcsh.

   Приглашение для обычного пользователя: .

   Приглашение для суперпользователя (root): .

zsh (Z Shell)

zsh (сокр. от Z shell) — это командная оболочка, созданная Паулем Фалстадом во время его учебы в Принстонском университете, позиционируется как свободная современная sh-совместимая командная оболочка.

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

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

   Поддержка проверки орфографии и опечаток.

   Раздельная история команд для одновременной работы с несколькими запущенными шеллами.

Характерные черты zsh:

   Полный путь к интерпретатору: /bin/zsh.

   Приглашение для обычного пользователя: .

   Приглашение для суперпользователя (root): .

Как вырезать по полю

Чтобы указать поля, которые должны быть вырезаны, вызовите команду с опцией. Если не указан, по умолчанию используется разделитель «TAB».

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

test.txt

Например, для отображения 1-го и 3-го полей вы должны использовать:

Или, если вы хотите отобразить с 1-го по 4-е поле:

Как резать на основе разделителя 

Чтобы вырезать на основе разделителя, вызовите команду с параметром, а затем разделитель, который вы хотите использовать.

Например, чтобы отобразить 1-е и 3-е поля, используя «:» в качестве разделителя, введите:

Вы можете использовать любой отдельный символ в качестве разделителя. В следующем примере мы используем символ пробела в качестве разделителя и печатаем 2-е поле:

Как дополнить выбор 

Для дополнения списка полей выбора используйте опцию. Это напечатает только те поля, которые не выбраны с опцией.

Следующая команда напечатает все поля кроме 1-го и 3-го:

Как указать выходной разделитель

Чтобы указать выходной разделитель, используйте опцию. Например, чтобы установить для вас выходной разделитель , используйте:

Команда head

Команда head позволяет задействовать одноименную утилиту для вывода нескольких первых строк из текстового файла или вывода другой утилиты. Если вы исполняете команду, которая выводит большой объем данных и при этом заинтересованы лишь в нескольких первых строках вывода, эта команда — именно то, что вам нужно.

Базовый синтаксис команды выглядит следующим образом:

Утилита head может выводить как начальные строки вывода другой утилиты (в этом случае имен файлов не указывается), так и начальные строки одного или нескольких текстовых файлов с указанными именами. В том случае, если выводятся начальные строки нескольких файлов, их имена упоминаются в выводе. Утилита поддерживает ряд полезных параметров, а именно, параметр -n, позволяющий задать количество выводимых строк (по умолчанию выводится 10 строк), параметр -c, позволяющий задать количество выводимых байтов, параметр -q, позволяющий не добавлять информацию об именах файлов в вывод с их начальными строками, параметр -v, позволяющий всегда выводить информацию об именах файлов, а также параметр -z, позволяющий выводить символы завершения строк вместо символов перехода на новые строки (это полезно для использования утилиты со стороны других утилит).

Вывод первых десяти строк текстового файла

Для вывода первых десяти строк текстового файла достаточно использовать утилиту head без каких-либо параметров:

Очевидно, что утилита вывела первые 10 строк файла.

Вывод заданного количества строк текстового файла

Для вывода заданного количества строк текстового файла следует использовать параметр -n:

Теперь утилита вывела лишь необходимые три строки.

Вывод заданного количества байтов файла

Для того, чтобы вывести заданное количество байтов вместо заданного количества строк, достаточно использовать параметр -c таким же образом, как ранее использованный параметр -n:

В первые 23 байта вошла первая строка текстового файла с символом перехода на новую строку.

Обработка вывода других утилит

Для того, чтобы вывести лишь первые строки вывода другой утилиты, достаточно использовать простой конвейер командной оболочки и не указывать имен файлов:

Утилита cat читает все содержимое текстового файла, а утилита head выполняет роль фильтра, выводя лишь три первые строки этого содержимого.

Вывод первых строк нескольких файлов

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

×

Просмотр истории входа в Linux

Linux очень хорошо ведет журналы всего, что происходит в вашей системе. Вполне естественно, что он также хранит журналы о входе и попытках входа. Информация для входа хранится в трех местах:

  • /var/log/wtmp – Логи последних сеансов входа
  • /var/run/utmp – Журналы текущих сеансов входа
  • /var/log/btmp – Журналы неудачных попыток входа

Давайте посмотрим на эти вещи немного подробнее.

1. Просмотр истории всех зарегистрированных пользователей

Чтобы просмотреть историю всех успешных входов в систему, просто используйте команду last.

Вывод должен выглядеть следующим образом. Как видите, в нем перечислены пользователи, IP-адрес, с которого пользователь получил доступ к системе, дата и время входа в систему. pts/0 означает доступ к серверу через SSH.

Последняя строка вывода сообщает вам, когда был создан файл журнала wtmp. Это важно, потому что если файл wtmp был удален недавно, последняя команда не сможет отобразить историю входов в систему до этой даты. У вас может быть огромная история сеансов входа в систему, поэтому лучше передать вывод с помощью команды less

У вас может быть огромная история сеансов входа в систему, поэтому лучше передать вывод с помощью команды less.

2. Просмотр истории входа определенного пользователя

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

Вы увидите информацию для входа только выбранного пользователя:

3. Отображать IP-адреса в истории входа вместо имени хоста

Вы не могли видеть это в предыдущем выводе, но по умолчанию последняя команда показывает имя хоста вместо IP-адреса пользователя. Если вы находитесь в подсети, вы, вероятно, увидите только имена хостов.

Вы можете принудительно отобразить IP-адреса ранее зарегистрированных пользователей с помощью опции -i.

4. Отображать только последние N логинов

Если у вашей системы хорошее время работы, возможно, ваша история входа будет огромной. Как мы упоминали ранее, вы можете использовать команду less или другие команды просмотра файлов, такие как head или tail.

Последняя команда дает вам возможность отображать только определенное количество истории входа.

Просто замените N на номер, который вы хотите. Вы также можете комбинировать его с именем пользователя.

5. Просмотр всех неудачных попыток входа на ваш сервер Linux

Теперь важная часть: проверка неудачных попыток входа на ваш сервер.

Вы можете сделать это двумя способами. Вы можете использовать последнюю команду с файлом журнала btmp:

или вы можете использовать команду lastb:

Обе эти команды дадут одинаковый результат. Lastb на самом деле является ссылкой на последнюю команду с указанным файлом.

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

Вы должны проанализировать здесь и посмотреть, узнаете ли вы IP-адреса в журнале. Если было слишком много попыток входа в систему с определенного IP-адреса с пользователем root, возможно, кто-то пытается атаковать вашу систему с помощью брутфорса.

Вы должны развернуть Fail2Ban для защиты вашего сервера в таких случаях. Fail2Ban забанит такие IP-адреса с вашего сервера и тем самым предоставит вашему серверу дополнительный уровень защиты.

Заключение

Мы надеемся, что эта статья научит вас просматривать историю входа в Linux, и теперь вы можете использовать эти знания для лучшего управления и защиты вашей системы Linux.

Примеры использования Grep

Как упоминалось ранее, если вы не заключите в одинарные кавычки шаблон поиска, переданный в Grep, он изменится. Это также можно сделать намеренно, когда именно это и нужно — давайте рассмотрим несколько примеров.

 ~]# grep "$HOME" /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin

Здесь мы специально используем двойные кавычки, чтобы оболочка Bash заменяла переменную среды фактическим значением переменной (в данном случае). Таким образом, Grep ищет в файле текст и выявляет две совпадающие строки.

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

1. Фильтрация найденных командой grep файлов
Предположим, вам надо отфильтровать содержимое файла , содержащего закомментированные строки. Это можно сделать так:

# grep –v "#" /etc/apache2/sites-available/default-ssl

2. Обнаружение всех файлов с расширением .mp3

Если вам нужно узнать сколько на вашем ПК музыкальных файлов() созданных исполнителем ABC, не являющихся ремиксом — используйте в команду :

# find . –name "*.mp3" | grep –i ABC | grep –vi "remix"

3. Подсчет числа строк, содержащих искомое выражение:

# ifconfig | grep –c inet6

флаг позволяет вести поиск в обоих направлениях.

4. Указание номера искомой строки в файле

При помощи флага -n можно не только вывести необходимые строки, но и их номера.

# grep –n "main" setup.py

5. Рекурсивный поиск строки по всем каталогам

Добавление флага -r запускает рекурсивный поиск:

# grep –r "function" *

6. Совпадения в архивах Gzip

Gzip (GNU Zip) — популярная Linux-утилита, предназначенная для сжатия и декомпрессии файлов. Чтобы выполнить поиск в сжатых архивах — воспользуйтесь командой (которая входит в состав этого архиватора, поставляя свою версию Grep):

# zgrep –i error /var/log/syslog.2.gz

В статье мы разобрались с наиболее часто встречающимися примерами использования команды для сложного поиска — Grep, помогающей администратору при работе с файлами.

Несколько полезных видеороликов по теме:

Общий синтаксис

find <где искать> <опции>

<где искать> — путь к корневому каталогу, откуда начинать поиск. Например, find /home/user — искать в соответствующем каталоге. Для текущего каталога нужно использовать точку «.».

<опции> — набор правил, по которым выполнять поиск.

* по умолчанию, поиск рекурсивный. Для поиска в конкретном каталоге можно использовать опцию maxdepth.

Описание опций

Опция Описание
-name Поиск по имени.
-iname Регистронезависимый поиск по имени.
-type

Тип объекта поиска. Возможные варианты:

  • f — файл;
  • d — каталог;
  • l — ссылка;
  • p — pipe;
  • s — сокет.
-size Размер объекта. Задается в блоках по 512 байт или просто в байтах (с символом «c»).
-mtime Время изменения файла. Указывается в днях.
-mmin Время изменения в минутах.
-atime Время последнего обращения к объекту в днях.
-amin Время последнего обращения в минутах.
-ctime Последнее изменение владельца или прав на объект в днях.
-cmin Последнее изменение владельца или прав в минутах.
-user Поиск по владельцу.
-group По группе.
-perm С определенными правами доступа.
-depth Поиск должен начаться не с корня, а с самого глубоко вложенного каталога.
-maxdepth Максимальная глубина поиска по каталогам. -maxdepth 0 — поиск только в текущем каталоге. По умолчанию, поиск рекурсивный.
-prune Исключение перечисленных каталогов.
-mount Не переходить в другие файловые системы.
-regex По имени с регулярным выражением.
-regextype <тип> Тип регулярного выражения.
-L или -follow Показывает содержимое символьных ссылок (симлинк).
-empty Искать пустые каталоги.
-delete Удалить найденное.
-ls Вывод как ls -dgils
-print Показать найденное.
-print0 Путь к найденным объектам.
-exec <команда> {} \; Выполнить команду над найденным.
-ok Выдать запрос перед выполнением -exec.

Также доступны логические операторы:

Оператор Описание
-a Логическое И. Объединяем несколько критериев поиска.
-o Логическое ИЛИ. Позволяем команде find выполнить поиск на основе одного из критериев поиска.
-not или ! Логическое НЕ. Инвертирует критерий поиска.

Полный набор актуальных опций можно получить командой man find.

Утилита locate

Утилита имеет значительное отличие от утилиты , заключающееся в том, что она использует данные индексирования файловой системы для установления путей к файлам. Несмотря на то, что данный алгоритм поиска гораздо быстрее алгоритма с обходом всех директорий файловой системы, в случае его использования данные о файловой системе в подавляющем большинстве случаев являются устаревшими. В том случае, если данные индексирования файловой системы еще не собраны, вам придется осуществить их сбор путем выполнения команды (в дистрибутиве Red Hat Enterprise Linux для выполнения описанной операции понадобятся привилегии пользователя root).

$ locate Samba
locate: не удалось выполнить stat () "/var/lib/mlocate/mlocate.db": Нет такого файла или каталога
$ updatedb 
updatedb: не удалось открыть временный файл для "/var/lib/mlocate/mlocate.db"
$ su -
Password: 
# updatedb
#

В большинстве дистрибутивов Linux для исполнения команды один раз в день используется планировщик задач.

Параметры для работы с командой dd

В довольно большой набор дополнительных параметров для конфигурации настроек. Мы рассмотрим основные из них:

  • — Установить размер блока (), который система будет считывать. Оптимально использовать 4–8 MB;
  • — Установить, сколько байт нужно записывать за один раз;
  • — Выбрать определенное число блоков для копирования. А чтобы обозначить их размер, подключают -опцию.
  • — обозначить сколько байт нужно считать за раз. По умолчанию — 512 байт.
  • — Обозначить сколько байт нужно записать за раз. По умолчанию — 512 байт.
  • — Пропустить определенное количество байт в начале вывода;
  • — Пропустить определенное количество байт в начале ввода;
  • — Параметр, чтобы преобразовать файл. Параметр имеет собственные параметры. С их помощью, например, можно конвертировать систему кодов ASCII в EBCDIC и наоборот. В таблице указаны основные способы конвертации файлов.
Параметр Действие
Заменить буквы верхнего регистра на нижний
Заменить буквы нижнего регистра на верхний
Не создавать выходной файл
Игнорировать ошибки ввода-вывода
Поменять местами каждую пару байтов ввода
Записывает данные выходного файла до окончания процесса
Аналогично , но еще записываются метаданные
Не обрезать выходной файл
Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Мой редактор ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: