[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:02.33,0:00:04.52,Default,,0000,0000,0000,,Спасибо всем кто пришёл. Dialogue: 0,0:00:04.52,0:00:08.57,Default,,0000,0000,0000,,Это "пропущенный семестр" по информатике Dialogue: 0,0:00:08.57,0:00:09.39,Default,,0000,0000,0000,,по крайней мере, Dialogue: 0,0:00:09.39,0:00:10.72,Default,,0000,0000,0000,,так мы назвали этот курс. Dialogue: 0,0:00:10.72,0:00:12.08,Default,,0000,0000,0000,,Если вы здесь не для этого - Dialogue: 0,0:00:12.08,0:00:13.19,Default,,0000,0000,0000,,вы ошиблись аудиторией. Dialogue: 0,0:00:13.19,0:00:14.82,Default,,0000,0000,0000,,Мы будем здесь примерно час - Dialogue: 0,0:00:14.82,0:00:17.65,Default,,0000,0000,0000,,просто чтобы вы ориентировались. Dialogue: 0,0:00:17.65,0:00:21.11,Default,,0000,0000,0000,,Сперва я хочу рассказать немного о том, Dialogue: 0,0:00:21.11,0:00:23.36,Default,,0000,0000,0000,,почему мы проводим этот курс. Dialogue: 0,0:00:23.36,0:00:25.98,Default,,0000,0000,0000,,Этот курс вытекает из наблюдений Аниша, Dialogue: 0,0:00:25.98,0:00:27.06,Default,,0000,0000,0000,,Хосе и меня, сделанных Dialogue: 0,0:00:27.06,0:00:29.41,Default,,0000,0000,0000,,во время ассистирования Dialogue: 0,0:00:29.41,0:00:30.54,Default,,0000,0000,0000,,курсов в MIT, которые Dialogue: 0,0:00:30.54,0:00:31.76,Default,,0000,0000,0000,,заключаются в следующем: Dialogue: 0,0:00:31.76,0:00:33.21,Default,,0000,0000,0000,,в основном все мы, специалисты Dialogue: 0,0:00:33.21,0:00:34.53,Default,,0000,0000,0000,,по информатике, знаем, что Dialogue: 0,0:00:34.53,0:00:36.11,Default,,0000,0000,0000,,компьютеры прекрасно справляются Dialogue: 0,0:00:36.11,0:00:37.88,Default,,0000,0000,0000,,с повторяющимися задачами Dialogue: 0,0:00:37.88,0:00:39.24,Default,,0000,0000,0000,,и автоматизацией, Dialogue: 0,0:00:39.24,0:00:40.89,Default,,0000,0000,0000,,но мы часто не осознаём Dialogue: 0,0:00:40.89,0:00:43.40,Default,,0000,0000,0000,,как много инструментов могут улучшить Dialogue: 0,0:00:43.40,0:00:45.04,Default,,0000,0000,0000,,наши процессы разработки. Dialogue: 0,0:00:45.04,0:00:46.85,Default,,0000,0000,0000,,Мы можем гораздо эффективнее Dialogue: 0,0:00:46.85,0:00:48.38,Default,,0000,0000,0000,,использовать наши компьютеры, Dialogue: 0,0:00:48.38,0:00:50.45,Default,,0000,0000,0000,,потому что мы можем использовать компьютер Dialogue: 0,0:00:50.45,0:00:52.03,Default,,0000,0000,0000,,как инструмент для нас самих, Dialogue: 0,0:00:52.03,0:00:54.15,Default,,0000,0000,0000,,а не только для создания веб сайтов Dialogue: 0,0:00:54.15,0:00:55.83,Default,,0000,0000,0000,,или программного обеспечения. Dialogue: 0,0:00:55.83,0:00:58.86,Default,,0000,0000,0000,,И этот курс - это попытка это исправить, Dialogue: 0,0:00:58.86,0:01:01.09,Default,,0000,0000,0000,,это попытка показать вам Dialogue: 0,0:01:01.09,0:01:02.61,Default,,0000,0000,0000,,некоторые из этих инструментов, Dialogue: 0,0:01:02.61,0:01:04.85,Default,,0000,0000,0000,,которые вы можете эффективно использовать Dialogue: 0,0:01:04.85,0:01:08.03,Default,,0000,0000,0000,,в повседневности, исследованиях и учёбе. Dialogue: 0,0:01:08.03,0:01:12.41,Default,,0000,0000,0000,,И это будет курс где мы хотим научить вас, Dialogue: 0,0:01:12.41,0:01:15.42,Default,,0000,0000,0000,,как лучше использовать инструменты, Dialogue: 0,0:01:15.42,0:01:17.49,Default,,0000,0000,0000,,которые вы уже знаете, а также Dialogue: 0,0:01:17.49,0:01:19.98,Default,,0000,0000,0000,,надеемся показать вам инструменты, Dialogue: 0,0:01:19.98,0:01:21.82,Default,,0000,0000,0000,,о которых вы раньше не знали, Dialogue: 0,0:01:21.82,0:01:23.84,Default,,0000,0000,0000,,и как комбинировать эти инструменты Dialogue: 0,0:01:23.84,0:01:25.90,Default,,0000,0000,0000,,для создания более мощных вещей, Dialogue: 0,0:01:25.90,0:01:29.65,Default,,0000,0000,0000,,чем вы можете сделать сегодня. Dialogue: 0,0:01:29.65,0:01:34.34,Default,,0000,0000,0000,,Курс будет состоять из 11 часовых лекций Dialogue: 0,0:01:34.34,0:01:37.98,Default,,0000,0000,0000,,каждая из которых охватывает одну тему. Dialogue: 0,0:01:37.98,0:01:39.80,Default,,0000,0000,0000,,Вы можете посмотреть на веб сайте, Dialogue: 0,0:01:39.80,0:01:41.49,Default,,0000,0000,0000,,который также написан вон там, Dialogue: 0,0:01:41.49,0:01:44.74,Default,,0000,0000,0000,,темы лекций и даты каждой из них. Dialogue: 0,0:01:44.74,0:01:46.98,Default,,0000,0000,0000,,Они будут в основном независимыми, Dialogue: 0,0:01:46.98,0:01:48.78,Default,,0000,0000,0000,,и вы можете появляться только на тех, Dialogue: 0,0:01:48.78,0:01:49.91,Default,,0000,0000,0000,,которые вам интересны. Dialogue: 0,0:01:49.91,0:01:52.47,Default,,0000,0000,0000,,Но мы будем считать что вы в курсе всего, Dialogue: 0,0:01:52.47,0:01:54.90,Default,,0000,0000,0000,,и когда мы дойдём до более поздних лекций, Dialogue: 0,0:01:54.90,0:01:58.98,Default,,0000,0000,0000,,я не буду например объяснять bash заново. Dialogue: 0,0:01:58.98,0:02:06.80,Default,,0000,0000,0000,,Мы выложим конспекты и записи лекций. Dialogue: 0,0:02:06.80,0:02:10.15,Default,,0000,0000,0000,,Когда точно - мы ещё не установили, Dialogue: 0,0:02:10.15,0:02:11.97,Default,,0000,0000,0000,,но это будет после лекций. Очевидно, Dialogue: 0,0:02:11.97,0:02:14.24,Default,,0000,0000,0000,,что видео должно быть выложено после. Dialogue: 0,0:02:14.24,0:02:16.88,Default,,0000,0000,0000,,Курс буду вести я - Джон, Dialogue: 0,0:02:16.88,0:02:19.08,Default,,0000,0000,0000,,и Аниш - сидящий вон там, и Хосе, Dialogue: 0,0:02:19.08,0:02:20.71,Default,,0000,0000,0000,,которого сейчас здесь нет, Dialogue: 0,0:02:20.71,0:02:23.15,Default,,0000,0000,0000,,но он будет читать завтрашнюю лекцию. Dialogue: 0,0:02:23.15,0:02:25.33,Default,,0000,0000,0000,,И имейте ввиду, что мы пытаемся покрыть Dialogue: 0,0:02:25.33,0:02:27.88,Default,,0000,0000,0000,,много основ в течении курса из всего лишь Dialogue: 0,0:02:27.88,0:02:29.29,Default,,0000,0000,0000,,11 часовых лекций. Dialogue: 0,0:02:29.29,0:02:32.55,Default,,0000,0000,0000,,Поэтому мы будем идти относительно быстро, Dialogue: 0,0:02:32.55,0:02:34.61,Default,,0000,0000,0000,,но, пожалуйста, останавливайте нас Dialogue: 0,0:02:34.61,0:02:37.08,Default,,0000,0000,0000,,если чувствуете что не успеваете, Dialogue: 0,0:02:37.10,0:02:39.57,Default,,0000,0000,0000,,или надо уделить больше времени, Dialogue: 0,0:02:39.57,0:02:41.00,Default,,0000,0000,0000,,просто скажите нам об этом. Dialogue: 0,0:02:41.00,0:02:42.96,Default,,0000,0000,0000,,Пожалуйста, прерывайте нас вопросами, Dialogue: 0,0:02:42.96,0:02:45.34,Default,,0000,0000,0000,,также после каждой лекции нас можно найти Dialogue: 0,0:02:45.34,0:02:49.44,Default,,0000,0000,0000,,на 9 этаже в 32 корпусе в Stata Center, Dialogue: 0,0:02:49.44,0:02:50.44,Default,,0000,0000,0000,,корпус информатики. Dialogue: 0,0:02:50.44,0:02:53.93,Default,,0000,0000,0000,,Если будете на девятом этаже Dialogue: 0,0:02:53.93,0:02:56.89,Default,,0000,0000,0000,,в gates tower, можете прийти попробовать Dialogue: 0,0:02:56.89,0:02:57.99,Default,,0000,0000,0000,,некоторые упражнения, Dialogue: 0,0:02:57.99,0:02:59.74,Default,,0000,0000,0000,,которые мы даём на каждой лекции Dialogue: 0,0:02:59.74,0:03:01.94,Default,,0000,0000,0000,,или просто задать нам другие вопросы Dialogue: 0,0:03:01.94,0:03:04.04,Default,,0000,0000,0000,,о вещах которые мы обсуждали на лекции Dialogue: 0,0:03:04.04,0:03:05.44,Default,,0000,0000,0000,,или о других вещах касательно Dialogue: 0,0:03:05.44,0:03:06.99,Default,,0000,0000,0000,,использования вашего компьютера Dialogue: 0,0:03:06.99,0:03:08.43,Default,,0000,0000,0000,,более эффективно. Dialogue: 0,0:03:08.43,0:03:12.29,Default,,0000,0000,0000,,Из-за ограниченного времени Dialogue: 0,0:03:12.29,0:03:15.04,Default,,0000,0000,0000,,мы не сможем покрыть все инструменты Dialogue: 0,0:03:15.04,0:03:16.04,Default,,0000,0000,0000,,во всех деталях, Dialogue: 0,0:03:16.04,0:03:18.23,Default,,0000,0000,0000,,и поэтому мы попробуем осветить Dialogue: 0,0:03:18.23,0:03:19.89,Default,,0000,0000,0000,,интересные инструменты Dialogue: 0,0:03:19.89,0:03:21.91,Default,,0000,0000,0000,,и интересные способы их использования. Dialogue: 0,0:03:21.91,0:03:23.59,Default,,0000,0000,0000,,Мы не обязательно будем углубляться Dialogue: 0,0:03:23.59,0:03:25.20,Default,,0000,0000,0000,,в детали о том как всё работает, Dialogue: 0,0:03:25.20,0:03:26.65,Default,,0000,0000,0000,,или более сложные случаи. Dialogue: 0,0:03:26.65,0:03:28.36,Default,,0000,0000,0000,,Но если у вас есть вопросы об этом, Dialogue: 0,0:03:28.36,0:03:30.01,Default,,0000,0000,0000,,пожалуйста задавайте их нам. Dialogue: 0,0:03:30.01,0:03:31.85,Default,,0000,0000,0000,,Многие из этих инструментов Dialogue: 0,0:03:31.85,0:03:33.07,Default,,0000,0000,0000,,мы использовали годами, Dialogue: 0,0:03:33.07,0:03:34.81,Default,,0000,0000,0000,,и мы, может быть, можем указать Dialogue: 0,0:03:34.81,0:03:36.44,Default,,0000,0000,0000,,на дополнительные интересные вещи, Dialogue: 0,0:03:36.44,0:03:38.08,Default,,0000,0000,0000,,которые вы можете с ними делать. Dialogue: 0,0:03:38.08,0:03:40.94,Default,,0000,0000,0000,,Так что пользуйтесь тем, что мы здесь. Dialogue: 0,0:03:40.94,0:03:42.68,Default,,0000,0000,0000,,Этот курс будет... Dialogue: 0,0:03:42.68,0:03:44.37,Default,,0000,0000,0000,,Я не хочу сказать, что он будет Dialogue: 0,0:03:44.37,0:03:45.54,Default,,0000,0000,0000,,слишком быстрым, Dialogue: 0,0:03:45.54,0:03:47.97,Default,,0000,0000,0000,,но в течении этой лекции Dialogue: 0,0:03:47.97,0:03:49.72,Default,,0000,0000,0000,,мы покроем много основ, Dialogue: 0,0:03:49.72,0:03:51.65,Default,,0000,0000,0000,,которые мы будем считать, что вы знаете Dialogue: 0,0:03:51.65,0:03:53.16,Default,,0000,0000,0000,,в течение всего семестра. Dialogue: 0,0:03:53.16,0:03:54.77,Default,,0000,0000,0000,,Такие вещи как использовать shell Dialogue: 0,0:03:54.77,0:03:56.28,Default,,0000,0000,0000,,и терминал, я объясню что это Dialogue: 0,0:03:56.28,0:03:58.48,Default,,0000,0000,0000,,тем кто не знаком с этим. Dialogue: 0,0:03:58.48,0:04:00.19,Default,,0000,0000,0000,,И затем мы довольно быстро перейдём Dialogue: 0,0:04:00.19,0:04:01.89,Default,,0000,0000,0000,,к более продвинутым инструментам Dialogue: 0,0:04:01.89,0:04:03.10,Default,,0000,0000,0000,,и их использованию. Dialogue: 0,0:04:03.10,0:04:04.74,Default,,0000,0000,0000,,Вы уже можете видеть из конспектов Dialogue: 0,0:04:04.74,0:04:08.14,Default,,0000,0000,0000,,как выглядят темы которые мы покроем. Dialogue: 0,0:04:08.14,0:04:10.72,Default,,0000,0000,0000,,Итак, мы переходим к сегодняшней лекции, Dialogue: 0,0:04:10.72,0:04:12.68,Default,,0000,0000,0000,,в которой мы рассмотрим shell, Dialogue: 0,0:04:12.68,0:04:15.46,Default,,0000,0000,0000,,и shell будет одним из основных способов Dialogue: 0,0:04:15.46,0:04:17.52,Default,,0000,0000,0000,,взаимодействия с вашим компьютером, Dialogue: 0,0:04:17.52,0:04:18.63,Default,,0000,0000,0000,,как только вы захотите Dialogue: 0,0:04:18.63,0:04:20.21,Default,,0000,0000,0000,,делать что-то больше, Dialogue: 0,0:04:20.21,0:04:22.16,Default,,0000,0000,0000,,чем привычные визуальные интерфейсы Dialogue: 0,0:04:22.16,0:04:23.75,Default,,0000,0000,0000,,позволяют вам делать. Dialogue: 0,0:04:23.75,0:04:25.76,Default,,0000,0000,0000,,Визуальные интерфейсы в некотором роде Dialogue: 0,0:04:25.76,0:04:26.80,Default,,0000,0000,0000,,ограничены в том, Dialogue: 0,0:04:26.80,0:04:28.23,Default,,0000,0000,0000,,что они позволяют вам делать, Dialogue: 0,0:04:28.23,0:04:29.62,Default,,0000,0000,0000,,потому что вы можете делать Dialogue: 0,0:04:29.62,0:04:31.19,Default,,0000,0000,0000,,только то для чего есть кнопки, Dialogue: 0,0:04:31.19,0:04:32.66,Default,,0000,0000,0000,,слайдеры и поля ввода. Dialogue: 0,0:04:32.66,0:04:34.27,Default,,0000,0000,0000,,Часто все текстовые инструменты Dialogue: 0,0:04:34.27,0:04:36.03,Default,,0000,0000,0000,,сделаны так, чтобы быть одновременно Dialogue: 0,0:04:36.03,0:04:37.34,Default,,0000,0000,0000,,совместимыми друг с другом, Dialogue: 0,0:04:37.34,0:04:38.65,Default,,0000,0000,0000,,и чтобы в то же время иметь Dialogue: 0,0:04:38.65,0:04:40.38,Default,,0000,0000,0000,,кучу способов комбинировать их Dialogue: 0,0:04:40.38,0:04:42.45,Default,,0000,0000,0000,,или программировать и автоматизировать их. Dialogue: 0,0:04:42.45,0:04:43.57,Default,,0000,0000,0000,,И поэтому в этом курсе Dialogue: 0,0:04:43.57,0:04:44.74,Default,,0000,0000,0000,,мы будем фокусироваться Dialogue: 0,0:04:44.74,0:04:46.57,Default,,0000,0000,0000,,на этих инструментах командной строки Dialogue: 0,0:04:46.57,0:04:48.02,Default,,0000,0000,0000,,или на текстовых инструментах. Dialogue: 0,0:04:48.02,0:04:49.64,Default,,0000,0000,0000,,И shell - это место где вы будете Dialogue: 0,0:04:49.64,0:04:51.31,Default,,0000,0000,0000,,делать большую часть этой работы. Dialogue: 0,0:04:51.31,0:04:52.43,Default,,0000,0000,0000,,Поэтому для тех из вас, Dialogue: 0,0:04:52.43,0:04:53.74,Default,,0000,0000,0000,,кто не знаком с shell - Dialogue: 0,0:04:53.74,0:04:55.40,Default,,0000,0000,0000,,большинство платформ предоставляют Dialogue: 0,0:04:55.40,0:04:56.36,Default,,0000,0000,0000,,какой-нибудь shell. Dialogue: 0,0:04:56.36,0:04:58.72,Default,,0000,0000,0000,,На Windows это часто PowerShell, Dialogue: 0,0:04:58.72,0:05:01.31,Default,,0000,0000,0000,,но также другие shell доступны на Windows. Dialogue: 0,0:05:01.31,0:05:04.60,Default,,0000,0000,0000,,На Linux вы найдёте тонны терминалов - Dialogue: 0,0:05:04.60,0:05:06.24,Default,,0000,0000,0000,,это такие окна, Dialogue: 0,0:05:06.24,0:05:08.17,Default,,0000,0000,0000,,которые позволяют вам отображать shell, Dialogue: 0,0:05:08.17,0:05:10.50,Default,,0000,0000,0000,,вы также найдёте много других типов shell. Dialogue: 0,0:05:10.50,0:05:11.98,Default,,0000,0000,0000,,Наиболее рапространённый - Dialogue: 0,0:05:11.98,0:05:14.64,Default,,0000,0000,0000,,это bash - или "Born Again SHell". Dialogue: 0,0:05:14.64,0:05:16.81,Default,,0000,0000,0000,,из-за того что это настольно часто используемый shell - Dialogue: 0,0:05:16.81,0:05:19.64,Default,,0000,0000,0000,,его мы будем рассматривать в этих лекциях в первую очередь Dialogue: 0,0:05:19.64,0:05:23.38,Default,,0000,0000,0000,,если вы на Mac OS - у вас тоже есть bash возможно более старой версии Dialogue: 0,0:05:23.38,0:05:25.45,Default,,0000,0000,0000,,если вы откроете terminal app Dialogue: 0,0:05:25.45,0:05:31.06,Default,,0000,0000,0000,,вы можете следовать на любой из этих платформ, но учитывайте что в большинстве своём это будет Dialogue: 0,0:05:31.07,0:05:33.17,Default,,0000,0000,0000,,Linux centric, с точки зрения как мы это преподаём Dialogue: 0,0:05:33.17,0:05:37.31,Default,,0000,0000,0000,,даже если большинство их этих инструментов работают на всех платформах Dialogue: 0,0:05:37.31,0:05:42.05,Default,,0000,0000,0000,,если вы хотите установить терминал или shell и вы не знаете как это сделать - Dialogue: 0,0:05:42.05,0:05:44.48,Default,,0000,0000,0000,,мы будем счастливы вам это показать на кафедре, Dialogue: 0,0:05:44.48,0:05:52.04,Default,,0000,0000,0000,,или это обычно очень легко нагуглить - ваша платформа плюс как бы терминал и вы найдёте Dialogue: 0,0:05:53.98,0:06:00.36,Default,,0000,0000,0000,,теперь, когда вы открыли терминал вы увидите что-то что выглядит немного вот так Dialogue: 0,0:06:00.36,0:06:03.85,Default,,0000,0000,0000,,обычно одна только линия сверху Dialogue: 0,0:06:03.85,0:06:06.00,Default,,0000,0000,0000,,это как известно "командная строка" ("shell prompt") Dialogue: 0,0:06:06.00,0:06:09.62,Default,,0000,0000,0000,,вы можете видеть как выглядит моя командная строка - у неё есть моё имя пользователя, Dialogue: 0,0:06:09.62,0:06:13.16,Default,,0000,0000,0000,,имя моего компьютера, текущий путь в котором я нахожусь Dialogue: 0,0:06:13.16,0:06:15.53,Default,,0000,0000,0000,,и мы поговорим о путях немного позже Dialogue: 0,0:06:15.53,0:06:19.63,Default,,0000,0000,0000,,и тогда это реально просто мигает - они приглашают меня что-нибудь ввести Dialogue: 0,0:06:19.63,0:06:23.51,Default,,0000,0000,0000,,и это и есть командная строка - где вы говорите shell что вы хотите делать Dialogue: 0,0:06:23.51,0:06:27.76,Default,,0000,0000,0000,,вы можете настроить её как угодно, и когда вы откроете на своём компьютере, Dialogue: 0,0:06:27.76,0:06:30.25,Default,,0000,0000,0000,,она может выглядеть немного по другому Dialogue: 0,0:06:30.25,0:06:33.20,Default,,0000,0000,0000,,может выглядеть как-то так если вы настроили её немного Dialogue: 0,0:06:33.20,0:06:36.07,Default,,0000,0000,0000,,или может выглядеть как угодно Dialogue: 0,0:06:37.27,0:06:41.60,Default,,0000,0000,0000,,му не будем углубляться в настройки shell на этой лекции, мы сделаем это потом Dialogue: 0,0:06:41.60,0:06:47.06,Default,,0000,0000,0000,,мы поговорим о том как вы будете использовать shell с пользой Dialogue: 0,0:06:47.06,0:06:51.73,Default,,0000,0000,0000,,и это ваш основной текстовый интерфейс к вашему компьютеру - через этот shell Dialogue: 0,0:06:51.73,0:06:57.55,Default,,0000,0000,0000,,в командной строке вы вводите команды и команды могут быть относительно простыми Dialogue: 0,0:06:57.55,0:07:01.36,Default,,0000,0000,0000,,обычно что-нибудь как запускать программы с аргументами Dialogue: 0,0:07:01.36,0:07:04.92,Default,,0000,0000,0000,,как это выглядит? Хорошо, мы можем запустить одну программу "дата" - date Dialogue: 0,0:07:04.92,0:07:06.68,Default,,0000,0000,0000,,мы просто набираем date и жмём enter Dialogue: 0,0:07:06.68,0:07:09.96,Default,,0000,0000,0000,,и тогда увидите, что неудивительно, дату и время Dialogue: 0,0:07:09.96,0:07:12.19,Default,,0000,0000,0000,,вы можете также запустить программу с аргументами Dialogue: 0,0:07:12.19,0:07:16.30,Default,,0000,0000,0000,,это один путь изменить исполнение программы Dialogue: 0,0:07:16.30,0:07:19.06,Default,,0000,0000,0000,,Так, к примеру, есть программа "эхо" - echo Dialogue: 0,0:07:19.06,0:07:22.41,Default,,0000,0000,0000,,и она просто выводит заданные вами аргументы Dialogue: 0,0:07:22.41,0:07:27.09,Default,,0000,0000,0000,,и аргументы это просто разделены пробелами вещи, следующие после имени программы Dialogue: 0,0:07:27.09,0:07:30.98,Default,,0000,0000,0000,,так, мы можем сказать "привет", и она выведет "привет" Dialogue: 0,0:07:30.98,0:07:35.38,Default,,0000,0000,0000,,возможно, не так ужасно удивительно, но это самые основы аргументов Dialogue: 0,0:07:35.38,0:07:39.06,Default,,0000,0000,0000,,одну вещь вы заметили - аргументы разделены пробелами Dialogue: 0,0:07:39.06,0:07:42.51,Default,,0000,0000,0000,,и вы можете подумать, что если я хочу один аргумент из нескольких слов Dialogue: 0,0:07:42.51,0:07:44.23,Default,,0000,0000,0000,,вы можете взять их в кавычки Dialogue: 0,0:07:44.23,0:07:48.63,Default,,0000,0000,0000,,вы можете сделать так echo Hello пробел World Dialogue: 0,0:07:48.63,0:07:55.04,Default,,0000,0000,0000,,и теперь программа echo получает один аргумент, который содержит строку "Hello World" с пробелом Dialogue: 0,0:07:55.04,0:07:57.27,Default,,0000,0000,0000,,вы можете использовать одинарные кавычки Dialogue: 0,0:07:57.27,0:08:02.43,Default,,0000,0000,0000,,и к разнице между одинарными и двойными кавычками мы вернёмся и будем говорить о bash скриптах Dialogue: 0,0:08:02.43,0:08:06.12,Default,,0000,0000,0000,,вы можете избежать одиночный символ (избежать разбиения строки одиночным символом) Dialogue: 0,0:08:06.12,0:08:10.74,Default,,0000,0000,0000,,например Hello\ Word - это тоже будет работать Dialogue: 0,0:08:10.74,0:08:17.61,Default,,0000,0000,0000,,Все эти правила как вам избежать, и как разбирать, и брать в кавычки различные аргументы и переменные Dialogue: 0,0:08:17.61,0:08:19.22,Default,,0000,0000,0000,,- мы рассмотрим немного позже. Dialogue: 0,0:08:19.22,0:08:22.37,Default,,0000,0000,0000,,Надеюсь вы не столкнётесь со слишком многими странностями в этой связи, Dialogue: 0,0:08:22.37,0:08:25.94,Default,,0000,0000,0000,,просто имейте ввиду, хотя бы, что пробелы разделяют строку Dialogue: 0,0:08:25.94,0:08:29.47,Default,,0000,0000,0000,,так если вы делаете что либо, как - создать директорию "Мои фотографии" Dialogue: 0,0:08:29.47,0:08:32.57,Default,,0000,0000,0000,,вы не можете просто ввести: сделать директорию Мои фотографии Dialogue: 0,0:08:32.57,0:08:35.74,Default,,0000,0000,0000,,вы получите две директории - одну с названием "Мои" и другую с названием "фотографии" Dialogue: 0,0:08:35.74,0:08:38.86,Default,,0000,0000,0000,,и это возможно не то что вы хотите Dialogue: 0,0:08:38.86,0:08:45.36,Default,,0000,0000,0000,,Теперь, одно вы можете спросить - как shell знает что есть эти программы Dialogue: 0,0:08:45.36,0:08:51.25,Default,,0000,0000,0000,,когда я ввожу date, или когда я ввожу echo - как оно знает что эти программы должны делать Dialogue: 0,0:08:51.25,0:08:57.42,Default,,0000,0000,0000,,и ответ на это - то что в вашем компьютере встроены программы, которые идут с компьютером Dialogue: 0,0:08:57.42,0:09:04.60,Default,,0000,0000,0000,,также как ваш компьютер может идти с приложением терминал, или с Windows Explorer, Dialogue: 0,0:09:04.60,0:09:10.79,Default,,0000,0000,0000,,или с каким-то браузером, он так же идёт с группой приложений ориентированных на терминал Dialogue: 0,0:09:10.79,0:09:13.67,Default,,0000,0000,0000,,и они находятся в вашей файловой системе Dialogue: 0,0:09:13.67,0:09:18.32,Default,,0000,0000,0000,,и ваш shell знает как определить где программа находится Dialogue: 0,0:09:18.32,0:09:21.29,Default,,0000,0000,0000,,B принципе знает как искать программы Dialogue: 0,0:09:21.29,0:09:26.80,Default,,0000,0000,0000,,Делается это через так называемую неизменную системную переменную (invariant environment variable) Dialogue: 0,0:09:26.80,0:09:31.35,Default,,0000,0000,0000,,Системная переменная - это такая же переменная, которую вы возможно использовали в языках программирования Dialogue: 0,0:09:31.35,0:09:37.12,Default,,0000,0000,0000,,Выходит что shell и "заново рождённый" shell в особенности, есть в действительности язык программирования Dialogue: 0,0:09:37.12,0:09:42.11,Default,,0000,0000,0000,,Эта командная строка приведённая здесь - может не только запускать программы с аргументами, Dialogue: 0,0:09:42.11,0:09:46.48,Default,,0000,0000,0000,,вы можете так же делать такие вещи как while циклы, for циклы, условные выражения, Dialogue: 0,0:09:46.48,0:09:51.08,Default,,0000,0000,0000,,всё это. Вы можете определять функции, вы можете декларировать переменные, и всё это вы можете делать в shell Dialogue: 0,0:09:51.08,0:09:55.93,Default,,0000,0000,0000,,Мы рассмотрим многое из этого на следующие лекции о shell скриптах Dialogue: 0,0:09:55.93,0:09:59.87,Default,,0000,0000,0000,,Сейчас же, давайте просто рассмотрим эту конкретную системную переменную Dialogue: 0,0:09:59.87,0:10:02.85,Default,,0000,0000,0000,,Системные переменные определяются каждый раз вы запускаете свою shell Dialogue: 0,0:10:02.85,0:10:06.18,Default,,0000,0000,0000,,Вам не нужно определять их каждый раз вы запускаете свою shell Dialogue: 0,0:10:06.18,0:10:10.94,Default,,0000,0000,0000,,Это такая группа как где ваша домашняя директория, какое ваше имя пользователя, Dialogue: 0,0:10:10.94,0:10:15.78,Default,,0000,0000,0000,,и так же есть та критичная для этой конкретной цели, которая есть PATH variable Dialogue: 0,0:10:15.78,0:10:25.45,Default,,0000,0000,0000,,Так, если я эхо $PATH это покажет мне все пути ("paths") на моей машине где shell будет искать программы. Dialogue: 0,0:10:25.45,0:10:29.91,Default,,0000,0000,0000,,Вы заметите что это список, разделённый двоеточиями, Dialogue: 0,0:10:29.91,0:10:32.22,Default,,0000,0000,0000,,это может быть долго и тяжело читать, Dialogue: 0,0:10:32.22,0:10:36.75,Default,,0000,0000,0000,,но суть в том что - когда вы введёте имя программы, Dialogue: 0,0:10:36.75,0:10:40.91,Default,,0000,0000,0000,,поиск будет идти через список путей на вашем компьютере Dialogue: 0,0:10:40.91,0:10:43.53,Default,,0000,0000,0000,,и будет искать в каждой директории Dialogue: 0,0:10:43.53,0:10:48.42,Default,,0000,0000,0000,,программу или файл чьё имя совпадает с командой которую вы пытаетесь исполнить. Dialogue: 0,0:10:48.42,0:10:50.72,Default,,0000,0000,0000,,Так, в моём случае, когда я пытаюсь запустить data или echo, Dialogue: 0,0:10:50.72,0:10:52.81,Default,,0000,0000,0000,,оно пройдёт через них один за одним, Dialogue: 0,0:10:52.81,0:10:56.24,Default,,0000,0000,0000,,до тех пор пока найдёт тот который содержит программу называемую call или echo Dialogue: 0,0:10:56.24,0:10:57.67,Default,,0000,0000,0000,,и запустит её. Dialogue: 0,0:10:57.67,0:11:00.96,Default,,0000,0000,0000,,Если вы хотите знать какую оно собственно запускает - существует команда which ("который") Dialogue: 0,0:11:00.96,0:11:02.14,Default,,0000,0000,0000,,которая позволит нам сделать это Dialogue: 0,0:11:02.14,0:11:05.56,Default,,0000,0000,0000,,Так я могу ввести which echo и оно мне скажет Dialogue: 0,0:11:05.56,0:11:10.40,Default,,0000,0000,0000,,"если я хочу запустить программу с именем echo, я буду запускать вот эту вот" Dialogue: 0,0:11:10.40,0:11:13.98,Default,,0000,0000,0000,,Стоит остановиться здесь чтобы поговорить о том, что есть пути ("paths") Dialogue: 0,0:11:13.98,0:11:18.46,Default,,0000,0000,0000,,Так пути ("paths") есть способ именовать местонахождение файла на вашем компьютере Dialogue: 0,0:11:18.46,0:11:24.10,Default,,0000,0000,0000,,В Linux и в Mac OS эти пути ("paths") разделены косой чертой ("forward slashes") Dialogue: 0,0:11:24.10,0:11:29.48,Default,,0000,0000,0000,,Так здесь вы увидите что это в корневой директории Dialogue: 0,0:11:29.48,0:11:35.59,Default,,0000,0000,0000,,Так косая черта в самом начале указывает на то что начинается с самого верха файловой системы, Dialogue: 0,0:11:35.59,0:11:41.65,Default,,0000,0000,0000,,потом смотри в директории под названием usr, потом смотри в директории bin, Dialogue: 0,0:11:41.65,0:11:44.42,Default,,0000,0000,0000,,и потом ищи файл под названием echo Dialogue: 0,0:11:44.42,0:11:48.99,Default,,0000,0000,0000,,В Windows такие пути ("paths") обычно разделены обратными косыми чертами ("back slashes"). Dialogue: 0,0:11:48.99,0:11:53.29,Default,,0000,0000,0000,,И где в Linux и в Mac OS все пути ("paths") живут в корневом именном пространстве Dialogue: 0,0:11:53.29,0:11:57.35,Default,,0000,0000,0000,,так все пути ("paths") начинаются с косой черты (или все абсолютные пути ("absolute paths")), Dialogue: 0,0:11:57.35,0:12:01.10,Default,,0000,0000,0000,,в Windows есть свой корень для каждого раздела. Dialogue: 0,0:12:01.10,0:12:05.98,Default,,0000,0000,0000,,Так вы могли видеть такие вещи как С:\ или D:\ Dialogue: 0,0:12:05.98,0:12:13.24,Default,,0000,0000,0000,,Таким образом Windows имеет как бы раздельные иерархии путей файловой системы для каждого имеющегося у вас диска. Dialogue: 0,0:12:13.24,0:12:18.23,Default,,0000,0000,0000,,Тогда когда Linux и Mac OS все они смонтированы под одним пространством имён. Dialogue: 0,0:12:18.23,0:12:22.38,Default,,0000,0000,0000,,Вы возможно заметили что я сказал слово абсолютный путь ("absolute path") и вы возможно не знаете что это значит. Dialogue: 0,0:12:22.38,0:12:29.77,Default,,0000,0000,0000,,Так абсолютные пути - это пути полностью определяющие местонахождение файла Dialogue: 0,0:12:29.77,0:12:33.93,Default,,0000,0000,0000,,Так в этом случае это говорит... это говорит о специфическом echo файле Dialogue: 0,0:12:33.93,0:12:37.87,Default,,0000,0000,0000,,и это даёт вам полный путь ("full path") к этому файлу, Dialogue: 0,0:12:37.87,0:12:41.49,Default,,0000,0000,0000,,но там так же есть вещи известные как относительные пути ("relative paths") Dialogue: 0,0:12:41.49,0:12:47.08,Default,,0000,0000,0000,,Так относительный путь ("relative path") относителен к тому где вы сейчас находитесь Dialogue: 0,0:12:47.08,0:12:49.95,Default,,0000,0000,0000,,и так, способ как мы находим где мы находимся - Dialogue: 0,0:12:49.95,0:12:54.65,Default,,0000,0000,0000,,вы можете ввести pwd текущая рабочая директория ("present working directory") Dialogue: 0,0:12:54.65,0:12:57.31,Default,,0000,0000,0000,,настоящая?.. "PRINT working directory" Dialogue: 0,0:12:57.31,0:13:03.03,Default,,0000,0000,0000,,Так если я введу pwd это выведет текущий путь ("path") в котором я нахожусь Dialogue: 0,0:13:03.03,0:13:11.72,Default,,0000,0000,0000,,Правильно? Так теперь я нахожусь в домашней директории, под root, потом John, под ним и тогда dev, под ним и т.д. Dialogue: 0,0:13:11.72,0:13:16.12,Default,,0000,0000,0000,,Отсюда я тогда могу изменить мою текущею рабочею директорию Dialogue: 0,0:13:16.12,0:13:19.76,Default,,0000,0000,0000,,и все относительные пути ("relative paths") относительны текущей рабочей директории Dialogue: 0,0:13:19.76,0:13:22.64,Default,,0000,0000,0000,,которая в общем-то где вы сейчас находитесь Dialogue: 0,0:13:22.64,0:13:26.60,Default,,0000,0000,0000,,В этом случае для примера я могу cd /home Dialogue: 0,0:13:26.60,0:13:28.46,Default,,0000,0000,0000,,cd - означает изменить директорию ("change directory") Dialogue: 0,0:13:28.46,0:13:31.66,Default,,0000,0000,0000,,это способ которым я меняю то что моя текущая директория есть Dialogue: 0,0:13:31.66,0:13:34.04,Default,,0000,0000,0000,,в это случае я изменяю на домашнею директорию /home Dialogue: 0,0:13:34.04,0:13:37.78,Default,,0000,0000,0000,,и теперь я - вы увидите моя командная строка изменится чтобы указать Dialogue: 0,0:13:37.78,0:13:39.34,Default,,0000,0000,0000,,что я сейчас в домашней директории /home Dialogue: 0,0:13:39.34,0:13:42.43,Default,,0000,0000,0000,,Это даёт мне только имя последнего сегмента пути ("path"), Dialogue: 0,0:13:42.43,0:13:44.91,Default,,0000,0000,0000,,но вы можете настроить ваш терминал показывать вам полный путь Dialogue: 0,0:13:44.91,0:13:47.17,Default,,0000,0000,0000,,где бы вы не были Dialogue: 0,0:13:47.17,0:13:52.32,Default,,0000,0000,0000,,И теперь, если я введу pwd снова - это покажет мне что я в /home Dialogue: 0,0:13:52.32,0:13:58.82,Default,,0000,0000,0000,,Существует также пара особенных директорий . и .. Dialogue: 0,0:13:58.82,0:14:02.42,Default,,0000,0000,0000,,. - означает "текущая директория" Dialogue: 0,0:14:02.42,0:14:04.69,Default,,0000,0000,0000,,.. - означает "родительская директория" Dialogue: 0,0:14:04.69,0:14:07.66,Default,,0000,0000,0000,,Это способ позволят вам легко перемещаться по файловой системе Dialogue: 0,0:14:07.66,0:14:11.42,Default,,0000,0000,0000,,Например здесь, если я ввиду cd .. Dialogue: 0,0:14:11.42,0:14:13.69,Default,,0000,0000,0000,,это покажет мне что я теперь в / Dialogue: 0,0:14:13.69,0:14:15.92,Default,,0000,0000,0000,,то есть я в корневой директории файловой системы Dialogue: 0,0:14:15.92,0:14:19.80,Default,,0000,0000,0000,,я был в /home, а теперь я в / Dialogue: 0,0:14:19.80,0:14:23.59,Default,,0000,0000,0000,,И действительно, если я введу pwd это подтвердится Dialogue: 0,0:14:23.59,0:14:27.53,Default,,0000,0000,0000,,И я также могу использовать относительные пути ("relative paths") \Nчтобы перейти вниз по файловой системе Dialogue: 0,0:14:27.53,0:14:35.23,Default,,0000,0000,0000,,я могу ввести cd ./home и это изменит директорию на home директорию под текущей директорией Dialogue: 0,0:14:35.23,0:14:38.06,Default,,0000,0000,0000,,Правильно? Это приведёт меня обратно в /home Dialogue: 0,0:14:38.06,0:14:42.95,Default,,0000,0000,0000,,Если я попробую ввести ./home снова - ответ будет: "такой директории не существует" Dialogue: 0,0:14:42.95,0:14:46.23,Default,,0000,0000,0000,,Потому что нету home директории в текущей директории где я теперь Dialogue: 0,0:14:46.23,0:14:48.39,Default,,0000,0000,0000,,куда я попал выполнив cd Dialogue: 0,0:14:48.39,0:14:50.60,Default,,0000,0000,0000,,Правильно? Dialogue: 0,0:14:50.60,0:14:57.11,Default,,0000,0000,0000,,И я могу как бы cd всю дорогу назад, в то место где я был Dialogue: 0,0:14:57.11,0:14:59.89,Default,,0000,0000,0000,,используя относительные пути ("relative paths") Dialogue: 0,0:14:59.89,0:15:08.70,Default,,0000,0000,0000,,И я также могу делать вещи как .. .. .. чтобы вернутся куда-нибудь глубоко назад в мою файловую систему Dialogue: 0,0:15:08.70,0:15:12.92,Default,,0000,0000,0000,,это, по случаю, весь путь назад в корневую директорию, так здесь есть директория bin Dialogue: 0,0:15:12.92,0:15:16.99,Default,,0000,0000,0000,,и под bin есть файл echo, итак я могу сделать world Dialogue: 0,0:15:16.99,0:15:19.94,Default,,0000,0000,0000,,и это запускает программу echo из директории bin Dialogue: 0,0:15:19.94,0:15:22.08,Default,,0000,0000,0000,,Хорошо, это способ как вы можете конструировать пути, Dialogue: 0,0:15:22.08,0:15:24.44,Default,,0000,0000,0000,,чтобы произвольно пересекать вашу файловую систему Dialogue: 0,0:15:24.44,0:15:27.75,Default,,0000,0000,0000,,Иногда вам нужены абсолютные пути иногда относительные Dialogue: 0,0:15:27.75,0:15:30.27,Default,,0000,0000,0000,,Обычно вы ипользуете кротчайший Dialogue: 0,0:15:30.27,0:15:33.86,Default,,0000,0000,0000,,Но, если вы хотите, к примеру, запустить программу, Dialogue: 0,0:15:33.86,0:15:36.58,Default,,0000,0000,0000,,или написать программу которая запускает программу, Dialogue: 0,0:15:36.58,0:15:38.10,Default,,0000,0000,0000,,такую как echo или date Dialogue: 0,0:15:38.10,0:15:40.94,Default,,0000,0000,0000,,и вы хотите запускать откуда угодно Dialogue: 0,0:15:40.94,0:15:44.86,Default,,0000,0000,0000,,вам или нужно ввести имя программы, как data или echo Dialogue: 0,0:15:44.86,0:15:48.30,Default,,0000,0000,0000,,и позволить shell использовать этот путь чтобы найти где она находится, Dialogue: 0,0:15:48.30,0:15:50.29,Default,,0000,0000,0000,,или нужно ввести абсолютный путь ("absolute path") Dialogue: 0,0:15:50.29,0:15:51.82,Default,,0000,0000,0000,,Потому что если вы дадите относительный путь ("relative path"), Dialogue: 0,0:15:51.82,0:15:53.90,Default,,0000,0000,0000,,тогда если я запущу её в моей домашней директории, Dialogue: 0,0:15:53.90,0:15:56.19,Default,,0000,0000,0000,,и вы запустите её в какой-то другой директории, Dialogue: 0,0:15:56.19,0:16:01.42,Default,,0000,0000,0000,,это может работать у меня, но не у вас Dialogue: 0,0:16:01.42,0:16:04.01,Default,,0000,0000,0000,,В общем-то, когда мы запускаем программу, Dialogue: 0,0:16:04.01,0:16:07.27,Default,,0000,0000,0000,,она будет оперировать в текущей директории Dialogue: 0,0:16:07.27,0:16:08.43,Default,,0000,0000,0000,,по крайней мере по умолчанию Dialogue: 0,0:16:08.43,0:16:10.60,Default,,0000,0000,0000,,если мы не зададим какие либо аргументы Dialogue: 0,0:16:10.61,0:16:15.06,Default,,0000,0000,0000,,И это очень удобно - это значит что часто нам не нужно давать полные пути, Dialogue: 0,0:16:15.06,0:16:19.09,Default,,0000,0000,0000,,мы можем просто использовать имена файлов в директории где мы находимся Dialogue: 0,0:16:19.09,0:16:22.57,Default,,0000,0000,0000,,Одно что действительно удобно - это найти что находится в текущей директории Dialogue: 0,0:16:22.57,0:16:27.28,Default,,0000,0000,0000,,Так мы уже видели pwd - который выводит наше текущее местонахождение Dialogue: 0,0:16:27.28,0:16:33.05,Default,,0000,0000,0000,,Существует команда ls - которая покажет вам список ("list") файлов в текущей директории Dialogue: 0,0:16:33.05,0:16:37.23,Default,,0000,0000,0000,,Так, если я введу ls здесь - это список всех файлов в текущей директории Dialogue: 0,0:16:37.23,0:16:42.33,Default,,0000,0000,0000,,Правильно? И удобный способ просто и быстро перемещаться в файловой системе Dialogue: 0,0:16:42.33,0:16:46.30,Default,,0000,0000,0000,,Вы увидите что если я, как бы, cd .. и потом ls Dialogue: 0,0:16:46.30,0:16:49.77,Default,,0000,0000,0000,,это покажем мне файлы из той директории Dialogue: 0,0:16:49.77,0:16:56.27,Default,,0000,0000,0000,,но я так же могу ввести ls .. я как бы могу задать путь Dialogue: 0,0:16:56.27,0:17:03.32,Default,,0000,0000,0000,,и ls ту директорию заместо этой Dialogue: 0,0:17:03.32,0:17:05.58,Default,,0000,0000,0000,,Вы можете видеть это если я пойду в саму корневую директорию Dialogue: 0,0:17:05.58,0:17:08.24,Default,,0000,0000,0000,,Правильно? И корневая директория содержит другие файлы Dialogue: 0,0:17:08.24,0:17:11.65,Default,,0000,0000,0000,,Есть один удобный трюк, о котором вы возможно не знаете, Dialogue: 0,0:17:11.65,0:17:14.14,Default,,0000,0000,0000,,две другие особые вещи вы можете сделать Dialogue: 0,0:17:14.14,0:17:19.11,Default,,0000,0000,0000,,одна это тильда символ ~ этот символ приведёт вас в вашу домашнею директорию Dialogue: 0,0:17:19.11,0:17:22.11,Default,,0000,0000,0000,,Таким образом, ~ всегда представляет домашнею директорию Dialogue: 0,0:17:22.11,0:17:24.03,Default,,0000,0000,0000,,И вы можете делать относительные пути ("relative paths") туда Dialogue: 0,0:17:24.03,0:17:34.99,Default,,0000,0000,0000,,я могу ввести ~/ и я тут - потому что тильда выразилась в /home/jon Dialogue: 0,0:17:34.99,0:17:40.68,Default,,0000,0000,0000,,Так же, в особенности для cd, очень удобный аргумент вы можете задать - тире Dialogue: 0,0:17:40.68,0:17:45.78,Default,,0000,0000,0000,,если вы введёте cd - вы перейдёте в директорию где вы были до этого Dialogue: 0,0:17:45.78,0:17:48.18,Default,,0000,0000,0000,,Так если я введу cd - я попаду назад в корневую директорию Dialogue: 0,0:17:48.18,0:17:52.85,Default,,0000,0000,0000,,Если я введу cd - снова, я попаду назад в missing-semester Dialogue: 0,0:17:52.85,0:17:59.20,Default,,0000,0000,0000,,То есть, это удобный способ если вы хотите переключатся между двумя разными директориями Dialogue: 0,0:17:59.20,0:18:04.55,Default,,0000,0000,0000,,В случае ls, или в случае cd - могут существовать аргументы о которых вы не знаете Dialogue: 0,0:18:04.55,0:18:08.81,Default,,0000,0000,0000,,Правильно? Пока ещё мы не делали ничего, кроме, задания пути, Dialogue: 0,0:18:08.81,0:18:12.87,Default,,0000,0000,0000,,но откуда бы вы узнали что можете задавать путь в ls? Dialogue: 0,0:18:12.87,0:18:18.07,Default,,0000,0000,0000,,Ну, большинство программ принимают то что известно как аргументы, вроде флагов и опций Dialogue: 0,0:18:18.07,0:18:20.29,Default,,0000,0000,0000,,они обычно начинаются с тире - Dialogue: 0,0:18:20.29,0:18:23.90,Default,,0000,0000,0000,,Одна из наиболее удобных из них - это --help Dialogue: 0,0:18:23.90,0:18:26.25,Default,,0000,0000,0000,,Большинство программ это поддерживают, Dialogue: 0,0:18:26.25,0:18:34.63,Default,,0000,0000,0000,,и если вы введёте к примеру ls --help это надеюсь выведет кучу информации об этой команде Dialogue: 0,0:18:34.63,0:18:39.37,Default,,0000,0000,0000,,И вы увидите тут как использовать ls, различные опции Dialogue: 0,0:18:39.37,0:18:41.31,Default,,0000,0000,0000,,и вы можете задать количество файлов Dialogue: 0,0:18:41.31,0:18:47.76,Default,,0000,0000,0000,,Как читать эти описания? - троеточие означает один, ноль или больше Dialogue: 0,0:18:47.76,0:18:52.86,Default,,0000,0000,0000,,Квадратные скобки означают - необязательно - то есть в этом случае опции не обязательны Dialogue: 0,0:18:52.86,0:18:55.10,Default,,0000,0000,0000,,и количество файлов необязательно (опционно) Dialogue: 0,0:18:55.10,0:18:57.67,Default,,0000,0000,0000,,И вы увидите что это говорит о том что программа делает Dialogue: 0,0:18:57.67,0:19:01.48,Default,,0000,0000,0000,,и также определяет разные типы флагов и опций, которые вы можете задавать Dialogue: 0,0:19:01.48,0:19:05.83,Default,,0000,0000,0000,,Обычно мы называем одиночное тире с одиночной буквой флагом, Dialogue: 0,0:19:05.83,0:19:09.35,Default,,0000,0000,0000,,или что-то что не принимает значения - флагом. Dialogue: 0,0:19:09.35,0:19:11.45,Default,,0000,0000,0000,,И все что принимает значение - опцией Dialogue: 0,0:19:11.45,0:19:16.43,Default,,0000,0000,0000,,Так, к примеру, -a и --all оба флаги, Dialogue: 0,0:19:16.43,0:19:21.88,Default,,0000,0000,0000,,а -с и --color - опции Dialogue: 0,0:19:21.88,0:19:26.52,Default,,0000,0000,0000,,Одну вещь вы увидите здесь, если покрутите достаточно долго вниз, Dialogue: 0,0:19:26.52,0:19:29.55,Default,,0000,0000,0000,,-l флаг Dialogue: 0,0:19:29.55,0:19:31.70,Default,,0000,0000,0000,,и упс, это не помогает Dialogue: 0,0:19:32.47,0:19:38.64,Default,,0000,0000,0000,,-l флаг использует длинный формат вывода Dialogue: 0,0:19:38.64,0:19:42.77,Default,,0000,0000,0000,,это уже само по себе достаточно полезно, но давайте посмотрим что это на самом деле делает Dialogue: 0,0:19:42.77,0:19:48.07,Default,,0000,0000,0000,,если я введу ls -l это всё так же выводит файлы из текущей директории, Dialogue: 0,0:19:48.07,0:19:50.85,Default,,0000,0000,0000,,но и даст мне гораздо больше информации об этих файлах Dialogue: 0,0:19:50.85,0:19:54.12,Default,,0000,0000,0000,,и это то, что вы будете использовать довольно часто, Dialogue: 0,0:19:54.12,0:19:59.98,Default,,0000,0000,0000,,потому что, эта дополнительная информация, часто, довольно удобна Dialogue: 0,0:19:59.98,0:20:04.80,Default,,0000,0000,0000,,давайте посмотрим что представляет некоторая из этой дополнительной информации Dialogue: 0,0:20:04.80,0:20:10.28,Default,,0000,0000,0000,,ага, начнём с того, что d в начале некоторых из этих строк, Dialogue: 0,0:20:10.28,0:20:12.12,Default,,0000,0000,0000,,означает что это что-то является директорией Dialogue: 0,0:20:12.12,0:20:15.85,Default,,0000,0000,0000,,так _data здесь, к примеру, является директорией Dialogue: 0,0:20:15.85,0:20:19.68,Default,,0000,0000,0000,,а 404.html не является директорией, это файл Dialogue: 0,0:20:19.68,0:20:27.00,Default,,0000,0000,0000,,следующие буквы после этого показывают права доступа к тому файлу Dialogue: 0,0:20:27.00,0:20:31.44,Default,,0000,0000,0000,,Так, как вы уже видели раньше я могу не иметь доступа открыть данный файл, Dialogue: 0,0:20:31.44,0:20:33.58,Default,,0000,0000,0000,,или я могу не иметь доступа перейти в данную директорию Dialogue: 0,0:20:33.58,0:20:37.32,Default,,0000,0000,0000,,и это всё продиктовано правами доступа к данному файлу или директории Dialogue: 0,0:20:37.32,0:20:44.72,Default,,0000,0000,0000,,Способ прочтения этого - первая группа из трёх прав доступа установленна для владельца ("owner") файла Dialogue: 0,0:20:44.72,0:20:49.12,Default,,0000,0000,0000,,Все эти файлы которые вы здесь видите принадлежат мне Dialogue: 0,0:20:49.12,0:20:54.14,Default,,0000,0000,0000,,Вторая группа их трёх символов - права доступа для группы владеющей этими файлами Dialogue: 0,0:20:54.14,0:20:57.60,Default,,0000,0000,0000,,В этом случае все эти файлы также принадлежать группе Джона Dialogue: 0,0:20:57.60,0:21:03.20,Default,,0000,0000,0000,,И последняя группа их трёх - права доступа для всех остальных Dialogue: 0,0:21:03.20,0:21:06.91,Default,,0000,0000,0000,,то-есть всех кроме пользователя или группы владеющей этим файлом Dialogue: 0,0:21:06.91,0:21:08.65,Default,,0000,0000,0000,,Эта директория возможно немного скучная, Dialogue: 0,0:21:08.65,0:21:11.84,Default,,0000,0000,0000,,потому что всё принадлежит мне Dialogue: 0,0:21:11.84,0:21:16.65,Default,,0000,0000,0000,,Но если мы сделаем что-нибудь вроде cd / и ls -l Dialogue: 0,0:21:16.65,0:21:19.95,Default,,0000,0000,0000,,вы увидите что всё принадлежит root ("суперпользователь") Dialogue: 0,0:21:19.95,0:21:22.80,Default,,0000,0000,0000,,мы вернёмся кто му что такое root пользователь Dialogue: 0,0:21:22.80,0:21:25.29,Default,,0000,0000,0000,,Но здесь вы видите некоторые права доступа к файла немного более интересные Dialogue: 0,0:21:25.29,0:21:31.76,Default,,0000,0000,0000,,Группы из трёх представляют из себя права считывает, изменять и запускать Dialogue: 0,0:21:31.76,0:21:34.87,Default,,0000,0000,0000,,Что это означает отличается для файлов и директорий Dialogue: 0,0:21:34.87,0:21:37.18,Default,,0000,0000,0000,,Для файлов это довольно просто Dialogue: 0,0:21:37.18,0:21:40.90,Default,,0000,0000,0000,,если у вас есть право считывать файл - вы можете считать содержимое файла Dialogue: 0,0:21:40.90,0:21:45.87,Default,,0000,0000,0000,,если у вас есть право изменять файл - вы можете добавить к этому файлу Dialogue: 0,0:21:45.87,0:21:47.65,Default,,0000,0000,0000,,или полностью заменить его Dialogue: 0,0:21:47.65,0:21:50.37,Default,,0000,0000,0000,,И если у вас установлен запустить, X бит, у файла, Dialogue: 0,0:21:50.37,0:21:52.54,Default,,0000,0000,0000,,тогда вы можете запустить этот файл на выполнение Dialogue: 0,0:21:52.54,0:21:57.13,Default,,0000,0000,0000,,Так, если мы введём ls -l /bin, Dialogue: 0,0:21:57.13,0:21:57.84,Default,,0000,0000,0000,,это ужасно, Dialogue: 0,0:21:57.84,0:21:59.73,Default,,0000,0000,0000,,и /usr/bin - вы увидите Dialogue: 0,0:21:59.73,0:22:02.21,Default,,0000,0000,0000,,что у них у всех бит "запустить" выставлен Dialogue: 0,0:22:02.21,0:22:05.19,Default,,0000,0000,0000,,даже для людей которые не владеют этим файлом Dialogue: 0,0:22:05.19,0:22:07.32,Default,,0000,0000,0000,,И это потому что программа echo, на пример, Dialogue: 0,0:22:07.32,0:22:09.83,Default,,0000,0000,0000,,мы хотим что бы все на этом компьютере могли её запустить Dialogue: 0,0:22:09.83,0:22:13.20,Default,,0000,0000,0000,,Нет причин чтобы сказать "только некоторые пользователи могут запускать echo" Dialogue: 0,0:22:13.20,0:22:16.21,Default,,0000,0000,0000,,Это не имеет никакого смысла Dialogue: 0,0:22:16.21,0:22:19.96,Default,,0000,0000,0000,,Для директорий, однако, эти права доступа немного отличаются Dialogue: 0,0:22:19.96,0:22:23.79,Default,,0000,0000,0000,,Так, "считывать" означает - имеете ли вы право видеть Dialogue: 0,0:22:23.79,0:22:26.32,Default,,0000,0000,0000,,какие файлы находятся внутри этой директории Dialogue: 0,0:22:26.32,0:22:28.77,Default,,0000,0000,0000,,то есть, думайте о считывании списка, для директории Dialogue: 0,0:22:28.77,0:22:30.68,Default,,0000,0000,0000,,имеете ли вы право листать её содержимое Dialogue: 0,0:22:30.68,0:22:34.70,Default,,0000,0000,0000,,изменять - для директории, это имеете ли вы право переименовывать, Dialogue: 0,0:22:34.70,0:22:38.35,Default,,0000,0000,0000,,создавать или удалять файлы в этой директории Dialogue: 0,0:22:38.35,0:22:42.85,Default,,0000,0000,0000,,то есть, это всё ещё как бы "изменять", но заметьте что это означает что Dialogue: 0,0:22:42.85,0:22:48.56,Default,,0000,0000,0000,,если вы имеете право "изменять" файл, но не имеете права "изменять" директорию, Dialogue: 0,0:22:48.56,0:22:50.30,Default,,0000,0000,0000,,вы не можете удалить этот файл. Dialogue: 0,0:22:50.30,0:22:52.50,Default,,0000,0000,0000,,Вы можете сделать его пустым, но вы не можете удалить его Dialogue: 0,0:22:52.50,0:22:56.26,Default,,0000,0000,0000,,потому что, это бы потребовало "изменить" саму директорию Dialogue: 0,0:22:56.26,0:23:00.58,Default,,0000,0000,0000,,и в заключении, "запустить" на директориях, часто сбивает людей с толку Dialogue: 0,0:23:00.58,0:23:03.87,Default,,0000,0000,0000,,"запустить" на директориях - это то, что известно как "поиск" Dialogue: 0,0:23:03.87,0:23:09.46,Default,,0000,0000,0000,,и это не особо полезно как имя, но что это значит, имеете ли вы право Dialogue: 0,0:23:09.46,0:23:11.61,Default,,0000,0000,0000,,войти в эту директорию Dialogue: 0,0:23:11.61,0:23:15.32,Default,,0000,0000,0000,,Если вы хотите получить доступ к файлу, если вы хотите открыть его, или считать его, Dialogue: 0,0:23:15.32,0:23:20.07,Default,,0000,0000,0000,,изменить его, всё что вы хотите сделать, в общем, cd - перейти в это директорию Dialogue: 0,0:23:20.07,0:23:25.15,Default,,0000,0000,0000,,вы должны иметь права "запустить" и на всех родительских директориях этой директории, Dialogue: 0,0:23:25.15,0:23:27.15,Default,,0000,0000,0000,,и на самой этой директории Dialogue: 0,0:23:27.15,0:23:31.68,Default,,0000,0000,0000,,Так, например, для меня, получить доступ к файлу внутри /user/bin Dialogue: 0,0:23:31.68,0:23:35.11,Default,,0000,0000,0000,,как /user/bin/echo - я должен иметь право "запустить" на корневой директории root, Dialogue: 0,0:23:35.11,0:23:36.97,Default,,0000,0000,0000,,я должен иметь право "запустить" на user, Dialogue: 0,0:23:36.97,0:23:39.31,Default,,0000,0000,0000,,и я должен иметь право "запустить" на bin Dialogue: 0,0:23:39.31,0:23:43.62,Default,,0000,0000,0000,,если я не имею всех тех "запустить" битов - я не буду иметь права доступа к тому файлу, Dialogue: 0,0:23:43.62,0:23:48.82,Default,,0000,0000,0000,,поскольку у меня не будет права войти в директории по пути Dialogue: 0,0:23:48.82,0:23:56.81,Default,,0000,0000,0000,,есть несколько битов, которые вы можете встретить эссы или тии, вы можете видеть эллы Dialogue: 0,0:23:56.81,0:23:58.92,Default,,0000,0000,0000,,их мы можем обсудить на кафедре если вам интересно Dialogue: 0,0:23:58.92,0:24:03.40,Default,,0000,0000,0000,,они в основном, не будут относится к тому что вы делаете в этом классе, Dialogue: 0,0:24:03.40,0:24:08.91,Default,,0000,0000,0000,,но о них хорошо бы знать, так, если вам интересно, поищите об них сами Dialogue: 0,0:24:08.91,0:24:11.04,Default,,0000,0000,0000,,или спросите у нас на кафедре Dialogue: 0,0:24:11.04,0:24:13.73,Default,,0000,0000,0000,,Существуют некоторые другие программы о которых хорошо бы знать Dialogue: 0,0:24:13.73,0:24:18.09,Default,,0000,0000,0000,,о, простите, ещё одну вещь я должен упомянуть: если у вас просто тире - у вас нет этого права доступа Dialogue: 0,0:24:18.09,0:24:22.56,Default,,0000,0000,0000,,так, если это, к примеру: r-x - это означает у вас есть права "считывать" и "запускать", Dialogue: 0,0:24:22.56,0:24:25.61,Default,,0000,0000,0000,,но у вас нет права "изменять" Dialogue: 0,0:24:25.61,0:24:29.24,Default,,0000,0000,0000,,Существуют некоторые полезные программы, чтобы познакомится с ними сейчас, Dialogue: 0,0:24:29.24,0:24:32.15,Default,,0000,0000,0000,,одна из них команда move, или mv Dialogue: 0,0:24:32.15,0:24:37.94,Default,,0000,0000,0000,,Так если я cd назад, в мой missing-semester, тут mv позволяет мне переименовать файл Dialogue: 0,0:24:37.94,0:24:43.53,Default,,0000,0000,0000,,и переименовать здесь берёт два пути - берёт старый путь и новый путь Dialogue: 0,0:24:43.53,0:24:47.27,Default,,0000,0000,0000,,Это означает, что move, позволяет вам как переименовывать файлы, Dialogue: 0,0:24:47.27,0:24:50.50,Default,,0000,0000,0000,,если вы измените имя файла, но не директорию, Dialogue: 0,0:24:50.50,0:24:53.29,Default,,0000,0000,0000,,или позволяет вам переместить файл в совершенно другую директорию Dialogue: 0,0:24:53.29,0:24:58.36,Default,,0000,0000,0000,,это просто, вы задаёте путь к текущему файлу, и путь куда вы хотите тот файл поместить Dialogue: 0,0:24:58.36,0:25:01.82,Default,,0000,0000,0000,,И это может поменять его местоположение и его имя Dialogue: 0,0:25:01.82,0:25:05.75,Default,,0000,0000,0000,,Так, например, я могу mv файл dotfiles.md стать foo.mv Dialogue: 0,0:25:05.75,0:25:07.63,Default,,0000,0000,0000,,Бесполезно. Правильно? Dialogue: 0,0:25:07.63,0:25:11.55,Default,,0000,0000,0000,,И также, я могу mv его обратно Dialogue: 0,0:25:14.49,0:25:20.24,Default,,0000,0000,0000,,Так же существует команда cp или copy, очень похоже - вы копируете файл Dialogue: 0,0:25:20.24,0:25:22.43,Default,,0000,0000,0000,,cp также принимает два аргумента. Dialogue: 0,0:25:22.43,0:25:24.69,Default,,0000,0000,0000,,Оно берёт путь откуда вы хотите копировать, Dialogue: 0,0:25:24.69,0:25:26.18,Default,,0000,0000,0000,,и путь куда вы хотите копировать Dialogue: 0,0:25:26.18,0:25:27.85,Default,,0000,0000,0000,,И это полные пути ("full paths") Dialogue: 0,0:25:27.85,0:25:29.81,Default,,0000,0000,0000,,Так я могу использовать это, например, Dialogue: 0,0:25:29.81,0:25:36.57,Default,,0000,0000,0000,,чтобы сказать: "я хочу скопировать файл dotfiles.md в, конечно, ../food.md" Dialogue: 0,0:25:36.57,0:25:40.52,Default,,0000,0000,0000,,и теперь, если я сделаю ls .. , то я увижу там есть файл food.md Dialogue: 0,0:25:40.52,0:25:41.70,Default,,0000,0000,0000,,в той директории Dialogue: 0,0:25:41.70,0:25:46.66,Default,,0000,0000,0000,,Так, cp тоже принимает два пути, не обязательно находится в той же директории Dialogue: 0,0:25:46.66,0:25:50.66,Default,,0000,0000,0000,,и также, там есть команда rm, которая позволяет удалить файл Dialogue: 0,0:25:50.66,0:25:55.22,Default,,0000,0000,0000,,и там также вы можете задать путь, в этом случае я удаляю ../food.md Dialogue: 0,0:25:55.22,0:26:00.88,Default,,0000,0000,0000,,вы должны быть в курсе что для удаления, особенно в Lunix, удаление по умолчанию не рекурсивно Dialogue: 0,0:26:00.88,0:26:04.54,Default,,0000,0000,0000,,Там, вы не можете удалить директорию используя rm Dialogue: 0,0:26:04.54,0:26:08.42,Default,,0000,0000,0000,,Вы можете послать флаг -r , который позволит вам произвести рекурсивное удаление, Dialogue: 0,0:26:08.42,0:26:12.19,Default,,0000,0000,0000,,и задать путь который вы хотите удалить, и это удалит всё под ним Dialogue: 0,0:26:12.19,0:26:17.29,Default,,0000,0000,0000,,Существует, также, команда rmdir , которая позволяет вам удалять директорию, Dialogue: 0,0:26:17.29,0:26:20.76,Default,,0000,0000,0000,,но она только позволяет вам удалить эту директорию, если она пустая Dialogue: 0,0:26:20.76,0:26:23.40,Default,,0000,0000,0000,,Таким образом, идея здесь как бы безопасного механизма для вас, Dialogue: 0,0:26:23.40,0:26:27.50,Default,,0000,0000,0000,,так что вы случайно не выбросите кучу своих файлов Dialogue: 0,0:26:27.50,0:26:29.38,Default,,0000,0000,0000,,И последняя маленькая команда, которую удобно использовать, Dialogue: 0,0:26:29.38,0:26:32.21,Default,,0000,0000,0000,,это mkdir - которая создаёт новую директорию Dialogue: 0,0:26:32.21,0:26:35.37,Default,,0000,0000,0000,,И как мы говорили до этого, вы не хотите сделать что-то вроде этого, Dialogue: 0,0:26:35.37,0:26:37.60,Default,,0000,0000,0000,,потому что, это создаст две директории для вас, Dialogue: 0,0:26:37.60,0:26:39.96,Default,,0000,0000,0000,,одна будет называться "my" а другая "photos" Dialogue: 0,0:26:39.96,0:26:42.45,Default,,0000,0000,0000,,Если вы действительно хотите создать такую директорию, Dialogue: 0,0:26:42.45,0:26:48.21,Default,,0000,0000,0000,,вы либо избежите пробел, или возьмёте строку в кавычки Dialogue: 0,0:26:49.65,0:26:52.26,Default,,0000,0000,0000,,Если вы когда либо захотите больше информации о том, Dialogue: 0,0:26:52.26,0:26:55.92,Default,,0000,0000,0000,,как любая команда, в принципе, работает на этих платформах Dialogue: 0,0:26:55.92,0:26:58.53,Default,,0000,0000,0000,,существует действительно удобная команда для этого тоже Dialogue: 0,0:26:58.53,0:27:02.47,Default,,0000,0000,0000,,Существует команда называемая man (manual pages - руководство, мануал) Dialogue: 0,0:27:02.47,0:27:06.39,Default,,0000,0000,0000,,Эта программа берёт как аргумент название другой программы, Dialogue: 0,0:27:06.39,0:27:08.36,Default,,0000,0000,0000,,и выдаёт её "руководство к эксплуатации" Dialogue: 0,0:27:08.36,0:27:10.94,Default,,0000,0000,0000,,Так, на пример, мы можем ввести man ls Dialogue: 0,0:27:10.94,0:27:14.23,Default,,0000,0000,0000,,и это показывает нам мануал к ls Dialogue: 0,0:27:14.23,0:27:18.68,Default,,0000,0000,0000,,Вы заметите что в случае ls - это довольно похоже на то что мы получили с ls --help Dialogue: 0,0:27:18.68,0:27:22.58,Default,,0000,0000,0000,,но здесь немного удобнее ориентироваться, немного удобнее читать Dialogue: 0,0:27:22.58,0:27:28.29,Default,,0000,0000,0000,,Обычно ближе к концу вы найдёте примеры, информацию о том кто это написал, Dialogue: 0,0:27:28.29,0:27:31.44,Default,,0000,0000,0000,,и где вы можете найти больше информации, и типа такого Dialogue: 0,0:27:31.44,0:27:35.15,Default,,0000,0000,0000,,Одна вещь может запутать, иногда, по крайней мере до последней версии, Dialogue: 0,0:27:35.15,0:27:37.82,Default,,0000,0000,0000,,где они добавили это дерево внизу, которое говорит "нажми q чтобы выйти" Dialogue: 0,0:27:37.82,0:27:42.22,Default,,0000,0000,0000,,Раньше они не упоминали этого: вы нажимаете на q чтобы выйти из этой программы Dialogue: 0,0:27:42.22,0:27:46.14,Default,,0000,0000,0000,,Может быть очень сложно выйти, если вы не знаете этого Dialogue: 0,0:27:46.93,0:27:50.66,Default,,0000,0000,0000,,Удобный шорткат здесь - ctrl l Dialogue: 0,0:27:50.66,0:27:55.44,Default,,0000,0000,0000,,который позволяет вам очистить терминал и перейти на верх Dialogue: 0,0:27:55.44,0:27:58.51,Default,,0000,0000,0000,,Так мы только говорили о программах изолированно, Dialogue: 0,0:27:58.51,0:28:02.36,Default,,0000,0000,0000,,но основная мощность shell проявляется Dialogue: 0,0:28:02.36,0:28:05.49,Default,,0000,0000,0000,,когда вы начинаете комбинировать различные программы Dialogue: 0,0:28:05.49,0:28:06.38,Default,,0000,0000,0000,,Правильно? Dialogue: 0,0:28:06.38,0:28:10.24,Default,,0000,0000,0000,,Так вместо выполнения cd , выполнения ls , и т.д. , Dialogue: 0,0:28:10.24,0:28:12.34,Default,,0000,0000,0000,,вы возможно хотите объединить несколько программ вместе, Dialogue: 0,0:28:12.34,0:28:14.06,Default,,0000,0000,0000,,вы возможно хотите взаимодействовать с файлами, Dialogue: 0,0:28:14.06,0:28:16.28,Default,,0000,0000,0000,,и оперировать файлами между программами Dialogue: 0,0:28:16.28,0:28:18.70,Default,,0000,0000,0000,,И способ как мы можем это сделать: Dialogue: 0,0:28:18.70,0:28:22.17,Default,,0000,0000,0000,,использовать нотацию потока, которую даёт нам shell Dialogue: 0,0:28:22.17,0:28:24.38,Default,,0000,0000,0000,,Каждая программа, по умолчанию, имеет, Dialogue: 0,0:28:24.38,0:28:27.49,Default,,0000,0000,0000,,я немного упрощу, и скажу: два первичных потока Dialogue: 0,0:28:27.49,0:28:31.13,Default,,0000,0000,0000,,Она имеет поток ввода, и поток вывода Dialogue: 0,0:28:31.13,0:28:33.38,Default,,0000,0000,0000,,По умолчанию, поток ввода - это ваша клавиатура Dialogue: 0,0:28:33.38,0:28:35.32,Default,,0000,0000,0000,,В общем-то поток ввода это ваш терминал, Dialogue: 0,0:28:35.32,0:28:36.61,Default,,0000,0000,0000,,и то что вы печатаете на терминале, Dialogue: 0,0:28:36.61,0:28:38.68,Default,,0000,0000,0000,,окажется к конце концов в программе Dialogue: 0,0:28:38.68,0:28:42.46,Default,,0000,0000,0000,,И она так же имеет поток вывода по умолчанию, который, что либо программа выводит, Dialogue: 0,0:28:42.46,0:28:44.12,Default,,0000,0000,0000,,будет выведено в этот поток Dialogue: 0,0:28:44.12,0:28:46.10,Default,,0000,0000,0000,,И по умолчанию, это тоже ваш терминал Dialogue: 0,0:28:46.10,0:28:49.61,Default,,0000,0000,0000,,Поэтому, когда я ввожу echo hello, это выводится назад на мой терминал Dialogue: 0,0:28:49.61,0:28:54.57,Default,,0000,0000,0000,,Но shell даёт вам способ переназначить эти потоки Dialogue: 0,0:28:54.57,0:28:58.37,Default,,0000,0000,0000,,Поменять, куда ввод и вывод программы указывают Dialogue: 0,0:28:58.37,0:29:05.75,Default,,0000,0000,0000,,Этот способ, наиболее простой способ: использование знаков угловых скобок Dialogue: 0,0:29:05.75,0:29:07.72,Default,,0000,0000,0000,,так что вы можете ввести что-нибудь как это, Dialogue: 0,0:29:07.72,0:29:10.65,Default,,0000,0000,0000,,или вы можете ввести что-нибудь как это Dialogue: 0,0:29:10.65,0:29:17.72,Default,,0000,0000,0000,,Левая угловая скобка указывает переназначить ввод этой программы на содержимое этого файла Dialogue: 0,0:29:17.72,0:29:26.48,Default,,0000,0000,0000,,И закрывающая угловая скобка означает переназначить вывод предыдущей программы в этот файл Dialogue: 0,0:29:26.48,0:29:29.34,Default,,0000,0000,0000,,Так, давайте посмотрим на пример того, как это будет выглядеть Dialogue: 0,0:29:29.34,0:29:34.10,Default,,0000,0000,0000,,если я введу echo hallo , я могу сказать, я хочу сохранить тот контент Dialogue: 0,0:29:34.10,0:29:36.21,Default,,0000,0000,0000,,в файле с именем hello.txt Dialogue: 0,0:29:36.21,0:29:38.76,Default,,0000,0000,0000,,И потому что я задал, это относительный путь ("relative path"), правильно?, Dialogue: 0,0:29:38.76,0:29:42.47,Default,,0000,0000,0000,,это создаст файл в текущей директории, с названием hello.txt Dialogue: 0,0:29:42.47,0:29:46.40,Default,,0000,0000,0000,,и по крайней мере в теории, его содержимое должно быть словом "hello" Dialogue: 0,0:29:46.40,0:29:50.28,Default,,0000,0000,0000,,Так, если я запущу это, заметьте что ничего не выведено на мой экран Dialogue: 0,0:29:50.28,0:29:53.38,Default,,0000,0000,0000,,В предыдущий раз когда я выполнял echo hello это вывело hello Dialogue: 0,0:29:53.38,0:29:56.89,Default,,0000,0000,0000,,Теперь это hello ушло в файл под названием hello.txt Dialogue: 0,0:29:56.89,0:29:59.68,Default,,0000,0000,0000,,и я могу проверит это используя программу называемую cat Dialogue: 0,0:29:59.68,0:30:03.16,Default,,0000,0000,0000,,Так, cat выводит содержимое файла Dialogue: 0,0:30:03.16,0:30:07.90,Default,,0000,0000,0000,,Так, я могу ввести cat hello.txt, и вот он показывает мне hello Dialogue: 0,0:30:07.90,0:30:12.61,Default,,0000,0000,0000,,Но cat также поддерживает этот тип переназначений Dialogue: 0,0:30:12.61,0:30:16.79,Default,,0000,0000,0000,,Так я могу сказать cat, который по умолчанию только выводит свой ввод, Dialogue: 0,0:30:16.79,0:30:18.91,Default,,0000,0000,0000,,просто дублирует что введено на выводе, Dialogue: 0,0:30:18.91,0:30:23.23,Default,,0000,0000,0000,,я могу сказать: я хочу что бы ты взял свой ввод, из hello.txt Dialogue: 0,0:30:23.23,0:30:27.55,Default,,0000,0000,0000,,Что случится в этом случае, это shell откроет hello.txt Dialogue: 0,0:30:27.55,0:30:31.31,Default,,0000,0000,0000,,возьмёт его содержимое и сделает его вводом cat, Dialogue: 0,0:30:31.31,0:30:34.11,Default,,0000,0000,0000,,и тогда cat просто выведет это в свой вывод, Dialogue: 0,0:30:34.11,0:30:37.19,Default,,0000,0000,0000,,который, поскольку я его не переназначил, будет просто моим терминалом Dialogue: 0,0:30:37.19,0:30:40.66,Default,,0000,0000,0000,,То есть это просто выведет hello на экран Dialogue: 0,0:30:40.66,0:30:43.03,Default,,0000,0000,0000,,И я могу использовать их обоих одновременно Dialogue: 0,0:30:43.03,0:30:45.14,Default,,0000,0000,0000,,Так, например, если я хочу скопировать какой-нибудь файл, Dialogue: 0,0:30:45.14,0:30:47.56,Default,,0000,0000,0000,,и я не хочу использовать cp команду по какой-то причине, Dialogue: 0,0:30:47.56,0:30:50.83,Default,,0000,0000,0000,,я могу сделать это: Dialogue: 0,0:30:50.83,0:30:56.59,Default,,0000,0000,0000,,и в этом случае, я ничего не говорю программе cat, я просто говорю "далай свою нормальное дело" Dialogue: 0,0:30:56.59,0:30:59.57,Default,,0000,0000,0000,,правильно, программа cat ничего не знает об этом переназначении Dialogue: 0,0:30:59.57,0:31:03.17,Default,,0000,0000,0000,,Но я говорю shell использовать hello.txt как ввод для cat, Dialogue: 0,0:31:03.17,0:31:07.72,Default,,0000,0000,0000,,и записывать всё что cat выводит в hello.txt Dialogue: 0,0:31:07.72,0:31:09.64,Default,,0000,0000,0000,,Опять это ничего не выводит на экран Dialogue: 0,0:31:09.64,0:31:14.44,Default,,0000,0000,0000,,Но если я cat hello.txt - я получу вывод, как и следовало ожидать, Dialogue: 0,0:31:14.44,0:31:18.71,Default,,0000,0000,0000,,что есть копия оригинального файла Dialogue: 0,0:31:18.71,0:31:25.40,Default,,0000,0000,0000,,Существуют так же двойные закрывающие скобки, что добавляет, вместо просто перезаписывания Dialogue: 0,0:31:25.40,0:31:30.30,Default,,0000,0000,0000,,Так, вы заметите, если я сделаю cat hello.txt в hello2.txt опять Dialogue: 0,0:31:30.30,0:31:33.74,Default,,0000,0000,0000,,и тогда я cat hello2.txt - он всё ещё содержит hello, Dialogue: 0,0:31:33.74,0:31:35.46,Default,,0000,0000,0000,,несмотря на то что это уже содержало hello Dialogue: 0,0:31:35.46,0:31:38.63,Default,,0000,0000,0000,,Если я переключу это, взамен, на двойные закрывающие скобки, Dialogue: 0,0:31:38.63,0:31:39.75,Default,,0000,0000,0000,,что означает добавить Dialogue: 0,0:31:39.75,0:31:43.98,Default,,0000,0000,0000,,И если я теперь cat этот файл - в нём hello повторяется дважды Dialogue: 0,0:31:44.78,0:31:46.55,Default,,0000,0000,0000,,Это довольно простые, Dialogue: 0,0:31:46.55,0:31:49.38,Default,,0000,0000,0000,,они просто способы взаимодействия с файлами, Dialogue: 0,0:31:49.38,0:31:51.97,Default,,0000,0000,0000,,но когда это становится действительно интересно - это дополнительный оператор Dialogue: 0,0:31:51.97,0:31:54.26,Default,,0000,0000,0000,,который вам даёт shell, называется pipe ("труба") символ Dialogue: 0,0:31:54.26,0:31:59.30,Default,,0000,0000,0000,,Так | - вертикальная черта, и pipe значит: - Dialogue: 0,0:31:59.30,0:32:07.44,Default,,0000,0000,0000,,"возьми вывод программы с лева и сделай это вводом программы справа" Dialogue: 0,0:32:07.44,0:32:09.01,Default,,0000,0000,0000,,Правильно? Dialogue: 0,0:32:09.01,0:32:14.40,Default,,0000,0000,0000,,Так, как это выглядит, хорошо, давайте возьмём примет ls / Dialogue: 0,0:32:14.40,0:32:16.48,Default,,0000,0000,0000,,или ls -l / Dialogue: 0,0:32:16.48,0:32:21.29,Default,,0000,0000,0000,,это выводит кучу вещей. Давайте скажем я хочу только последнюю линию этого вывода Dialogue: 0,0:32:21.29,0:32:23.86,Default,,0000,0000,0000,,Хорошо, существует команда под названием tail ("хвост") Dialogue: 0,0:32:23.86,0:32:27.96,Default,,0000,0000,0000,,И tail выводит строки с конца своего ввода Dialogue: 0,0:32:27.96,0:32:32.40,Default,,0000,0000,0000,,И я могу ввести -n1 - так это флаг n Dialogue: 0,0:32:32.40,0:32:36.64,Default,,0000,0000,0000,,вы так же можете использовать --lines, если хотите использовать её как более длинную опцию Dialogue: 0,0:32:36.64,0:32:39.69,Default,,0000,0000,0000,,но в этом случае, это тоже самое как вывод последней линии Dialogue: 0,0:32:39.69,0:32:48.83,Default,,0000,0000,0000,,и я могу связать это вместе - так я могу сказать ls -l / | tail -n1 Dialogue: 0,0:32:48.83,0:32:53.68,Default,,0000,0000,0000,,и заметьте что здесь ls не знает об tail, и tail не знает об ls Dialogue: 0,0:32:53.68,0:32:57.85,Default,,0000,0000,0000,,это разные программы и никогда не были запрограммированы быть совместимыми друг с другом Dialogue: 0,0:32:57.85,0:33:01.11,Default,,0000,0000,0000,,всё что они умеют делать - это читать из ввода и выводить в вывод Dialogue: 0,0:33:01.11,0:33:04.03,Default,,0000,0000,0000,,а pipe, как раз, связывает их вместе Dialogue: 0,0:33:04.03,0:33:08.53,Default,,0000,0000,0000,,И в этом конкретном случае, я говорю: "я хочу вывод из ls быть вводом в tail, Dialogue: 0,0:33:08.53,0:33:12.22,Default,,0000,0000,0000,,и я хочу вывод от tail просто на мой терминал" потому что я не перенаправил его Dialogue: 0,0:33:12.22,0:33:15.89,Default,,0000,0000,0000,,Я мог бы так же перенаправить это, ну скажем, я хочу этот вывод в ls.txt Dialogue: 0,0:33:15.89,0:33:20.40,Default,,0000,0000,0000,,и в этом случае если я cat ls.txt, я получу соответствующий вывод Dialogue: 0,0:33:20.40,0:33:23.12,Default,,0000,0000,0000,,И оказывается, вы можете делать реально чёткие вещи с этим Dialogue: 0,0:33:23.12,0:33:26.56,Default,,0000,0000,0000,,мы покроем это гораздо больше на лекции по обработке данных ("data wrangling") Dialogue: 0,0:33:26.56,0:33:29.19,Default,,0000,0000,0000,,это будет через 4 дня, или около того Dialogue: 0,0:33:29.19,0:33:32.58,Default,,0000,0000,0000,,о разных интересных вещах которые вы можете делать, кода начнёте Dialogue: 0,0:33:32.58,0:33:35.47,Default,,0000,0000,0000,,строить более продвинутые конвейеры ("pipelies") Dialogue: 0,0:33:35.47,0:33:42.82,Default,,0000,0000,0000,,один, дать вам один пример, мы можем сделать что-то вроде curl --head silent google com Dialogue: 0,0:33:44.97,0:33:47.17,Default,,0000,0000,0000,,так, чтобы просто показать вам как это выглядит Dialogue: 0,0:33:47.17,0:33:51.42,Default,,0000,0000,0000,,это даёт мне все HTTP заголовки для доступа к google.com Dialogue: 0,0:33:51.42,0:34:02.74,Default,,0000,0000,0000,,и я могу послать это в grep --ignore case, или просто -i, если хочу, content-length Dialogue: 0,0:34:02.74,0:34:05.25,Default,,0000,0000,0000,,так это выведет мне заголовок content-length ("длинна содержимого") Dialogue: 0,0:34:05.25,0:34:07.14,Default,,0000,0000,0000,,grep это программа о которой мы поговорим позже Dialogue: 0,0:34:07.14,0:34:11.38,Default,,0000,0000,0000,,она позволит вам искать во вводе по заданному ключевому слову Dialogue: 0,0:34:11.38,0:34:14.49,Default,,0000,0000,0000,,мы можем пропустить это через, скажем, команду cut Dialogue: 0,0:34:14.49,0:34:19.85,Default,,0000,0000,0000,,которая принимает дилимитер - выставленный как пробел, Dialogue: 0,0:34:19.85,0:34:21.54,Default,,0000,0000,0000,,и я хочу второе поле Dialogue: 0,0:34:21.54,0:34:23.77,Default,,0000,0000,0000,,и это выводит только content-length ("длинна содержимого") Dialogue: 0,0:34:23.77,0:34:28.30,Default,,0000,0000,0000,,это, как бы глупый пример, правда, он просто позволяет вам вытащить длину содержимого Dialogue: 0,0:34:28.30,0:34:30.64,Default,,0000,0000,0000,,в байтах, с google.com, из командной строки Dialogue: 0,0:34:30.64,0:34:35.57,Default,,0000,0000,0000,,это не очень полезная вещь, но вы можете видеть как сцепляя это, вы можете Dialogue: 0,0:34:35.57,0:34:39.79,Default,,0000,0000,0000,,достигнуть кучу действительно интересных эффектов от манипуляций с текстом Dialogue: 0,0:34:39.79,0:34:42.77,Default,,0000,0000,0000,,И оказывается, что pipes не только для текстовых данных, Dialogue: 0,0:34:42.77,0:34:44.91,Default,,0000,0000,0000,,вы можете делать это так же с изображениями, Dialogue: 0,0:34:44.91,0:34:45.65,Default,,0000,0000,0000,,у вас может быть программа, Dialogue: 0,0:34:45.65,0:34:50.64,Default,,0000,0000,0000,,которая манипулирует с бинарным изображением на входе и выводит бинарное изображение Dialogue: 0,0:34:50.64,0:34:52.65,Default,,0000,0000,0000,,и вы можете сцепить их вместе таким образом Dialogue: 0,0:34:52.65,0:34:55.46,Default,,0000,0000,0000,,И позже мы поговорим о некоторых такого рода примерах тоже Dialogue: 0,0:34:55.46,0:34:57.100,Default,,0000,0000,0000,,вы можете это делать даже для видео - если хотите. Dialogue: 0,0:34:57.100,0:35:00.46,Default,,0000,0000,0000,,Вы можете транслировать, это, например, прекрасный способ Dialogue: 0,0:35:00.46,0:35:04.82,Default,,0000,0000,0000,,если у вас дома есть Chromecast, вы так можете транслировать видео файл, Dialogue: 0,0:35:04.82,0:35:09.63,Default,,0000,0000,0000,,если поставить последней программой в ваш pipe программу отправки Chromecast Dialogue: 0,0:35:09.63,0:35:12.40,Default,,0000,0000,0000,,Так, вы транслируете в неё видео файл и она транслирует, Dialogue: 0,0:35:12.40,0:35:14.46,Default,,0000,0000,0000,,или HTTP на ваш Chromecast Dialogue: 0,0:35:17.90,0:35:21.48,Default,,0000,0000,0000,,Мы будем много говорить об этом на лекции по обработке данных ("data wrangling"), но Dialogue: 0,0:35:21.48,0:35:25.38,Default,,0000,0000,0000,,есть ещё одна вещь, о которой я хочу рассказать вам как бы: Dialogue: 0,0:35:25.38,0:35:30.31,Default,,0000,0000,0000,,как использовать терминал более интересным и более мощным способом, Dialogue: 0,0:35:30.31,0:35:31.78,Default,,0000,0000,0000,,чем тот к которому вы могли привыкнуть. Dialogue: 0,0:35:31.78,0:35:38.45,Default,,0000,0000,0000,,Возможно даже будет интересным для тех из вас, кто уже чувствует себя с терминалом комфортно. Dialogue: 0,0:35:38.45,0:35:43.44,Default,,0000,0000,0000,,Но, сперва нам нужно покрыть важную тему относящеюся к Linux системам, и Mac OS Dialogue: 0,0:35:43.44,0:35:47.24,Default,,0000,0000,0000,,системам в особенности, это понятие root пользователя Dialogue: 0,0:35:47.24,0:35:50.34,Default,,0000,0000,0000,,root пользователь это что то вроде администратора в Windows Dialogue: 0,0:35:50.34,0:35:52.82,Default,,0000,0000,0000,,и имеет нулевой идентификационный номер Dialogue: 0,0:35:52.82,0:35:58.22,Default,,0000,0000,0000,,root пользователь особенный, потому что ему позволено делать на вашей систему всё что он захочет Dialogue: 0,0:35:58.22,0:36:01.14,Default,,0000,0000,0000,,даже если файл закрытые для всех для считывания, Dialogue: 0,0:36:01.14,0:36:02.80,Default,,0000,0000,0000,,или если закрыт для всех для изменений, Dialogue: 0,0:36:02.80,0:36:04.63,Default,,0000,0000,0000,,root всё равно имеет доступ к этому файлу Dialogue: 0,0:36:04.63,0:36:08.70,Default,,0000,0000,0000,,root это как бы супер юзер - они могут делать всё что захотят Dialogue: 0,0:36:08.70,0:36:12.91,Default,,0000,0000,0000,,и чаще всего вы на будете оперировать как супер юзер Dialogue: 0,0:36:12.91,0:36:16.76,Default,,0000,0000,0000,,вы не будете root, вы будете пользователем как Джон, или какое угодно ваше имя Dialogue: 0,0:36:16.76,0:36:18.99,Default,,0000,0000,0000,,и это будет пользователь которым вы действуете Dialogue: 0,0:36:18.99,0:36:22.76,Default,,0000,0000,0000,,Потому что, если бы оперировали своим компьютером как пользователь root всё время - Dialogue: 0,0:36:22.76,0:36:25.97,Default,,0000,0000,0000,,если вы запустите не ту программу, она может разрушить ващ компьютер Dialogue: 0,0:36:25.97,0:36:28.58,Default,,0000,0000,0000,,И вы не хотите этого! Правильно? Dialogue: 0,0:36:28.58,0:36:32.63,Default,,0000,0000,0000,,Но время от времени вы хотите сделать что либо, что требует, что бы вы были root Dialogue: 0,0:36:32.63,0:36:34.27,Default,,0000,0000,0000,,Обычно, в таки случаях, Dialogue: 0,0:36:34.27,0:36:38.22,Default,,0000,0000,0000,,вы будете пользоваться программой под названием sudo, Dialogue: 0,0:36:38.22,0:36:43.12,Default,,0000,0000,0000,,или делать как su - и su в этом случае "супер юзер" Dialogue: 0,0:36:43.12,0:36:47.45,Default,,0000,0000,0000,,Так, это способ выполнить следующее как супер юзер Dialogue: 0,0:36:47.45,0:36:52.53,Default,,0000,0000,0000,,Обычно, как sudo работает: вы вводите sudo и затем команду как обычно на вашем терминале, Dialogue: 0,0:36:52.53,0:36:59.33,Default,,0000,0000,0000,,и он выполнит вашу команду так, как если бы вы были root, а не ваш пользователь Dialogue: 0,0:36:59.33,0:37:01.46,Default,,0000,0000,0000,,Где вам может это понадобится? Dialogue: 0,0:37:01.46,0:37:06.28,Default,,0000,0000,0000,,Хорошо, на вашем компьютере существует много файловых систем, Dialogue: 0,0:37:06.28,0:37:09.31,Default,,0000,0000,0000,,но в особенности есть одна под названием sys fs Dialogue: 0,0:37:09.31,0:37:13.90,Default,,0000,0000,0000,,Если вы cd в /sys - это целый новый мир: Dialogue: 0,0:37:13.90,0:37:17.97,Default,,0000,0000,0000,,эта файловая система не файлы на вашем компьютере, Dialogue: 0,0:37:17.97,0:37:20.78,Default,,0000,0000,0000,,а различные параметры ядра ("kernel") Dialogue: 0,0:37:20.78,0:37:24.74,Default,,0000,0000,0000,,Так, ядро ("kernel") - это в общем-то, ядро вашего компьютера Dialogue: 0,0:37:24.74,0:37:28.83,Default,,0000,0000,0000,,Это ваш способ получить доступ к различным параметрам ядра, Dialogue: 0,0:37:28.83,0:37:31.87,Default,,0000,0000,0000,,через что-то, что выглядит как файловая система Dialogue: 0,0:37:31.87,0:37:35.57,Default,,0000,0000,0000,,Вы здесь увидите, что если я cd в class, на пример, Dialogue: 0,0:37:35.57,0:37:38.91,Default,,0000,0000,0000,,это имеет директории для различных типов устройств Dialogue: 0,0:37:38.91,0:37:40.42,Default,,0000,0000,0000,,с которыми я могу взаимодействовать, Dialogue: 0,0:37:40.42,0:37:43.49,Default,,0000,0000,0000,,или различные ключи к которым я могу получить доступ Dialogue: 0,0:37:43.49,0:37:47.68,Default,,0000,0000,0000,,или всякого рода странные рычажки, внутри Dialogue: 0,0:37:47.68,0:37:51.16,Default,,0000,0000,0000,,И поскольку они представлены как файлы - это означает что мы можем использовать Dialogue: 0,0:37:51.16,0:37:54.58,Default,,0000,0000,0000,,все те инструменты, которые мы пока использовали, чтобы манипулировать ими Dialogue: 0,0:37:54.58,0:37:59.24,Default,,0000,0000,0000,,Один такой пример, если вы пойдёте в /sys/class/backlight Dialogue: 0,0:37:59.24,0:38:03.43,Default,,0000,0000,0000,,так, это backlight директория позволяет вам конфигурировать подсветку на вашем лаптопе, Dialogue: 0,0:38:03.43,0:38:04.94,Default,,0000,0000,0000,,если она у вас есть Dialogue: 0,0:38:04.94,0:38:07.86,Default,,0000,0000,0000,,Так, я могу cd в intel_baklight, это intel лаптоп, Dialogue: 0,0:38:07.86,0:38:10.99,Default,,0000,0000,0000,,здесь внутри вы увидите файл под названием brightness ("яркость") Dialogue: 0,0:38:10.99,0:38:15.38,Default,,0000,0000,0000,,Я могу cat brightness - это текущая яркость моего экрана Dialogue: 0,0:38:15.38,0:38:18.37,Default,,0000,0000,0000,,Но не только это, я могу это также изменить, Dialogue: 0,0:38:18.37,0:38:21.12,Default,,0000,0000,0000,,чтобы изменить яркость моего экрана Dialogue: 0,0:38:21.12,0:38:23.48,Default,,0000,0000,0000,,Так, вы можете подумать что я могу, Dialogue: 0,0:38:23.48,0:38:25.32,Default,,0000,0000,0000,,давайте посмотрим какая здесь максимальная яркость Dialogue: 0,0:38:25.32,0:38:28.60,Default,,0000,0000,0000,,ОК, так это сейчас выставлено на максимум Dialogue: 0,0:38:28.60,0:38:31.36,Default,,0000,0000,0000,,Вы можете представить, что я могу сделать что-то вроде Dialogue: 0,0:38:31.36,0:38:37.43,Default,,0000,0000,0000,,Если я введу echo, сделаем половину или около того, echo 500 > brightness Dialogue: 0,0:38:37.43,0:38:39.84,Default,,0000,0000,0000,,Если я введу - это говорит - "в доступе отказано" Dialogue: 0,0:38:39.84,0:38:43.55,Default,,0000,0000,0000,,Я не имею права менять яркость, потому что, для того, чтобы, Dialogue: 0,0:38:43.55,0:38:45.85,Default,,0000,0000,0000,,в общем для того чтобы поменять что-то в ядре, Dialogue: 0,0:38:45.85,0:38:47.19,Default,,0000,0000,0000,,вам нужно быть администратором Dialogue: 0,0:38:47.19,0:38:51.93,Default,,0000,0000,0000,,И вы можете представить, что способ это разрешить, это ввести sudo echo 500 Dialogue: 0,0:38:51.93,0:38:54.04,Default,,0000,0000,0000,,Но я опять получил ошибку - "в доступе отказано" Dialogue: 0,0:38:54.04,0:38:55.78,Default,,0000,0000,0000,,Но почему? Dialogue: 0,0:38:55.78,0:38:59.77,Default,,0000,0000,0000,,Это потому что, как я уже упоминал ранее, эти перенаправления ввода и вывода - Dialogue: 0,0:38:59.77,0:39:02.49,Default,,0000,0000,0000,,не есть что то - о чём знают программы Dialogue: 0,0:39:02.49,0:39:07.98,Default,,0000,0000,0000,,когда мы перенаправили ls в tail, tail не знала о ls, и ls не знал о tail Dialogue: 0,0:39:07.98,0:39:10.74,Default,,0000,0000,0000,,pipe и перенаправление было задано shell Dialogue: 0,0:39:10.74,0:39:13.06,Default,,0000,0000,0000,,Так, в этом случае, что происходит, Dialogue: 0,0:39:13.06,0:39:17.15,Default,,0000,0000,0000,,я говорю моей shell выполнить программу sudo Dialogue: 0,0:39:17.15,0:39:22.72,Default,,0000,0000,0000,,с аргументами echo и 500, и пошли вывод в файл под названием brightness Dialogue: 0,0:39:22.72,0:39:28.57,Default,,0000,0000,0000,,Но shell открывает файл brightness, а не sudo Dialogue: 0,0:39:28.57,0:39:32.07,Default,,0000,0000,0000,,Так, в этом случае, shell, которая запущена как я, Dialogue: 0,0:39:32.07,0:39:33.98,Default,,0000,0000,0000,,пытается открыть файл brightness на запись, Dialogue: 0,0:39:33.98,0:39:35.60,Default,,0000,0000,0000,,и она не имеет права этого делать Dialogue: 0,0:39:35.60,0:39:37.98,Default,,0000,0000,0000,,И поэтому я получил ошибку "в доступе отказано" Dialogue: 0,0:39:37.98,0:39:41.69,Default,,0000,0000,0000,,Вы могли видеть это, если вы, как бы, ищите что либо, Dialogue: 0,0:39:41.69,0:39:42.80,Default,,0000,0000,0000,,вышли на Stack Overflow Dialogue: 0,0:39:42.80,0:39:44.41,Default,,0000,0000,0000,,и там сказано: просто запусти эту команду Dialogue: 0,0:39:44.41,0:39:46.83,Default,,0000,0000,0000,,и вы увидите что это далаем что-то вроде: Dialogue: 0,0:39:46.83,0:39:48.34,Default,,0000,0000,0000,,они дали вам инструкции вроде: Dialogue: 0,0:39:48.34,0:39:58.27,Default,,0000,0000,0000,,1 > /sys/net/ipv4_forward - например Dialogue: 0,0:39:58.27,0:40:01.52,Default,,0000,0000,0000,,это что то вы могли видеть, если вы устанавливаете firewall Dialogue: 0,0:40:01.52,0:40:04.24,Default,,0000,0000,0000,,И эта команда должна работать, Dialogue: 0,0:40:04.24,0:40:05.93,Default,,0000,0000,0000,,потому что этот маленький символ фунта ("phond symbol"), Dialogue: 0,0:40:05.93,0:40:07.83,Default,,0000,0000,0000,,указывает - запускать это как root Dialogue: 0,0:40:07.83,0:40:09.64,Default,,0000,0000,0000,,Это что-то, что очень редко разъяснено, Dialogue: 0,0:40:09.64,0:40:11.76,Default,,0000,0000,0000,,но это то, что # означает Dialogue: 0,0:40:11.76,0:40:14.11,Default,,0000,0000,0000,,Вы увидите на моей командной строке знак доллара, Dialogue: 0,0:40:14.11,0:40:16.94,Default,,0000,0000,0000,,и доллар указывает: вы сейчас не root Dialogue: 0,0:40:16.94,0:40:19.19,Default,,0000,0000,0000,,Так, вопрос - как мне обойти это? Dialogue: 0,0:40:19.19,0:40:22.27,Default,,0000,0000,0000,,Я могу переключиться в терминал root. Dialogue: 0,0:40:22.27,0:40:25.22,Default,,0000,0000,0000,,Так один способ сделает это: запустить sudo su. Dialogue: 0,0:40:25.22,0:40:28.84,Default,,0000,0000,0000,,sudo su - говорит: "запусти следующею команду как root" Dialogue: 0,0:40:28.84,0:40:32.51,Default,,0000,0000,0000,,и su - это сложная команда, Dialogue: 0,0:40:32.51,0:40:36.13,Default,,0000,0000,0000,,которая фактически даёт вам shell как супер юзер Dialogue: 0,0:40:36.13,0:40:40.61,Default,,0000,0000,0000,,Так, если я введу это, введу пароль, тогда вы сразу увидите Dialogue: 0,0:40:40.61,0:40:43.51,Default,,0000,0000,0000,,что имя пользователя в начале изменился с jon на root Dialogue: 0,0:40:43.51,0:40:46.24,Default,,0000,0000,0000,,И командная строка изменилась с $ на # Dialogue: 0,0:40:46.24,0:40:51.19,Default,,0000,0000,0000,,Если я теперь войду в этот файл, если я введу echo 500 > brightness Dialogue: 0,0:40:51.19,0:40:53.53,Default,,0000,0000,0000,,мой экран стал немного темнее, но вы не можете это видеть Dialogue: 0,0:40:53.53,0:40:55.38,Default,,0000,0000,0000,,просто поверье мне Dialogue: 0,0:40:55.38,0:40:57.48,Default,,0000,0000,0000,,И теперь, я не получил ошибки - Dialogue: 0,0:40:57.48,0:41:00.61,Default,,0000,0000,0000,,это потому что shell теперь запущена как root Dialogue: 0,0:41:00.61,0:41:02.24,Default,,0000,0000,0000,,а не как Jon Dialogue: 0,0:41:02.24,0:41:05.10,Default,,0000,0000,0000,,И пользователь root имеет право открыть этот файл Dialogue: 0,0:41:05.10,0:41:09.48,Default,,0000,0000,0000,,Но, учитывая наши знания которые мы теперь имеем о терминале Dialogue: 0,0:41:09.48,0:41:12.93,Default,,0000,0000,0000,,для нас существует способ делать это не прибегая к root shell Dialogue: 0,0:41:12.93,0:41:17.24,Default,,0000,0000,0000,,И это выглядит следующим образом: Dialogue: 0,0:41:17.90,0:41:21.93,Default,,0000,0000,0000,,это, я думаю, восстановит 1060 Dialogue: 0,0:41:21.93,0:41:24.50,Default,,0000,0000,0000,,Так, вы видите отличия? Dialogue: 0,0:41:24.50,0:41:28.68,Default,,0000,0000,0000,,Здесь я говорю моей shell запустить команду echo 1060 Dialogue: 0,0:41:28.68,0:41:30.15,Default,,0000,0000,0000,,которая выполнит echo 1060 Dialogue: 0,0:41:30.15,0:41:32.85,Default,,0000,0000,0000,,И я говорю ей запустить команду sudo tee brightness Dialogue: 0,0:41:32.85,0:41:37.60,Default,,0000,0000,0000,,И я говору "послать вывод от echo в sudo tee" Dialogue: 0,0:41:37.60,0:41:40.76,Default,,0000,0000,0000,,Чтобы это понять, вам нужно знать что делает команда tee Dialogue: 0,0:41:40.76,0:41:44.19,Default,,0000,0000,0000,,Команда tee принимает ввод и пишет его в файл, Dialogue: 0,0:41:44.19,0:41:46.66,Default,,0000,0000,0000,,но также в стандартный вывод Dialogue: 0,0:41:46.66,0:41:48.87,Default,,0000,0000,0000,,Так tee это удобный способ если у вас есть, Dialogue: 0,0:41:48.87,0:41:53.65,Default,,0000,0000,0000,,скажем, журнал, в который вы хотите сохранить, Dialogue: 0,0:41:53.65,0:41:55.78,Default,,0000,0000,0000,,но вы так же хотите видеть это Dialogue: 0,0:41:55.78,0:41:58.60,Default,,0000,0000,0000,,Тогда вы можете pipe это через tee, дать ему имя файла, Dialogue: 0,0:41:58.60,0:42:02.32,Default,,0000,0000,0000,,и это запишет ввод в файл и на ваш экран Dialogue: 0,0:42:02.32,0:42:05.31,Default,,0000,0000,0000,,И здесь я пользуюсь этой программой: Dialogue: 0,0:42:05.31,0:42:11.02,Default,,0000,0000,0000,,я говорю: "запусти tee как root и пусть tee пишет в файл brightness" Dialogue: 0,0:42:11.02,0:42:12.97,Default,,0000,0000,0000,,И так в этом случае программа tee, Dialogue: 0,0:42:12.97,0:42:14.77,Default,,0000,0000,0000,,которая открывает файл brightness, Dialogue: 0,0:42:14.77,0:42:17.58,Default,,0000,0000,0000,,запущена как root и имеет право это делать Dialogue: 0,0:42:17.58,0:42:20.70,Default,,0000,0000,0000,,Если я запущу это сейчас, вы снова не можете видеть, Dialogue: 0,0:42:20.70,0:42:23.42,Default,,0000,0000,0000,,но яркость включилась на лаптопе Dialogue: 0,0:42:23.42,0:42:24.51,Default,,0000,0000,0000,,И я не получил никаких ошибок, Dialogue: 0,0:42:24.51,0:42:26.67,Default,,0000,0000,0000,,и мне не понадобилось переходить в root shell Dialogue: 0,0:42:26.67,0:42:27.93,Default,,0000,0000,0000,,и запускать команды оттуда Dialogue: 0,0:42:27.93,0:42:30.72,Default,,0000,0000,0000,,Что часто может быть в некотором роде опасным Dialogue: 0,0:42:30.72,0:42:32.79,Default,,0000,0000,0000,,Если вы хотите исследовать эту файловую систему немного больше Dialogue: 0,0:42:32.79,0:42:35.76,Default,,0000,0000,0000,,здесь есть много чего интересного Dialogue: 0,0:42:35.76,0:42:38.99,Default,,0000,0000,0000,,Если вы просто начнёте осматриваться вокруг, Dialogue: 0,0:42:38.99,0:42:41.15,Default,,0000,0000,0000,,вы можете найти забавные вещи всех сортов Dialogue: 0,0:42:41.15,0:42:44.48,Default,,0000,0000,0000,,Так, к примеру, мы заметили что есть забавная команда brightness Dialogue: 0,0:42:44.48,0:42:47.79,Default,,0000,0000,0000,,Мне интересно, какие ещё яркости я могу задать Dialogue: 0,0:42:47.79,0:42:49.51,Default,,0000,0000,0000,,Так я могу использовать команду find, Dialogue: 0,0:42:49.51,0:42:52.24,Default,,0000,0000,0000,,которую мы также обсудим на следующей лекции, Dialogue: 0,0:42:52.24,0:42:58.55,Default,,0000,0000,0000,,Я буду искать каждый файл, чьё имя немного похоже на brightness Dialogue: 0,0:42:58.55,0:43:00.46,Default,,0000,0000,0000,,в текущей директории Dialogue: 0,0:43:00.46,0:43:01.70,Default,,0000,0000,0000,,Это бесполезно Dialogue: 0,0:43:01.70,0:43:07.65,Default,,0000,0000,0000,,Может быть они не файлы. Я ошибся в слове brightness? Dialogue: 0,0:43:07.65,0:43:09.50,Default,,0000,0000,0000,,Да, почему это так себя ведёт? Dialogue: 0,0:43:14.96,0:43:20.19,Default,,0000,0000,0000,,О, по-видимому не хочет найти мне brightness. Как хорошо. Dialogue: 0,0:43:20.19,0:43:24.28,Default,,0000,0000,0000,,К счастью для вас - я уже знаю одну, кстати. Dialogue: 0,0:43:24.28,0:43:29.79,Default,,0000,0000,0000,,Существует субдиректория под названием leds, и leds тоже имеет brightness Dialogue: 0,0:43:29.79,0:43:31.96,Default,,0000,0000,0000,,Какого рода leds здесь есть? У-уу - много всего! Dialogue: 0,0:43:31.96,0:43:35.43,Default,,0000,0000,0000,,Например яркость scroll lock индикатора Dialogue: 0,0:43:35.43,0:43:39.23,Default,,0000,0000,0000,,В наше время большинство из вас наверное уже не знает что такое светодиодный индикатор scroll lock, Dialogue: 0,0:43:39.23,0:43:41.30,Default,,0000,0000,0000,,и ещё менее вероятно что такое сам scroll lock Dialogue: 0,0:43:41.30,0:43:45.73,Default,,0000,0000,0000,,Вы могли видеть кнопку на своей клавиатуре с надписью "Scroll Lock" Dialogue: 0,0:43:45.73,0:43:48.41,Default,,0000,0000,0000,,На самом деле никто больше не знает что это значит, Dialogue: 0,0:43:48.41,0:43:50.26,Default,,0000,0000,0000,,никто в действительности ни для чего её не использует, Dialogue: 0,0:43:50.26,0:43:54.67,Default,,0000,0000,0000,,это в основном "мёртвая" кнопка, и "мёртвый" индикатор Dialogue: 0,0:43:54.67,0:43:56.23,Default,,0000,0000,0000,,Что если бы вы захотели настроить его Dialogue: 0,0:43:56.23,0:43:57.88,Default,,0000,0000,0000,,так, что каждый раз когда вы получаете е-мейл Dialogue: 0,0:43:57.88,0:43:59.53,Default,,0000,0000,0000,,ваш scroll lock загорается? Dialogue: 0,0:43:59.53,0:44:01.71,Default,,0000,0000,0000,,Потому что нет другой причины чтобы он загорался Dialogue: 0,0:44:01.71,0:44:05.79,Default,,0000,0000,0000,,Хорошо, если мы посадим вас в эту конкретную директорию, Dialogue: 0,0:44:05.79,0:44:07.31,Default,,0000,0000,0000,,в которой есть место для яркости Dialogue: 0,0:44:07.31,0:44:08.31,Default,,0000,0000,0000,,и оно выставлено в ноль, Dialogue: 0,0:44:08.31,0:44:11.72,Default,,0000,0000,0000,,что будет если я впишу сюда единицу Dialogue: 0,0:44:13.21,0:44:16.88,Default,,0000,0000,0000,,Возможно вам не нужно писать случайные числа в случайные файлы Dialogue: 0,0:44:16.88,0:44:19.50,Default,,0000,0000,0000,,в этой директории, потому что вы влияете на директорию ядра, Dialogue: 0,0:44:19.50,0:44:21.05,Default,,0000,0000,0000,,как бы, поищите что эти файлы делают. Dialogue: 0,0:44:21.05,0:44:26.33,Default,,0000,0000,0000,,В этом конкретном случае, я ношу защитные очки - я поискал сам перед этим Dialogue: 0,0:44:26.33,0:44:31.50,Default,,0000,0000,0000,,Так вы не можете сейчас сказать, но на моей клавиатуре индикатор scroll lock теперь светится Dialogue: 0,0:44:31.50,0:44:35.49,Default,,0000,0000,0000,,Так, если сейчас я напишу программу которая как бы проверяла е-мейл и всё такое, Dialogue: 0,0:44:35.49,0:44:37.49,Default,,0000,0000,0000,,я бы мог в конце концов выполнять программу Dialogue: 0,0:44:37.49,0:44:39.39,Default,,0000,0000,0000,,которая бы эхо в этот файл Dialogue: 0,0:44:39.39,0:44:43.69,Default,,0000,0000,0000,,и теперь у меня есть способ для моего светодиодного индикатора на моей клавиатуре Dialogue: 0,0:44:43.69,0:44:45.81,Default,,0000,0000,0000,,показывать когда я получил новый е-мейл Dialogue: 0,0:44:46.80,0:44:53.62,Default,,0000,0000,0000,,На этом месте вы должны знать примерно как обращаться с терминалом и shell, Dialogue: 0,0:44:53.62,0:44:56.82,Default,,0000,0000,0000,,и знать достаточно, чтобы выполнять эти простые задания Dialogue: 0,0:44:56.82,0:44:58.86,Default,,0000,0000,0000,,По крайней мере, теоретически, Dialogue: 0,0:44:58.86,0:45:02.37,Default,,0000,0000,0000,,вам не обязательно больше использовать указать-и-щёлкать интерфейс Dialogue: 0,0:45:02.37,0:45:03.70,Default,,0000,0000,0000,,чтобы искать файлы Dialogue: 0,0:45:03.70,0:45:05.86,Default,,0000,0000,0000,,Ещё один оставшийся трюк, который вам может понадобится - Dialogue: 0,0:45:05.86,0:45:08.05,Default,,0000,0000,0000,,это возможность открыть файл Dialogue: 0,0:45:08.05,0:45:13.10,Default,,0000,0000,0000,,до сих пор я только давал вам способы найти файл, Dialogue: 0,0:45:13.10,0:45:19.75,Default,,0000,0000,0000,,но одна вещь о которой вы должны знать: xdg-open Dialogue: 0,0:45:19.75,0:45:22.37,Default,,0000,0000,0000,,это возможно работает только на Linux, Dialogue: 0,0:45:22.37,0:45:24.31,Default,,0000,0000,0000,,на Mac OS я думаю это называется просто open Dialogue: 0,0:45:24.31,0:45:26.38,Default,,0000,0000,0000,,на Windows - кто его знает? Dialogue: 0,0:45:26.38,0:45:31.66,Default,,0000,0000,0000,,xdg-open вы даёте имя файла - и он открывается в соответствующей программе Dialogue: 0,0:45:31.66,0:45:35.58,Default,,0000,0000,0000,,так если вы откроете, если вы введёте xdg-open и HTML файл Dialogue: 0,0:45:35.58,0:45:38.50,Default,,0000,0000,0000,,который откроет ваш браузер и откроет этот файл Dialogue: 0,0:45:38.50,0:45:40.05,Default,,0000,0000,0000,,И когда у вас будет эта программа, Dialogue: 0,0:45:40.05,0:45:43.77,Default,,0000,0000,0000,,в теории - вам не никогда не нужно больше открывать какое-то поисковое окно Dialogue: 0,0:45:43.77,0:45:45.74,Default,,0000,0000,0000,,вы можете по другим причинам, Dialogue: 0,0:45:45.74,0:45:47.33,Default,,0000,0000,0000,,но в теории вы можете со всем справиться Dialogue: 0,0:45:47.33,0:45:49.95,Default,,0000,0000,0000,,используя инструменты с которыми мы сегодня познакомились Dialogue: 0,0:45:49.95,0:45:53.52,Default,,0000,0000,0000,,Это всё может выглядеть относительно просто для некоторых из вас, Dialogue: 0,0:45:53.52,0:45:56.14,Default,,0000,0000,0000,,но как я уже упомянул это как бы ознакомительный период Dialogue: 0,0:45:56.14,0:45:57.97,Default,,0000,0000,0000,,Теперь мы все знаем как работает shell Dialogue: 0,0:45:57.97,0:46:00.52,Default,,0000,0000,0000,,и многое из того что мы будем делать на будущих лекциях - Dialogue: 0,0:46:00.52,0:46:04.65,Default,,0000,0000,0000,,это использовать эти знания для действительно интересных вещей Dialogue: 0,0:46:04.65,0:46:06.04,Default,,0000,0000,0000,,используя shell Dialogue: 0,0:46:06.04,0:46:10.19,Default,,0000,0000,0000,,вроде изучения интерфейса - интерфейса который мы будем использовать, Dialogue: 0,0:46:10.19,0:46:12.64,Default,,0000,0000,0000,,поэтому важно чтобы мы все это знали Dialogue: 0,0:46:13.43,0:46:16.26,Default,,0000,0000,0000,,Мы будем много говорить на следующей лекции Dialogue: 0,0:46:16.26,0:46:17.85,Default,,0000,0000,0000,,о том как автоматизировать такие задачи Dialogue: 0,0:46:17.85,0:46:20.72,Default,,0000,0000,0000,,Как писать скрипты которые выполняют для вас несколько программ Dialogue: 0,0:46:20.72,0:46:25.15,Default,,0000,0000,0000,,И как делать вещи как условные выражения и циклы и прочее, в вашем терминале Dialogue: 0,0:46:25.15,0:46:28.23,Default,,0000,0000,0000,,И делать такие вещи как выполнять программу пока не вывалится Dialogue: 0,0:46:28.23,0:46:30.70,Default,,0000,0000,0000,,Что может пригодится в классах где вы хотите выполнять что-либо пока Dialogue: 0,0:46:30.70,0:46:33.39,Default,,0000,0000,0000,,ваш набор тестов не запорится, к примеру Dialogue: 0,0:46:33.39,0:46:37.34,Default,,0000,0000,0000,,Так это тема лекции следующей недели, у вас есть вопрос? Dialogue: 0,0:46:37.34,0:46:41.40,Default,,0000,0000,0000,,(aудитория) Да, просто в связи с тем что вы демонстрировали - это вспомогательная директория Dialogue: 0,0:46:41.40,0:46:48.83,Default,,0000,0000,0000,,которая предположительно будет работать только если вы выполняете это в Linux, а не в субсистеме Linux ? Dialogue: 0,0:46:48.83,0:46:54.28,Default,,0000,0000,0000,,Это хороший вопрос! Я не знаю если субсистема Windows для Linix Dialogue: 0,0:46:54.28,0:46:56.68,Default,,0000,0000,0000,,предоставит файловую систему sis. Dialogue: 0,0:46:56.68,0:47:01.15,Default,,0000,0000,0000,,Если да - то возможно только в очень малом количестве. Dialogue: 0,0:47:01.75,0:47:08.48,Default,,0000,0000,0000,,Оно может. Потому что... Я не знаю, проверьте Dialogue: 0,0:47:08.48,0:47:12.71,Default,,0000,0000,0000,,Одно вы увидите - конспекты этой лекции уже онлайн, Dialogue: 0,0:47:12.71,0:47:16.22,Default,,0000,0000,0000,,и в самом низу файла - куча упражнений. Dialogue: 0,0:47:16.22,0:47:18.02,Default,,0000,0000,0000,,Некоторые из них относительно просты, Dialogue: 0,0:47:18.02,0:47:19.39,Default,,0000,0000,0000,,некоторые из них немного сложнее Dialogue: 0,0:47:19.39,0:47:23.31,Default,,0000,0000,0000,,И что мы рекомендуем вам сделать, это выполнить их, Dialogue: 0,0:47:23.31,0:47:25.92,Default,,0000,0000,0000,,если вы уже это знаете, это пойдёт довольно быстро, Dialogue: 0,0:47:25.92,0:47:28.47,Default,,0000,0000,0000,,если нет - это может научить вам много чему Dialogue: 0,0:47:28.47,0:47:30.89,Default,,0000,0000,0000,,что вы не знали что не знали Dialogue: 0,0:47:30.89,0:47:34.20,Default,,0000,0000,0000,,И на кафедре, сразу после этой лекции, Dialogue: 0,0:47:34.20,0:47:35.69,Default,,0000,0000,0000,,мы будем счастливы Dialogue: 0,0:47:35.69,0:47:36.84,Default,,0000,0000,0000,,провести вас через всех них, Dialogue: 0,0:47:36.84,0:47:38.56,Default,,0000,0000,0000,,или другие команды о которых вы узнаете в процессе Dialogue: 0,0:47:38.56,0:47:40.53,Default,,0000,0000,0000,,и захотите узнать как использовать их более эффективно Dialogue: 0,0:47:40.53,0:47:42.51,Default,,0000,0000,0000,,И тогда на следующей лекции, Dialogue: 0,0:47:42.51,0:47:44.26,Default,,0000,0000,0000,,которая будет завтра, Dialogue: 0,0:47:44.26,0:47:45.63,Default,,0000,0000,0000,,мы просто будем считать что Dialogue: 0,0:47:45.63,0:47:48.36,Default,,0000,0000,0000,,вы знаете вещи вроде тех которым вас научат упражнения Dialogue: 0,0:47:48.36,0:47:52.11,Default,,0000,0000,0000,,На сайте есть так же е-мейл адрес, Dialogue: 0,0:47:52.11,0:47:53.54,Default,,0000,0000,0000,,куда вы можете послать нам вопросы Dialogue: 0,0:47:53.54,0:47:58.05,Default,,0000,0000,0000,,Если вы подумаете об чём-то поздно ночью Dialogue: 0,0:47:58.05,0:48:04.48,Default,,0000,0000,0000,,Есть ли вопросы перед там как мы закончим сегодня? Нет? Нет? Dialogue: 0,0:48:04.48,0:48:10.37,Default,,0000,0000,0000,,Отлично, мы будем на кафедре на девятом этаже здания "ворота" ("gates") здания 32 Dialogue: 0,0:48:10.37,0:48:12.15,Default,,0000,0000,0000,,примерно через 5 минут Dialogue: 0,0:48:13.34,0:48:15.83,Default,,0000,0000,0000,,Увижу вас там