[Музички] 

Даг LLOYD: Во ред. Па ајде да разговараме за тоа како да се користите командната линија Линукс. Сега, на CS50 ИРО, или во Всушност, дури и CS50 апаратот, ако сте запознаени со тоа, или сте преземање на постара верзија на CS50, е машина облак-базирани која работи на Ubuntu, која е една од многуте вкусови на оперативниот систем Линукс. Линукс оперативниот систем е фаворизирана од страна на програмерите, бидејќи тоа е само кулер, нели? 

Многу модерни Linux дистрибуции има графички кориснички интерфејси, кои можеме да го наречеме GUIs, Г-У-И, да овозможи лесен глувчето за навигација засновани, кој ти си веројатно запознаени со тоа, Ако сте корисник на Windows или Mac, се движи низ вашиот глушец, двојно кликнување на иконите, и така натаму. Уште, иако, како програмер, и иако ИРО содржи способноста да се направи некои графички кориснички работи, клик, и Потоа со влечење и сето тоа, Вие сеуште ќе биде со користење на вашиот терминален прозорец прилично често. И што можете да направите многу од истите задачи што ќе може да направи со глушец со тастатура команди. И ние ќе се зборува малку за тоа што некои од овие команди се во моментов. 

Сега, може да се користат овие команди на било Unix-базирани оперативни систем, кој вклучува Линукс, но исто така вклучува Mac OS. Ако се отвори терминал на вашиот Mac, можете да го користите овие егзактни команди. Прозорци, исто така има команда Брза, но некои од команди се малку различни, па тоа всушност не работат, бидејќи Windows не е UNIX-базиран систем. 

Па ајде да ги разгледаме во некои од овие Линукс команди. Првиот дека ќе најверојатно го користат доста е ls. Тоа е со мали букви l, по што следи од страна на мали букви s, што е кратенка за листата. И она што командата листата Дали тоа е ви дава отчитување на сите датотеки и папките во вашиот тековниот директориум. Па можете да видите се што можете дојде до од каде што во моментов се. 

Па јас отвори тука CS50 ИРО. А јас ќе одам да зумирате во една вториот за да ви даде, внимателно, но тука е широка слика на она што ИРО изгледа. На левата страна, можете да видите ние сме датотека дрво, кое ти си веројатно запознаени со тоа, двоен клик, и датотеки и директориуми, и сите тие работи. Па тоа е уште таму во CS50 апаратот. Во центарот на врвот е местото каде што си ќе бидат писмено вашиот код, еднаш ќе кликнете на датотека. И на дното, ние има терминален прозорец, која е местото каде што може да се изврши овие терминал команди. 

Одам да зумирате во и над главата тука, само за да ви покаже дека, всушност, можам да кликнете на овие датотеки и папки. Па јасно, каде што во моментов сум, имам две папки, наречен pset0 и pset1, и три датотеки, еден вика Здраво, еден вика hello.c, и еден вика hello.txt. 

Значи, да се движат надолу до терминалот прозорецот и се добие одблизу. Па ние само зборуваше, повторно, за Фактот дека имаме три датотеки и две папки во тековниот именик. Ако сум тип ls, кој повторно е команда на листата содржината на тековната директориум, а потоа притиснете Enter, погледне она што го гледам, здраво, hello.c, hello.txt, pset0 и pset1. 

pset0 и pset1 се сина боја, за да се покаже на вас, кои тие се директориуми што би можеле да се движите во. И ние ќе научат малку малку за тоа како да се движите во директориуми во една минута. И секоја друга работа е со црна боја, ако е текстуална датотека или изворниот код фајл, и зелена, ако тоа е извршна датотека. Па јасно, тоа значи дека јас би можеле да работат на програма наречена, здраво. Тоа е она што значи зелената таму. Но во основа, со внесување на LS команда е дозволено мене да се погледне во се што постои во тековната ми услуга, која се совпаѓа со она што го гледаме тука, во графички приказ на истата. На следната команда испишан најверојатно го користат доста е CD, мали в, г мали букви, која е краток за промена директориум. Ова ни овозможува да се направи она што бев Станува збор за втор пред, која е да се движите помеѓу директориуми на командната линија, што е спротивно на двојно кликнување на папки. Значи, ако ние напишете ЦД, а потоа името на директориумот, ние може да се влезе во таа листа. 

