fbpx

Каталог статей

Каталог статей для размещения статей информационного характера

Как выучить

Командная строка Linux для начинающих

Командная строка Linux для начинающих

Командная строка Linux – это текстовый интерфейс вашего компьютера. Часто ее называют оболочкой, терминалом, консолью, подсказкой или различными другими названиями, поэтому она может показаться сложной и запутанной в использовании. Однако возможность копировать и вставлять команды с веб-сайта, а также мощь и гибкость командной строки означает, что ее использование может оказаться необходимым при попытке следовать инструкциям в Интернете, включая многие из них на этом самом сайте!

Этот учебник расскажет вам немного об истории командной строки, а затем проведет вас через несколько практических упражнений для ознакомления с несколькими основными командами и концепциями. Мы не предполагаем никаких предварительных знаний, но надеемся, что в конце вы будете чувствовать себя более комфортно, когда в следующий раз столкнетесь с инструкциями, начинающимися словами “Откройте терминал”.

Что вы узнаете

  • Немного истории командной строки
  • Как получить доступ к командной строке со своего компьютера
  • Как выполнять некоторые базовые операции с файлами
  • Несколько других полезных команд
  • Как объединять команды в цепочки для создания более мощных инструментов
  • Лучший способ использования полномочий администратора

Что вам понадобится

  • Компьютер под управлением Ubuntu или другой версии Linux.

Каждая система Linux включает в себя командную строку того или иного типа. Этот учебник включает некоторые конкретные шаги для Ubuntu 18.04, но большая часть содержания должна работать независимо от вашего дистрибутива Linux.

2. Краткий урок истории

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

По сравнению с графикой, текст требует очень мало ресурсов. Даже на машинах 1970-х годов, на которых работали сотни терминалов через леденяще медленные (по сегодняшним меркам) сетевые соединения, пользователи все равно могли быстро и эффективно взаимодействовать с программами. Команды также были очень краткими, чтобы уменьшить количество нажатий клавиш, что еще больше ускоряло работу с терминалом. Эта скорость и эффективность – одна из причин, по которой текстовый интерфейс широко используется и сегодня.

При входе в мэйнфрейм Unix через терминал пользователям все равно приходилось выполнять те задачи по управлению файлами, которые сейчас можно выполнить с помощью мыши и пары окон. На сайте

Для каждой из этих задач требовалась своя программа или команда: одна для изменения каталогов ( cd ), другая для просмотра их содержимого ( ls ), третья для переименования или перемещения файлов ( mv ) и так далее. Чтобы координировать выполнение каждой из этих программ, пользователь подключался к одной единственной главной программе, которая затем могла использоваться для запуска всех остальных. Обернув команды пользователя, эта программа-“оболочка”, как ее называли, могла предоставлять общие возможности для любой из них, например, передавать данные из одной команды прямо в другую или использовать специальные символы подстановки для одновременной работы с большим количеством файлов с одинаковыми именами. Пользователи могли даже писать простой код (называемый “сценариями оболочки”), который можно было использовать для автоматизации длинных серий команд оболочки, чтобы облегчить выполнение сложных задач. Оригинальная программа-оболочка Unix называлась sh, но с годами она была расширена и дополнена, поэтому в современной системе Linux вы, скорее всего, будете использовать оболочку под названием bash. Не стоит слишком сильно беспокоиться о том, какая у вас оболочка, все материалы этого руководства будут работать практически на всех из них.

Linux является своего рода потомком Unix. Основная часть Linux разработана так, чтобы вести себя аналогично системе Unix, так что большинство старых оболочек и других текстовых программ работают на ней вполне успешно. Теоретически вы даже можете подключить один из тех старых терминалов 1970-х годов к современной системе Linux и получить доступ к оболочке через него. Но в наши дни гораздо чаще используется программный терминал: тот же старый текстовый интерфейс в стиле Unix, но запущенный в окне рядом с графическими программами. Давайте посмотрим, как вы можете сделать это сами!

3. Открытие терминала

В системе Ubuntu 18.04 вы можете найти программу запуска терминала, нажав на пункт “Деятельность” в левом верхнем углу экрана, а затем набрав первые несколько букв “terminal”, “command”, “prompt” или “shell”. Да, разработчики снабдили программу запуска всеми наиболее распространенными синонимами, поэтому у вас не должно возникнуть проблем с ее поиском.

В других версиях Linux или других версиях Ubuntu пусковая установка терминала обычно находится в том же месте, что и пусковые установки других приложений. Она может быть спрятана в подменю или вам придется искать ее в самой программе запуска, но, скорее всего, она там есть.

Если вы не можете найти программу запуска или просто хотите быстрее вызвать терминал, в большинстве систем Linux для его запуска используется одна и та же комбинация клавиш по умолчанию: Ctrl-Alt-T .

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

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

Вы должны увидеть распечатанный путь к каталогу (вероятно, что-то вроде /home/YOUR_USERNAME ), а затем еще одну копию этого странного текста.

