[За възпроизвеждане на музика] Дъг LLOYD: OK. Така че нека да говорим за това как да се използвате командния ред на Linux. Сега, CS50 IDE, или в Всъщност, дори CS50 уред, ако сте запознати с това, или сте като по-стара версия на CS50, е машина, базирана на облак която тече Ubuntu, който е един от многото аромати на операционната система Linux. Linux операционна система е предпочитан от програмисти, защото това е просто охладител, нали? Много съвременни дистрибуции на Linux има графичен потребителски интерфейс, които ние също наричаме GUIs, G-U-I, за да позволява лесно мишката-базирана навигация, които вие вероятно сте запознати с, ако сте потребител на Windows или Mac, движите мишката, двукратно щракване върху иконите, и така нататък. Все пак, като програмист, и въпреки че IDE способността да съдържа направят някои графичен потребителски неща, щракване, и плъзгане и всички, които, Вие все още ще бъде с вашите терминален прозорец доста често. И вие можете да направите много от същите задачи, които можете да направя с мишка с команди от клавиатурата. И ние ще поговорим малко за това, което някои от тези команди са в момента. Сега, могат да се използват тези команди на всеки Unix-базирана операционна система, която включва Linux, но също така включва Mac OS. Ако се отвори терминал на вашия Mac, можете да използвате точно тези команди. Windows също има Command Prompt, но някои от командите са малко по-различен, така че тя всъщност не работи, защото не е Windows на Unix-базирана система. Така че нека да разгледаме някои Linux на тези команди. Първият от тях, че ще Вероятно използвате доста е ли. Това е само с малки букви л, последвано от с малки букви и, което е съкратено от списъка. И това, което командата списък пък е ви дава отчитане на всички файлове и папки в текущата директория. Така че можете да видите всичко, което можете стигнем до, от където се намирате в момента. Така че аз съм отворил тук CS50 IDE. И аз отивам да я увеличите-в в второ, за да ви даде по-отблизо, но тук е широка картина на това, което изглежда като IDE. В ляво можете да видите имаме файл дърво, което вие вероятно сте запознати, двоен клик, и файлове и папки, и всички тези неща. Така че това е все още там в CS50 уреда. В центъра на върха е мястото, където сте ще бъде да пишете код, веднъж кликнете върху даден файл. И в долната част, ние има терминален прозорец, което е мястото, където можем да се изпълни тези терминални команди. Отивам да я увеличите-в и над главата тук, просто да ви покажа, че в действителност, аз мога кликнете върху тези файлове и папки. Затова е ясно, къде съм в момента съм, имам две папки, наречени pset0 и pset1, и три файла, един наречени Здравейте, една, наречена hello.c, и един, наречен hello.txt. Така че нека да се придвижи надолу към терминала прозорец и да получите по-отблизо. Така че ние просто говорихме, отново, за факт е, че имаме три файлове и две папки в текущата директория. Ако изпишете ли, което отново е командата да се изброят съдържанието на ток директория, а след това удари Enter, Посетете това, което виждам, здравей, hello.c, hello.txt, pset0 и pset1. pset0 и pset1 са оцветен в синьо, за да покаже, пред вас, че тези, които са указатели че можем да се движите в. И ние ще научите малко малко за това как да се движите в директориите в една минута. И всеки друго нещо е оцветен в черно, ако това е текстов файл или изходния код файл, и зелен, ако това е изпълним файл. Затова е ясно, че означава, че аз може да работи една програма, наречена, здравей. Ето какво означава зеленият там. Но общо взето, пишете на Това ли команда е позволил ми да разгледаме всичко, което съществува в текущата моята директория, която съвпада с това, което виждаме тук, в графичен дисплей на същото. Следващата команда ви ще вероятно използва съвсем малко е сд, с малки букви в, г малки букви, което е съкращение за промяна директория. Това ни позволява да направим това, което бях Говорим за втори отдавна, които е да се движите между директории на командата линия, за разлика кликнете два пъти върху папки. Така че, ако ние написали сд и след това на името на директорията, можем да вляза в тази директория. Като настрана, знам, че името на текущата директория е винаги точка, както и името на директорията едно ниво над къде сме сега, че е името на папката, в които нашата папка е, точкова, dot-- или в която нашата папка е, е точка, точка. И ако някога сте любопитни за Името на вашия телефонен указател, можете да въведете хората с увреждания, което е съкращение за настоящото работна директория. Ние ще разгледаме на всички от тях Сега, като се върнете обратно към CS50 IDE. Така че аз съм назад в моя работен плот сега. И аз ще я увеличите-в отново на терминал, така че можем да ги накарайте да поглеждат при придвижване в рамките на IDE. Така че аз отивам да се изброят Данни за моята директория отново, само за да са раздробени ни в къде сме. Така че, ако пиша ли, които е за списъка отново, Виждам, че мога да стигна до pset0 и pset1. Това са директории Мога да стигна до оттук. Знам, че, тъй като дава логическо устройство ми представа чрез оцветяване ги синьо. Да кажем, че искам да отида в моя pset1 директорията, защото аз съм на работа по проблема определи 1. Мога да напишете cd-- отново, съкратено промените directory-- пространство, pset1. И ако аз натиснете влиза, забележете какво се случва. Тя не изглежда като много се е случило. Но ако се вгледате в командния ред, то сега ми казва, че аз съм в ~ / работно място / pset1. Аз съм се навигира в pset1 папка, която е в рамките на моя работен плот. И ако пиша ли, виждам някои различни неща тук, нали? Това не е същото списък, който видях преди. Аз съм се навигира в pset1. И така, сега, когато пиша ли, аз съм получаване контекста на това, което мога да виж отвътре папката pset1. Сега, аз отивам да се объркат контрол л, които просто изчиства екрана. И аз отивам да се изброят съдържанието на директорията отново, само така можете да видите. Аз просто исках да направя, че да изчистите някои от нещата който си видял по-долу и за да се предотврати това от прекалено далеч надолу извън обхват. Сега, казах по-рано, че, ако искам за да отидете на текущата директория, Мога да напишете сд пространство точка. Хит Enter. Той не прави нищо, нали? Сменям директории в текущата директория. Не винаги започваш да намерете нужда от една точка, Но вие ще понякога. Да кажем, че искам да отидете едно ниво нагоре. Искам да се върна в моето работно място директория. Не мога да напишете сд работно място, че няма такъв файл или директория. И причината за that-- ако пиша ли още една time-- е, че не съществува директория, наречена работно пространство вътре в моя pset1 директория. Отивам да изчистя екрана отново с контрол л. Спомни си какво казах по-рано, обаче, че ние може да се върнете обратно с дот, Дот. Това е името на родителската директория. Така че, ако объркате сд, пространство, точка, точка, а след това удари Enter, Сега погледнете какво се случи. My командния ред ми казва, че аз съм обратно в моята ~ / работно място директория. Преместих едно ниво нагоре, благодарение до точка, точка. Сега, нека да кажем, че аз съм с помощта на операционна система, която е на базата на Linux, но не е задължително да ми кажете къде съм. Това се случва, за да ни каже, че Аз съм в ~ / работно място в момента, полето в командния ред. Но мога да бъда напълно губи в една каша на папки, и нямам представа къде съм и никаква представа къде искам да се върна към. Има две неща, които мога да направя. Преди всичко, не мога да разбера къде съм аз, като напишете хората с увреждания. Това е моето настояще работна директория. И ако аз натиснете влиза, той ми казва точно къде съм. Сега / Начало / убунту е дългосрочен начин да се каже, Тилда, което е вашата домашна директория. Но тя ми казва, че аз съм в начало / убунту / работно място, или ~ / работно място. Отивам да се движите, за да ми pset1 директория отново, и аз отивам да се изброят на съдържанието. И виждам, че имам още един указател там, наречена екстри. Така че аз отивам да сд в екстри, и Тогава аз отивам да изчистите екрана си. Така че сега, аз съм доста далеч в, нали? Ами ако искам да архивирате до работното пространство веднага? Има няколко неща мога да направя. Можех да напишете сд, точкова, точкова, наклонена черта, точка, точка, за да отидете едно ниво нагоре и след това друго ниво. Но това е нещо досадно. Така че, ако някога искате да се върнем към Просто ми домашна директория, Тилда, Мога да напишете сд с нищо след това. Cd, Enter. И сега, аз съм в Тилда. И ако искам да стигна до работното място, Мога само да въведете сд работно пространство. И това е, как работите променящите директории в рамките на CS50 IDE или някоя Linux операционна система в командния ред. Всичко е наред. Следващото, което може да дойде по-удобно е защитен режим, който е кратък за да направите директория, ако трябва да създадете нова папка. Ако сте запознати с операционната система GUI, можете да щракнете с десния бутон. И тогава, когато контекстното меню се появи, изберете New Folder. Това е може би как сте го и преди. Но ние също така може да се създаде директории в командния ред. Така че ние сме назад в IDE. Ще увеличите-ин на терминала и списък на съдържанието на моята директория отново, само за да ни даде референтна рамка. Да кажем, че, сега, аз съм Завършил работа по проблема зададете 0 и проблем определи 1. Така че аз искам да се създаде нова директория да работят по определен проблем за 2. Как мога да направя това? Е, пак бих могъл да щракнете с десния бутон в лява страна има и изберете New Folder и да се създаде pset2 директория. Това ще работи също. Но тогава аз също го правя в командния ред доста бързо, чрез въвеждане на защитен режим, space-- I въвели в п, but-- пространство pset2. Ако аз удари Enter и след това I Списък на Данни за моята директория отново Виждам, че, ето, сега Имам папка pset2. И мога да се движите в че използването на сд и да направим цялата работа трябва да направя, за pset2. Между другото, аз просто ще се появи през Тук наистина бързо към файл дървото. И вие можете да видите, че, също така, по- графичното File Explorer, можем да видим, че директорията pset2 Също така е създаден там. И мога да се движите към него, с помощта на GUI, както добре. Следващият път, и това е Вероятно щеше да дойде по-удобно е ср, което е съкратено от копие. Копирайте, за разлика от всички останали команди, които сме виждали преди, отнема два аргумента, източник, на името на файла, който искате да копирате, и дестинация, където можете искате да копирате файла в. Това е доста лесно да копирате файл, така че нека да го направя. Така че ние сме назад в 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 и да направи копие на всичко там. Ако искам да направя това, какво мога да направя е ср-R, за рекурсивни, pset0 pset3. Хит Enter. Сега, ако аз се изброят Данни за моята директория, Виждам, че има на pset3 указател, че мога да работя. И ако аз компактдиск в pset3 сега и След списък на съдържанието, виж, там отново е проба и scratch.sb2. Така че това е много готино. Ето как можете да копирате цял директория, а не само един файл. Така че, ако искате да копирате директория, просто не забравяйте, да използват флага -r, когато сте работа с командата ср. Всичко е наред. Така че аз съм копиран файл, но Правил съм го по погрешка. И сега, аз искам да се отърва от него. Как мога да направя това? Отново, ако сте запознати с GUI интерфейс, можете да щракнете с десния бутон и просто да изберете Delete. И това ще го изпраща на боклук или в кошчето. Но в командния ред, ние можете просто да въведете РМ, за премахване, и след това името на подаде искаме да се отървете от. Сега, RM е много внимателен. Той прави много двоен контрол, за да се уверите, че всъщност искате да изтриете файла. Тя не иска да прави никакви грешки, защото няма Recycle Bin тук. След като изтриете даден файл, той е отишъл. И там е наистина няма начин да го възстанови. Така че ние трябва да бъдем доста Внимавайте, така и RM ще бъде наистина внимателни за нас. Така че нека да се върнем към IDE и да се отърве от този hi.txt файл който създадох преди минута с копие. Така че ние сме в IDE. И аз се изброят съдържанието на моята директория отново, само за да ни даде някакъв контекст. Искам да кажа, можете да видите, че има hi.txt, които съм създал преди малко. Сега, аз искам да се отърва от него. Как да го направя? Отново, просто RM. Така че мога да напишете RM hi.txt и натиснете Enter. А има и РМ същество наистина внимателни за нас и като се уверите, ние всъщност искате да изтриете този файл. Наистина ли искате да премахнете редовен празен файл hi.txt? Това е точно като оперативен система, като Windows или Mac, че може да сте запознат с пръкват тази кутия казва наистина сте Наистина ли искате да направите това. Аз съм сигурен, че искам да това, така че аз отивам да се объркат, yes-- или мога просто да Типове y-- и натиснете Enter. И ако аз се изброят съдържанието на моето указател отново, hi.txt е отишъл. Не е зле, нали? Нека натиснете Control L, просто да се отървете от всички тези неща и да ни го върне горната част на екрана. Сега, има начин да се късо съединение РМ, така че че да не ни питате този въпрос. Ние наистина знаем ние искаме да се отървете от този файл, и ние дори не искам да се зададе въпроса. Как да го направим? Е, можем да посочите допълнително флаг, просто ни харесва направих с ср къде сме би могъл да добави флага -r, да рекурсивно копирате в директория. Има и друг флаг за RM, което е -F, която е да се принуди да направи точно RM това, което ние сме го казвам, за да се направи. Така че нека да кажа, че сега, искам да се отървете от моя hello.txt файл. Аз не искам, че един от двамата. Какво мога да направя? Е, мога да RM -f hello.txt. Какво мислиш, че е ще се случи тук? Няма го. Не дори ми задават въпроса. И всъщност, ако мога списък на съдържанието от моята директория отново, го няма. Няма никакво връщане тук. hello.txt е отишъл, и аз не бях дори ме попита дали искам да го изтриете. Какво става, ако искате да се отървете на цяла директория? Начинът, по който се прави това е много подобен на копиране. Ако искате да изтриете директория, Вие не просто искате да изтриете директорията, която искате за да изтриете всичко вътре в него. И така, вие използвате -r, за да рекурсивно изтриете директорията. Така че нека да RM -r pset2. Аз не съм действително работи върху pset2, за да мога да се отърва от тази директория. Ударих Enter. Искам ли да се премахне указателя, pset2? Да, аз правя. И ако аз списък на съдържанието на моята директория отново, го няма. Всичко е наред? Още една вариация на тази тема. Така че аз ще изчистите екрана отново, да сложи всичко в горната част. Хит ли. Сега, аз искам да се отърва на моя pset3 директорията, и аз наистина знам Искам да се отървете от моя pset3 директория. Не мога да рекурсивно и насилствено премахване на моя pset3 директория. Сега, ти започваш да бъде наистина Внимавайте, когато използвате RM-RF. Както можете да програмирате повече, тя ще бъде нещо, което просто правя наистина бързо. И в действителност, аз го правя през цялото време. Но това може да доведе до някои катастрофални последици, ако случайно изтриете нещо погрешно. Така че искам да се знае, че Това е опция, достъпна за вас, но тя се използва пестеливо, и да го използват с повишено внимание. Знам със сигурност, аз не съм на работа относно проблема ми зададете 3 вече, така че аз съм Ще се отървете от всички тези файлове. И аз знам, че не искате да бъдете помолени всеки път, ако искате да изтриете файл, така че аз отивам да RM-RF pset3. Знаете дори не ме попита дали съм искаше да се отърве от него. Ударих ли. pset3 е отишъл. Така че това е всички вариации, че сте можете да използвате, за да се отървете от файлове с РМ. Линията последната команда команда, която е ще доста полезно за вас е СрН, което е съкратено от ход. Move е основно еквивалент да преименувате. Той се движи даден файл от едно място на друго, източника до местоназначението. Нека да видим къде се използва ход мощ да бъде удобно, в терминален прозорец. Така че аз съм в моя pset1 директория, и съм забелязал нещо не е малко погрешно. Аз работех върху моята алчни проблем но аз случайно го нарекли Греди. Така че, когато се опитам и да го стартирате чрез check50, то няма да работи. Имам няколко опции. Бихме могли да направим това, което сме правили и преди, която е да се направи копие на файла. Можех да копирате greddy.c да greedy.c, нали? Хит Enter. Виждам, че и двата файла са там. И тогава можех да RM, за да се отстрани, greddy.c. Това се отървава от него. Така, че ще работи, след като се потвърди че искам да се отърва от него. И аз действително има преименуван greddy.c да greedy.c. Аз го копират, а след това отстранен оригинала. Но това е процес на мулти-стъпка. И със сигурност, че има по-добър начин. В действителност, има. Така че нека да удари Control L, само за да донесе това резервно копие, и списък на съдържанието от моята директория отново. Така че нека да кажа, о, аз направих грешка. Аз всъщност наистина исках да се обадя, че файл greddy.c. В един замах, мога да объркате премести greedy.c да greddy.c. Хит Enter. И сега, аз не са имали да копирате и да го отстранят, Току-що бях в състояние да го преименувате. Едно гише. Сега, има много други основни командния ред комунални услуги които можете да използвате с командния ред на Linux. И ние ще се обсъждат много от тях в бъдеще в CS50. Но за сега, само за да се краката си wet с работа с този терминал околната среда, тези пет команди трябва да ви стане доста далеч в навигацията около и работа с файлове на вашия IDE или по какъвто и Linux-базирана операционната система, която използвате. Ако сте любопитни и искате да погледнем напред малко по някое на команди от командния ред ние ще се използва в бъдеще, Ето списък на няколко от най-често срещаните. Аз съм Дъг Лойд. Това е CS50.