Како настрана, знаеме дека името на тековниот директориум е секогаш дот, и името на директориумот едно ниво погоре, каде што се сега, тоа е името на папката во кои нашите директориум, точка, dot-- или во која нашите директориум, е точка, точка. И ако сте љубопитни за тоа некогаш името на вашиот именик, можете да напишете pwd, која се залага за сегашните работна папка. Ние ќе ги разгледаме во сите овие сега, по се упати назад кон CS50 ИРО. Па јас сум назад во мојот простор сега. А јас ќе зумирате во повторно на терминал, за да можеме да ги погледнеме во движат наоколу во рамките на ИРО. Па јас ќе одам да се наведат содржината на мојот именик повторно, само да reground во која се наоѓаме. Значи, ако јас напишете ls, која е за листа, повторно, Гледам дека може да се добие и да се pset0 pset1. Оние кои се на директориуми Може да се добие за да се од тука. Јас знам, зашто ИРО дава ме поим со боење ги сина. 

Да речеме дека јас сакам да се влезе во мојот pset1 директориум, бидејќи јас работам на проблемот поставите 1. Јас да напишете cd-- повторно, кратки за промени directory-- простор, pset1. И ако јас притиснете ентер, види што се случува. Тоа не изгледа како многу се случило. Но, ако погледнете во конзолата, сега ми вели дека јас сум во ~ / работен простор / pset1. Сум се отвори во pset1 папка, која беше во рамките на мојот работен простор. 

И ако сум тип ls, гледам некои различни работи тука, нели? Ова не е исто листата што го видов пред. Сум се отвори во pset1. И така сега, кога ќе напишете ls, јас сум добивање контекст на она што можам види одвнатре папката pset1. 

Сега, јас ќе одам да напишете контрола l, што само го отвора екран. А јас ќе одам да се наведат содржината на директориумот повторно, само така може да се види. Јас само сакав да го направите тоа да исчистите од некои од работите дека те видов долу и за да се спречи оваа да одат премногу далеку долу надвор од опсегот. 

Сега, јас претходно изјави дека, ако сакам за да отидете на тековниот директориум, Јас да напишете cd простор точка. Притиснете Enter. Тоа не прави ништо, нели? Јас сум менување на директориуми на тековниот директориум. Вие не секогаш се случува да се најдете потреба за една точка, но вие ќе повремено. 

Да речеме дека сакам да се движат нагоре едно ниво. Сакам да се вратам на мојата работна површина директориум. Јас не може да се тип CD работниот простор, нема таква датотека или директориум. А причина за that-- ако сум тип ls уште еден time-- е дека не постои директориум наречен работен простор во внатрешноста на мојата pset1 директориум. Одам да исчистам екран повторно со контрола л. Запомни што реков порано, сепак, дека ние може да се движите назад со точка, точка. Тоа е името на главниот директориум. Значи, ако сум тип CD, простор, точка, точка, а потоа притиснете Enter, сега погледнете што се случи. Мојата командна линија ми кажува дека сум назад во мојот ~ / работен простор директориум. Јас се придвижи за едно ниво, благодарение на точка, точка. 

Сега, ајде да речеме дека јас сум со користење на оперативниот систем кој е базиран на Линукс, но не мора да кажи ми каде сум. Оваа една се случува да ни каже дека Јас сум во ~ / простор за работа во моментов, право во конзолата. Но би можел да биде целосно изгубени во хаос на папки, и јас немам идеја каде сум и не знам каде сакам да се вратам. Има две работи што може да направи. 

Прво на сите, не можам да дознаам од каде што сум, со внесување на лицата со хендикеп. Тоа е мојот присутни работна папка. И ако јас притиснете ентер, тоа ми кажува точно каде сум. Сега / home / Ubuntu е долго начин да се каже, тилда, кој е вашиот домашен директориум. Но тоа ми кажува дека сум во Почетна / Убунту / простор за работа, или ~ / простор за работа. 

Одам да стигнете до мојата pset1 директориум повторно, а јас ќе одам на листата на содржината. И гледам дека јас имам друг Директориум таму, наречен статисти. Па јас ќе одам да го CD-то во статисти, и тогаш јас ќе одам да се расчисти мојот екран. 

