Студенческие материалы по командной строке

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

Ключевые выводы

  • Учащиеся будут перемещаться по своему компьютеру с помощью команд.
  • Учащиеся будут создавать, перемещать, копировать и удалять файлы и папки.

Что такое командная строка?

Большинство пользователей большую часть времени используют графический интерфейс пользователя (GUI) для взаимодействия с компьютером. Графические интерфейсы обычно полагаются на мышь или касание для управления окнами с помощью значков, кнопок, полос прокрутки и т. д.

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

  • Средство взаимодействия с компьютерной программой, при котором пользователь вводит команды. например:
open README.txt
  • Способ навигации и управления компьютером без мыши.
  • Неграфический способ создания, чтения, обновления, работы и удаления ваших файлов и каталогов. например:
mv README.txt readme.txt

Графический интерфейс и командная строка смотрят на одно и то же! Это разные способы взаимодействия с компьютером.

Когда мы используем командную строку?

Разработчики часто предпочитают интерфейсы командной строки:

  • Они предоставляют более лаконичные средства управления программой или операционной системой. Почему? Потому что все происходит в одном окне, и с практикой это требует меньше усилий, чем поиск и управление с помощью мыши.
  • Они легко предоставляют параметры для управления командой. Почему? Меню в графическом интерфейсе предоставляют очень небольшое количество опций. В командной строке есть сотни команд, и несколько символов, добавленных к команде, могут заставить ее делать много разных вещей. например
  • ls Базовые файлы списков
  • ls -a Список всех файлов, включая обычно скрытые файлы
  • ls -l Длинный список, показывающий информацию о каждом файле
  • ls -R Recursive, вывести содержимое каталогов
  • ls -la Длинный список всех файлов
  • Они упрощают работу с большим количеством файлов одновременно сложными способами.
for i in *.png; do pngtogif $i `echo $i | sed s/png/gif/`; done
  • Они предоставляют средства для программирования операционной системы (программы-оболочки). Например, приведенный выше пример представляет собой очень простую программу-оболочку, предназначенную для изменения изображений с именами файлов, оканчивающимися на .png .

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

Части команды командной строки

Все команды состоят из трех частей:

  • Команда (или утилита) всегда идет первой.
  • Флаги необязательны, в зависимости от используемой утилиты. Флаги всегда начинаются с - (минус).
  • Аргументы — это то, на что команда должна действовать, или необходимая информация. Часто имена файлов.

Обрамление

Контекст и цель

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

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

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

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

Цели обучения

Студенты смогут

  • Используйте терминал для навигации по файлам и папкам
  • Вывести содержимое папки
  • Создание файлов и папок в командной строке
  • Переместить файлы и папки
  • Копировать файлы и папки
  • Удалить файлы и папки

Начиная

Доступ к терминалу

Обрамление секции и назначение

Терминал предоставляет интерфейс командной строки (CLI) для операционной системы. С его помощью вы можете давать компьютеру прямые текстовые инструкции.

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

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

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

Изменение каталогов

Обрамление секции и назначение

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

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

# See your current location - abbreviation for 'print working directory'
pwd

Список доступных файлов и каталогов

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

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

# See files and folders in current location - abbreviation for 'list'
ls

Изменить рабочий каталог

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

Синтаксис, сообщающий командной строке о перемещении вас в новый каталог (также известный как папка): cd , за которым следует (в той же строке) путь к новой папке.

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

# Change your current working directory (current location)
# Abbreviation for 'change directory'
cd Documents

Вы также можете перемещаться, начиная с домашнего каталога ~ .

# Add a `~/` to begin from the home directory.
cd ~/Downloads

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

# Option 1: navigate directly to the home directory
cd ~

# Option 2: navigate back one level
cd ..

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

Мини-вызовы

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

Подсказка: автодополнение с tab

