Команды терминала Linux

Данный раздел приведен для ознакомления - рекомендуем его прочитать, это немножко подружит вас с работой в терминале

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

Для программистов, разработчиков робототехники, операторов роботов и инженеров Terminal это один из основных инструментов работы. Давайте рассмотрим базовые команды терминала Linux, которые пригодятся нам при работе.

Терминал вызывается нажатием клавиш Ctrl + Alt + T или из списка программ.

И сразу еще несколько горячих клавиш которые вам будут регулярно нужны:

  • Tab - автодополнение, наберите начало команды или пути и нажмите Tab, если такая команда только одна оболочка ее дополнит. Если доступно несколько вариантов, нажмите два раза Tab чтобы их увидеть

  • Стрелка вверх - предыдущая команда в истории

  • Стрелка вниз - следующая команда в истории

  • Ctrl + C - прервать выполнение программы

  • Ctrl + Z - приостановить выполнение программы

  • Ctrl + D - завершить текущий сеанс связи

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

Для консоли linux немного не обычные сочетания клавиш для копирования и вставки текста из буфера обмена

Ctrl + Shift + C
скопировать выделенный текст

Ctrl + Shift + V
вставить

Это связанно с тем что привычное сочетание клавишCtrl-C уже было занято командой прекращения работы запущенной программы.

Определения

Абсолютный путь - начинается от главной (корневой) директории (каталога) и перечисляет все ветви каталогов отделяющие корень от желаемого каталога или файла. Например в системе есть каталог в который устанавливается большинство программ, путь к этому каталогу имеет вид /usr/bin Таким образом в корневом каталоге (представлен первым символом / в пути) имеется каталог с названием usr, содержащий каталог с названием bin .

Относительный путь - путь от текущей директории (каталога) до желаемого каталога или файла. Например если вы находитесь в своей домашней директории /home/username/ то вы можете указывать путь к каталогам содержащимся в ней, например Documents

Специальные символы для работы с путями

  • . текущая директория

  • .. директория на уровень выше

  • ~ домашняя директория

  • * любое количество любых символов

  • ? ровно один любой символ

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

Изучение этого блока материала предполагает, что вы настроили рабочее место и запустили на реальной или виртуальной машине Ubuntu Linux. Все команды описанные ниже необходимо выполнить на компьютере и увидеть результат из работы. Напомним что окно терминала в Ububtu можно вызвать комбинацией клавиш Alt+Ctrl+T .

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

user@userbox:~$  

Обратите внимание что user - это имя пользователя которое вы задали при установке Ubuntu, а userbox - имя компьютера. Именно эти данные позволяют определить под каким пользователем и на каком компьютере вы в настоящий момент работаете.

ls

Команда ls (List - список) (если выполнить ее без аргументов) используется для вывода списка файлов в текущей директории.

Если запустить программу ls то она выведет список файлов в текущей директории.

Чтобы вывести список файлов в директории /home/user/ откройте терминал, наберите ls и нажмите enter:

user@userbox:~$  ls 

В результате вы должны увидеть список директорий Desktop Documents и другие в вашем домашнем каталоге /home/user/

pwd

Команда pwd выводит текущую директорию (print working directory)

user@userbox:~$  pwd

cd

Команда cd (Change Directory - сменить директорию) используется для перехода по дереву директорий (перехода в другую папку).

Например, чтобы перейти в директорию /home/ можно указать абсолютный путь

user@userbox:~$ cd /home/

Или используя относительный путь

user@userbox:~$ cd ..

Теперь вернитесь обратно в вашу домашнюю директорию. Обратите внимание что user - это имя пользователя которое вы задали при установке Ubuntu.

user@userbox:/home$ cd user

mkdir

Команда mkdir (make directory - создать директорию) создает пустую директорию в той директории в которой вы сейчас находитесь.

Например, давайте создадим директорию ros_projects, в вашем домашнем каталоге:

user@userbox:~$ mkdir ros_projects

Теперь давайте перейдем в эту директорию cd ros_projects

touch

Командой touch (коснуться) можно создать пустой файл.

Например, создадим пустой файл robot.dat:

user@userbox:~/ros_projects$ touch robot.dat

mv

Команда mv (Move - переместить) используется для перемещения (или переименования) файлов и директорий.

Например, чтобы переместить файл robot.dat, который мы только что создали, из директории /home/rosuser/ros_projects в директорию /home/rosuser/ выполните:

Не забывайте заменять user на ваше имя пользователя!

user@userbox:~/ros_projects$ mv /home/user/ros_projects/robot.dat /home/user/robot.dat

Большинство команд в Ubuntu, имеет весьма широкий функционал и возможность использовать параметры. Для того чтобы их узнать, по командам есть документация. Рассмотрим работу с ней на примере команды mv. Попробуйте выполнить команды ниже. Помните, что прерывание программы Ctrl+C

whatis - получение очень краткой справки

user@userbox:~/ros_projects$ whatis mv

--help - получение справки для встроенных команд

user@userbox:~/ros_projects$ mv --help

man - вывод страниц справочного руководства

user@userbox:~/ros_projects$ man mv

cp

Команда cp (Copy - скопировать) _**_создает копию файла или директории.

Чтобы скопировать файл robot.dat в файл robot.dat.bak, перейдите в директорию в которую вы скопировали этот файл командой mv и выполните:

user@userbox:~$ cp robot.dat robot.dat.bak

Результат операций вы можете видеть запуская команду ls

