- Основные команды терминала Linux Ubuntu Server
- Команды терминала Linux
- Некоторые аспекты управления VDS-сервером под Linux
- Содержание
- Базовые команды по управлению Nginx
- Управление сервером
- Установка супервизора
- Анализ свободного места на диске
- Поиск файлов командой find
- Тестирование TCP и UDP-соединений
- Сканирование портов
- Пересылка сообщений и файлов
- Добавление и удаление пользователей
Основные команды терминала Linux Ubuntu Server
В данной статье перечислены основные, для работы, команды терминала Linux Ubuntu Server. Также здесь представлены примеры этих команд с различными ключами. Статью можно условно назвать «30 полезных команд терминала Linux».
В прошлой статье «Основы Linux Server для начинающих» мы познакомились с серверной операционной системой Ubuntu Server 10.10, узнали ее особенности, а также рассмотрели некоторые из команд, которые Вам понадобятся для первоначальной работы, но как Вы понимаете для полноценного управления сервером этого конечно недостаточно. Все начинающие системные администраторы обязаны знать, какие команды и программы представлены в Ubuntu Server, и не просто знать, а уметь ими пользоваться.
Здесь мы с Вами рассмотрим основные команды и программы, которыми, если Вы будете работать с Linux, Вы обязательно будете пользоваться.
Сразу хотелось бы отметить, что практически у всех команд, программ, которые используются в Linux, есть специальные «ключи» (или их еще называют «опции») и параметры. Для чего они нужно, сейчас попробую объяснить.
Программа, которую Вы запускаете, выполняет определенную задачу, а «ключи» указывают ей как эту задачу выполнить, т.е. вносят свои коррективы, критерии, условия. Также некоторым программам, чтобы выполнить свою задачу, необходимо своего рода сырье, с которым нужно проработать, «параметры» как раз и нужны, для того чтобы давать это сырье, например, при операции копирования необходимо указать что копировать, так вот то, что Вы укажите в качестве копирования (файл, папку) и будет параметром.
Для каждой команды Вы можете сами посмотреть необходимые ключи, и что они делают с помощью встроенной документации. Для этого служит команда man, например, Вы хотите узнать, что делает команда ls, введите следующее и получите весь manual.
Команды терминала Linux
Ну а теперь перейдем непосредственно к самим командам.
1. Начнем с команды ls. Она нужна, для того чтобы Вы могли посмотреть, что у Вас находится в текущем каталоге (файлы и папки). Пример, Вы только что загрузились и перед Вами командная строка, на самом деле Вы находитесь в своем домашнем каталоге и для того чтобы посмотреть, что в нем находится, введите следующее.
- -1 ключ, который выводит список файлов и папок в столбик;
- -l ключ, который показывает дополнительную информацию о файлах и папках;
- -h ключ, показывает размеры файлов и папок в более читабельном виде;
- -a ключ, который показывает скрытые файлы и папки.
Сразу советую попробовать поэкспериментировать с ключами (т.е. например, введите команду без параметров, а потом добавляйте по одному и увидите существенное отличие).
2. Следующая команда cd. Она используется для перехода в каталог, например:
Где, test — это каталог, в который Вы хотите перейти, но помните, в данном случае каталог test находится в Вашем домашнем каталоге, в других случаях Вам необходимо писать полный путь до каталога, например для перехода в каталог /etc/test введите следующее.
После того как Вы поработали в одном из каталогов, Вам скорей всего захочется перейти в домашний каталог, это делается с помощью команды cd без параметров.
3. Чтобы определить в каком каталоге Вы сейчас находитесь, используйте следующую команду без параметров и ключей.
4. Далее научимся создавать эти самые каталоги, а создаются они с помощью команды mkdir. Например, для того чтобы создать в домашнем каталоге папку test введите следующее.
Где, test — это название каталога.
5. Теперь удалим созданный каталог, используя следующую команду.
Где, test название Вашего каталога, который Вы хотите удалить. Также можно еще прописать ключ –f для форсированного удаления (т.е. без всяких подтверждений).
6. Каталоги создавать и удалять научились, теперь научимся создавать файлы, напишите следующую команду.
- touch — это команда для создания файла;
- test – это название файла (для проверки того, что файл создался, используйте команду ls).
7. Для удаления какого-нибудь файла или каталога используйте следующую команду.
Где, test название Вашего каталога, для форсированного удаления пропишите все тот же ключ -f
8. Теперь давайте запишем что-нибудь в этот файл, используем редактор nano, например, введите.
откроется чистый лист, напишите что-нибудь и нажмите ctrl+o (для сохранения) подтвердите сохранение, а для выхода из редактора нажмите ctrl+x
9. А для того чтобы проверить сохранилось ли то, что Вы написали в файле test, используйте команду cat, т.е.
Где, test название Вашего файла. Команда cat как раз используется для чтения стандартного ввода, т.е. может легко читать файлы (Совет! посмотрите man по этой команде, у нее много ключей, которые можно использовать в различных ситуациях).
10. Теперь допустим, Вам ненужно читать весь файл (так как он допустим большой 1000 строк и больше), Вы можете прочитать только первые 10 строк с помощью команды head, например.
у команды head есть ключи, например Вы, хотите прочитать первые 100 строк.
Где, –n100 количество строк, которые необходимо прочитать.
11. Теперь рассмотрим обратную ситуацию, Вам необходимо прочитать 10 последних строк, для этого введите следующее.
- tail – команда, которая читает последние 10 строк файла;
- /etc/services – сам файл.
Также можете использовать ключи, например.
Где, -n100 – будет количество последних строк.
Или также можно написать вот так.
Где, -n +560 – это показать последние строки, начиная с 560.
12. Теперь Вы, наверное, догадались, а как же нам узнать количество строк, это легко можно сделать с помощью команды.
После запуска Вам покажут 3 числа, где первое — это количество строк в файле, второе – это количество слов, а третье — это количество символов. У данной команды есть ключи:
- -l только строки;
- -w только слова;
- -c только символы.
В качестве альтернативы можете использовать команду cat с ключом –n, где на экран Вам выведут все содержимое файла с пронумерованными строками, тоже иногда требуется.
13. А сейчас давайте научимся копировать каталоги и файлы, делается как всегда очень легко.
Где, test1 это файл, который Вы хотите скопировать, а test2 файл в который Вы хотите копировать, полезна тогда, если вдруг Вам нужно создать файл практически с одним содержимым, используйте эту команду чтобы не перепечатывать заново. Каталоги копируются с использованием такого же принципа.
14. Перемещение или переименование происходит практически также, только с помощью другой команды.
Применяется как для файлов, так и для каталогов.
15. Теперь перейдем к более нужному и полезному в повседневной работе, и начнем мы со следующей команды.
Это как бы диспетчер задач в Windows, он показывает текущую информацию о Вашей системе, например: использование оперативной памяти, список запущенных процессов и многое другое.
16. А если Вам необходимо узнать только информацию об оперативной памяти Вы можете использовать следующую команду.
17. Иногда нужно узнать текущую дату и время на компьютере или изменить ее, для этого используется команда.
Для того чтобы изменить время на компьютере используйте ключ –s например, давайте поменяем текущее время на 12:30:00 для этого введите вот это.
18. Перейдем к сетевым командам и начнем со следующей команды.
Она показывает информацию о сконфигурированных сетевых устройствах.
19. Следующая команда
это таблица маршрутизации.
20. Если Вам необходимо узнать сетевое имя компьютера наберите вот это.
21. Для просмотра статистики по сетевым интерфейсам можно использовать команду.
а если использовать ее с ключами –rn, то получится, то же самое что и команда route.
22. Теперь поговорим о таком вопросе, который всех интересует – как убить процесс в linux? Сразу скажу, что в Linux для завершения процесса используются так называемые сигналы, которые посылают ядру команду типа с каким параметром необходимо завершить тот или иной процесс. Для завершения процесса используется команда kill с разными сигналами. Для того чтобы узнать, какие сигналы в системе есть, введите следующее.
Где, –l ключ, который показывает список сигналов в системе.
Самыми часто используемыми сигналами в Linux Ubuntu являются сигналы: 15, 2, 3, 9 все эти сигналы используются для завершения процесса, а почему, Вы спросите, они расположены в таком порядке? сейчас объясню, 15 сигнал самый корректный сигнал для завершения процесса, т.е. при таком сигнале система попытается сохранить все данные и т.д., а 9 самый жесткий, т.е. системе абсолютно наплевать на все, она просто и безжалостно убивает процесс. Исходя из этого, можно сделать вывод о том, что сигналы расположены именно в порядке корректности завершения процесса. Для того чтобы завершить процесс необходимо указать его имя или pid. Например, завершим процесс test, у него pid 30, с помощью сигнала 9.
23. Поговорим о жестких дисках. Для того чтобы получить информацию о состоянии жестких дисков, т.е. размер и так далее используйте команду df, например.
Где, –h используется для удобства, т.е. информация показывается в мегабайтах.
24. Для того чтобы узнать, сколько весит отдельная папка, все файлы в ней по отдельности, используйте следующую команду.
- du – сама команда;
- -h – ключ, который округляет килобайты до мегабайт;
- test – каталог, который Вы хотите проверить.
25. Также для работы с жесткими дисками используется команда fdisk, например, Вам необходимо узнать информацию обо всех разделах на жестком диске, для этого используйте следующее.
где, — l ключ, который показывает информацию обо всех разделах.
Для того чтобы создавать разделы на жестком диске введите вот это.
где, /dev/sda – путь к жесткому диску.
Этой командой Вы войдете в программу, в которой и будете создавать разделы.
26. Но для начала Вам необходимо смонтировать этот жесткий диск, делается это следующим образом.
- mount – сама команда монтирования;
- /dev/sdb – путь к тому, что мы хотим монтировать;
- /mnt/ — путь, куда мы будем это монтировать.
27. Как не сложно догадаться размонтировать можно с помощью команды umount.
28. Вот мы смонтировали диск, теперь хотим создать файловую систему, делается это так.
- mkfs – сама команды создания файловой системы;
- ext3 – тип файловой системы (в linux намного больше типов файловых систем, чем в Windows);
- /dev/sdb – для какого блочного устройства Вы хотите создать файловую систему.
29. Теперь поговорим о ядре, для того чтобы узнать версию ядра введите следующее.
А для полной информации о ядре используйте ключ –a.
30. Для того чтобы узнать список загруженных в ядро всех модулей используйте команду.
На заметку! Если Вы хотите научиться пользоваться Linux на домашнем компьютере без использования командной строки, то рекомендую почитать мою книгу – « Linux для обычных пользователей »
Вот мы с Вами и рассмотрели 30 полезных команд Ubuntu Server. Надеюсь, материал был Вам полезен, пока!
Источник
Некоторые аспекты управления VDS-сервером под Linux
VDS (Virtual Dedicated Server) — услуга, в рамках которой пользователь получает виртуальный выделенный сервер с максимальными привилегиями. Это эмуляция реального физического сервера, у него есть рутовый доступ, возможность установки произвольных операционных систем и любого софта. При этом он обходится значительно дешевле аренды сопоставимого по мощности физического сервера.
На сервер можно поставить ОС со своего образа или воспользоваться готовым образом в панели управления.
Предположим, мы поставили Debian 10 и веб-сервер Nginx, который идёт в стандартном репозитории ( apt install nginx ). Давайте посмотрим, какие полезные утилиты и команды помогут в управлении сервером под Linux. Рассмотрим и отдельно Nginx, и сам VDS-сервер в целом.
Содержание
Или просто вводим IP-адрес сервера в браузере:
Если мы ещё не скопировали на сервер файлы своего сайта, то будет показана стандартная заглавная страница Nginx.
Базовые команды по управлению Nginx
Примечание. Если пользователь не имеет рутовых прав, то для выполнения каждой команды он должен получить рутовые привилегии с помощью команды sudo .
В случае запуска от имени root, команда такая:
Запуск после остановки:
Остановка и повторный запуск (перезапуск):
Если вы просто внесли некие изменения в конфигурацию, Nginx может перегрузиться без потери текущих соединений. Это делается следующей командой:
По умолчанию, Nginx сконфигурирован на автоматический запуск при загрузке сервера. Такое поведение можно изменить следующей командой:
Снова включить автозапуск Nginx при загрузке сервера:
По умолчанию в Nginx сконфигурирован один набор правил server blocks для одного домена. Предполагается, что на вашем сервере размещается только один сайт. По умолчанию он должен располагаться в директории /var/www/html .
Предположим, что вы хотите создать в Nginx несколько наборов правил server blocks для нескольких сайтов или переместить файлы текущего сайта в другую директорию /var/www/your_domain .
Это делается следующими командами.
Сначала создаём нужную директорию на сервере.
Затем назначаем владельца этой директории с помощью переменной $USER , которая должна соответствовать текущему пользователю:
Размещаем в указанной директории главную страничку index.html .
Потом нужно создать соответствующий набор правил для Nginx. В любом текстовом редакторе создаём файл /etc/nginx/sites-available/your_domain и копируем туда конфигурацию из файла по умолчанию, только с изменённым адресом и доменом:
В конце концов, активируем эту конфигурацию, прописав симлинк к новому конфигурационному файлу в директории sites-enabled , которую Nginx считывает при загрузке:
После перезагрузки Nginx будет выдавать соответствующую страницу на запросы your_domain и www.your_domain .
Управление сервером
Какие вопросы чаще всего возникают у пользователей при управлении Linux-сервером? Какие инструменты можно порекомендовать даже не очень опытным администраторам?
Установка супервизора
Supervisor — это система клиент/сервер, при помощи которой администратор контролирует процессы на сервере. Инструмент создает процессы в виде подпроцессов от своего имени.
Установка supervisord в Debian или Ubuntu предельно простая:
После этого демон супервизора уже запущен и будет запускаться при каждой загрузке системы.
Новые программы передаются в супервизор через конфигурационные файлы в директории /etc/supervisor/conf.d . Например, для скрипта long.sh конфигурационный файл может выглядеть следующим образом:
Соответственно, скрипт будет автоматически запускаться при каждой загрузке системы и автоматически перезапускаться в случае выхода. Это значение может быть ‘false’ (не перезапускаться) или ‘unexpected’ (перезапускаться только в случае выхода с неожиданным кодом ошибки, по умолчанию, с любым кодом, кроме 0 или 2).
Две последние строчки — адреса журналов. Это минимальный шаблон конфигурации для программы в супервизоре.
После создания файла конфигурации для конкретной программы запускаем две команды, чтобы супервизор перечитал и применил новые конфигурации:
На этом этапе наша программа или скрипт уже должны запуститься, что можно проверить по логам.
В утилите supervisorctl есть интерактивный режим, в котором она запускается без аргументов:
В этом режиме supervisorctl изначально выводит статус и время работы всех программ под управлением супервизора, а потом свю командную строку. Там можно ввести help — и увидеть список доступных команд:
Как видим, можно запускать, останавливать и перезапускать программы из командной строки с помощью команд start, stop и restart.
Выход из супервизорпа осуществляется по Ctrl-C или командой quit:
Анализ свободного места на диске
Стандартная утилита для просмотра информации о смонтированных разделах — это df . Она выводит список подключенных устройств и информацию о занятом месте.
Параметр -h активирует режим читаемого человеком вывода (то есть в мегабайтах или гигабайтах):
Информация о конкретной директории (например, /home):
Информация о разделах с заданной файловой системой:
Поиск файлов командой find
Поиск по названию файла:
Поиск по названию без учёта регистра:
«Обратный» поиск файлов, которые не соответствуют указанному шаблону:
Поиск по типу файла
Некоторые из распространённых дескрипторов::
- f — обычный файл
- d — директория
- l — символическая ссылка
- c — файлы устройств посимвольного ввода-вывода
- b — файлы устройств блочного ввода-вывода
Например, следующая команда выведет все устройства посимвольного ввода-вывода, установленные в системе:
Есть фильтр по размеру и времени доступа/изменения. Например, вот команда для поиска всех файлов менее 50 байт:
Поиск всех файлов более 700 мегабайт:
Для поиска по времени доступа, модификации или изменения метаинформации файла используются параметры ‘-atime’, ‘-mtime’ и ‘-ctime’ с символами плюса и минуса для указания диапазона больше и меньше указанного, соответственно.
Поиск файлов, которые были модифицированы менее суток назад:
Файлы с временем доступа более трёх суток назад:
Файлы, которые изменялись за последнюю минуту:
Файлы, которые новее указанного файла:
Доступен поиск по владельцу (‘-user’, ‘-group’) и по файлам с конкретными разрешениями (‘-perm’). На всех найденных файлах можно сразу провести какое-нибудь действие (‘-exec’).
Тестирование TCP и UDP-соединений
В комплекте Linux идёт большое количество полезных утилит. Некоторые системные администраторы способны выполнять большинство задач, пользуясь только встроенным инструментарием, без установки дополнительных программ. Настоящий швейцарский нож среди встроенных инструментов Linux — сетевая утилита netcat . Общий синтаксис:
Эта команда инициирует TCP-соединение на заданный хост по указанному порту. Если вместо TCP нужно протестировать UDP-соединение, то указываем опцию -u :
В большинстве систем можно писать как netcat , так и nc .
Сканирование портов
Одно из типичных применений netcat — сканирование портов, опция -z означает сканирование вместо установления соединения. Используем её вместе с опцией -v для выдачи более детальной информации при сканировании портов с 1 до 1000:
Выдача будет выглядеть примерно так:
Впрочем, для этой задачи имеется более продвинутая, специализированная программа nmap . Устанавливаем её:
Эта утилита выдаёт более подробную информацию о портах. Реестр известных портов /usr/share/nmap/nmap-services содержит более 20 тысяч строк, в том числе дополнительные поля, такие как средняя частота открытия конкретного порта на серверах в интернете (третья колонка):
Не рекомендуется запускать сканирование портов чужого сервера, поскольку администратор системы может принять такие действия за враждебные. Nmap предназначен для исследования своего собственного сервера, а поэкспериментировать можно на специально предназначенном для тестовых целей сервере scanme.nmap.org .
Некоторые команды требует длительного времени для выполнения.
Сканирование операционной системы на хосте:
Сканирование диапазона хостов от xxx.xxx.xxx.xxx до yyy.yyy.yyy.yyy:
Сканирование сетевого диапазона с поиском доступных сервисов:
Сканирование конкретного порта:
Сканирование всех открытых портов TCP и UDP:
Изучение версий ПО, работающего на хосте:
Есть много других команд, параметров и вариантов использования nmap. Сканирование портов своего VDS-сервера позволяет определить потенциальные векторы атак и уязвимости, поскольку злоумышленник начнёт свои действия именно со сканирования.
Пересылка сообщений и файлов
С помощью ключа -l можно поставить на прослушивание конкретный порт на сервере:
На другой машине мы указываем подключиться к машине по данному порту:
Теперь между двумя системами установлен канал связи. По нему можно передавать текстовые сообщения.
Таким способом можно даже передать файл. Для этого команду прослушивания направляем сразу в файл:
На другом компьютере вместо текстового сообщения подаём на вход оригинальный файл:
Аналогично можно передавать самые разные вещи, например, содержимое директорий, заархивированное на лету в tarball :
Таким же способом можно на одной стороне создать образ диска ( dd ), отправить его в указанный порт по созданному TCP-соединению — и принять на другой системе.
Добавление и удаление пользователей
Для добавления, удаления пользователей и выдачи им привилегий sudo нужно для начала подключиться к серверу как root:
После этого добавляем пользователя:
Изначально у него нет никаких привилегий. Но если это основной пользователь системы, то мы можем назначить ему административные привилегии, чтобы он мог выполнять рутинные задачи по обслуживанию и поддержке сервера.
Для назначения административных привилегий нужно добавить пользователя в группу sudo. Пользователям из этой группы разрешено запускать команду sudo с повышением своих привилегий до административных.
Вместо user1 указываем имя пользователя, которого добавили ранее. Теперь он сможет запускать любые команды через sudo :
Имея такие права, этот пользователь может удалять других пользователей:
Опция —remove-home удаляет также и домашнюю директорию пользователя.
Сам root имеет право выполнить команду deluser без sudo .
Конечно, здесь далеко не полный список полезных инструментов для управления VDS-сервером. Но эти вопросы часто возникают у начинающих системных администраторов, которые подняли свой первый сервер, поставили ОС и начинают разбираться в мире Linux-администрирования.
Источник