May 31, 2022

Ubuntu для чайников

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

Комбинации клавиш

Ctrl+L — очистить экран, аналог команды clean.

Ctrl+C — прервать (убить) текущий процесс, запущенный в терминале на переднем плане.

Ctrl+Z — приостановить текущий процесс, отправив его в фоновый режим (для возобновления его работы служит команда fg).

Ctrl+S — остановить вывод на экран (например вывод лога).

Ctrl+Q — возобновить вывод на экран.

Tab — автоматически дописать название вводимого файла, директории, команды или переменной.

Файловая система

cd - переход между директориями

cd [имя директории]

перейти выше:

cd ../

pwd - отображение пути к текущей директории

ls - показывает список файлов и папок в директории

ls [опции] [путь к директории]

Полезные опции:

  • -a — вывести скрытые файлы;
  • -l — вывести подробную информацию о файлах.

find - ищет файлы и директории на основе условий.

Синтаксис

find путь_к_директории опции 

Полезные опции:

  • -name — поиск по имени с учётом регистра;
  • -iname — поиск по имени без учёта регистра;
  • -type — тип искомого объекта:
    • f — файл;
    • d — директория;
    • l — ссылка.
  • -size — поиск по размеру объекта;
  • -maxdepth — максимальная глубина поиска;
  • -depth — начать поиск из самой глубокой директории;
  • -user — поиск по владельцу;
  • -group — поиск по группе.

⠀Можно использовать логические операторы:

  • -a — И;
  • -o — ИЛИ;
  • ! — НЕ.

Примеры

find . -name "file"
# Подходящие варианты
file
find $HOME -name "file*"
# Подходящие варианты
file
file.txt
file32434324324.txt
find $HOME -iname "file*"
find $HOME -iname "FiLe*"
# Подходящие варианты
file
FILE.txt
FiLe32434324324.txt
find / -size 20M
# Подходящие варианты
Файлы размером ровно 20 Мб
find $HOME -size +20M
# Подходящие варианты
Файлы размером 20+ Мб
find $HOME -size +20M -size -30M
# Подходящие варианты
Файлы размером 20-30 Мб
find $HOME -iname "file*" -a -iname "*.txt"
# Подходящие варианты
File.txt
filE_1.txt
fiLe32434324324.txt
find $HOME -iname "scr*" -o -iname "*.sh"
# Подходящие варианты
scr
script
script.sh
install.sh
Launcher.sh
find $HOME ! -iname "*.txt"
# Подходящие варианты
Все файлы не имеющие расширение .txt

Работа с пакетами

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

Установка пакета

sudo apt [команда] [пакет] [опция]

часто используемая опция при работе с нодами -q — выводить минимум информации при выполнении действий.

Далее пройдемся по командам:

update

⠀Обновляет информацию о пакетах (например версию), проходясь по спискам репозиториев, хранящимся в:

  • Текстовом файле /etc/apt/sources.list;
  • В текстовых файлах директории /etc/apt/sources.list.d/.

Примеры

sudo apt update

upgrade

⠀Обновляет пакеты до последней версии, полученной при выполнении команды sudo apt update.

Примеры

sudo apt upgrade

install

⠀Устанавливает пакеты.

Примеры

sudo apt install curl -y
sudo apt install curl jq bc -y
# Определённая версия
sudo apt install jq=1.6-1 -y

remove

⠀Удаляет пакеты.

Примеры

sudo apt remove curl -y
sudo apt remove curl jq bc -y

purge

⠀Удаляет пакеты вместе с настройками или настройки удалённых пакетов.

Примеры

sudo apt purge curl -y
sudo apt purge curl jq bc -y

autoremove

⠀Удаляет неиспользуемые зависимости (дополнительные пакеты для устанавливаемого пакета)

Примеры

sudo apt autoremove

Интернет в командной строке

При работе в терминале Linux с интернет-ресурсами применяйте следующие команды:

  • curl — обычно используется для загрузок из интернета(пример):
curl [опции] [URL]
#curl -O http://www.gutenberg.org/files/4300/4300-0.txt
  • wget — аналогичная команда(примеры):
wget [опции] [URL]
#wget http://www.gutenberg.org/files/4300/4300-0.txt
Их мы также подтягиваем через apt install:
sudo apt install curl -y
sudo apt install wget -y

Удаление файла

rm - удаляет файлы (в т. ч. ссылки) и директории. Без опций удаляются только файлы.

Синтаксис

rm [опции] [путь_1] [путь_2] [...]

Полезные опции:

  • -r — удалить директорию;
  • -f — не выдавать ошибку при несуществующем объекте.

Примеры

rm file
rm file script.sh
rm -rf file script.sh $HOME/dir

Текст

nano

⠀Текстовый редактор.

Может требоваться установка

sudo apt install nano -y

Синтаксис

nano [опции] [путь_к_файлу]

Полезные опции:

  • -m — включить поддержку мыши (в MobaXterm становится проблематично копировать и перестаёт работать вставка на ПКМ);
  • -P — запоминать и восстанавливать позицию курсора во время последнего редактирования;
  • -B — создать резервную копию файла при сохранении (резервная копия имеет название имя_файла~).

⠀Для удобства управления, помимо поддержки мыши, присутствуют горячие клавиши.

Горячие клавиши:

  • Alt+U — отменить изменения;
  • Alt+E — повторить изменения;
  • Ctrl+K — удалить строку, на которой находится курсор;
  • Ctrl+C — показать (снизу по центру редактора) на какой строке и символе находится курсор;
  • Ctrl+W — найти в файле:
    • Ввести текст;
    • Нажать Enter;
    • Alt+W — перейти к следующему совпадению найденного текста;
    • Ctrl+C — прекратить поиск.
  • Ctrl+\ — поиск и замена текста:
    • Ввести текст для поиска;
    • Нажать Enter;
    • Ввести текст, на который заменить найденный;
    • Нажать Enter:
      • Просматривать каждое совпадение и выбирать, делать ли замену — Y (Yes) или N (No);
      • Нажать A для замены всего.
  • Ctrl+S — сохранить изменения;
  • Ctrl+O — сохранить как (необходимо ввести название);
  • Ctrl+X — сохранить как (пропускается, если уже сохранено) и выйти.

Примеры

# Открытие файла без поддержки мыши
nano -P $HOME/text.txt

# Открытие файла с поддержкой мыши
nano -mP $HOME/text.txt
# При сохранении сделать резервную копию файла
nano -mBP $HOME/text.txt

Потоки ввода-вывода терминала и переадресация

В терминале Linux работа осуществляется через три потока ввода-вывода: вход (stdin), выход (stdout) и ошибка (stderr).

Данные потоки представлены файловыми дескрипторами. Их также принято считать идентификаторами: 0 для stdin, 1 для stdout, 2 для stderr.

Использование угловых скобок применяется для перенаправления (переадресации) команд и файлов в них и из них:

  • > для отправления в поток;
  • < для получения из потока;
  • >> для добавления в поток;
  • << для непосредственного присоединения потока (используется в «heredoc»);
  • <<< используется в «herestring» (на сегодняшний день не особо распространенная команда);
  • & используется для записи в поток, например &1 для записи в stdout.