Основы работы в 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/с папкой на удаленном сервере