Находясь в корневом каталоге только что отформатированного диска, студент создал 3 каталога, затем в

Обновлено: 01.07.2024

Теперь мы знаем, как просматривать файлы и каталоги, но как их создавать?

В этом выпуске мы узнаем о создании и перемещении файлов и каталогов на примере каталога для упражнений/записи.

Шаг первый: посмотрите, где мы находимся и что у нас уже есть

Мы по-прежнему должны находиться в каталоге shell-lesson-data на рабочем столе, что мы можем проверить, используя:

Далее мы перейдем в каталог для упражнений/записи и посмотрим, что в нем содержится:

Создать каталог

Давайте создадим новый каталог с именем thesis с помощью команды mkdir thesis (у которой нет вывода):

Как можно догадаться по названию, mkdir означает «создать каталог». Поскольку тезис является относительным путем (т. е. не имеет начального слэша, например /what/ever/thesis ), новый каталог создается в текущем рабочем каталоге:

Поскольку мы только что создали каталог тезисов, в нем еще ничего нет:

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

Опция -R команды ls отобразит список всех вложенных подкаталогов внутри каталога. Давайте используем ls -FR для рекурсивного отображения новой иерархии каталогов, которую мы только что создали в каталоге проекта:

Два способа сделать одно и то же

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

Хорошие имена для файлов и каталогов

  1. Не используйте пробелы.

    Пробелы могут сделать имя более осмысленным, но, поскольку пробелы используются для разделения аргументов в командной строке, лучше избегать их в именах файлов и каталоги. Вместо этого вы можете использовать - или _ (например, north-pacific-gyre/ , а не north pacific gyre/ ). Чтобы проверить это, попробуйте ввести mkdir north pacific gyre и посмотрите, какой каталог (или каталоги!) создается при проверке с помощью ls -F .

  2. Не начинайте имя с - (тире).

    Команды рассматривают имена, начинающиеся с -, как параметры.

  3. Наклеивайте буквы, цифры, . (точка или точка), - (тире) и _ (подчеркивание).

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

Создать текстовый файл

Давайте изменим наш рабочий каталог на thesis с помощью cd , затем запустим текстовый редактор Nano, чтобы создать файл с именем draft.txt :

Какой редактор?

Когда мы говорим, что nano — это текстовый редактор, мы на самом деле имеем в виду текст: он может работать только с простыми символьными данными, а не с таблицами, изображениями или любым другим удобным для человека носителем. Мы используем его в примерах, потому что это один из наименее сложных текстовых редакторов. Однако из-за этой особенности он может быть недостаточно мощным или достаточно гибким для работы, которую вам нужно будет выполнить после этого семинара. В системах Unix (таких как Linux и macOS) многие программисты используют Emacs или Vim (на изучение обоих требуется больше времени) или графический редактор, такой как Gedit. В Windows вы можете использовать Notepad++. В Windows также есть встроенный редактор под названием «Блокнот», который можно запустить из командной строки так же, как и nano для целей этого урока.

Независимо от того, какой редактор вы используете, вам необходимо знать где он ищет и сохраняет файлы. Если вы запустите его из оболочки, он (вероятно) будет использовать ваш текущий рабочий каталог в качестве местоположения по умолчанию. Если вы используете меню «Пуск» вашего компьютера, вместо этого он может захотеть сохранить файлы на рабочем столе или в каталоге документов. Вы можете изменить это, перейдя в другой каталог при первом нажатии кнопки «Сохранить как…»

Давайте напечатаем несколько строк текста. Как только мы довольны нашим текстом, мы можем нажать Ctrl + O (нажмите клавишу Ctrl или Control и, удерживая ее, нажмите клавишу O), чтобы записать наши данные на диск (нас спросят, какой файл мы хотим чтобы сохранить это в: нажмите клавишу «Ввод», чтобы принять предложенный по умолчанию вариант draft.txt ).

скриншот текстового редактора nano в действии

После того, как наш файл будет сохранен, мы можем использовать Ctrl + X, чтобы выйти из редактора и вернуться в оболочку.

