[MUZYKI] DOUG LLOYD: OK. Więc porozmawiajmy o tym, jak użyj polecenia Linux. Teraz CS50 IDE, lub Fakt, nawet urządzenie CS50, jeśli jesteś zaznajomiony z tym, czy bierzesz starszą wersję CS50, to maszyna w chmurze który działa Ubuntu, który jest jednym z wielu smaków systemu operacyjnego Linux. System operacyjny Linux preferowany przez programistów, bo to jest po prostu chłodniej, prawda? Wiele nowoczesnych dystrybucji Linuksa posiada graficzny interfejs użytkownika, które nazywamy także GUI, G-U-I, aby umożliwiają łatwą nawigację na bazie myszy, który jesteś prawdopodobnie zna, jeśli jesteś użytkownikiem systemu Windows lub Mac, poruszając myszką, dwukrotne kliknięcie ikony, i tak dalej. Mimo to jednak, jako programista, i mimo, że IDE Zawiera zdolność do zrobić kilka graficzny użytkownika rzeczy, kliknięcie oraz przeciąganie, a wszystko to, nadal będziesz się za pomocą swojego okno terminala dość często. I można zrobić wiele z same zadania, które można zrobić z myszy z poleceń klawiaturowych. I będziemy mówić trochę o tym, co niektóre z tych komend są teraz. Teraz, polecenia te mogą być wykorzystywane na dowolnym operacyjnych UNIX System, który zawiera Linux, ale zawiera również Mac OS. Jeśli otworzyć Terminal na komputerze Mac, można korzystać z tych dokładnych poleceń. Windows ma również polecenia Pytaj, ale niektóre z poleceń są nieco inne, więc faktycznie nie działa, ponieważ system Windows nie jest System UNIX. Warto więc spojrzeć na niektóre z tych poleceń Linuksa. Pierwszy z nich, że będziesz prawdopodobnie używać dość dużo jest ls. To jest l małe litery, a następnie przez małe litery s, co jest skrótem od listy. A co robi komenda lista jest to daje odczyt wszystkich plików i foldery w bieżącym katalogu. Więc widać, wszystko można dostać z którym obecnie jesteśmy. Tak już otworzył tutaj IDE CS50. I mam zamiar przybliżyć-ww Drugi dać się bliżej, ale tutaj jest szeroki obraz co IDE wygląda. Po lewej stronie widać mamy drzewo plików, który prawdopodobnie jesteś zna, podwójne kliknięcie, a pliki i foldery, a wszystkie rzeczy. Tak, że nadal tam w urządzeniu CS50. W centrum, w górze, gdzie jesteś będzie pisania kodu, po kliknięciu na pliku. I na dole, to mają okno terminala, czyli tam, gdzie możemy wykonać polecenia te terminali. Idę, aby powiększyć w i udać się tutaj, po prostu aby pokazać, że w rzeczywistości, mogę kliknij na tych plików i folderów. Tak wyraźnie, gdzie obecnie jestem, mam dwa foldery, zwane pset0 i pset1, i trzy pliki, jeden o nazwie witam, jeden o nazwie hello.c, i jeden o nazwie hello.txt. Więc przejdźmy do terminalu okna i bliżej przyjrzeć. Więc po prostu mówił, znowu, o Fakt, że mamy trzy pliki i dwa foldery w bieżącym katalogu. Gdybym wpisz ls, który ponownie jest polecenie do listy zawartość prądu katalog, a potem naciśnij Enter, zobacz, co widzę, witam, hello.c, hello.txt, pset0 i pset1. pset0 i pset1 są w kolorze niebieskim, aby wskazać, wam, że to są katalogi że możemy poruszać się. I dowiemy się trochę nieco o tym, jak poruszać do katalogów w ciągu minuty. I każda inna rzecz jest w kolorze czarnym, czy jest to plik tekstowy lub kod źródłowy złożyć, i zielony, jeśli jest to plik wykonywalny. Tak wyraźnie, co oznacza, że może uruchomić program o nazwie, cześć. To, co nie oznacza, jeden zielony. Ale w zasadzie, wpisując Polecenie ls pozwoliła mi patrzeć na wszystko, co istnieje w moim bieżącym katalogu, który pasuje do tego, co widzimy tutaj, w wyświetlacz graficzny o to samo. Następny rozkaz będziesz prawdopodobnie używać sporo jest cd, małe litery c, małe litery d, co jest skrótem od katalogu zmian. To pozwala nam robić to, co ja mówić o sekundę temu, co jest, aby poruszać się między katalogi w komendzie Linia, w odróżnieniu podwójne kliknięcie na folderach. Jeśli więc wpisać CD, a następnie nazwa katalogu, możemy dostać się do tego katalogu. Tak na marginesie, wiem, że nazwa bieżącego katalogu jest zawsze kropka, a nazwa katalogu jeden poziom wyżej, gdzie teraz jesteśmy, która to nazwa folderu, w które nasz folder jest, kropka, dot-- lub w których nasz folder jest, jest kropka, kropka. I jeśli kiedykolwiek ciekawi nazwa katalogu, można wpisać pwd, który stoi do obecnego katalogu roboczego. Będziemy spojrzeć na wszystkie te Teraz, przez powrotem do IDE CS50. Więc jestem z powrotem w moim obszarze roboczym teraz. A ja znów zoom-in na Terminal, więc możemy spojrzeć na poruszanie się wewnątrz IDE. Więc mam zamiar notować zawartość mojego katalogu ponownie, tylko szlifowane nam się, gdzie jesteśmy. Więc jeśli wpisz ls, które znów jest na liście, Rozumiem, że mogę dostać się do pset0 i pset1. Są to katalogi Mogę dostać się stąd. Wiem o tym, ponieważ IDE daje mnie wskazówką, kolorując je na niebiesko. Powiedzmy, że chcę dostać się do mojego katalogu pset1, bo ja pracuję nad problemem zestaw 1. Mogę wpisać cd-- ponownie, skrót zmienić directory-- miejsca, pset1. A gdybym naciśnij Enter, zauważył, co się dzieje. To nie wygląda jak wiele się wydarzyło. Ale jeśli spojrzeć na monit, to teraz mówi mi, że jestem w ~ / Przestrzeń robocza / pset1. Mam nawigować do pset1 Folder, który znajdował się w mojej pracy. A jeśli wpisz ls, widzę niektóre różne rzeczy tutaj, prawda? Nie jest to same Lista że widziałem wcześniej. Mam poruszać się pset1. A więc teraz, po wpisaniu ls, jestem coraz kontekście tego, co mogę zobaczyć od wewnątrz folderu pset1. Teraz mam zamiar wpisać kontrolę l, która po prostu czyści ekran. I zamierzam notować Zawartość katalogu znowu, tak więc można zobaczyć. Chciałem tylko, aby to zrobić, aby usunąć niektóre rzeczy że zobaczył w dole i temu zapobiec od zbyt daleko w dół poza zasięgiem. Teraz, już mówiłem, że jeśli chcę do poruszania się w bieżącym katalogu, Mogę wpisać cd przestrzeni kropkę. Naciśnij Enter. To nie ma nic zrobić, prawda? Zmieniam katalogów do bieżącego katalogu. Nie zawsze będziemy znaleźć potrzebę jednego punktu, ale od czasu do czasu. Powiedzmy, że chcę aby przejść o jeden poziom. Chcę wrócić do mój katalog roboczy. Nie mogę wpisać cd do pracy, Nie ma takiego pliku lub katalogu. A powodem that-- gdybym Wpisz ls jeden time-- jest to, że nie jest katalog o nazwie Obszar roboczy wewnątrz mojego katalogu pset1. Mam zamiar oczyścić ponownie ekran z regulacją l. Pamiętaj, co powiedziałem powyżej, chociaż, że może poruszać się z powrotem z kropka, kropka. To nazwa katalogu nadrzędnego. Więc jeśli wpisz cd, spacja, kropka, kropka, a następnie naciśnij klawisz Enter, Teraz wygląda na to, co się stało. Mój wiersz polecenia mówi mi, że jestem w moim katalogu ~ / obszaru roboczego. Przeniosłem się o jeden poziom wyżej, dzięki kropka, kropka. Teraz, powiedzmy, że używam system operacyjny, który jest oparty na systemie Linux, lecz niekoniecznie powiedz mi, gdzie jestem. To akurat nam powiedzieć, że Jestem w ~ / roboczej teraz, prawo w wierszu. Ale mogę być całkowicie stracił w chaosie folderów, i nie mam pojęcia, gdzie jestem i nie wiem, gdzie chcę wrócić. Jest tam dwie rzeczy, które mogę zrobić. Przede wszystkim, mogę zrozumieć się, gdzie jestem, wpisując pwd. To mój obecny katalog roboczy. A gdybym naciśnij Enter, to mówi mi dokładnie, gdzie jestem. Teraz / home / ubuntu jest długa droga mówiąc tyldy, co jest głównym katalogiem. Ale to mówi mi, że jestem w home / ubuntu / do pracy, lub ~ / roboczy. Idę, aby przejść do mój katalog pset1 znowu, i mam zamiar do listy zawartości. I widzę, że mam inny katalog istnieje, nazywa dodatki. Więc mam zamiar cd do dodatków i potem mam zamiar oczyścić ekran. Więc teraz, jestem dość daleko, prawda? Co zrobić, jeśli chcę z powrotem natychmiast obszaru roboczego? Jest kilka rzeczy mogłem zrobić. Mogę wpisać cd, kropka, kropka, slash, kropka, kropka, aby przejść o jeden poziom, a następnie inny poziom. Ale to trochę denerwujące. Więc jeśli kiedykolwiek chcą wrócić do tylko mój katalog domowy, tyldy, Mogę wpisać cd bez niczego. Cd, Enter. A teraz jestem w tyldy. A jeśli chcę dostać się do przestrzeni roboczej, Mogę po prostu wpisz cd pracy. I to jest, jak działa zmieniające katalogi w IDE CS50 lub Linux System operacyjny w linii poleceń. W porządku. Kolejny, który może przydatna jest mkdir, co jest skrótem od utwórz katalog, jeśli trzeba, aby utworzyć nowy folder. Jeśli jesteś zaznajomiony z GUI systemu operacyjnego, Państwo może kliknąć prawym przyciskiem myszy. A potem, kiedy menu kontekstowe wyskakuje, wybierz Nowy folder. To pewnie jak zrobiłeś to wcześniej. Ale możemy też utworzyć katalogi w linii poleceń. Więc wracamy w IDE. Będę zoom-in w terminalu i wyświetlić zawartość mojego katalogu znowu, po prostu dać nam punktem odniesienia. Powiedzmy, że teraz mam zakończeniu pracy nad problemem ustawić 0 i problemem zestaw 1. Więc chcę utworzyć nowy katalog do pracy dla problemu zestaw 2. Jak mogę to zrobić? Cóż, jeszcze raz, mogę kliknąć prawym przyciskiem myszy w lewej strony tam i wybrać nowy folder i utworzyć katalog pset2. To będzie działać zbyt. Ale wtedy też zrobić to u wiersz poleceń dość szybko, wpisując mkdir, space-- I wpisane w n, ale-- przestrzeni pset2. Gdybym naciśnij Enter, a następnie Wymienię zawartość mojego katalogu ponownie, Widzę, że wygląda teraz Mam folder pset2. I mogę poruszać się że za pomocą cd i robić wszystkie prace muszę zrobić dla pset2. Nawiasem mówiąc, po prostu pop na tutaj bardzo szybko do drzewa plików. I widać, że również w Plik graficzny Explorer, widzimy, że katalog pset2 również nie stworzył. I mogę poruszać się do niego, za pomocą interfejsu GUI, jak również. Następnym razem, i to prawdopodobnie będzie się przydać jest cp, co jest skrótem od kopii. Kopiowanie, w przeciwieństwie do wszystkich innych Polecenia widzieliśmy wcześniej, przyjmuje dwa argumenty, źródła, Nazwa pliku, który chcesz skopiować, i miejscem, w którym Aby skopiować plik. Jest to dość łatwe do skopiowania plik, więc zróbmy to. Więc wracamy w IDE. Idę do listy zawartość mojego obecnego katalogu z ls. Teraz, powiedzmy, że chcę aby zrobić kopię hello.txt. Ponownie, z drzewa pliku na w lewo, interfejs graficzny, Mógłbym prawym przyciskiem myszy na hello.txt, wykonać kopię, wkleić kopię. Ale mogę to zrobić dość szybko w linii poleceń też. Powiedzmy, że chcemy skopiować hello.txt do hi.txt. Mogę CP, miejsca, hello.txt. To mój plik źródłowy, więc dlatego Mam zamiar wybrać pierwszą tego. A potem trzeba nazwać plik docelowy, hi.txt. I naciśnij Enter. A gdybym wyświetlić zawartość mojego katalog znowu, nie jest hi.txt. Zrobiłem kopię. I rzeczywiście, gdy poszedłem w hi.txt, mogłem zobaczysz, że będzie to dokładna powielać tego wszystkiego, istniał w moim pliku hello.txt. Tak to jest, jak skopiować plik. Ale co, jeśli chcesz skopiować cały katalog? Więc na drugi, rzućmy okiem na to, co jest w moim katalogu pset0. Gdybym cd pset0 i wyświetlić zawartość, Mam katalog o nazwie, próbki, i plik zarysowania, scratch.sb2. Tak, że dobrze wiedzieć. Więc wyczyścić ekran, i mam zamiar wrócić do mojego katalogu obszaru roboczego na sekundę. Powiedzmy, że teraz chcę wykonać kopię mojego katalogu pset0. Nie mogę po prostu powiedzieć, cp pset0 pset3, na przykład. Otrzymasz tę dziwną wiadomość, pomijając pset0 katalogów. Dlaczego masz tę wiadomość? Cóż, okazuje się, że gdy masz katalog, który ma inne rzeczy w jej wnętrzu, komenda cp naprawdę nie ma musi wiedzieć, co z nim zrobić. Musimy wyraźnie powiedzieć, Linux, terminal, Chcę, żebyś skopiować katalog pset0 i kopiowania każdy folder, który istnieje wewnątrz to i każdy plik, który istnieje wewnątrz niej. Innymi słowy, muszę ci rekurencyjnie nurkować w dół do pset0 i zrobić kopię wszystko tam jest. Jeśli chcę, aby to zrobić, co mogę zrobić jest cp-r, rekurencyjnej, pset0 pset3. Naciśnij Enter. Teraz, jeśli Wymienię zawartość mojego katalogu, Widzę, że jest pset3 katalog, że mogę pracować. A jeśli cd język pset3 teraz i następnie wyświetlić zawartość, wygląd, tam ponownie próbki i scratch.sb2. Więc to jest całkiem fajne. Tak, to w jaki sposób można skopiować cały katalog, a nie tylko jeden plik. Więc jeśli chcesz, aby skopiować katalog, ale należy pamiętać, użyć flagi -r, gdy jesteś pracy z poleceniem cp. W porządku. Tak już kopiowany plik, ale Zrobiłem to przez pomyłkę. A teraz chcę się go pozbyć. Jak mogę to zrobić? Ponownie, jeśli znasz z interfejsem GUI, można kliknąć prawym przyciskiem myszy i po prostu wybrać Usuń. I będzie to wysłać go do śmieci lub Kosz. Ale w linii poleceń, możemy może po prostu wpisz rm, usuwania, a następnie NAZWA plik chcemy się pozbyć. Teraz, rm jest bardzo ostrożny. Robi dużo podwójnej kontroli, aby upewnić się, że rzeczywiście Aby usunąć plik. Nie chce popełnić żadnych błędów, bo nie ma tutaj żadnego Kosza. Kiedy usunąć plik, to nie ma. I naprawdę nie ma sposobu, aby ją odzyskać. Musimy więc być dość Uważaj, i tak rm będzie dla nas bardzo ostrożni. Więc wróćmy do IDE i pozbyć się tego pliku hi.txt że stworzył minutę temu z kopią. Więc jesteśmy w IDE. I wyświetlić zawartość mojego katalogu znowu, po prostu dać nam pewien kontekst. To znaczy, można zobaczyć, że jest hi.txt, które stworzyłem jakiś czas temu. Teraz chcę, aby się go pozbyć. Jak mam to zrobić? Ponownie, po prostu rm. Więc mogę wpisać rm hi.txt i naciśnij Enter. I nie ma rm istota bardzo ostrożnym dla nas i upewnić się, że rzeczywiście Aby usunąć ten plik. Czy na pewno chcesz usunąć regularne pusty hi.txt plik? To tak jak w eksploatacji System, jak Windows lub Mac, że może być zaznajomieni z popping że pole mówi naprawdę jesteś pewien, że chcesz to zrobić. Jestem całkiem pewien, czy chcę tego, więc mam zamiar wpisać, yes-- lub też mogłem tylko wpisz y-- i naciśnij Enter. A gdybym wyświetlić zawartość mojego katalog ponownie hi.txt nie ma. Nieźle, prawda? Załóżmy, naciśnij klawisze Control L, po prostu aby pozbyć się wszystkich tych rzeczy i zabrać nas z powrotem na w górnej części ekranu. Teraz jest na to sposób, aby rm zwarcie, więc że nie zadać tego pytania. Naprawdę wiemy chcemy aby pozbyć się tego pliku, a my nawet nie chce należy zadać pytanie. Jak mamy to zrobić? Cóż, możemy określić dodatkowa flaga, tak jak my zrobił z cp gdzie można dodać flagi -r, rekursywnie skopiować do katalogu. Jest jeszcze jedna flaga Rm, co oznacza -F, który ma zmusić rm dokładnie zrobić co mówimy to zrobić. Więc powiedzmy, że teraz chcę aby pozbyć się mojego pliku hello.txt. Nie chcę, że jeden albo. Co mogę zrobić? Cóż, mogę rm -f hello.txt. Co sądzisz jest będzie działo? Odeszło. Nawet nie zadają mi pytanie. I rzeczywiście, jeśli wyświetlić zawartość mojego katalogu znowu, to nie ma. Nie ma cofania tutaj. hello.txt nie ma, i nie byłem nawet zapytał, czy chcę, aby go usunąć. Co zrobić, jeśli chcesz pozbyć się z całego katalogu? Sposób, jak to jest bardzo podobne do skopiowania. Jeśli chcesz usunąć katalog, to nie tylko Aby usunąć katalog, chcesz usunąć wszystko, co w jej wnętrzu. A więc używać -r, aby rekursywnie usunąć katalog. Więc rm -r pset2. Nie jestem rzeczywiście działa na pset2, więc mogę pozbyć się tego katalogu. I naciśnij Enter. Czy chcę, aby usunąć katalog, pset2? Tak. A gdybym wyświetlić zawartość mój katalog znowu, to nie ma. W porządku? Jeszcze jedna wariacja na ten temat. Więc będę ponownie wyczyścić ekran, postawić wszystko na górze. Hit ls. Teraz chcę się pozbyć mojego katalogu pset3, a ja naprawdę wiem, że chcesz pozbyć się mojego katalogu pset3. Mogę rekursywnie i siłą usuń mój katalog pset3. Teraz, masz zamiar być naprawdę Uważaj, gdy używasz rm -rf. Jak zaprogramować więcej, to będzie coś, czego po prostu zrobić bardzo szybko. I rzeczywiście, robię to cały czas. Ale może to prowadzić do niektórych katastrofalne konsekwencje, Jeśli przypadkowo usunąć źle. Więc chcę, żebyś była świadoma, że jest to opcja dostępna dla Ciebie, ale używać go oszczędnie, i używać go z rozwagą. Wiem na pewno, że nie pracuję na moim problemem zestaw 3 więcej, więc jestem zamierza pozbyć się tych wszystkich plików. I wiem, że nie chcesz zostać poproszony za każdym razem, gdy chcę usunąć plik, więc mam zamiar rmdir pset3. Nawet nie pytają mnie, czy ja chciał się go pozbyć. I hit ls. pset3 nie ma. Więc to wszystkie odmiany, które można użyć, aby pozbyć się plików z rm. Linia poleceń ostatnie polecenie to będzie bardzo przydatne dla Ciebie to mv, co jest skrótem od ruchu. Ruch jest w zasadzie odpowiednikiem nazwy. Porusza się plik z jednej lokalizacji inny, źródłem do miejsca przeznaczenia. Zobaczmy, gdzie za pomocą potęgi ruch być przydatne w oknie terminala. Więc jestem w moim pset1 katalog, a ja zauważyłem, coś poszło trochę źle. Pracowałem na moim chciwy problemu, ale to przypadkowo nazwany Greddy. Kiedy więc spróbować uruchomić go przez check50, to naprawdę nie działa. Mam kilka opcji. Możemy robić to, co zrobiliśmy wcześniej, która jest zrobić kopię pliku. Mógłbym skopiować greddy.c do greedy.c, prawda? Naciśnij Enter. Widzę, że oba pliki są tam. I wtedy mógłbym RM, usunąć, greddy.c. Że pozbywa się nim. Tak, że będzie działać, po Potwierdzam że chcę się go pozbyć. I skutecznie mają przemianowany greddy.c do greedy.c. Skopiowałem go, a następnie usunąć oryginał. Ale to proces wieloetapowy. I z pewnością, jest to lepszy sposób. W rzeczywistości nie jest. Więc hit sterowania L, po prostu przynieść to z powrotem w górę, i wyświetlić zawartość mojego katalogu ponownie. Więc powiedzmy, oh, że popełniłem błąd. I rzeczywiście bardzo chciał aby wybrać ten plik greddy.c. W jednym zamachem, mogę wpisać przenieść greedy.c do greddy.c. Naciśnij Enter. A teraz, nie mam skopiować i usunąć go, Po prostu był w stanie zmienić jego nazwę. One-stop shopping. Teraz istnieje wiele innych Podstawowe narzędzia wiersza poleceń które można używać w wiersz poleceń systemu Linux. I będziemy dyskutować dużo z nich w przyszłości w CS50. Ale teraz, po prostu się nogi mokre z pracy z tego terminala środowisko, te pięć polecenia powinno cię dość daleko w nawigacji wokół i pracy z plikami w swoim IDE lub w jakikolwiek oparte na systemie Linux systemu operacyjnego używasz. Jeśli jesteś ciekawy i chcesz patrzeć w przyszłość trochę na niektóre komend wiersza poleceń będziemy używać w przyszłości, oto lista kilku z bardziej spotykane. Jestem Doug Lloyd. To CS50.