>> [音樂播放]
>> 道格·勞埃德：OK。
因此，讓我們來談談如何 使用Linux命令行。
現在，CS50 IDE，或 事實上，即使是CS50家電，
如果你熟悉或 你服用CS50的是舊版本，
是一個基於雲的機 它運行Ubuntu的，
這是眾多風格中的一種 的Linux操作系統。
Linux操作系統是 程序員的青睞，
因為它只是轉涼，對嗎？
>> 許多現代的Linux發行版 具有圖形用戶界面，
我們也呼籲圖形用戶界面，G-U-I，至 便於鼠標導航，
你可能熟悉， 如果你是一個Windows或Mac用戶，
在你的鼠標移動， 上的圖標雙擊，等等。
不過儘管如此，作為一個程序員， 並且即使IDE
包含能力 做一些圖形用戶
的東西，點擊， 拖，和所有，
你仍然在使用 終端窗口相當頻繁。
你可以做很多的 同樣的任務，你可以
做一個鼠標與鍵盤命令。
我們要談一點點 一些這些命令是什麼
現在是正確的。
>> 現在，可以使用這些命令 在任何基於Unix的操作系統
系統，該系統包括Linux中， 還包括的Mac OS。
如果你打開終端在Mac上， 您可以使用這些精確的命令。
Windows還具有命令 提示，但一些命令
略有不同，所以 它實際上並沒有正常工作，
因為Windows是不是 基於Unix的系統。
>> 因此，讓我們來看看一些 這些Linux的命令。
第一個，你會 可能使用了很多的LS。
這是一個小寫的L，其次是 小寫的s，這是短期的名單。
什麼list命令的作用是它 給你所有的文件的讀出
而在當前目錄中的文件夾。
所以你可以看到一切你可以 獲得從您當前所在。
>> 所以，我已經打開了這裡的CS50 IDE。
而且我要放大，在一 第二個給你仔細看看，
但這裡的總體情況 什麼樣的IDE樣子。
在左邊，你可以看到，我們有 文件樹，你可能
熟悉，雙擊​​，和 文件和文件夾，和所有的東西。
所以這是仍然存在 在CS50設備。
在中心的頂部就是你 要編寫代碼，一旦
你點擊一個文件。
和底部，我們 有一個終端窗口，
這是我們可以執行 這些終端命令。
>> 我要放大，在 和頭部在這裡，只
告訴你，其實，我可以 點擊這些文件和文件夾。
所以很明顯，在那裡我目前，我有 兩個文件夾，名為pset0和PSET1，
和三個文件，一個叫 你好，一個叫hello.c的，
和一個叫hello.txt的。
>> 因此，讓我們向下移動到終端 窗口並獲得一探究竟。
所以，我們剛才也談到，再次，關於 事實是，我們有三個文件和兩個
文件夾在當前目錄。
如果我輸入ls，這再次 就是命令列出
當前的內容 目錄下，然後我敲回車，
看看我看到的，打招呼，hello.c中， hello.txt的，pset0和PSET1。
>> pset0和PSET1是 藍色，以表示
你，這些都是目錄 我們可以導航到。
我們將學習一點 有關如何定位位
成在一分鐘內的目錄。
和所有其他的事情是有色黑色， 如果它是一個文本文件或源代碼
文件，和綠色，如果 這是一個可執行文件。
所以很明顯，這意味著，我 可以運行一個名為程序，你好。
這就是綠色的一個人也沒有意思。
但基本上，鍵入 ls命令允許
我看一切存在 在我的當前目錄中，這
符合我們在這裡看到，在 的相同的圖形顯示。
下一個命令，你會 可能使用相當多
是CD，小寫字母c，小寫研發， 這是短期改變目錄。
這使我們能夠做什麼，我是 說起一秒鐘前，這
是間導航 在命令目錄
線，而不是 在文件夾雙擊。
因此，如果我們鍵入CD，然後 一個目錄的名稱，
我們可以進入該目錄。
>> 順便說一句，知道這個名字 當前目錄是永遠
點，和所述目錄的名稱 上述一個我們現在的水平，
那就是在文件夾的名稱 其中我們的文件夾，點，dot--
或者在我們的文件夾，是圓點，圓點。
如果你曾經好奇 您目錄的名稱，
您可以鍵入PWD，它代表 對於當前的工作目錄。
我們將看看所有這些 現在，通過回籠到CS50 IDE。
所以，我回到我的工作區了。
我會放大，在再次上 終端，所以我們可以來看看
在IDE中走動。
所以，我要列出 我的目錄內容
再次，只是為了重新研磨 我們在哪裡了。
所以，如果我輸入ls，這 對於列表中再次，
我看到，我能得到pset0和PSET1。
這些都是目錄 我可以從這裡得到。
我知道，因為IDE提供 我一個線索由著色藍。
>> 比方說，我想 進入我的PSET1目錄，
因為我工作的習題集1。
我可以輸入cd--再次，簡稱 改變directory--空間，PSET1。
如果我敲回車，看到發生了什麼。
它看起來並不像發生了不少事情。
但是，如果你看一下提示，現在 告訴我，我在〜/工作區/ PSET1。
我已經航行到PSET1 文件夾是我的工作空間內。
>> 如果我輸入ls，我看到一些 不同的東西在這裡，對不對？
這是不一樣的 我以前看到列表。
我已經航行到PSET1。
所以現在，當我輸入ls，我 得到什麼樣的情況下，我可以
看到來自PSET1文件夾中。
>> 現在，我要鍵入控制 L，這只是清除屏幕。
而且我要列出 該目錄的內容
再次，只是讓你可以看到。
我只是想這樣對待 清除掉一些東西
你看見樓下 並且，以防止這種
從去太遠超出範圍。
>> 現在，我在前面提到，如果我想 導航到當前目錄，
我可以輸入CD的空間點。
回車。
它沒有做任何事情，對不對？
我改變了目錄 當前目錄。
你不會總是會 發現需要一種單一的點，
但是你會偶爾為之。
>> 比方說，我想 到上一級。
我想找回 我的工作區目錄。
我不能鍵入cd工作區， 有沒有這樣的文件或目錄。
而對於that--的原因 如果我輸入ls多了一個時間 -
是，有沒有所謂的目錄 工作區我的PSET1目錄的內部。
我要清楚我 與對照L再次篩選。
還記得我說的 此前，雖然，我們
可以導航回用點，點。
這是父目錄的名稱。
所以，如果我鍵入cd，空格，點， 點，然後按Enter鍵，
現在就來看看發生了什麼事。
我的命令提示符告訴我，我 早在我的〜/ workspace目錄。
我搬到了一個級別， 多虧點，點。
>> 現在，讓我們說，我使用的是 操作系統是基於Linux，
但並不一定 告訴我，我在哪裡。
這一次發生在告訴我們， 我在〜/工作區，現在，
就在提示。
但我可能是完全 在文件夾的爛攤子丟了，
我不知道我在哪裡，並 不知道，我想回去。
有兩件事情我可以做。
>> 首先，我可以計算 出來我在哪裡，通過鍵入PWD。
這是我當前的工作目錄。
如果我打回車鍵， 告訴我，究竟我在哪裡。
現在的/ home / Ubuntu是 的說法，波浪線很長的路要走，
這是你的主目錄。
但它告訴我，我在 家用/ Ubuntu的/工作區，或〜/工作區。
>> 我要去導航 我PSET1目錄再次，
而我要列出其中的內容。
我看到，我還有一個 目錄中有，所謂的群眾演員。
所以，我要cd到群眾演員，和 那麼我要清楚我的屏幕。
>> 所以，現在，我很遠的，對不對？
如果我想要回什麼 馬上工作區？
有兩件事情我可以做的。
我可以輸入CD，點，點，斜線，點， 點，到上一級，然後
另一個層次。
但是，這是一種煩人。
>> 所以，如果我想回去 只是我的主目錄，波浪線，
我可以輸入光盤後，什麼都沒有。
鎘進入。
而現在，我在波浪線。
如果我想要得到的工作空間， 我可以只鍵入cd工作區。
而這就是你的工作 更改目錄
在CS50 IDE或任何Linux內 操作系統在命令行。
好的。
接下來的一個可能 派上用場是MKDIR，
這是短期的做一個目錄， 如果我需要創建一個新的文件夾。
如果你熟悉 在GUI操作系統，
你可能會用鼠標右鍵單擊。
然後，當在上下文菜單 彈出，選擇新建文件夾。
這可能是如何 你之前已經做到了。
但是，我們也可以創建 目錄在命令行。
所以，我們又回到了IDE。
我會放大，在終端上 我列出目錄的內容
再次，只是為了給我們 一個參照系。
比方說，現在，我已經 處理完問題設置0
和習題集1。
所以，我想創建一個新的目錄 上班的問題設置2。
我該怎麼辦呢？
>> 好了，再次，我可以用鼠標右鍵單擊 左側有，然後選擇新建文件夾
並創建一個pset2目錄。
這將工作太。
但是，我也這樣做的 命令行很快，
通過鍵入MKDIR，space--我 鍵入N，但 - 空間pset2。
如果我敲回車，然後我列出 我的目錄中再度內容，
我看，你看，現在 我有一個pset2文件夾。
我可以導航到 在使用CD和做
所有的工作，我需要做的pset2。
順便說一句，我就流行過 這裡真的很快到文件樹。
你可以看到，同樣，在 圖形文件瀏覽器，
我們可以看到，pset2目錄 還建立有。
我可以找到它， 使用GUI為好。
下一次，這就是 可能會派上用場
是CP，這是短期的副本。
複製，不像其他所有的 命令我們以前見過，
有兩個參數，一個來源， 要複製的文件名，
和目的地，在那裡你 要將該文件複製到。
這是很容易複製 一個文件，所以讓我們做到這一點。
>> 所以，我們又回到了IDE。
我要列出內容 我與LS當前目錄。
現在，讓我們說，我想 使hello.txt的副本。
再次，從對文件樹 左，圖形界面，
在hello.txt的，我可以用鼠標右鍵單擊， 做一個拷貝，粘貼複製。
但我可以很快做到這一點 在命令行了。
>> 比方說，我想複製 hello.txt的到hi.txt。
我可以CP，空間，hello.txt的。
這是我的源文件，所以這就是為什麼 我會先選擇之一。
然後我需要來命名 目標文件，hi.txt。
我敲回車。
如果我列出的內容，我 目錄再次，還有的hi.txt。
我做了它的一個副本。
而事實上，如果我去了 到hi.txt，我可以
看，這將是一個確切的 重複一切的
存在於我的hello.txt的檔案。
>> 這就是你如何複製文件。
但是，如果你想什麼 複製整個目錄？
因此，對於第二，讓我們一起來看看 什麼是我的pset0目錄。
如果我的CD pset0並列出內容， 我有一個名為目錄，樣品，
和一個臨時文件，scratch.sb2。
所以這是很好的了解。
因此，讓我們清除屏幕， 而我要回去
我的第二個工作區目錄。
>> 比方說，現在，我想 讓我pset0目錄的副本。
我不能說CP pset0 pset3，例如。
你得到這個奇怪的消息， 省略目錄pset0。
為什麼你得到的消息？
嗯，事實證明，當 你有一個目錄
擁有它裡面其他的東西， cp命令並沒有真正
一定知道該怎麼辦。
>> 我們需要明確 告訴Linux的終端，
我希望你能複製 pset0目錄和副本
每一個存在的文件夾內 它和每一個文件
存在它的內部。
換句話說，我需要你 遞歸地跳進pset0
並讓一切的副本在那裡。
>> 如果我要做到這一點，我能做些什麼 是CP-R，遞歸，pset0 pset3。
回車。
現在，如果我列出 我的目錄內容，
我看到有在pset3 目錄，我可以工作。
如果我cd到pset3現在 然後列出的內容，你看，
還有一次是樣品和scratch.sb2。
所以，這很酷。
所以，這就是你如何複製整個 目錄，而不是只是一個單一的文件。
所以，如果你想複製 目錄，只記得
使用-r標誌，當你 正與cp命令。
好的。
所以我複製的文件，但 我錯做到了。
而現在，我想擺脫它。
我該怎麼辦呢？
同樣，如果你​​熟悉 使用GUI界面，
你可以用鼠標右鍵單擊 而只是選擇刪除。
而且它會發送到 垃圾桶或回收站。
但是，在命令行中，我們 只需鍵入rm，對於刪除，
的，然後將名 文件中，我們要擺脫。
>> 現在，RM非常小心。
它做了很多的雙重檢驗， 確保你真正
要刪除的文件。
它不想犯任何錯誤， 因為沒有回收站在這裡。
一旦我們刪除一個文件，它的消失。
還有的實在沒有辦法恢復了。
因此，我們需要是相當 小心了，所以RM
將是非常小心我們。
>> 因此，讓我們回到IDE 並擺脫那個hi.txt文件
我在一分鐘前的副本。
因此，我們在IDE中。
我列出我的目錄中的內容 再次，只是給我們一些背景。
我的意思是，你可以看到，有hi.txt， 我創建了一小會兒前。
現在，我想擺脫它。
我該怎麼辦呢？
>> 再次，只是RM。
因此，我可以鍵入rm hi.txt然後按Enter鍵。
還有的RM之中 非常小心我們
，使實際確保我們 要刪除此文件。
你真的要刪除 常規空文件hi.txt？
這就像一個工作 系統，如Windows或Mac，
你可能會 熟悉彈出
那個盒子說，你真的 一定要做到這一點。
>> 我敢肯定，我想這一點， 所以我會打字，yes--
或者我也可以只 鍵入y--然後按Enter鍵。
如果我列出的內容，我 目錄再次，hi.txt走了。
還不錯吧？
讓我們按Ctrl L，只 為了擺脫這一切的東西
並讓我們回到 在屏幕的頂部。
>> 現在，有一種方法，以 短路RM，所以
它不問我們這個問題。
我們真的知道我們要 擺脫該文件中，
我們甚至不希望 要問的問題。
我們該怎麼做呢？
好了，我們可以指定一個 額外的標誌，就像我們
與CP我們是在哪裡 可以添加-r標誌，
以遞歸複製到目錄中。
還有另一個標誌 對於RM，這是-f，
這是迫使RM做的正是 正是我們告訴它做的事。
>> 所以我們可以說的是，現在，我想 擺脫我的hello.txt的文件。
我不希望這樣一個哪一方面。
我該怎麼辦？
好吧，我可以RM -f hello.txt的。
你認為什麼是 要在這裡出現呢？
它走了。
甚至沒有問我這個問題。
而事實上，如果我列出的內容 我的目錄再次，它的消失。
這裡沒有撤銷。
hello.txt的跑了，我是不是 甚至問我是否願意將其刪除。
如果我想擺脫什麼 的整個目錄？
你這樣做的方式是 非常相似的複製。
如果你想刪除一個 目錄下，你不只是
要刪除的目錄，你想 刪除所有在其內部。
所以你使用-r，以 遞歸刪除一個目錄。
>> 因此，讓我們RM -r pset2。
我沒有實際工作pset2， 這樣我就可以擺脫那個目錄。
我敲回車。
我是否要刪除 該目錄，pset2？
是的，我做的。
如果我列出的內容 我的目錄再次，它的消失。
好嗎？
>> 在這個主題上還有一個變化。
所以，我會再次清屏， 把一切都在上面。
打LS。
現在，我想擺脫 我pset3目錄，
我真的知道我要 擺脫我pset3目錄。
我可以遞歸並強行 刪除我的pset3目錄。
>> 現在，你將是真 當你使用的rm -rf小心。
當你的程序越多，它會 你剛才做的真的很快。
而事實上，我做這一切的時候。
但它可以導致一些 災​​難性的後果，
如果你不小心 刪除錯誤的事情。
所以，我要你知道， 這是提供給你一個選擇，
但應謹慎使用， 並請謹慎使用。
>> 我知道一個事實，我不工作 我的問題集3了，所以我
要擺脫所有這些文件的。
我知道我不想問 如果我想刪除每一次
一個文件，所以我要去室射頻pset3。
甚至沒有問我，如果我 想擺脫它。
我打LS。
pset3走了。
所以，這一切的變化，你 可以用它來擺脫的文件與RM。
>> 最後一個命令行命令，這是 要對你非常有用
是的MV，這是短期的舉措。
此舉是基本上等同於重命名。
它是將文件從一個位置到 另，源到目的地。
讓我們看到使用一招威力 得心應手的終端窗口。
>> 所以，我在我的PSET1 目錄中，我注意到
事情已經有點不對勁。
我是工作在我貪婪的問題， 但我不小心把它命名為greddy。
所以，當我嘗試運行它通過 check50，它並沒有真正發揮作用。
我有幾個選項。
我們可以做我們以前做過， 這是為了使文件的副本。
我可以複製greddy.c 到greedy.c，對不對？
回車。
我看到這兩個文件都在那裡。
然後我可以RM， 除去，greddy.c。
這擺脫它。
因此，將工作，我確認後， 我想擺脫它。
而且能有效地有 更名greddy.c到greedy.c。
我複製它，然後 去掉了原。
>> 但是，這是一個多步驟的過程。
當然，還有一種更好的方法。
事實上，有。
因此，讓我們打控制L， 只是把這個備份，
並列出內容 我的目錄了。
>> 所以我們可以說，哦，我犯了一個錯誤。
其實我真的想 調用該文件greddy.c。
在一舉，我可以輸入 移動greedy.c到greddy.c。
回車。
而現在，我沒有 複製和刪除，
我只是能夠將其重命名。
一站式購物。
>> 現在，還有很多其他的 基本的命令行工具
你可以使用 Linux命令行。
我們將討論很多 其中在CS50未來。
但現在，只是讓你的腳 與此終端工作濕
環境，這五個命令 應該讓你很遠
在導航周圍， 在你的IDE文件工作
或在任何基於Linux的 你使用的操作系統。
>> 如果你好奇，你想 向前看一點在一些
命令行命令 我們將使用在未來，
這裡有一對夫婦列表 比較常見的。
我是道格·勞埃德。
這是CS50。