Control, Ctrl или клавиша ^

  • Control-X
  • Control+X
  • Ctrl + X
  • Ctrl+X
  • ^X
  • C-x

nano не оставляет никаких выводов на экране после выхода, но теперь ls показывает, что мы создали файл с именем draft.txt :

Создание файлов другим способом

Мы увидели, как создавать текстовые файлы с помощью редактора nano. Теперь попробуйте следующую команду:

  1. Что сделала сенсорная команда? Когда вы просматриваете свой текущий каталог с помощью проводника файлов с графическим интерфейсом, отображается ли файл?

  2. Используйте ls -l для проверки файлов. Насколько велик my_file.txt?

  3. В каких случаях вам может понадобиться создать файл таким образом?

Решение

  1. Команда touch создает новый файл с именем my_file.txt в вашем текущем каталоге. Вы можете просмотреть этот вновь сгенерированный файл, набрав ls в командной строке. my_file.txt также можно просмотреть в проводнике файлов с графическим интерфейсом.

  2. При проверке файла с помощью ls -l обратите внимание, что размер файла my_file.txt равен 0 байт. Другими словами, он не содержит данных. Если вы откроете файл my_file.txt в текстовом редакторе, он будет пустым.

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

Что в имени?

Возможно, вы заметили, что все файлы Нелле называются "что-то точка-что-то", и в этой части урока мы всегда использовали расширение .txt . Это всего лишь соглашение: мы можем назвать файл mythesis или почти что угодно. Тем не менее, большинство людей большую часть времени используют имена, состоящие из двух частей, чтобы помочь им (и их программам) различать разные типы файлов. Вторая часть такого имени называется расширением имени файла и указывает, какой тип данных содержит файл: .txt указывает на обычный текстовый файл, .pdf указывает на PDF-документ, .cfg — это файл конфигурации, полный параметров для какой-либо программы или другое, .jpg — изображение в формате PNG и т. д.

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

Именование PNG-изображения кита поскольку whit.mp3 каким-то волшебным образом не превращает его в запись песни кита, хотя может заставить операционную систему попытаться открыть его с помощью музыкального проигрывателя, когда кто-то дважды щелкнет по нему.

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

Возвращаясь к каталогу shell-lesson-data/writing,

В нашем каталоге тезисов у нас есть файл draft.txt с не слишком информативным именем, поэтому давайте изменим имя файла с помощью mv , что является сокращением от «move»:

Первый аргумент сообщает mv, что мы «перемещаем», а второй — куда это должно двигаться. В этом случае мы перемещаем thesis/draft.txt в thesis/quotes.txt, что имеет тот же эффект, что и переименование файла. Действительно, ls показывает нам, что тезис теперь содержит один файл с именем quotes.txt:

Нужно быть осторожным при указании имени целевого файла, так как mv молча перезапишет любой существующий файл с таким же именем, что может привести к потере данных. Дополнительный параметр mv -i (или mv --interactive ) можно использовать, чтобы заставить mv запрашивать подтверждение перед перезаписью.

Обратите внимание, что mv также работает с каталогами.

Давайте переместим файл quotes.txt в текущий рабочий каталог. Мы снова используем mv, но на этот раз мы будем использовать только имя каталога в качестве второго аргумента, чтобы сообщить mv, что мы хотим сохранить имя файла, но поместим файл в новое место. (Вот почему команда называется «переместить».) В этом случае имя каталога, которое мы используем, является специальным именем каталога. о которых мы упоминали ранее.

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

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

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

Перемещение файлов в новую папку

После выполнения следующих команд Джейми понимает, что поместила файлы sucrose.dat и maltose.dat не в ту папку. Файлы должны были быть помещены в папку raw.

Заполните пробелы, чтобы переместить эти файлы в папку raw/ (то есть в ту, куда она забыла их положить)

Решение

Напоминаем, что .. относится к родительскому каталогу (т. е. каталогу выше текущего), а . относится к текущему каталогу.

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

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

Мы также можем скопировать каталог и все его содержимое, используя рекурсивную опцию -r , например для резервного копирования каталога:

Мы можем проверить результат, перечислив содержимое папки thesis и thesis_backup:

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

  1. cp statstics.txt Statistics.txt
  2. mv statstics.txt stats.txt
  3. mv statstics.txt .
  4. cp statstics.txt.

Решение

  1. Нет. Хотя при этом будет создан файл с правильным именем, файл с неправильным именем все еще существует в каталоге, и его необходимо удалить.
  2. Да, переименовать файл можно.
  3. Нет, точка (.) указывает, куда переместить файл, но не дает нового имени файла; одинаковые имена файлов не могут быть созданы.
  4. Нет, точка (.) указывает, куда копировать файл, но не дает нового имени файла; одинаковые имена файлов не могут быть созданы.

Перемещение и копирование

Что выводит закрывающая команда ls в показанной ниже последовательности?

  1. белки-сохраненные.dat рекомбинированы
  2. воссоединено
  3. белки.dat рекомбинированы
  4. proteins-saved.dat

Решение

  1. Нет, см. объяснение выше. .profiles-saved.dat находится в папке /Users/jamie
  2. Да
  3. Нет, см. объяснение выше. .projects.dat находится в папке /Users/jamie/data/recombined
  4. Нет, см. объяснение выше. .profiles-saved.dat находится в папке /Users/jamie

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

Возвращаясь к каталогу shell-lesson-data/writing, давайте наведем порядок в этом каталоге, удалив созданный нами файл quotes.txt. Для этого мы будем использовать команду Unix — rm (сокращение от «удалить»):

Мы можем подтвердить, что файл исчез, используя ls :

Удаление навсегда

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

Безопасное использование rm

Что происходит, когда мы выполняем команду rm -i thesis_backup/quotations.txt? Зачем нам нужна эта защита при использовании rm ?

Решение

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

Если мы попытаемся удалить каталог тезисов с помощью rm thesis , мы получим сообщение об ошибке:

Это происходит потому, что rm по умолчанию работает только с файлами, а не с каталогами.

rm может удалить каталог и все его содержимое, если мы используем рекурсивную опцию -r , и он сделает это без каких-либо запросов на подтверждение:

Учитывая, что нет возможности восстановить файлы, удаленные с помощью оболочки, rm -r следует использовать с большой осторожностью (можно рассмотреть возможность добавления интерактивной опции rm -r -i ).

Операции с несколькими файлами и каталогами

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

Копировать с несколькими именами файлов

В этом упражнении вы можете протестировать команды в каталоге shell-lesson-data/exercise-data.

В приведенном ниже примере что делает cp, если задано несколько имен файлов и имя каталога?

В приведенном ниже примере что делает cp, если задано три или более имен файлов?

Решение

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

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

Использование подстановочных знаков для одновременного доступа к нескольким файлам

Подстановочные знаки

* — это подстановочный знак, который соответствует нулю или более символов. Давайте рассмотрим каталог shell-lesson-data/exercise-data/proteins: *.pdb соответствует ethan.pdb, propane.pdb и каждому файлу, оканчивающемуся на «.pdb». С другой стороны, p*.pdb соответствует только pentane.pdb и propane.pdb , потому что «p» в начале соответствует только именам файлов, начинающимся с буквы «p».

? также является подстановочным знаком, но соответствует только одному символу. Таким образом, ?ethan.pdb будет соответствовать метану.pdb, тогда как *ethan.pdb соответствует как ethan.pdb, так и methan.pdb.

Подстановочные знаки можно использовать в сочетании друг с другом, например. . ane.pdb соответствует трем символам, за которыми следует ane.pdb , что дает cubane.pdb ethan.pdb octane.pdb .

Когда оболочка видит подстановочный знак, он расширяет подстановочный знак, чтобы создать список совпадающих имен файлов перед выполнением запрошенной команды. В качестве исключения, если выражение с подстановочным знаком не соответствует ни одному файлу, Bash передаст выражение в качестве аргумента команде как есть. Например, ввод ls *.pdf в каталоге белков (который содержит только файлы с именами, заканчивающимися на .pdb ) приводит к сообщению об ошибке, что файл с именем *.pdf отсутствует. Однако обычно такие команды, как wc и ls, видят списки имен файлов, соответствующих этим выражениям, но не сами подстановочные знаки. Именно оболочка, а не другие программы, занимается раскрытием подстановочных знаков.

