Главная страницаSelf-HostingОсновы работы в Linux
Основы работы в Linux

Основы работы в Linux

Основы работы в терминале

Ввод команд

  • Текстовый ввод: Просто напечатайте команду, которую хотите выполнить, и нажмите Enter. Например: ls -l (показать содержимое текущей директории в подробном виде).
  • Пробелы: Пробелы разделяют аргументы команды. Например, ls -l /home/user (показать содержимое директории домашнего каталога пользователя user).

История команд

  • Просмотр истории: Клавиша Up Arrow (стрелка вверх) для просмотра предыдущих команд.

Автодополнение (Tab):

  • Автодополнение файла/директории: Начните вводить имя файла или директории, а затем нажми клавишу Tab. Если имя уникально, терминал автоматически завершит его для тебя. Если вариантов несколько, то нажать Tab дважды, и он предложит варианты.
  • Автодополнение команды: То же самое работает и для команд. Например, начните вводить git co и нажми Tab. Терминал предложит git commit, git checkout и т.д.

Запуск исполняемого файла

У файлы должны быть права на запуск.

  • Используя путь: Просто введите полный путь к файлу и нажмите Enter. /usr/bin/ls -l
  • Использование . (точка) для текущей директории: ./my_script.sh

Копирование и вставка текст

Если вы работаете с Linux-сервером через SSH, задача копирования и вставки текста может оказаться сложнее, чем кажется на первый взгляд. Часто, то, что работает локально на вашем компьютере, не срабатывает в терминале сервера.

Почему это может не работать

  • Отсутствие графического окружения: Большинство терминалов, используемых через SSH, работают в текстовом режиме. Клавиши Ctrl + C и Ctrl + V могут быть переназначены или просто не поддерживаться в этом режиме. Они обычно предназначены для графического интерфейса. Ctrl + C в терминале обычно прерывает текущую запущенную команду.
  • Нестандартная конфигурация терминала: Некоторые серверы используют нестандартные терминальные эмуляторы, которые не соответствуют стандартным командам.
  • Неправильная настройка буфера обмена: Иногда буфер обмена на сервере не настроен должным образом, и он не может передавать текст в другие приложения.

Копирование в буфер обмена

На большинстве терминалов:

  • Выделение текста: Выделите мышкой нужный текст в терминале, обычно выделенный текст сразу окажется в буфере обмена без нажатия дополнительных клавиш.
  • Копирование: Ctrl + Shift + C (или Ctrl + Insert) — обычно копирует выделенный текст в буфер обмена.
  • Вставка: Ctrl + Shift + V (или Ctrl + Insert) — для вставки текста из буфера обмена.

Текстовые редакторы

При работе в консоли Linux вам неизбежно придется редактировать файлы. Ниже представлен небольшой обзор основных текстовых редакторов.

nano

Легкий, простой в использовании, не требует root-прав для большинства операций. Идеален для быстрых изменений в файлах. Обычно уже установлен в системе.

Основные команды:

  • sudo apt install nano — Установка, если вдруг редактор не установлен
  • nano filename.txt — Открывает файл filename.txt для редактирования.
  • Ctrl + X — Сохранить изменения и выйти.
  • Ctrl + O — Сохранить изменения.
  • Ctrl + R — Вернуться к последней сохраненной версии.
  • Ctrl + G — Показать меню с дополнительными опциями (например, поиск, замена).
  • Ctrl + W — Перейти к слову.

mcedit

Удобный встроенный текстовый редактор, который входит в состав файлового менеджера Midnight Commander (mc).

  • sudo apt install mc — Установка
  • mcedit filename.txt — Открытие или создание нового файла.
  • F2 — Сохранение файла.
  • F7 — Поиск по файлу.
  • F8 — Удаление строки.
  • F10 — Выход.

vi или vim

Один из самых мощных редакторов, используется во многих Unix-подобных системах. Он требует определенного времени для освоения, но позволяет очень эффективно редактировать файлы, не рекомендуется для новичков.

Основные команды: (В режиме нормального режима)

  • i — Ввести режим вставки (можно добавлять текст)
  • Esc — Вернуться в режим нормального режима.
  • :w — Сохранить изменения.
  • :q — Выйти из редактора.
  • :wq — Сохранить и выйти.
  • /pattern — Поиск по тексту.
  • n — Следующий результат поиска.
  • N — Предыдущий результат поиска.

Команды в Linux

В Linux (и многих других операционных системах) команда – это инструкция, которую вы даете операционной системе, чтобы выполнить определенное действие. Обычно команды вводятся через терминал (также известный как консоль).

Флаги команд

Флаги (или опции) команд – это специальные аргументы, которые вы добавляете к команде, чтобы изменить её поведение или добавить дополнительные функции.