Па сега, јас сум прилично далеку, нели? Што ако сакам да се врати до просторот за работа веднаш? Има неколку работи што може да направи. Можев да напишете CD, точка, точка, коса црта, точка, точка, да се движат нагоре едно ниво, а потоа друго ниво. Но, тоа е вид на досадни. 

Значи, ако јас некогаш сакате да се вратите само мојот домашен директориум, тилда, Јас да напишете ЦД со ништо по него. CD, Enter. И сега, јас сум во тилда. И ако сакам да одам на работен простор, Јас само може да напишете cd работен простор. И тоа е како да се работи менување на директориуми во рамките на CS50 IDE или било која Линукс оперативен систем на командната линија. Во ред. Следниот еден што би можел дојде во рака е mkdir, која е краток за да се направи листа, ако треба да креирате нова папка. Ако сте запознаени со оперативниот систем GUI, можеби ќе кликнете со десното копче. И тогаш, кога на контекстното мени се појавува, одберете New Folder. Тоа е веројатно колку сте го сториле тоа пред. Но ние исто така може да се создаде директориуми на командната линија. Па ние сме назад во ИРО. Јас ќе зумирате во на терминалот и листата на содржината на мојот именик повторно, само да ни даде референтна рамка. Да речеме дека, сега, јас сум заврши работата на проблем во собата 0 и проблем во собата 1. Значи сакам да се создаде нов директориум да работат на за проблем во собата 2. Како можам да го направите тоа? 

Па, повторно, би можел да кликнете со десното копче на левата страна има и изберете нова папка и да се создаде pset2 директориум. Што ќе работи исто така. Но, тогаш јас, исто така, го направи тоа во командната линија прилично брзо, со впишување mkdir, space-- јас внеле во N, but-- простор pset2. Ако јас притиснете Enter и потоа се набројат содржината на мојата листа, повторно, Гледам дека, изгледа, сега Јас имам една папка pset2. И јас може да се движам во дека за користење CD и направи целата работа треба да се направи за pset2. Патем, јас само ќе се појави во текот на тука навистина брзо во датотеката дрво. И може да се види дека, исто така, во графичките File Explorer, можеме да видиме дека директориумот pset2 Исто така, се создаде таму. И можам да стигнете до него, со користење на GUI, како и. Следниот пат и тоа е веројатно нема да дојде во рака е вообичаена пракса, која е краток за копија. Умножувате, за разлика од сите други команди што сум го видел досега, зема два аргументи, еден извор, Името на датотеката што сакате да го копирате, и дестинација, каде што сакате да го копирате датотека во. Тоа е прилично лесно да се копира фајл, па ајде да го направите тоа. 

Па ние сме назад во ИРО. Јас ќе одам на листата на содржината на мојата сегашна директориум со ls. Сега, ајде да кажам дека сакам да се направи копија од hello.txt. Повторно, од датотеката дрво на лево, графички интерфејс, Можев да кликнете со десното копче hello.txt, направи копија, ставете копија. Но, можам да го направи тоа доста брзо на командната линија исто така. 

Да речеме дека јас сакам да го копирате hello.txt да hi.txt. Можам да ЦП, простор, hello.txt. Тоа е мојот извор датотека, па тоа е зошто Одам да се избере една која во прв план. И тогаш јас треба да го именува одредишна датотека, hi.txt. Јас притиснете Enter. И ако јас на листата на содржината на мојот Директориум повторно, има hi.txt. Не сум направил копија од него. И всушност, ако отидов во hi.txt, би можел видите дека тоа ќе биде точно дупликат на сето она што постоеше во моите hello.txt датотека. 

Па тоа е како да копирате датотека. Но, што ако сакате да копирате цела директориум? Така и за секунда, ајде да ги разгледаме во она што е во мојата pset0 директориум. Ако јас CD pset0 како и листа на содржината, Имам директориумот наречен, мостра, и датотека нула, scratch.sb2. Па тоа е добро да се знае. Па ајде го исчистите екранот, а јас ќе одам да се вратиме на мојот директориум простор за една секунда. 