Список имен файлов, соответствующих шаблону

  1. ls *t*ane.pdb
  2. ls *t?ne.*
  3. ls *t??ne.pdb
  4. этан.*

Решение

Решение 3.

1. показывает все файлы, имена которых содержат ноль или более символов (*), за которыми следует буква t, затем ноль или более символов (*), за которыми следует ane.pdb. Это дает этан.pdb метан.pdb октан.pdb пентан.pdb .

2. показывает все файлы, имена которых начинаются с нуля или более символов ( * ), за которыми следует буква t , затем один символ ( ? ), затем ne. за которым следует ноль или более символов ( * ). Это даст нам octane.pdb и pentane.pdb, но не соответствует ничему, что заканчивается на thane.pdb.

3. устраняет проблемы варианта 2, сопоставляя два символа ( ?? ) между t и ne . Это решение.

4. показывает только файлы, начинающиеся с этана. .

Подробнее о подстановочных знаках

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

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

Помогите Сэму, заполнив пустые поля.

Полученная структура каталогов должна выглядеть так

Мы узнали, как использовать pwd для определения нашего текущего местоположения в нашей файловой системе. Мы также узнали, как использовать cd для изменения местоположения и ls для просмотра содержимого каталога. Теперь мы изучим некоторые дополнительные команды для перемещения по нашей файловой системе.

Используйте команды, которые мы уже изучили, чтобы перейти в каталог shell_data/untrimmed_fastq, если вы еще этого не сделали.

Что, если мы хотим вернуться назад и выйти из этого каталога в наш каталог верхнего уровня? Можем ли мы ввести cd shell_data ? Попробуйте и посмотрите, что получится.

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

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

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

Из этого вывода видно, что .. действительно возвращает нас на один уровень назад в нашей файловой системе.

Вы можете связать их вместе следующим образом:

распечатывает содержимое /home .

Поиск скрытых каталогов

Сначала перейдите в каталог shell_data. В этом каталоге есть скрытый каталог. Изучите параметры ls, чтобы узнать, как увидеть скрытые каталоги. Перечислите содержимое каталога и определите имя текстового файла в этом каталоге.

Подсказка: скрытые файлы и папки в Unix начинаются с . , например .my_hidden_directory

Решение

Сначала используйте команду man, чтобы просмотреть параметры ls .

Опция -a является сокращением от all и говорит, что она заставляет ls «не игнорировать записи, начинающиеся с ». Это тот вариант, который нам нужен.

Имя скрытого каталога — .hidden . Мы можем перейти в этот каталог, используя cd .

А затем выведите список содержимого каталога с помощью ls .

Имя текстового файла — youfoundit.txt .

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

Просмотр содержимого других каталогов

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

Затем введите команду:

Это отобразит содержимое каталога shell_data, и вам не нужно будет туда переходить.

Команда cd работает аналогичным образом.

Это приведет вас к каталогу untrimmed_fastq без необходимости перехода через промежуточный каталог.

Практика навигации

Перейдите в свой домашний каталог. Оттуда перечислите содержимое каталога untrimmed_fastq.

Решение

Полный и относительный пути

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

Это полное имя вашего домашнего каталога. Это говорит вам, что вы находитесь в каталоге с именем dcuser, который находится внутри каталога с именем home, который находится в самом верхнем каталоге в иерархии. На самом верху иерархии находится каталог с именем /, который обычно называют корневым каталогом. Итак, подведем итог: dcuser — это каталог в доме, который является каталогом в / . Подробнее о root и home в следующем разделе.

Теперь введите следующую команду:

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

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

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

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

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

Со временем вам станет легче запоминать структуру используемых вами каталогов и способы быстрой навигации по ним.

