03. Осваиваем командную строку Linux для Ubuntu Server

Командная строка — это сердце администрирования серверов Linux. Независимо от того, новичок вы или опытный системный администратор, понимание основ администрирования из командной строки крайне важно для эффективного управления сервером Ubuntu. Эта статья представляет собой подробное введение в командную строку Linux и охватывает основные команды, инструменты и методы управления файлами, каталогами и серверной средой.


Предыдущая статья:

01. Введение в Ubuntu Server – SysOSX: AI & Cloud

02. Как настроить свой первый сервер Ubuntu: руководство для начинающих – SysOSX: AI & Cloud



Зачем изучать командную строку?

Командная строка Linux, доступ к которой осуществляется через терминал, — это мощный инструмент для взаимодействия с операционной системой. В отличие от графических интерфейсов, командная строка предлагает:

  • Скорость: Задачи можно выполнять быстрее с помощью команд, чем через графические интерфейсы.
  • Гибкость: Автоматизируйте процессы и выполняйте сложные операции с помощью сценариев.
  • Контроль: Получайте доступ к более глубоким функциям системы и эффективно устраняйте неполадки.

Доступ к командной строке на Ubuntu Server

Установки Ubuntu Server по умолчанию не включают графический интерфейс, поэтому всё взаимодействие происходит через терминал. Вот распространённые способы доступа к командной строке:

1. Прямой доступ через локальную консоль

После входа на сервер Ubuntu вам будет представлен интерфейс терминала.

2. Удалённый доступ по SSH

Используйте Secure Shell (SSH) для удалённого доступа к вашему серверу:

ssh username@server_ip


Основные команды Linux для начинающих

1. Навигация по файловой системе

Понимание иерархии файловой системы Linux крайне важно для управления файлами и каталогами.

Просмотр текущего каталога: pwd

Отображает текущий рабочий каталог:

pwd

Список содержимого каталога: ls

Выводит список файлов и каталогов в текущем расположении:

ls

Опции:

  • ls -l: Подробный список с правами доступа, владельцем и размером.
  • ls -a: Включает скрытые файлы (файлы, начинающиеся с .).

Смена каталога: cd

Переходит в другой каталог:

cd /path/to/directory

Примеры:

  • cd ..: Переход на один уровень вверх.
  • cd ~: Переход в домашний каталог.

2. Управление файлами и каталогами

Создание каталога: mkdir

Создаёт новый каталог:

mkdir directory_name

Пример: создайте структуру подкаталогов.

mkdir -p /home/user/documents/projects

Объяснение:

  • Опция -p создаёт родительские каталоги, если их нет (например, documents и projects).

Удаление каталога: rmdir

Удаляет пустой каталог:

rmdir directory_name

Пример:

rmdir /home/user/old_directory

Копирование файлов: cp

Копирует файлы или каталоги:

cp source_file destination_file

Пример: скопируйте файл в новый каталог.

cp /home/user/file.txt /home/user/backup/file.txt

Чтобы скопировать каталоги целиком:

cp -r /home/user/documents /home/user/backup/documents

Перемещение или переименование файлов: mv

Перемещает или переименовывает файлы:

mv old_name new_name

Пример: переименуйте файл.

mv file.txt renamed_file.txt

Перемещение файлов в другой каталог:

mv /home/user/file.txt /home/user/backup/

Удаление файлов: rm

Удаляет файлы или каталоги:

rm file_name

Пример: удалите файл.

rm /home/user/file.txt

Чтобы удалить каталоги и их содержимое:

rm -r /home/user/old_directory

Предупреждение: Будьте осторожны с rm, чтобы избежать случайных удалений.


3. Просмотр и редактирование файлов

Просмотр содержимого файла: cat

Отображает содержимое файла:

cat file_name

Пример:

cat /etc/hostname

Просмотр содержимого файла с постраничной разбивкой: less

Позволяет прокручивать содержимое файла:

less file_name

Пример:

less /var/log/syslog

Создание или редактирование файлов: nano

Удобный для начинающих текстовый редактор:

nano file_name

Пример: создайте новый файл или отредактируйте существующий.

nano /home/user/new_file.txt

Поиск текста в файлах: grep

Ищет определённую строку в файлах:

grep "search_term" file_name

Пример: найдите сообщения об ошибках в файле журнала.

grep "error" /var/log/syslog


4. Команды системного администрирования

Проверка использования диска: df

Отображает использование дискового пространства:

df -h

Опции:

  • -h: Человекочитаемый формат.

Проверка использования памяти: free

Показывает использование памяти:

free -h

Мониторинг системных процессов: top

Отображает запущенные процессы и использование системных ресурсов:

top

Альтернатива:

  • htop: Более удобный монитор процессов (устанавливается с помощью sudo apt install htop).

Управление службами: systemctl

Управляет системными службами:

sudo systemctl status service_name
sudo systemctl start service_name
sudo systemctl stop service_name
sudo systemctl restart service_name

Выключение или перезагрузка: shutdown

Выключите или перезагрузите сервер:

sudo shutdown now    # Immediate shutdown
sudo shutdown -r now # Immediate restart

5. Права доступа к файлам и владение

Linux использует модель прав доступа для контроля доступа к файлам и каталогам.

Просмотр прав доступа к файлу: ls -l

Отображает права доступа к файлам в подробном формате:

ls -l

Изменение прав доступа к файлу: chmod

Изменяет права доступа к файлам:

chmod 644 file_name

Изменение владельца файла: chown

Изменяет владельца файлов:

sudo chown new_owner:new_group file_name


6. Поиск файлов

Поиск файлов: locate

Команда locate по умолчанию не установлена. Сначала установите её:

sudo apt update
sudo apt install mlocate

Обновите базу данных:

sudo updatedb

Ищите файлы:

locate file_name

Поиск файлов: find

Ищет файлы по заданным критериям:

find /path -name "file_name"


7. Сетевые команды

Проверка сетевого подключения: ping

Проверяет подключение к хосту:

ping google.com

Проверка открытых портов: ss

Команда netstat устарела и по умолчанию не установлена. Используйте ss, современную альтернативу:

ss -tuln

Объяснение:

  • -t: Отображает TCP-соединения.
  • -u: Отображает UDP-соединения.
  • -l: Отображает прослушиваемые порты.
  • -n: Показывает числовые адреса и порты.

Проверка удалённого подключения: curl

Получает данные по URL:

curl http://example.com


Практические советы по администрированию из командной строки

1. Использование автодополнения по Tab

Нажмите Tab во время ввода команды или имени файла, чтобы автоматически дополнить пути или команды.

2. Использование команд истории

Доступ к ранее выполненным командам:

history

Выполнение определённой команды из истории:

!number

3. Перенаправление вывода

Сохранение вывода команды в файл:

command > output_file

4. Связывание команд

Запуск нескольких команд последовательно:

command1 && command2

Пример рабочего процесса: настройка веб-сервера

Вот пошаговое руководство по настройке веб-сервера с использованием базовых команд. Следуйте этим инструкциям, чтобы настроить свой собственный сайт и убедиться, что он заменяет страницу Apache по умолчанию.


1. Обновление системы

Поддержание системы в актуальном состоянии крайне важно для безопасности и стабильности. Выполните следующую команду, чтобы обновить все пакеты:

sudo apt update && sudo apt upgrade -y


2. Установка Apache

Установите веб-сервер Apache:

sudo apt install apache2 -y

После установки убедитесь, что Apache работает:

sudo systemctl status apache2

Вы должны увидеть сообщение о состоянии, например: Active: active (running).


3. Создание каталога для вашего сайта

Создайте каталог для хранения файлов вашего сайта. В этом примере мы создадим каталог с именем mywebsite:

sudo mkdir -p /var/www/mywebsite


4. Настройка прав доступа

Установите правильные права владения и доступа, чтобы Apache мог обращаться к файлам сайта:

sudo chown -R www-data:www-data /var/www/mywebsite
sudo chmod -R 755 /var/www/mywebsite

5. Создание примера HTML-файла

Добавьте простой файл index.html, который будет служить домашней страницей вашего сайта:

sudo tee /var/www/mywebsite/index.html > /dev/null << EOF
<!DOCTYPE html>
<html>
<head>
    <title>Welcome</title>
</head>
<body>
    <h1>Welcome to My Website</h1>
</body>
</html>
EOF

Так создаётся базовая страница с текстом: “Welcome to My Website”.


6. Настройка виртуального хоста

Чтобы обслуживать ваш собственный сайт, создайте новый файл конфигурации виртуального хоста для Apache:

sudo nano /etc/apache2/sites-available/mywebsite.conf

Вставьте в файл следующее содержимое:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/mywebsite
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Сохраните файл и выйдите из него, нажав Ctrl+O, а затем Ctrl+X.


7. Включение вашего сайта

Включите новую конфигурацию виртуального хоста:

sudo a2ensite mywebsite.conf

Отключите конфигурацию сайта Apache по умолчанию, чтобы обслуживался ваш сайт:

sudo a2dissite 000-default.conf

Перезагрузите Apache, чтобы применить изменения:

sudo systemctl reload apache2


8. Проверка подключения

Проверьте, работает ли ваш сайт, выполнив:

curl http://localhost

Вы должны увидеть HTML-содержимое вашего пользовательского файла index.html:

<!DOCTYPE html>
<html>
<head>
    <title>Welcome</title>
</head>
<body>
    <h1>Welcome to My Website</h1>
</body>
</html>

Либо откройте браузер и перейдите по адресу http://<your-server-ip>, чтобы просмотреть свой сайт.


Устранение неполадок

Если вы по-прежнему видите страницу Apache по умолчанию или сталкиваетесь с проблемами:

  • Убедитесь, что ваш сайт включён
    Убедитесь, что ваша конфигурация активна:
ls /etc/apache2/sites-enabled/ 
  • Вы должны увидеть mywebsite.conf. Если нет, включите его с помощью:
sudo a2ensite mywebsite.conf
  • Проверьте журналы Apache
    Ищите ошибки в журналах:
sudo tail -f /var/log/apache2/error.log
  • Перезапустите Apache
    Если проблема сохраняется, перезапустите Apache:
sudo systemctl restart apache2

Заключение

Овладение командной строкой Linux крайне важно для эффективного администрирования сервера Ubuntu. Изучая и практикуя эти команды, вы обретёте уверенность в управлении серверной средой, устранении неполадок и эффективном выполнении административных задач.

Следующие шаги: Управление пользователями и правами доступа

Когда вы освоитесь с основами администрирования из командной строки, следующим важным шагом в управлении сервером станет понимание пользователей, групп и прав доступа. Правильное управление учётными записями пользователей и контролем доступа крайне важно для поддержания безопасности и обеспечения того, чтобы только авторизованные лица могли получать доступ к конфиденциальным файлам и ресурсам на вашем сервере или изменять их.

В следующей статье, «Управление пользователями и правами доступа», мы рассмотрим:

  • Как создавать, изменять и удалять учётные записи пользователей.
  • Управление группами для эффективного контроля доступа.
  • Понимание прав доступа к файлам и каталогам (чтение, запись, выполнение).
  • Использование продвинутых инструментов, таких как sudo, для повышения привилегий.
  • Лучшие практики защиты учётных записей пользователей на Ubuntu Server.

Следите за обновлениями, чтобы получить практические рекомендации по усилению безопасности и управления доступом!

14 thoughts on “03.Mastering the Linux Command Line for Ubuntu Server”

Оставить комментарий