TürkiyeVPS

Базовые команды Linux для начинающих (с примерами)

Вы впервые подключились к серверу по SSH, и перед вами пустой терминал. С примерами рассказываем о самых употребительных командах Linux: от перемещения по файлам и установки пакетов до прав доступа и управления процессами.

7 мин чтения

Арендовав VPS, вы, скорее всего, будете управлять сервером не через графический интерфейс, а из командной строки. Поначалу это пугает, но большинство повседневных задач решается двумя-тремя десятками команд. В этом руководстве мы расскажем о самых полезных командах в Ubuntu 24.04, о том, когда их применять и на что обращать внимание. Если вы ещё не знаете, как подключиться к серверу, сначала прочитайте нашу статью Что такое SSH.

Совет: лучший способ выучить команды — пробовать. Идеально подойдёт тестовый сервер, установленный с нуля и без важных данных. Если что-то сломается, сервер можно переустановить и начать заново.

Первый взгляд на командную строку

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

root@sunucu:~#

Здесь root — имя пользователя, sunucu — имя машины, ~ — текущая папка (ваш домашний каталог), а # означает, что вы вошли как администратор. У обычных пользователей вместо него стоит $.

Если вы забыли, как пользоваться командой, у вас есть два помощника:

ls --help
man ls

Из страницы man выходят клавишей q. Кроме того, клавиша Tab автоматически дополняет имена файлов и команд, а стрелка вверх возвращает предыдущие команды. Эти две возможности заметно сокращают количество опечаток.

Перемещение по файлам и папкам

pwd                 # şu an hangi klasördesiniz
ls                  # klasördeki dosyaları listeler
ls -lah             # gizli dosyalar dahil, boyutlar okunaklı biçimde
cd /var/www         # belirtilen klasöre geçer
cd ..               # bir üst klasöre çıkar
cd ~                # ev dizinine döner
cd -                # bir önceki klasöre döner

Пути к файлам в Linux начинаются с / и чувствительны к регистру: Site.txt и site.txt — два разных файла. Файлы, имя которых начинается с точки (например, .env, .bashrc), скрыты и видны только с ls -a.

Папки, с которыми вы будете часто сталкиваться:

Папка Что в ней?
/etc Файлы настроек системы и служб
/var/log Файлы журналов (логи)
/var/www Обычное место для веб-сайтов
/home Домашние каталоги обычных пользователей
/root Домашний каталог пользователя root
/tmp Временные файлы (могут удаляться при перезагрузке)

Создание, копирование, перемещение и удаление файлов

mkdir yedekler                  # klasör oluşturur
mkdir -p proje/static/css       # iç içe klasörleri tek seferde oluşturur
touch notlar.txt                # boş dosya oluşturur
cp ayar.conf ayar.conf.yedek    # dosyayı kopyalar
cp -r site/ site-yedek/         # klasörü içindekilerle kopyalar
mv eski.txt yeni.txt            # yeniden adlandırır
mv dosya.zip /tmp/              # başka bir klasöre taşır
rm notlar.txt                   # dosyayı siler
rm -r eski-klasor/              # klasörü içindekilerle siler

Внимание: в Linux нет корзины. Файл, удалённый командой rm, не вернуть. Особенно при вводе rm -rf дважды проверяйте путь, а перед изменением файла настроек делайте его копию с помощью cp.

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

cat dosya.txt          # tüm içeriği ekrana basar
less /var/log/syslog   # uzun dosyaları sayfa sayfa gösterir (q ile çıkış)
head -n 20 dosya.txt   # ilk 20 satır
tail -n 50 dosya.txt   # son 50 satır
tail -f /var/log/nginx/access.log   # dosyaya eklenen satırları canlı izler

Самый простой редактор для начинающих — nano:

nano /etc/hosts

После изменений сохраните файл сочетанием Ctrl+O и Enter, а выйдите — Ctrl+X. Позже стоит освоить и vim, но в первый день nano вполне достаточно.

Поиск: find и grep

find /var/www -name "*.php"           # adı .php ile biten dosyaları bulur
find /var/log -size +100M             # 100 MB'tan büyük dosyaları bulur
grep "error" /var/log/nginx/error.log # dosyada "error" geçen satırları gösterir
grep -ri "veritabani" /etc/myapp/     # klasörde büyük-küçük harf duyarsız arar

Команды можно связывать конвейером (|): вывод одной команды становится входом другой:

ps aux | grep nginx
cat access.log | grep "404" | wc -l

Второй пример подсчитывает, сколько ошибок 404 записано в журнале доступа.

Пользователи, sudo и права доступа к файлам

Вместо того чтобы делать всё от root, безопаснее создать себе пользователя с правами администратора:

adduser ahmet
usermod -aG sudo ahmet

Этот пользователь добавляет sudo перед командами, требующими прав администратора: sudo apt update.

Выражения вроде -rwxr-xr-- в выводе ls -l показывают права доступа к файлу. Тройки символов относятся по порядку к владельцу, группе и остальным; r — чтение, w — запись, x — выполнение.

