Команды терминала Linux
Данный раздел приведен для ознакомления - рекомендуем его прочитать, это немножко подружит вас с работой в терминале
Мы привыкли работать на компьютере, кликая с помощью мышки на иконки и выбирая пункты в различных меню. Однако есть и другой подход, который позволяет отдавать команды компьютеру, вводя их с помощью клавиатуры в специальную программу Terminal. Поначалу это будет непривычно и, возможно, даже неудобно, но вскоре мы поймем преимущество именно такого подхода.
Для программистов, разработчиков робототехники, операторов роботов и инженеров Terminal это один из основных инструментов работы. Давайте рассмотрим базовые команды терминала Linux, которые пригодятся нам при работе.
Терминал вызывается нажатием клавиш Ctrl + Alt + T или из списка программ.
И сразу еще несколько горячих клавиш которые вам будут регулярно нужны:
Tab - автодополнение, наберите начало команды или пути и нажмите Tab, если такая команда только одна оболочка ее дополнит. Если доступно несколько вариантов, нажмите два раза Tab чтобы их увидеть
Стрелка вверх - предыдущая команда в истории
Стрелка вниз - следующая команда в истории
Ctrl + C - прервать выполнение программы
Ctrl + Z - приостановить выполнение программы
Ctrl + D - завершить текущий сеанс связи
Копирование текста в консоль linux
Для консоли linux немного не обычные сочетания клавиш для копирования и вставки текста из буфера обмена
Это связанно с тем что привычное сочетание клавишCtrl-C
уже было занято командой прекращения работы запущенной программы.
Определения
Абсолютный путь - начинается от главной (корневой) директории (каталога) и перечисляет все ветви каталогов отделяющие корень от желаемого каталога или файла. Например в системе есть каталог в который устанавливается большинство программ, путь к этому каталогу имеет вид /usr/bin
Таким образом в корневом каталоге (представлен первым символом /
в пути) имеется каталог с названием usr
, содержащий каталог с названием bin
.
Относительный путь - путь от текущей директории (каталога) до желаемого каталога или файла. Например если вы находитесь в своей домашней директории /home/username/
то вы можете указывать путь к каталогам содержащимся в ней, например Documents
Специальные символы для работы с путями
.
текущая директория..
директория на уровень выше~
домашняя директория*
любое количество любых символов?
ровно один любой символ
Основные команды terminal
Изучение этого блока материала предполагает, что вы настроили рабочее место и запустили на реальной или виртуальной машине Ubuntu Linux. Все команды описанные ниже необходимо выполнить на компьютере и увидеть результат из работы. Напомним что окно терминала в Ububtu можно вызвать комбинацией клавиш Alt+Ctrl+T
.
После открытития терминала вы увидите приглашение к работе, которое выглядит так:
Обратите внимание что user - это имя пользователя которое вы задали при установке Ubuntu, а userbox - имя компьютера. Именно эти данные позволяют определить под каким пользователем и на каком компьютере вы в настоящий момент работаете.
ls
Команда ls (List - список) (если выполнить ее без аргументов) используется для вывода списка файлов в текущей директории.
Если запустить программу ls
то она выведет список файлов в текущей директории.
Чтобы вывести список файлов в директории /home/user/ откройте терминал, наберите ls и нажмите enter:
В результате вы должны увидеть список директорий Desktop Documents и другие в вашем домашнем каталоге /home/user/
pwd
Команда pwd выводит текущую директорию (print working directory)
cd
Команда cd (Change Directory - сменить директорию) используется для перехода по дереву директорий (перехода в другую папку).
Например, чтобы перейти в директорию /home/ можно указать абсолютный путь
Или используя относительный путь
Теперь вернитесь обратно в вашу домашнюю директорию. Обратите внимание что user - это имя пользователя которое вы задали при установке Ubuntu.
mkdir
Команда mkdir (make directory - создать директорию) создает пустую директорию в той директории в которой вы сейчас находитесь.
Например, давайте создадим директорию ros_projects, в вашем домашнем каталоге:
Теперь давайте перейдем в эту директорию cd ros_projects
touch
Командой touch (коснуться) можно создать пустой файл.
Например, создадим пустой файл robot.dat
:
mv
Команда mv (Move - переместить) используется для перемещения (или переименования) файлов и директорий.
Например, чтобы переместить файл robot.dat, который мы только что создали, из директории /home/rosuser/ros_projects в директорию /home/rosuser/ выполните:
Не забывайте заменять user на ваше имя пользователя!
Большинство команд в Ubuntu, имеет весьма широкий функционал и возможность использовать параметры. Для того чтобы их узнать, по командам есть документация. Рассмотрим работу с ней на примере команды mv. Попробуйте выполнить команды ниже. Помните, что прерывание программы Ctrl+C
whatis - получение очень краткой справки
--help - получение справки для встроенных команд
man - вывод страниц справочного руководства
cp
Команда cp (Copy - скопировать) _**_создает копию файла или директории.
Чтобы скопировать файл robot.dat в файл robot.dat.bak, перейдите в директорию в которую вы скопировали этот файл командой mv и выполните:
Результат операций вы можете видеть запуская команду ls
Чтобы скопировать директорию, необходимо после команды добавить параметр -r. Например, скопируем директорию ros_projects в ros_projects_1:
rm
Команда rm (remove - удалить) служит для удаления файлов.
Например удалим файл robot.dat
:
sudo
Команда sudo (Substitute User & DO - подменить пользователя и выполнить) используется для выполнения команд от имени суперпользователя. Но пользоваться ей нужно аккуратно, так как можно повредить систему.
Например, если вы попытаетесь создать копию файла в «системной» директории /etc,
то получите предупреждение Permission denied. А вот если выполнять программу с правами суперпользователя:
она выполнится без ошибок.
find
Команда find (Найти) предназначена для поиска файлов. Это не самая простая команда, но ее знание очень полезно. Для начала достаточно запомнить как искать файлы и директории по имени или по маске (части имени).
Например, найдем в текущей директории все файлы (и директории), имя которых начинается на robot:
Пояснение: символ точки после команды означает, что осуществляем поиск в текущей директории (и во всех директориях внутри текущей). После аргумента -name в кавычках записывается имя файла или маска (шаблон), по которой мы ищем. Символ звездочка в маске означает, что вместо звездочки могут быть любые символы.
nano
На самом деле nano это, не команда, а консольный текстовый редактор. Это один из немногих способов отредактировать файл из командной строки (например, когда графический интерфейс не грузится или отсутствует).
Например, чтобы отредактировать наш существующий файл robot.dat выполните:
После запуска вы сможете написать что либо в файле, например "my text file". Также внизу редактора будет панель (строки) с подсказками, какие горячие клавиши доступны для использования. Символ ^ означает клавишу Ctrl. Например, для выхода из редактора нужно набрать Ctrl + x
, а затем либо подтвердить сохранение изменений, либо отвергнуть, нажав y
(yes) или n
(no). Сохраните изменения.
nano удобен для несложных изменений в файлах, но совсем неудобен для работы над проектами с большим количеством файлов.
cat
Команда cat (Сatenate - связывать) выводит содержимое указанного файла в указанный источник, например на экран или в другой файл.
Например, чтобы просмотреть содержимое нашего файла выполните:
| (вертикальный разделитель)
Это не ошибка ввода, это команда или конвейер перенаправления вывода, при помощи него вы можете вывод одной команды подать на вход другой. Например, если просто ввести команду ls в директории с большим количеством файлов, весь список пролетит по экрану терминала и мы не сможем ничего разглядеть. Для того, чтобы осуществлять поэкранный вывод есть команда more которая остановит вывод списка файлов при достижении края экрана. Для примера:
scp
Команда scp аналог команды cp, **но позволяет копировать файлы с одного компьютера на другой по сети. Синтаксис команды достаточно непростой (scp опции пользователь1@хост1:файл пользователь2@хост2:файл), но иногда она совершенно незаменима в плане скорости переноса файлов,** не надо настраивать ftp или другой протокол. В этой части курса вам будет сложно проверить эту команду, но на очной части мы ее обязательно будем использовать.
Например, для переноса файла robot.dat из каталога на ноутбуке в каталога на удаленном компьютере робота
grep
Команда grep (global regular expression print) - одна из самых востребованных команд в терминале Linux. Она сортирует и фильтрует текст на основе сложных правил. Утилита grep решает множество задач, в основном она используется для поиска строк, соответствующих строке в тексте или содержимому файлов. Также она может находить по шаблону или регулярным выражениям. Команда в считанные секунды найдёт файл в с нужной строчкой, текст в файле или отфильтрует из вывода только пару нужных строк.
Синтаксис: grep [опции] шаблон [имя файла...] или: команда | grep [опции] шаблон
А теперь давайте рассмотрим, как ей пользоваться.
Например мы хотим найти в каком файле название которого начинается с robot есть строчка my text
Или например, мы хотим отфильтровать вывод команды find и найти какой-то специфический файл.
apt и/или apt-get
apt — это программа менеджер пакетов, который служит для установки и удаления программ (пакетов), обновления системы.
Например, чтобы установить консольный файловый менеджер Midnight Commander, выполните:
Если apt недоступен, то используйте apt-get:
В результате выполнения команду у вас установится программа файловый менеджер. При запуске от имени суперпользователя система спросит вас пароль, а так же спросит согласие на установку. После установки вы сможете запускать программу командой mc.
Выйти из Midnight commander можно осуществить набрав exit, или нажав мышкой на кнопочку Quit справа внизу
Запуск любой программы
Из терминала вы можете запустить любую программу
chmod +x имя_программы
- сделать программу исполняемой
program &
Если после названия программы поставить знак &
то это позволит запустить выполнение программы в фоновом режиме.
Last updated