При смене каталогов с помощью команды cd единственная опечатка помешает правильному выполнению команды. Однако использование клавиши tab автоматически заполнит имена любых доступных каталогов, которые находятся внутри вашего текущего каталога. Таким образом, вместо того, чтобы вводить cd Documents , введите просто cd Do , а затем нажмите клавишу tab , и терминал автоматически выполнит для вас команду cd Documents/ (символ / в конце необязателен, но позволяет узнать, что пунктом назначения является каталог).

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

  1. Каталог, в который вы хотите перейти, недоступен из вашего текущего рабочего каталога.
  2. Есть два каталога с одинаковыми начальными именами (например, « Documents » и « Downloads »), и вы не предоставили достаточно информации для автозаполнения, чтобы узнать, какой из них вам нужен. Нажмите tab еще раз, чтобы увидеть список каталогов, которые могут соответствовать тому, что вы набрали. Затем введите еще немного (достаточно, чтобы было только одно совпадение) и снова нажмите клавишу tab .
  3. Вы уже допустили опечатку в первой половине слова.

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

Родительский и дочерний каталоги

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

Эти отношения часто иллюстрируются на форумах текстовой диаграммой, например:

directory_a/
  directory_b/
    my_file

Обратите внимание, что имена каталогов заканчиваются на / , а имена файлов — нет. Эта иерархическая организация обычно называется древовидной структурой файловой системы.

Братья и сестры

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

Эта текстовая диаграмма будет выглядеть так:

directory_a/
  file_b
  file_c

Обратите внимание, что поскольку file_b и file_c являются одноуровневыми, они имеют одинаковый отступ.

Пути к файлам

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

north_america/
  united_states/
    new_york/
      new_york_city/
        manhattan
        queens
        staten_island
        bronx
        brooklyn
    california/
      mountain_view
      los_angeles
    illinois/
      chicago
  mexico/
    mexico_city

В этом примере new_york_city/ — это имя каталога, но у него также есть путь , подробно описывающий, как туда добраться: ~/north_america/united_states/new_york/new_york_city/ .

Чтобы изменить каталог на new_york_city/, вы можете перемещаться по шагам, используя имена, или вы можете перемещаться до конца одной командой, используя путь.

# Option 1: in four steps, using directory names.
cd ~ # navigate home, where these folders are located
cd north_america/
cd united_states/
cd new_york/
cd new_york_city/

# Option 2: in one step, using the path.
cd ~/north_america/united_states/new_york/new_york_city/

Сводка навигационных команд

# See your current location - abbreviation for 'print working directory'
pwd

# Change to a new location - abbreviation for 'change directory'
cd ~/Downloads

# Navigates into a child directory called `some_directory`
# Only works if `some_directory` is a child of the current directory
cd some_directory

# Navigates into the parent of the current directory
# `..` is shorthand for parent.
cd ..

# Will take you back home
cd

Мини-вызовы

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

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

Обрамление секции и назначение

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

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

# See your current location.
pwd

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

# `touch` creates a new file.
touch style.css

При создании файлов добавьте расширение файла, чтобы указать тип. Примеры типов файлов:

  • .js сделать как файл JavaScript
  • .html создать файл HTML
  • .css создает файл CSS
  • .md делает файл уценки

Имена файлов не должны содержать пробелов.

# make a file - this will create a file in the current folder
touch my_text_file.txt

# make a file - this will create a file on the desktop
touch ~/Desktop/my_new_style_sheet.css

Создание нескольких файлов

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

# make multiple files - this will create multiple files in the current folder
touch my_new_js_file.js my_new_html_file.html my_second_html_file.html

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

Чтобы создать каталог/папку, используйте команду mkdir - сокращение от "создать каталог" - за которым следует имя папки.

# make a folder - this will create a directory in the current folder
mkdir my_new_folder

# make a folder - this will create a directory on your desktop
mkdir ~/Desktop/my_new_desktop_folder

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

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

# make multiple folders - this will create multiple folders in the current
# directory
mkdir folder_one folder_two folder_three

Мини-вызовы

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

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

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

Обрамление секции и назначение

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

  1. Мы используем команду mv — аббревиатуру перемещения .
  2. Следуйте команде перемещения с именем файла или папки, которую вы хотите переместить.
  3. После имени файла укажите место назначения, куда вы хотите его переместить.

Например, если у вас есть такая файловая структура:

my_child_folder/
my_parent_folder/

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

# move a directory - this will move the folder `my_child_folder` into the
# folder named `my_parent_folder` that is in the current folder
mv my_child_folder/ my_parent_folder/

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

my_parent_folder/
  my_child_folder/

Вот некоторые другие варианты команды mv :

# move a directory - this will move the folder `my_folder` into the file named
# `my_desktop_folder` that is located on the Desktop
mv my_folder ~/Desktop/my_desktop_folder

# move a file - this will move the file `my_file.txt` into the file named
# `my_folder` that is in the current folder
mv my_file.txt my_folder

# move a file - this will move the file `my_file.txt` into the file named
# `my_desktop_folder` that is located on the Desktop
mv my_file.txt ~/Desktop/my_desktop_folder

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

Мини-вызовы

  1. Создайте 5 текстовых (.txt) файлов.
  2. Создайте новый каталог.
  3. Переместите 5 файлов, которые вы создали, в папку.
  4. Создайте папку и переместите эту новую папку в другую папку.

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

Обрамление секции и назначение

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

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

Команда копирования состоит из трех частей:

  1. Команда cp - сокращение от copy
  2. Имя файла для копирования
  3. Имя копии (если она остается в той же папке) или местоположение и имя (если перемещается в другую папку).
# Copy a file named `my_file.txt` to a file called `my_file_copy.txt`
# The copy will be located in your Documents folder.
cp my_file.txt ~/Documents/my_file_copy.txt

# Copy a file named `my_file.txt` to a file called `my_file_copy.txt`.
# Since no directory was specified, this will occur within the same folder.
cp my_file.txt my_file_copy.txt

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

# Copy a file named `my_file.txt` to your Documents folder.
# The destination ends with a directory, so the copy will have the same name.
cp my_file.txt ~/Documents/

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

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

Копирование папки или каталога немного сложнее, потому что вы, вероятно, захотите скопировать не только папку, но и все, что внутри нее.

  1. Команда cp -R — сокращение от copy recursive — используйте это как для пустых, так и для непустых папок.
  2. Имя источника (папка или файл, который мы хотим переместить)
  3. Имя копии (если она остается в той же папке) или местоположение и имя (если перемещается в другую папку).

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

# copy a directory named `my_folder` from your Desktop folder to a folder
# called `my_folder_copy` in your Documents folder
cp -R ~/Desktop/my_folder ~/Documents/my_folder_copy

# copy a file named `my_file.txt` from your Desktop folder to your Documents
# folder
cp -R my_folder my_folder_copy

Примечание: компонент -R в cp -R называется флагом . Флаги всегда начинаются с тире и используются в сочетании с командами, чтобы дать более конкретные инструкции о том, как должна выполняться эта команда.

Мини-вызовы

  1. Создайте файл с именем my_original.txt
  2. Сделайте копию my_original.txt с новым именем в той же папке.
  3. Создайте новый каталог.
  4. Сделайте копию этого каталога, но назовите его по-другому.
  5. Сделайте копию скопированного файла (из шага 2), но поместите его в скопированный каталог (из шага 4).

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

Обрамление секции и назначение

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

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

Чтобы удалить файл , мы можем использовать команду rm (сокращение от remove ), за которой следует имя файла.

# delete a file in the working directory
rm unwanted_file.txt

# delete a file not in the working directory
rm ~/Desktop/unwanted_file.txt

Удаление каталога, который пуст

Чтобы удалить пустой каталог , мы можем использовать команду rmdir — аббревиатура для удаления каталога , за которой следует имя папки.

# delete an empty folder
rmdir empty_directory

# delete an empty folder
rmdir ~/Documents/my_files/empty_directory

Удаление каталога, который не пуст

Чтобы удалить непустую папку, мы должны поставить флаг -R - сокращение от рекурсивного - после команды rm , которая говорит компьютеру удалить содержимое внутри папки. В качестве ярлыка некоторые разработчики используют флаг -Rf , который принудительно удаляет все (в противном случае вы можете получить подсказки об удалении некоторых дочерних файлов или папок).

