RedHat / CentOS полезные команды

Структура каталогов
Основные каталоги и структура файловой системы Linux регламентируются FHS - Filesystem Hierarchy Standard. FHS поддерживается Free Standards Group — некоммерческой организацией, в составе которой находятся крупные разработчики программного и аппаратного обеспечения, такие как HP, Red Hat, IBM и Dell.
Структура каталогов Linux
/ — корень
/bin — (binaries) бинарные файлы пользователей
/boot — файлы загрузчика
/dev — (devices) файлы устройств
/etc — (etcetera) конфигурационные файлы
/home — домашние директории пользователей
/lib (library) — системные библиотеки
/media — съёмные носители
/mnt (mount) — точки монтирования
/opt (optional applications) — дополнительные приложения
/proc — (process) информация о процессах
/root - домашний каталог суперпользователя (root)
/run — процессы
/sbin — (system binaries) системные исполняемые файлы
/srv (server) — сервер
/sys (system) — информация о системе
/tmp (temp) — временные файлы
/usr — (user applications) программы пользователя
/usr/bin — исполняемые файлы
/usr/sbin — системные исполняемые файлы
/usr/lib— библиотеки
/usr/local — пользовательские программы, библиотеки и настройки
/var (variable) — переменные файлы
/var/log — файлы логов
/var/lib — базы данных
/var/lock — файлы блокировок
/var/run — PID процессов/ - корень
Главный каталог, по сути - файловая система Linux. Только root может менять и читать файлы в этом каталоге.
/bin (binaries) - бинарные файлы пользователей
Содержит исполняемые файлы, которые можно использовать когда не подключен каталог /usr. В основном - общие команды, например cat / ls / ps и др.
/boot — файлы загрузчика
Cодержит ядро и другие файлы, используемые при загрузке системы.
/dev (devices) - файлы устройств
В Linux все устройства являются файлами в каталоге /dev. Инициализируется при запуске системы - сканируются подключенные устройства и для них создаются специальные файлы.
/dev/null - псевдоустройство, в которое можно записать все что угодно и оно исчезнет навсегда.
Используя его, можно, например подавить вывод на stdout:
$ cat $filename >/dev/null/dev/shm - раздел файловой системы, размещенный в оперативной памяти
Может быть использован для увеличения производительности приложений. При перезагрузке информация в разделе стирается.
/etc (etcetera) - конфигурационные файлы
Здесь хранятся конфигурационные файлы всех установленных в системе программ, скрипты запуска и завершения системных демонов, монтирования файловых систем и авторазгрузки программ.
/home — домашние директории пользователей
В этой папке хранятся домашние каталоги всех пользователей. В них они могут хранить свои личные файлы, настройки программ и т д.
/lib (library) — системные библиотеки
Содержит файлы системных библиотек, которые используются исполняемыми файлами в каталогах /bin и /sbin.
Библиотеки имеют имена файлов с расширением *.so и начинаются с префикса lib*. Например, libncurses.so.5.7. Папка /lib64 в 64 битных системах содержит 64 битные версии библиотек из /lib.
/media — съёмные носители
В этот каталог система монтирует все подключаемые внешние накопители — флешки, оптические диски и другие носители информации.
/mnt (mount) — точки монтирования
В этот каталог могут быть смонтированы внешние или дополнительные файловые системы.
/opt (optional applications) — дополнительные приложения
В эту папку устанавливаются проприетарные программы, игры или драйверы.
/proc (process) — информация о процессах
Содержит информацию о запущенных процессах, обновляемую в реальном времени. Также там есть информация об использовании системных ресурсов (/proc/cpuinfo, /proc/meminfo, /proc/uptime).
/run — процессы
Еще один каталог, содержащий PID файлы процессов, похожий на /var/run, но в отличие от него, он размещен в TMPFS, а поэтому после перезагрузки все файлы теряются.
/sbin (system binaries) - системные исполняемые файлы
Также как /bin содержит исполняемые файлы, доступные на ранних этапах загрузки, но здесь - программы, выполняемые только с правами суперпользователя - системные утилиты.
/srv (server) — сервер
В этом каталоге содержатся файлы серверов и сервисов. Например, могут содержаться файлы веб-сервера apache.
/sys (system) — информация о системе
Назначение каталогов Linux из этой папки — получение информации о системе непосредственно от ядра. Это еще одна файловая система, организуемая ядром и позволяющая просматривать и изменить многие параметры работы системы, например, работу swap, контролировать кулеры и многое другое.
/tmp (temp) — временные файлы
В этом каталоге содержатся временные файлы, созданные системой, любыми программами или пользователями. Все пользователи имеют право записи в эту директорию.Файлы удаляются при каждой перезагрузке.
/usr — (user applications) программы пользователя
/usr/bin — исполняемые файлы
Содержит исполняемые файлы различных программ, которые не нужны на первых этапах загрузки системы, например, музыкальные плееры, графические редакторы, браузеры и так далее.
/usr/lib— библиотеки
Содержит библиотеки для программ из /usr/bin или /usr/sbin.
/usr/local — пользовательские программы, библиотеки и настройки
Содержит файлы программ, библиотек, и настроек созданные пользователем. Например, здесь могут храниться программы собранные и установленные из исходников и скрипты, написанные вручную.
/usr/sbin — системные исполняемые файлы
Содержит двоичные файлы программ для системного администрирования, которые нужно выполнять с правами суперпользователя. Например, таких как Gparted, sshd, useradd, userdel и т д.
/var (variable) — изменяемые файлы
Содержит постоянно изменяемые файлы, генерируемые процессами во время работы. Здесь есть системные журналы, кеши, базы данных и т.п.
/var/log - файлы логов
Содержит большинство логов всех установленных в операционной системе программ.
/var/lib — базы данных
Содержит файлы баз данных, пакеты и т.п.
/var/lock - блокировки
Файлы, расположенные здесь, означают, что ресурс, файл или устройство занято и не может быть использовано другим процессом.
/var/run — PID процессов
Содержит идентификаторы процессов, которые могут использоваться для взаимодейстия между программами. В отличие от /run данные сохраняются после перезагрузки.
Пользователи и группы
ОС UNIX предлагает базовые средства защиты и совместного использования файлов на основе отслеживания пользователя и группы, владеющих файлом, трех уровней доступа (для пользователя-владельца, для пользователей группы-владельца, и для всех остальных пользователей) и трех базовых прав доступа к файлам (на чтение, на запись и на выполнение). Базовые средства защиты процессов основаны на отслеживании принадлежности процессов пользователям.
Для отслеживания владельцев процессов и файлов используются числовые идентификаторы. Идентификатор пользователя и группы - целое число (обычно) в диапазоне от 0 до 65535. Присвоение уникального идентификатора пользователя выполняется при заведении системным администратором нового регистрационного имени. Среди пользователей системы выделяется один пользователь - системный администратор или суперпользователь, обладающий всей полнотой прав на использование и конфигурирование системы. Это пользователь с идентификатором 0 и регистрационным именем root.
Учетные записи пользователей, как и большинство другой информации о конфигурации системы UNIX, по традиции, представлена в виде текстовых файлов: /etc/passwd, /etc/group и /etc/shadow (в системах с теневым хранением паролей).
Основные команды для работы с пользователями и группами (часть команд указанных ниже будет требовать sudo для выполнения):
$ useradd username            - добавить пользователя username
$ useradd -D                  - показать доступные при добавлении пользователя настройки
$ passwd                      - изменить пароль пользователю (далее следовать подсказкам системы)
$ userdel                     - утилита удаления пользователя
$ groupadd group1             - добавить группу group1
$ usermod -aG group1 user1    - добавить пользователя user1 в группу group1
$ groupmod -n group2 group1   - изменить имя группы group1 на group2
$ groupdel                    - утилита удаления группы
$ su user1                    - сменить текущего пользователя на user1 (если не указать пользователя именем по умолчанию будет root)
$ sudo somecommand            - выполнить команду somecommand от лица пользователя rootВ современных дистрибутивах Linux вместо root аккаунта для администрирования как правило используется утилита sudo (substitute user and do), позволяющая выполнить команду от лица пользователя root.
Все настройки sudo находятся в файле /etc/sudoers. Здесь можно настроить очень много параметров, начиная от кому будет позволено выполнять команды от имени суперпользователя и заканчивая ограничением набора доступных команд. Неправильный синтаксис, добавленный в этот файл, может полностью нарушить распределение прав между пользователями. Потому для работы с этим файлом используется утилита visudo, которая открывает файл в обычном текстовом редакторе, но во время сохранения файла проверяет его синтаксис. Это позволяет избежать ошибок в конфигурации.
Работа с файловой системой: навигация, создание-перемещение-удаление файлов, ссылки
Основные команды, используемые для навигации по файловой системе из окна терминала, создание, перемещение и удаление файлов и каталогов:
$ cd           - перейти в домашнюю директорию
$ cd  ~        - перейти в домашнюю директорию
$ cd  /        - перейти в корневую директорию
$ cd  -        - перейти в директорию, где находились до этого
$ cd ..        - перейти на уровень выше
$ pwd          - вывести текущую рабочую директорию (где находитесь)
$ ./myprog     - запуск исполняемого файла myprog, находящегося в текущей директории
$ ls                 - вывести список директорий и файлов в текущей рабочей директории
$ ls -a              - включить в вывод скрытые файлы (их имена начинаются с точки)
$ ls -l              - добавить к выводу более подробную информацию
$ mkdir d1 d2        - создать директории d1 и d2 в текущей рабочей директории
$ mkdir -p d1/d2     - создать вложенные директории
$ touch f.txt        - создать файл f.txt
$ echo "123" > f.txt - записать "123" в файл f.txt (если файла нет - будет создан, если есть - перезаписан)
$ cat f.txt          - вывод содержимого файла f.txt
$ cp f.txt f2.txt    - скопировать файл f.txt в f2.txt
$ mv f.txt f2.txt    - переместить файл f.txt в f2.txt
$ cp -vr dir1/ dir2  - скопировать рекурсивно (ключ r) содержимое директории dir1 в dir2 и вывести информацию о выполненной работе (ключ v)
$ mv -v /opt ~/1.txt ~/2.txt - переместить из домашней директории в /opt файлы 1.txt и 2.txt и вывести информацию о выполненной работе (ключ v)
$ rm f.txt f2.txt     - удалить f.txt и f2.txt
$ rm -rf mydir        - удалить директорию mydir со всем содержимым (ключ r) игнорируя несуществующие файлы и аргументы (ключ f, force)В ОС Linux существует два вида ссылок.
Жесткие ссылки привязываются к иноду, таким образом, файл присутствует в системе под несколькими разными именами. Файл существует до тех пор, пока с его инодом связано хотя бы одно имя. Понятия «жёсткая ссылка на файл» и «имя файла» являются синонимами.
$ touch firstlink             - создали файл
$ ln firstlink secondlink     - создали жесткую ссылку на него
$ ls -i firstlink secondlink  - вывели содержимое рабочего каталога с инодами: они равны15782 firstlink 15782 secondlinkЖесткие ссылки могут быть только на файлы, не на директории. Также нельзя создать жесткую ссылку на файл в другой файловой системе (у каждой ФС свой набор инодов).
Cимволические ссылки (или симлинки) - специальный вид файла, который ссылается на другой файл по имени, а не напрямую на инод. Симлинки не предохраняют файл от удаления. Если файл удалить, то симлинк на него станет нерабочим (или битым).
Симлинки создаются командой ln с опцией '-s':
$ ln -sv  ./versions/20180702-163849/ ./current    
- создать симлинк current на директорию ./versions/20180702-163849/При работе с большим количеством файлов бывает удобно использовать маски - т.н. wildcards.
Wildcard "*" соответствует нулю или большему количеству символов:
$ ls -d /etc/g* 
- вывести список файлов в директории /etc имена которых начинаются с "g" и файл с именем "g" (если такой существует)
$ rm file*
- удалить все файлы, имена которых начинаются в fileWildcard "?" заменяет один любой символ:
$ rm myfile?      
- удалить все файлы, с именами начинающимися со слова "myfile" за которым следует один любой символШаблон "[]" позволяет явно указать набор символов - будут найдеты совпадения, содержащие один из указанных в скобках символов. Также в можно указать диапазон символов (для этого используется символ –/дефис) или несколько диапазонов подряд, тогда шаблон будет совпадать с одним любым символом из этого диапазона:
$ myfile[12]         — соответствует myfile1 и myfile2
$ [Cc]hange[Ll]og    — соответствует файлам с именами Changelog, ChangeLog, changeLog, и changelog
$ ls /etc/[0-9]*     — вывести список файлов в директории /etc/ имена которых начинаются с цифры
$ ls /tmp/[A-Za-z]*  — вывести список файлов в директории /tmp/ имена которых начинаются с латинской буквы (заглавной или прописной)Управление процессами и потоками, отправка сигналов, kill
Процесс (process) — некая виртуальная среда, инкапсулирующая в себе ресурсы (открытые файлы, файлы отображенные в память...) и их дескрипторы, потоки и т.д. Каждый процесс имеет как минимум один поток. Также каждый процесс имеет свое собственное виртуальное адресное пространство и контекст выполнения, а потоки одного процесса разделяют адресное пространство процесса. Некоторые приложения могут создавать несколько процессов одновременно.
Каждому процессу в системе назначаются числовые идентификаторы PID (Process Identifier) в диапазоне от 1 до 65535 и идентификаторы родительского процесса PPID (Parent Process Identifier).
$ ping ya.ru > /dev/null &   
- оператор & означает запуск процесса в фоновом режиме (не блокирует терминал)
$ jobs                       
- просмотреть запущенные в фоновом режиме задачи
$ fg [job id]                
- вернуть в терминал задачу с определенным идентификаторомctrl-Z, затем
$ bg                         
- приостановить выполнение задачи и продолжить ее в фоновом режиме
$ ps aux                     
- просмотр информации о запущенных процессах всех пользователей
$ top                        
- непрерывно отобразить информацию самых активных процессов
$ htop                       
- более продвинутая версия top, устанавливается отдельно. Показывает все процессы в системе, использование процессоров и памятиСигнал в операционных системах семейства Unix - асинхронное уведомление процесса о каком-либо событии.
Когда сигнал послан процессу, операционная система прерывает выполнение процесса, при этом, если процесс установил собственный обработчик сигнала, операционная система запускает этот обработчик, передав ему информацию о сигнале, если процесс не установил обработчик, то выполняется обработчик по умолчанию.
$ kill -l                    
- все доступные в системе сигналы
$ kill [ -s сигнал ] pid     
- отправить процессу pid сигналПо умолчанию отправляется сигнал SIGTERM. Для безусловного завершения процесса можно отправить SIGKILL. Т.к. в большинстве систем SIGKILL имеет идентификатор 9, часто встречается команда в сокращенной форме записи:
$ kill -9 123     
- безусловно, "жестко" завершить процесс 123SSH и передача файлов
SSH (Secure Shell) — защищенный протокол для удаленного доступа к компьютерам. В *nix-подобных системах (Linux, macOS) ssh-клиент обычно установлен по умолчанию и подключаться можно напрямую из терминала. Для подключения нужно указать адрес сервера и, опционально, имя пользователя и порт.
Простейший вариант - подключение по паролю. В таком случае система будет запрашивать пароль каждый раз при подключении.
Для подключения без ввода пароля можно использовать ключи: приватный (закрытый) и публичный (открытый). Эти ключи связаны друг с другом таким образом, что зашифровав информацию одним ключом, расшифровать ее можно только другим.
Для создания ключей необходимо выполнить команду:
$ ssh-keygenОпционально можно ввести passphrase.
Будут созданы два файла:
~/.ssh/id_rsa — приватный ключ. Его нельзя никому передавать.
~/.ssh/id_rsa.pub — публичный ключ. Можно спокойно распространять.
Для загрузки публичного ключа на сервер нужно выполнить на локальной машине команду:
$ ssh-copy-id -i /home/demo/.ssh/id_rsa.pub user@remote_hostДругой вариант - добавить на удаленной машине в файл ~/.ssh/authorized_keys содержимое публичного ключа.
Для более удобной работы с ключами можно добавить ключ к ssh-агенту. После этого для него больше не будет спрашиваться passphrase (если был задан) и не нужно будет вводить ключ вручную — он будет автоматически использован при соответствующем подключении.
$ ssh-add /home/demo/.ssh/id_rsa   
-  добавить ключ в запущенный в системе агент (попросит passphrase, если задан).ssh-agent привязан к сессии. Поэтому, например, если перезагрузить компьютер, то ключи нужно будет добавлять в агент заново.
Протокол SSH можно использовать для передачи файлов на удалённый сервер и загрузки их оттуда.
$ scp root@hostmane:/home/user/file.tar.gz /opt 
- скачать с сервера файл /home/user/file.tar.gz в /opt
$ scp /opt/file.tar.gz root@hostmane:/home/user 
- загрузить на удаленный сервер в /home/user файл /opt/file.tar.gzПеренаправление ввода/вывода
Процесс взаимодействия с пользователем выполняется в терминах записи и чтения в файл. Вывод на экран представляется как запись в файл, а ввод — как чтение файла. Файл, из которого осуществляется чтение, называется стандартным потоком ввода, а в который осуществляется запись — стандартным потоком вывода. Существует еще и стандартный поток ошибок, на который выводятся все сообщения об ошибках и те информативные сообщения о ходе работы программы, которые не могут быть выведены в стандартный поток вывода.
$ ls -l > file.txt  
- вывести содержимое директории в файл
$ wc -w < file.txt  
- посчитать количество слов в файлеМожно организовать конвейер (pipe) выполняемых команд.
$ cat myfile | grep Linux | wc -lВ примере выше вывод команды cat, т. е. текст из файла myfile, будет направлен на вход команды grep, которая выделит только строки, содержащие слово "Linux". Вывод команды grep будет, в свою очередь, направлен на вход команды wc -l, которая подсчитает число таких строк. Статус выхода из канала совпадает со статусом выхода, возвращаемым последней командой.
Работа с текстовыми файлами, find и grep
less - программа для просмотра содержимого текстовых файлов с возможностью его прокрутки. Умеет искать текст по шаблону и подсвечивать результат. Быстро работает с файлами больших размеров, т.к. не нуждается в чтении всего файла перед стартом.
$ less myfile     
- просмотреть содержимое файлаПосле открытия текстового файла внутри утилиты можно набирать разные команды (они отображаются в левом нижнем углу), рассмотрим некоторые из них.
Для вызова справки внутри утилиты воспользуйтесь клавишей h.
Поиск внутри утилиты:
/text    - поиск слова text "вперёд", начиная с первой отображаемой строки?text    - поиск слова text "назад", начиная с последней отображаемой строкиВ режиме поиска:
n            - следующее совпадениеN (shift-n)  - предыдущее совпадение.tail - утилита, выводящая несколько последних строк файла, head - несколько первых строк.
Отображение последних 10 строк файла:
$ tail -10 myfile  - отобразить последние 10 строк файла
$ tail -f myfile   - вывод новых строк файла в режиме реального времени можно использовать для просмотра обновления логов, остановить: ctrl-c
$ head -10 myfile1 - отобразить первые 10 строк файлаПо умолчанию tail выводит именно 10 последних строк.
iconv - преобразование кодировки файла
$ iconv -f <начальная кодировка> -t <желаемая кодировка> <исходный файл> -o <файл-результат>Дополнительные ключи: -s  - игнорировать ошибки -l  - вывести список доступных кодировок -c  - отбросить неконвертируемые символыFind — команда для поиска файлов и каталогов на основе специальных условий.
$ find / -name top    - найти все файлы в системе, имеющие имя top
$ find / -iname top   - найти все файлы в системе, имеющие имя top без учета регистра символов
$ find / -name 'top*' - найти все файлы в системе с именами, начинающимися с top
$ find . -name "test*" -not -name "*.php" - найти файлы, начинающиеся на test, но без расширения php
$ find -name "*.html" -o -name "*.php"    - найти файлы с расширением html или php
$ find /usr/local -size +10000k           - найти файлы в /usr/local размером больше 10 килобайт
$ find ~ -size -300c                      - найти в домашнем каталоге размером меньше 300 байт
$ find . -exec ls -ld {} \;               - выполнить ls для получения подробной информации о каждом найденном файле
$ find /tmp -type f -name "*.txt" -exec rm -f {} \; - удалить все текстовые файлы в /tmpКоманда grep - поиск по шаблону в файле.
$ grep шаблон *              - искать шаблон в файлах, находящихся в текущем каталоге
$ grep -r шаблон *           - искать шаблон в файлах текущего каталога и подкаталогов
$ grep -v -l pattern *       - найти файлы, не содержащие строк, соответствующих шаблону
$ grep -C 2 pattern files    - выведет строки, в которых найдено соответствие, плюс 2 строки до и 2 после каждой найденной
$ grep ERROR /var/log/app.log -c  - найти количество строк, содержащих ERROR в логе
$ grep -rnw '/path/to/somewhere/' -e 'pattern' 
- найти файлы, содержащие шаблон, расположенные в /path/to/somewhere/-r or -R - искать рекурсивно по поддиректориям-n       
- выводить номера строк-w       
- искать целые слова в качестве совпадений-l       
- выводить только имена файлов
$ grep --include=\*.{c,h} -rnw '/path/to/somewhere/' -e "pattern"  - найти файлы, содержащие шаблон, расположенные в /path/to/somewhere/, имеющие расширение .c или .h
$ grep --exclude=*.o -rnw '/path/to/somewhere/' -e "pattern" - найти файлы, содержащие шаблон, расположенные в /path/to/somewhere/, кроме файлов с расширением .o
$ grep --exclude-dir={dir1,dir2,*.dst} -rnw '/path/to/somewhere/' -e "pattern" - найти файлы, содержащие шаблон, расположенные в /path/to/somewhere/, исключив из поиска директории dir1 и dir2 и файлы с расширением .dstИнформация о размерах файлов и директорий, свободном пространстве
Для того, чтобы получить информацию о доступном в системе пространстве, можно использовать утилиту df (disk free):
$ df -h     - показать в понятном формате (флаг h = human-readable) список всех файловых систем по именам устройств с указанием размераДля оценки занимаемого файлом или директорией дискового пространства используется утилита du (disk usage):
$ du -sh /home/myuser/data/      - отобразить размер директории
$ du -shx /home/myuser/data/     - отобразить размер директории, не учитывая каталоги в иерархии, относящиеся к другим точкам монтирования (флаг -x)
$ du -sh /home/myuser/data/      - отобразить размер директории и содержащихся в ней подкаталогов
$ du -sh /var/log/* | sort -hr   - отобразить размеры директории включая файлы внутри нее с сортировкой по занимаемому местуПеременные окружения
Переменные окружения в Linux - специальные переменные, определенные оболочкой и используемые программами во время выполнения. Могут быть определены как системой, так и пользователем. Переменные являются парамти ключ - строковое значение. Несколько значений разделяются двоеточием, если в значении присутствует пробел - нужно использовать кавычки.
KEY=value1KEY=value1:value2KEY="value with spaces"Существует три типа переменных окружения:
- локальные переменные окружения (environmental variables) - определены только для текущей сессии, будут безвозвратно стерты по ее завершении. Вывести текущие переменные окружения - команда printenv или env без параметров
- пользовательские переменные окружения (shell variables) - определяются для конкретного пользователя и устанавливаются при входе в систему или удаленном подключении. Хранятся в файлах конфигурации .bashrc, .bash_profile, .bash_login, .profile и других, размещенных в директории пользователя. Для просмотра используется команда set.
- системные переменные окружения - доступны всем пользователям, загружаются при старте системы из файлов /etc/environment, /etc/profile, /etc/profile.d/ /etc/bash.bashrc.
Конфигурационные файлы переменных окружения:
- .bashrc - переменные конкретного пользователя, загружается каждый раз при создании пользователем терминального сеанса
- .bash_profile - загружается каждый раз при удаленном подключении по SSH
- /etc/environment - файл для работы с переменными окружения на системном уровне, будут доступны всем пользователям системы, в том числе при удаленном подключении
- /etc/bashrc - выполняется для всех локальных пользователей при создании сессии в терминале
- /etc/profile - выполняется для всех удаленных пользователей при открытии терминала
Команды для работы с переменными окружения:
$ echo $PATH                     - просмотр значения переменной
$ VAR=значение                   - установить пользовательскую переменную окружения для текущей сессии (недоступна дочерним процессам)
$ export VAR=значение            - установить локальную переменную окружения (environmental variable), доступную дочерним процессам
$ env –i [VAR=value] <команда>   - временно удалить все переменные оболочки и выполнить команду передав свои значения переменной
$ env –i bash                    - запустить оболочку без переменных окружения
$ unset VAR                      - удалить переменную по имени до конца текущей сессии
$ export PATH=""                 - альтернативный способ удалить переменную по имени до конца текущей сессии
$ PATH=$PATH:new_path            - добавить каталог в список путей, в которых shell ищет исполняемые файлыРабота с сетью
Основные команды для работы с сетью:
$ ifconfig      - получение информации об активных сетевых устройствах
$ ifconfig -a   - получение информации обо всех сетевых устройствахАдаптер lo (loopback) в выводе ifconfig используется системой для обращения к самой себе.
$ ping -c 5 ya.ru            - отправить 5 пакетов ECHO_REQUEST по адресу ya.ru и отобразить задержку между отправкой пакета и ответом. Базовое средство проверки подключения компьютера к сети.
$ tracepath ya.ru            - проследить маршрут, по которому пакеты идут до хоста ya.ru
$ netstat -tnp               - отобразить установленные сетевые подключения. Опция -t отображает установленные tcp-соединения.
$ netstat -tln               - отобразить открытые приложениями порты (опция -l - показывать слушающие "listening"-порты)
$ netstat -tunap | grep 9090 - найти процессы, использующие порт 9090
Пример скрипта, ожидающего запуск Zookeeper на порту 2181:# Wait until Zookeeper startedwhile [[ -z "`netstat -tln | grep 2181`" ]]; do  sleep 1doneecho 'Zookeeper started. Importing data...'
$ wget http://example.com/file.zip                      - скачать в текущую директорию file.zip
$ wget -P /path/to/save -O arch.zip http://example.com/file.zip     - скачать файл в директорию /path/to/save и сохранить под именем arch.zip
$ wget --save-cookies cookies.txt --post-data 'username=user&password=pass' http://example.com/auth.php     - авторизоваться на сервере, передав логин и пароль и сохранить cookie в текстовый файл
curl http://test.com                      - получить содержание главной страницы сайта
curl -o index.html http://test.com        - сохранить содержимое главной страницы в index.html
curl -u user:pass http://test.com         - авторизоваться, используя HTTP Base Auth и получить содержимое страницы
curl -H 'Host: test.ru' http://test.com   - передать произвольные HTTP-заголовок
curl -X POST -H "Content-Type: application/json" -d '"name":"test"' http://test.com/api/ - передать POST-запрос с данными в JSON-формате
curl --request PUT "http://test.com/api/" --data "name=Test" - передать данные PUT-запросомРабота со службами
В RHEL7 для управления службами в операционной системе используется утилита systemd, приносящая концепцию юнитов.
Юниты находятся в конфигурационных файлах, расположенных в директориях (указаны по возрастанию приоритета):
- /usr/lib/systemd/system/ - юниты из установленных покетов RPM
- /run/systemd/system/ - юниты, созданные в рантайме
- /etc/systemd/system/ - юниты, созданные и управляемые системным администратором с помощью команды systemctl enable.
Юниты содержат информацию о системных сервисах, прослушиваемых сокетах, сохраненных снапшотах состояний системы и других обьектах, относящихся к системе инициализации.
Типы юнитов systemd:
- .service – системный сервис,
- .target — группа юнитов systemd,
- .automount – точка автомонтирования файловой системы,
- .device – файл устройства, распознанного ядром,
- .mount – точка монтирования файловой системы,
- .path – файл или директория в файловой системе,
- .scope – процесс, созданный извне,
- .slice – группа иерархически организованных юнитов, управляющая системными процессами,
- .snapshot – сохраненное состояние менеджера systemd,
- .socket – сокет межпроцессного взаимодействия,
- .swap – свап-устройство или свап-файл (файл подкачки),
- .timer – таймер systemd.
Основные команды для работы со службами:
$ sudo systemctl start nginx.service       - запустить сервис
$ sudo systemctl stop nginx.service        - остановить сервис
$ sudo systemctl restart nginx.service     - перезапустить сервис
$ sudo systemctl reload nginx.service      - перечитать конф. файлы без перезапуска сервиса
$ sudo systemctl enable nginx.service      - включить автозапуск сервиса при загрузке системы
$ sudo systemctl disable nginx.service     - отключить автозапуск сервиса при загрузке системы
$ systemctl status nginx.service           - просмотр состояния сервиса$ journalctl -u nginx.service              - вывод записей лог-файла сервиса
$ systemctl list-dependencies nginx.service  - отобразить дерево зависимостей юнита
$ systemctl cat nginx.service                - просмотреть юнит-файл
$ sudo systemctl edit --full nginx.service   - модифицировать юнит-файл
$ sudo systemctl daemon-reload               - перезапустить systemd для подхвата изменений после модификации юнит-файлаМенеджер пакетов YUM
Менеджер пакетов YUM - высокоуровневое решение по управлению RPM-пакетами. Основные преимущества YUM:
- хранение пакетов в централизованных репозиториях с определяющими зависимости метаданными. Если для установки одного пакета нужно докачать пакеты из других репозиториев - YUM будет об этом знать заранее
- автоматически разрешаются взаимосвязи между пакетами как при установке (докачать нужное) так и при удалении (удалить ставшее ненужным)
- возможность обновить одной командой все пакеты в системе
Основные комады YUM:
$ yum repolist         - показать список сконфигурированных репозиториев
$ yum check-update     - проверка репозиториев на доступность обновлений
$ yum update           - обновление всех пакетов
$ yum update     - обновление пакета 
$ yum install    - установка пакета 
$ yum remove     - удаление пакета 
$ yum clean packages   - удаление пакетов из кэша
$ yum clean all        - удаление из кэша и пакетов и метаданных
$ yum --showduplicates list  | expand        - отобразить все версии пакета 
$ sudo yum install -           - установить нужную версию пакета $ mount    - просмотр примонтированных устройств
$ yum -y -q install cifs-utils              - устанавливаем cifs-utils
$ mkdir /mnt/shareddrive                    - создаем директорию, в которую будем монтировать
$ mount -t cifs //network/path /mnt/shareddrive -o 'rw,username=user,password='pass''  - монтируем сетевой диск в каталог /mnt/shareddrive, используем указанные имя пользователя и пароль для авторизации
$ ps -eL|wc -l  - определить количество процессов
$ cat /etc/security/limits.conf | grep nproc | grep username - определить максимальное количество процессов для пользователя
$ ps -eL|awk '{arr[$1]++}END{for (a in arr) print a, arr[a]}'|sort -nk 2 - определить процесс, который породил больше всего потоковP.S. эта статья взята от сюда https://ezhvsalate.ru/posts/redhat7-centos-7-poleznye-komandy


