
Основы работы в 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
— Установка Nginxsudo apt remove nginx
— Удаление Nginxsudo 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
— Получение содержимого URLwget https://example.com
— Скачивание файла
rsync
Синхронизация файлов между системами.
rsync -avz /source/ user@remote:/destination/
— Синхронизация содержимого папки/source/
с папкой на удаленном сервере