[MUSIC PLAYING] Doug LLOYD: OK. Jadi mari kita bicara tentang bagaimana menggunakan baris perintah Linux. Sekarang, CS50 IDE, atau di Bahkan, alat CS50, jika Anda terbiasa dengan itu, atau Anda mengambil versi lama dari CS50, adalah mesin berbasis cloud yang berjalan Ubuntu, yang merupakan salah satu dari banyak rasa dari sistem operasi Linux. Sistem operasi Linux adalah disukai oleh programmer, karena itu hanya dingin, kan? Banyak distribusi Linux modern memiliki antarmuka pengguna grafis, yang kita sebut juga GUI, G-U-I, untuk memungkinkan navigasi berbasis mouse mudah, yang Anda mungkin akrab dengan, jika Anda pengguna Windows atau Mac, bergerak di sekitar mouse Anda, mengklik dua kali pada ikon, dan sebagainya. Masih meskipun, sebagai programmer, dan meskipun IDE mengandung kemampuan untuk melakukan beberapa pengguna grafis hal, mengklik, dan menyeret, dan semua itu, Anda masih akan menggunakan Anda jendela terminal cukup sering. Dan Anda dapat melakukan banyak tugas yang sama bahwa Anda dapat lakukan dengan mouse dengan perintah keyboard. Dan kita akan berbicara sedikit tentang apa beberapa perintah-perintah yang sekarang. Sekarang, perintah ini dapat digunakan pada setiap operasi berbasis Unix sistem, yang meliputi Linux, tetapi juga mencakup Mac OS. Jika Anda membuka Terminal di Mac Anda, Anda dapat menggunakan perintah ini tepat. Windows juga memiliki Command Prompt, tapi beberapa perintah sedikit berbeda, sehingga itu tidak benar-benar bekerja, karena Windows tidak sistem berbasis Unix. Jadi mari kita lihat beberapa perintah Linux ini. Yang pertama yang Anda akan mungkin menggunakan cukup banyak adalah ls. Itu l huruf kecil, diikuti oleh huruf kecil s, yang merupakan kependekan dari daftar. Dan apa perintah daftar dilakukannya itu memberi Anda pembacaan dari semua file dan folder dalam direktori Anda saat ini. Sehingga Anda dapat melihat segala sesuatu yang Anda bisa mendapatkan dari mana Anda saat ini. Jadi saya sudah membuka sini IDE CS50. Dan aku akan zoom-in di kedua untuk memberikan melihat lebih dekat, tapi inilah gambaran luas apa IDE yang tampak seperti. Di sebelah kiri, Anda dapat melihat kami memiliki pohon file, yang Anda mungkin akrab dengan, mengklik dua kali, dan file dan folder, dan semua itu. Sehingga masih ada di alat CS50. Di pusat di atas adalah di mana Anda akan menulis kode Anda, sekali Anda klik pada file. Dan di bagian bawah, kita memiliki jendela terminal, yang mana kita dapat mengeksekusi ini perintah terminal. Aku akan zoom-in dan kepala di sini, hanya menunjukkan bahwa, pada kenyataannya, saya bisa klik pada file dan folder tersebut. Jadi jelas, di mana saya saat ini berada, aku harus dua folder, disebut pset0 dan pset1, dan tiga file, satu disebut halo, satu disebut hello.c, dan satu disebut hello.txt. Jadi mari kita beralih ke terminal jendela dan melihat lebih dekat. Jadi kita hanya berbicara, lagi, tentang Fakta bahwa kami memiliki tiga file dan dua folder dalam direktori saat ini. Jika saya ketik ls, yang lagi-lagi adalah perintah untuk daftar isi saat ini direktori, dan kemudian aku tekan Enter, melihat apa yang saya lihat, halo, hello.c, hello.txt, pset0 dan pset1. pset0 dan pset1 adalah berwarna biru, untuk menunjukkan kepada Anda bahwa mereka adalah direktori bahwa kita bisa menavigasi ke. Dan kita akan belajar sedikit sedikit tentang cara menavigasi ke direktori dalam satu menit. Dan setiap hal lainnya berwarna hitam, jika itu file teks atau kode sumber mengajukan, dan hijau, jika itu file executable. Jadi jelas, itu berarti bahwa saya bisa menjalankan sebuah program yang disebut, halo. Itulah yang hijau yang ada berarti. Tapi pada dasarnya, mengetik Perintah ls telah memungkinkan saya untuk melihat segala sesuatu yang ada dalam direktori saya saat ini, yang sesuai dengan apa yang kita lihat di sini, di tampilan grafis yang sama. Perintah berikutnya Anda akan mungkin menggunakan sedikit adalah cd, huruf kecil c, huruf kecil d, yang singkat untuk direktori perubahan. Hal ini memungkinkan kita untuk melakukan apa yang saya berbicara tentang kedua lalu, yang adalah untuk menavigasi antara direktori di perintah line, sebagai lawan mengklik dua kali pada folder. Jadi jika kita ketik cd dan kemudian nama direktori, kita bisa masuk ke direktori tersebut. Sebagai samping, tahu bahwa nama dari direktori saat selalu dot, dan nama direktori satu tingkat di atas di mana kita sekarang, itu adalah nama folder di yang folder kita, dot, dot-- atau di mana folder kita, adalah titik, titik. Dan jika Anda pernah ingin tahu tentang nama direktori Anda, Anda dapat mengetik pwd, yang berdiri untuk direktori kerja saat ini. Kami akan melihat di semua ini sekarang, dengan menuju kembali ke IDE CS50. Jadi aku kembali ruang kerja saya sekarang. Dan aku akan melakukan zoom-in lagi pada terminal, jadi kita bisa melihat-lihat di bergerak di sekitar dalam IDE. Jadi aku akan daftar isi dari direktori saya lagi, hanya untuk reground kami di mana kita berada. Jadi jika saya ketik ls, yang untuk daftar lagi, Saya melihat bahwa saya bisa mendapatkan pset0 dan pset1. Mereka adalah direktori Saya bisa mendapatkan dari sini. Aku tahu itu, karena IDE memberikan saya petunjuk dengan mewarnai mereka biru. Mari kita mengatakan bahwa saya ingin masuk ke direktori pset1 saya, karena saya sedang bekerja pada masalah set 1. Saya bisa mengetik cd-- lagi, singkatan mengubah ruang directory--, pset1. Dan jika saya tekan Enter, perhatikan apa yang terjadi. Ini tidak terlihat seperti banyak yang telah terjadi. Tetapi jika Anda melihat prompt, sekarang memberitahu saya bahwa saya di ~ / ruang kerja / pset1. Aku sudah navigasikan ke pset1 yang folder yang berada dalam ruang kerja saya. Dan jika saya ketik ls, saya melihat beberapa hal yang berbeda di sini, kan? Ini tidak sama daftar yang saya lihat sebelumnya. Aku sudah navigasikan ke pset1. Dan sekarang, ketika saya ketik ls, aku mendapatkan konteks apa yang bisa saya melihat dari dalam folder pset1. Sekarang, aku akan mengetik control l, yang hanya membersihkan layar. Dan aku akan daftar isi dari direktori lagi, hanya sehingga Anda dapat melihat. Aku hanya ingin melakukan itu untuk membersihkan beberapa hal Anda melihat di bawah dan untuk mencegah hal ini dari pergi terlalu jauh turun dari jangkauan. Sekarang, saya mengatakan sebelumnya bahwa, jika saya ingin untuk menavigasi ke direktori saat ini, Saya dapat mengetik cd ruang dot. Tekan Enter. Ia tidak melakukan apa-apa, kan? Saya mengubah direktori untuk direktori saat ini. Anda tidak selalu akan menemukan kebutuhan untuk satu titik, tetapi Anda akan sesekali. Mari kita mengatakan bahwa saya ingin untuk naik satu tingkat. Saya ingin kembali ke saya direktori kerja. Saya tidak bisa mengetik cd ruang kerja, tidak ada berkas atau direktori. Dan alasan untuk itu-- jika saya ketik ls satu time-- lebih adalah bahwa tidak ada direktori yang disebut ruang kerja dalam direktori pset1 saya. Aku akan membersihkan saya layar lagi dengan kontrol l. Ingat apa yang saya katakan sebelumnya, meskipun, kita yang dapat menavigasi kembali dengan dot, dot. Itulah nama direktori induk. Jadi jika saya ketik cd, ruang, dot, dot, dan kemudian tekan Enter, sekarang melihat apa yang terjadi. Saya command prompt memberitahu saya bahwa saya kembali direktori ~ / ruang kerja saya. Aku naik satu tingkat, berkat dot, dot. Sekarang, mari kita mengatakan bahwa saya menggunakan sistem operasi yang berbasis Linux, tapi tidak tentu memberitahu saya di mana saya. Satu ini terjadi untuk memberitahu kami bahwa Aku di ~ / ruang kerja sekarang, tepat pada prompt. Tapi aku bisa benar-benar hilang dalam kekacauan folder, dan saya tidak tahu di mana saya dan tidak tahu di mana saya ingin kembali ke. Ada dua hal yang bisa saya lakukan. Pertama-tama, saya dapat mengetahui di mana saya, dengan mengetikkan pwd. Itu direktori kerja sekarang saya. Dan jika saya tekan Enter, itu memberitahu saya di mana saya. Sekarang / home / ubuntu adalah jauh mengatakan, tilde, yang merupakan direktori home Anda. Tapi ia memberitahu saya bahwa saya berada di home / ubuntu / ruang kerja, atau ~ / ruang kerja. Aku akan menavigasi ke direktori pset1 saya lagi, dan aku akan daftar isi. Dan saya melihat bahwa saya memiliki lain direktori ada, disebut ekstra. Jadi aku akan cd ke ekstra, dan maka aku akan membersihkan layar saya. Jadi sekarang, aku cukup jauh, kan? Bagaimana jika saya ingin kembali untuk workspace segera? Ada beberapa hal yang bisa saya lakukan. Saya bisa mengetik cd, dot, dot, garis miring, titik, dot, untuk naik satu tingkat dan kemudian tingkat lain. Tapi itu agak menjengkelkan. Jadi jika saya pernah ingin kembali ke hanya direktori rumah saya, tilde, Saya bisa mengetik cd dengan apa-apa setelah itu. Cd, Enter. Dan sekarang, aku di tilde. Dan jika saya ingin mendapatkan ruang kerja, Aku hanya bisa mengetik cd ruang kerja. Dan itulah bagaimana Anda bekerja direktori berubah dalam IDE CS50 atau Linux saja sistem operasi pada baris perintah. Baiklah. Yang berikutnya yang mungkin berguna adalah mkdir, yang merupakan kependekan membuat direktori, jika saya harus membuat folder baru. Jika Anda akrab dengan sistem operasi GUI, Anda mungkin klik kanan. Dan kemudian, ketika menu konteks muncul, pilih New Folder. Itu mungkin bagaimana Anda pernah melakukannya. Tapi kita juga dapat membuat direktori pada baris perintah. Jadi kita kembali IDE. Saya akan zoom-in di terminal dan daftar isi dari direktori saya lagi, hanya untuk memberi kita kerangka acuan. Katakanlah, sekarang, aku sudah selesai bekerja pada masalah set 0 dan masalah set 1. Jadi saya ingin membuat direktori baru untuk bekerja selama masalah set 2. Bagaimana aku melakukan itu? Nah, sekali lagi, saya bisa klik kanan di meninggalkan sisi ada dan pilih New Folder dan membuat direktori pset2. Itu akan bekerja juga. Tapi kemudian saya juga melakukannya di baris perintah cukup cepat, dengan mengetikkan mkdir, space-- saya diketik di n, tapi-- ruang pset2. Jika saya tekan Enter dan kemudian saya daftar isi direktori saya lagi, Saya melihat bahwa, terlihat, sekarang Aku punya folder pset2. Dan saya dapat menavigasi ke yang menggunakan cd dan melakukan semua pekerjaan yang harus saya lakukan untuk pset2. Kebetulan, saya hanya akan muncul di atas sini benar-benar cepat ke pohon berkas. Dan Anda dapat melihat bahwa, juga, di File Explorer grafis, kita dapat melihat bahwa direktori pset2 juga telah dibuat di sana. Dan saya dapat menavigasi untuk itu, menggunakan GUI juga. Waktu berikutnya dan itu mungkin akan berguna adalah cp, yang merupakan kependekan copy. Salin, tidak seperti semua lainnya perintah yang telah kita lihat sebelumnya, membutuhkan dua argumen, sumber, nama dari file yang ingin Anda salin, dan tujuan, di mana Anda ingin menyalin file ke. Ini cukup mudah untuk menyalin file, jadi mari kita melakukan itu. Jadi kita kembali IDE. Saya akan daftar isi direktori saya saat ini dengan ls. Sekarang, mari kita mengatakan bahwa saya ingin untuk membuat salinan hello.txt. Sekali lagi, dari pohon file di kiri, antarmuka grafis, Saya bisa klik kanan pada hello.txt, membuat salinan, menyisipkan salinan. Tapi aku bisa melakukannya cukup cepat pada baris perintah juga. Katakanlah saya ingin menyalin hello.txt untuk hi.txt. Aku bisa cp, ruang, hello.txt. Itu file sumber saya, jadi itu sebabnya Saya akan memilih salah satu yang pertama. Dan kemudian saya harus nama file tujuan, hi.txt. Saya tekan Enter. Dan jika saya daftar isi saya direktori lagi, ada hi.txt. Saya membuat salinannya. Dan pada kenyataannya, jika aku pergi ke hi.txt, aku bisa melihat bahwa itu akan menjadi tepat duplikat dari segala sesuatu yang ada dalam file hello.txt saya. Jadi itulah bagaimana Anda menyalin file. Tapi bagaimana jika Anda ingin menyalin seluruh direktori? Jadi untuk kedua, mari kita lihat apa yang ada dalam direktori pset0 saya. Jika saya cd pset0 dan daftar isi, Saya memiliki sebuah direktori yang disebut, sampel, dan file awal, scratch.sb2. Jadi itu bagus untuk mengetahui. Jadi mari kita membersihkan layar, dan aku akan kembali ke direktori kerja saya untuk kedua. Katakanlah, sekarang, saya ingin membuat salinan dari direktori pset0 saya. Saya tidak bisa mengatakan cp pset0 pset3, misalnya. Anda mendapatkan pesan aneh ini, menghilangkan direktori pset0. Mengapa Anda mendapatkan pesan itu? Nah, ternyata, ketika Anda memiliki sebuah direktori yang memiliki hal-hal lain di dalamnya, perintah cp tidak benar-benar tentu tahu apa yang harus dilakukan dengan itu. Kita perlu secara eksplisit memberitahu Linux, terminal, Saya ingin Anda untuk menyalin direktori pset0 dan copy setiap folder yang ada di dalam itu dan setiap file yang ada di dalamnya. Dengan kata lain, saya perlu Anda rekursif menyelam ke dalam pset0 dan membuat salinan dari segala sesuatu di sana. Jika saya ingin melakukan itu, apa yang bisa saya lakukan adalah cp-r, untuk rekursif, pset3 pset0. Tekan Enter. Sekarang, jika saya daftar isi dari direktori saya, Saya melihat ada yang pset3 direktori yang saya dapat bekerja dengan. Dan jika saya cd ke pset3 sekarang dan kemudian daftar isi, terlihat, ada sampel dan scratch.sb2 lagi. Jadi itu cukup keren. Jadi itulah bagaimana Anda dapat menyalin seluruh direktori, dan bukan hanya satu file. Jadi jika Anda ingin menyalin direktori, hanya ingat menggunakan bendera -r ketika Anda bekerja dengan perintah cp. Baiklah. Jadi saya telah menyalin file, tapi Saya sudah melakukannya dengan kesalahan. Dan sekarang, saya ingin menyingkirkannya. Bagaimana aku melakukan itu? Sekali lagi, jika Anda terbiasa dengan antarmuka GUI, Anda bisa klik kanan dan hanya memilih Hapus. Dan itu akan mengirimkannya ke sampah atau Recycle Bin. Tapi pada baris perintah, kita hanya bisa mengetik rm, untuk menghapus, dan kemudian nama mengajukan kita ingin menyingkirkan. Sekarang, rm sangat berhati-hati. Itu tidak banyak double-memeriksa, memastikan bahwa Anda benar-benar ingin menghapus file. Tidak ingin membuat kesalahan, karena tidak ada Recycle Bin di sini. Setelah kita menghapus file, itu hilang. Dan ada benar-benar ada cara untuk memulihkannya. Jadi kita harus cukup hati-hati, dan sebagainya rm akan menjadi benar-benar hati-hati bagi kita. Jadi mari kita kembali ke IDE dan menyingkirkan file hi.txt yang saya buat satu menit yang lalu dengan copy. Jadi kita dalam IDE. Dan saya daftar isi dari direktori saya lagi, hanya untuk memberi kita beberapa konteks. Maksudku, Anda dapat melihat bahwa ada hi.txt, yang saya buat beberapa waktu yang lalu. Sekarang, saya ingin menyingkirkannya. Bagaimana aku melakukanya? Sekali lagi, hanya rm. Jadi saya bisa mengetik rm hi.txt dan tekan Enter. Dan ada rm makhluk benar-benar hati-hati bagi kita dan memastikan kita benar-benar ingin menghapus file ini. Apakah Anda benar-benar ingin menghapus teratur kosong berkas hi.txt? Itu seperti sebuah operasi sistem, seperti Windows atau Mac, bahwa Anda mungkin akrab dengan bermunculan kotak yang mengatakan yang Anda benar-benar Yakin ingin melakukan hal ini. Aku cukup yakin saya ingin ini, jadi saya akan mengetik, yes-- atau aku juga bisa saja ketik y-- dan tekan Enter. Dan jika saya daftar isi saya direktori lagi, hi.txt hilang. Tidak buruk, benar? Mari kita tekan Control L, hanya untuk menyingkirkan semua hal ini dan mendapatkan kita kembali di bagian atas layar. Sekarang, ada cara untuk hubung singkat rm, sehingga bahwa itu tidak meminta kita pertanyaan itu. Kami benar-benar tahu kami ingin untuk menyingkirkan file tersebut, dan kami bahkan tidak ingin untuk mengajukan pertanyaan. Bagaimana kita melakukannya? Nah, kita bisa menentukan bendera ekstra, sama seperti kita lakukan dengan cp mana kita bisa menambahkan bendera r, untuk rekursif menyalin sebuah direktori. Ada bendera lain untuk rm, yang -f, yang memaksa rm untuk melakukan hal apa yang kita mengatakan itu harus dilakukan. Jadi mari kita mengatakan bahwa, sekarang, saya ingin untuk menyingkirkan file hello.txt saya. Saya tidak ingin satu yang baik. Apa yang bisa saya lakukan? Yah, aku bisa rm -f hello.txt. Apa yang Anda pikirkan adalah akan terjadi di sini? Itu hilang. Bahkan tidak bertanya padaku pertanyaan. Dan pada kenyataannya, jika saya daftar isi direktori saya lagi, itu akan hilang. Tidak ada undo sini. hello.txt hilang, dan saya tidak bahkan bertanya apakah saya ingin menghapusnya. Bagaimana jika saya ingin menyingkirkan dari seluruh direktori? Cara Anda melakukannya adalah sangat mirip dengan menyalin. Jika Anda ingin menghapus direktori, Anda tidak hanya ingin menghapus direktori, Anda ingin untuk menghapus segala sesuatu di dalamnya. Dan sehingga Anda menggunakan r, untuk rekursif menghapus direktori. Jadi mari kita rm pset2 r. Aku tidak benar-benar bekerja pada pset2, jadi saya bisa menyingkirkan direktori tersebut. Saya tekan Enter. Apakah saya ingin menghapus direktori, pset2? Ya. Dan jika saya daftar isi direktori saya lagi, itu akan hilang. Baiklah? Salah satu variasi lebih pada tema ini. Jadi saya akan membersihkan layar lagi, untuk meletakkan segala sesuatu di atas. Hit ls. Sekarang, saya ingin menyingkirkan direktori pset3 saya, dan aku benar-benar tahu saya ingin menyingkirkan direktori pset3 saya. Saya rekursif dan paksa bisa menghapus direktori pset3 saya. Sekarang, Anda akan benar-benar hati ketika Anda menggunakan rm-rf. Seperti Anda program lebih, itu akan menjadi sesuatu yang Anda hanya melakukan benar-benar cepat. Dan pada kenyataannya, saya melakukannya sepanjang waktu. Tapi itu dapat menyebabkan beberapa konsekuensi bencana, jika Anda tidak sengaja menghapus hal yang salah. Jadi saya ingin Anda untuk menyadari bahwa ini adalah pilihan yang tersedia untuk Anda, tapi menggunakannya hemat, dan menggunakannya dengan hati-hati. Aku tahu pasti aku tidak bekerja pada masalah saya set 3 lagi, jadi aku akan menyingkirkan semua file-file. Dan aku tahu aku tidak ingin diminta setiap kali jika saya ingin menghapus file, jadi aku akan rm-rf pset3. Bahkan tidak bertanya apakah aku ingin menyingkirkannya. Aku memukul ls. pset3 hilang. Jadi itu semua variasi yang Anda dapat digunakan untuk menyingkirkan file dengan rm. Perintah terakhir baris perintah yang akan sangat berguna untuk Anda adalah mv, yang merupakan kependekan bergerak. Langkah Apakah pada dasarnya setara dengan mengubah nama. Bergerak file dari satu lokasi ke lokasi lain, sumber ke tujuan. Mari kita lihat di mana menggunakan kekuatan bergerak berguna di jendela terminal. Jadi aku di pset1 saya direktori, dan saya perhatikan sesuatu yang tidak sedikit salah. Saya bekerja pada masalah serakah saya, tapi saya sengaja menamakannya GReddy. Jadi ketika saya mencoba dan menjalankannya melalui check50, itu tidak benar-benar bekerja. Saya punya beberapa pilihan. Kita bisa melakukan apa yang kami lakukan sebelumnya, yang membuat salinan file. Aku bisa menyalin greddy.c untuk greedy.c, kan? Tekan Enter. Saya melihat bahwa kedua file yang ada. Dan kemudian saya bisa rm, untuk menghapus, greddy.c. Yang akan menyingkirkan itu. Jadi yang akan bekerja, setelah saya mengkonfirmasi bahwa saya ingin menyingkirkannya. Dan saya secara efektif memiliki berganti nama greddy.c untuk greedy.c. Aku disalin, dan kemudian dihapus aslinya. Tapi itu adalah proses multi-langkah. Dan tentu saja, ada cara yang lebih baik. Bahkan, ada. Jadi mari kita memukul Kontrol L, hanya untuk membawa kembali hal ini, dan daftar isi direktori saya lagi. Jadi katakanlah, oh, saya membuat kesalahan. Aku benar-benar benar-benar ingin untuk memanggil file greddy.c. Dalam satu gerakan, saya dapat mengetik bergerak greedy.c ke greddy.c. Tekan Enter. Dan sekarang, aku tidak punya untuk menyalin dan menghapusnya, Aku hanya bisa mengubah nama itu. One-stop shopping. Sekarang, ada banyak lainnya dasar utilitas baris perintah Anda dapat menggunakan dengan baris perintah Linux. Dan kita akan membahas banyak dari mereka di masa depan dalam CS50. Tapi untuk saat ini, hanya mendapatkan kaki Anda basah dengan bekerja dengan terminal ini lingkungan, lima perintah Anda harus mendapatkan cukup jauh dalam menavigasi sekitar dan bekerja dengan file dalam IDE Anda atau apa pun yang berbasis Linux sistem operasi yang Anda gunakan. Jika Anda penasaran dan ingin melihat ke depan sedikit di beberapa perintah baris perintah kita akan menggunakan di masa depan, berikut adalah daftar beberapa dari yang lebih umum. Aku Doug Lloyd. Ini adalah CS50.