Как они работают

  • После команды: Флаги обычно добавляются после названия команды, разделяясь пробелами. Например: ls -l
  • Изменяют поведение: Флаги не являются значениями, которые команда принимает. Они изменяют, как команда себя ведет.
  • Определяются командой: Команда знает, какие флаги она поддерживает и как интерпретировать их.

Примеры:

  • ls -l: -l (lowercase L) говорит ls выводить информацию в длинном формате.
  • grep "слово" файл.txt: grep ищет «слово» в файле.

Типы флагов:

  • Опции вывода: Изменяют, как команда отображает информацию (например, формат вывода).
  • Указатели: Изменяют, что команда делает (например, выбирает, какой файл обрабатывать).

Короткие и длинные флаги

По сути, большинство коротких и длинных флагов соответствуют одному и тому же значению. Когда вы используете -v (короткий флаг) или --verbose (длинный флаг), вы, как правило, получаете тот же эффект – включение подробного вывода информации.

  • Короткие флаги: Это односимвольные флаги, обычно начинающиеся с одного символа без пробелов. Например, -v в команде ls означает «verbose» (подробный вывод).
  • Длинные флаги: Это слова, состоящие из нескольких слов, начинающиеся с --. Например, --verbose в команде ls также означает «verbose».

Флаги — мощный инструмент для настройки команд в Linux, позволяющий адаптировать их к конкретным потребностям.

sudo и su

sudo позволяет выполнять команды с правами суперпользователя (root). Root – это пользователь, который имеет полный контроль над системой. Обычно, вы не можете выполнять команды, требующие прав root, без использования sudo.

Зачем нужно sudo?

Представьте, что вы хотите установить какое-то новое программное обеспечение. Для этого часто требуются права администратора. Использование sudo позволяет сделать это, не входить в систему под учетной записью root, что гораздо безопаснее.

Как использовать sudo?

  • Синтаксис: sudo команда
    • Например: sudo apt update (Обновляет список доступных пакетов в Ubuntu)
  • Запрос пароля: Когда вы используете sudo, система запросит ваш обычный пароль пользователя. После ввода пароля, команда будет выполнена с правами root.
  • Примеры:
    • sudo apt install <название_пакета> — Установить пакет из репозитория.
    • sudo reboot — Перезагрузить компьютер.
    • sudo nano /etc/hosts — Открыть файл /etc/hosts в текстовом редакторе (nano).
    • sudo shutdown -h now — Выключить компьютер.

Почему не стоит работать из под root?

Может возникнуть закономерный вопрос, зачем использовать команду sudo, если можно работать из под пользователя root?

Работа под пользователем root напрямую в Linux – это, как правило, не лучшая практика. Используйте root для выполнения задач, требующих административных прав, и всегда будьте осторожны и внимательны при выполнении команд.

Риски работы под root

  • Ошибки с разрушительными последствиями: Когда вы работаете под root, вы имеете полный контроль над системой. Одна ошибка в команде, особенно если вы не понимаете её полностью, может привести к серьезным повреждениям системы.
  • Недостаточная изоляция: Если у выс будет проблема с командной строкой или программами, работающими под root, будет очень сложно восстановить систему, если вы не знаете, что именно стало причиной проблемы.
  • Уязвимости безопасности: Использование root без особых причин повышает вероятность того, что злоумышленник сможет получить контроль над системой, если у него будет возможность проникнуть в систему.

su (substitute user)

Команда su в Linux позволяет временно «переключиться» на другого пользователя, обладая его правами.

Ключевые моменты

  • su — это временная замена пользователя. Когда вы выйдете из сессии (exit), вы вернетесь к своему обычному пользователю. В отличие от sudo, su требует знать пароль другого пользователя.
  • su - — Используется для полноценной имитации пользователя, включая загрузку его переменных окружения.

Когда использовать su?

  • Для отладки и тестирования программ, требующих доступа к другим пользователям.
  • В ситуациях, когда вам действительно нужно работать как другой пользователь.

Примеры

  • su root — переключение на пользователя root (Осторожно!)
  • su - root — эта команда не просто меняет пользователя, но и загружает его окружение (переменные, настройки shell) для полноценной имитации этого пользователя.
  • exit — вернуться к своему обычному пользователю

Основные команды и программы

reboot

Команда перезагрузки системы, требует права root.

  • sudo reboot — Перезагрузка системы.

shutdown

Команда выключения системы, требует права root. Команда имеет множество параметров.

  • man shutdown — Справка по команде.
  • sudo shutdown now — Выключить систему немедленно.
  • shutdown -r now — Перезагрузить систему немедленно.
  • shutdown -h 60 — Выключает систему через 60 секунд.
  • shutdown -c — Отменяет запланированное выключение.

history

Команды выводит список последних комманд пользователя.

  • history — Выведет список последний команд.

ls (list)

Команда для вывода списка файлов и директорий в текущей директории.

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

cd (change directory)

Команда для перемещения между директориями.

  • cd /home/user — Переместиться в директорию /home/user (замените «user» на ваше имя пользователя).
  • cd .. — Переместиться на одну директорию вверх.
  • cd ../.. — Переместиться на две директории вверх. Каждый раз добавляя /.. вы указываете на сколько уровней вверх нужно переместиться.
  • cd ~ — Вернуться в домашнюю директорию пользователя.
  • cd / — Перейти в корень файловой системы.

pwd (print working directory)

Команда для вывода текущей директории, в которой вы находитесь.

  • pwd — Покажет полный путь к текущей директории.

mkdir (make directory)

Команда для создания новой директории.

  • mkdir новая_папка — Создаст новую директорию с именем «новая_папка».

rm (remove)

По умолчанию команда rm удаляет только пустую папку, обычно ее используют со следующими ключами:

  • -r (или -R) — Опция «рекурсивное удаление». Она заставляет rm удалять все папки и файлы внутри указанной папки, а также все папки внутри этих папок, и так далее.
  • -f (или --force) — Опция «force». Она принудительно удаляет файлы и папки без запроса подтверждения.

Примеры: Команда для удаления файлов и директорий. Будьте очень осторожны с этой командой!

  • rm файл.txt — Удалит файл «файл.txt».
  • rm -r папка— Удалит папку «папка» и все ее содержимое (рекурсивно). ОЧЕНЬ ОСТОРОЖНО!
  • rm -rf папка — Удалит принудительно файлы и папки без запроса подтверждения. ЕЩЕ БОЛЕЕ ОЧЕНЬ ОСТОРОЖНО!

cp (copy)

Команда для копирования файлов и директорий.

  • cp файл.txt копия.txt — Создаст копию «файл.txt» с именем «копия.txt».
  • cp -r папка копия_папки— Скопирует папку «папка» и все ее содержимое рекурсивно.

mv (move)

Команда для перемещения файлов и директорий, а также переименования файлов.

  • mv файл.txt новая_папка— Переместит файл «файл.txt» в папку «новая_папка».
  • mv старое_имя_файла новое_имя_файла — Переименует файл.

rmdir (remove directory)

Команда для удаления пустых директорий.

  • rmdir пустая_папка — Удалит пустую директорию «пустая_папка».

cat (concatenate)

Команда для вывода содержимого файла на экран.

  • cat файл.txt — Выведет содержимое файла «файл.txt».

tail

Команда используется для просмотра последних строк файла или потока данных.

  • tail файл.txt — Выведет последние 10 строк файла файл.txt.
  • tail -n 20 файл.txt — Выведет последние 20 строк.
  • tail -f файл.log — Этот флаг (-f) — самый важный! Он означает «follow» – следить. tail будет продолжать показывать новые строки, добавляемые в файл файл.log, в режиме реального времени.

ping

Проверяет доступность хоста.

  • ping ya.ru — Проверяет доступность домена ya.ru

echo

Команда для вывода текста на экран.

  • echo "Привет, мир!" — Выведет на экран фразу «Привет, мир!».

apt (установка пакетов)

Управление пакетами через репозитории дистрибутивов на основе Debian.

  • sudo apt update — Обновление списка пакетов
  • sudo apt upgrade — Установка всех новых пакетов
  • sudo apt install nginx — Установка Nginx
  • sudo apt remove nginx — Удаление Nginx
  • sudo apt purge nginx — Полное удаление Nginx и конфигов
  • sudo apt autoremove — Удаление ненужных зависимостей

top

Основной инструмент для мониторинга процессов.

  • top — запуск

htop

Улучшенная версия top, позволяет управлять процессами в терминале.

  • sudo apt install htop — Установка
  • htop— Запуск

df

Просмотр использования дискового пространства.

  • df -h — Показать объем в удобных единицах (ГБ, МБ)

free

Просмотр использования памяти (RAM и swap).

  • free -h — Показать объем в удобных единицах

curl / wget

Передача данных через HTTP/HTTPS.

  • curl https://example.com — Получение содержимого URL
  • wget https://example.com— Скачивание файла

rsync

Синхронизация файлов между системами.

  • rsync -avz /source/ user@remote:/destination/ — Синхронизация содержимого папки /source/ с папкой на удаленном сервере
Был ли полезен материал?

Нам очень важно получать обратную связь. Пожалуйста, оцените материал. Так мы поймем в какую сторону его стоит изменить.

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