[Грає музика] 

ДАГ Lloyd: ОК. Отже, давайте поговоримо про те, як використовувати командний рядок Linux. Тепер, CS50 IDE, або в Те ,, навіть CS50 прилад, якщо ви знайомі з тим, чи ви приймаєте стару версію CS50, хмара на основі машини який працює в Ubuntu, який є одним з багатьох смаків операційної системи Linux. Операційна система Linux є сприяє програмістів, тому що це просто кулер, вірно? 

Багато сучасних дистрибутиви Linux є графічні інтерфейси, які ми також називаємо ГПИ, G-U-I, щоб дозволяють легку навігацію миші основі, які ви, ймовірно, знайомі, якщо ви користувач Windows, Mac або, рухатися навколо миші, двічі клацнувши на іконах, і так далі. Тим не менш, хоча, як програміст, і навіть незважаючи на те, IDE містить здатність до зробити деякі графічного користувальницького матеріал, клацання, і перетягування, і все, що Ви як і раніше використовувати ваш вікно терміналу досить часто. І ви можете зробити багато з ж завдання, які можна зробити за допомогою миші з клавіатури команд. І ми збираємося поговорити трохи про те, що деякі з цих команд зараз перебуваєте. 

Тепер, ці команди можуть бути використані на будь-якій Unix-подібної операційної система, яка включає в себе Linux, але також включає в себе Mac OS. Якщо ви відкриєте термінал на вашому комп'ютері, Ви можете використовувати ці точні команди. Вікна також має команду Підкажіть, але деякі з команд трохи відрізняються, так це насправді не працює, оскільки не є UNIX-система на основі. 

Отже, давайте поглянемо на деякі з цих команд Linux. Перше, що ви будете ймовірно, використовувати досить багато це Ls. Це рядкові л, супроводжуваний рядкова с, що є абревіатурою від списку. І те, що команда список робить це дає вам зчитування всіх файлів і папки в поточній директорії. Таким чином, ви можете бачити все, що ви можете дістатися до, де ви в даний час. 

Так що я відкрив тут CS50 IDE. І я збираюся, щоб збільшити в в другий дасть вам ближче, але от широка картина від того, що IDE виглядає. Зліва ви можете побачити у нас є файл дерево, яке ви, ймовірно, знайомі з, подвійне клацання, і файли і папки, і таке інше. Так що все ще там в CS50 приладу. У центрі у верхній, де ви буде писати код, один раз Ви натисніть на файлі. А внизу, ми є вікно терміналу, який є, де ми можемо виконати ці термінальні команди. 

Я збираюся, щоб збільшити в і над головою тут, просто щоб показати вам, що, насправді, я можу натисніть на ці файли і папки. Отже, ясно, де даний час я, у мене є дві папки, які називаються pset0 і pset1, і три файли, один називається привіт, одна називається hello.c, і одна називається hello.txt. 

Отже, давайте рухатися вниз до терміналу вікна і отримати ближчий погляд. Таким чином, ми тільки що говорили, знову ж таки, про Те, що ми маємо три файли і два папок в поточній директорії. Якщо я друкую Ls, який знову це команда, список вміст струму Каталог, а потім я вдарив Enter, подивіться, що я бачу, привіт, hello.c, hello.txt, pset0 і pset1. 

pset0 і pset1 є синього кольору, щоб вказати, вам, що ті каталоги що ми могли б орієнтуватися в. І ми дізнаємося, трохи Трохи про те, як орієнтуватися в каталогах на хвилину. І кожен річ чорного кольору, якщо це текстовий файл або вихідний код подати, і зелений, якщо це виконуваний файл. Отже, ясно, що означає, що я може запустити програму під назвою, привіт. Це те, що зелена означає, що. Але в принципі, ввівши Команда Ls дозволило мені дивитися на все, що існує в моєму поточному каталозі, який відповідає тому, що ми бачимо тут, в Графічний дисплей те ж саме. Наступна команда ви будете ймовірно, використовувати трохи є CD, рядкова с, в нижньому регістрі г, який є скороченням для каталогу змін. Це дозволяє нам робити те, що я був говорити про другу назад, що є для переміщення між каталоги в команді Лінія, на відміну від подвійне клацання по папках. Так що, якщо ми наберемо компакт-диск і потім ім'я каталогу, ми можемо отримати в цьому каталозі. 