Да речеме дека, сега, сакам да направи копија на мојата pset0 директориум. Не можам да кажам ср pset0 pset3, на пример. Ќе го добиете овој чуден порака, пропуштајќи директориум pset0. Зошто ви се добие таа порака? Па, излегува дека, кога имате папка во која има и други работи во него, команда ср навистина не мора да знаат што да прават со него. 

Ние треба да се експлицитно кажете Линукс, на терминалот, Сакам да го копирате pset0 директориум и копија секоја папка што постои во од неа, и секоја датотека што постои во него. Со други зборови, јас треба да рекурзивно нурне надолу во pset0 и да се направи копија на се што е во таму. 

Ако сакам да го правам тоа, она што можам да направам е ср-R, за рекурзивен, pset0 pset3. Притиснете Enter. Сега, ако јас се листа на содржината на мојот именик, Гледам тука е pset3 Директориум за да можам да се работи со. И ако јас ЦД во pset3 сега и потоа на листата на содржината, изглед, таму повторно е примерок и scratch.sb2. Значи тоа е прилично кул. На тој начин можете да копирате цела услуга, а не само една датотека. Значи, ако сакате да се копира директориум, само се сеќавам за користење на -r знаме кога сте работа со командата ср. Во ред. Па јас копира датотеката, но Сум го направи по грешка. А сега, сакам да се ослободи од неа. Како можам да го направите тоа? Повторно, ако сте запознаени со GUI интерфејс, можете да кликнете со десното копче и само изберете Delete. И тоа ќе го испрати до ѓубрето или Recycle Bin. Но, на командната линија, ние може само да напишете РМ, за отстранување, а потоа името на поднесе ние сакаме да се ослободи од. 

Сега, РМ е многу внимателен. Тоа го прави многу на двојна проверка, да бидете сигурни дека вие всушност сакате да ја избришете датотеката. Тоа што не сакате да направите било какви грешки, бидејќи нема Recycle Bin тука. Откако сме ја избришете датотеката, тоа го нема. И таму е навистина нема начин да се опорави. Значи ние треба да биде прилично внимателни, и така РМ ќе биде навистина внимателен за нас. 

Значи, да се вратиме на ИРО и да се ослободи од тоа hi.txt датотека дека сум создадена пред една минута со копија. Па ние сме во ИРО. И јас на листата на содржината на мојот именик повторно, само да ни даде некои контекст. Мислам, може да се види дека има hi.txt, која јас создадена пред малку. Сега, сакам да се ослободи од неа. Како можам да го направам тоа? 

Повторно, само РМ. Па јас да напишете РМ hi.txt и притиснете Enter. И има РМ суштество навистина внимателен за нас и правејќи се дека ние всушност сакате да ја избришете оваа датотека. Дали навистина сакате да ја отстраните редовни празна датотека hi.txt? Тоа е исто како оперативен систем, како и на Windows или Mac, кои може да бидат запознаени со никнуваат таа кутија вели сте навистина Дали сте сигурни дека сакате да го направите тоа. 

Јас сум прилично сигурен дека сакате да ова, па јас ќе одам да напишеш, yes-- или би можел исто така, само напишете y-- и притиснете Enter. И ако јас на листата на содржината на мојот Директориум повторно, hi.txt е нема. Не е лошо, нели? Ајде да притиснете контрола L, само да се ослободи од сите овие работи и да се вратиме повторно на на врвот од екранот. 

Сега, постои начин да се краток спој на РМ, така дека тоа не ни побара тоа прашање. Навистина знаеме што сакаме да се ослободи од оваа датотека, а ние дури и не сакаат што треба да се праша прашање. Како го правиме тоа? Па, ние може да се определи некоја екстра знаме, веднаш ни се допаѓа направи со ср каде сме можеле да ја додадеме -r знаме, рекурзивно да копирате во директориумот. Има уште една знаме за rm, што е -F, кој е за да ја принуди да го стори токму РМ она што го кажувам тоа да се направи. 

Па да речеме дека, сега, јас сакам да се ослободи од мојот hello.txt датотека. Не сакам дека еден или. Што можам да направам? Па, можам да Rm -f hello.txt. Што мислите дека е ќе се случува овде? Тоа го нема. Дури и не ми го поставуваме прашањето. И всушност, ако јас на листата на содржината на мојата листа, повторно, тоа го нема. Нема вратите тука. hello.txt го нема, и јас не сум бил дури и го праша дали сакам да го избришете. Што ако сакам да се ослободи на една цела листа? Начинот на кој ќе го направите тоа е многу сличен на копирање. Ако сакате да ги избришете директориумот, вие не само сакате да го избришете директориумот, вие сакате да ги избришете сè во него. И така да го користите -r, да рекурзивно избришете директориумот. 

Па ајде РМ -r pset2. Јас не сум се всушност работат на pset2, за да можам да се ослободи од таа листа. Јас притиснете Enter. Дали сакате да го отстраните директориумот, pset2? Да. И ако јас на листата на содржината на мојот именик, повторно, тоа го нема. Во ред? 

Уште една варијација на оваа тема. Па јас ќе го исчистите екранот повторно, да се стави се на врвот. Хит ls. Сега, сакам да се ослободи од моите pset3 директориум, и јас навистина сакам да знам се ослободи од мојот pset3 директориум. Можам рекурзивно и насилно отстрани моите pset3 директориум. 

Сега, си оди за да биде навистина Внимавајте кога сте со користење на РМ -rf. Како што се програмира повеќе, тоа ќе биде нешто што само го прават тоа многу брзо. И всушност, да го сторам тоа цело време. Но, тоа може да доведе до некои катастрофални последици, ако случајно избришеш погрешна работа. Значи сакам да бидеме свесни дека ова е опција на располагање на вас, но го користат повремено, и го користат со претпазливост. 

Јас знам за факт јас не работам на мојот проблем во собата 3 повеќе, па јас сум случува да се ослободи од сите овие датотеки. И знам дека не сакаат да бидат прашани секој пат ако сакам да ги избришете датотека, па ќе одам да Rm -rf pset3. Дури и не ме праша дали ќе сака да се ослободи од неа. Јас хит ls. pset3 е нема. Значи тоа е сите опции кои што можат да го користат за да се ослободи од датотеки со РМ. 

Командната линија последната команда тоа е ќе се доста корисни за вас е mv, која е краток за движење. Потег во основа е еквивалент за преименување. Го преместува датотека од едно место друг, изворот до дестинацијата. Да видиме кои користењето потег може да биде корисна во терминален прозорец. 

Па јас сум во мојата pset1 директориум, и јас го забележав нешто не е малку погрешно. Јас работев на мојот алчен проблем, но јас случајно ја нарекол Греди. Па кога ќе се обидат и да ја извршите преку check50, тоа не е навистина работат. Имам неколку опции. Ние би можеле да го направи она што го направив порано, а тоа е да се направи копија од датотеката. Можев да копирате greddy.c да greedy.c, нели? Притиснете Enter. Гледам дека и двете датотеки се таму. И тогаш би можел РМ, да се отстранат, greddy.c. Кој добива ослободи од неа. Така што ќе работи, откако ќе се потврди дека сакам да се ослободи од неа. И јас имаме ефикасно преименувана greddy.c да greedy.c. Ми се копирани, а потоа отстрани од оригиналот. 

Но, тоа е процес од повеќе чекори. И, секако, има подобар начин. Всушност, постои. Значи, да се погоди Контрола L, само да се донесе тоа назад, како и листа на содржината на мојот директориум повторно. 

Па да речеме, ох, јас направив грешка. Јас всушност навистина сакав за да го повикате таа датотека greddy.c. Во една падна пикирам, јас да напишете движат greedy.c да greddy.c. Притиснете Enter. И сега, јас не имаат да го копирате и да го отстраните, Јас само бев во можност да ја преименува. Еден-стоп шопинг. 

Сега, постојат многу други основните командната линија комуналии дека можете да го користите со Linux командната линија. И ние ќе се разговара за многу од нив во иднина во CS50. Но, за сега, само добивање вашите стапала влажна, со работа со овој терминал животната средина, овие пет команди треба да добиете прилично далеку во навигацијата низ и работа со датотеки во вашиот ИРО или на кој било базиран на Линукс оперативниот систем што го користите. 

Ако сте љубопитни и сакате да гледам напред малку во некои на команди на командната линија ние ќе биде во употреба и во иднина, тука е листа на неколку на повеќе заеднички оние. Јас сум Даг Лојд. Ова е CS50.