Прежде чем перейти к детальному рассмотрению того, что на самом деле сделала команда, необходимо понять несколько основных моментов. Во-первых, когда вы вводите команду, она появляется на той же строке, что и нечетный текст. Этот текст говорит о том, что компьютер готов принять команду, это способ компьютера подсказать вам. На самом деле его обычно называют приглашением, и вы можете иногда видеть инструкции, в которых говорится: “вызвать приглашение”, “открыть приглашение команды”, “в приглашении bash” и т.п. Это разные способы. Все это просто разные способы попросить вас открыть терминал, чтобы перейти к оболочке.

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

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

Важность регистра Будьте особенно внимательны к регистру при вводе текста в командной строке. Ввод PWD вместо pwd приведет к ошибке, но иногда неправильный регистр может привести к тому, что команда вроде бы выполняется, но делает не то, что вы ожидали. Мы рассмотрим регистр немного подробнее на следующей странице, а пока просто убедитесь, что все следующие строки набраны именно в том регистре, который показан на рисунке.

Чувство местоположения

Теперь к самой команде. pwd – это аббревиатура от ‘ p rint w orking d irectory’. Все, что она делает, это выводит текущий рабочий каталог оболочки. Но что такое рабочий каталог?

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

Вы можете изменить рабочий каталог с помощью команды cd, сокращение от “c hange d irectory”. Попробуйте набрать следующее:

Обратите внимание, что разделителем каталогов является прямая косая черта (“/”), а не обратная косая черта, к которой вы привыкли в системах Windows или DOS.

Теперь ваш рабочий каталог – “/”. Если вы работаете в Windows, вы, вероятно, привыкли, что каждый диск имеет свою букву, а ваш основной жесткий диск обычно называется “C:”. Unix-подобные системы не разделяют диски подобным образом. Вместо этого они имеют единую унифицированную файловую систему, и отдельные диски могут быть подключены (“смонтированы”) к любому месту в файловой системе. Каталог “/”, часто называемый корневым каталогом, является основой этой единой файловой системы. От него все остальное разветвляется, образуя дерево каталогов и подкаталогов.

Слишком много корней Остерегайтесь: хотя каталог “/” иногда называют корневым, слово “root” имеет и другое значение. root – это имя, которое используется для суперпользователя с первых дней существования Unix. Суперпользователь, как следует из названия, имеет больше полномочий, чем обычный пользователь, поэтому может легко посеять хаос плохо набранной командой. Мы рассмотрим учетную запись суперпользователя подробнее в разделе 7. Пока же вам достаточно знать, что слово “root” имеет несколько значений в мире Linux, поэтому важен контекст.

Из корневого каталога следующая команда переместит вас в каталог “home” (который является непосредственным подкаталогом каталога “/”):

Чтобы подняться в родительский каталог, в данном случае обратно в “/”, используйте специальный синтаксис двух точек ( … ) при смене каталога (обратите внимание на пробел между cd и … , в отличие от DOS вы не можете просто набрать cd… как одну команду):

Ввод cd сам по себе является быстрым сокращением для возврата в домашний каталог:

Вы также можете использовать .. несколько раз, если вам нужно подняться на несколько уровней родительских каталогов:

Обратите внимание, что в предыдущем примере мы описали путь, по которому нужно пройти через каталоги. Путь, который мы использовали, означает “начиная с рабочего каталога, перейти к родительскому / с этого нового места снова перейти к родительскому”. Поэтому, если бы мы хотели перейти прямо из нашего домашнего каталога в каталог “etc” (который находится непосредственно в корне файловой системы), мы могли бы использовать этот подход:

Относительные и абсолютные пути

В большинстве примеров, которые мы рассматривали до сих пор, используются относительные пути. То есть, место, куда вы попадете, зависит от вашего текущего рабочего каталога. Рассмотрим попытку зайти в папку “etc”. Если вы уже находитесь в корневом каталоге, это сработает отлично:

Но что если вы находитесь в своем домашнем каталоге?

Вы увидите ошибку “No such file or directory” еще до того, как запустите последнюю команду pwd . Смена каталога путем указания имени каталога или с помощью … будет иметь разные эффекты в зависимости от того, откуда вы начинаете. Путь имеет смысл только относительно вашего рабочего каталога.

Но мы видели две команды, которые являются абсолютными. Независимо от того, каков ваш текущий рабочий каталог, они будут иметь одинаковый эффект. Первая – это когда вы выполняете команду cd самостоятельно, чтобы перейти прямо в свой домашний каталог. Вторая – когда вы использовали cd / для перехода в корневой каталог. Фактически любой путь, начинающийся с прямой косой черты, является абсолютным путем. Вы можете представить его как

Это также дает нам еще один способ вернуться в свой домашний каталог и даже в папки внутри него. Предположим, вы хотите попасть в папку “Рабочий стол” с любого места на диске (обратите внимание на заглавную букву “D”). В следующей команде вам нужно будет заменить USERNAME на ваше собственное имя пользователя, команда whoami напомнит вам ваше имя пользователя, если вы не уверены:

Есть еще один удобный ярлык, который работает как абсолютный путь. Как вы уже видели, использование символа “/” в начале пути означает “начиная с корневого каталога”. Использование символа тильды (“~”) в начале пути аналогично означает “начать с моего домашнего каталога”.

Теперь этот странный текст в подсказке может иметь некоторый смысл. Замечали ли вы, что он меняется по мере перемещения по файловой системе? В системе Ubuntu он показывает ваше имя пользователя, сетевое имя вашего компьютера и текущий рабочий каталог. Но если вы находитесь где-то внутри своего домашнего каталога, он будет использовать “~” в качестве сокращения. Давайте немного побродим по файловой системе и понаблюдаем за подсказкой, пока вы это делаете:

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

4. Создание папок и файлов

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

Обратите внимание на использование абсолютного пути, чтобы убедиться, что мы создаем учебный каталог внутри /tmp . Без прямой косой черты в начале команда mkdir попыталась бы найти каталог tmp в текущем рабочем каталоге, а затем попыталась бы создать в нем учебный каталог. Если она не сможет найти каталог tmp, команда завершится неудачей.

Если вы не догадались, mkdir – это сокращение от “m a k e dir ectory”. Теперь, когда мы в безопасности внутри нашей тестовой области (если вы не уверены, проверьте pwd), давайте создадим несколько подкаталогов:

В этой команде есть кое-что необычное. До сих пор мы встречали только команды, которые работают сами по себе ( cd , pwd ) или имеют один элемент после себя ( cd / , cd ~/Desktop ). Но на этот раз мы добавили три элемента после команды mkdir. Эти вещи называются параметрами или аргументами, и разные команды могут принимать разное количество аргументов. Команда mkdir ожидает как минимум один аргумент, тогда как команда cd может работать с нулем или одним, но не более. Посмотрите, что произойдет, если вы попытаетесь передать команде неправильное количество параметров:

Вернемся к нашим новым каталогам. Команда выше создала три новых подкаталога внутри нашей папки. Давайте посмотрим на них с помощью команды ls ( l i s t ):

Если вы выполнили несколько последних команд, ваш терминал должен выглядеть примерно так:

Обратите внимание, что mkdir создал все папки в одном каталоге. Он не создал dir3 внутри dir2 внутри dir1 , или любую другую вложенную структуру. Но иногда удобно иметь возможность сделать именно это, и у mkdir есть способ:

На этот раз вы увидите, что в список был добавлен только dir4, потому что dir5 находится внутри него, а dir6 – внутри него. Позже мы установим полезный инструмент для визуализации структуры, но у вас уже достаточно знаний, чтобы убедиться в этом:

Параметр “-p”, который мы использовали, называется опцией или переключателем (в данном случае он означает “создать также каталоги p arent”). Опции используются для изменения способа работы команды, позволяя одной команде вести себя по-разному. К сожалению, из-за причуд истории и человеческой природы опции могут принимать различные формы в разных командах. Часто их можно увидеть в виде отдельных символов, перед которыми ставится дефис (как в данном случае), или в виде длинных слов, перед которыми ставятся два дефиса. Форма с одним символом позволяет комбинировать несколько опций, хотя не все команды принимают такую форму. И чтобы еще больше запутать ситуацию, некоторые команды вообще не имеют четкого определения своих опций, а то, является ли что-то опцией, определяется исключительно порядком аргументов! Вам не нужно беспокоиться обо всех возможностях, просто знайте, что опции существуют, и они могут принимать различные формы. Например, все следующие варианты означают одно и то же:

Теперь мы знаем, как создать несколько каталогов, просто передав их в качестве разделительных аргументов команде mkdir. Но предположим, что мы хотим создать каталог с пробелом в имени? Давайте попробуем:

Вероятно, вам даже не нужно было вводить это имя, чтобы догадаться, что произойдет: две новые папки, одна называется another, а другая – folder . Если вы хотите работать с пробелами в именах каталогов или файлов, их нужно экранировать. Не волнуйтесь, никто не собирается бежать из тюрьмы; бегство – это компьютерный термин, означающий использование специальных кодов для того, чтобы указать компьютеру на то, что определенные символы должны восприниматься иначе, чем обычно. Введите следующие команды, чтобы попробовать различные способы создания папок с пробелами в имени:

Хотя командная строка может использоваться для работы с файлами и папками с пробелами в именах, необходимость экранировать их с помощью кавычек или обратного слеша немного усложняет работу. Человека, часто использующего командную строку, можно узнать по именам файлов: он будет придерживаться букв и цифр и использовать подчеркивание (“_”) или дефис (“-“) вместо пробелов.

Создание файлов с помощью перенаправления