Як і в сторону, знають, що назва з поточного каталогу завжди точка, і назва каталогу на один рівень вище, де ми зараз знаходимося, що це ім'я папки в які наша папка, точка, dot-- або в яких наша папка є, крапка, крапка. І якщо ви коли-небудь знати, назва вашого каталогу, Ви можете ввести PWD, який стоїть для даного робочого каталогу. Ми будемо дивитися на всі ці тепер, повертаючись до CS50 IDE. Так що я знову в моєї робочої досі. І я буду масштабу в раз на Термінал, тому ми можемо поглянути при переміщенні навколо в IDE. Так що я збираюся перерахувати Зміст моєму каталозі знову, просто перезатачіваемие нам в де ми знаходимося. Так що, якщо я друкую Ls, які для списку знову, Я бачу, що я можу отримати, щоб pset0 і pset1. Ті каталоги Я можу дістатися до звідси. Я знаю, що, тому що IDE дає мені ключ від забарвлення їх синій. 

Давайте припустимо, що я хочу, щоб потрапити в моєму каталозі pset1, тому що я працюю з проблеми встановити 1. Я можу надрукувати cd-- знову, короткий для змінити directory-- простір, pset1. І якщо я вдарив Enter, відмітити, що відбувається. Це не виглядає як багато сталося. Але якщо ви подивитеся на швидке, тепер говорить мені, що я перебуваю в ~ / робочої / pset1. Я вийшов у pset1 Папка, був у моєму робочому просторі. 

І якщо я набираю Ls, я бачу деякі різні речі тут, вірно? Це не те ж саме Список, який я бачив. Я вийшов у pset1. І ось тепер, коли я друкую Ls, я отримувати контексті того, що я можу см з папки pset1. 

Тепер, я збираюся ввести контроль л, що просто очищає екран. І я збираюся перерахувати Вміст каталогу знову ж таки, так що ви можете бачити. Я просто хотів зробити що очистити деякі речі що ви бачили внизу і щоб запобігти цьому зайти надто далеко вниз з діапазону. 

Тепер, я сказав раніше, що, якщо я хочу перейти до поточної директорії, Я можу надрукувати кд простору точка. Натисніть Enter. Це нічого не робити, чи не так? Я міняю каталоги в поточному каталозі. Ви не завжди буде знайти необхідність для однієї точки, але ви будете час від часу. 

Давайте припустимо, що я хочу, щоб піднятися на один рівень. Я хочу, щоб повернутися до Мій сайт каталогу. Я не можу ввести кд робочий простір, немає такого файлу або каталогу. І причина that-- якщо я типу Ls ще один time-- є те, що немає директорія Робочий простір всередині моєї директорії pset1. Я збираюся очистити екран знову управління л. Пам'ятайте, що я сказав, раніше, проте, що ми може повернутися назад з точки, крапка. Це ім'я батьківського каталогу. Так що, якщо я друкую CD, простір, точка, точка, а потім ударив Enter, Тепер подивимося, що сталося. Мій командного рядка говорить мені, що я тому в моєму каталозі ~ / робочою. Я переїхав на один рівень вгору, завдяки точка, точка. 

Тепер, давайте скажемо, що я використовую Операційна система Linux, яка на основі але не обов'язково скажи мені, де я перебуваю. Цей відбувається, щоб повідомити нам, що Я в ~ / робочої прямо зараз, Право на рядку. Але я міг бути повністю втратили в безладдя папок, і я поняття не маю, де я і Не знаю, де я хочу, щоб повернутися до. Там дві речі, які я можу зробити. 

Перш за все, я можу зрозуміти , Де я, набравши PWD. Це мій справжній робочий каталог. І якщо я вдарив його, введіть каже мені точно, де я перебуваю. Тепер / будинку / Ubuntu це довгий шлях кажучи, тильди, що ваш домашній каталог. Але він каже мені, що я перебуваю в Головна / Ubuntu / робочий простір, або ~ / робочий простір. 

Я збираюся перейти на мій каталог pset1 знову, і я збираюся перерахувати вміст. І я бачу, що в мене є ще один Каталог існує, називається статистів. Так що я збираюся кд на статистів, і тоді я йду, щоб очистити свій екран. 

