Linux shell и терминал справка и примеры

Командная оболочка Bash

Оболочка командной строки — это текстовый пользовательский интерфейс для вашей операционной системы. В отличие от графической оболочки, которая использует графическое представление системных служб и ресурсов, оболочка командной строки использует только текст. Это фундаментальный интерфейс между вами и операционной системой, который во многих случаях обеспечивает более непосредственный контроль над процессами системы.

Для чего используется оболочка?

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

Перетащите движение

Однако, используя командную строку, эту операцию можно выполнить с помощью одной команды:

Окно терминала

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

Почему это называется «оболочка»?

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

Как мне попасть в оболочку командной строки?

Наиболее распространенный способ доступа к командной строке — использование эмулятора терминала.

Если вы используете дистрибутив Linux, он может загрузиться в X Window System (или «X»), которая позволяет вам запускать программы в своих собственных окнах и взаимодействовать с ними с помощью мыши. В X есть разные способы запуска эмулятора терминала, но вот наиболее распространенные:

  • Во многих дистрибутивах Linux используется среда рабочего стола, аналогичная Microsoft Windows, в которой есть «Пуск». Из этого меню ваше терминальное приложение обычно находится в разделе «Аксессуары». Например, Lubuntu поставляется с уже установленным эмулятором терминала LXTerminal, а ярлык находится в меню «Аксессуары».

    LXTerminal ярлык в аксессуарах

    Выбор пункта меню терминала запускает эмулятор терминала и помещает вас в командную строку.

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

    Терминал в контекстном меню

    Здесь в меню «Аксессуары» также есть опция для запуска терминала.

  • Во многих версиях Linux одновременное нажатие клавиши Super и клавиши «T» является горячей клавишей по умолчанию для запуска терминала. (Супер Ключ обычно является первым ключом слева от пробела, также известным как ключ Windows).

Если вы не можете понять, как запустить эмулятор терминала, обратитесь к документации для конкретной операционной системы и выполните поиск по запросу «терминал».

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

Когда вы запускаете эмулятор терминала, вы получаете командную строку.

Shell подсказка

Заметка

Все эти примеры выполняются с использованием Bourne-Again Shell (bash), которая является оболочкой командной строки по умолчанию в Linux.

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

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

Ваше имяВаш логин.
@Символ at разделяет имя пользователя и имя хоста.
Ваш хозяинИмя хоста системы.
:Двоеточие — это символ, который разделяет имя хоста и рабочий каталог.
~Наш текущий («рабочий») каталог. Тильда («~») — это специальный символ, который представляет наш домашний каталог. Когда вы запускаете сеанс оболочки, по умолчанию это каталог, с которого вы начинаете работать.
$Специальный символ, который указывает, что у нас нет привилегий суперпользователя. Если вы вошли в систему как root (суперпользователь), этот символ изменится на #.

Ввод команд

Давайте введем нашу первую команду. Мы должны начать с перечисления файлов в нашем домашнем каталоге. Самый простой способ увидеть все эти файлы — использовать команду ls; введите ls в командной строке и нажмите Enter.

Запрос командной строки после команды ls

Как показано выше, команда ls выводит содержимое каталога и помещает нас в другую командную строку.

Заметка

Все команды и имена файлов в Unix и Linux чувствительны к регистру. Например, команда ls должна вводиться строчными буквами, как показано выше.

Для более подробного перечисления содержимого каталога мы можем указать параметры командной строки, также известные как ключи. Это дополнительные аргументы команды, которые изменяют способ ее работы. Здесь мы будем использовать опцию -l (использовать формат длинного списка), чтобы получить больше информации из нашего списка.

команда ls и ls -l

Как показано выше, команда ls -l предоставляет нам дополнительную информацию о содержимом нашего домашнего каталога. На данный момент наиболее важной информацией, которую мы должны заметить, является то, что первая буква в списках — это d, означающая, что каждое из этих каталогов само по себе является каталогом.

Очистка экрана

Прежде чем делать что-то еще, давайте очистим экран, чтобы удалить беспорядок, создаваемый выводом наших предыдущих команд. Используйте команду очистки, введя команду clear в новой командной строке и нажав Enter.

Команда очистки оболочки Linux

После нажатия Enter, экран очищается и помещает вас в новую командную строку в верхней части экрана вашего терминала.

