- Команды Linux (администрирование, пользователи, файлы, процессы )
- Основные команды администрирования linux
- Команды получения информации о системе:
- Основные операции
- Мониторинг использования диска
- Операции с файлами
- информация о пользователях
- Работа с процессами
- Информация о процессах
- Работа с сетью
- Архиваторы
- 26 команд в Linux, которые должен знать каждый сисадмин
- Команда uname
- Команда who
- Команда w
- Команда ls
- Команда tar
- Команда rsync
- Команда find
- Команда locate
- Команда systemctl
- Команда journalctl
- Команда kill
- Команда killall
- Команда curl
- Команда tail
- Команда cat
- Команда grep
- Команда top
- Команда netstat
- Команда ip
- Команда lsof
- Команда df
- Команда du
- Команда id
- Команда chmod
- Команда sestatus
- Команда history
Команды Linux (администрирование, пользователи, файлы, процессы )
Здравствуйте уважаемые читатели.
В этой статье мы попытаемся ознакомиться с большинством команд Linux и рассмотреть интересные и наиболее востребованные ключи запуска этих команд для выполнения основных задач администрирования этой ОС.
Как говориться, знание основных команд обеспечивает 80% или даже 90% успеха, так как остальные команды не так часто или вообще очень редко используются. В данном случае к основным командам будут приравнены те, которые нужны и необходимы в администрировании Linux . Разумеется не возможно рассмотреть все команды, так как они постоянно обновляются и выходят новые.
Здесь будут собраны команды для работы в дистрибутивах на основе Debian и Redhat.
Начнем пожалуй с того, что разделим все команды на выполнение определенных задач таких как:
Команды для работы с программами в Linux (установка, удаление)
apt-get, apt-cache, apt-get install, apt-get remove, apt-get upgrade , yum update, dpkg, yum, yum-list, rpm, tar — zxvf, ./configure, make, make install.
Давайте поймем, что программы на Linux могут быть установлены 3 способами.
— Наиболее сложный — это компиляция
— Установка скаченного на компьютер пакета
— Установка программы со всеми зависимостями из интернета — это наиболее легкий и самый распространенный способ.
Читать далее.
Команды управления файлами в Linux (создание, удаление, переименование и др.)
ls, mount, touch, mkdir, rm, rmdir, mv, cp, rsync, chmod, chown, pwd, dd, stat, cat, more, less, tail
После установки Linux необходимо разобраться с файловой системой, которая отличается от расположения папок и файлов в Windows.
Здесь мы не встретим дисков (C:, D:, E:) в замен этому мы увидим следующее:
Читать далее.
Команды управления процессами в Linux (отслеживание процессов, останов и др)
ps -ax, pgrep -l, kill 17676, killall pptpd, pstree, top, gtop
Процесс — это программа выполняющаяся в системе.
В большинстве случаев для исследования процессов в Linux используется команда «ps» , которая может выполняться как в текстовом режиме так и иметь графическую оболочку.
Читать далее.
Команды управления пользователями в Linux (создание, удаление пользователей и групп)
group, passwd, shadow, useradd, userdel, passwd , usermod , groupadd, groupmod, groupdel
В Linux самой главной учетной записью является root — суперпользователь.
По другому root — это администратор.
Однако в ОС Linux имеются и специализированные учетные записи — системные учетные записи. Они необходимы для выполнения службами в Linux, так как все службы в этой ОС должны быть зарегистрированы под учетной записью.
Читать далее.
Поиск данных в Linux (поиск информации и файлов в Linux)
grep, find, locate
Если Вы работаете в командной строке Linux, то привыкли иметь дело с большим количеством файлов и папок, которые необходимо сортировать, производить поиск нужного файла или папки.
Читать далее.
Команды администрирования в Linux (информация об оборудовании, установка времени, чистка, просмотр статистики и загруженности, работа с лог файлами) ncdu, fdisk, du, hddtemp, cat /proc/mdstat, cat /proc/meminfo, free, top, cat /proc/cpuinfo, lscpu, LSHW, date. tpdate, dpkg-reconfigure tzdata, hwclock, tail -f | grep, history
Ну вот и дошли мы к тем самым командам для администраторов Linux.
Разумеется все описанные команды необходимы и являются административными, однако здесь мы рассмотрим те команды, которые нужны для контроля за состоянием оборудования, очистки, просмотра статистики и анализа системы.
Читать далее.
Сетевые команды в Linux (проверка состояния сети и ее загрузки, работа по диагностике и выявлению неисправностей и др.)
ifconfig, ping, tracepath, route, arp, netstat, nmap, iwconfig, vnstat, mii-t00l
Linux как ни какая другая ОС предназначен для работы с сетью. Можно даже больше сказать, старенький компьютер с установленной операционной системой Linux лучшее решения для создания сетевого шлюза, шлюза интернета, брандмаузера или прокси сервера.
Читать далее.
Для ознакомления с этими командами перейдите в раздел из списка выше.
Количество просмотров: 13700
Комментарии к статье:
Автор комментария: py
Дата: 2014-05-21
В добавок хорошо изучить какой-либо язык программирования и понять, что он из себя представляет. Советую начать с Python. Ну а если совсем мало опыта, тогда начать с изучения сценариев Bash.
Автор комментария: Виктор
Дата: 2013-02-05
Сколько авторов столько и вариантов представить другим читателям, справочник по командам в Linux. Взять немножко от одного автора немного от другого и мы в результате узнаем ИСТИННУЮ мощь Linux. 🙂
Автор комментария: Мишаня
Дата: 2012-12-19
Почитал несколько разделов. В принципе достойная статья для начинающих пользователей ну и для просто шпаргалги. Хорошо, что автор по своему изложил команды Linux и их применение.
Автор комментария: Dmoz
Дата: 2012-12-17
В большинстве случаев все команды это всего навсего шаг к чему-то большему, а большее это изучение сценариев на Bash. Именно умение манипулировать командами в циклах, ветвлениях и знание условий выполнения команд приводят к очень хорошему результату в администрировании Linux.
Источник
Основные команды администрирования linux
Простые команды, которые помогут автоматизировать некоторые рутинные операции, возникающие при администрирование сервера, ускорить и облегчить работу администратора.
man, info — пожалуй, самые полезные команды для новичка. Служат для вызова справки. например:
$ man man $ man cp $ info sed
Команды получения информации о системе:
uname — выводит информацию о системе
$ uname -a Linux sandbox 2.6.29-gentoo-r3 #2 PREEMPT Tue May 26 22:19:41 MSD 2009 x86_64 AMD
Sempron(tm) Processor 3000+ AuthenticAMD GNU/Linux
uptime — показывает как долго система работает без перезагрузок, а также количество пользователей и среднюю загрузку за 1,5 и 15 минут
$ uptime 04:35:36 up 7 days, 13:24, 8 users, load average: 0.00, 0.02, 0.02
hostname — выводит имя хоста
arch — показывает архитектуру (то же что и ‘uname -m’)
date — выводит дату.
$ date Птн Июн 19 04:41:41 MSD 2009 $ date +%F 2009-06-19 $date +%s 1245372182
pwd — печатает имя текущей директории
tty — печатает имя терминала, связанного со стандартным вводом.
Основные операции
cd — смена рабочей директории
‘cd'(без аргументов) — меняет директорию на домашний каталог ‘cd -‘ переход в предыдущую директорию и печать ее имени ‘cd /var/log’ — перейти в /var/log
ls — выдаёт список содержимого директории.
‘ls -la’ — подробный список, включая скрытые файлы(имена которых начинаются с точки)
cp — копирование файлов и директорий.
‘cp -t dir f1 f2 f3’ — скопировать файлы f1,f2, f3 в директорию dir
dd — копирование и изменение файлов.
‘dd if=/dev/zero of=./zero bs=1K count=1024’ — создать файл, заполненный нулями, размером 1 мегабайт $ dd if=/dev/zero of=./zero bs=1K count=1024 1024+0 records in 1024+0 records out 1048576 bytes (1.0 MB) copied, 0.0129177 s, 81.2 MB/s ‘dd if=/dev/sda of=./boot count=1 bs=512’ — скопировать бут-сектор диска в файл boot $ dd if=/dev/sda of=./boot count=1 bs=512 1+0 records in 1+0 records out 512 bytes (512 B) copied, 0.0127466 s, 40.2 kB/s
mv — перемещает файлы и каталоги
rm — удаляет файлы и каталоги.
‘rm -rf ./temp/’ — удалить каталог temp со всем его содержимым из текущей директории
Мониторинг использования диска
du — оценивает используемое файлами пространство.
df — показывает использование место файловых систем
$ df -h /var Filesystem Size Used Avail Use% Mounted on /dev/sda5 9.9G 3.2G 6.3G 34% /var
Операции с файлами
file — определяет тип файла.
$ file /etc/passwd /etc/passwd: ASCII text
mkdir — создаёт директории.
‘mkdir -p ./d1/d2/d3 — создать структуру вложенных каталогов
ln — создаёт ссылку на файл
$ :>test $ ls -l test -rw-r—r— 1 user1 users 0 Июн 19 05:22 test $ ln test test.lnk $ ls -l test test.lnk -rw-r—r— 2 user1 users 0 Июн 19 05:22 test -rw-r—r— 2 user1 users 0 Июн 19 05:22 test.lnk
$ :>test $ ls -l test -rw-r—r— 1 user1 users 0 Июн 19 05:22 test $ ln -s test test.lnk $ ls -l test test.lnk -rw-r—r— 1 user1 users 0 Июн 19 05:22 test lrwxrwxrwx 1 user1 users 4 Июн 19 05:22 test.lnk -> test
touch — меняет время последнего доступа к файлу(или создаёт пустой файл)
chmod — изменяет права доступа к файлу.
$ ls -l test -rw-r—r— 2 user1 users 0 Июн 19 05:22 test $ chmod 0400 test $ ls -l test -r——— 2 user1 users 0 Июн 19 05:22 test
chown — меняет владельца файла
echo — выводит строку текста на стандартный вывод
yes — запускает бесконечный цикл в котором выводит на стандартный вывод строку
chroot — изменяет корневую директорию для команды
wc — выводит количество строк, слов и байт для текстовых файлов.
$ sudo wc -l /var/log/messages 1073101 /var/log/messages ls -lh /var/log/messages -rw——- 1 root root 78M Июн 19 05:52 /var/log/messages
find — поиск файлов
‘find . -name Thumbs.db -exec rm <> \;’ — найти и удалить все файлы Thumbs.db
cat — объединяет файлы и выводит их на стандартный вывод
‘cat file1 file2 > file3’ — объединить file1 и file2 в файл file3
less — команда позволяет просматривать текстовые файлы, перемещаясь как вперёд так и назад
tail — выводит последнюю часть файла.
‘tail -n20 file’ — вывести последние 20 строк file
head — выводит первую часть файла.
‘head -n10 file’ — выводит первые 10 строк file
sort — сортирует строки
uniq — показывает или пропускает повторяющиеся строки при выводе текстового файла
grep — поиск текста.
$ grep sshd /etc/group sshd:x:22: cat /etc/group|grep sshd sshd:x:22:
sed — построчный редактор.
sed -i -e ‘s/qwe/asd/g’ file — заменть все слова qwe на asd в файле file
awk — язык построчный обработки и разбора входного потока (например, текстового файла) по заданным шаблонам.
netstat -nt | awk ‘
su — изменяет идентификатор пользователя
sudo — выполняет команду от имени другого пользователя
‘sudo -i’ — перейти в интерактивный режим
информация о пользователях
id — выводит эффективный и действительный uid и gid
who — показывает имена пользователей, находящихся в системе
whoami — выводит эффективный uid
groups — выводит список групп в которых состоит пользователь.
Работа с процессами
kill — посылает сигнал процессу
‘kill -15 1234’ — послать сигнал TERM процессу с >
nice — запускает программу с измененным приоритетом
nohup — запускает команду устойчивую к сигналу SIGHUP
sleep — задержка на указанный промежуток времени
Информация о процессах
ps — выводит список процессов
‘ps -ef’ — подробный список всех процессов ‘ps -a’ — список процессов, кроме несвязанных с терминалом и лидеров сессий
pgrep — поиск идентификатора процесса
$ pgrep mysql 4852 $ps -fp4852 UID PID PPID C STIME TTY TIME CMD mysql 4852 1 0 Jun11 ? 00:00:03 /usr/sbin/mysqld —defaults-file=/etc/mysql/my.cnf
—basedir=/usr —datadir=/var/lib
top — показывает динамически в режиме реального времени список процессов и некоторую системную информацию. Процессы можно сортировать по количеству потребляемой памяти, загрузке процессора и т.д.
free — показывает количество свободной и используемой памяти в системе
Работа с сетью
netstat — показывает таблицу маршрутизации, сетевые соединения, статистику по интерфейсам
ifconfig — конфигурирует сетевые интерфейсы
‘ifconfig -a’ — показать все доступные интерфейсы
Архиваторы
tar
zip, unzip
cpio
bzip2, bunzip2
gzip, gunzip
7z
Источник
26 команд в Linux, которые должен знать каждый сисадмин
Обновл. 6 Апр 2021 |
Linux предлагает множество различных команд и утилит, которые помогут вам быстро и эффективно выполнять задачи системного администрирования.
Работа системного администратора включает в себя выполнение таких задач, как: установка и запуск программного обеспечения, контроль доступа пользователей к системе, обеспечение доступности необходимых ресурсов, резервное копирование важных данных (а также восстановление их из резерва) и пр.
В этой статье мы рассмотрим наиболее часто используемые системными администраторами команды в Linux.
Команда uname
Команда uname с параметром -a применяется для вывода системной информации: наименование используемого ядра, его версия, имя хоста, тип процессора и информация о вашей аппаратной платформе.
$ uname -a
Linux debian 5.10.0-5-amd64 #1 SMP Debian 5.10.24-1 (2021-03-19) x86_64 GNU/Linux
Разберем вышеприведенный вывод детально:
название ядра: Linux
имя хоста: debian
номер релиза ядра: 5.10.0-5-amd64
номер версии ядра: #1 SMP Debian 5.10.24-1 (2021-03-19)
архитектура: x86_64
операционная система: GNU/Linux
Команда who
Команда who выводит список вошедших в систему пользователей.
$ who
diego tty7 2021-04-03 09:21 (:0)
Команда w
Команда w отображает пользователей и их процессы. Вначале идет заголовок, содержащий текущее время, время безотказной работы системы (uptime), количество пользователей, вошедших в систему, и средние значения загрузки системы.
Далее мы видим имена пользователей, используемый терминал и удаленный IP-адрес, с которого они вошли в систему, время их входа, время простоя, JCPU (время, использованное всеми процессами, закрепленными за терминалом), PCPU (время, использованное процессом из поля WHAT ) и программу, которую они запустили.
Команда ls
Команда ls выводит содержимое каталога. Кроме того, данная команда помогает проверить установленные для файлов/каталогов разрешения. В следующем примере показана неудачная (из-за отсутствия необходимых прав) попытка запуска приложения ravesli_app. Выполнив после этого команду ls -l , мы видим, что в наборе прав -rw-r—r— отсутствует разрешение на выполнение — символ x :
$ ./ravesli_app
bash: ./ravesli_app: Отказано в доступе
$ ls -l ravesli_app
-rw-r—r— 1 diego diego 180 мар 29 14:51 ravesli_app
Команда tar
Команда tar позволяет заархивировать несколько файлов в один архив.
В качестве примера, давайте создадим каталог ravesli_docs, и поместим в него три файла: a.txt, b.txt и c.txt:
$ mkdir ravesli_docs; touch ravesli_docs/
Теперь с помощью команды tar -cvf создадим архив ravesli.tar, содержащий все файлы из каталога ravesli_docs:
Просмотрев с помощью команды ls содержимое текущего каталога можно заметить каталог ravesli_docs и вновь созданный нами архив ravesli.tar:
$ ls
ravesli.tar ravesli_docs
Для распаковки архива применяется команда tar -xvf :
Также вы можете задействовать gzip-сжатие для архива (для этого необходимо добавить параметр -z ):
Для распаковки сжатого архива применяется связка параметров -z и -x :
Команда rsync
Команда rsync позволяет синхронизировать файлы и каталоги между двумя местоположениями. Данная команда может применяться как для локального, так и для удаленного копирования. Причина её высокой скорости работы заключается в том, что она пересылает только различающиеся между исходными и конечными файлами данные. Команда rsync широко используется для резервного копирования данных, а также в качестве модернизированной команды копирования.
Ниже показан пример копирования при помощи команды rsync всех файлов из каталога ravesli_docs в каталог backups:
Команда find
Команда find применяется для поиска файлов на основе их имени, разрешений, идентификатора пользователя, идентификатора группы, размера, типа файла, а также других критериев. Это одна из наиболее часто используемых команд в Linux.
Например, если мы хотим найти в текущем каталоге некий файл с известным нам именем, то после команды find . -name необходимо указать имя файла:
$ find . -name a.txt
./ravesli_docs/a.txt
./backups/a.txt
Для поиска каталогов применяется параметр -type d :
$ find . -type d
.
./ravesli_docs
./.pki
./.pki/nssdb
./Шаблоны
./Документы
./.cache
./.cache/QtProject
./.cache/QtProject/QtCreator
./.cache/QtProject/QtCreator/qmlcache
./.cache/fontconfig
./.cache/systemsettings
./.cache/systemsettings/qmlcache
./.cache/systemsettings/attica
[…]
За поиск файлов по размеру отвечает параметр -size . Например, если в текущем каталоге мы хотим найти все файлы, размер которых более 10 МБ, то необходимо выполнить команду find . -size +10M :
$ find . -size +10M
./.cache/icon-cache.kcache
./.cache/appstream/system/ru_RU.cache
./.cache/plasma_theme_default_v5.78.0.kcache
./.mozilla/firefox/am73pqpn.default-esr/storage/permanent/chrome/idb/3870112724rsegmnoittet-es.sqlite
Команда locate
Команда locate использует базу данных для поиска файлов и, по сути, может быть намного быстрее команды find . Например, для поиска файла apache2.conf необходимо сделать следующее:
$ locate apache2.conf
/etc/apache2/apache2.conf
/usr/share/doc/apache2/examples/apache2/apache2.conf
/var/lib/dpkg/info/apache2.conffiles
Если вам нужно отобразить только количество файлов, соответствующих шаблону поиска, то просто добавьте параметр -c :
$ locate -c apache2.conf
3
Иногда вам может потребоваться обновить базу данных, к которой обращается locate . Для этого необходимо ввести команду updatedb (её запуск производится от имени суперпользователя):
Команда systemctl
Команда systemctl используется для управления системными службами.
Например, запуск службы веб-сервера apache2 выполняется следующим образом:
$ sudo systemctl start apache2.service
Примечание: Допускается опускать суффикс .service .
Остановка службы выполняется аналогичным образом, только start меняется на stop :
$ sudo systemctl stop apache2
Чтобы увидеть состояние службы, используйте команду systemctl status . В следующем примере мы предварительно снова запускаем apache2, чтобы затем посмотреть на вывод команды systemctl status :
Команда journalctl
Команда journalctl используется для просмотра логов, собранных systemd. systemd «собирает» логи в бинарном формате. Чтобы их посмотреть, используется команда sudo journalctl :
Как правило, более полезным является реверсивный просмотр логов (т.е. сначала новые логи, а затем уже старые). Чтобы произвести вывод логов в обратном порядке, используйте параметр -r :
Для просмотра логов, касающихся какой-то конкретной службы, например, apache2, используйте параметр -u :
Команда kill
Команда kill используется для принудительного завершения процесса.
Чтобы посмотреть все сигналы, которые вы можете отправить процессу, добавьте к команде параметр -l :
Два наиболее часто используемых сигнала — это SIGTERM и SIGKILL .
Сигнал SIGTERM позволяет процессу самостоятельно завершиться ДО его принудительного завершения и поэтому относится к т.н. категории «soft kill» (мягкое завершение).
Сигнал SIGKILL приводит к немедленному завершению процесса.
Также можно указывать числовые значения сигналов вместо их названий, например, -9 вместо SIGKILL и -15 вместо SIGTERM .
Ниже представлен список всех процессов веб-сервера apache2:
Чтобы убить процесс apache2 с идентификатором 2409 , необходимо ввести следующую команду:
$ sudo kill -9 2409
Еще раз посмотрим на список процессов apache2. Как видите, теперь осталось только три процесса:
Команда killall
Команда killall применяется в том случае, если вы хотите убить управляющий (родительский) процесс и все дочерние процессы. Чтобы убить все экземпляры процесса apache2 в вышеприведенном примере, выполните следующее:
$ sudo killall apache2
Команда curl
Команда curl позволяет взаимодействовать с внешними ресурсами посредством URL-адресов. Часто данная команда применяется для определения того, может ли ваше приложение связаться с другой службой, например, с базой данных, или для проверки работоспособности вашей службы.
Представьте, что у нас есть база данных MongoDB, которая не может связаться с внешним приложением, выдавая при этом сообщение об ошибке HTTP 500:
$ curl -I -s myapplication:5000
HTTP/1.0 500 INTERNAL SERVER ERROR
Параметр -I выводит информацию о заголовке HTTP-запроса, а параметр -s отвечает за тихий (silent) режим, при котором опускается тело HTTP-ответа от сервера. В то же время, проверка подключения к базе данных с локального хоста проходит успешно:
$ curl -I -s database:27017
HTTP/1.0 200 OK
Так в чем же может быть проблема? Для начала необходимо проверить, можем ли мы с хоста, на котором установлено наше приложение, достучаться до других ресурсов, кроме базы данных:
$ curl -I -s https://ravesli.com
HTTP/1.1 200 OK
Вроде всё в порядке. Теперь попробуем связаться с базой данных. Т.к. для подключения к базе данных наше приложение использует имя хоста базы данных, то сначала попробуем выполнить следующую команду:
$ curl database:27017
curl: (6) Couldn’t resolve host ‘database’
Вывод команды означает, что заданный URL-адрес недоступен или хост не имеет соответствующим образом настроенного DNS-сервера, который можно использовать для сопоставления имени и IP-адреса.
Команда tail
Команда tail отображает последнюю часть (хвост) файла. Как правило, при решении различных проблем нет необходимости просматривать весь лог-файл в поиске ошибок. Вместо этого можно проверить, что сказано в самом последнем его сообщении. Например, вы можете применить команду tail и узнать, что происходит в лог-файле во время выполнения запроса к своему HTTP-серверу Apache:
Благодаря параметру -f (от англ. «follow» — следовать), строки лог-файла будут выводиться по мере их записи в лог-файл. Теперь представим другую ситуацию: у вас есть скрипт, работающий в фоновом режиме, который каждые несколько секунд обращается к некоторому внешнему ресурсу, и лог-файл ведет запись данных запросов. Вместо того, чтобы в режиме реального времени следить за всем содержимым лог-файла, вы можете прибегнуть к команде tail -n , выводящей 100 последних строк:
$ tail -n 100 /var/log/httpd/access_log
Команда cat
Команда cat используется для вывода в терминал содержимого файлов. Вы можете использовать её, например, для просмотра файла с фамилиями ваших коллег по работе:
$ cat работа_коллеги.txt
Иванов А. А.
Петров Б. Б.
Сидоров С. С.
Команда grep
Команда grep производит поиск в текстовых файлах по заданному шаблону и отображает все строки, в которых заданный шаблон присутствует. Очень часто команда grep применяется в качестве фильтра поступающей от другой команды информации (например, для поиска внутри лог-файла определенных процессов).
Предположим, вы захотели посмотреть, запустился ли ваш сервер Apache Tomcat, и выполнили команду cat tomcat.log . То количество информации, которое в этот момент хлынет в терминал, может с легкостью вас «ошеломить». Вместо этого мы перенаправим все эти данные в команду grep , которая произведет отбор только тех строк, которые будут указывать на запуск сервера:
$ cat tomcat.log | grep org.apache.catalina.startup.Catalina.start
01-Jul-2017 18:03:47.542 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 681 ms
Команда top
Команда top отображает и обновляет отсортированную информацию о текущем процессе (или процессах). Используйте её, чтобы определить, какие процессы в данный момент запущены и сколько памяти и ресурсов процессора они потребляют. Обычно бывает так, что вы запускаете приложение, и оно через минуту «умирает». Проверив соответствующий лог-файл, вы замечаете запись, указывающую на ошибку памяти:
$ tail myapp.log
Traceback (most recent call last):
MemoryError
Действительно ли вашему приложению не хватает памяти? Чтобы подтвердить эту догадку, применяем команду top и смотрим, какое количество ресурсов процессора и памяти потребляется приложением. В результате этого замечаем, что основную нагрузку на процессор и память создает процесс python3.
Нажав клавишу C , вы можете увидеть полную команду, которая запустила приложение.
Оказывается, это действительно ваше приложение (memeater.py). Когда у него закончится память, система убьет процесс, выдав ошибку «out-of-memory» (OOM).
Команда netstat
Команда netstat отображает информацию о состоянии сети. Она показывает используемые сетевые порты и входящие соединения к ним. Однако стоит заметить, что команда netstat не входит в базовую поставку Linux; утилита устанавливается вместе с пакетом net-tools.
Предположим, вы проводите локальные эксперименты со своей программой, принимающей входящие подключения от других программ. Может случиться так, что вы получите сообщение об ошибке типа «Необходимый вам порт (или адрес) уже занят». Применив команду netstat с параметрами протокола, процесса и порта, мы увидим, что HTTP-сервер Apache уже использует 80 порт на нижеприведенном хосте:
Команда ip
Команда ip используется для настройки и отображения сетевых интерфейсов. Также данная команда используется для отображения и изменения IP-адресов, маршрутов и соседних объектов.
Например, отобразим информацию обо всех сетевых интерфейсах:
$ ip a
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0:
mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0d:3a:9b:88:d6 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.4/24 brd 10.0.0.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::20d:3aff:fe9b:88d6/64 scope link
valid_lft forever preferred_lft forever
Команда lsof
Команда lsof отображает информацию о том, какие файлы используются тем или иным процессом. В Linux практически любое взаимодействие с системой рассматривается как взаимодействие с файлом. Если ваше приложение записывает данные в файл или открывает сетевое соединение, то команда lsof отобразит соответствующую информацию по данному взаимодействию. Подобно команде netstat , вы можете использовать команду lsof для проверки открытых сетевых портов. Например, если вы хотите узнать, занят ли в вашей системе 80 порт, то, применив команду lsof , вы получите информацию о том, какой именно процесс в данный момент его использует.
Ниже вы можете видеть, что процесс apache2 прослушивает порт 80. Вы также можете использовать команду lsof для запроса информации по идентификатору процесса, чтобы узнать, по какому пути расположен соответствующий ему двоичный файл:
Имя файла в списке открытых файлов помогает точно определить происхождение процесса, в частности, мы теперь знаем, что это веб-сервер Apache.
Команда df
Команда df используется для получения информации о доступном свободном пространстве. При запуске вашего приложения может появиться сообщение об отсутствии свободного места на диске. Прибегнув к помощи команды df , мы сможем выяснить, действительно ли это так:
Параметр -h выводит информацию в читабельном формате. По умолчанию команда df предоставляет результаты для всего, что находится в корневом каталоге, но вы также можете ограничить результаты выдачи, добавив к команде путь к заданному каталогу (например, df -h /home ).
Команда du
Команда du используется для получения информации о том, какие файлы (и в каком объеме) используют дисковое пространство в заданном каталоге. Например, если вы хотите узнать, какой лог-файл занимает больше всего места в каталоге /var/log, вы можете использовать команду du с параметром –s (для отображения занимаемого места) и параметром -h (читабельный формат):
В этом примере видно, что самым большим каталогом в каталоге /var/log является /var/log/apt. Применение команды du в сочетании с командой df поможет вам быстро определить, что и в каких объемах использует дисковое пространство на вашем компьютере.
Команда id
Команда id используется для получения информации по текущему пользователю. В следующем примере, я попытался установить анализатор сетевого трафика Wireshark, на что система отреагировала сообщением, что я не могу выполнить данную команду, т.к. не имею прав суперпользователя (root). После этого, чтобы проверить своего пользователя и группу, я выполнил команду id и обратил внимание, что работал под учетной записью обычного пользователя diego в группе diego:
Для исправления ситуации необходимо произвести вход под учетной записью привилегированного пользователя (root) или прибегнуть к помощи команды sudo .
Команда chmod
Команда chmod используется для управления разрешениями на заданный файл/каталог.
Например, при первом запуске бинарного файла приложения (или скрипта) на вашем компьютере, может появиться сообщение об ошибке типа «Отказано в доступе». Выполнив при помощи уже знакомой нам команды ls проверку установленных разрешений, мы наблюдаем следующую картину:
Как видите, у скрипта отсутствуют права на выполнение (символ x в наборе разрешений). В такой ситуации нам поможет команда chmod , которая добавляет (или убирает) необходимые разрешения, обеспечивающие пользователю возможность запускать скрипт (или двоичный файл):
После этого, при повторной попытке выполнить скрипт ravesli.sh, вы больше не получите ранее описанного сообщения об ошибке.
Команда sestatus
Обычно, SELinux (модуль безопасности Linux) применяется там, где процессам, запущенным на хосте, требуется обеспечить наименьшие привилегии, предотвращая тем самым доступ потенциально вредоносных процессов к важным файлам в системе. Однако в некоторых ситуациях, приложение, которому требуется получить доступ к определенному файлу, может выдать ошибку. Чтобы проверить, не блокирует ли SELinux наше приложение, применяется связка команд tail и grep , ведущих поиск сообщения типа «denied» в лог-файле /var/log/audit.
Проверка того, включен ли сам модуль SELinux, производится с помощью команды sestatus:
$ sestatus
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: enforcing
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Max kernel policy version: 28
Вывод указывает на то, что на хосте модуль SELinux включен.
Команда history
Команда history отображает историю команд, которые были введены с момента начала сессии. Например, если сейчас применить команду history , то она покажет различные команды, с которыми вы экспериментировали по ходу данного урока:
$ history
1 clear
2 uname -a
3 who
[…]
Но что делать, если вы хотите выполнить предыдущую команду, но не хотите заново вручную её набирать? Ответ — используйте символ восклицательного знака ! перед номером команды для её повторного выполнения:
[…]
570 sudo firewall-cmd —get-active-zones —list-all
571 sudo man firewall-cmd
572 sudo firewall-cmd —get-default-zones
573 sudo firewall-cmd —get-default-zone
574 clear
575 history
576 uname
577 uname -a
578 clear
579 history
diego@debian:
$ !577
uname -a
Linux debian 5.10.0-5-amd64 #1 SMP Debian 5.10.24-1 (2021-03-19) x86_64 GNU/Linux
diego@debian:
Поделиться в социальных сетях:
Источник