Так що тепер, я досить далеко в, правильно? Що робити, якщо я хочу, щоб підтримати негайно робочого простору? Там є пара речей, які я міг би зробити. Я міг би ввести CD, крапка, крапка, крапка слеш ,, точка, щоб перейти на один рівень вгору, а потім інший рівень. Але це вид дратує. 

Так що, якщо я коли-небудь хочете, щоб повернутися до просто мій домашній каталог, тильда, Я можу надрукувати компакт-диск з нічого після нього. Cd, Enter. А тепер, я перебуваю в тильди. І якщо я хочу, щоб дістатися до робочої області Я можу просто наберіть кд робочий простір. І це, як ви працюєте Зміна каталогу в CS50 IDE або будь Linux Операційна система в командному рядку. Добре. Наступний, що може стане в нагоді в MkDir, що є абревіатурою зробити каталог, якщо мені потрібно, щоб створити нову папку. Якщо ви знайомі з операційна система графічний інтерфейс, Ви могли б клацніть правою кнопкою миші. А потім, коли контекстне меню спливає, виберіть New Folder. Це, ймовірно, як Ви зробили це раніше. Але ми також можемо створити каталоги в командному рядку. Так ми повернулися в IDE. Я масштабу в на терміналі і список вмісту каталогу моєї знову ж таки, щоб дати нам кадр із заслання. Давайте припустимо, що, в даний час, я маю закінчив роботу з проблеми встановити 0 і проблема встановити 1. Тому я хочу, щоб створити новий каталог працювати на для задачі набір 2. Як мені це зробити? 

Ну, знову ж, я міг клацніть правою кнопкою миші в лівій стороні і вибрати нову папку і створити каталог pset2. Це було працювати теж. Але тоді я це зробити на командного рядка досить швидко, , Набравши MkDir, space-- I набрали в російській, но-- простору pset2. Якщо я вдарив Введіть, а потім я перерахую вміст мого каталогу знову, Я бачу, що, подивіться, в даний час У мене є папка pset2. І я можу переміщатися в що за допомогою компакт-диска і робити вся робота Мені потрібно зробити для pset2. До речі, я просто тріщати тут дуже швидко у файловому дереві. І ви можете бачити, що, крім того, в графічний File Explorer, ми можемо бачити, що каталог pset2 Також було створено є. І я можу перейти до неї, за допомогою графічного інтерфейсу, а також. Наступного разу, і це ймовірно, стане в нагоді є ф, який є скороченням для копіювання. Скопіюйте, на відміну від усіх інших команди, які ми бачили раніше, приймає два аргументи, джерело, Файл, який ви хочете скопіювати, і призначення, де вам хочу, щоб скопіювати файл на. Це досить легко скопіювати файл, так що давайте робити це. 

Так ми повернулися в IDE. Я збираюся перерахувати вміст моєї поточної директорії з Ls. Тепер, давайте скажемо, що я хочу, щоб зробити копію hello.txt. Знову ж таки, з файлового дерева на наліво, графічний інтерфейс, Я міг клацніть правою кнопкою миші на hello.txt, зробити копію, вставити копію. Але я можу зробити це досить швидко в командному рядку занадто. 

Скажімо, я хочу, щоб скопіювати hello.txt в hi.txt. Я можу CP, простір, hello.txt. Це мій вихідний файл, так що це, чому Я збираюся вибрати, що один в першу чергу. А потім мені потрібно назвати файл призначення, hi.txt. Я вдарив Enter. І якщо я список вмісту мого Каталог раз, там hi.txt. Я зробив копію. І справді, якби я пішов в hi.txt, я міг бачити, що це було б точне дублювати все, що існувала в моїй hello.txt файлу. 

Так от, як ви копіюєте файл. Але що, якщо ви хочете, щоб скопіювати весь каталог? Таким чином, для другої, давайте поглянемо на те, що в моєму каталозі pset0. Якщо я кд pset0 і список вмісту, У мене є каталог з ім'ям, зразок, і подряпина файл, scratch.sb2. Так що це добре знати. Отже, давайте очистити екран, і я збираюся повернутися Мій сайт каталогу на секунду. 