Очищена оболочка командной строки

Смена каталога

Давайте перейдем в нашу папку документов с помощью команды cd («изменить каталог»). Чтобы изменить текущий каталог, введите «cd», затем пробел, затем имя каталога, на который вы хотите изменить, и нажмите Enter.

Команда cd предполагает, что имя любого указанного вами каталога относится к вашему текущему каталогу. Поэтому, чтобы перейти в каталог документов, который существует в нашем текущем каталоге, введите «cd documents».

Linux cd команда

Теперь в командной строке отображается новый рабочий каталог: ~ / documents, который эквивалентен полному пути: / home / yourname / documents. Независимо от того, под каким пользователем вы вошли, «~» всегда представляет ваш домашний каталог. В этом примере новый рабочий каталог также отображается в строке заголовка окна нашего терминала.

Заметка

В отличие от MS-DOS и Microsoft Windows, имена иерархических каталогов в Linux отделяются косой чертой («/»), а не обратной косой чертой («\»). Это изменение символов является принципиальной разницей между этими различными операционными системами.

В любой момент вы можете проверить свой текущий каталог с помощью команды pwd («print working directory»).

Команда Linux pwd

Команда выводит имя текущего каталога на терминал, в данном случае «/ home / yourname / documents». Опять же, с «~ / documents» «~» представляет наш домашний каталог, который является / home / yourname. Поэтому, если мы находимся в нашем домашнем каталоге, ввод «cd documents», «cd / home / yourname / documents» или «cd ~ / documents» поместит нас в один и тот же каталог.

Теперь давайте переместимся на один каталог назад в наш домашний каталог. Специальное имя каталога «..» (двойная точка) означает «один каталог вверх».

команда cd .. shell

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

Заметка

Если вы более знакомы с MS-DOS, имейте в виду, что между cd и двумя периодами должен быть пробел.

Перемещение файлов

Теперь давайте познакомимся с тем, как перемещать файлы.

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

Перемещение в папку загрузок на оболочке

Затем перечислите файлы в каталоге с помощью команды ls.

ls файлы в окне загрузки

Здесь мы видим два файла JPEG. Давайте вытащим их из папки загрузок и разместим в более подходящем месте, например в папке с изображениями. Чтобы переместить эти файлы, мы будем использовать команду mv («move»).

Команда mv принимает следующую общую форму.

mv [ОПЦИИ ...] ИСТОЧНИК НАЗНАЧЕНИЯ

ОПЦИИ заключены в квадратные скобки, потому что вам не нужно указывать какие-либо опции для завершения команды. Аргументы SOURCE и DESTINATION являются обязательными.

SOURCE — это имя файла или файлов, которые вы хотите переместить. DESTINATION — это место, где вы хотите переместить их. Если DESTINATION является именем каталога, файл или файлы перемещаются в этот каталог.

В данный момент мы находимся в каталоге / home / yourname / downloads и хотим переместить файлы в / home / yourname / images. Мы могли бы указать наш DESTINATION, используя полный путь («/ home / yourname / images»), или как путь относительно нашего текущего каталога («../images»), или используя тильду в качестве сокращения нашего домашнего каталога ( «~ / изображений»). Все они эквивалентны и дают одинаковый результат. Давайте используем относительный путь для нашего НАЗНАЧЕНИЯ: ../images.

Итак, как мы будем указывать наш ИСТОЧНИК?

Мы хотим переместить оба файла, и они являются единственными файлами в каталоге. Итак, самый простой способ указать их — сказать mv «переместить все файлы в этом каталоге в ../images». Мы можем сделать это, используя подстановочный знак.

Подстановочный знак — это специальный символ, который может представлять более одного имени файла (или более одной части имени файла). Здесь мы будем использовать подстановочный знак «звездочка» («*»). Если мы используем * в качестве полного имени файла, оболочка применяет нашу команду к каждому файлу в нашем рабочем каталоге.

Итак, наша команда будет выглядеть следующим образом: «mv * ../images». Давайте введем это сейчас.

Перемещение с помощью команды mv в оболочке Linux

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

Давайте проверим, что файлы были перемещены. Мы можем перечислить содержимое другого каталога, запустив ls и указав путь. В этом случае наш путь будет «../images.»