Наша демонстрационная папка начинает выглядеть довольно полной каталогов, но в ней немного не хватает файлов. Давайте исправим это, перенаправив вывод команды так, чтобы вместо вывода на экран он оказался в новом файле. Сначала напомним себе, что в данный момент показывает команда ls:

Suppose we wanted to capture the output of that command as a text file that we can look at or manipulate further. All we need to do is to add the greater-than character (“>”) в конец нашей командной строки, а затем имя файла, в который нужно записать данные:

На этот раз на экран ничего не выводится, потому что вывод перенаправляется в наш файл. Если вы просто запустите ls самостоятельно, вы увидите, что файл output.txt был создан. Мы можем использовать команду cat, чтобы просмотреть его содержимое:

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

Да, echo просто выводит свои аргументы на экран (отсюда и название).

Если вы хотите передать несколько имен файлов одной команде, есть несколько полезных сочетаний клавиш, которые помогут вам сэкономить много времени при наборе текста, если файлы имеют похожие имена. Вопросительный знак (“?”) может использоваться для обозначения “любого символа” в имени файла. Звездочка (“*”) может использоваться для обозначения “нуля или более символов”. Эти символы иногда называют “подстановочными”. Следующие команды выполняют одно и то же действие:

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

Если вы посмотрите на вывод ls, то заметите, что единственные файлы или папки, начинающиеся с буквы “t” – это три тестовых файла, которые мы только что создали, поэтому последнюю команду можно еще больше упростить до cat t* , что означает “объединить все файлы, имена которых начинаются с буквы t и за которыми следуют ноль или более других символов”. Давайте используем эту возможность для объединения всех наших файлов в один новый файл, а затем просмотрим его:

Как вы думаете, что произойдет, если мы выполним эти две команды во второй раз? Будет ли компьютер жаловаться, потому что файл уже существует? Добавит ли он текст в файл, так что он будет содержать две копии? Или полностью заменит его? Попробуйте и посмотрите, что произойдет, но чтобы не набирать команды снова, вы можете использовать клавиши со стрелками вверх и вниз для перемещения вперед и назад по истории команд, которые вы использовали. Нажмите стрелку вверх несколько раз, чтобы перейти к первой команде cat и нажмите Enter, чтобы запустить ее, затем сделайте то же самое, чтобы перейти ко второй.

Как видите, файл выглядит одинаково. Это не потому, что он остался нетронутым, а потому, что оболочка очищает все содержимое файла перед тем, как записать в него вывод команды cat. Поэтому при использовании перенаправления следует быть очень осторожным, чтобы случайно не перезаписать нужный файл. Если вы все же хотите добавить, а не заменить содержимое файлов, удвойте символ “больше-чем”:

Повторите первый cat еще несколько раз, используя для удобства стрелку вверх, и, возможно, добавьте еще несколько произвольных команд echo, пока ваш текстовый документ не станет настолько большим, что он не поместится в терминале сразу, когда вы будете использовать cat для его отображения. Чтобы увидеть весь файл целиком, нам теперь нужно использовать другую программу, называемую пейджером (потому что она отображает ваш файл по одной “странице” за раз). Стандартный пейджер старого образца назывался more, потому что он помещал строку текста внизу каждой страницы с надписью “-More-“, чтобы показать, что вы еще не все прочитали. В наши дни существует гораздо лучший пейджер, который вы должны использовать вместо него: поскольку он заменяет more , программисты решили назвать его less .

При просмотре файла с помощью less вы можете использовать клавиши “Стрелка вверх”, “Стрелка вниз”, “Страница вверх”, “Страница вниз”, “Home” и “End” для перемещения по файлу. Попробуйте воспользоваться ими, чтобы увидеть разницу между ними. Когда вы закончите просмотр файла, нажмите q, чтобы выйти из less и вернуться в командную строку.

Замечание о регистре

Системы Unix чувствительны к регистру, то есть они считают “A.txt” и “a.txt” двумя разными файлами. Если бы вы выполнили следующие строки, то в итоге получили бы три файла:

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

Может возникнуть соблазн просто нажать клавишу Caps Lock и использовать верхний регистр для всех имен файлов. Но подавляющее большинство команд командной строки имеют нижний регистр, поэтому вам придется часто включать и выключать его по мере набора текста. Большинство опытных пользователей командной строки предпочитают использовать имена файлов и каталогов в нижнем регистре, поэтому им редко приходится беспокоиться о несовпадении имен файлов или о том, какой регистр использовать для каждой буквы в имени.

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

5. Перемещение и работа с файлами

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

Давайте начнем с помещения нашего файла combined.txt в каталог dir1 с помощью команды mv ( m o v e ):

Вы можете подтвердить, что работа выполнена, используя ls, чтобы увидеть, что он отсутствует в рабочем каталоге, затем cd dir1, чтобы перейти в каталог dir1, ls, чтобы увидеть, что он там, затем cd …, чтобы переместить рабочий каталог обратно. Или вы можете сэкономить много текста, передав путь непосредственно команде ls, чтобы сразу перейти к искомому подтверждению:

Теперь предположим, что оказалось, что файл не должен быть в dir1. Давайте переместим его обратно в рабочий каталог. Мы могли бы cd в dir1, а затем использовать mv combined.txt …, чтобы сказать “переместить combined.txt в родительский каталог”. Но мы можем использовать другое сокращение пути, чтобы вообще не менять каталог. Точно так же, как две точки ( … ) обозначают родительский каталог, одна точка ( … ) может быть использована для обозначения текущего рабочего каталога. Поскольку мы знаем, что в каталоге dir1 находится только один файл, мы также можем просто использовать “*” для поиска любого имени файла в этом каталоге, что сэкономит нам еще несколько нажатий клавиш. Поэтому наша команда для перемещения файла обратно в рабочий каталог выглядит следующим образом (обратите внимание на пробел перед точкой, mv передается два параметра):

mv

Поскольку файл combined.txt теперь перемещен в dir2, что произойдет, если мы решим, что он снова находится в неправильном месте? Вместо dir2 его нужно было поместить в dir6, который находится внутри dir5, находящегося в dir4. С тем, что мы теперь знаем о путях, это тоже не проблема:

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

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

Отлично! Теперь давайте создадим еще одну копию файла в нашем рабочем каталоге, но с другим именем. Мы можем снова использовать команду cp, но вместо того, чтобы указать ей путь к каталогу в качестве последнего аргумента, мы дадим ей новое имя файла:

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

Это также работает с каталогами, давая нам возможность отсортировать те сложные каталоги с пробелами в имени, которые мы создали ранее. Чтобы не набирать заново каждую команду после первой, используйте стрелку вверх, чтобы поднять предыдущую команду в истории. Затем вы можете отредактировать команду перед ее выполнением, перемещая курсор влево и вправо с помощью клавиш со стрелками и удаляя символ слева с помощью Backspace или тот, на котором находится курсор, с помощью Delete . Наконец, введите новый символ на место и нажмите Enter или Return, чтобы запустить команду. Убедитесь, что вы изменили оба вида номера в каждой из этих строк.

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

Предупреждение В следующем разделе мы начнем удалять файлы и папки. Чтобы быть абсолютно уверенным в том, что вы случайно не удалите ничего из своей домашней папки, используйте команду pwd, чтобы дважды проверить, что вы все еще находитесь в каталоге /tmp/tutorial, прежде чем продолжить.

Теперь мы знаем, как перемещать, копировать и переименовывать файлы и каталоги. Учитывая, что это всего лишь тестовые файлы, возможно, нам действительно не нужны три разные копии файла combined.txt. Давайте немного наведем порядок, используя команду rm ( r e m ove ):

Возможно, нам следует удалить и некоторые из этих лишних каталогов:

Что там произошло? Оказывается, у rm есть одна маленькая защита. Конечно, с его помощью вы можете удалить все файлы в каталоге одной командой, случайно стерев тысячи файлов в одно мгновение, без возможности их восстановления. Но он не позволит вам удалить каталог. Полагаю, это поможет вам предотвратить случайное удаление тысяч других файлов, но для такой разрушительной команды удаление пустого каталога кажется немного мелочным. К счастью, есть команда rmdir ( r e m ove dir ectory), которая сделает эту работу за нас:

Так немного лучше, но ошибка все равно есть. Если вы запустите ls, то увидите, что большинство папок исчезло, но папка_6 все еще висит на месте. Как вы помните, папка_6 все еще содержит папку 7, а rmdir удаляет только пустые папки. Опять же, это небольшая подстраховка, чтобы вы случайно не удалили папку, полную файлов, когда вы этого не хотели.

В данном случае, однако, мы действительно хотели. Добавление опций к командам rm или rmdir позволит нам выполнять опасные действия без помощи страховочной сетки! В случае с rmdir мы можем добавить клю ч-p, чтобы команда удаляла и родительские каталоги. Думайте об этом как о противоположности команде mkdi r-p . Так, если вы запустите rmdi r-p dir1/dir2/dir3, он сначала удалит dir3, затем dir2, а затем удалит dir1. Однако при этом соблюдаются обычные правила rmdir, согласно которым удаляются только пустые каталоги, поэтому, если в каталоге dir1, например, был файл, то будут удалены только dir3 и dir2.

Более распространенный подход, когда вы действительно, действительно, действительно уверены, что хотите удалить весь каталог и все, что в нем находится, – это указать rm работать рекурсивно, используя клю ч-r, и в этом случае он будет удалять не только файлы, но и папки. Исходя из этого, вот команда, позволяющая избавиться от надоедливой папки_6 и подкаталога в ней:

Помните: хотя r m-r быстр и удобен, он также опасен. Безопаснее всего явно удалить файлы, чтобы очистить каталог, а затем cd … к родительскому каталогу, прежде чем использовать rmdir для его удаления.

