Азы работы в командной строке Linux (часть 1)


Возникло желание написать мануал о консоли, базовых командах и азах файловой системы Linux. Когда я начинал своё знакомство с Linux именно такой инструкции мне не хватало. Надеюсь, абсолютным новичкам, которых пугают консольные команды, она поможет «влиться» в число умеющих использовать командную строку Linux.

Командная строка Linux

В зависимости от вашего Linux, ярлык для открытия консоли может быть вынесен на рабочий стол,

добавлен в избранные команды,

доступен в контекстном меню при клике правой кнопкой мыши в области рабочего стола.

Либо вы для вызова эмулятора терминала вы можете воспользоваться сочетанием клавиш CTRL + ALT + t.

В приглашении командной строки отображается имя пользователя и имя хоста. Перед областью ввода команд может быть символ решётки (#) или символ доллара ($). Символ доллара означает, что вы работаете под обычным пользователем, а символ решётки – что под суперпользователем (root).

На скриншоте видно, что я открыл консоль как обычный пользователь (символ $), а затем вошёл как root (символ сменился на #).

В некоторых инструкциях перед командами пишут $ или # и новички, пытаясь выполнить команды копированием-вставкой, получают разнообразные ошибки. Если перед командной вы видите $ или #, то их не нужно печатать – они написаны только для информирования вас о том, нужны ли дополнительные привилегии для выполнения данной команды.

TAB для автодополнения

При вводе команды или имени файла, обязательно используйте клавишу TAB – она автоматически допишет для вас команду или имя файла. Если при нажатии на TAB ничего не происходит, то быстро нажмите TAB два раза, чтобы увидеть все доступные варианты. Если варианты не выводятся, то это верный признак того, что: 1) вы неправильно начали вводить имя команды, 2) программа, которую вы намереваетесь запустить, ещё не установлена.

ENTER для запуска выполнения команд

Набрав команду, нажмите ENTER и после этого она запустится.

CTRL + c для прерывания выполнения программы

Если вы хотите оборвать выполнение команды, то используйте для этого сочетание клавиш CTRL + c. Если вы ввели команду, но передумали её запускать, то вместо удаления строки, можете также нажать CTRL + c.

(курсорная клавиша вверх) для просмотра истории команд

Если вы хотите повторить выполнение команды, то клавишами и вы можете пролистать историю ранее введённых команд, выбрать любую из них для повторного выполнения, отредактировать перед запуском.

Азы файловой системы Linux

Если нужно прочитать какие-то данные или сохранить информацию в файл из консоли, нужно уметь указывать путь до файла. В файловой система Linux нет такого понятия как буквы дисков. Там используется понятие «корень». Обозначается корень символом /

После корня указываются папки (в Linux они называются директориями) и файлы. Одни папки могут быть вложены в другие – точно также как в Windows. Вложенные папки и файлы разделяются символом / (точно таким же как корень).

Пример указания пути до файла:

/home/mial/book.txt


Эта запись означает, что файл book.txt находится в папке mial, а папка mial находится в папке home.

Базовые команды Linux

pwd для показа текущей рабочей директории

Откройте консоль и введите туда

pwd

У меня вывелось:

/home/mial

Здесь / (первый слеш) – это корень, home – это название папки (директории), далее / (второй слеш) – отделяет название вложенной папки, mial – название второй вложенной папки.

Команда pwd показывает «текущую рабочую директорию». Текущую рабочую директорию нужно знать при указании относительных путей до файлов и папок, также некоторые программы сохраняют результаты своего выполнения в текущую директорию.

mkdir для создания новых директорий

После mkdir укажите название папки, которую вы хотите создать. Если вы укажите относительный путь, например, так:

mkdir test1

То будет создана новая папка test1 в текущей рабочей директории, т.е. в моём случае путь до неё будет


/home/mial/test1

Также можно указать абсолютный путь до папки:

mkdir /home/mial/test2

ls для просмотра содержимого каталогов

Команда ls используется для вывода списка файлов и папок текущей рабочей директории:

ls
test1  test2  test.sh  Видео  Документы  Загрузки  Изображения  Музыка  Общедоступные  Рабочий стол  Шаблоны

Теперь мы можем убедиться, что папки test1 и test2 действительно были созданы.

Чтобы список выглядел лучше, можно использовать команду ls с опцией -l

ls -l

После команды и опций можно указать путь до папки, содержимое которой вы хотим посмотреть. Чтобы увидеть содержимое директории /var/log нужно ввести:

ls -l /var/log

Для просмотра содержимого корневой директории:

ls -l /

cd для перехода по папкам (смены текущей рабочей директории)

Для перехода по папкам используется команда cd после которой пишется директория, в которую вы хотите перейти. Можно указывать относительный путь или абсолютный:

cd test1
cd /home/mial/test2

Символ . (одна точка) означает текущую директорию, а символ .. (две точки) означаете родительскую директорию. Следовательно, для перехода на один уровень вверх нужно набрать


cd ..

cp для копирования файлов

Если вам нужно скопировать файл в другую директорию, то используется команда cp. После неё указывается файл, который нужно скопировать и затем через пробел директория, куда вы хотите поместить файл, например:

cp test.sh test1

Этой командой я скопировал файл test.sh в директорию test1. Проверим

ls -l test1
итого 4
-rw-r--r-- 1 mial mial 84 дек 11 15:48 test.sh

mv для переименования и перемещения файлов.

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

Файл test.sh из каталога test1 я переместил в каталог test2:

mv test1/test.sh test2

Файл test.sh в каталоге test2 я переименовал в test2.sh:

mv test2/test.sh test2/test2.sh

Файл test2.sh в каталоге test2 я переместил в каталог test1 и присвоил ему имя new.txt:

mv test2/test2.sh test1/new.txt

rm для удаления файлов и папок

Чтобы удалить наши тестовые директории, воспользуемся командой rm. После этой команды укажите путь до файла или папки, которые нужно удалить. Если вы собираетесь удалить директорию, то используйте также опцию -r, она означает рекурсивно удалять каталоги и их содержимое. Можно указать сразу несколько файлов и (или) каталогов:

 rm -r test1 test2

Для понимания иерархии файловой системы рекомендуется ещё одна статья для новичков «Структура директорий Linux. Важные файлы Linux».

Как копировать текст в командной строке и как вставлять в командную строку Linux

Привычные сочетания клавиш Ctrl+c и Ctrl+v в терминале имеют другое действие. Для копирования нужно использовать Ctrl+Insert, а для вставки Shift+Insert.

Ошибка «команда не найдена»

Причиной данной ошибки могут быть:

  • неправильно набрано имя команды
  • программа не установлена
  • данную команду может выполнять только root

Ещё несколько полезных сочетаний клавиш для командной строки Linux

  • Ctrl+l для очистки экрана
  • Ctrl+a для перехода в начало введённой команды
  • Ctrl+e для перехода в конец введённой команды
  • Ctrl+u для удаления всего, что стоит до курсора
  • Ctrl+k для удаления всего, что стоит после курсора
  • Ctrl+d для завершения текущего сеанса, закрытия консоли  

Одна из самых часто используемых:

  • Ctrl+R: Поиск по ранее запущенным командам, начните писать искомую и вам будут предлагаться самые подходящие варианты. Для запуска нажмите ENTER.

Имеется функционал копи-пастинга:

  • Ctrl+W: Вырезать слово перед курсором, добавить его в буфер обмена.
  • Ctrl+K: Вырезать часть строки после курсора, добавить её в буфер обмена.
  • Ctrl+U: Вырезать часть строки перед курсором, добавить её в буфер обмена.
  • Ctrl+Y: Вставить из буфера обмена последнее, что вы вырезали.

Продолжение: «Азы работы в командной строке Linux (часть 2)».


Рекомендуется Вам:

7 комментариев to Азы работы в командной строке Linux (часть 1)

  1. artem:

    спасибо за то что вы делаете!

  2. Аноним:

    +++

    хорошая статья для начала занятий

  3. Аноним:

    В закладки! Пока не вызубрю всё! Спасибо!

     

  4. Аноним:

    Благодарю!

  5. Аноним:

    А как вставлять в WSL из Windows?

  6. Alexey:

    Про WSL я знаю следующее — нет доступа к железу, нет графического интерфейса, НЕ НАСТОЯЩЕЕ ЯДРО Linux. То есть это примерно такая виртуальная машина-инвалид. Даже хуже Docker, в котором тоже много чего нет, но хотя бы можно установить любой полноценный и настоящи Linux.

    И намного хуже VirtualBox, в котором даже можно подключить USB устройства и есть графический интерфейс. И само собой можно установить любой полноценный Linux.

    Если вы начинаете на Windows, то я бы советовал установить Linux в виртуальную машину VirtualBox — практически полноценный виртуальный компьютер (из существенного, нет доступа к видео карте, но при изучении Linux с азов это долго не будет вас волновать).

    Допустим, если у вас очень слабый компьютер и он не потянет виртуальные машины в VirtualBox, то установите Cygwin. Достаточно скачать несколько десятков мегабайт и у вас будет очень близкая к настоящей командная строка Linux.

  7. Аноним:

    Здравствуйте,  мне нужно перейти в папку Media в убунту,  но не могу правильно прописать путь. Вроде стандартная папка,  но не могу открыть ее. Как найти?

Добавить комментарий для artem Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *