История
FHS был создан как FSSTND (сокращение от «Стандарт файловой системы»), в значительной степени основанный на аналогичных стандартах для других Unix-подобных операционных систем. Примечательные примеры: hier (7) описание структуры файловой системы, существовавшее с момента выпуска версии 7 Unix (в 1979 г.); SunOS файловая система (7) и его преемник, Solaris , файловая система (5) .
История выпуска
Версия | Дата выхода | Примечания |
---|---|---|
Старая версия, больше не поддерживается: 1.0 | 1994-02-14 | FSSTND |
Старая версия, больше не поддерживается: 1.1 | 1994-10-09 | FSSTND |
Старая версия, больше не поддерживается: 1.2 | 1995-03-28 | FSSTND |
Старая версия, больше не поддерживается: 2.0 | 1997-10-26 | FHS 2.0 является прямым преемником FSSTND 1.2. Название стандарта было изменено на Стандарт иерархии файловой системы. |
Старая версия, больше не поддерживается: 2.1 | 2000-04-12 | FHS |
Старая версия, больше не поддерживается: 2.2 | 2001-05-23 | FHS |
Старая версия, но все еще поддерживается: 2.3 | 2004-01-29 | FHS |
Текущая стабильная версия: 3.0 | 2015-05-18 | FHS |
|
Регистр имен
Также стоит отметить чувствительность файловой системы Linux к регистру. Файлы Temp.txt и temp.txt будут интерпретироваться как разные файлы и могут находиться в одной директории, в отличие от ОС Windows, который не различает регистр имен. То же правило действует и на каталоги — имена в разных регистрах указывают на разные каталоги.
Назначение каждой директории регламентирует «Стандарт иерархии файловой системы» FHS (Filesystem Hierarchy Standard). Ниже опишем основные директории согласно стандарту FHS:
Стандарт иерархии файловой системы
- / — root каталог. Содержит в себе всю иерархию системы;
- /bin — здесь находятся двоичные исполняемые файлы. Основные общие команды, хранящиеся отдельно от других программ в системе (прим.: pwd, ls, cat, ps);
- /boot — тут расположены файлы, используемые для загрузки системы (образ initrd, ядро vmlinuz);
- /dev — в данной директории располагаются файлы устройств (драйверов). С помощью этих файлов можно взаимодействовать с устройствами. К примеру, если это жесткий диск, можно подключить его к файловой системе. В файл принтера же можно написать напрямую и отправить задание на печать;
- /etc — в этой директории находятся файлы конфигураций программ. Эти файлы позволяют настраивать системы, сервисы, скрипты системных демонов;
- /home — каталог, аналогичный каталогу Users в Windows. Содержит домашние каталоги учетных записей пользователей (кроме root). При создании нового пользователя здесь создается одноименный каталог с аналогичным именем и хранит личные файлы этого пользователя;
- /lib — содержит системные библиотеки, с которыми работают программы и модули ядра;
- /lost+found — содержит файлы, восстановленные после сбоя работы системы. Система проведет проверку после сбоя и найденные файлы можно будет посмотреть в данном каталоге;
- /media — точка монтирования внешних носителей. Например, когда вы вставляете диск в дисковод, он будет автоматически смонтирован в директорию /media/cdrom;
- /mnt — точка временного монтирования. Файловые системы подключаемых устройств обычно монтируются в этот каталог для временного использования;
- /opt — тут расположены дополнительные (необязательные) приложения. Такие программы обычно не подчиняются принятой иерархии и хранят свои файлы в одном подкаталоге (бинарные, библиотеки, конфигурации);
- /proc — содержит файлы, хранящие информацию о запущенных процессах и о состоянии ядра ОС;
- /root — директория, которая содержит файлы и личные настройки суперпользователя;
- /run — содержит файлы состояния приложений. Например, PID-файлы или UNIX-сокеты;
- /sbin — аналогично /bin содержит бинарные файлы. Утилиты нужны для настройки и администрирования системы суперпользователем;
- /srv — содержит файлы сервисов, предоставляемых сервером (прим. FTP или Apache HTTP);
- /sys — содержит данные непосредственно о системе. Тут можно узнать информацию о ядре, драйверах и устройствах;
- /tmp — содержит временные файлы. Данные файлы доступны всем пользователям на чтение и запись. Стоит отметить, что данный каталог очищается при перезагрузке;
- /usr — содержит пользовательские приложения и утилиты второго уровня, используемые пользователями, а не системой. Содержимое доступно только для чтения (кроме root). Каталог имеет вторичную иерархию и похож на корневой;
- /var — содержит переменные файлы. Имеет подкаталоги, отвечающие за отдельные переменные. Например, логи будут храниться в /var/log, кэш в /var/cache, очереди заданий в /var/spool/ и так далее.
Работа с файловой системой, или что где лежит в Ubuntu/Debian [Для самых маленьких]
Работая в терминале очень часто приходится работать с файловой системой. В этой статье мы узнаем с помощью каких утилит можно работать с файловой системой и в какой папке что лежит.
Работаем с файловой системой
Для работы с файловой системой существует небольшой набор утилит, которые очень часто используются в повседневной жизни. Вот список этих утилит:
- pwd — показывает директорию в которой вы находитесь;
- ls — выводит список папок и файлов в текущей директории, так же можно посмотреть список файлов и папок в любой директории просто указав путь к ней — ls /путь/к/папке. По умолчанию список выводится в некрасивом виде, для изменения вида списка необходимо указать аргумент-l — ls -l /путь/к/папке;
- cat — выводит содержимое файла, например cat /путь/к/файлу;
- cd — переходит в указанную папку, например cd /путь/к/папке;
- cp — копирует файл/папку, например cp -R /что/скопировать /куда/скопировать;
- mv — перемещает файл/папку, например mv /что/переместить /куда/переместить;
- rm — удаляет файл/папку, например rm -r /путь/к/файлу_или_папке;
- du — считает размер директории, например du -hc /путь/к/папке;
- mkdir — создаёт директорию, например mkdir /путь/к/папке;
- touch — создаёт файл, например touch /путь/к/файлу.
Небольшие уловки:
- Чтоб вернуться в предыдущую директорию, необходимо выполнить cd -;
- Чтобы перейти на одну директорию вверх, необходимо выполнить cd …;
- Чтобы перейти в домашнюю директорию, необходимо выполнить cd ~;
- Чтобы создать папку внутри еще не существующей директории, необходимо выполнить mkdir -p /несуществующая_папка/папка_которую_нужно_создать;
- ls по умолчанию не показывает скрытые файлы и папки, чтобы он их отобразил необходимо добавить аргумент -a — ls -l -a /путь/к/папке;
Что где лежит и зачем оно там?
… если оно там лежит, значит так и должно быть, не трожь это!
Иерархия файловой система в *nix‐системах кардинально отличается от оной в MS Windows. В ней нету так называемых дисков (A:, C:, D:…), для сравнения, иерархия файловой системы в *nix можно представить как иерархию диска C: в MS Windows.
- — корень файловой системы, внутри него располагается всё;
- /bin, /sbin, /usr/bin — тут располагаются различные исполняемые файлы (программы);
- /boot — тут располагается ядро linux, и загрузчик (grub, lilo, и т.д.);
- /dev — тут находятся все физические и виртуальные устройства (диски, клавиатуры, видео- и аудио‐карты, и т.д.);
- /etc — тут находятся различные файлы настроек различных системных программ, демонов;
- /home — тут располагаются домашние директории пользователей;
- /lib — тут находятся модули ядра linux, и тут лучше ничего не трогать :);
- /media — тут располагаются все примонтированные оптические диски (а так же и флэшки, жёсткие диски);
- /mnt — тут должны находиться примонтированные жёсткие диски и флешки, но зачастую они оказываются в /media;
- /opt — тут находятся установленные проприетарные приложения и библиотеки;
- /proc, /sys — системные директории с виртуальной файловой системой, хранят в себе информацию о системе, ядре, и прочей ерунде;
- /root — домашняя директория пользователя root;
- /usr — тут хранятся установленные программы, их ресурсы и библиотеки;
- /usr/lib, /usr/lib32 — хранят в себе различные библиотеки;
- /usr/include — хранят в себе заголовочные файлы различных библиотек, которые используются при разработке ПО;
- /usr/local — имеет такую же структуру как и /usr, только хранит в себе вручную собранные и установленные приложения и библиотеки;
- /usr/share — тут находятся различные ресурсы библиотек и приложений (изображения, звуки, шрифты, документация)
- /var — директория в которой хранятся логи, файлы данных различных системных приложений (например базы данных mysql), сокет‐файлы;
- /tmp — директория для хранения временных файлов, очищается при перезагрузке системы;
- . — текущая директория;
- … — директория на один уровень выше текущей.
Более подробную информацию о иерархии файловой системы можно почитать в man hier.
Заключение
Если вы не уверенны в том, что некий файл/папку можно изменить/удалить без последствий, то лучше этого не делайте. Как говорится, «работает не трожь! ».
И как всегда, я не несу никакой ответственности за то, что вы возможно натворите в своей системе. Если вы удалите что нибудь и у вас после этого система не загрузится — не пишите мне о том, что я в этом виноват :).
P.S. Подробную информацию по каждой команде можно посмотреть с помощью man
Редактирование прав
Все, что нужно для разрешения проблем, связанных с правами в Linux.
sudo — выдает права суперпользователя. Используется перед любой командой, если нужно выполнить ее от имени администратора. Многие программы и операции запускаются исключительно при наличии этих прав, так что sudo используется часто. Например, чтобы обновить список пакетов в Fedora, введем: sudo dnf update. При этом система запросит пароль администратора.
sudo su — на время превращает все вводимые в терминал команды в команды суперпользователя. Пригодится, если предстоит вносить много изменений в системные файлы, которые нельзя редактировать без соответствующих прав.
sudo !! — запускает предыдущую команду от имени администратора. Пригодится, если уже ввели команду, требующую прав суперпользователя, но забыли их затребовать. Не придется вводить весь текст заново. Достаточно сокращенной версии.
chmod — корректирует права доступа к выбранному файлу. Применяется исключительно с набором опций, обозначающих список прав. Допустим, я хочу выдать права на чтение и запись файла Timeweb.html на рабочем столе. Для этого введу в терминал: chmod 777 ~/Desktop/timeweb.html. Теперь его можно открывать и редактировать. Аналогичным образом пользователи поступают с системными файлами, когда приходит время что-то в них менять. По умолчанию большая их часть защищена от записи.
chown — назначает владельца для выбранной директории, документа, картинки или любого другого элемента в файловой системе. Синтаксис следующий: chown имя учетной записи, которому надо передать права путь до файла, права на который нужно передать. На примере этого может выглядеть следующим образом: есть пользователь Timeweb, которому я хочу передать права на файл timeweb-file.txt с рабочего стола. Сделаю это командой:
chown Timeweb ~/Desktop/timeweb-file.txt
Отслеживание активных процессов
Существует несколько различных инструментов для просмотра/перечисления запущенных в системе процессов. Двумя традиционными и хорошо известными из них являются команды ps и top:
Команда ps
Отображает информацию об активных процессах в системе, как показано на следующем скриншоте:
Для получения дополнительной информации о процессах, запущенных текущим пользователем, применяется опция :
Столбцы, присутствующие в выводе команды , имеют следующие значения:
UID — идентификатор пользователя, которому принадлежит процесс (тот, от чьего имени происходит выполнение).
PID — идентификатор процесса.
PPID — идентификатор родительского процесса.
C — загрузка CPU процессом.
STIME — время начала выполнения процесса.
TTY — тип терминала, связанного с процессом.
TIME — количество процессорного времени, потраченного на выполнение процесса.
CMD — команда, запустившая этот процесс.
Также можно отобразить информацию по конкретному процессу, используя команду , например:
Есть и другие опции, которые можно использовать вместе с командой :
— показывает информацию о процессах по всем пользователям;
— показывает информацию о процессах без терминалов;
— показывает дополнительную информацию о процессе по заданному UID или имени пользователя;
— отображение расширенной информации.
Если вы хотите вывести вообще всю информацию по всем процессам системы, то используйте команду :
Обратите внимание на выделенный заголовок. Команда поддерживает функцию сортировки процессов по соответствующим столбцам
Например, чтобы отсортировать список процессов по потреблению ресурсов процессора (в порядке возрастания), введите команду:
Результат:
Если вы ходите выполнить сортировку по потреблению памяти (в порядке убывания), то добавьте к имени интересующего столбца знак минуса:
Результат:
Еще один очень популярный пример использования команды — это объединение её и для поиска заданного процесса по его имени:
Результат:
Команда top
Команда top отображает информацию о запущенных процессах в режиме реального времени:
Рассмотрим детально:
PID — идентификатор процесса.
USER — пользователь, которому принадлежит процесс.
PR — приоритет процесса на уровне ядра.
NI — приоритет выполнения процесса от до .
VIRT — общий объем (в килобайтах) виртуальной памяти (физическая память самого процесса; загруженные с диска файлы библиотек; память, совместно используемая с другими процессами и т.п.), используемой задачей в данный момент.
RES — текущий объем (в килобайтах) физической памяти процесса.
SHR — объем совместно используемой с другими процессами памяти.
S (сокр. от «STATUS») — состояние процесса:
S (сокр. от «Sleeping») — прерываемое ожидание. Процесс ждет наступления события.
I (сокр. от «Idle») — процесс бездействует.
R (сокр. от «Running») — процесс выполняется (или поставлен в очередь на выполнение).
Z (сокр. от «Zombie») — зомби-процесс.
%CPU — процент используемых ресурсов процессора.
%MEM — процент используемой памяти.
TIME+ — количество процессорного времени, потраченного на выполнение процесса.
COMMAND — имя процесса (команды).
Также в сочетании с основными символами состояния процесса (S от «STATUS») вы можете встретить и дополнительные:
— процесс с высоким приоритетом;
— процесс с низким приоритетом;
— многопоточный процесс;
— фоновый процесс;
— лидер сессии.
Примечание: Все процессы объединены в сессии. Процессы, принадлежащие к одной сессии, определяются общим идентификатором сессии — идентификатором процесса, который создал эту сессию. Лидер сессии — это процесс, идентификатор сессии которого совпадает с его идентификаторами процесса и группы процессов.
Команда glances
Команда glances — это относительно новый инструмент мониторинга системы с расширенными функциями:
Примечание: Если в вашей системе отсутствует данная утилита, то установить её можно с помощью следующих команд:
RHEL/CentOS/Fedora
Debian/Ubuntu/Linux Mint
Соответствие FHS
Наиболее Дистрибутивы Linux следуйте Стандарту иерархии файловой системы и объявите его собственной политикой по поддержанию соответствия FHS.GoboLinux и NixOS предоставить примеры намеренно несовместимых реализаций файловых систем.
Некоторые дистрибутивы обычно следуют стандарту, но в некоторых областях отклоняются от него. FHS — это «конечный стандарт», который документирует общепринятые практики на определенный момент времени. Конечно, времена меняются, и цели и потребности распространения требуют экспериментов. Некоторые общие отклонения включают:
- Современные дистрибутивы Linux включают каталог как виртуальная файловая система (sysfs, сравним с , что является procfs), который хранит и позволяет изменять устройства, подключенные к системе, тогда как многие традиционные Unix-подобный операционные системы используют как символическая ссылка к ядро исходное дерево.
- Многие современные Unix-подобные системы (например, FreeBSD через его порты system) установить сторонние пакеты в , сохраняя код, считающийся частью операционной системы, в .
- Некоторые дистрибутивы Linux больше не делают различий между и и имеют символическая ссылка на .
- Некоторые дистрибутивы Linux больше не делают различий между и и между и . Они могут быть символическими ссылками к и к . Другие дистрибутивы решили объединить все четыре, символизируя их .
Современные дистрибутивы Linux включают каталог как временная файловая система (tmpfs), в котором хранятся изменчивые данные времени выполнения, следуя FHS версии 3.0. Согласно версии 2.3 FHS, такие данные хранились в , но в некоторых случаях это было проблемой, потому что этот каталог не всегда доступен при ранней загрузке. В результате этим программам пришлось прибегнуть к хитрости, например, используя , , или же каталоги, даже если каталог устройства не предназначен для таких данных. Среди других преимуществ, это упрощает использование системы в обычном режиме с корневой файловой системой, смонтированной только для чтения. Например, ниже приведены изменения. Debian в версии Wheezy 2013 года:
- →
- →
- →
- (записываемые файлы) →
- →
- →
- →
- →
Управление пользователями
Так как Linux заточена под использование большим количеством людей одновременно, разработчики придумали для нее продвинутую иерархию пользователей. У каждого свой набор прав и свои возможности. И есть целый набор команд для работы с ними. Рассмотрим главные.
useradd — создает на сервере новую учетную запись. По сути, нового пользователя. Синтаксис: useradd имя будущей учетной записи. Имя можно указать любое на свой вкус. Потом останется лишь добавить для нового аккаунта пароль.
passwd — задает пароль для учетной записи. Работает вкупе с предыдущей командой. То есть сразу после создания аккаунта, пишем: passwd имя новой учетной записи. После этого система попросит придумать и указать пароль для новой учетной записи.
Система безопасности в Linux не показывает во время ввода пароля даже звездочки, но это не значит, что он не вводится. Продолжайте набирать вслепую, а как закончите, нажмите Enter, и все сработает. И не бойтесь запутаться, вас попросят повторить придуманный пароль.
userdel — удаляет выбранную учетную запись. Синтаксис: userdel имя учетной записи, которую нужно стереть
usermod — вносит изменения в характеристики существующих учетных записей, лишает их контроля или вовсе приостанавливает работу. Делает все, что не связано с созданием и удалением аккаунтов. Используется только вместе с дополнительными опциями:
- -с — добавляет комментарий к аккаунту (можно вписать любой текст по желанию, чтобы запомнить для чего нужен выбранный пользователь).
- -d — меняет расположение домашней директории выбранной учетной записи.
- -e — указывает время, которое будет существовать аккаунт (после этого сработает автоматический userdel).
- -g — меняет группу, к которой принадлежит аккаунт.
- -G — привязывает аккаунт к выбранной группе.
- -L — блокирует пользователя.
- -m — перемещает контент из домашней папки пользователя в другую папку.
- -p — устанавливает незашифрованный пароль (лучше так не делать).
- -s — задает конкретную оболочку для нового аккаунта на усмотрение администратора компьютера.
- -U — снимает блокировку с выбранной учетной записи.
Операционные системы и временные файлы
Операционная система и приложения обычно создают временный файл для одного сеанса. Это подразумевает, что файлы используются в течение текущего сеанса работы системы или приложения. Файлы, сохраняемые как .tmp, могут быть открыты на любой промежуток времени, в течение которого ПК активен. Они естественным образом удаляются, как только вы выключите свою платформу ПК или закроете приложение.
Ужасно, когда файлы .tmp не стираются автоматически после того, как они больше не используются. Вместе с тем, файлы .tmp довольно часто содержат деликатные данные и не должны удаляться без оглядки. Прежде чем стирать файлы физически, вы должны сначала понять, использует ли их ваш компьютер или нет.
Сначала выясните, являются ли данные, сохраненные в файле .tmp, ценными или нет, прежде чем физически их удалить. Если вы больше не нуждаетесь в информации из файла .tmp, вы можете удалить его. Это не вызовет каких-либо проблем для используемого вами приложения или вашего ПК.
Linux Date Command with Examples
10 Мая 2020
|
Терминал
В этом руководстве мы рассмотрим основы date команды.
Команда отображает или устанавливает системную дату. Чаще всего он используется для печати даты и времени в разных форматах и для расчета будущих и прошлых дат.
Использование Date
Синтаксис команды следующий:
Чтобы отобразить текущее системное время и дату, используя форматирование по умолчанию, вызовите команду без каких-либо параметров и аргументов:
Выходные данные включают день недели, месяц, день месяца, время, часовой пояс и год:
Вывод команды может быть отформатирован с помощью последовательности символов управления форматом, перед которой стоит знак. Элементы управления форматом начинаются с символа и заменяются их значениями.
Символ будет заменен на год, месяц и день месяца:
Вот еще один пример:
Ниже приведен небольшой список некоторых наиболее распространенных символов форматирования:
- — Сокращенное название дня недели (например, понедельник)
- — Сокращенное полное название дня недели (например, понедельник)
- — Сокращенное название месяца (например, январь).
- — сокращенное длинное название месяца (например, январь)
- — день месяца (например, 01)
- — час (00..23)
- — час (01.12.12)
- — День года (001..366)
- — Месяц (01.12.12)
- — Минута (00..59)
- — Второй (00 .. 60)
- — день недели (1..7)
- — Полный год (например, 2019)
Чтобы получить полный список всех параметров форматирования, запустите или в своем терминале.
Пользовательское форматирование даты
Опция позволяет работать на дату конкретного. Вы можете указать дату в виде удобочитаемой строки даты, как показано ниже:
Использование пользовательского форматирования:
Строка даты принимает значения, такие как «завтра», «пятница», «последняя пятница», «следующая пятница», «следующий месяц», «следующая неделя» .. и т. Д.
Вы также можете использовать параметр строки даты, чтобы показать местное время для разных часовых поясов. Например, чтобы показать местное время 6:30 утра следующего понедельника на восточном побережье Австралии, введите:
Переопределить часовой пояс
Команда возвращает дату в системном часовом поясе по умолчанию . Чтобы использовать другой часовой пояс, установите переменную среды в желаемый часовой пояс.
Например, чтобы показать время в Мельбурне, введите:
Чтобы получить список всех доступных часовых поясов , вы можете либо перечислить файлы в каталоге, либо использовать команду.
Конвертер эпох
Команда может быть использована в качестве преобразователя Epoch. Время, или метки времени Unix, — это количество секунд, прошедших с 1 января 1970 года в 00:00:00 UTC.
Чтобы напечатать количество секунд от эпохи до текущего дня, вызовите с контролем формата:
Чтобы преобразовать секунды с начала эпохи в дату, установите секунды в виде строки даты с префиксом :
Использование с другими командами
Команда чаще всего используется для создания имен файлов, которые содержат текущее время и дату.
Команда ниже создаст файл резервной копии Mysql в следующем формате
Вы также можете использовать команду в своих сценариях оболочки. В приведенном ниже примере мы присваиваем выход к переменной:
Показать время последнего изменения файла
Команда с параметром показывает время последнего изменения файла. Например:
Если вы хотите изменить временную метку файла, используйте команду .
Установите системное время и дату
Установка системного времени и даты вручную с помощью этой команды не рекомендуется, поскольку в большинстве дистрибутивов Linux системные часы синхронизируются с помощью служб или .
Однако, если вы хотите установить системные часы вручную, вы можете использовать эту опцию. Например, если вы хотите установить дату и время 17:30, 01 июня 2019 г., введите:
Команда Linux отображает или устанавливает системную дату и время.
Основной цикл
Редактор sed оперирует тремя объектами: входной поток строк, буфер строк (pattern space), буфер хранения (hold space), выходной поток. ( pattern space также переводят как «пространство регулярных выражений»)
В цикле производятся следующие действия:
- строка из входного потока читается в буфер строк. Из строки удаляется символ перевода строки;
- к буферу строк последовательно применяются все команды с подходящими адресами (в том числе команды обмена между буфером строк и буфером хранения);
- если не отключена автопечать, то содержимое буфера строк выводится в выходной поток. Туда же дописывается перевод строки;
- буфер строк очищается и цикл повторяется.
Примеры использования find
Поиск файла по имени
1. Простой поиск по имени:
find / -name «file.txt»
* в данном примере будет выполнен поиск файла с именем file.txt по всей файловой системе, начинающейся с корня .
2. Поиск файла по части имени:
find / -name «*.tmp»
* данной командой будет выполнен поиск всех папок или файлов в корневой директории /, заканчивающихся на .tmp
3. Несколько условий.
а) Логическое И. Например, файлы, которые начинаются на sess_ и заканчиваются на cd:
find . -name «sess_*» -a -name «*cd»
б) Логическое ИЛИ. Например, файлы, которые начинаются на sess_ или заканчиваются на cd:
find . -name «sess_*» -o -name «*cd»
в) Более компактный вид имеют регулярные выражения, например:
find . -regex ‘.*/\(sess_.*cd\)’
find . -regex ‘.*/\(sess_.*\|.*cd\)’
* где в первом поиске применяется выражение, аналогичное примеру а), а во втором — б).
4. Найти все файлы, кроме .log:
find . ! -name «*.log»
* в данном примере мы воспользовались логическим оператором !.
Поиск по дате
1. Поиск файлов, которые менялись определенное количество дней назад:
find . -type f -mtime +60
* данная команда найдет файлы, которые менялись более 60 дней назад.
2. Поиск файлов с помощью newer. Данная опция доступна с версии 4.3.3 (посмотреть можно командой find —version).
а) дате изменения:
find . -type f -newermt «2019-11-02 00:00»
* покажет все файлы, которые менялись, начиная с 02.11.2019 00:00.
find . -type f -newermt 2019-10-31 ! -newermt 2019-11-02
* найдет все файлы, которые менялись в промежутке между 31.10.2019 и 01.11.2019 (включительно).
б) дате обращения:
find . -type f -newerat 2019-10-08
* все файлы, к которым обращались с 08.10.2019.
find . -type f -newerat 2019-10-01 ! -newerat 2019-11-01
* все файлы, к которым обращались в октябре.
в) дате создания:
find . -type f -newerct 2019-09-07
* все файлы, созданные с 07 сентября 2019 года.
find . -type f -newerct 2019-09-07 ! -newerct «2019-09-09 07:50:00»
* файлы, созданные с 07.09.2019 00:00:00 по 09.09.2019 07:50
Искать в текущей директории и всех ее подпапках только файлы:
find . -type f
* f — искать только файлы.
Поиск по правам доступа
1. Ищем все справами на чтение и запись:
find / -perm 0666
2. Находим файлы, доступ к которым имеет только владелец:
find / -perm 0600
Поиск файла по содержимому
find / -type f -exec grep -i -H «content» {} \;
* в данном примере выполнен рекурсивный поиск всех файлов в директории и выведен список тех, в которых содержится строка content.
С сортировкой по дате модификации
find /data -type f -printf ‘%TY-%Tm-%Td %TT %p\n’ | sort -r
* команда найдет все файлы в каталоге /data, добавит к имени дату модификации и отсортирует данные по имени. В итоге получаем, что файлы будут идти в порядке их изменения.
Лимит на количество выводимых результатов
Самый распространенный пример — вывести один файл, который последний раз был модифицирован. Берем пример с сортировкой и добавляем следующее:
find /data -type f -printf ‘%TY-%Tm-%Td %TT %p\n’ | sort -r | head -n 1
Поиск с действием (exec)
1. Найти только файлы, которые начинаются на sess_ и удалить их:
find . -name «sess_*» -type f -print -exec rm {} \;
* -print использовать не обязательно, но он покажет все, что будет удаляться, поэтому данную опцию удобно использовать, когда команда выполняется вручную.
2. Переименовать найденные файлы:
find . -name «sess_*» -type f -exec mv {} new_name \;
или:
find . -name «sess_*» -type f | xargs -I ‘{}’ mv {} new_name
3. Вывести на экран количество найденных файлов и папок, которые заканчиваются на .tmp:
find . -name «*.tmp» | wc -l
4. Изменить права:
find /home/user/* -type d -exec chmod 2700 {} \;
* в данном примере мы ищем все каталоги (type d) в директории /home/user и ставим для них права 2700.
5. Передать найденные файлы конвееру (pipe):
find /etc -name ‘*.conf’ -follow -type f -exec cat {} \; | grep ‘test’
* в данном примере мы использовали find для поиска строки test в файлах, которые находятся в каталоге /etc, и название которых заканчивается на .conf. Для этого мы передали список найденных файлов команде grep, которая уже и выполнила поиск по содержимому данных файлов.
6. Произвести замену в файлах с помощью команды sed:
find /opt/project -type f -exec sed -i -e «s/test/production/g» {} \;
* находим все файлы в каталоге /opt/project и меняем их содержимое с test на production.
Формат команд
Адреса определяют строки, к которым должна быть применена команда. Если адрес не указан, то команда применяется ко всем строкам. Если указаны два адреса, то команда применяется ко всем строкам от addr1 до addr2 включительно. Адреса могут быть номерами строк (в том числе символ $ в качестве номера последней строки), регулярными выражениями в формате или (в этом случае % может быть заменён на любой символ). Запись addr! означает, что команду надо применять ко всем адресам, кроме указанного.
Команда кодируется одним символом. Опции зависят от типа выполняемой команды. Чтобы применить к одному адресу несколько команд, они могут быть сгруппированы с помощью фигурных скобок.
В файле отдельные команды могут располагаться в отдельных строках. При запуске однострочных программ команды отделяются точкой с запятой или передаются в виде последовательности опций
Дополнительно
Команда clear используется для очистки терминала, если он загроможден слишком большим количеством данных от прошлых команд
Нажатие на клавишу TAB (табуляция) приведет к автоматическому дополнению того, что вы в данный момент набираете в терминале. Например, если вам нужно перейти в папку Documents, то начните вводить команду , а затем нажмите на клавишу TAB и терминал автоматически дополнит команду до .
Сочетания клавиш:
— останавливает и завершает команду;
— ставит выполнение команды на паузу;
— временно приостанавливает вывод информации в терминал;
— продолжает вывод информации в терминал;
— перемещает вас в начало строки;
— перемещает вас в конец строки.
Вы можете запускать несколько команд в одной строке, отделяя их с помощью символа , например:
Если вместо использовать , то следующая команда выполнится только после успешного выполнения предыдущей.
Поиск через графический интерфейс
Главное меню
С помощью главного меню ОС вы можете не только искать и запускать программы, но также и выполнять поиск файлов. Подобный функционал присутствует во многих окружениях рабочего стола (, , и пр.). Например, в KDE это представлено следующим образом:
При этом стоит отметить, что такой вариант поиска ориентирован больше на поиск программ, нежели на поиск файлов, поэтому выполняется он только в домашнем каталоге и не уходит вглубь файловой системы.
Файловые менеджеры
Многие файловые менеджеры также предоставляют возможности поиска файлов. Например, в Dolphin для запуска поиска достаточно просто нажать кнопку со значком лупы, а затем ввести имя файла (или папки) в строку поиска. При этом вы можете выбрать папку, в которой будет выполняться поиск, а также указать дополнительные параметры (поиск по содержимому и пр.). Помимо этого в качестве поискового запроса допускается применять символы и :
Поиск по содержимому в Dolphin:
KFind
В KDE, помимо вышеупомянутых инструментов поиска, также есть замечательная утилита под названием KFind. С её помощью вы можете точно настроить параметры поиска (указать имя файла, его тип и путь поиска, обычный текстовый поиск или мета-поиск, дату изменения, размер, пользователя, группу и пр.). Она также позволяет сохранять результаты поиска в виде простого текстового списка URL-адресов найденных файлов:
SearchMonkey
SearchMonkey позволяет выполнять поиск файла, как по имени, так и по его содержимому, по диапазону дат и пр. Но главное преимущество SearchMonkey — это возможность везде применять регулярные выражения.
Поиск с применением регулярного выражения в SearchMonkey:
Recoll
Recoll — это приложение (поисковый движок) для полнотекстового поиска, выполняющее поиск ваших данных по содержимому, а не по внешним атрибутам (например, по имени файла). Вам не нужно запоминать, в каком файле или сообщении электронной почты вы хранили ту или иную информацию. Необходимо лишь указать слова (или выражения), которые должны или не должны присутствовать в искомом тексте, и взамен вы получите список соответствующих документов, упорядоченных таким образом, что первыми идут наиболее релевантные из них (подобно поисковым системам Интернета).
Установить программу можно из официальных репозиториев через командную строку:
Или через графический интерфейс:
Сразу же после запуска утилита предложит вам создать индекс документов, которые присутствуют в вашем домашнем каталоге. После создания индекса вы сможете выполнять по нему поиск. Для этого достаточно ввести какой-нибудь запрос, например, , и вы увидите все файлы, которые содержат это слово с примерами вхождений, отсортированные по релевантности:
Это может быть очень удобно при работе с большим объемом текстовых данных. Программа поддерживает такие форматы файлов, как: .pdf, .djvu, .doc, .docx, .odf. А также умеет находить перечисленные файлы в архивах.
Настройка сервера времени ntp в Linux
Для этого, чтобы ваша система могла автоматический регулировать время, вам нужно установить програмку ntp. Получите ее из репозитария. После того, как она будет установлена, вы можете настроить ее следующим образом. Однократно хронируем время:
Если получили что-то вроде the NTP socket is in use, exiting — значивает ntpd демон уже запущен. В этом случае остановим его:
Налаживаем работу ЧРВ в BIOS на время по UTC:
Этой бригадой мы присвоили значение времени аппаратных часов равным системному времени. Как вы помните, целые часы мы синхронизировали командами выше. Проверим содержимое файла /etc/sysconfig/clock дабы система после загрузки правильно выставляла местное время.
Теперь целые и аппаратные часы вашего сервера будут автоматически синхронизироваться с эталонными серверами и постоянно показывать точное время. Теперь вы знаете как выполняется установка времени linux. Как видите, это очень просто, вы можете использовать различные способы, в зависимости от того, что вам будет спокойнее.