Важное предупреждение В отличие от графических интерфейсов, rm не перемещает файлы в папку “Корзина” или подобную. Вместо этого он удаляет их полностью, окончательно и бесповоротно. Вы должны быть очень осторожны с параметрами, которые вы используете в rm, чтобы убедиться, что вы удаляете только тот файл(ы), который(ые) собираетесь удалить. Вы должны быть особенно осторожны при использовании подстановочных знаков, так как легко случайно удалить больше файлов, чем вы планировали. Ошибочный пробел в команде может полностью изменить ее: rm t* означает “удалить все файлы, начинающиеся с t “, тогда как rm t * означает “удалить файл t, а также любой файл, имя которого состоит из нуля или более символов, то есть все файлы в каталоге! Если вы совсем не уверены, используйте опци ю-i (i nteractive) для rm , которая попросит вас подтвердить удаление каждого файла; введите Y для удаления, N для сохранения и нажмите Ctrl-C для полной остановки операции.

6. Немного сантехники

Современные компьютеры и телефоны обладают такими графическими и звуковыми возможностями, о которых наши пользователи терминалов 70-х годов даже не могли себе представить. Тем не менее, текст все еще преобладает как средство организации и категоризации файлов. Будь то само имя файла, GPS-координаты, встроенные в фотографии, которые вы снимаете на телефон, или метаданные, хранящиеся в аудиофайле, текст по-прежнему играет жизненно важную роль в каждом аспекте вычислительной техники. К счастью для нас, командная строка Linux включает в себя несколько мощных инструментов для работы с текстовым содержимым, а также способы объединить эти инструменты вместе, чтобы создать что-то более мощное.

Давайте начнем с простого вопроса. Сколько строк в вашем файле combined.txt? Команда wc (w ord c ount) может сказать нам это, используя клю ч-l, чтобы указать, что нам нужно только количество строк (она также может подсчитывать количество символов и, как следует из названия, количество слов):

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

Этот метод работает, но создание временного файла для хранения вывода ls только для того, чтобы удалить его двумя строками позже, кажется немного чрезмерным. К счастью, командная строка Unix предоставляет возможность избежать создания временного файла, принимая вывод одной команды (называемый стандартным выводом или STDOUT) и подавая его непосредственно на вход другой команды (стандартный ввод или STDIN). Вы как будто подключаете трубу между выходом одной команды и входом следующей команды, настолько, что этот процесс фактически называется передачей данных от одной команды к другой. Вот как передать вывод команды ls в wc :

Обратите внимание, что не создается временный файл и не требуется имя файла. Трубы работают полностью в памяти, и большинство инструментов командной строки Unix будут ожидать получения входных данных из трубы, если вы не укажете им файл для работы. Если посмотреть на строку выше, то можно увидеть, что это две команды, ls

(перечислить содержимое домашнего каталога) и w c-l (подсчитать строки), разделенные символом вертикальной черты (“|”). Этот процесс передачи одной команды в другую настолько широко используется, что сам символ часто называют символом трубы, так что если вы увидите этот термин, то знайте, что он означает просто вертикальную полоску.~Обратите внимание, что пробелы вокруг символа трубы не важны, мы использовали их для ясности, но следующая команда работает так же хорошо, на этот раз для того, чтобы сообщить нам, сколько элементов находится в каталоге /etc:

Фух! Это довольно много файлов. Если бы мы захотели перечислить их все, это явно заняло бы не один экран. Как мы выяснили ранее, когда команда выдает много вывода, лучше использовать меньшее количество для его просмотра, и этот совет по-прежнему применим при использовании трубы (помните, нажмите q для выхода):

Возвращаясь к нашим собственным файлам, мы знаем, как получить количество строк в файле combined.txt, но учитывая, что он был создан путем конкатенации одних и тех же файлов несколько раз, интересно, сколько там уникальных строк? В Unix есть команда uniq, которая выводит только уникальные строки в файле. Поэтому нам нужно вывести файл и пропустить его через uniq. Но все, что нам нужно, это количество строк, поэтому нам также нужно использовать wc. К счастью, командная строка не ограничивает вас одним каналом за раз, поэтому мы можем продолжить цепочку из стольких команд, сколько нам нужно:

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

Похоже, что удаляется очень мало дублирующихся строк, если вообще удаляется. Чтобы понять почему, нам нужно обратиться к документации по команде uniq. Большинство инструментов командной строки поставляются с кратким (а иногда и не очень кратким) руководством по эксплуатации, доступ к которому осуществляется с помощью команды man ( man ual). Вывод автоматически направляется через y

Поскольку доступ к этому типу документации осуществляется с помощью команды man, вы можете услышать, что она называется “man-страницей”, то есть “посмотрите man-страницу для получения более подробной информации”. Формат страниц man часто бывает кратким, считайте их скорее кратким обзором команды, чем полным учебником. Зачастую они очень техничны, но обычно вы можете пропустить большую часть содержания и просто найти подробности об используемой опции или аргументе.

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