Давайте припустимо, що, в даний час, я хочу, щоб зробити копію мого каталогу pset0. Я не можу просто сказати ср pset0 pset3, наприклад. Ви отримаєте цей дивний повідомлення, опускаючи каталогів pset0. Чому ви отримаєте це повідомлення? Ну, виходить, що, коли у вас є каталог, що є й інші речі всередині нього, команда ср справді не обов'язково знати, що з ним робити. 

Ми повинні чітко розповісти Linux, термінал, Я хочу, щоб ви скопіювати Каталог pset0 та копія кожен папка, існує всередині з нього, і кожен файл, який існує всередині нього. Іншими словами, я хочу, щоб ти рекурсивно пірнати в pset0 і зробити копію всього там. 

Якщо я хочу, щоб робити те, що я можу зробити, є ф-т, для рекурсивного, pset0 pset3. Натисніть Enter. Тепер, якщо я перерахую вміст мого каталогу, Я бачу, що це pset3 каталог, який я можу працювати с. І якщо я компакт-диск в pset3 зараз і потім перерахувати вміст, подивіться, є зразок і scratch.sb2 знову. Так що це досить прохолодно. Так от, як ви можете скопіювати весь каталог і не тільки один файл. Так що, якщо ви хочете, щоб скопіювати Каталог, просто пам'ятайте, використовувати прапор -r, коли ви працювати з командою СР Добре. Так що я скопіював файл, але Я зробив це помилково. А тепер, я хочу, щоб позбутися від нього. Як мені це зробити? Знову ж таки, якщо ви знайомі з графічним інтерфейсом, Ви можете натиснути правою кнопкою миші і просто вибрати Видалити. І це буде відправити його в сміття або кошика. Але в командному рядку, ми можете просто ввести RM, для видалити, і потім ім'я з подати ми хочемо позбутися. 

Тепер, RM дуже обережні. Це робить багато повторні перевірки, щоб переконатися, що ви насправді Видалити файл. Вона не хоче, щоб робити які-небудь помилки, тому що немає кошика тут. Після того, як ми видаляємо файл, він пішов. І насправді немає способу його відновити. Таким чином, ми повинні бути дуже обережні, так і гт буде дуже обережним для нас. 

Отже, давайте повернемося до IDE і позбутися цього hi.txt файлу що я створив хвилину тому з копією. Таким чином, ми знаходимося в середовищі IDE. І я перерахувати вміст моєму каталозі знову ж таки, щоб дати нам деякий контекст. Я маю на увазі, ви можете бачити, що є hi.txt, який я створив деякий час назад. Тепер я хочу, щоб позбутися від нього. Як це зробити? 

Знову ж таки, гт. Так що я можу ввести гт hi.txt і натисніть Введення. І є RM істота дуже обережні для нас і переконавшись, що ми насправді Видалити цей файл. Ви дійсно хочете видалити Стабільний порожній файл hi.txt? От тільки, як діючих Система, як Windows, Mac або, що ви могли б бути знайомі з вискакують що коробка каже ви дійсно впевнені, що хочете це зробити. 

Я впевнений, що я хочу, щоб це, так що я збираюся ввести, yes-- або я міг також просто введіть y-- і натисніть Введення. І якщо я список вмісту мого Каталог раз, hi.txt немає. Не погано, чи не так? Давайте натисніть управління L, тільки щоб позбутися від усього цього матеріалу і повернути нас на верхня частина екрана. 

Тепер є спосіб коротке замикання RM, так що він не задати нам це питання. Ми знаємо, що ми хочемо щоб позбутися цього файлу, і ми навіть не хочемо бути поставлено питання. Як ми це робимо? Ну, ми можемо вказати додаткова прапор, як ми зробив з ф, де ми можна додати прапор -r, рекурсивно копіювати в папку. Там ще один прапор для РМ, яка -f, що змусити RM робити саме те, що ми говоримо це зробити. 

Отже, давайте говорити, що тепер, я хочу, щоб позбутися від мого hello.txt файлу. Я не хочу, що один небудь. Що я можу зробити? Ну, я можу гт -f hello.txt. Що ви думаєте тут має статися? Це пішло. Я навіть не прошу мені питання. І справді, якщо я перераховую вміст моєї директорії знову, він пішов. Там немає скасувати тут. hello.txt пішов, і я не був навіть запитав, якщо я хотів, щоб видалити його. Що робити, якщо я хочу, щоб позбутися з усього каталогу? Як ви зробити це дуже схожий на копіювання. Якщо ви хочете видалити Каталог, ви не просто хочете видалити каталог, ви хочете видалити всі всередині нього. І тому можна використовувати -r, щоб рекурсивно видалити каталог. 

Отже, давайте гт -r pset2. Я насправді не працює на pset2, так що я можу позбутися цього каталогу. Я вдарив Enter. Чи хочу я, щоб видалити каталог, pset2? Так. І якщо я перераховую вміст мій каталог знову, він пішов. Все в порядку? 

Ще одна варіація на цю тему. Так що я буду очистити екран знову, поставити все на самому верху. Хіт Ls. Тепер я хочу, щоб позбутися моєї директорії pset3, і я знаю, я хочу, щоб позбутися від мого каталогу pset3. Я можу рекурсивно і насильно видалити мій каталог pset3. 

Тепер, ви збираєтеся бути дійсно обережні, коли ви використовуєте гт -rf. Як ви програмуєте більше, що це буде те, що ви просто зробити дуже швидко. І справді, я роблю це весь час. Але це може привести до деяких катастрофічні наслідки, Якщо ви випадково видалити неправильну річ. Тому я хочу, щоб ви знали, що це варіант доступні для вас, але використовувати його помірно, і використовувати його з обережністю. 

Я знаю те, що я не працює на моїй проблемі набір 3 більше, так що я збирається позбутися від усіх цих файлів. І я знаю, я не хочу, щоб запитав кожен раз, якщо я хочу, щоб видалити файл, так що я збираюся гт -rf pset3. Навіть не питайте мене, якщо я хотів позбутися від нього. Я вдарив Ls. pset3 немає. Так от всі зміни, які ви можна використовувати, щоб позбутися від файлів з РМ. 

Остання команда командного рядка, що це збирається дуже корисно для вас це М.В., який є скороченням від переїзду. Перемістити в основному еквівалентна перейменувати. Це переміщує файл з одного місця в інше джерело в пункт призначення. Давайте подивимося, де використання крок може бути зручно у вікні терміналу. 

Так що я в моєму pset1 Каталог, і я помітив, щось пішло трохи неправильно. Я працював на моєму жадібному проблеми, але я випадково назвав його GReddy. Так що, коли я намагаюся і запустити його через check50, це дійсно не працює. У мене є кілька варіантів. Ми могли б зробити те, що ми робили раніше, що зробити копію файлу. Я міг скопіювати greddy.c щоб greedy.c, вірно? Натисніть Enter. Я бачу, що обидва файли є. І тоді я міг RM, видалити, greddy.c. Це позбавляється від нього. Так, що буде працювати, після того як я підтвердити що я хочу, щоб позбутися від нього. І я фактично є перейменований в greddy.c greedy.c. Я скопіював його, а потім видалити оригінал. 

Але це багатоетапний процес. І звичайно, є кращий шлях. Насправді, є. Отже, давайте вдарив управління L, просто принести це назад вгору, і список вмісту моєї директорії знову. 

Отже, давайте говорити, ах, я зробив помилку. Я насправді дійсно хочуть зателефонувати цей файл greddy.c. У одним махом, я можу типу рухатися greedy.c в greddy.c. Натисніть Enter. А тепер, у мене не було копіювати і видаляти його, Я просто був у стані, щоб перейменувати його. Один-стоп покупки. 

Тепер, є багато інших Основні утиліти командного рядка що ви можете використовувати з командного рядка Linux. І ми будемо обговорювати багато з них в майбутньому в CS50. Але зараз, просто отримувати ваші ноги мокрі з роботи з цим терміналом навколишнього середовища, ці п'ять команд повинно вам досить далеко в навігації навколо і роботи з файлами у вашій IDE або в будь Linux-основі Операційна система ви використовуєте. 

Якщо вам цікаво, і ви хочете, щоб дивитися вперед трохи на деякі команд командного рядка ми будемо використовувати в майбутньому, ось список з декількох з найбільш поширених з них. Я Дуг Ллойд. Це CS50.