Команды терминала 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
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