Командная строка и основные команды Linux

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

Ах, да! Терминал вызывается нажатием клавиш Ctrl + Alt + T или из списка программ. И еще несколько горячих клавиш:

  • Tab - автодополнение, наберите начало команды или пути и нажмите Tab, если такая команда только одна оболочка ее дополнит. Если доступно несколько вариантов, нажмите два раза Tab чтобы их увидеть;
  • Стрелка вверх - предыдущая команда в истории;
  • Стрелка вниз - следующая команда в истории;
  • Сtrl + Alt + C - скопировать выделенный фрагмент текста
  • Ctrl + Alt + V - скопировать в терминал из буфера обмена
  • Ctrl + C - остановить выполняющуюся программу
  • Ctrl + D - завершить текущий сеанс связи

Копирование текста в терминал Linux

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

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

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

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

Определения

Абсолютный путь - путь от главной (корневой) директории: “/” /home/pi/Documents/Linux_course/ /usr/bin/gedit

Относительный путь - путь от текущей директории

Documents/Linux_course
file.txt

Специальные символы

  • . текущая директория
  • .. директория на уровень выше
  • ~ домашняя директория
  • * любое количество любых символов
  • ? ровно один любой символ

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

1. ls

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

Чтобы вывести список файлов в директории /home/rosuser/ выполните:

ls /home/rosuser/

2. cd

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

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

cd /home/rosuser/.local

3. mkdir

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

Например, чтобы создать директорию ros_projects, выполните:

mkdir ros_projects

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

4. touch

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

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

touch robot.dat

Но как и большинство команд в ubuntu, может она гораздо больше.

5. mv

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

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

mv /home/rosuser/ros_projects/robot.dat /home/rosuser/robot.dat

6. cp

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

Чтобы скопировать файл robot.dat в файл robot.dat.bak выполните:

cp robot.dat robot.dat.bak

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

cp -r /home/rosuser/ros_projects /home/rosuser/ros_projects_1

7. rm

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

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

rm robot.dat

8. sudo

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

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

cp /etc/X11/xorg.conf /etc/X11/xorg.conf.bak

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

sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.bak

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

9. find

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

Например, найдем в текущей директории все файлы (и директории), имя которых начинается на robot, и заканчивается .xml (это могут быть файлы robot-rviz.xml, robot1.xml, robot.odt, robot-linux.xml):

find . -name "robot*.dat"

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

9. cat

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

Например, чтобы просмотреть содержимое файла /var/log/ros.log выполните:

cat /var/log/ros.log

10. nano

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

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

nano /etc/hostname

Откроется текстовый редактор. Внесите изменения в файл. Затем нажмите сочетание клавиш Ctrl+x и введите y, чтобы сохранить изменения и выйти (или введите Ctrl+n, чтобы закрыть файл без сохранения изменений).

11. |

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

ls /usr/bin | more

12. ssh

Ssh это не совсем команда, это утилита подключения к удаленному компьютеру. ssh позволяет использовать удаленный компьютер так, как будто ваша клавиатура и монитор подключены к нему напрямую. Все команды и программы введенные в рамках сеанса ssh будут выполнятся на удаленном компьютере или роботе, а результат их выполнения будет у вас на экране. Но помните, вы работаете за удаленным компьютером и если вы сохраняете файл или меняете что-то, то это останется там. На ваш локальный компьютер эти действия влияния не оказывают.

Например, чтобы подключится к вашему роботу №35 нужно набрать в терминале

ssh (имя_пользователя)@(сетевой_адрес_робота)

ssh pi@turtlebro35.local

или

ssh pi@192.168.0.12

Так как ssh будет одним из основных наших инструментов, подробнее про него мы поговорим отдельно.

13. scp

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

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

scp  user@ubuntu-pc1:/home/rosuser/robot.dat pi@turtlebro35.local:/home/pi/robot.dat

14. grep

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

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

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

find /home/user/ -name "data" | grep .txt

Вывод такой составной команды будет путь к файлу data.txt находящемуся в директории /home/user/

15. apt или apt-get

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

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

sudo apt install mc

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

sudo apt-get install mc

results matching ""

    No results matching ""