# delete a folder which contains other files or folders
rm -R directory_which_isnt_empty

# delete a folder which contains other files or folders
rm -R ~/Downloads/directory_which_isnt_empty

Предупреждение . Использование команды rm не похоже на корзину или удаленный раздел электронной почты — эти файлы нелегко восстановить. Будьте КРАЙНЕ ОСТОРОЖНЫ при удалении файлов таким способом.

Мини-вызовы

  1. Создайте 4 файла.
  2. Удалите 2 файла.
  3. Создайте папку.
  4. Создайте другую папку и создайте файл внутри этой папки.
  5. Удалите оба каталога.

Вы можете найти код для этой лабораторной работы в следующей папке внутри репозитория студентов, который вы скачали с GitHub: command-line/labs/around-the-world

Фон

Ваш семестр за границей не за горами, и пришло время начать планировать свои путешествия по Европе...

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

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

Не волнуйтесь, с помощью волшебства командной строки вы исправите их в кратчайшие сроки!

Задача

Убедитесь, что каждый город находится в нужной стране и что в папке каждого города есть нужные памятники. Будьте осторожны, иначе вы можете оказаться в Амстердаме в поисках Эйфелевой башни!

Если вы чувствуете себя ПО- НАСТОЯЩЕМУ уверенным в этом, скройте свой графический интерфейс и решите эту проблему прямо из командной строки. Вы должны оставаться в общей папке для всего мира, пока вы делаете все это, что означает использование абсолютных путей при обращении к папкам и файлам!

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

Поздравляем! Вы официально научились говорить на компьютере. Готовы сделать еще один шаг? Поговорим о расширениях...

Расширения

  1. Снова перемешайте все свои файлы, а затем отправляйтесь в город по вашему выбору. Снова реорганизуйте файлы, оставаясь в этом городе.
  2. Попробуйте одну из забавных игр с командной строкой, ссылки на которые приведены ниже.
    Конечная игра
    Продвинутая игра (будьте готовы к Google)
  3. Большой поклонник Звездных войн? Попробуйте запустить telnet towel.blinkenlights.nl в командной строке и нажмите Enter.... (Обратите внимание, что в последних версиях MacOS команда telnet больше не устанавливается по умолчанию; в этом случае команда nc towel.blinkenlights.nl 23 может вместо этого использовать.)

Вы можете найти код для этой лабораторной работы в следующей папке внутри репозитория студентов, который вы скачали с GitHub: command-line/labs/bashing-away-repetition

Готовы вычеркнуть повторение из ежедневного использования командной строки? Отлично, я тоже!

Фон

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

Прежде всего, что такое скрипт bash?

ОТЛИЧНЫЙ вопрос. К счастью, у нашего друга Райана Чедвика, находящегося на этом замечательном сайте, где можно найти руководства по работе с командной строкой , есть ответ для нас.

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

Нет повторения? Вот о чем я говорю.

Руководство

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

chmod 755 myScript.sh

Хорошо, пора написать свою первую программу. Перейдите к вашему myScript.sh (посмотрите, сможете ли вы открыть файл из командной строки). В конце файла добавьте:

echo "Hello World"

Теперь запустите:

./myScript.sh

в вашем терминале. ** TA DA ** вы должны увидеть «Hello World» на вашем терминале.

праздник

Все, что вы напишете в своем сценарии bash, будет работать так, как если бы вы ввели это в свой терминал. Давайте рассмотрим еще один пример, прежде чем переходить к расширениям. Сначала создайте файл для вашего скрипта, его можно назвать как угодно, но он должен иметь расширение .sh . Затем не забудьте дать вашему скрипту разрешение на запуск, набрав chmod 755 , а затем имя вашего скрипта в терминале и нажав клавишу ввода. Каждый раз, когда вы запускаете новый скрипт bash, обязательно выполняйте эти два шага.

Вводный вызов

Теперь попробуем написать скрипт, создающий новую папку. Какая известная нам команда создает новую папку? Если вы думаете о слове, которое начинается с m и заканчивается на kdir , вы на правильном пути. Напишите команду, которая создаст новую папку, и назовите ее как-нибудь прикольно в новом файле .sh , а затем запустите ее в своем терминале.

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