Относительное разрешение пути

  1. ../backup: Нет такого файла или каталога
  2. 01.12.2012 08.01.2013 27.01.2013
  3. 01.12.2012/08.01.2013/27.01.2013/
  4. исходный pnas_final pnas_sub

Решение

  1. Нет: есть резервная копия каталога в /Users .
  2. Нет: это содержимое Users/thing/backup , но с .. мы запросили один уровень выше.
  3. Нет: см. предыдущее объяснение. Кроме того, мы не указали -F для отображения / в конце имен каталогов.
  4. Да: ../backup относится к /Users/backup .

Быстрые клавиши навигации

Корневой каталог — это каталог самого высокого уровня в вашей файловой системе, содержащий файлы, важные для ежедневной работы вашего компьютера. Хотя вы будете использовать корень ( / ) в начале ваших абсолютных путей, важно избегать работы с данными в этих каталогах более высокого уровня, поскольку ваши команды могут навсегда изменить файлы, необходимые для работы операционной системы. Во многих случаях для запуска команд в корневых каталогах потребуются специальные разрешения, которые здесь не обсуждаются, поэтому лучше избегать их и работать в своем домашнем каталоге. Работа с домашним каталогом очень распространена. Символ тильды ~ — это ярлык для вашего домашнего каталога. В нашем случае корневой каталог находится на два уровня выше нашего домашнего каталога, поэтому cd или cd ~ приведет вас к /home/dcuser, а cd / приведет вас к / . Перейдите в каталог shell_data:

Затем введите команду:

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

Команды cd и cd ~ очень полезны для быстрого возврата в домашний каталог. В последующих уроках мы будем использовать символ ~ для указания нашего домашнего каталога.

Пришло время создать папку в вашей системе.

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

если вы хотите больше узнать о программировании!

Как создать папку в Терминале? Время для новой команды!

мкдир

Используйте команду mkdir для создания каталога. mkdir — это сокращение от «создать каталог». Укажите имя каталога (папки), который вы хотите создать сразу после него. Если бы я хотел создать папку с именем new-folder , я бы запустил:

Давайте рассмотрим конкретные примеры.

Создание папок

Пример без кода

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

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

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

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

В командной строке убедитесь, что вы находитесь в том месте в вашей системе, которое вы помните. Подходящим местом может быть папка "Рабочий стол" или "Документы".

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

Распечатать рабочий каталог (увидеть, где вы находитесь):

Выведите список содержимого вашего текущего каталога:

Измените каталоги на каталог рабочего стола (если у вас нет папки рабочего стола, ничего страшного. Замените другое имя папки из списка, выведенного командой ls).

Создайте каталог (папку) под названием School:

Измените каталоги на школьный каталог:

Ваше окно терминала будет выглядеть следующим образом:

Создать

Создайте каталог «Школа» (mkdir School) и перейдите в него (cd School)

Простое создание папки с помощью mkdir не приводит к перемещению в эту папку. Вам нужно запустить cd плюс имя папки, чтобы сделать это!

Имена папок, состоящие из нескольких слов

В нашем примере папка должна называться "Второй семестр". Мы только что создали папку под названием «Школа», чтобы все было организовано. Теоретически я бы запустил mkdir Second semester, чтобы создать внутри папку под названием «Второй семестр», верно?

Нет! 😖 Вы должны обратить особое внимание на имена папок, которые содержат пробелы.

Обратите внимание, что при запуске mkdir Second semester создаются две папки (1. "Second", 2. "Semester") вместо одной:

ошибки mkdir: две папки вместо одной

ошибки mkdir: две папки вместо одной

Запустив mkdir Second semester , я случайно создал 2 файла: один с именем "Second" и один с именем "semester". Это связано с тем, что мой компьютер интерпретирует пробел между двумя словами как разграничение между двумя именами папок, а не просто пробел в середине одного имени.

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

Решения для папок с несколькими словами

Чтобы создать или сослаться на папку с несколькими словами, у вас есть три варианта:

используйте кавычки, например, mkdir "Второй семестр"

Это говорит о том, что имя папки должно включать все символы в кавычках.