Тогда возникает вопрос, как перестроить строки в нашем файле так, чтобы дублирующиеся записи находились в соседних строках. Если бы мы отсортировали содержимое файла в алфавитном порядке, это помогло бы нам. Unix предлагает команду sort для выполнения именно такой сортировки. Быстрая проверка man sort показывает, что мы можем передать имя файла непосредственно команде, поэтому давайте посмотрим, что она сделает с нашим файлом:

Вы должны увидеть, что строки были упорядочены, и теперь он подходит для передачи прямо в uniq . Мы наконец-то можем завершить нашу задачу по подсчету уникальных строк в файле:

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

Многие руководства Большинство инструментов командной строки Linux содержат страницу man. Попробуйте бегло просмотреть страницы некоторых команд, с которыми вы уже сталкивались: man ls, man cp, man rmdir и так далее. Есть даже страница man для самой программы man, доступ к которой осуществляется, конечно же, с помощью man man.

7. Командная строка и суперпользователь

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

Суперпользователь – это, как следует из названия, пользователь с суперспособностями. В старых системах это был реальный пользователь с реальным именем пользователя (почти всегда “root”), под которым можно было войти в систему, если у вас был пароль. Что касается этих суперспособностей: root может изменять или удалять любые файлы в любом каталоге системы, независимо от того, кому они принадлежат; root может переписывать правила брандмауэра или запускать сетевые службы, которые могут открыть машину для атаки; root может выключить машину, даже если другие люди продолжают ее использовать. Короче говоря, root может делать практически все, что угодно, легко обходя меры защиты, которые обычно устанавливаются для того, чтобы не дать пользователям выйти за рамки своих полномочий.

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

Не используйте учетную запись root Если кто-то просит вас включить учетную запись root или войти в систему под именем root, отнеситесь к его намерениям с большим подозрением.

В попытке уменьшить эти проблемы многие дистрибутивы Linux начали поощрять использование команды su. Она называется по-разному: “s uper u ser” или “s witch u ser”, и позволяет вам перейти к другому пользователю на машине без необходимости выходить и входить снова. При использовании su без аргументов предполагается, что вы хотите перейти к пользователю root (отсюда первая интерпретация названия), но вы можете передать ему имя пользователя, чтобы перейти к определенной учетной записи пользователя (вторая интерпретация). Поощряя использование su, мы стремились убедить администраторов проводить большую часть времени, используя обычную учетную запись, переключаясь на учетную запись суперпользователя только при необходимости, а затем использовать команду выхода из системы (или сочетание клавиш Ctrl-D) как можно быстрее, чтобы вернуться к учетной записи уровня пользователя.

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

Не используйте su Если кто-то просит вас использовать su, будьте настороже. Если вы используете Ubuntu, учетная запись root по умолчанию отключена, поэтому su без параметров не сработает. Но все же не стоит рисковать, вдруг учетная запись была включена без вашего ведома. Если вас попросят использовать su с именем пользователя, то (если у вас есть пароль) вы получите доступ ко всем файлам этого пользователя и можете случайно удалить или изменить их.

При использовании

Лучше полностью отключить учетную запись root, а затем, вместо того чтобы разрешать долговременные терминальные сессии с опасными полномочиями, требовать от пользователя специального запроса прав суперпользователя на основе каждой команды. Ключом к этому подходу является команда под названием sudo (как “s witch u ser and do this command”).

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

В системе Ubuntu первый пользователь, созданный при установке системы, считается суперпользователем. При добавлении нового пользователя есть возможность создать его как администратора, в этом случае он также сможет выполнять команды суперпользователя с помощью sudo . На этом снимке экрана Ubuntu 18.04 вы можете видеть эту опцию в верхней части диалога:

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

Если вы введете свой пароль при появлении запроса, вы увидите содержимое файла /etc/shadow. Теперь очистите терминал, выполнив команду reset, и снова запустите sudo cat /etc/shadow. На этот раз файл будет отображен без запроса пароля, так как он все еще находится в кэше.

Будьте осторожны с sudo Если вам приказано выполнить команду с sudo, убедитесь, что вы понимаете, что она делает, прежде чем продолжать. Выполнение команды с помощью sudo дает ей все те же полномочия, что и суперпользователю. Например, сайт издателя программного обеспечения может попросить вас загрузить файл и изменить его разрешения, а затем использовать sudo для его запуска. Если вы не знаете, что именно делает этот файл, вы открываете лазейку, через которую в вашу систему может быть установлено вредоносное ПО. sudo может одновременно выполнять только одну команду, но эта команда сама может выполнять множество других. Относитесь к любому новому использованию sudo так же опасно, как и к входу в систему от имени root.

Для инструкций, ориентированных на Ubuntu, обычное использование sudo – это установка нового программного обеспечения в систему с помощью команд apt или apt-get. Если инструкции требуют сначала добавить новый репозиторий программного обеспечения в систему, используя команду apt-add-repository, редактируя файлы в /etc/apt , или используя “PPA” (Personal Package Archive), вам следует быть осторожным, поскольку эти источники не курируются Canonical. Но часто инструкции просто требуют установить программное обеспечение из стандартных репозиториев, что должно быть безопасно.