Не бойтесь использовать учебник, указанный выше, и будьте готовы проявить свои лучшие навыки работы с Google. Напишите и запустите скрипты, которые делают следующее:

Основные задачи

  1. Добавьте команду в файл, который вы создали выше, для перехода в папку, которую вы создаете. (Какую команду мы используем для изменения каталогов?)
  • Отметьте дату вашего нового имени папки. Например, ваша программа должна создать папку с именем « 2017-12-07my_super_cool_folder ».
  1. Выводит «Мой текущий каталог:», за которым следует ваш рабочий каталог, и «Вот список всего, что находится в этом каталоге!», за которым следует содержимое вашего текущего каталога.
  2. Выясните, как дать вашему сценарию bash входные данные, и создайте файл на основе этой входной строки. В учебнике, указанном ранее в лаборатории, есть несколько отличных примеров в разделе переменных, которые можно проверить.
  3. Спросите у пользователя его имя, а затем распечатайте «Привет, приятно познакомиться, вставьте здесь его имя ».
  • Попробуйте запросить у пользователя дополнительную информацию и создать для него индивидуальное сообщение.

КОНТЕКСТ

Командная строка (или Терминал) обеспечивает прямое взаимодействие с операционной системой (ОС) компьютера — все, что делает графический интерфейс пользователя (GUI), но через текстовые команды — от навигации до создания новых файлов и выполнения скриптов . Командная строка будет использоваться для открытия файлов и запуска среды разработки при использовании Google App Engine .

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

Доступ к терминалу

Ярлык для Mac:

  • Откройте Spotlight с помощью Command + пробел.
  • Введите Терминал в поиске Spotlight .
# See your current location - abbreviation for 'print working directory'.
pwd

# Change to a new location - abbreviation for 'change directory'.
cd /Users/jsmith/Downloads

# Navigate into a child directory called `some_directory`. This only works if
# `some_directory` is a child of the current directory.
cd some_directory

# Navigate into the parent of the current directory. `..` is shorthand for parent.
cd ..

# Return home.
cd

# Change directories to a folder called `my_folder` that is within the current
# directory.
cd my_folder ```

#### File Path Shorthand `~`

The `~` is generally short for "home". Home can be configured to mean different
things for different users and across different operating systems, but in the
example above, for a Mac user named "jsmith", the `~` is short for that user's
home directory: `/Users/jsmith`.

This means that `~/Downloads` and `/Users/jsmith/Downloads` are the same for
this user. But starting with a `~` allows us to specify absolute file paths
(agnostic of your current working directory, and starting at the root `/`)
without having to write out a full path each time.

### <a id="view"></a>Viewing the Contents of Folders

```bash
# See files and folders in current location - this is an abbreviation for 'list'.
ls

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

Создание файлов

# Make a file - this will create a file in the current folder.
touch my_text_file.txt

# Make a file - this will create a file on the Desktop.
touch ~/Desktop/my_new_style_sheet.css

# Make multiple files - this will create multiple files in the current folder.
touch my_new_js_file.js my_new_html_file.html my_second_html_file.html

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

# Make a folder - this will create a directory in the current folder.
mkdir my_new_folder

# Make a folder - this will create a directory on your Desktop.
mkdir ~/Desktop/my_new_desktop_folder

# Make multiple folders - this will create multiple folders in the current
# directory.
mkdir folder_one folder_two folder_three

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

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

# Move a file - this will move the file `my_file.txt` into the folder named
# `my_folder` that is in the current folder.
mv my_file.txt my_folder
# Note that this will rename the file instead of moving it if the destination
# folder does not yet exist.  Read below for more details on renaming.

# Move a file - this will move the file `my_file.txt` into the folder named
# `my_desktop_folder` that is located on the Desktop.
mv my_file.txt ~/Desktop/my_desktop_folder

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

# Move a directory - this will move the folder `my_child_folder` into the
# folder named `my_parent_folder` that is in the current folder.
mv my_child_folder my_parent_folder