Чтобы скопировать директорию, необходимо после команды добавить параметр -r. Например, скопируем директорию ros_projects в ros_projects_1:

user@userbox:~$ cp -r /home/user/ros_projects /home/user/ros_projects_1

rm

Команда rm (remove - удалить) служит для удаления файлов.

Например удалим файл robot.dat:

user@userbox:~$ rm robot.dat

sudo

Команда sudo (Substitute User & DO - подменить пользователя и выполнить) используется для выполнения команд от имени суперпользователя. Но пользоваться ей нужно аккуратно, так как можно повредить систему.

Например, если вы попытаетесь создать копию файла в «системной» директории /etc,

user@userbox:~$ cp /etc/X11/rgb.txt /etc/X11/rgb.txt.bak

то получите предупреждение Permission denied. А вот если выполнять программу с правами суперпользователя:

user@userbox:~$ sudo cp /etc/X11/rgb.txt /etc/X11/rgb.txt.bak

она выполнится без ошибок.

find

Команда find (Найти) предназначена для поиска файлов. Это не самая простая команда, но ее знание очень полезно. Для начала достаточно запомнить как искать файлы и директории по имени или по маске (части имени).

Например, найдем в текущей директории все файлы (и директории), имя которых начинается на robot:

user@userbox:~$ find . -name "robot.*"

Пояснение: символ точки после команды означает, что осуществляем поиск в текущей директории (и во всех директориях внутри текущей). После аргумента -name в кавычках записывается имя файла или маска (шаблон), по которой мы ищем. Символ звездочка в маске означает, что вместо звездочки могут быть любые символы.

nano

На самом деле nano это, не команда, а консольный текстовый редактор. Это один из немногих способов отредактировать файл из командной строки (например, когда графический интерфейс не грузится или отсутствует).

Например, чтобы отредактировать наш существующий файл robot.dat выполните:

user@userbox:~$ nano robot.dat

После запуска вы сможете написать что либо в файле, например "my text file". Также внизу редактора будет панель (строки) с подсказками, какие горячие клавиши доступны для использования. Символ ^ означает клавишу Ctrl. Например, для выхода из редактора нужно набрать Ctrl + x, а затем либо подтвердить сохранение изменений, либо отвергнуть, нажав y (yes) или n (no). Сохраните изменения.

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

cat

Команда cat (Сatenate - связывать) выводит содержимое указанного файла в указанный источник, например на экран или в другой файл.

Например, чтобы просмотреть содержимое нашего файла выполните:

user@userbox:~$ cat robot.dat

| (вертикальный разделитель)

Это не ошибка ввода, это команда или конвейер перенаправления вывода, при помощи него вы можете вывод одной команды подать на вход другой. Например, если просто ввести команду ls в директории с большим количеством файлов, весь список пролетит по экрану терминала и мы не сможем ничего разглядеть. Для того, чтобы осуществлять поэкранный вывод есть команда more которая остановит вывод списка файлов при достижении края экрана. Для примера:

user@userbox:~$ ls /usr/bin | more

scp

Команда scp аналог команды cp, **но позволяет копировать файлы с одного компьютера на другой по сети. Синтаксис команды достаточно непростой (scp опции пользователь1@хост1:файл пользователь2@хост2:файл), но иногда она совершенно незаменима в плане скорости переноса файлов,** не надо настраивать ftp или другой протокол. В этой части курса вам будет сложно проверить эту команду, но на очной части мы ее обязательно будем использовать.

Например, для переноса файла robot.dat из каталога на ноутбуке в каталога на удаленном компьютере робота

user@userbox:~$ scp  user@userbox:/home/user/robot.dat pi@turtlebro35.local:/home/pi/robot.dat

grep

Команда grep (global regular expression print) - одна из самых востребованных команд в терминале Linux. Она сортирует и фильтрует текст на основе сложных правил. Утилита grep решает множество задач, в основном она используется для поиска строк, соответствующих строке в тексте или содержимому файлов. Также она может находить по шаблону или регулярным выражениям. Команда в считанные секунды найдёт файл в с нужной строчкой, текст в файле или отфильтрует из вывода только пару нужных строк.

Синтаксис: grep [опции] шаблон [имя файла...] или: команда | grep [опции] шаблон

А теперь давайте рассмотрим, как ей пользоваться.

Например мы хотим найти в каком файле название которого начинается с robot есть строчка my text

user@userbox:~$ grep -i 'my text' robot*.*

Или например, мы хотим отфильтровать вывод команды find и найти какой-то специфический файл.

user@userbox:~$ find . -name "robot*.*" | grep .bak

apt и/или apt-get

apt — это программа менеджер пакетов, который служит для установки и удаления программ (пакетов), обновления системы.

Например, чтобы установить консольный файловый менеджер Midnight Commander, выполните:

user@userbox:~$ sudo apt install mc

Если apt недоступен, то используйте apt-get:

user@userbox:~$ sudo apt-get install mc

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

user@userbox:~$ mc

Выйти из Midnight commander можно осуществить набрав exit, или нажав мышкой на кнопочку Quit справа внизу

Запуск любой программы

Из терминала вы можете запустить любую программу

#запустить выполнение программы из текущей директории
./имя_программы 
или можно указать полный путь
/полный/путь/имя_программы

chmod +x имя_программы - сделать программу исполняемой

program &

Если после названия программы поставить знак & то это позволит запустить выполнение программы в фоновом режиме.

Last updated