Основные команды Linux: справочник команд Linux
1. Общие команды Linux
Здесь собраны Linux-команды, которым не нашлось место в других разделах.
# uname -a # Показывается версия ядра Linux; # lsb_release -a # На экран выводится информация о версии ОС и основанных на ней дистрибутивах; # clear # Очищается экран терминала; # cat /etc/SuSE-release # На экран выводится информация о версии ОС SuSE; # man hier # Описывается иерархия файловой системы (для чего необходима каждая директория в Linux); # wall Привет # На терминалы других пользователей отправляется сообщение «Привет»; # date # Отображается текущая дата и время; # cal -3 # Отображается в удобной форме предыдущий, текущий и следующий месяц; # uptime # Отображается текущее время и работа системы без выключения и перезагрузки; # hostname # Выводится сетевое имя компьютера; # whois linux.org # Показывается информация о домене linux.org; # export http_proxy=http://your.proxy:port # Меняется переменная окружения http_proxy для использования интернета посредством proxy-сервера; # wget --convert-links -r http://www.linux.org/ # Сайт копируется целиком, конвертируются ссылки для автономной работы. Копирование производится на глубину 5-ти уровней; # wget http://itshaman.ru/images/logo_white.png # Файл http://itshaman.ru/images/logo_white.png скачивается в текущую папку; # pppconfig # Команда нужна для создания и настройки соединения Dial-Up при выходе в интернет по модему; # pppoeconf # Команда для создания и настройки выхода в сеть через ADSL-модем; # !! # Обеспечивается выполнение последней команды; # history | tail -50 # Отображаются последние 50 набранных команд; # exit # Сеанс текущего пользователя завершается; # passwd # Пароль текущего пользователя меняется; # shutdown -h now # Для выхода из Linux; # poweroff # Для выхода из Linux; # reboot # Система перезагружается; # last reboot # Выводится статистика перезагрузок; # winecfg # Для настройки Wine — неэмулятора WinAPI; # host itshaman.ru # Для отображения IP-адреса введённого сайта.
2. Команды Linux для работы с директориями и файлами
В этом списке вы увидите команды Linux, которые предназначены для создания и удаления директорий и файлов. Также список включает команды навигации между файлами, команды для назначения прав доступа и владельца.
2.1 Файлы и директории
# pwd # Выводится текущий путь; # ls # Выводится список каталогов и файлов по порядку; # ls -laX # Выводится отформатированный список всех директорий и файлов, в том числе скрытых; # cd # Для перехода в домашнюю директорию; # cd /home # Для перехода в директорию /home; # touch /home/primer2 # Создаётся пустой файл /home/primer2; # tail /var/log/messages # Выводится конец файла. Это удобно, если вы работе с большими файлами и логами; # cat /home/primer2 # Показывается содержимое файла; # nano /home/primer2 # Обеспечивается редактирование файла; # gedit /home/primer2 # Ещё одна Linux-команда для редактирования файла; # echo "Последняя строчка" | sudo tee -a /home/primer2 # К концу файла добавляется "Последняя строчка"; # cp /home/Mut@NT/primer.txt /home/primer.txt # Копируется /home/Mut@NT/primer.tx в home/primer.txt; # mkdir /home/Mut@NT/shaman # Создаётся директория с именем shaman; # rmdir /home/Mut@NT/shaman # Удаляется директория с именем shaman; # rm -rf /home/Mut@NT/shaman # Удаляется директория со вложенными фалами; # ln -s /home/Mut@NT/primer.txt /home/primer # Cоздаётся символическая ссылка к файлу /home/Mut@NT/primer.txt; # cp -la /dir1 /dir2 # Для копирования директории; # mv /dir1 /dir2 # Для переименовывания директории; # du -sh /home/Mut@NT/ # На экран выводится размер заданной директории. Команда подходит и для определения размера файлов; # locate primer # Выполняется поиск файлов с именем primer.
2.2 Права доступа
# [sudo] chmod 0777 /home/ # Меняются права доступа к директории. В данном случае 0777 – это разрешение на чтение/запись/исполнение для всех групп; # [sudo] chown Mut@NT:ITShaman /home/primer.txt # Меняются владелец и группы, но только для файла /home/primer.txt; # [sudo] chmod -R 0777 /home/ # Происходит рекурсивное изменение прав доступа к директории. Значение 0777 мы уже описали выше. Права 0777 будут иметь все вложенные файлы и директории; # [sudo] chown -R Mut@NT /home/ # Для всего содержимого директории меняется владелец.
3. Команды Linux: работаем с архивами
# tar cf primer.tar /home/primer.txt # Создаётся tar-архив с именем primer.tar; # tar cjf primer.tar.bz2 /home/primer.txt # Создаётся tar-архив со сжатием Bzip2 и именем primer.tar.bz; # tar czf primer.tar.gz /home/primer.txt # Cоздаётся tar-архив со сжатием Gzip и именем primer.tar.gz; # tar xf primer.tar # В текущую папку распаковывается архив primer.tar; # tar xjf primer.tar.bz # Распаковывается tar-архив с Bzip2; # tar xzf primer.tar.gz # Распаковывается tar-архив с Gzip.
4. Команды Linux для установки программ
4.1 Просмотр установленных пакетов
RPM-дистрибутивы
# rpm -qa # Отображается список пакетов RPM, установленных в системе.
DEB–дистрибутивы
# dpkg -l |more # Для показа списка пакетов DEB, установленных в системе; # apt-cache search имя пакета # Для поиска в индексах доступного пакета и вывода на экран краткой информации о нужном пакете (это весьма полезная команда, обеспечивающая поиска программ из консоли); # apt-cache showpkg имя пакета # Для отображения полной информации об указанном пакете.
4.2 Установка и удаление пакетов
RPM-дистрибутивы
# [sudo] rpm -i pkgname.rpm # Устанавливается RPM-пакет pkgname.rpm; # [sudo] dpkg -i *.rpm # Устанавливаются все пакеты в директории; # [sudo] rpm -e pkgname # Удаляется RPM-пакет pkgname.
DEB-дистрибутивы
# [sudo] apt-get update # Обновляется список доступных пакетов из интернета; # [sudo] apt-get upgrade # Обновляется доступная версия установленных пакетов в системе; # [sudo] dpkg -i *.deb # Устанавливаются все пакеты в директории; # [sudo] apt-get install pkgname # Устанавливается DEB-пакет pkgname; # [sudo] apt-get remove pkgname # Удаляется DEB-пакет pkgname.
5. Команды Linux для мониторинга работы и просмотра логов
Здесь собраны команды Linux нужные для мониторинга работы ОС. Все показания, полученные с их помощью, выводятся на экран в режиме реального времени. Число, которое стоит после команды, обозначает интервал между выводом информации.
# top # Для получения информации о загруженных процессах, потреблении ОЗУ; # htop # Расширенная онлайн-статистика о загруженных процессах; # dmesg # Отображение log-файла загрузки операционной системы и нахождения новых устройств; # mpstat 1 # Отображается расширенная статистика потребления ресурсов в процентах (для некоторых дистрибутивов нужна установка пакета sysstat); # iostat 2 # Показывается расширенная статистика прерываний по устройствам; # vmstat 2 # Расширенная статистика по применению виртуальной памяти.
6. Команды Linux для отображения информации об устройствах
# lsdev # Установленные устройства (для некоторых дистрибутивов потребуется пакет procinfo); # cat /proc/cpuinfo # Полная информация о модели процессора; # cat /proc/meminfo # Расширенная информация о занимаемой ОС; # watch -n1 'cat /proc/interrupts' # Данные о прерываниях; # grep SwapTotal /proc/meminfo # Размер раздела, который выделен под swap; # free -m # Используемые и свободные ОЗУ и Swap-файл (-m указывает, что отображать данные надо в Мб); # lshal # Полный список всех устройств, а также их параметров; # lspci -tv # Показ обнаруженных PCI-устройств; # cat /proc/devices # Все устройства в системе (названия взяты из директории /proc/devices); # lsusb -tv # USB-устройства; # [sudo] dmidecode # Версия BIOS; # gtf 1024 768 75 # Вывод строки ModeLine для монитора на параметрах экрана 1024x768x75Hz.
7. Команды Linux для жёстких дисков и файловой системы
7.1 Информация о жёстком диске и файловой системе
# fdisk -l # Все подключенные жесткие и сменные диски; # smartctl -a /dev/sda1 # Вывод SMART-данных о разделе жесткого диска /dev/sda1 (нужен пакет smartmontools); # [sudo] hdparm -I /dev/sda # IDE/ATA жёсткие диски; # [sudo] blkid # Вывод UUID всех доступных накопителей в системе.
7.2 Производительность жёстких дисков
# [sudo] hdparm -tT /dev/sda # Отображение производительности жёсткого диска.
7.3 Монтирование разделов жёсткого диска
# mount | column -t # Примонтированные устройства; # cat /proc/partitions # Только примонтированные разделы; # df # Свободное место на разделах; # [sudo] mount /dev/sda1 /mnt # Монтаж раздела /dev/sda1 к точке монтирования /mnt; # [sudo] mount -t auto /dev/cdrom /mnt/cdrom # Монтаж большинства CD-ROM`ов; # [sudo] mount /dev/hdc -t iso9660 -r /cdrom # Монтаж IDE CD-ROM; # [sudo] mount /dev/scd0 -t iso9660 -r /cdrom # Монтаж SCSI CD-ROM; # [sudo] mount -t ufs -o ufstype=ufs2,ro /dev/sda3 /mnt # Монтаж разделов FreeBSD в Linux; # [sudo] mount -t iso9660 -o loop /home/file.iso /home/iso # Монтаж ISO-образов; # [sudo] mount -t smbfs -o username=vasja,password=pupkin //pup/Video # Монтаж сетевых ресурсов (SMB); # [sudo] mount /dev/sdb1 -t vfat -o rw /mnt # Монтаж раздела с файловой системой FAT 16/32 к точке монтирования /mnt с возможностью записи; # [sudo] umount /mnt # Демонтаж раздела от точки монтирования /mnt;
8. Команды Linux для настройки сети
8.1 Конфигурация сети
# ifconfig # Параметры всех сетевых; # ifconfig eth0 # Параметры сетевого интерфейса eth0; # [sudo] ethtool eth0 # Состояние сетевого интерфейса eth0 (Может потребоваться пакет ethtool). Команда применяется только для проводных подключений (с беспроводными интерфейсами не работает); # [sudo] ethtool -s eth0 speed 100 duplex full autoneg off # Принудительное задание скорости сетевому интерфейсу 100 Mbit и режима Full duplex и отключение автоматического определения; # ifconfig eth0 192.168.50.254 netmask 255.255.255.0 # Задание основного IP-адреса сетевому интерфейсу eth0; # ip addr add 192.168.50.254/24 dev eth0 # Аналогично; # ifconfig eth0:0 192.168.51.254 netmask 255.255.255.0 # Задание дополнительного IP-адреса сетевому интерфейсу eth0; # ip addr add 192.168.51.254/24 dev eth0 label eth0:1 # Аналогично; # [sudo] ifconfig eth0 up # Запуск сетевого интерфейса eth0; # [sudo] ifconfig eth0 down # Его отключение; # ifconfig eth0 hw ether 00:01:02:03:04:05 # Для смены MAC-адреса; # [sudo] /etc/init.d/dhcpd restart # Для перезагрузки DHCP клиента; # ping 192.168.0.2 # Для проверки сетевого соединения. Пингуется IP-адрес 192.168.0.2.
8.2 Маршрутизация
# route -n # Для вывода на экран таблицы маршрутизации; # netstat -rn # Аналогично.
8.3 Управление портами (брандмауэр)
# lsof -i # Показывается список всех открытых портов в сеть интернет; # netstat -an | grep LISTEN # Отображение списка всех открытых портов; # [sudo] netstat -tup # Вывод активных соединений с интернетом; # socklist # Открытые сокеты; # [sudo] netstat -anp --udp --tcp | grep LISTEN # Выводится список приложений, открывающих порты; # [sudo] iptables -P INPUT ACCEPT # Открытие доступа ко всем портам; # [sudo] iptables -P FORWARD ACCEPT # То же самое; # [sudo] iptables -P OUTPUT ACCEPT # То же; # [sudo] iptables -L -n -v # Статус firewall (статус iptables); # [sudo] iptables -X # Удаляются все цепочки.
8.4 Управление NAT
# [sudo] iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE # Чтобы «поднять» NAT на интерфейсе eth0; # [sudo] iptables -t nat -A PREROUTING -p tcp -d 78.31.70.238 --dport 993:995 -j DNAT --to 192.168.16.254:993-995 # Перенаправить диапазон портов 993-995; # [sudo] iptables -t nat -A PREROUTING -p tcp -d 78.31.70.238 --dport 20022 -j DNAT --to 192.168.16.44:22 # Перенаправить порт 20022, используемый для ssh; # iptables -L -t nat # Для проверки статуса NAT.
9. Команды Linux для создания и записи образов ISO
# cdrecord -scanbus # Отображение всех доступных CD-ROM; # dd if=/dev/hdc of=/tmp/mycd.iso bs=2048 conv=notrunc #Создание образов ISO с диска CD-ROM.
10. Команды Linux: группы и пользователи
Эти команды Linux необходимы для работы с пользователями и группами пользователей.
# id # Сводная информация по текущему пользователю (логин, UID, GID, группы); # finger Mut@NT # Информация о пользователе Mut@NT; # last # Последние зарегистрированные пользователи; # who # Имя текущего пользователя и время его входа; # useradd Mut@NT # Добавляет нового пользователя Mut@NT; # groupadd Otus # Добавляет группу Otus; # usermod -a -G Otus Mut@NT # Добавляет пользователя с именем Mut@NT в группу под названием Otus (для Debian); groupmod -A Mut@NT Otus # Добавление пользователя Mut@NT в группу под названием Otus (SuSE); # userdel Mut@NT # Пользователь Mut@NT удаляется; # groupdel Otus # Группа Otus удаляется.
11. Команды Linux для работы с процессами
Обратите внимание, что все процессы, которые запущены, имеют PID — уникальные номера.
# ps axjf # Все загруженные процессы; # pgrep -l sshd # PID конкретного процесса – sshd; # fuser -va 22/tcp # PID процесса использующего 22-й порт; # echo $$ # PID вашей оболочки; # fuser -va /home # PID процесса; # lsof /home # Список процессов; # killall 0 httpd # Текущее состояние процесса httpd; # kil 4712 # С помощью этой команды вы «убьёте» процесс с PID 4712; # [sudo] killall TERM 4711 # Команда посылает процессу с PID`ом 4711 сигнал TERM, завершающий процесс; # [sudo] killall HUP httpd # Процесс с именем httpd получает сигнал HUP, останавливающий процесс; # [sudo] fuser -k -TERM -m /home # «Убиваются» все процессы, обладающие доступом к /home.
Ещё раз про важные сигналы, которые можно послать процессам: • 1 — HUP; остановка процесса; • 2 — INT; прерывание процесса; • 3 — QUIT; выход; • 9 — KILL; чтобы «убить» процесс; • 15 — TERM; завершение процесса.
12. Команды Linux: Runlevels
После того, как происходит загрузка ядра Linux, загружаются разные демоны и приложения, например, NetworkManager, Evolution и прочие. Результат мы видим на рабочем столе после загрузки. При этом загрузка каждой службы выполняются скриптом, которые находятся в /etc/init.d.
Runlevels – это целое число, определяющее «уровень загрузки».
Уровни бывают: • Runlevels=0; выключение компьютера; • Runlevels=1; работа в режиме Single-User; • Runlevels=2; текстовый режим (сеть не поддерживается); • Runlevels=3; текстовый режим но уже с поддержкой сети; • Runlevels=4; • Runlevels=5; графический режим; • Runlevels=6; осуществляется перезагрузка компьютера.
Таким образом, скрипты, которые загружаются лишь в текстовом режиме с поддержкой сети, — это Runlevels=3.
Упрощённый вариант настройки:
# [sudo] sysv-rc-conf #Чрезвычайно удобная настройка Runlevels, правда, нужен пакет sysv-rc-conf.
А вот ручной вариант настройки:
# chkconfig --list # Список всех скриптов с соответствующими Runlevels; # chkconfig --list udev # Разрешенные Runlevels только отдельного скрипта, у нас это udev; # [sudo] update-rc.d udev defaults # Скрипту udev выставляются значения Runlevels по умолчанию; # [sudo] chkconfig udev off # У udev отключаются все Runlevels; # [sudo] update-rc.d -f udev remove # Аналогично для Debian; # [sudo] chkconfig udev --level 35 on # Для добавления скрипту udev Runlevels 3 и 5; # [sudo] update-rc.d udev start 20 2 3 4 5 . stop 20 0 1 6 # Для изменения параметров для скрипта udev.
13. Команды Linux для работы с ядром и модулями
13.1 Работа с ядром системы
# uname -a # Отображение версии ядра Linux.
13.2 Работа с модулями ядра
# lsmod # Вывод списка всех модулей, загруженных в ядро; # [sudo] modprobe isdn # Для загрузки модуля на примере isdn; # make # Создаётся сжатый образ ядра; # [sudo] make modules_install # Устанавливается модуль; # make modules # Производится компиляция модуля; # [sudo] make install # Для установки в ядро системы.
14. Команды Linux для работы с LiveCD
# [sudo] chroot /mnt # Происходит смена root-окружения на /mnt. Далее корневой раздел, который примонтировн к /mnt, используется как родной.
15. Команды Linux для конвертирования данных
15.1 Конвертирование текста
# iconv -l # Вывод списка всех кодировок, которые доступны; # iconv -f cp1251 -t UTF-8 file_cp1251.txt -o file_utf8.txt # Смена кодировки. Например, был файл file_cp1251.txt (кодировка cp1251), а получился файл file_utf8.txt (кодировка utf8).
15.2 Конвертирование PDF в JPEG
# convert name.pdf name-%03d.jpg # Конвертация name.pdf в постраничные изображения JPEG (может понадобиться пакет imagemagick); # convert *.jpeg name.pdf # Конвертация изображений JPEG в PDF (может потребоваться пакет imagemagick).
15.3 Конвертирование видео
# mencoder -o videoout.avi -oac mp3lame -ovc lavc -srate 11025 -channels 1 -af-adv force=1 -lameopts preset=medium -lavcopts vcodec=msmpeg4v2:vbitrate=600 -mc 0 vidoein.AVI
15.4 Конвертирование аудио
# cdparanoia -B # Треки с AudioCD копируются в текущую директорию wav-файлами; # oggenc in.wav -b 256 out.ogg # Wav-файлы конвертируются в Ogg Vorbis с качеством 256 kb/s; # lame -b 256 in.wav out.mp3 # Wav-файлы конвертируются в mp3 с качеством 256 kb/s.
16. Команды Linux для печати на принтере
# export PRINTER=lbp2900 # Выбирается принтер по умолчанию. У нас это Canon LBP-2900; # lprm - # С принтера по умолчанию удаляются все задачи; # lpr #2 name.txt # На принтере распечатываются две копии файла name.txt.
Как получить основную информацию о системных и дисковых разделах?
1. Введение
Для задач администрирования нам часто требуется подробная информация о нашей системе. Таким образом, в случае Linux знания о версии ядра и дистрибутиве для нас очень важны.
Кроме того, нам нужна информация о доступном физическом хранилище. Следовательно, в контексте Linux нам нужно перечислить разделы диска.
Мы рассмотрим команды Linux, полезные для достижения этой цели.
2. Команда uname для данных ядра
Команда uname возвращает кучу информации, касающейся нашего ядра. Итак, давайте проверим имя ядра:
$ uname
Linux
2.1. Варианты отмены
Мы должны использовать опции для получения более конкретной информации. Поэтому для всех полей давайте использовать переключатель –a:
$ uname -a
Linux 10.0.2.15 5.14.10-300.fc35.x86_64 #1 SMP Thu Oct 7 20:48:44 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Теперь давайте проверим каждый фрагмент информации, связанный с ядром, с помощью его собственного переключателя.
Таким образом, для имени ядра давайте использовать -s (или просто ничего):
$ uname -s
Linux
Затем, для выпуска ядра, давайте использовать -r:
$ uname -r
5.14.10-300.fc35.x86_64
Наконец, для версии ядра мы должны использовать -v:
$ uname -v
#1 SMP Thu Oct 7 20:48:44 UTC 2021
Давайте заметим, что данные, связанные с ядром, компилируются только во время сборки ядра. Во время выполнения они получаются с помощью системного вызова uname.
2.2. Доступность
Команда является частью пакета sh-utils или coreutils. Поэтому мы должны найти ее практически во всех дистрибутивах.
3. Информация о распространении с помощью lsb_release
Теперь мы собираемся узнать о деталях дистрибутива Linux с помощью команды lsb_release:
$ lsb_release -a
LSB Version: :core-4.1-amd64:core-4.1-noarch
Distributor ID: Fedora
Description: Fedora release 35 (Thirty Five)
Release: 35
Codename: ThirtyFive
Итак, мы видим, что наша операционная система — Fedora 35.
Кроме того, давайте заметим, что команда построена на основе концепции Linux Standard Base (LSB).
Таким образом, в случае дистрибутивов, совместимых с LSB, команда собирает информацию из файлов /etc/lsb-release и /etc/distrib-release. Кроме того, он анализирует имена файлов в папке /etc/lsb-release.d .
Однако в нашем примере Fedora 35 существует только папка /etc/lsb-release.d .
В некоторых дистрибутивах команда недоступна из коробки. Он поставляется с пакетом lsb_release.
4. Анализ файла версии ОС
Мы можем добиться аналогичного эффекта, как при использовании lsb_release, проанализировав содержимое файла /etc/os-release . Итак, давайте разберемся:
$ cat /etc/os-release
NAME="Fedora Linux"
VERSION="35 (Workstation Edition)"
ID=fedora
VERSION_ID=35
VERSION_CODENAME=""
PLATFORM_ID="platform:f35"
PRETTY_NAME="Fedora Linux 35 (Workstation Edition)"
# more output skipped ...
Теперь давайте будем более конкретными и отобразим только PRETTY_NAME с помощью grep:
$ grep '^PRETTY_NAME' /etc/os-release
PRETTY_NAME="Fedora Linux 35 (Workstation Edition)"
Эта функция является частью systemd manager, поэтому мы должны найти ее в большинстве дистрибутивов Linux. Однако не все поля необходимо заполнять.
5. Команда hostnamectl
Команда hostnamectl управляет именами хостов системы.Он принимает команды, связанные с различными функциями системы.
Таким образом, с помощью команды status мы собираемся получить информацию о ядре и дистрибутиве:
$ hostnamectl status
Static hostname: n/a
Transient hostname: 10.0.2.15
Icon name: computer-vm
Chassis: vm
Machine ID: 588ce19ba22340289d4e9f9ad3c5df63
Boot ID: 5a4584a74a1f4b1596ac4b6d15c96e01
Virtualization: oracle
Operating System: Fedora Linux 35 (Workstation Edition)
CPE OS Name: cpe:/o:fedoraproject:fedora:35
Kernel: Linux 5.14.10-300.fc35.x86_64
Architecture: x86-64
Hardware Vendor: innotek GmbH
Hardware Model: VirtualBox
Хотя некоторые другие команды сужают выходные данные hostnamectl, ни одна из них не возвращает единственную информацию о ядре.
Команда hostnamectl поставляется с пакетом systemd-services.6. Список блочных устройств с помощью lsblk
Мы собираемся получить информацию о системных блочных устройствах с помощью команды lsblk:
$ sudo lsblk -o NAME,KNAME,FSTYPE,MOUNTPOINT,SIZE
NAME KNAME FSTYPE MOUNTPOINT SIZE
sda sda 78,1G
├─sda1 sda1 ext2 /boot 1,5G
├─sda2 sda2 1K
├─sda5 sda5 ext4 / 5,5G
├─sda6 sda6 ext4 /usr 12,5G
├─sda7 sda7 ext4 /home 54,7G
└─sda8 sda8 swap 4G
sr0 sr0 1024M
Мы должны использовать опции -o для предоставления списка имен столбцов, которые мы хотим отобразить. В нашем примере мы использовали:
- ИМЯ – имя устройства
- KNAME – имя внутреннего устройства
- FSTYPE – тип файловой системы
- ТОЧКА ПОДКЛЮЧЕНИЯ – точка подключения устройства
- РАЗМЕР – размер устройства
Мы можем получить полный список доступных столбцов, используя выдачу lsblk -h.
Кроме того, мы можем изменить единицы измерения на байты с помощью переключателя -b.
Наконец, нам не нужны привилегии root для выполнения этой команды.Однако без root-доступа или sudo некоторые столбцы недоступны, например, FSTYPE .
Команда распространяется как часть пакета util-linux.
7. Список разделов диска с помощью fdisk
Давайте воспользуемся хорошо известной командой fdisk для составления списка разделов диска:
$ sudo fdisk -l
Disk /dev/sda: 83.9 GB, 83886080000 bytes
255 heads, 63 sectors/track, 10198 cylinders, total 163840000 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000031b3
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 3106815 1552384 83 Linux
/dev/sda2 3108864 163839999 80365568 5 Extended
/dev/sda5 3110912 14583807 5736448 83 Linux
/dev/sda6 14585856 40724479 13069312 83 Linux
/dev/sda7 40726528 155449343 57361408 83 Linux
/dev/sda8 155451392 163839999 4194304 82 Linux swap / Solaris
Размер разделов указан в блоках по 512 байт. К сожалению, мы не можем изменить единицу, указанную в списке.
7.1. Получение размера раздела в ГБ
Давайте отобразим сведения о разделе, передав его имя в качестве аргумента в fdisk:
$ sudo fdisk -l /dev/sda7
Disk /dev/sda7: 58.7 GB, 58738081792 bytes
255 heads, 63 sectors/track, 7141 cylinders, total 114722816 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/sda7 doesn't contain a valid partition table
Таким образом, мы можем прочитать размер раздела в ГБ.
7.2. Замечания по безопасности и доступность
Мы должны знать, что предоставление списка разделов — это лишь малая часть возможностей fdisk.
Прежде всего, это интерактивный инструмент для создания, удаления и изменения разделов.
Итак, если случайно мы вызываем sudo fdisk /dev/sda (без -l), то мы попадаем в оболочку со всеми доступными командами fdisk.
Затем, если мы не хотим изменять таблицу разделов, мы должны ввести q для выхода.
Команда включена в пакет util-linux.
8. разделен, чтобы справиться с большими разделами
Разделена еще одна команда для управления разделами. Итак, давайте покажем обычный список разделов:
$ sudo parted -l
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sda: 83,9GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 1049kB 1591MB 1590MB primary ext2 boot
2 1592MB 83,9GB 82,3GB extended
5 1593MB 7467MB 5874MB logical ext4
6 7468MB 20,9GB 13,4GB logical ext4
7 20,9GB 79,6GB 58,7GB logical ext4
8 79,6GB 83,9GB 4295MB logical linux-swap(v1)
Давайте заметим, что разделы идентифицируются по номеру, а не по имени устройства. Кроме того, размер аккуратно форматируется с помощью соответствующей единицы измерения.
Команда parted — это интерактивный инструмент, похожий на fdisk.
Однако его замечательной особенностью является возможность работы с разделами размером более 2 ТБ.
Нам нужно установить эту утилиту из пакета parted с таким же именем.
9. Заключение
В этой статье мы представили способы предоставления информации об операционной системе Linux. Мы начали с получения скомпилированной версии ядра.
Затем мы узнали, как проверить детали дистрибутива Linux, применив концепцию LSB или используя данные systemd. Мы также получили аналогичную информацию с помощью инструмента управления именами хостов.
Наконец, мы рассмотрели множество инструментов, предназначенных для запроса системы разделов диска.
Команда find
Иногда критически важно быстро найти нужный файл или информацию в системе. Порой можно ограничиться стандартами функциями поиска, которыми сейчас обладает любой файловый менеджер, но с возможностями терминала им не сравниться.
Команда find – это невероятно мощный инструмент, позволяющий искать файлы не только по названию, но и по:
- Дате добавления.
- Содержимому.
- Регулярным выражениям.
Данная команда будет очень полезна системным администраторам для:
- Управления дисковым пространством.
- Бэкапа.
- Различных операций с файлами.
Команда find в Linux производит поиск файлов и папок на основе заданных вами критериев и позволяет выполнять действия с результатами поиска.
Синтаксис команды find:
$ find directory-to-search criteria action
Где:
- directory-to-search (каталог поиска) – это отправной каталог, с которой find начинает поиск файлов по всем подкаталогам, которые находятся внутри. Если не указать путь, тогда поиск начнется в текущем каталоге;
- criteria (критерий) – критерий, по которым нужно искать файлы;
- action (действие) – что делать с каждым найденным файлом, соответствующим критериям.
Поиск по имени
Следующая команда ищет файл s.txt в текущем каталоге:
$ find . -name "s.txt"
./s.txt
Где:
- . (точка) – файл относится к нынешнему каталогу
- -name – критерии по которым осуществляется поиск. В данном случае поиск по названию файла.
В данном случае критерий -name учитывает только символы нижнего регистра и файл S.txt не появиться в результатах поиска. Чтобы убрать чувствительность к регистру необходимо использовать –iname.
$ find . -iname "s.txt"
./s.txt
./S.txt
Для поиска всех изображений c расширением .png нужно использовать шаблон подстановки *.png:
$ find . -name "*.png"
./babutafb.png
./babutafacebook.png
./Moodle2.png
./moodle.png
./moodle/moodle1.png
./genxfacebook.png
Можно использовать название каталога для поиска. Например, чтобы с помощью команды find найти все png изображения в каталоге home:
$ find /home -name "*.png"
find: `/home/babuta/.ssh': Permission denied
/home/vagrant/Moodle2.png
/home/vagrant/moodle.png
/home/tisha/hello.png
find: `/home/tisha/testfiles': Permission denied
find: `/home/tisha/data': Permission denied
/home/tisha/water.png
find: `/home/tisha/.cache': Permission denied
Если выдает слишком много ошибок в отказе разрешения, тогда можно добавить в конец команды – 2> /dev/null. Таким образом сообщения об ошибках будут перенаправляться по пути dev/null, что обеспечит более чистую выдачу.
find /home -name "*.jpg" 2>/dev/null
/home/vagrant/Moodle2.jpg
/home/vagrant/moodle.jpg
/home/tisha/hello.jpg
/home/tisha/water.jpg
Поиск по типу файла
Критерий -type позволяет искать файлы по типу, которые бывают следующих видов:
- f – простые файлы;
- d – каталоги;
- l – символические ссылки;
- b – блочные устройства (dev);
- c – символьные устройства (dev);
- p – именованные каналы;
- s – сокеты;
Например, указав критерий -type d будут перечислены только каталоги:
$ find . -type d
.
./.ssh
./.cache
./moodle
Поиск по размеру файла
Допустим, что вам необходимо найти все большие файлы. Для таких ситуаций подойдет критерий -size.
- «+» — Поиск файлов больше заданного размера
- «-» — Поиск файлов меньше заданного размера
- Отсутствие знака означает, что размер файлов в поиске должен полностью совпадать.
В данном случае поиск выведет все файлы более 1 Гб (+1G).
$ find . -size +1G
./Microsoft_Office_16.29.19090802_Installer.pkg
./android-studio-ide-183.5692245-mac.dmg
Единицы измерения файлов:
- c — Байт
- k — Кбайт
- M — Мбайт
- G — Гбайт
Поиск пустых файлов и каталогов
Критерий -empty позволяет найти пустые файлы и каталоги.
$ find . -empty
./.cloud-locale-test.skip
./datafiles
./b.txt
...
./.cache/motd.legal-displayed
Поиск времени изменения
Критерий -cmin позволяет искать файлы и каталоги по времени изменения. Для поиска всех файлов, измененных за последний час (менее 60 мин), нужно использовать -60:
$ find . -cmin -60
.
./a.txt
./datafiles
Таким образом можно найти все файлы в текущем каталоге, которые были созданы или изменены в течение часа (менее 60 минут).
Для поиска файлов, которые наоборот были изменены в любое время кроме последнего часа необходимо использовать +60.
$ find . -cmin +60
Поиск по времени доступа
Критерий -atime позволяет искать файлы по времени последнего доступа.
$ find . -atime +180
Таким образом можно найти файлы, к которым не обращались последние полгода (180 дней).
Поиск по имени пользователя
Опция –user username дает возможность поиска всех файлов и каталогов, принадлежащих конкретному пользователю:
$ find /home -user tisha 2>/dev/null
Таким образом можно найти все файлы пользователя tisha в каталоге home, а 2>/dev/null сделает выдачу чистой без ошибок в отказе доступа.
Поиск по набору разрешений
Критерий -perm – ищет файлы по определенному набору разрешений.
$ find /home -perm 777
Поиск файлов с разрешениями 777.
Операторы
Для объединения нескольких критериев в одну команду поиска можно применять операторы:
- -and
- -or
- -not
Например, чтобы найти файлы размером более 1 Гбайта пользователя tisha необходимо ввести следующую команду:
$ find /home -user tisha -and -size +1G 2>/dev/null
Если файлы могут принадлежать не только пользователю tisha, но и пользователю pokeristo, а также быть размером более 1 Гбайта.
$ find /home \( -user pokeristo -or -user tisha \) -and -size +1G 2>/dev/null
Перед скобками нужно поставить обратный слеш «\».
Действия
К команде find можно добавить действия, которые будут произведены с результатами поиска.
- -delete — Удаляет соответствующие результатам поиска файлы
- -ls — Вывод более подробных результатов поиска с:
- Размерами файлов.
- Количеством inode.
- -print Стоит по умолчанию, если не указать другое действие. Показывает полный путь к найденным файлам.
- -exec Выполняет указанную команду в каждой строке результатов поиска.
-delete
Полезен, когда необходимо найти и удалить все пустые файлы, например:
$ find . -empty -delete
Перед удалением лучше лишний раз себя подстраховать. Для этого можно запустить команду с действием по умолчанию -print.
-exec:
Данное действие является особенным и позволяет выполнить команду по вашему усмотрению в результатах поиска.
-exec command {} \;
Где:
- command – это команда, которую вы желаете выполнить для результатов поиска. Например:
- rm
- mv
- cp
- {} – является результатами поиска.
- \; — Команда заканчивается точкой с запятой после обратного слеша.
С помощью –exec можно написать альтернативу команде –delete и применить ее к результатам поиска:
$ find . -empty -exec rm {} \;
Другой пример использования действия -exec:
$ find . -name "*.jpg" -exec cp {} /backups/fotos \;
Таким образом можно скопировать все .jpg изображения в каталог backups/fotos
Заключение
Команду find можно использовать для поиска:
- Файлов по имени.
- Дате последнего доступа.
- Дате последнего изменения.
- Имени пользователя (владельца файла).
- Имени группы.
- Размеру.
- Разрешению.
- Другим критериям.
С полученными результатами можно сразу выполнять различные действия, такие как:
- Удаление.
- Копирование.
- Перемещение в другой каталог.
Команда find может сильно облегчить жизнь системному администратору, а лучший способ овладеть ей – больше практиковаться.
Шпаргалка по Pacman
Установка
# Установка пакетов
$ pacman -S имя_пакета
# Установка пакета с обновлением системы
$ pacman -Syu
# Установка пакета из файла
$ pacman -U /путь_к_файлу/файл.tar.xz
# или из сети
$ pacman -U http://www.example.com/repo/example.pkg.tar.xz
Сохранение/восстановление
# Просмотреть список установленных пакетов
$ pacman -Qqe | grep -v "$(pacman -Qmq)"
# Сохранить список установленных пакетов
$ pacman -Qqe | grep -v "$(pacman -Qmq)" > pkglist
# Установить из списка пакеты
$ pacman -S $(cat pkglist)
Чистка
# Просмотреть список пакетов сирот
$ pacman -Qdt
Удаление
# Удалить пакет
$ pacman -R имя_пакета
# Удалить пакет с зависимостями(не используемыми другими пакетами)
$ pacman -Rs имя_пакета
# Удалить пакет с зависимыми и зависящами пакетами
$ pacman -Rsc имя_пакета
# Удалить пакеты "сироты"
$ pacman -Rsn $(pacman -Qdtq)
Работа с кэшем
# Очистка кэша неустановленных пакетов
$ pacman -Sc
# Очистка кэша пакетов
$ pacman -Scc
Обвновление
# Обновление системы
$ pacman -Syu
Как конвертировать mkv в avi используя ffmpeg без потери качества
ffmpeg -i filename.mkv -vcodec copy -acodec copy -bsf:v h264_mp4toannexb output.avi
yum шпаргалка
#yum help
список названий пакетов из репозиторий
#yum list
список всех доступных пакетов
#yum list available
список всех установленных пакетов
#yum list installed
установлен ли указанный пакет
#yum list installed httpd
список установленных и доступных пакетов
#yum list all
список пакетов, относящихся к ядру
#yum list kernel
отображение информации о пакете
#yum info httpd
список зависимостей и необходимых пакетов
#yum deplist httpd
найти пакет, который содержит файл
#yum provides "*bin/top"
поиск пакета по имени и описанию
#yum search httpd
#yum search yum
получить информацию о доступных обновлениях безопасности
#yum updateinfo list security
вывести список групп
#yum grouplist
вывести описание и содержимое группы
#yum groupinfo "Basic Web Server"
установка группы пакетов «Basic Web Server»
#yum groupinstall "Basic Web Server"
удаление группы
#yum groupremove "Basic Web Server"
Проверка на доступные обновления
#yum check-update
список подключенных репозиториев
#yum repolist
информация об определенном репозитории
#yum repoinfo epel
информация о пакетах в указанном репозитории
#yum repo-pkgs epel list
установить все пакеты из репозитория
#yum repo-pkgs reponame install
удалить пакеты установленные из репозитория
#yum repo-pkgs reponame remove
создать кэш
#yum makecache
проверить локальную базу rpm (поддерживаются параметры dependencies, duplicates, obsoletes, provides)
#yum check
#yum check dependencies
просмотр yum истории (вывод списка транзакций)
#yum history list
просмотр информации определенной транзакции (установленные пакеты, установленные зависимости)
#yum history info 9
отмена транзакции
#yum history undo 9
повторить
#yum history redo 9
дополнительно можно просмотреть лог
#cat /var/log/yum.log
удалить пакеты сохраненные в кэше
#yum clean packages
удалить все пакеты и метаданные
#yum clean all
установить пакет
#yum install httpd
удаление пакета
#yum remove httpd
обновить пакет
#yum update httpd
обновить все пакеты
#yum update
обновить до определенной версии
#yum update-to
установить из локальной директории (поиск/установка зависимостей будут произведены из подключенных репозиториев)
#yum localinstall httpd.rpm
или
#yum install httpd.rpm
установить с http
#yum localinstall http://server/repo/httpd.rpm
откатиться к предыдущей версии пакета
#yum downgrade
переустановка пакета (восстановление удаленных файлов)
#yum reinstall httpd
удаление ненужных более пакетов
#yum autoremove
создание локальных репозиториев (createrepo ставится отдельно)
#createrepo
установка обновлений по расписанию (yum-cron устанавливается отдельно)
#yum-cron
Опции Yum
ответить «yes» при запросе,
-y
#yum update -y
ответить «no» при запросе
--assumeno
использовать Yum без плагинов
--noplugins
или отключить определенный плагин
--disableplugin=fastestmirror
включить плагины, которые установлены, но отключены
#yum --enableplugin=ps
включить отключенный репозиторий
#yum update -y --enablerepo=epel
отключить репозиторий
#yum update -y --disablerepo=epel
скачать пакеты, но не устанавливать
(на Centos 7 x86_64 будут скачаны в ‘/var/cache/yum/x86_64/7/base/packages/’)
#yum install httpd --downloadonly
Cледующие команды доступны после установки пакета yum-utils
найти из какого репозитория установлен пакет
#find-repos-of-install httpd
найти процессы, пакеты которых обновлены и требуют рестарта
#needs-restarting
запрос к репозиторию, узнать зависимости пакета, не устанавливая его
#repoquery --requires --resolve httpd
синхронизировать yum репозиторий updates в локальную директорию repo1
#reposync -p repo1 --repoid=updates
проверить локальный репозиторий на целостность
#verifytree URL
завершить транзакции
#yum-complete-transaction
установить необходимые зависимости для сборки RPM пакета
#yum-builddep
управление конфигурационными опциями и репозиториями yum
#yum-config-manager
запрос к локальной базе yum, отображение информации о пакете
(использованная команда, контрольная сумма, URL с которого был установлен и другое)
#yumdb info httpd
скачать rpm пакеты из репозитория
#yumdownloader
скачать src.rpm пакет из репозитория
(должен быть подключен соответствующий репозиторий, например в ‘/etc/yum.repos.d/CentOS-Sources.repo’ в CentOS)
yumdownloader --source php
Конфигурационные файлы Yum и их расположение
Основной конфигурационный файл
/etc/yum.conf
директория, с конфигурациями (например, yum плагины)
/etc/yum/
директория, содержащая информацию о репозиториях
/etc/yum.repos.d/
Некоторые опции yum.conf:
Директория, где yum хранит кэш и файлы базы (по умолчанию ‘/var/cache/yum’)
cachedir=/var/cache/yum/$basearch/$releasever
Определяет должен или нет Yum хранить кэш заголовков и пакетов после успешной установки. Значения: 0 или 1. (по умолчанию 1)
keepcache=1
уровень вывода отладочных сообщений. Значения: 1-10 (по умолчанию 2)
debuglevel=2
лог файл (по умолчанию ‘/var/log/yum.log’)
logfile=/var/log/yum.log
обновлять устаревшие пакеты
obsoletes=1
проверка подписи пакетов. Значения: 0 или 1 (по умолчанию 1)
gpgcheck=1
включение плагинов. Значения: 0 или 1 (по умолчанию 1)
plugins=1
Некоторые полезные плагины
Добавляет опцию командной строки для просмотра ченжлога перед/после обновлениями
yum-plugin-changelog
выбирает более быстрые репозитории из списка зеркал
yum-plugin-fastestmirror
добавляет команды keys, keys-info, keys-data, keys-remove, которые позволяют работать с ключами.
yum-plugin-keys
блокировать указанные пакеты от обновления, команда yum versionlock
yum-plugin-versionlock
добавление команд yum verify-all, verify-multilib, verify-rpm для проверки контрольных сумм пакетов
yum-plugin-verify
Работа Yum через прокси сервер
Для всех пользователей:
добавить в секцию [main] в /etc/yum.conf
proxy="http://server:3128"
при необходимости указать пароль, добавить
proxy_proxy_username=user
proxy_password=pass
указать прокси для отдельного пользователя
#export http_proxy="http://server:3128"
Буду рад любым дополнениям и замечаниям.
Дополнительно читайте:
#man yum
#man rpm
Запрет доступа к сайту, папке или файлу по IP в .htaccess
Защита от ботов, рассылающих спам, флуда и нежелательных посещений – одна из важнейших обязанностей любого администратора веб-ресурса. Для этого существует хорошее средство – запрет доступа по IP при помощи файла .htaccess. Разберем более подробно доступные варианты изменения уровня доступа.
Создание файла .htaccess
Сначала, создается файл .htaccess как простой документ текстового формата без расширения .txt. Его можно открыть в обычном блокноте Windows, но лучше воспользоваться более расширенным редактором, например – Notepad++.
Права на этот файл должны быть обозначены как – 644, а загрузка производиться посредством ASCII-режима. Если обнаружится, что созданный файл неработоспособен необходимо обратиться в техподдержку хостинга.
Многие бесплатные хостинги запрещают использование файла .htaccess без специального разрешения. Этот файл применим только к серверам Apache и не будет исполняться на серверах под управлением Windows.
Команды
Запретить доступ к сайту по IP при помощи файла .htaccess можно используя операторы allow и deny.
Основная директива, которая используется при ограничении доступности сайта – order. Ее синтаксис следующий:
Конструкция order deny,allow начинает код и показывает, какие параметры будут использованы для ограничения разрешений на просмотр.
- Оператор allow дает разрешение.
- Оператор deny запрещает.
В зависимости от того в каком порядке стоят операторы в коде меняется логика работы сервера.
- deny,allow сообщает серверу о закрытии доступа всем IP-адресам кроме разрешенных.
- allow,deny напротив открывает доступ для всех IP-адресов кроме запрещенных.
Стоит отметить, что на практике директива order используется не всегда, поскольку не является обязательной. При написании кода в файле .htaccess лучше придерживаться рекомендаций, отраженных в документации.
Ограничение доступа к сайту и его разделам
Место расположения файла .htaccess зависит от того, какой раздел сайта или его файл необходимо закрыть.
Полное закрытие сайта
Для того чтобы полностью закрыть сайт от посещений и возможности просмотра его содержимого в .htaccess вносится следующий код:
После этого ни с какого IP-адреса зайти на сайт будет невозможно. При такой попытке на стороне клиента выдается 403 ошибка, обозначающая запрет на просмотр.
Файл .htaccess для этой операции необходимо расположить в корне сайта.
Запрет доступа для целевого IP-адреса
Запрет для конкретных IP-адресов реализуется при помощи данного кода:
Файл .htaccess по-прежнему должен находится в корне сайта.
Разрешение только для конкретных IP-адресов
Сайт можно полностью закрыть, оставив разрешение только для конкретных IP-адресов. С этой целью в файле .htaccess, расположенном в корне сайта, прописываются следующие строки:
Разрешенные IP прописываются в коде через пробел.
Закрытие доступа по маске
В определенных ситуациях ограничение необходимо сделать по маске. Для выполнения этой операции используется код:
Усиление защиты административной части сайта
Помимо прочего, запрет доступа для определенных IP-адресов к разделам сайта помогает повысить безопасность административной части. Для этого, разрешение на доступ дается только определенным IP-адресам с использованием имени хоста. Для решения этой задачи создается данный код:
Ограничение доступа к целевой папке
Запрет доступа к папке реализуется очень просто. Достаточно загрузить в целевую папку, которую необходимо закрыть файл .htaccess и прописать в нем всего одну строку:
Ограничение доступа к определенному файлу на сайте
Нередко возникают ситуации, при которых необходимо закрыть возможность просмотра не сайта или папки, а только определенного файла или группы файлов. Для этого используются директивы – files и filesmatch. Они несколько похожи на мета-теги, используемые для разметки HTML-кода.
Также требуется заключение директив в знаки <>, а также использование открывающей и закрывающей код конструкции.
«Пустой» код выглядит следующим образом:
Внутри этой конструкции прописываются необходимые условия. Как пример приведем ограничение просмотра для архива example.zip:
После размещения .htaccess с кодом в папке, где находится целевой файл при обращении к нему напрямую на стороне клиента появится сообщение об ошибке 403.
Для ограничения просмотра группы файлов используется директива filesmatch и регулярные выражения, позволяющие создать необходимую маску. Пример ограничения доступности архивных и графических файлов выглядит следующим образом:
Запретить доступ к одному файлу по IP при помощи .htaccess сделать нельзя. Для решения этой задачи понадобится использовать возможности административных панелей хостинга и самого сайта.
Как отсортировать файлы по размеру с помощью команды ls в Linux
1) Перечислить содержимое содержимого каталога при сортировке по размеру
Чтобы перечислить содержимое определенного каталога с сортировкой по размеру, мы будем использовать опции -lS с командой ls.
$ ls -lS /run
output total 24 -rw-rw-r--. 1 root utmp 2304 Sep 8 14:58 utmp drwxr-xr-x. 16 root root 400 Aug 21 13:18 systemd drwxr-xr-x. 7 root root 160 Aug 26 14:59 udev drwxr-xr-x. 4 root root 100 Aug 21 13:18 initramfs drwxr-xr-x. 4 root root 100 Sep 8 03:31 lock drwxr-xr-x. 3 root root 100 Aug 21 13:18 NetworkManager drwxr-xr-x. 2 root root 60 Aug 21 13:18 dbus drwxr-xr-x. 3 root root 60 Aug 21 13:18 log drwx--x--x. 3 root root 60 Aug 21 13:18 sudo drwxr-xr-x. 2 root root 60 Aug 21 13:18 tmpfiles.d drwxr-xr-x. 2 root root 60 Aug 21 13:18 tuned drwxr-xr-x. 3 root root 60 Sep 7 23:11 user drwxr-xr-x. 2 root root 40 Aug 21 13:18 console drwxr-xr-x. 2 root root 40 Aug 21 13:18 faillock drwxr-x---. 2 root root 40 Aug 21 13:18 firewalld drwxr-xr-x. 2 root root 40 Aug 21 13:18 mount ........
Чтобы указать размер файла, мы будем использовать параметр -s с командой ls.
$ ls -s
output total 1316 4 anaconda-ks.cfg 4 Downloads 180 index.html 0 smart.docx 4 apache2 4 echo.txt 4 nano.txt 0 smart.txt 4 cat.txt 0 file.txt 4 original-ks.cfg 0 test.txt
2) Список содержимого каталога с сортировкой по размеру
Чтобы перечислить содержимое определенного каталога с сортировкой по размеру, мы будем использовать опции -lSr с командой ls.
$ ls -lSr /run
output total 24 -rw-------. 1 root root 0 Aug 21 13:18 xtables.lock -rw-------. 1 root root 0 Aug 21 13:18 ebtables.lock ----------. 1 root root 0 Aug 21 13:18 cron.reboot -rw-------. 1 root root 3 Aug 21 13:18 syslogd.pid -rw-r--r--. 1 root root 4 Aug 21 13:18 sshd.pid -rw-r--r--. 1 root root 4 Sep 9 08:17 dhclient-eth0.pid -rw-r--r--. 1 root root 4 Aug 21 13:18 crond.pid -rw-r--r--. 1 root root 4 Aug 21 13:18 auditd.pid drwxr-xr-x. 2 root root 40 Aug 21 13:18 setrans drwxr-xr-x. 2 root root 40 Aug 21 13:18 sepermit drwxr-xr-x. 2 root root 40 Aug 21 13:18 plymouth drwxrwxr-x. 2 root root 40 Aug 21 13:18 netreport drwxr-xr-x. 2 root root 40 Aug 21 13:18 mount drwxr-x---. 2 root root 40 Aug 21 13:18 firewalld ........
3) Сортировка выходных данных и размеров в удобном формате для чтения (например, 1K 48M 1G)
для сортировки выходных данных и размеров в человекочитаемом формате мы будем использовать -h с командой ls.
$ ls -lSh
output total 1.3M -rw-r--r--. 1 root root 1.1M Aug 26 15:45 GeoIP-1.5.0-11.el7.x86_64.rpm -rw-r--r--. 1 root root 177K Aug 26 15:29 index.html drwxr-xr-x. 2 root root 4.0K Sep 8 13:32 apache2 drwxr-xr-x. 2 root root 4.0K Sep 8 13:31 Desktop drwxr-xr-x. 2 root root 4.0K Sep 8 13:32 Documents drwxr-xr-x. 2 root root 4.0K Sep 8 13:32 Downloads drwxr-xr-x. 2 root root 4.0K Sep 8 13:32 Pictures .......
Кроме того, мы можем выводить размеры в читаемом формате для конкретного расширения.
ls -l -S -h *.mp3
ls -l -S -h ~/Downloads/*.mp4 | more
Бонусные советы
4) Список в алфавитном порядке сортировки
Чтобы перечислить содержимое определенного каталога с сортировкой по алфавиту, мы будем использовать команду ls только без опции, потому что по умолчанию используется алфавитная сортировка.
$ ls
output anaconda-ks.cfg Desktop echo.txt index.html Pictures smart.txt apache2 Documents f.txt nano.txt printf.txt vim.txt cat.txt Downloads GeoIP-1.5.0-11.el7.x86_64.rpm original-ks.cfg smart.docx vi.txt
Чтобы перечислить содержимое определенного каталога с подробной информацией, добавьте путь к каталогу.
$ ls -l /run
output total 24 -rw-r--r--. 1 root root 4 Aug 21 13:18 auditd.pid drwxr-xr-x. 2 root root 40 Aug 21 13:18 console -rw-r--r--. 1 root root 4 Aug 21 13:18 crond.pid ----------. 1 root root 0 Aug 21 13:18 cron.reboot drwxr-xr-x. 2 root root 60 Aug 21 13:18 dbus -rw-r--r--. 1 root root 4 Sep 9 08:17 dhclient-eth0.pid -rw-------. 1 root root 0 Aug 21 13:18 ebtables.lock drwxr-xr-x. 2 root root 40 Aug 21 13:18 faillock drwxr-x---. 2 root root 40 Aug 21 13:18 firewalld ..........
5) Список в обратном порядке по алфавиту
Чтобы перечислить содержимое определенного каталога с подробными сведениями в обратном порядке сортировки по алфавиту, мы будем использовать опции -lr с командой ls.
$ ls -lr /run
output total 24 -rw-------. 1 root root 0 Aug 21 13:18 xtables.lock -rw-rw-r--. 1 root utmp 2304 Sep 8 14:58 utmp drwxr-xr-x. 3 root root 60 Sep 7 23:11 user drwxr-xr-x. 7 root root 160 Aug 26 14:59 udev drwxr-xr-x. 2 root root 60 Aug 21 13:18 tuned drwxr-xr-x. 2 root root 60 Aug 21 13:18 tmpfiles.d drwxr-xr-x. 16 root root 400 Aug 21 13:18 systemd -rw-------. 1 root root 3 Aug 21 13:18 syslogd.pid drwx--x--x. 3 root root 60 Aug 21 13:18 sudo -rw-r--r--. 1 root root 4 Aug 21 13:18 sshd.pid drwxr-xr-x. 2 root root 40 Aug 21 13:18 setrans drwxr-xr-x. 2 root root 40 Aug 21 13:18 sepermit drwxr-xr-x. 2 root root 40 Aug 21 13:18 plymouth .......
6) Список скрытого содержимого каталога в алфавитном порядке сортировки
Чтобы отобразить скрытое содержимое определенного каталога, мы будем использовать опции -a или -all с командой ls.
$ ls -a /etc
output . default gss logrotate.d pm rsyslog.conf sysctl.d .. depmod.d host.conf machine-id polkit-1 rsyslog.d systemd adjtime dhcp hostname magic popt.d rwtab system-release aliases DIR_COLORS hosts makedumpfile.conf.sample postfix rwtab.d system-release-cpe ........
7) Список содержимого каталога в алфавитном порядке сортировки
Чтобы показать содержимое определенного каталога с подробными сведениями, такими как права доступа к файлам, количество ссылок, имя владельца и владельца группы, размер файла, время последней модификации и имя файла / каталога, мы будем использовать -l с командой ls.
$ ls -l /run
output total 24 -rw-r--r--. 1 root root 4 Aug 21 13:18 auditd.pid drwxr-xr-x. 2 root root 40 Aug 21 13:18 console -rw-r--r--. 1 root root 4 Aug 21 13:18 crond.pid ----------. 1 root root 0 Aug 21 13:18 cron.reboot drwxr-xr-x. 2 root root 60 Aug 21 13:18 dbus -rw-r--r--. 1 root root 4 Sep 8 12:41 dhclient-eth0.pid -rw-------. 1 root root 0 Aug 21 13:18 ebtables.lock drwxr-xr-x. 2 root root 40 Aug 21 13:18 faillock drwxr-x---. 2 root root 40 Aug 21 13:18 firewalld drwxr-xr-x. 4 root root 100 Aug 21 13:18 initramfs drwxr-xr-x. 4 root root 100 Sep 8 03:31 lock drwxr-xr-x. 3 root root 60 Aug 21 13:18 log ........
Как увеличить максимальное время выполнения WordPress
Добавить
max_execution_time = 300
в wp-config.php
Хорошая статья: https://hostenko.com/wpcafe/tutorials/kak-ispravit-fatalnuju-oshibku-wordpress-max_execution_time/?ysclid=l35ilv1zg2