# Move a directory - this will move the folder `my_folder` into the folder
# named `my_desktop_folder` that is located on the Desktop.
mv my_folder ~/Desktop/my_desktop_folder

Переезд — это переименование

Имейте в виду, что mv также используется для переименования файлов или папок.

# Rename a file from `old_name.txt` to `new_name.txt`.
mv old_name.txt new_name.txt

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

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

# Copy a file named `my_file.txt` from your Desktop folder to your Documents
# folder.
cp ~/Desktop/my_file.txt ~/Documents

# Copy a file named `my_file.txt` to a file called `my_file_copy.txt` within
# the same folder.
cp my_file.txt my_file_copy.txt

Копирование папок

# Copy a directory named `my_folder` (and its contents) from your Desktop
# folder to a folder called `my_folder_copy` in your Documents folder.
cp -r ~/Desktop/my_folder ~/Documents/my_folder_copy

# Copy a directory named `my_folder` (and its contents) from the current
# working directory to a folder called `my_folder_copy` in the current working
# directory.
cp -r my_folder my_folder_copy

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

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

# Delete a file in the current working directory.
rm unwanted_file.txt

# Delete a file using its exact location and name.
rm ~/Desktop/unwanted_file.txt

Удаление папок

# Delete an empty folder.
rmdir empty_directory

# Delete a folder which contains other files or folders.
rm -r directory_which_isnt_empty

Советы и хитрости

  • Практикуйтесь в использовании командной строки, даже если вам кажется, что это не нужно. Вы станете лучше в этом со временем.
  • Клавиша tab автоматически заполнит имя файла или папки (может быть чувствительным к регистру).
  • Если останется только один соответствующий файл или папка, будет выполнено автозаполнение.
  • Если имеется несколько совпадающих файлов или папок, дважды нажмите клавишу Tab, чтобы просмотреть список оставшихся совпадений.
  • Стрелка вверх/вниз циклически прокручивает историю команд, чтобы вам не приходилось повторно вводить команды.
  • Используйте команду clear , чтобы очистить окно терминала. Это сохранит всю вашу предыдущую работу — прокрутите вверх, чтобы увидеть ее.
  • Используйте reset , чтобы перезапустить терминал. Это не сохранит вашу предыдущую работу на экране, но может решить несколько проблем, если Терминал начнет вести себя непредсказуемым образом.
  • Нажмите option + arrow , чтобы переместить курсор на слово

Сводка передового опыта

  • Перемещайтесь по Терминалу с помощью cd , cd .. или cd <folder name> .
  • Просмотр содержимого папок с помощью ls .
  • Создавайте файлы с помощью touch ; создавать папки с помощью mkdir .
  • Перемещайте файлы и папки, используя mv <item to move> <destination> .
  • Скопируйте файлы и папки, используя cp <item to copy> <destination> .
  • Удаляйте файлы и папки с помощью rm <item to remove> .

Вопрос 1

Что бы вы использовали для определения вашего текущего рабочего каталога?

  1. pwd
  2. ls
  3. cd
  4. mkdir
  5. touch

вопрос 2

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

  1. mv ~
  2. cd ../..
  3. mv up/up
  4. cd ^(2)

Вопрос 3

Какую команду вы бы использовали для переименования файла?

  1. mv
  2. cd
  3. ls
  4. python
  5. rename

Вопрос 4

Почему команда mv script.py ошибку?

  1. Потому что « script.py » — недопустимое имя файла.
  2. Потому что за командой mv не может следовать никакая другая информация.
  3. Это вопрос с подвохом; это не вызовет ошибку.
  4. Поскольку для перемещения файла требуется как минимум два аргумента — цель и место назначения.

Вопрос 5

Что сделает команда cd ~ ?

  1. Измените рабочий каталог на домашний.
  2. Повторить предыдущую команду.
  3. Используйте алгоритм, чтобы определить наиболее полезную команду в данный момент.
  4. Скиньте ошибку.

Вопрос 6

Что из перечисленного НЕ является причиной для использования табуляции для автозаполнения имен файлов?

  1. Потому что это экономит время.
  2. Потому что это помогает устранить орфографические ошибки.
  3. Потому что он требует меньше вычислительной мощности.

Вопрос 7

Если новый разработчик попытается создать файл с именем « my script.py », почему команда touch my script.py не сработает?

  1. Потому что touch не может создавать новые файлы.
  2. Потому что .py не является допустимым расширением файла.
  3. Потому что он создаст два файла, один с именем « my », а другой с именем « script.py », а не один.
  4. Потому что невозможно создавать новые файлы из командной строки.

Вопрос 1

Что бы вы использовали для определения вашего текущего рабочего каталога?

pwd

вопрос 2

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

С помощью cd ../.. вы поднимаетесь на два уровня вверх (каждый .. представляет собой один уровень выше).

Вопрос 3

Какую команду вы бы использовали для переименования файла?

mv используется для перемещения файла из одного места в другое, а также для изменения имени файла.

Вопрос 4

Почему команда mv script.py ошибку?

Команда mv требует два аргумента : исходный файл и файл назначения.

Вопрос 5

Что сделает команда cd ~ ?

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

Вопрос 6

Что из перечисленного НЕ является причиной для использования табуляции для автозаполнения имен файлов?

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

Вопрос 7

Если новый разработчик попытается создать файл с именем « my script.py », почему команда touch my script.py не сработает?

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

touch "my script.py"

Вопрос 1

Команда терминала для смены каталогов:

  1. move
  2. mkdir
  3. pwd
  4. cd

вопрос 2

Какую команду вы бы выполнили, если бы хотели перейти в родительскую папку вашего текущего рабочего каталога?

  1. cd up
  2. cd .
  3. cd ..
  4. cd ~

Вопрос 3

Какая команда используется для создания файлов?

  1. touch
  2. mkdir
  3. create
  4. pwd

Вопрос 4

Какая из следующих команд создаст два файла с именами index.html и style.css ?

  1. touch index.html, touch style.css
  2. touch index.html, style.css
  3. touch index.html style.css
  4. touch index.html + style.css

Вопрос 5

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

  1. rename
  2. move
  3. mv
  4. rm

Вопрос 6

Какой флаг у rm и cp команды должны работать с папками?

  1. -f
  2. -r
  3. -x
  4. -d

Вопрос 7

Для перемещения projects в ~/Documents и переименуйте его в Projects , какая команда должна быть пустой?

cd ~
mv projects ~/Documents
# fill in the blank here
mv projects Projects
  1. pwd
  2. cd projects
  3. mv ~ projects
  4. cd ~/Documents
  5. ls

Вопрос 8

Что сделает следующая команда?

rm -r projects

  1. Удалить файл под названием projects
  2. Удалить папку под названием projects
  3. Переименуйте файл с именем projects
  4. Поиск содержимого текущего каталога для projects

Вопрос 1

Команда терминала для смены каталогов:

Команда терминала для смены каталогов — cd . Сама команда является аббревиатурой от «изменить каталог».

вопрос 2

Какую команду вы бы выполнили, если бы хотели перейти в родительскую папку вашего текущего рабочего каталога?

Команда для перехода к родительской папке — cd ..

Вопрос 3

Какая команда используется для создания файлов?

Команда для создания файлов touch

Вопрос 4

Какая из следующих команд создаст два файла с именами index.html и style.css ?

Команда touch index.html style.css создаст два файла . Запятая не нужна, и таким образом можно создать любое количество файлов, разделенных пробелами.

Вопрос 5

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

Хотя это означает «перемещение» и может использоваться для перемещения файлов или папок, mv также может использоваться для переименования файлов и папок .

Вопрос 6

Какой флаг у rm и cp команды должны работать с папками?

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

Вопрос 7

Для перемещения projects в ~/Documents и переименуйте его в Projects , какая команда должна быть пустой?

cd ~
mv projects ~/Documents
# fill in the blank here
mv projects Projects

Поскольку мы начинаем в домашнем каталоге, нам нужно запустить cd ~/Documents чтобы последняя команда выполнялась в правильном каталоге.

Вопрос 8

Что сделает следующая команда?

rm -r projects

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