LINUX для инженеров DevOps
Linux – это ядро операционной системы с открытым исходным кодом, которое служит основой для различных операционных систем (дистрибутивов) на базе Linux. Linux известен своей стабильностью, безопасностью и гибкостью. Она основана на операционной системе Unix и следует философии Unix, предполагающей использование небольших, модульных и многократно используемых компонентов. Linux обладает высокой степенью настраиваемости и может быть адаптирована под различные нужды – от настольных компьютеров и серверов до встраиваемых систем и суперкомпьютеров.
Дистрибутивы Linux, такие как Ubuntu, Fedora, Debian, CentOS и многие другие, берут ядро Linux и объединяют его с дополнительными программными пакетами, утилитами и графическими интерфейсами для создания полноценных операционных систем, готовых к использованию конечными пользователями.
Linux предлагает интерфейс командной строки (CLI), позволяющий взаимодействовать с системой с помощью текстовых команд, а также графические интерфейсы пользователя (GUI), обеспечивающие более удобную работу с системой. Система поддерживает широкий спектр приложений, средств разработки программного обеспечения и серверных сервисов, что позволяет использовать ее для различных целей, включая общие вычисления, веб-серверы, облачную инфраструктуру, сетевые технологии и т.д.
Структура папок в Linux
Структура папок в Ubuntu Linux соответствует стандарту Filesystem Hierarchy Standard (FHS), который представляет собой стандарт организации файлов и каталогов в Unix-подобных операционных системах. Ниже приведен обзор основных каталогов, которые обычно встречаются в Ubuntu:
- /bin: Содержит основные исполняемые файлы командной строки (двоичные файлы), доступные всем пользователям.
- /boot: Содержит файлы, связанные с процессом загрузки, включая ядро Linux, начальный ramdisk (initrd) и конфигурацию загрузчика.
- /dev: Содержит файлы устройств, которые представляют различные аппаратные устройства системы и обеспечивают доступ к ним.
- /etc: Содержит общесистемные конфигурационные файлы для различных приложений и служб.
- /home: Домашние каталоги отдельных пользователей. Каждый пользователь обычно имеет здесь подкаталог для хранения своих личных файлов и настроек.
- /lib и /lib64: Эти каталоги содержат общие библиотеки, необходимые системе и приложениям. В 64-разрядных системах присутствует каталог “lib64”.
- /media: Точка монтирования для съемных носителей информации, таких как USB-накопители или оптические диски.
- /mnt: Точка монтирования общего назначения для временного монтирования файловых систем.
- /opt: Содержит пакеты дополнительного программного обеспечения, установленного в системе. Приложения, установленные здесь, часто находятся в собственных каталогах.
- /proc: Виртуальная файловая система, предоставляющая информацию о процессах и состоянии системы. Она используется многими системными утилитами для получения информации о времени выполнения.
- /root: Домашний каталог пользователя root, административного суперпользователя.
- /run: Временная файловая система, содержащая данные о времени выполнения различных системных служб. Очищается при каждой перезагрузке.
- /sbin: Содержит системные двоичные файлы (исполняемые файлы), которые в основном используются пользователем root для решения задач системного администрирования.
- /srv: Содержит данные о сервисах, предоставляемых системой.
- /sys: Виртуальная файловая система, в которой хранится информация о ядре и его конфигурации.
- /tmp: Каталог для временных файлов, создаваемых приложениями и пользователями. Его содержимое обычно очищается при каждой перезагрузке.
- /usr: Содержит пользовательские программы, библиотеки, документацию и общие ресурсы. Он имеет такие подкаталоги, как /usr/bin для пользовательских исполняемых файлов, /usr/lib для библиотек и /usr/share для общих данных.
- /var: Содержит переменные данные, изменяющиеся в процессе работы системы, такие как журналы, базы данных и файлы спула.
Это высокоуровневый обзор структуры папок Ubuntu Linux. Каждый каталог служит определенной цели в организации файлов и ресурсов системы.
Важные команды Linux для инженера DevOps
1. ls
- Описание: Перечисляет файлы и каталоги в текущем каталоге.
- Использование:
ls
: Перечисляет файлы и каталоги в текущем каталоге.ls -l
: Списки файлов и каталогов в длинном формате.ls -a
: Перечисляет все файлы и каталоги, включая скрытые
2. cd
. Описание: Изменяет текущий каталог.
- Использование:
cd /path/to/directory
: Изменяет текущий каталог на указанный путь.cd ..
: Осуществляет переход к родительскому каталогу.cd ~
: Перемещение в домашний каталог.
3. mkdir
- Описание: Создает новый каталог.
- Использование:
mkdir directory_name
: Создает новый каталог с указанным именем.mkdir -p path/to/directory
: Создает вложенные каталоги, если они не существуют.
4. rm
- Описание: Удаляет файлы и каталоги.
- Использование:
rm file_name
: Удаляет указанный файл.rm -r directory_name
: Рекурсивно удаляет указанный каталог и его содержимое.rm -f file_name
: Принудительное удаление указанного файла без запроса.
5. cp
- Описание: Копирует файлы и каталоги.
- Использование:
cp source_file destination_file
: Копирует исходный файл в конечный.cp -r source_directory destination_directory
: Рекурсивно копирует исходный каталог в конечный.
6. mv
- Описание: Перемещение или переименование файлов и каталогов.
- Использование:
mv source_file destination_file
: Перемещает исходный файл в конечный или переименовывает его.mv source_directory destination_directory
: Перемещает исходный каталог в конечный или переименовывает его.
7. grep
- Описание: Поиск определенного шаблона в файлах или выходных данных.
- Использование:
grep pattern file_name
: Поиск указанного шаблона в заданном файле.grep -r pattern directory
: Осуществляет рекурсивный поиск шаблона в указанном каталоге.command | grep pattern
: Фильтрует вывод команды и выполняет поиск шаблона.
8. ps
- Описание: Выводит список запущенных процессов.
- Использование:
ps
: Перечисляет запущенные процессы для текущего пользователя.ps -ef
: Перечисляет все запущенные процессы.ps -eaf
: Перечисляет все запущенные процессы с полной информацией.
9. top
- Описание: Отображает системную информацию в реальном времени и список процессов.
- Использование:
top
: Отображает системную информацию в реальном времени, загрузку процессора, использование памяти и список процессов.- Нажмите q, чтобы выйти из верхней команды.
10. tail
- Описание: Выводит последнюю часть файла.
- Использование:
tail file_name
: Отображает последние 10 строк указанного файла.tail -n N file_name
: Отображает последние N строк указанного файла.tail -f file_name
: Непрерывно выводит новые строки, добавленные в файл.
Вот 50 лучших сетевых команд в Linux:
- ifconfig: Отображает или конфигурирует сетевые интерфейсы. Пример: ifconfig eth0
- ip: Конфигурирует и отображает сетевые интерфейсы, таблицы маршрутизации и т.д. Пример: ip address show
- ping: Отправляет ICMP-эхо-запросы на указанный сетевой узел. Пример: ping google.com
- traceroute: Отображает маршрут, по которому пакеты добираются до узла назначения. Пример: traceroute google.com
- nslookup: Запрашивает DNS-серверы для получения информации, связанной с DNS. Пример: nslookup google.com
- dig: Утилита поиска DNS для запроса DNS-серверов. Пример: dig google.com
- host: Выполняет поиск DNS. Пример: host google.com
- netstat: Отображает сетевые соединения, таблицы маршрутизации и сетевую статистику. Пример: netstat -tun
- ss: Предоставляет подробную статистику сокетов. Пример: ss -tun
- route: Настраивает и отображает информацию о таблице маршрутизации. Пример: route -n
- arp: Манипулирует или отображает ARP-кэш. Пример: arp -a
- iptables: Управление правилами межсетевого экрана. Пример: iptables -L
- tcpdump: Захват сетевого трафика. Пример: tcpdump -i eth0
- ifup: Приводит сетевой интерфейс в рабочее состояние. Пример: ifup eth0
- ifdown: Выводит сетевой интерфейс из строя. Пример: ifdown eth0
- ethtool: Отображает или изменяет настройки устройства Ethernet. Пример: ethtool eth0
- hostname: Отображение или установка имени хоста системы. Пример: hostname
- ssh: Подключение к удаленному серверу по протоколу SSH. Пример: ssh user@hostname
- scp: Копирование файлов между хостами с использованием протокола SSH. Пример: scp file.txt user@hostname:/path/to/destination
- rsync: Синхронизация файлов и каталогов между различными узлами. Пример: rsync -avz source/ user@hostname:/path/to/destination
- nc: Чтение и запись данных через сетевые соединения. Пример: nc -l 8080
- wget: Загрузка файлов из Интернета. Пример: wget http://example.com/file.txt
- curl: Передача данных на сервер или с сервера. Пример: curl http://example.com
- nmap: Сканирует порты и обнаруживает сетевые службы. Пример: nmap -p 1-1000 имя хоста
- telnet: Устанавливает telnet-соединение с удаленным хостом. Пример: telnet hostname
- ifstat: Отображает статистику сетевого интерфейса. Пример: ifstat
- mtr: Сочетает в себе функции ping и traceroute. Пример: mtr google.com
- route add: Добавляет новый маршрут в таблицу маршрутизации. Пример: route add -net 192.168.0.0/24 gw 192.168.1.1
- route delete: Удаляет маршрут из таблицы маршрутизации. Пример: route delete default gw 192.168.1.1
- ifconfig up: Включает сетевой интерфейс. Пример: ifconfig eth0 up
- ifconfig down: Отключает сетевой интерфейс. Пример: ifconfig eth0 down
- ip link: Управление сетевыми интерфейсами. Пример: ip link show
- ip route: Управляет таблицами маршрутизации. Пример: ip route show
- ip neigh: Управление ARP-кэшем. Пример: ip neigh show
- ip addr: Управление IP-адресами и интерфейсами. Пример: ip addr show
- ip link set: Изменяет свойства сетевого интерфейса. Пример: ip link set eth0 mtu 1500
- ip route add: Добавляет новый маршрут в таблицу маршрутизации. Пример: ip route add 192.168.0.0/24 via 192.168.1.1 dev eth0
- ip route delete: Удаляет маршрут из таблицы маршрутизации. Пример: ip route delete 192.168.0.0/24
- ip addr add: Добавляет IP-адрес к интерфейсу. Пример: ip addr add 192.168.0.1/24 dev eth0
- ip addr delete: Удаляет IP-адрес из интерфейса. Пример: ip addr delete 192.168.0.1/24 dev eth0
- ip tunnel add: Создает туннельный интерфейс. Пример: ip tunnel add mytunnel mode gre remote 203.0.113.1 local 198.51.100.1
- ip tunnel delete: Удаляет туннельный интерфейс. Пример: ip tunnel delete mytunnel
- ip link set promisc on: Переводит сетевой интерфейс в режим promiscuous. Пример: ip link set eth0 promisc on
- ip link set mtu: Устанавливает максимальный блок передачи (MTU) сетевого интерфейса. Пример: ip link set eth0 mtu 1500
- iptables -A INPUT: Добавляет правило в цепочку INPUT межсетевого экрана. Пример: iptables -A INPUT -s 192.168.0.0/24 -j ACCEPT
- iptables -P: Устанавливает политику по умолчанию для цепочки в межсетевом экране. Пример: iptables -P INPUT DROP
- iptables -F: Удаляет все правила из цепочки в межсетевом экране. Пример: iptables -F INPUT
- iptables-save: Сохраняет текущие правила брандмауэра в файл. Пример: iptables-save > firewall.rules
Эти команды охватывают широкий спектр сетевых задач и могут быть полезны для управления и устранения неисправностей сетевых соединений в Linux.
Эти команды обеспечивают необходимую функциональность для конфигурирования, устранения неисправностей и анализа сети в Linux. Для получения более подробной информации об их возможностях и использовании можно обратиться к соответствующим man-страницам или онлайн-документации по каждой команде.
В Linux можно изменять права доступа и владения файлами и каталогами с помощью команд chmod, chown и chgrp. Вот как можно использовать эти команды:
Изменение прав доступа
chmod
Команда chmod используется для изменения прав доступа к файлам и каталогам. Она поддерживает два режима работы: символьный и восьмеричный.
1. Символический режим:
Синтаксис: chmod [options] [permissions] file(s)
Примеры:
- Предоставьте права на чтение и запись владельцу: chmod u+rw file.txt
- Отозвать разрешение на выполнение у группы: chmod g-x script.sh
- Добавить права на чтение и выполнение другим: chmod o+rx program
- Объединение разрешений: chmod u=rw,go=r file.txt
2. Октальный режим:
Синтаксис: chmod [опции] [режим] файл(ы)
Примеры:
- Установите разрешения на чтение, запись и выполнение для владельца, группы и других: chmod 755 script.sh
- Ограничить права только для владельца: chmod 700 private.txt
- Предоставить полные права всем: chmod 777 public_dir
Смена собственника
chown
Команда chown используется для изменения прав собственности на файлы и каталоги.
- Синтаксис: chown [options] owner:group file(s)
Примеры:
- Изменение владельца и группы файла: chown john:users file.txt
- Рекурсивно изменить права собственности на каталог и его содержимое: chown -R alice:staff project_dir
chgrp
Команда chgrp используется для изменения групповой принадлежности файлов и каталогов.
- Синтаксис: chgrp [options] group file(s
Примеры:
- Изменение группы файла: chgrp developers script.sh
- Рекурсивно изменить групповую принадлежность каталога и его содержимого: chgrp -R team project_dir
В Linux изменить права доступа можно с помощью команды chmod. Разрешения определяют, кто может читать, записывать или исполнять файл. Вот как можно использовать команду chmod для изменения разрешений:
Синтаксис:
chmod [options] permissions file(s)
Варианты:
- -R или –recursive: Рекурсивно изменить разрешения для каталогов и их содержимого.
Разрешения:
- u (пользователь/владелец): Владелец файла.
- g (group): Группа, связанная с файлом.
- o (others): Пользователи, которые не являются ни владельцем, ни частью группы.
- a (all/everyone): Все пользователи, включая владельца, группу и других.
Каждое разрешение имеет три возможные настройки:
- r (read): Разрешение на чтение файла или просмотр содержимого каталога.
- w (write): Разрешение на модификацию или удаление файла или добавление/удаление файлов в каталоге.
- x (execute): Разрешение на выполнение файла или доступ к каталогу.
Примеры:
1. Предоставить владельцу права на чтение и запись:
chmod u+rw file.txt
2. Отозвать разрешение на выполнение у группы:
chmod g-x script.sh
3. Добавить права на чтение и выполнение другим пользователям:
chmod o+rx program
4. Установите разрешения на чтение и запись для владельца и разрешения только на чтение для группы и других пользователей:
chmod u=rw,g=r,o=r file.txt
5. Рекурсивно изменить разрешения для каталога и его содержимого:
chmod -R u+w project/
100 лучших команд LINUX
Конечно! Здесь приведен список из 100 наиболее часто используемых команд Linux с примерами:
- ls: Вывести список файлов и каталогов в текущем каталоге. Пример: ls
- cd: Сменить каталог. Пример: cd /path/to/directory
- Pwd: Вывести текущий рабочий каталог. Пример: pwd
- mkdir: Создать новый каталог. Пример: mkdir имякаталога
- rmdir: Удалить пустой каталог. Пример: rmdir имя каталога
- cp: Копирование файлов и каталогов. Пример: cp file.txt destination_folder/
- mv: Перемещение или переименование файлов и каталогов. Пример: mv file.txt new_file.txt или mv file.txt destination_folder/
- rm: Удалить файлы и каталоги. Пример: rm file.txt или rm -r directory/ (рекурсивно)
- cat: Конкатенировать и отображать содержимое файлов. Пример: cat file.txt
- less: Просмотр содержимого файла постранично. Пример: less file.txt
- head: Отображение первых нескольких строк файла. Пример: head file.txt
- tail (хвост): Вывести несколько последних строк файла. Пример: tail file.txt
- grep: Поиск шаблона в файлах. Пример: grep “pattern” file.txt
- find: Поиск файлов и каталогов. Пример: find /path/to/search -name “filename”
- chmod: Изменение прав доступа к файлам. Пример: chmod 755 file.txt (дает права на чтение, запись, выполнение владельцу, на чтение и выполнение – группе и другим)
- chown: Изменение прав собственности на файл. Пример: chown user:group file.txt
- tar: Архивирование файлов и каталогов. Пример: tar -cvf archive.tar file.txt (создание архива)
- gzip: Сжимать файлы. Пример: gzip file.txt (создает файл file.txt.gz)
- gunzip: Распаковать файлы, сжатые с помощью gzip. Пример: gunzip file.txt.gz
- wget: Загрузка файлов из Интернета. Пример: wget http://example.com/file.txt
- curl: Передача данных с сервера или на сервер. Пример: curl http://example.com
- ssh: Безопасное подключение к удаленному серверу. Пример: ssh user@remote_server
- scp: Копирование файлов между локальной и удаленной машинами. Пример: scp file.txt user@remote_server:/path/to/destination
- ping: Отправка эхо-запросов ICMP на сетевой хост. Пример: ping example.com
- ifconfig: Отображение или настройка сетевых интерфейсов. Пример: ifconfig
- netstat: Сетевая статистика. Пример: netstat -an
- ip: Показать или управлять маршрутизацией, устройствами, политикой маршрутизации и туннелями. Пример: ip addr show
- route: Показать или управлять таблицей IP-маршрутизации. Пример: route -n
- whois: Получение WHOIS-информации о домене. Пример: whois example.com
- uname: Вывести информацию о системе. Пример: uname -a
- ps: Отображение запущенных процессов. Пример: ps aux
- top: Мониторинг системных процессов в реальном времени. Пример: top
- kill: Завершение процессов по идентификатору или имени. Пример: kill 1234 или killall имя_процесса
- df: Сообщает об использовании дискового пространства файловой системы. Пример: df -h
- du: Оценить использование пространства файлов и каталогов. Пример: du -sh directory
- mount: Монтировать файловую систему или устройство. Пример: mount /dev/sda1 /mnt
- umount: Размонтировать смонтированную файловую систему. Пример: umount /mnt
- ln: Создание жестких или символических ссылок. Пример: ln -s /path/to/file имя_ссылки
- echo: Вывести сообщение. Пример: echo “Hello, world!”.
- date: Отображение текущей даты и времени. Пример: date
- history (история): Просмотр истории команд. Пример: history
- tar: Архивирование файлов и каталогов. Пример: tar -cvf archive.tar file.txt (создание архива)
- unzip: Распаковывать сжатые файлы в формате ZIP. Пример: unzip file.zip
- file: Определить тип файла. Пример: file file.txt
- awk: Язык сканирования и обработки шаблонов. Пример: awk ‘{print $1}’ file.txt
- sed: Потоковый редактор для фильтрации и преобразования текста. Пример: sed ‘s/foo/bar/’ file.txt
- wc: Подсчет строк, слов и символов в файле. Пример: wc -l file.txt
- sort: Сортировка строк текста. Пример: sort file.txt
- diff: Сравнивать файлы построчно. Пример: diff file1.txt file2.txt
- grep: Поиск шаблона в файлах. Пример: grep “pattern” file.txt
- tr: Транслировать или удалять символы. Пример: tr ‘a-z’ ‘A-Z’ file.txt
- cut: Удалять секции из строк файлов. Пример: cut -d ‘,’ -f 1 file.txt
- du: Оценка использования пространства файлов и каталогов. Пример: du -sh directory
- scp: Копирование файлов между локальной и удаленной машинами. Пример: scp file.txt user@remote_server:/path/to/destination
- ssh: Безопасное подключение к удаленному серверу. Пример: ssh user@remote_server
- man: Отображение страницы руководства для команды. Пример: man ls
- info: Просмотр информации и документации по команде. Пример: info имякоманды
- apt-get: Утилита для работы с пакетами для систем на базе Debian. Пример: apt-get install имяпакета
- yum: Менеджер пакетов для систем на базе RPM. Пример: yum install имяпакета
- systemctl: Управление системой systemd и менеджером сервисов. Пример: systemctl start service_name
- service: Запуск сценария инициализации System V. Пример: service service_name start
- chown: Изменить права собственности на файл. Пример: chown user:group file.txt
- chmod: Изменить права доступа к файлу. Пример: chmod 755 file.txt
- ln: Создание жестких или символических ссылок. Пример: ln -s /path/to/file имя ссылки
- tee: Перенаправление вывода на несколько файлов или команд. Пример: command | tee file.txt
- fg: Вывести фоновый процесс на передний план. Пример: fg %1
- bg: Отправить процесс в фоновый режим. Пример: bg %1
- alias: Создать псевдоним для команды. Пример: alias l=’ls -l’
- source: Выполнение команд из файла в текущей оболочке. Пример: source script.sh
- echo: Вывести сообщение. Пример: echo “Hello, world!”.
- export: Устанавливает переменные окружения. Пример:
export VARIABLE_NAME=value
. - env: Отображение текущих переменных окружения. Пример: env
- sleep: Задержка на заданное время. Пример: sleep 5 (сон в течение 5 секунд)
- su: Переключить пользователя или стать суперпользователем. Пример: su username или su – (переход к пользователю root).
- sudo: Выполнить команду от имени суперпользователя. Пример: sudo имякоманды
- passwd: Изменение пароля пользователя. Пример: passwd имяпользователя
- useradd: Создать нового пользователя. Пример: useradd username
- usermod: Изменение параметров учетной записи пользователя. Пример: usermod -aG имягруппы имяпользователя
- groupadd: Создать новую группу. Пример: groupadd имя_группы
- groupmod: Изменить настройки группы. Пример: groupmod -n new_group_name old_group_name
- crontab: Планирование выполнения команд в определенное время. Пример: crontab -e (редактирование заданий cron)
- at: Выполнение команд в указанное время. Пример: at 10:00AM (ввести команды и нажать Ctrl+D)
- shutdown (выключение): Выключить или перезагрузить систему. Пример: shutdown now (немедленно выключить систему)
- reboot (перезагрузка): Перезагрузить систему. Пример: reboot
- ifconfig: Отображение или настройка сетевых интерфейсов. Пример: ifconfig
- netstat: Сетевая статистика. Пример: netstat -an
- ip: Показать или управлять маршрутизацией, устройствами, политикой маршрутизации и туннелями. Пример: ip addr show
- route: Показать или управлять таблицей IP-маршрутизации. Пример: route -n
- iptables: Средство администрирования для фильтрации пакетов IPv4 и NAT. Пример: iptables -L (список правил межсетевого экрана)
- adduser: Интерактивный инструмент для добавления новых пользователей. Пример: adduser username
- deluser: Удаление учетной записи пользователя и связанных с ней файлов. Пример: deluser username
- passwd: Изменение пароля пользователя. Пример: passwd username
- crontab: Запланировать выполнение команд в определенное время. Пример: crontab -e (редактирование заданий cron)
- history (история): Просмотр истории команд. Пример: history
- file (файл): Определить тип файла. Пример: file file.txt
- hostname: Вывести или установить имя хоста системы. Пример: hostname
- uptime (время работы): Отображение времени работы системы. Пример: uptime
- dmesg: Печать или управление кольцевым буфером ядра. Пример: dmesg
- free: Отображение объема свободной и используемой памяти. Пример: free -h
- htop: Интерактивный просмотрщик процессов и системный монитор. Пример: htop