экранировать специальный символ (символ, интерпретируемый вашим компьютером особым образом), используя обратную косую черту, например, mkdir Second\semester

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

В программировании вы часто используете обратную косую черту для экранирования специальных символов!

используйте дефисы вместо пробелов, чтобы полностью создать другое имя папки (например, mkdir Second-semester )

Можно использовать кавычки: 👍

Имя папки из нескольких слов в кавычках

Имя папки из нескольких слов в кавычках

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

Имя папки, состоящее из нескольких слов, с экранированным символом (через обратную косую черту)

Имя папки, состоящее из нескольких слов, с экранированным символом (через обратную косую черту)

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

Теперь ваша очередь! Создайте папки для школьных предметов, перечисленных выше:

Подсказка: помните, что для папки "История искусства" после слова "Искусство" вам понадобится обратная черта, потому что это два слова, или вам нужно будет взять его в кавычки!

Пример кода

Создание папок — это точно такой же процесс, независимо от того, будет ли внутри них код. Папка - это просто папка! Однако если вы программист, важно, чтобы ваш код был структурированным и организованным.

Возможно, у вас еще нет опыта работы с HTML или CSS — языками, которые вы будете использовать для настройки содержимого и внешнего вида веб-страниц. Это совершенно нормально. Я просто хочу показать вам классическую структуру таких проектов, чтобы вы увидели, что создание папок с помощью терминала полезно не только для школьных целей: это то, чем программисты занимаются каждый день.

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

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

Эта структура папок даже формализована в так называемом шаблоне HTML5. Структура именно такая, как я описал выше, и ее используют тысячи веб-проектов!

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

Полная структура шаблона HTML5 (найдите папки css и img!)

Полная структура шаблона HTML5 (найдите папки css и img!)

Это окончательная структура папок, которую мы хотим визуализировать в Finder:

Папка кода, которую создали бы многие настоящие разработчики

Папка с кодом, которую создали бы многие настоящие разработчики

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

Вот как это выглядит в Терминале:

Структура папок для проекта кода

Пример структуры папок для проекта кода

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

Папка компьютера

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

Создание папки в Microsoft Windows

Мой компьютер или Проводник Windows

  1. Откройте Мой компьютер или проводник Windows.
  2. Откройте диск или папку, в которой вы хотите создать новую папку; например, диск C:. Если вы не хотите создавать папку в корневом каталоге, перейдите в выбранное место.
  3. В Windows 11 нажмите «Создать» в строке меню и выберите «Папка» в раскрывающемся меню.

В Windows 8 и 10 на вкладке "Главная" щелкните значок "Новая папка".

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

Если вы используете Windows 7 или более раннюю версию и не видите строку меню файла в верхней части проводника Windows, нажмите клавишу Alt, и она должна стать видимой.

Новая папка рабочего стола Windows

Рабочий стол Windows

  1. Перейдите на рабочий стол Windows. любая пустая часть рабочего стола.
  2. В появившемся меню (как показано на рисунке) нажмите «Создать», а затем «Папка».
  3. Появится новая папка. Введите имя папки, которую хотите использовать, и нажмите Enter .

Создать новую папку с помощью сочетания клавиш

В Проводнике Windows вы можете нажать Ctrl + Shift + N, чтобы создать новую папку без использования мыши.

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

См. следующий раздел пользователя командной строки MS-DOS и Windows, чтобы создать каталог в командной строке Windows.

Создание каталога в MS-DOS и командной строке Windows

Для ссылки на командную строку более уместно использовать "каталог" вместо "папка".

Чтобы создать каталог в MS-DOS или командной строке Windows (cmd), используйте команду md или mkdir MS-DOS. Например, ниже мы создаем новый каталог с именем «надежда» в текущем каталоге.

Вы также можете создать несколько новых каталогов в текущем каталоге с помощью команды md. В следующем примере мы создаем три новых каталога с именами «user1», «user2» и «user3» в текущем каталоге.

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

Чтобы создать каталог в родительском каталоге без предварительного перехода в этот каталог, вы можете использовать приведенную ниже команду. В этом примере выполняется перемещение на один каталог назад для создания каталога «example».

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