Установка нового программного обеспечения Существует множество различных способов установки программного обеспечения в системах Linux. Установка непосредственно из официальных репозиториев дистрибутива – самый безопасный вариант, но иногда нужное вам приложение или версия просто недоступны. При установке через любой другой механизм убедитесь, что вы получаете файлы из официального источника для данного проекта.

Признаки того, что файлы получены не из репозиториев дистрибутива, включают (но не ограничиваются) использование следующих команд: curl , wget , pip , npm , make , или любые инструкции, указывающие на необходимость изменить права доступа к файлу, чтобы сделать его исполняемым.

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

Давайте установим новую программу командной строки из стандартных репозиториев Ubuntu, чтобы проиллюстрировать использование sudo :

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

Если вернуться к команде, которая фактически установила новую программу ( sudo apt install tree ), то она выглядит несколько иначе, чем те, которые вы видели до сих пор. На практике это работает следующим образом:

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

Команда в данном случае – apt . В отличие от других команд, которые мы рассмотрели, эта команда не работает напрямую с файлами. Вместо этого она ожидает, что ее первым параметром будет команда для выполнения ( install ), а остальные параметры будут меняться в зависимости от команды.

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

Перед любой командой можно поставить sudo, чтобы запустить ее от имени суперпользователя, но в этом редко возникает необходимость. Даже файлы конфигурации системы часто можно просматривать (с помощью cat или less) от имени обычного пользователя, а права root требуются только в том случае, если вам нужно их отредактировать.

Остерегайтесь sudo su Один из трюков с sudo – использовать его для выполнения команды su. Это позволит вам получить оболочку root, даже если учетная запись root отключена. Это может быть полезно, когда вам нужно выполнить ряд команд от имени суперпользователя, чтобы избежать префиксации всех команд с помощью sudo, но это открывает перед вами точно такие же проблемы, которые были описаны для su выше. Если вы следуете инструкциям, в которых говорится о необходимости выполнить команду sudo su , имейте в виду, что все последующие команды будут выполняться от имени пользователя root.

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

8. Скрытые файлы

Прежде чем завершить этот учебник, стоит упомянуть о скрытых файлах (и папках). Они обычно используются в системах Linux для хранения настроек и конфигурационных данных и обычно скрываются просто для того, чтобы не загромождать вид ваших собственных файлов. В скрытом файле или папке нет ничего особенного, кроме названия: достаточно начать имя с точки (“.”), чтобы оно исчезло.

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

Если вы запустите ls, то увидите, что каталог .hidden, как и следовало ожидать, скрыт. Вы можете перечислить его содержимое с помощью команды ls .hidden , но поскольку он содержит только один файл, который сам по себе является скрытым, вы не получите много результатов. Но вы можете использовать переключател ь-a (show a ll) в ls, чтобы заставить его показать все в каталоге, включая скрытые файлы и папки:

Обратите внимание, что ярлыки, которые мы использовали ранее, . и …, также отображаются так, как будто это настоящие каталоги.

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

Вернитесь в свой домашний каталог ( cd ) и попробуйте запустить ls без ключ а-a, а затем с ним. Отправьте вывод через w c-l, чтобы получить более четкое представление о том, сколько скрытых файлов и папок было у вас под носом все это время. Эти файлы обычно хранят вашу личную конфигурацию, и именно так Unix-системы всегда предлагали возможность иметь настройки системного уровня (обычно в /etc ), которые могут быть отменены отдельными пользователями (благодаря скрытым файлам в их домашнем каталоге).

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

Очистка

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

В качестве последнего шага давайте закроем терминал. Вы можете просто закрыть окно, но лучше выйти из оболочки. Вы можете использовать либо команду logout, либо комбинацию клавиш Ctrl-D. Если вы планируете часто пользоваться терминалом, то, запомнив Ctrl-Alt-T для запуска терминала и Ctrl-D для его закрытия, вы вскоре почувствуете его как удобного помощника, к которому можно мгновенно обратиться и так же легко отстраниться.

9. Заключение

Этот учебник был лишь кратким введением в командную строку Linux. Мы рассмотрели несколько распространенных команд для перемещения по файловой системе и работы с файлами, но ни один учебник не может надеяться дать исчерпывающее руководство по всем доступным командам. Важнее то, что вы узнали ключевые аспекты работы с оболочкой. Вы познакомились с широко используемой терминологией (и синонимами), которую вы можете встретить в Интернете, и получили представление о некоторых ключевых частях типичной команды shell. Вы узнали об абсолютных и относительных путях, аргументах, опциях, страницах man, sudo и root, скрытых файлах и многом другом.

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

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

Дополнительная литература

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

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

Терминал после выполнения команд mkdir и ls

Добавить комментарий

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