Листинг файлов в родительском каталоге в оболочке

Изображения находятся там, вместе с другим каталогом, который уже существовал («обои»). Мы должны создать наш новый каталог, чтобы лучше упорядочить наши изображения и не загромождать основной каталог изображений. Давайте сделаем это сейчас.

Создание каталогов

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

Перемещение в каталог изображений в оболочке Linux

Теперь давайте создадим новый каталог для наших изображений пингвинов. Создание новых каталогов выполняется командой mkdir.

Самая простая форма команды mkdir — дать ей один аргумент: имя нового каталога. Мы хотели бы создать новый каталог в нашем текущем каталоге, поэтому нам не нужно указывать mkdir полный путь, а только имя самого каталога. Давайте назовем наш новый каталог penguin-pix.

Итак, команда, которую мы собираемся ввести, это «mkdir penguin-pix», чтобы создать новый каталог.

Использование команды mkdir для создания каталога в оболочке Linux

Теперь давайте проверим это, перечислив содержимое каталога.

Перечисление файлов в каталоге images с помощью команды ls

Заметка

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

Если мы не можем определить по цвету имен, мы всегда можем проверить, какие из этих файлов являются каталогами, вызвав ls с опцией -l (длинный список).

Делать длинный список файлов в каталоге изображений

Дополнительная информация включает в себя следующее.

  • Разрешения — у кого есть доступ к файлу и какой доступ.
  • Владение — кто является владельцем файла.
  • Авторство — кто создал файл.
  • Размер файла — размер файла в байтах.
  • mtime — дата и время последнего изменения файла.

Первая буква в строках для penguin-pix и обоев — это буква «d», указывающая, что это каталоги. Для получения дополнительной информации о списках файлов см. Документацию команды chmod.

Теперь мы можем переместить наши изображения в новый каталог. Чтобы сообщить mv, какие файлы перемещать, мы можем снова использовать подстановочный знак, но на этот раз давайте удостоверимся, что он знает, что нужно перемещать только файлы изображений, а не каталоги. Поскольку оба файла изображений заканчиваются расширением JPEG .jpg, мы можем указать имя файла «* .jpg»: это говорит оболочке «файлы, которые я хочу переместить, — это любые файлы в текущем каталоге, заканчивающиеся на .jpg». Итак, наша команда будет выглядеть так: «mv * .jpg penguin-pix».

Перемещение всех файлов JPEG в текущем каталоге в другой каталог в оболочке Linux

Сообщение об ошибке не выдавалось, что означает, что команда выполнена успешно. Давайте проверим, что файлы были перемещены, перечислив содержимое penguin-pix.

Перечисление всех файлов каталога

Удаление файлов

У нас есть две фотографии пингвинов, но, возможно, мы решили, что нам нужен только real-penguin.jpg, и нам больше не нужен tux-the-penguin.jpg. Мы можем удалить этот файл с помощью команды rm («удалить»).

Нам нужно предоставить rm имя файла для удаления. В данный момент мы находимся в каталоге images, но наше изображение теперь находится в подкаталоге penguin-pix. Мы можем изменить наш рабочий каталог на penguin-pix и затем запустить команду, но это только дополнительная работа, мы можем пропустить этот шаг, используя каталог как часть пути.

Наша команда будет выглядеть так: «rm penguin-pix / tux-the-penguin.jpg».

Удаление файла в оболочке Linux

Еще раз, оболочка выполняет нашу команду без обратной связи. Команда выполнена успешно, поэтому оболочка возвращает нас в командную строку, сообщая нам, что она готова к другой команде.

Предупреждение

В отличие от перетаскивания файла в корзину или корзину Microsoft Windows, нет способа отменить удаление файла с помощью команды rm. Удаляйте свои файлы с осторожностью! После того, как ушел, (практически) невозможно вернуть их.

Давайте проверим, что файл действительно исчез.

Проверка того, что файл был удален

Удаление каталогов

Это отлично подходит для файлов, но как насчет каталогов? По умолчанию rm удаляет только файлы, а не каталоги.

Команда rmdir («удалить каталог») удаляет каталог, предполагая, что он пуст. Давайте проверим его, создав новую пустую директорию с помощью команды «mkdir test-directory».

Создать новый каталог