После создания каталога вы можете использовать команду cd для изменения и перехода в этот каталог.

Чтобы создать каталог на другом диске, не переходя на этот диск, используйте пример команды, аналогичный приведенному ниже. Эта команда создает каталог «example» на диске F:. Букву диска "f:" можно заменить любой буквой диска.

Дополнительная информация

Создать каталог с пакетным файлом

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

Создание каталога в Linux, Unix и их вариантах

В командной строке лучше использовать "каталог" вместо "папка".

У вас должны быть права на создание каталога за пределами вашего домашнего каталога.

Чтобы создать каталог в Linux, Unix или любом другом варианте, используйте команду mkdir Linux и Unix. Например, ниже мы создаем новый каталог с именем hope в текущем каталоге.

После создания каталога вы можете использовать команду cd для изменения и перехода в этот каталог.

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

Создание папки и каталога в Microsoft Windows 3.X

Файловый менеджер

  1. Открыть файловый менеджер
  2. Откройте папку, в которую вы хотите поместить новую папку, и в верхнем меню диспетчера файлов выберите "Файл", а затем новую папку.

MS-DOS

Информацию о создании каталога в MS-DOS см. выше в разделе пользователя MS-DOS.

Создание папки в macOS X

Папка на рабочем столе

  1. Перейдите к рабочему столу macOS. (коснитесь двумя пальцами мыши) любое пустое место на рабочем столе.
  2. Выберите «Новая папка» в раскрывающемся меню.
  3. Назовите папку и нажмите клавишу Return .

Создать папку в каталоге

  1. Откройте Finder и перейдите в каталог, в котором вы хотите создать папку.
  2. Нажмите «Файл» в левом верхнем углу экрана.
  3. Выберите «Новая папка» в раскрывающемся меню.
  4. Назовите папку и нажмите клавишу Return .

Пользователи также могут нажать сочетание клавиш Command + Shift + N, чтобы создать новую папку.

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

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

Здесь ответ компьютера: /Users/nelle , домашний каталог Нелли:

Вариант домашнего каталога

Путь к домашнему каталогу будет выглядеть по-разному в разных операционных системах. В Linux он может выглядеть как /home/nelle, а в Windows — как C:\Documents and Settings\nelle или C:\Users\nelle. (Обратите внимание, что он может немного отличаться для разных версий Windows.) В будущих примерах мы использовали выходные данные Mac по умолчанию — выходные данные Linux и Windows могут немного отличаться, но в целом должны быть похожими.

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

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

На компьютере Нелле файловая система выглядит так:

Сверху находится корневой каталог, в котором хранится все остальное. Мы обращаемся к нему, используя символ косой черты, / , сам по себе; этот символ является первой косой чертой в /Users/nelle .

Внутри этого каталога есть несколько других каталогов: bin (где хранятся некоторые встроенные программы), data (для различных файлов данных), Users (где расположены личные каталоги пользователей), tmp (для временных файлов, которые не нужно хранить в течение длительного времени) и т. д.

Мы знаем, что наш текущий рабочий каталог /Users/nelle хранится внутри /Users, потому что /Users — это первая часть его имени. Точно так же мы знаем, что /Users хранится в корневом каталоге /, потому что его имя начинается с / .

Слеши

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

В разделе /Users мы находим по одному каталогу для каждого пользователя с учетной записью на компьютере Нелл, ее коллег imhotep и larry.

Файлы пользователя imhotep хранятся в /Users/imhotep , файлы пользователя larry — в /Users/larry , а файлы Nelle — в /Users/nelle . Поскольку Nelle является пользователем в наших примерах, мы получаем /Users/nelle в качестве нашего домашнего каталога. Как правило, когда вы открываете новую командную строку, для запуска вы оказываетесь в своем домашнем каталоге.

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

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

  • знак / указывает, что это каталог
  • @ означает ссылку
  • * указывает на исполняемый файл

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

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

Очистка терминала

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

Получение помощи

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

    Мы можем передать команде параметр --help (недоступно в macOS), например:

Далее мы опишем оба способа.

Опция --help

Большинство команд и программ bash, написанных для запуска из bash, поддерживают параметр --help, который отображает дополнительную информацию о том, как использовать команду или программу.

Неподдерживаемые параметры командной строки

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

Команда man

Еще один способ узнать о ls — ввести

Эта команда превратит ваш терминал в страницу с описанием команды ls и ее параметров.

Чтобы перемещаться по справочным страницам, вы можете использовать ↑ и ↓ для перемещения построчно или использовать клавишу B и пробел, чтобы пропустить вверх и вниз целую страницу. Для поиска символа или слова на справочных страницах используйте /, за которым следует символ или слово, которое вы ищете. Иногда поиск приводит к нескольким совпадениям. Если это так, вы можете перемещаться между ударами, используя N (для перемещения вперед) и Shift + N (для перемещения назад).

Чтобы выйти из справочных страниц, нажмите Q .

Руководства в Интернете

Конечно, есть и третий способ доступа к справке по командам: поиск в Интернете через веб-браузер. При использовании поиска в Интернете включение фразы unix man page в ваш поисковый запрос поможет найти релевантные результаты.

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

Дополнительные сведения о флагах ls

Вы также можете использовать два параметра одновременно. Что делает команда ls при использовании с параметром -l? Что если вы используете обе опции -l и -h?

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

Решение

Опция -l заставляет ls использовать формат длинного списка, показывающий не только имена файлов/каталогов, но и дополнительную информацию, такую ​​как размер файла и время его последней модификации. Если вы используете как параметр -h, так и параметр -l, это делает размер файла «удобочитаемым», т. е. отображает что-то вроде 5,3 КБ вместо 5369 .

Список в обратном хронологическом порядке

По умолчанию ls перечисляет содержимое каталога в алфавитном порядке по имени. Команда ls -t перечисляет элементы по времени последнего изменения, а не по алфавиту. Команда ls -r выводит содержимое каталога в обратном порядке. Какой файл отображается последним при объединении параметров -t и -r? Подсказка: вам может понадобиться использовать параметр -l, чтобы увидеть даты последнего изменения.

Решение

Самый последний измененный файл отображается последним при использовании -rt . Это может быть очень полезно для поиска ваших последних правок или проверки того, был ли записан новый выходной файл.

Изучение других каталогов

Мы можем использовать ls не только для текущего рабочего каталога, но и для просмотра содержимого другого каталога. Давайте посмотрим на наш каталог Desktop, запустив ls -F Desktop, то есть команду ls с опцией -F и аргументом Desktop. Аргумент Desktop сообщает ls, что нам нужен список чего-то другого, кроме нашего текущего рабочего каталога:

Обратите внимание: если каталог с именем Desktop не существует в вашем текущем рабочем каталоге, эта команда вернет ошибку. Как правило, каталог Desktop существует в вашем домашнем каталоге, который, как мы предполагаем, является текущим рабочим каталогом вашей оболочки bash.

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

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

Теперь, когда мы знаем, что каталог shell-lesson-data находится в каталоге нашего рабочего стола, мы можем сделать две вещи.

Во-первых, мы можем просмотреть его содержимое, используя ту же стратегию, что и раньше, передав имя каталога в ls :

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

Команда для изменения местоположения — это cd, за которой следует имя каталога, чтобы изменить наш рабочий каталог. cd означает «изменить каталог», что немного вводит в заблуждение: команда не изменяет каталог; это изменяет представление оболочки о том, в каком каталоге мы находимся. Команда cd похожа на двойной щелчок по папке в графическом интерфейсе, чтобы попасть в папку.

Эти команды переместят нас из нашего домашнего каталога в каталог Desktop, затем в каталог shell-lesson-data, а затем в каталог с данными упражнений. Вы заметите, что cd ничего не печатает. Это нормально. Многие команды оболочки ничего не выводят на экран при успешном выполнении. Но если мы запустим после него pwd, то увидим, что теперь находимся в /Users/nelle/Desktop/shell-lesson-data/exercise-data.

Читайте также: