This is the default welcome page used to test the correct operation of the Apache2 server after installation on Ubuntu systems. It is based on the equivalent page on Debian, from which the Ubuntu Apache packaging is derived. If you can read this page, it means that the Apache HTTP server installed at this site is working properly. You should replace this file (located at /var/www/html/index.html) before continuing to operate your HTTP server.

If you are a normal user of this web site and don"t know what this page is about, this probably means that the site is currently unavailable due to maintenance. If the problem persists, please contact the site"s administrator.

Configuration Overview

Ubuntu"s Apache2 default configuration is different from the upstream default configuration, and split into several files optimized for interaction with Ubuntu tools. The configuration system is fully documented in /usr/share/doc/apache2/README.Debian.gz . Refer to this for the full documentation. Documentation for the web server itself can be found by accessing the manual if the apache2-doc package was installed on this server.

The configuration layout for an Apache2 web server installation on Ubuntu systems is as follows:

/etc/apache2/ |-- apache2.conf | `-- ports.conf |-- mods-enabled | |-- *.load | `-- *.conf |-- conf-enabled | `-- *.conf |-- sites-enabled | `-- *.conf

  • apache2.conf is the main configuration file. It puts the pieces together by including all remaining configuration files when starting up the web server.
  • ports.conf is always included from the main configuration file. It is used to determine the listening ports for incoming connections, and this file can be customized anytime.
  • Configuration files in the mods-enabled/ , conf-enabled/ and sites-enabled/ directories contain particular configuration snippets which manage modules, global configuration fragments, or virtual host configurations, respectively.
  • They are activated by symlinking available configuration files from their respective *-available/ counterparts. These should be managed by using our helpers a2enmod, a2dismod, a2ensite, a2dissite, and a2enconf, a2disconf . See their respective man pages for detailed information.
  • The binary is called apache2. Due to the use of environment variables, in the default configuration, apache2 needs to be started/stopped with /etc/init.d/apache2 or apache2ctl . Calling /usr/bin/apache2 directly will not work with the default configuration.

Document Roots

By default, Ubuntu does not allow access through the web browser to any file apart of those located in /var/www , public_html directories (when enabled) and /usr/share (for web applications). If your site is using a web document root located elsewhere (such as in /srv) you may need to whitelist your document root directory in /etc/apache2/apache2.conf .

The default Ubuntu document root is /var/www/html . You can make your own virtual hosts under /var/www. This is different to previous releases which provides better security out of the box.

Reporting Problems

Please use the ubuntu-bug tool to report bugs in the Apache2 package with Ubuntu. However, check before reporting a new bug.

Please report bugs specific to modules (such as PHP and others) to respective packages, not to the web server itself.

Проблема с поиском нужных файлов или папок была, есть, и будет актуальна всегда. Люди постоянно забывают, куда именно они сохранили нужный файл Хрень.doc, или Супер-музня.mp3. Поэтому независимо от вашей операционной системы, поиск файлов или директорий, будет всегда востребован хоть на Linux, на Windows, или MacOS X. Просто инструменты поиска будут разные. Поиск в Linux можно разделить на две категории: графический и консольный. Начнем с гордости всех луниксоидов — с Терминала. Для поиска в Linux есть замечательная программа, под названием find .
Формат написания команды find:
find путь к директории, в которой нужно сделать поиск -опции(ключи)
где путь – это каталог, в котором произвести поиск. Можно указывать следующие пути:

. – произвести поиск в текущем каталоге;
/ – произвести поиск от корневого каталога, т.е. во всей системе;
~ – произвести поиск в домашнем каталоге.
Хотя путь конечно же может, и будет отличаться. Вверху лишь указаны стандартные пути.

Итак, самые главные опции команды find выглядят так:
name — поиск файлов по имени;
user — поиск файлов, которые принадлежат указанному пользователю;
group — поиск файлов, которые принадлежат указанной группе;
perm — поиск файлов с указанным режимом доступа;
type — поиск файлов какого-нибудь типа.

Типов тоже достаточно:

  • b – специальный блочный файл;
  • d – каталог;
  • c – специальный символьный файл;
  • f – обычный файл;
  • l – символическая ссылка;
  • p – именованный канал;
  • s – сокет.

Size n — поиск файлов, размер которого равен n единиц;
-mtime -n +n – поиск файлов, которые изменяли свое содержание меньше чем (-) либо больше чем (+) дней назад.

А теперь несколько примеров применения команды find.
Самой применяемой опцией является -name, которая ищет файлы по имени.
Например, команда:

find ~ Music -name "*.mp3"

произведет поиск всех файлов (символ *), которые имеют расширение.mp3 в папке Music, которая находится в вашей Домашней директории.

find / -name "*.pdf"

Данная команда произведет поиск файлов с расширением.pdf во всех каталогах, куда вам разрешен доступ. Если программа не может зайти в некоторые системные каталоги, то она вас об этом предупредит. А если вам все таки нужно просмотреть полностью все каталоги, тогда используйте права Суперпользователя:

sudo find / -name "*.pdf"

find ~ -name "Foto*"

выведет список файлов домашнего каталога, начинающихся с букв Foto.

Ключ `-name’ различает большие и маленькие буквы; для того чтобы во время поиска не обращать внимание на эти критерии, нужно использовать опцию ‘-iname’. Тогда программа найдет все файлы, которые будут состоять из букв: Foto, foto или FOTO.

Если хотите, чтобы результат поиска был сохранен в текстовый файл, то команда примет следующий вид:

find ~ -name "Foto*" > results.txt

Если вам известно полное имя файла, тогда команда будет следующая:

find / -name .profile

В данном случае будет произведен поиск скрытого файла.profile во всей системе.

Можно произвести поиск файла если известна часть его имени. В таком случае команда будет такой:

find /home/dm/Музыка/Клипы/ -name "*uniform*"

Если вы хотите найти файлы, которые начинаются с каких-то определенных букв (например, от a до c), то в таком случае лучше применить регулярные выражения, которые очень удобны в работе:

find / -name "*"

Данная команда сможет найти все файлы вашей системы, которые начинаются с букв от a до c.

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

Если вы захотите отыскать файлы, которые имеют определенные режимы доступа, то помочь вам в этом сможет опция -perm. Например, найдем файлы, у которых режим доступа равен 775, и находятся в текущем каталоге:

find . -perm 775

Поиск файлов по пользователю, либо группе.

Чтобы найти файл, который принадлежит определенному пользователю достаточно выполнить следующую команду:

find / -user comp

Эта команда найдет файлы в системе, которые принадлежат пользователю comp.
А для того, чтобы найти файлы, которые принадлежат какой-то определенной группе (например group2), выполним команду:

find / -group group2

Чтобы найти файлы несуществующих пользователей либо групп, нужно использовать опции -nouser и -nogroup:

find / -nouser

find / -nogroup

Поиск файлов определенного типа

У команды find есть еще одна полезная возможность, можно найти файлы определенного типа. Для этого применим ключ -type. Найдем символические ссылки в каталоге /etc:

find /etc -type l

Найдем список каталогов, которые присутствуют в папке /mnt/raid

find /mnt/raid -type d

Поиск файлов по размеру.

Ключ -size дает возможность найти файлы нужного вам размера.

find . -size 2000k

Данная команда найдет и покажет на экране файлы, размер которых равен 2 мегабайта, и которые находятся в текущем каталоге. А если например нужно отыскать файлы размером менее 500 килобайт, то в таком случае команда будет такой:

find . -size -500k

Если вам нужно отыскать файлы с размером более 900 мегабайт, то команда будет следующей:

find / -size +900M

Поиск файлов с использованием ключа -mtime

Ключ -mtime дает возможность вам отыскать файлы, которые изменялись в какой-то определенный срок времени.
Например, у нас есть задача найти файлы, которые находятся в папке /home/dm/Video , и которые изменялись за последние 10 дней.

find /home/dm/Video -mtime +10

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

find /home/dm/Video -7

В следующей статье я напишу о графических инструментах поиска в Ubuntu Linux.

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

Сегодня мы поговорим об использовании команды find — поверьте, стоит научиться работать с этим мощным и удобным инструментом.

Как использовать команду find

Если говорить упрощённо, базовый синтаксис команды find выглядит следующим образом:

Find /путь параметры имя_файла

Давайте разбираться с возможностями команды

Поиск файла по имени

Первый параметр — это путь. Если вы понятия не имеете, где может скрываться файл, ставьте вместо пути / — этого достаточно. Однако, поиск по всему диску может быть достаточно длительным, и если вы знаете, где может находиться файл, укажите папку, с которой надо начинать искать (например ~ для поиска в домашней папке пользователя).

Теперь перейдём к параметрам поиска. Есть два варианта поиска файла по имени:

  • name — поиск с учетом регистра имени файла
  • iname — поиск без учета регистра имени файла

Нужно помнить, что в Linux регистр имени файла имеет значение, и если нужно найти, например, файл Ubuntu.txt, то следующая команда не даст никаких результатов:

Find / -name ubuntu.txt

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

Find / -iname ubuntu.txt

Поиск по типу

Команда find позволяет искать не только файлы. Вот какие типы дескрипторов поддерживает поиск:

  • f — обычный файл
  • d — директория
  • l — символическая ссылка
  • c — символьное устройство
  • b — блочное устройство

Например, для поиска всех директорий внутри домашней директории текущего пользователя, названиt которых начинается с «config», выполните следующую команду:

Find ~ -type d -name config*

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

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

Find /etc -type f -name “*.conf” > conf_search

Поиск файлов по размеру

Это очень полезный параметр, когда место на диске заканчивается и нужно понять, куда оно делось. Например, чтобы найти файлы размером больше 1000 Мб, выполните следующую команду:

Find / -size +1000M

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

  • c — байты
  • k — килобайты
  • M — мегабайты
  • G — гигабайты
  • b — блоки по 512 байт

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

Привет всему сообществу Хабра.
Это мой первый пост и, надеюсь, не последний. Поэтому неизбежны всяческие недочеты, баги и некоторая водянистость текста, так что прошу строго не судить:)
К написанию этого поста меня сподвиг топик «Консоль для новичка.» , где ISVir поднял острую, на мой взгляд, тему - как доступным языком рассказать новичкам о консоли, не отпугнув их мнимой сверх-сложностью.

Не собираюсь отбирать у ISVir паритет, лишь расскажу о практическом использовании нескольких самых основных утилит «на каждый день», без которых работа в консоли для меня невозможна.

Итак, что мы имеем:

find - поиск файлов. позволяет искать файлы, каталоги, симлинки и другие файловые объекты. find Позволяет задать множество опций поиска таких как:

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

Итак, с места в карьер - поиск всех файлов в каталоге /etc/, измененных за последние сутки:

$find /etc/ -type f -mtime -1

разберем, что мы написали:

Первым параметром всегда указывается начальный каталог для поиска.
опция -type с параметром f говорит find , что нужно искать только обыкновенные файлы.
опция -mtime с параметром -1 указывает find , что нужно найти файлы, изменившиеся за последние сутки.
"-" перед 1 задает верхнюю границу диапазона, т.е. «все, что изменилось за последние 24 часа»

Если бы мы указали "+" перед 1 , то find нашел бы всех файлы, изменившиеся от 01.01.1970 до вчерашнего дня (более суток назад)
так же можно указать точную дату поставив число без модификатора.

Выполнение действий с найденными файлами.
опция -exec принимает строку с командой, которая будет выполнятся для каждого найденного файла
параметр передающийся команде обозначается через {}
строка должна заканчиваться символами " \; "

Рассмотрим пример:
* найти в каталоге /tmp все файлы, изменившиеся за последний месяц и скопировать их в каталог
/tmp/backup/

$find /tmp -type f -mtime -30 -exec cp {} /tmp/backup \;

* удалить все каталоги(рекурсивно) с именем logs, изменившиеся за последний день в каталоге
/var/www
$find /var/www -type d -mtime 0 -name logs -exec sudo rm -fr {} \;

параметр d в опции -type указывает на поиск только каталогов
опция -name задает поиск по имени.
здесь стоит добавить, что удалять таким образом файлы не оптимально(медленно).
для удаления у find есть встроенная опция -delete, которая отрабатывает на порядок быстрее.

Рассмотрим утилиту awk .
awk - это язык программирования, предназначенный для обработки файлов. Цель его
разработки - облегчить постановку и решение многих задач, связанных с переработкой текстовой информации. По сути, awk - это утилита, доступная из консоли.
Я по понятным причинам не буду здесь рассматривать приемы написания awk кода - расскажу только про один важный для нас прием.

Во первых, awk может получать данные из STDIN: $echo «test»|awk ...
во вторых, awk эффективен при написании однострочников в консоли, т.к. выполняет код, данные ему как параметр:


awk разделяет входной поток на поля и помещает эти поля в переменные вида $1,$2,..$N
по умолчанию, разделитель полей - пробел, но с помощью опции -F"_разделитель_" это можно переопределить:
$head -4 /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

$cat /etc/passwd|awk -F":" "{print $1}"
root
daemon
bin

Например, у нас в каталоге /var/www есть несколько сайтов. для каждого сайта существует каталог logs, куда пишутся логи апача (для этого сайта).и вот мы хотим узнать суммарный обьем этих логов, а так же найти все логи больше 100Mb.

1.поиск больших логов:

$find /var/www -type f -name «access.log*» -size +100M
/var/www/site1/logs/access.log
/var/www/site2/logs/access.log.1.gz

2.подсчитаем суммарный обьем логов:

Find /var/www/ -type f -name «access.log*» -exec du -k {} \;|awk "{s+=$1}END{print s}"
5071604


так, не пугаться - щас все обьясню:)

Find ищет все файлы по маске (access.log*) и для каждого запускает команду du .
команда du печатает размер файла. опция -k делает вывод в килобайтах.
дальше запускается процессор awk , просто суммирует первое поле строк (числа) в переменную s и выводит значение переменной на экран.

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

#find / -user test1 -exec du -sm {} \;|awk "{s+=$1}END{print s}"

т.е. здесь с помощью опции -user find ищет файлы, принадлежашие юзеру test1 и для каждого файла/каталога подсчитываем его размер (команда du)
дальше через конвеер эти данные принимает awk и, как мы делали выше, считает их сумму в Kb.

Ок. думаю, на сегодня хватит.
пост вышел довольно большим, видимо с непривычки:)

Сразу хочу сказать - я не ставил цель просто рассказать об использовании find и awk, а привести примеры именно практического применения в реальных ситуациях.
если статья понравится - продолжу писать в данном направлении.

Спасибо, что уделили время.

Несомненно, при работе с Linux, иногда возникает необходимость поиска файлов с определенными характеристиками. Этими характеристиками могут быть размер или тип файла, права доступа и другое.


Наличие в Linux команды find , во многом помогает справиться с поиском файлов по различным критериям.


Сегодня мы разберем поиск файлов в Linux и приведем основные опции команды find , которые вы сможете применить в своей работе.

Формат команды find :

find путь -опции

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

. - поиск в текущем каталоге;

/ - поиск от корневого каталога;

~ - поиск в домашнем каталоге.

Что до опций, то тут гораздо бОльший список, с которым крайне необходимо внимательно ознакомиться (это в будущем очень поможет!). Итак, основные опции команды find :

-name - поиск файлов по имени, используя приведенный шаблон;

-user - поиск файлов, принадлежащих указанному пользователю;

-group - поиск файлов, принадлежащих указанной группе;

-perm - поиск файлов с указанным режимом доступа;

-type - поиск файлов определенного типа. Типов тоже достаточно:

  • b - специальный блочный файл;
  • d - каталог;
  • c - специальный символьный файл;
  • f - обычный файл;
  • l - символическая ссылка;
  • p - именованный канал;
  • s - сокет.
-size n - поиск файлов с размером n единиц;

-mtime -n +n - поиск файлов, содержание которых изменялось менее чем (-) или более чем (+) дней назад.

Рассмотрим некоторые примеры применения команды find :

Наиболее часто применяемой опцией является опция -name , которая производит поиск файлов по имени.

Примеры с опцией -name :

$ find /mnt/usb -name "*.mp3" -print

произведет поиск всех файлов (об этом свидетельствует знак *), имеющих расширение.mp3 на USB-устройстве, смонтированном в каталог /mnt/usb.

$ find ~ -name "test*" -print

выведет на экран список файлов домашнего каталога, начинающихся на test.

Если вам надо найти файлы, начинающиеся с определенных букв (к примеру, от a до j), то здесь будет удобно применить регулярные выражения, которые крайне удобны в работе:

$ find / -name "*" -print

Вышеуказанная команда позволит отыскать все файлы в системе, начинающиеся с букв от a до j.

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

Если потребуется найти файлы, имеющие определенные режимы доступа, вам поможет опция -perm , которая легко в этом поможет.

К примеру, выполним поиск файлов с режимом доступа 775 (владелец и группа имеют полные права и ограничение на запись имеют остальные пользователи), находящихся в текущем каталоге:

$ find . -perm 775 -print

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

К примеру, найдем файлы, к которым пользователи группы имеют полный доступ:

$ find . -perm -070 -print

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

Поиск файлов определенного пользователя или группы

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

$ find / -user admin -print

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

Для того, чтобы найти файлы, принадлежащие определенной группе (к примеру managers), выполним команду:

$ find / -group managers -print

Для поиска файлов несуществующих пользователей или групп можно воспользоваться опциями -nouser и -nogroup :

$ find / -nouser -print

$ find / -nogroup -print

Поиск файлов определенного типа

Одной из удобных возможностей команды find , является возможность поиска файлов определенного типа. Рассмотрим варианты использования опции -type :

Поиск символических ссылок в каталоге /etc:

$ find /etc -type l -print

Вывод на экран списка каталогов, присутствующих в каталоге /mnt/raid

$ find /mnt/raid -type d -print

Поиск файлов определенного размера

Опция -size позволяет произвести поиск файлов определенного размера и имеет следующий вид при выполнении:

$ find . -size 2000k -print

Вышеуказанная команда отыщет и отобразит на экране файлы размером 2 мегабайта, находящийся в текущем каталоге. Если, к примеру, необходимо найти файлы размером менее 500 килобайт, то вид команды будет следующий:

$ find . -size -500k -print

Если нужно найти файлы размером более 600 мегабайт, то применим команду:

$ find / -size +600M -print

Поиск файлов с использованием опции -mtime

Опция -mtime позволит вам найти файлы, изменявшиеся в какой-то срок времени.

К примеру, у нас встала задача поиска файлов, находящихся в каталоге /mnt/raid/upload , и изменявшихся за последние 5 дней. В этом нам поможет команда:

$ find /mnt/raid/upload -mtime -5 -print

Если нам необходимо обратное, к примеру, отыскать файлы, которые не изменялись неделю, применим команду:

$ find /mnt/raid/upload -7 -print

Команда find является крайне удобным инструментом для поиска файлов и может использоваться также и для поиска файлов на дисках NFS (сетевых файловых системах), но в этом случае необходимо учесть, что времени на поиск чего-либо на NFS уйдет гораздо больше, чем на локальных дисках.

В этой статье мы рассмотрели лишь основные опции команды find, которые помогут вам в вашей работе. Используйте то, что удобно и не переживайте по пустякам!