Давайте проверим это с помощью команды «ls -l».

Убедитесь, что каталог был создан

Теперь мы можем удалить наш новый каталог, используя команду «rmdir test-directory», и проверить, что его больше нет, снова выполнив команду «ls -l».

Удалить каталог

Да, это ушло.

Однако что произойдет, если мы попытаемся «rmdir penguin-pix»?

Получение ошибки, что rmdir не удалось удалить каталог

Мы не можем запустить этот каталог, потому что он не пустой.

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

Обычно rm не работает с каталогом. Однако, если вызывается с параметром -r, rm рекурсивно удаляет каталог, что означает, что он перемещается в каталог и любой подкаталог, удаляя все, включая каталог. Итак, если мы запустим команду «rm -r penguin-pix», она удалит каталог и файл, который был внутри. Если бы внутри были какие-либо каталоги, они также были бы удалены.

Использование команды -r для рекурсивного удаления каталога

Предупреждение

Еще раз, нет отмены для этой команды. Когда вы rm -r каталог, этот каталог и все, что внутри него, удаляется навсегда! Как и большинство команд Linux, rm очень мощный и должен использоваться с осторожностью.

Копирование файлов

Чтобы скопировать файл, используйте команду cp.

CP ИСТОЧНИК НАЗНАЧЕНИЯ

SOURCE — это имя файла, который вы хотите скопировать, а DESTINATION — это путь, указывающий место назначения нового файла. Местом назначения может быть новое имя файла или имя каталога, в котором вы хотите разместить копию.

Допустим, у нас есть текстовый файл в нашей папке документов с именем orig.txt, и мы хотим сделать его копию с именем copy.txt. Команда, которую мы должны использовать, это «cp orig.txt copy.txt».

Копирование файла в оболочке Linux

Если, с другой стороны, мы указываем каталог в качестве пункта назначения команды cp, он создает копию с тем же именем, что и оригинал в каталоге назначения. В следующем примере мы делаем шесть вещей.

  1. Перечислите содержимое рабочего каталога.
  2. Создайте новый каталог под названием копии.
  3. Перечислите содержимое рабочего каталога, который теперь включает в себя каталог копий.
  4. Перечислите содержимое каталога с копиями (нет ни одного. Он пуст).
  5. Скопируйте copy.txt в каталог копий.
  6. Перечислите содержимое каталога копий, который теперь содержит копию copy.txt.

Команды оболочки Linux

Переименование файла

Команду mv также можно использовать для изменения имени файла. Например, команда «mv orig.txt original.txt» переименует файл orig.txt в original.txt.

Переименование файла в оболочке Linux

Переименование каталога

Переименование каталогов работает точно так же, как переименование файлов с помощью команды mv. Здесь мы создаем каталог с именем «копия», но переименовываем его в «копии», используя команду «mv copy копии».

Переименование каталога в оболочке Linux

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

Авто завершение

Большинство оболочек командной строки Linux автоматически заканчивают слово, которое вы начали вводить, если вы нажимаете клавишу Tab. Автозаполнение может помочь вам сэкономить время, особенно с длинными именами файлов. Например, допустим, у вас есть три файла в папке с документами: penguin-diving.jpg, penguin.jpg и penguins.jpg.

Список файлов с одинаковыми именами

Если вы наберете команду, а затем наберете «p» и нажмете клавишу «Tab», оболочка завершит слово «пингвин» для вас.

Автоматическое заполнение вкладки оболочки

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

Если вы находитесь в ситуации, когда для того, что вы уже набрали, имеется более одного совпадения при автозаполнении, дважды нажмите клавишу Tab, чтобы оболочка выдавала список всех возможных совпадений. Так что в ситуации выше, где вы набрали p и Tab, и оболочка автоматически заполняет пингвина для вас. Нажмите клавишу Tab еще два раза, чтобы получить все возможные варианты, и вы снова окажетесь в приглашении, где ваша команда будет заполнена там, где вы остановились.

Отображение доступных файлов автозаполнения в оболочке Linux

Автозаполнение также работает для завершения имен путей и команд.

Выход из оболочки

Ввод команды выхода завершает командную оболочку и либо закрывает окно терминала, либо подготавливает окно терминала к закрытию вручную.

Ссылка на основную публикацию
Adblock
detector