chmod 644 index.html          # sahibi okur/yazar, diğerleri yalnızca okur
chmod 755 betik.sh            # sahibi her şeyi yapar, diğerleri okur ve çalıştırır
chmod +x betik.sh             # dosyayı çalıştırılabilir yapar
chown www-data:www-data -R /var/www/site   # sahipliği web sunucusu kullanıcısına verir

Чтобы быстро решить проблему, может возникнуть соблазн выставить chmod 777, но это позволяет кому угодно записывать в файл и создаёт уязвимость. Правильное решение обычно — исправить владельца (chown).

Управление пакетами (apt)

В Ubuntu и Debian программы устанавливаются через apt:

sudo apt update                 # paket listelerini yeniler
sudo apt upgrade -y             # kurulu paketleri günceller
sudo apt install nginx          # paket kurar
sudo apt remove nginx           # paketi kaldırır
apt search htop                 # depoda paket arar

Перед установкой всегда запускайте apt update, иначе из-за устаревшего списка пакетов можно получить ошибку «не найдено».

Службы и процессы

Программы, работающие в фоне, например веб-сервер или база данных, управляются через systemctl:

systemctl status nginx      # servis çalışıyor mu?
sudo systemctl restart nginx
sudo systemctl enable nginx # açılışta otomatik başlasın

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

ps aux | grep python
kill 12345          # PID'i 12345 olan süreci kibarca durdurur
kill -9 12345       # yanıt vermiyorsa zorla durdurur

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

Информация о системе

uname -a          # çekirdek sürümü
lsb_release -a    # dağıtım sürümü (ör. Ubuntu 24.04 LTS)
uptime            # sunucu ne zamandır açık, yük ortalaması
free -h           # RAM kullanımı
df -h             # disk kullanımı
ip a              # ağ arayüzleri ve IP adresleri

Архивирование и сжатие: tar и zip

Чтобы сделать резервную копию папки или перенести её на другой сервер, удобно сначала собрать её в один файл. Самый распространённый формат в Linux — .tar.gz:

tar -czf site-yedek.tar.gz /var/www/site   # klasörü sıkıştırarak arşivler
tar -tzf site-yedek.tar.gz                 # arşivin içeriğini listeler
tar -xzf site-yedek.tar.gz -C /tmp/        # arşivi /tmp klasörüne açar

Значение букв: c — создать (create), x — извлечь (extract), t — показать список, z — сжать gzip, f — имя файла. Если вы будете обмениваться файлами с пользователями Windows, удобнее zip:

sudo apt install -y zip unzip
zip -r site.zip /var/www/site
unzip site.zip -d /tmp/site

Сетевые команды и загрузка файлов

Чтобы проверить, есть ли у сервера доступ в интернет, отвечает ли сайт, или чтобы скачать файл, используйте:

ping -c 4 google.com                    # bağlantıyı test eder, 4 paket gönderir
curl -I https://ornek.com               # sitenin yalnızca HTTP başlıklarını getirir
wget https://ornek.com/dosya.tar.gz     # dosyayı bulunduğunuz klasöre indirir
ss -tulpn                               # hangi portları hangi programlar dinliyor

Особенно важна ss -tulpn: если веб-сервер не работает, здесь видно, действительно ли порт прослушивается и не занят ли он другой программой. Чтобы узнать, на какой IP указывает домен, пригодится команда dig ornek.com +short; подробнее об этом — в нашей статье Что такое DNS.

Небольшие привычки, экономящие время

  • history выводит пронумерованный список предыдущих команд. Набрав !42, вы повторите команду под номером 42.
  • Ctrl+R запускает поиск по истории: введите несколько букв, и появится последняя подходящая команда.
  • Ctrl+C прерывает выполняющуюся команду, Ctrl+L очищает экран.
  • Чтобы длительная операция продолжалась даже при обрыве соединения, используйте tmux: откройте сессию командой tmux, а если связь пропадёт, переподключитесь и введите tmux attach.
  • Команды можно объединять в цепочку через &&: sudo apt update && sudo apt upgrade -y запустит вторую команду, только если первая завершилась успешно.

Что дальше?

Освоившись с этими командами, займитесь защитой сервера: о SSH-ключах, файрволе и автоматических обновлениях читайте в нашем руководстве Безопасность Linux-сервера. Если вы ищете сервер для практики, пакеты VPS TürkiyeVPS предоставляются с root-доступом. Ничего не устанавливая на компьютер, можно подключиться прямо из браузера кнопкой Консоль в клиентской панели и сразу попробовать эти команды.

Часто задаваемые вопросы

Нужно ли заучивать команды Linux?

Нет. Те, которыми вы пользуетесь часто, со временем запомнятся сами. Для остального хватит --help, man и автодополнения по Tab. Полезно также вести собственный файл с заметками.

Чем sudo отличается от root?

root — пользователь с полными правами в системе. sudo же позволяет обычному пользователю выполнить отдельную команду с правами администратора. Так вы не работаете постоянно с полными правами и снижаете риск ошибки.

Можно ли восстановить случайно удалённый файл?

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

Работают ли эти команды в любом дистрибутиве Linux?

Команды для работы с файлами, поиска, прав и процессов практически одинаковы во всех дистрибутивах. Отличается менеджер пакетов: в Ubuntu/Debian используется apt, в AlmaLinux/Rocky Linux — dnf.