По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие
наши статьи:
Команды Linux могут показаться пугающими на первый взгляд, если вы не привыкли использовать терминал. Для выполнения операций и процессов в вашей системе Linux существует огромное количество команд.
Независимо от того, являетесь ли вы новичком в Linux или опытным пользователем, полезно иметь список общих команд под рукой. В этом руководстве вы найдете часто используемые команды Linux, а также загружаемую шпаргалку (так называемый cheatsheet) с синтаксисом и примерами.
Скачать PDF
Список команд Linux
Важное замечание: В зависимости от настроек вашей системы для выполнения некоторых из приведенных ниже команд может потребоваться запуск sudo.
Информация об оборудовании
Показать сообщения, которые выводило ядро во время загрузки:
dmesg
Показать информацию о процессоре:
cat /proc/cpuinfo
Показать свободную и использованную память с:
free -h
Список информации о конфигурации оборудования:
lshw
Показать информацию о блочных устройствах:
lsblk
Показать устройства PCI в древовидной схеме:
lspci -tv
Отображение USB-устройств в виде древовидной диаграммы:
lsusb -tv
Показать информацию об оборудовании из BIOS:
dmidecode
Показать информацию о диске:
hdparm -i /dev/disk
Провести тест скорости чтения на устройстве/диске:
hdparm -tT /dev/[device]
Проверка на нечитаемые блоки на устройстве/диске:
badblocks -s /dev/[device]
Поиск
Поиск определенного паттерна в файле:
grep [pattern] [file_name]
Рекурсивно искать паттерн в каталоге:
grep -r [pattern] [directory_name]
Найти все файлы и каталоги, связанные с конкретным именем:
locate [name]
Вывести список имен, начинающиеся с указанного символа a в указанном месте /folder/location, с помощью команды find:
find [/folder/location] -name [a]
Просмотр файлов, размер которых превышает указанный размер + 100M в папке:
find [/folder/location] -size [+100M]
Файлы
Список файлов в каталоге:
ls
Список всех файлов (включая скрытые):
ls -a
Показать каталог, в котором вы сейчас работаете:
pwd
Создать новый каталог:
mkdir [directory]
Удалить файл:
rm [file_name]
Удалить каталог рекурсивно:
rm -r [directory_name]
Рекурсивно удалить каталог без подтверждения:
rm -rf [directory_name]
Скопировать содержимое одного файла в другой файл:
cp [file_name1] [file_name2]
Рекурсивно скопировать содержимое одного файла во второй файл:
cp -r [directory_name1] [directory_name2]
Переименовать имя_файла1 в имя_файла2:
mv [file_name1] [file_name2]
Создать символическую ссылку на файл:
ln -s /path/to/[file_name] [link_name]
Создать новый файл:
touch [file_name]
Показать содержимое файла:
more [file_name]
Показать первые 10 строк файла:
head [file_name]
Показать последние 10 строк файла:
tail [file_name]
Зашифровать файл:
gpg -c [file_name]
Расшифровать файл:
gpg [file_name.gpg]
Показать количество слов, строк и байтов в файле:
wc
Навигация
Подняться на один уровень вверх в структуре дерева каталогов:
cd ..
Перейти в каталог $ HOME:
cd
Изменить местоположение на указанный каталог:
cd /chosen/directory
Сжатие файлов
Заархивировать существующий файл:
tar cf [compressed_file.tar] [file_name]
Извлечь заархивированный файл:
tar xf [compressed_file.tar]
Создайте сжатый gzip tar-файл:
tar czf [compressed_file.tar.gz]
Сжать файл с расширением .gz:
gzip [file_name]
Передача файлов
Скопировать файл в каталог сервера через ssh:
scp [file_name.txt] [server/tmp]
Синхронизировать содержимое каталога с резервным каталогом:
rsync -a [/your/directory] [/backup/]
Пользователи
Показать подробности об активных пользователях:
id
Показать последние системные логины:
last
Показать, кто в данный момент вошел в систему:
who
Показать, какие пользователи вошли в систему и их активность:
w
Добавить новую группу:
groupadd [group_name]
Добавить нового пользователя:
adduser [user_name]
Добавить пользователя в группу:
usermod -aG [group_name] [user_name]
Удалить пользователя:
userdel [user_name]
Изменить информацию о пользователе:
usermod
Установка пакета
Список всех установленных пакетов с yum:
yum list installed
Найти пакет по связанному ключевому слову:
yum search [keyword]
Показать информацию и краткую сводку о пакете:
yum info [package_name]
Установить пакет с помощью менеджера пакетов >YUM:
yum install [package_name.rpm]
Установить пакет с помощью менеджера пакетов >DNF:
dnf install [package_name.rpm]
Установить пакет с помощью менеджера пакетов >APT:
apt-get install [package_name]
Установить пакет .rpm из локального файла:
rpm -i [package_name.rpm]
Удалить пакет .rpm:
rpm -e [package_name.rpm]
Установить программное обеспечение из исходного кода:
tar zxvf [source_code.tar.gz]
cd [source_code]
./configure
make
make install
Процессы
Показать снимок активных процессов:
ps
Показать процессы в древовидной диаграмме:
pstree
Показать карту использования памяти процессами:
pmap
Показать все запущенные процессы:
top
Завершить процесс Linux с заданным идентификатором:
kill [process_id]
Завершить процесс с определенным именем:
pkill [proc_name]
Завершите все процессы, помеченные как proc:
killall [proc_name]
Список и сводка остановленных заданий в фоновом режиме:
bg
Перевод последней фоновой задачи в активный режим:
fg
Перевод конкретной задачи в активный режим:
fg [job]
Список файлов, открытых запущенными процессами:
lsof
Системная информация
Показать информацию о системе:
uname -r
Показать информацию о релизе ядра:
uname -a
Показать, как долго работает система, включая среднюю нагрузку:
uptime
Показать имя хоста системы:
hostname
Показать IP-адрес системы:
hostname -i
История перезагрузки системы:
last reboot
Показать текущее время и дату:
date
Запрос и изменение системных часов:
timedatectl
Показать текущий календарь (месяц и день):
cal
Список залогиненых пользователей:
w
Показать текущего пользователя:
whoami
Показать информацию о конкретном пользователе:
finger [username]
Использование диска
Показать свободное и использованное пространство на смонтированных системах:
df -h
Показать свободные иноды (inode) на смонтированных файловых системах:
df -i
Показать разделы диска, размеры и типы:
fdisk -l
Показать использование диска для всех файлов и каталогов:
du -ah
Показать использование диска в каталоге, в котором вы находитесь:
du -sh
Показать целевую точку монтирования для всей файловой системы:
findmnt
Смонтировать устройство:
mount [device_path] [mount_point]
SSH
Подключиться к хосту как пользователь:
ssh user@host
Подключиться к хосту через SSH порт по умолчанию 22:
ssh host
Подключиться к хосту, используя определенный порт:
ssh -p [port] user@host
Подключиться к хосту через telnet порт по умолчанию 23:
telnet host
Разрешение файлов
Назначить права на чтение, запись и выполнение всем:
chmod 777 [file_name]
Дать владельцу право на чтение, запись и выполнение, а также разрешение на чтение и выполнение для группы и других пользователей:
chmod 755 [file_name]
Назначить полное разрешение владельцу, а также разрешение на чтение и запись для группы и других пользователей:
chmod 766 [file_name]
Изменить владельца файла:
chown [user] [file_name]
Изменить владельца и групповое владение файлом:
chown [user]:[group] [file_name]
Сеть
Список IP-адресов и сетевых интерфейсов:
ip addr show
Назначить IP-адрес интерфейсу eth0:
ip address add [IP_address]
Отображение IP-адресов всех сетевых интерфейсов:
ifconfig
Показать активные (прослушиваемые) порты:
netstat -pnltu
Показать порты tcp и udp и их программы:
netstat -nutlp
Показать больше информации о домене:
whois [domain]
Показать DNS информацию о домене:
dig [domain]
Обратный поиск по домену:
dig -x host
Обратный поиск IP-адреса:
dig -x [ip_address]
Поиск IP для домена:
host [domain]
Показать локальный IP-адрес:
hostname -I
Скачать файл из домена с помощью команды wget:
wget [file_name]
Сочетания клавиш Linux
Убить процесс, запущенный в терминале:
Ctrl + C
Остановить текущий процесс:
Ctrl + Z
Вырезать одно слово перед курсором и добавить его в буфер обмена:
Ctrl + W
Вырезать часть строки перед курсором и добавить ее в буфер обмена:
Ctrl + U
Вырезать часть строки после курсора и добавить ее в буфер обмена:
Ctrl + K
Вставить из буфера обмена:
Ctrl + Y
Вызвать последнюю команду, которая соответствует предоставленным символам:
Ctrl + R
Запустите ранее вызванную команду:
Ctrl + O
Выйти из истории команд без выполнения команды:
Ctrl + G
Запустить последнюю команду еще раз:
!!
Выйти из текущей сессии:
exit
Заключение
Чем чаще вы используете команды Linux, тем лучше вы их запомните. Не переживайте о запоминании их синтаксиса - используйте наш шпаргалку.
А больше материалов про Linux можно найти в нашем разделе.
В сегодняшней статье научимся грамотно «вайпить» устройства MikroTik. Говоря простым языком – чистить и сбрасывать к заводским настройкам.
Казалось бы – ничего особенного, но давайте подумаем, почему это может быть важно. Дело в том, что устройства MikroTik очень рентабельны - некоторые может быть даже скажут неприлично дёшевы - поэтому капитальные затраты на модернизацию сетей, как правило, довольно низкие. Поэтому, в один момент может случиться такая ситуация, когда у вас окажется стопка MikroTik’ов, выведенных из продакшена, которая будет покоиться на полке и собирать пыль. Эти невостребованные устройства, в конечном итоге могут быть переданы кому-нибудь в тест, использоваться в лаборатории или же перепрофилированы под другие нужды.
Оказавшись в «неправильных» руках, роутер MikroTik может раскрыть немало конфиденциальной и чувствительной информации, если её предварительно не стереть. Несмотря на то, что много такой информации скрыто в конфигурации и просто так через консоль до неё не добраться, файлы .rsc, .backup, .rif, которые находятся в файловом хранилище, позволят потенциальному злоумышленнику получить к ней доступ. Этими файлами мы и займёмся в первую очередь.
Итак для того, чтобы удалить эти файлы через консоль вводим следующие команды:
/file
remove [find name~".rif"]
remove [find name~".txt"]
remove [find name~".rsc"]
remove [find name~".backup"]
Можно также воспользоваться утилитой WinBox, для этого в левом меню выберите опцию Files, перед Вами откроется файловое хранилище:
Если файлов слишком много можно воспользоваться фильтром по каждому типу файла - .rsc, .backup, .rif и .txt
Убедитесь, чтобы в файловом хранилище не осталось ни одного файла с форматами, приведёнными выше.
Внимание! Выполнение следующих действий по сбросу конфигурации без предварительной очистки файлового хранилища, показанной выше не удалит файлы с чувствительной информацией!
Теперь нам осталось только стереть конфигурацию устройства, для этого воспользуемся следующей командой:
/system reset-configuration keep-users=no skip-backup=yes
Или же через утилиту WinBox в меню слева откройте System → Reset Configuration
Подтвердите данное действие, после чего устройство удалит конфигурацию, перезагрузится и заново сгенерирует SSH ключи. После всех вышеописанных действий, можно считать, что роутер успешно сброшен к заводским настройкам.
Общий совет – если Вы выводите устройство из эксплуатации и отправляете на полку до лучших времён, то убедитесь в том, что на нём не осталось чувствительной информации, сделайте полный вайп, а его бэкап, на случай, если оно вдруг снова понадобится, храните в яйце яйцо в утке, утку в зайце, зайца в сундуке где-нибудь в другом месте :)
BGP (Border Gateway Protocol) - это протокол граничного шлюза, предназначенный для обмена информацией о маршрутизации и доступности между автономными системами (AS) в Интернете. Пока не пугайся - к тому, что такое автономная система мы еще вернемся.
Упрощая: BGP - это метод маршрутизации, который позволяет интернету функционировать. Без него вы бы не смогли выполнять поиск в гугле, даже посмотреть эту статью. Можно уверенно сказать, что BGP, наряду с DNS, являются самыми важными для Интернета протоколами.
Существует 2 типа BGP - iBGP для маршрутизации внутри сети, где i обозначает Internal и eBGP для внешней (External) маршрутизации, хотя его обычно называют просто - BGP.
Немного истории
Когда-то во всем интернете было всего лишь несколько сетей, связанных друг с другом статичными маршрутами. То есть админы вручную на роутерах прописывали маршрут до нужной сети - такой маршрут и называется статичным.
Но интернет недолго оставался маленьким. Стало появляться все больше и больше сетей, что потребовало динамического метода обмена информацией о маршрутах. Так появился EGP (Exterior Gateway Protocol) - протокол внешнего шлюза.
Это был простой протокол маршрутизации, который работал по древовидной иерархической топологии, то есть как веточки у дерева. Это когда чтобы добраться до точки E или F, A должен пройти через B, C и D.
Другими словами - при EGP, ни о какой интеллектуальной, как видосы на нашем канале, маршрутизации не могло быть и речи. И когда Интернет стал ещё больше, недостатки EGP стали очевидны всем. Так и появился BGP.
Autonomous System
В самом начале мы обещали вернуться к автономным системам: так вот Autonomous System или AS это сеть или набор подсетей, которые объединены общей внутренней политикой маршрутизации.
Внутри этих подсетей работает свой протокол маршрутизации, например OSPF или EIGRP. Это мы и называем внутренней политикой маршрутизации.
Автономными системами управляют отдельные организации, как правило - интернет-провайдеры, различные ВУЗы, коммерческие компании или крупные корпорации типа Google или Facebook.
Даже ты сейчас сидишь в какой-то AS. Вот например AS в которой находится наша база знаний wiki.merionet.ru.
Каждая AS имеет свой уникальный номер - AS Number (ASN) и диапазон IP адресов, то есть подсеть. А BGP обеспечивает обмен информацией о маршрутах между этими системами.
BGP в деталях
Так как на BGP возложена великая задача – соединение автономных систем во всем Интернете, то он должен быть очень надежным. Так что в самом начале работы, BGP-маршрутизатор инициирует установление TCP сессии на 179 порт к своему соседу
Если TCP-сессия установлена успешно, то BGP-маршрутизаторы начинают обмен сообщениями OPEN в котором сообщают свои номер автономной системы (ASN), идентификатор маршрутизатора, который называется RouterID и Hold timer.
Hold timer это время, в течение которого будет поддерживаться TCP-сессия. Если одному роутеру что-то не понравится, например не совпадёт информация о номере AS, то сообщением NOTIFICATION он уведомит об этом своего соседа и сбросит TCP-сессию.
Соединение по BGP должно быть абсолютно согласовано администраторами автономных систем, желающих организовать стык.
Если, скажем, администратор AS1 запустил процесс BGP на маршрутизаторе R1 указав в качестве соседа R2 и его ASN, а администратор AS2 ничего не настроил, то TCP-сессия не поднимется и системы так и останутся несвязными. Да, все верно, администраторы настраивают BGP вручную.
Если же все условия соблюдаются, то маршрутизаторы, с определенным интервалом, начинают слать друг другу сообщения KEEPALIVE, означающие “Я ещё жив и со мной можно работать!”
Наконец, маршрутизаторы могут приступать к обмену маршрутной информацией по средствам сообщения UPDATE. Структура данного сообщения делится на две части:
Path Attributes (Атрибуты пути) - здесь указывается из какой AS поступил маршрут, его происхождение и следующий маршрутизатор для данного пути.
NRLI (Network Layer Reachability Information) - здесь указывается информация о сетях, которые нужно добавить в таблицу маршрутизации, т.е IP-адрес сети и ее маска.
Сообщение UPDATE будет передаваться каждый раз, когда один из маршрутизаторов получит информацию о новых сетях, а сообщение KEEPALIVE на протяжении всей TCP-сессии.
BGP принимает решения о наилучшем пути на основе текущей сложности маршрута, количестве хопов (то есть точек маршрутизации) и других характеристик пути. BGP анализирует все данные и устанавливает одного из своих соседей в качестве следующей остановки для пересылки пакетов в определенную сеть.
Каждый узел управляет таблицей со всеми известными ему маршрутами для каждой сети и передает эту информацию своим соседним автономным системам. Таким образом, BGP позволяет роутерам собирать всю информацию о маршрутизации из соседних автономных систем и далее анонсировать эту информацию соседям.
Именно таким образом и работает маршрутизация во всем Интернете.
Сбои в работе BGP ни раз приводили к недоступности целых частей Интернета. Помнишь как в октябре 2021 во всем мире прилёг Facebook, а с ним и остальные его сервисы - Instagram, WhatsApp?
Это случилось потому, что из-за ошибки инженеров, информация о маршрутах к серверам Facebook, которая рассылается, как ни странно, по протоколу BGP, была удалена, а это вызвало невозможность разрешения доменного имени Facebook по DNS. Дошло до того, что инженерам FB пришлось выпиливать двери в серверную, чтоб всё починить, потому что система пропусков тоже была завязана на их сервисы и не работала!