[Bermain muzik] DOUG LLOYD: OK. Jadi mari kita bercakap tentang bagaimana untuk menggunakan baris arahan Linux. Kini, IDE CS50, atau dalam Malah, perkakas CS50, jika anda biasa dengan itu, atau anda mengambil versi yang lebih tua CS50, adalah mesin berasaskan awan yang menjalankan Ubuntu, yang merupakan salah satu rasa banyak sistem pengendalian Linux. Sistem operasi Linux adalah digemari oleh pengaturcara, kerana ia hanya sejuk, kan? Banyak edaran Linux moden mempunyai antara muka pengguna grafik, yang kita juga memanggil GUI, G-U-I, untuk membolehkan berdasarkan tetikus navigasi yang mudah, yang anda mungkin biasa dengan, jika anda seorang pengguna Windows atau Mac, bergerak tetikus anda, double-klik pada ikon, dan sebagainya. Masih walaupun, sebagai seorang programmer, dan walaupun IDE mengandungi keupayaan untuk melakukan beberapa pengguna grafik barangan, klik, dan mengheret, dan semua itu, anda masih akan menggunakan anda tetingkap terminal agak kerap. Dan anda boleh melakukan banyak tugas-tugas yang sama yang anda boleh lakukan dengan tetikus dengan arahan papan kekunci. Dan kita akan bercakap sedikit tentang apa yang sebahagian daripada mereka arahan berada sekarang. Sekarang, arahan ini boleh digunakan di mana-mana operasi berasaskan Unix sistem, termasuk Linux, tetapi juga termasuk Mac OS. Jika anda membuka Terminal pada Mac anda, anda boleh menggunakan arahan yang tepat. Windows juga mempunyai Command Yang cepat, tetapi beberapa arahan yang sedikit berbeza, jadi itu tidak benar-benar bekerja, kerana Windows tidak sistem berasaskan Unix. Jadi mari kita lihat beberapa ini arahan Linux. Yang pertama yang anda akan mungkin menggunakan agak banyak adalah ls. Itu satu l huruf kecil, diikuti dengan huruf kecil s, yang pendek untuk senarai. Dan apa arahan senarai tidak adalah ia memberikan bacaan semua fail dan folder dalam direktori semasa anda. Jadi, anda boleh melihat semua yang anda boleh dapat dari mana anda sedang berada. Jadi saya telah dibuka di sini IDE CS50. Dan saya akan untuk zum masuk dalam kedua untuk memberikan anda melihat dengan lebih dekat, tetapi di sini adalah gambaran yang apa IDE kelihatan seperti. Di sebelah kiri, anda boleh melihat kita mempunyai pokok fail, yang anda mungkin kenal, mengklik dua kali, dan fail dan folder, dan semua barangan itu. Jadi, itu masih ada perkakas CS50. Di pusat itu di bahagian atas adalah di mana anda berada akan menulis kod anda, sebaik sahaja anda klik pada fail. Dan di bahagian bawah, kita mempunyai tingkap terminal, yang mana kita boleh melaksanakan ini arahan terminal. Saya akan zum masuk dan menuju di sini, hanya menunjukkan bahawa, sebenarnya, saya boleh klik pada fail-fail dan folder. Jadi jelas, di mana saya kini adalah, saya mempunyai dua folder, yang dipanggil pset0 dan pset1, dan tiga gambar, dipanggil hello, satu dipanggil hello.c, dan satu dipanggil hello.txt. Jadi mari kita bergerak ke bawah ke terminal tingkap dan melihat dengan lebih dekat. Oleh itu, kita hanya bercakap, sekali lagi, kira-kira Hakikat bahawa kita mempunyai tiga fail dan dua folder dalam direktori semasa. Saya menaip ls, yang sekali lagi adalah arahan untuk menyenaraikan kandungan semasa direktori, dan kemudian saya tekan Enter, melihat apa yang saya lihat, hello, hello.c, hello.txt, pset0 dan pset1. pset0 dan pset1 adalah berwarna biru, untuk menunjukkan kepada anda bahawa mereka adalah direktori bahawa kita boleh menavigasi ke dalam. Dan kita akan belajar sedikit sedikit tentang bagaimana untuk mengemudi ke dalam direktori dalam satu minit. Dan setiap benda lain itu berwarna hitam, jika ia adalah fail teks atau kod sumber fail, dan hijau, jika ia adalah fail boleh laku. Jadi jelas, ini bermakna bahawa saya boleh menjalankan program yang dipanggil, hello. Itulah apa yang hijau terdapat bermakna. Tetapi pada dasarnya, menaip arahan ls telah membenarkan saya untuk melihat segala-galanya yang wujud di dalam direktori semasa saya, yang sepadan dengan apa yang kita lihat di sini, dalam paparan grafik yang sama. Arahan seterusnya anda akan mungkin menggunakan agak sedikit adalah cd, huruf kecil c, huruf kecil d, yang pendek untuk direktori perubahan. Ini membolehkan kita untuk melakukan apa yang saya bercakap mengenai kedua yang lalu, yang adalah untuk mengemudi antara direktori dengan titah talian, berbanding dengan mengklik dua kali pada folder. Jadi, jika kita menaip cd dan kemudian nama direktori, kita boleh masuk ke dalam direktori. Sebagai mengetepikan, tahu bahawa nama direktori semasa sentiasa dot, dan nama direktori satu tahap di atas di mana kita sekarang, yang adalah nama folder dalam yang folder kita, dot, dot-- atau di mana folder kita, adalah dot, dot. Dan jika anda pernah ingin tahu tentang nama direktori anda, anda boleh menaip pwd, yang berdiri untuk direktori kerja ini. Kami akan mengambil lihat pada semua ini sekarang, dengan menuju kembali ke IDE CS50. Jadi saya kembali di ruang kerja saya sekarang. Dan saya akan zum masuk sekali lagi di terminal, jadi kita boleh melihat dengan di bergerak dalam IDE. Jadi saya akan menyenaraikan kandungan direktori saya lagi, hanya untuk reground kami dalam mana kita berada. Jadi, jika saya menaip ls, yang adalah untuk senarai lagi, Saya melihat bahawa saya boleh mendapatkan untuk pset0 dan pset1. Mereka adalah direktori Saya boleh mendapatkan untuk dari sini. Saya tahu, kerana IDE memberikan saya petunjuk oleh mewarnakannya biru. Katakan yang saya ingin masuk ke dalam direktori pset1 saya, kerana saya bekerja pada masalah menetapkan 1. Saya boleh menaip cd-- lagi, pendek untuk menukar ruang directory--, pset1. Dan jika saya tekan Enter, melihat apa yang berlaku. Ia tidak kelihatan seperti banyak yang telah berlaku. Tetapi jika anda melihat penggunaan di segera, ia kini memberitahu saya bahawa saya dalam ~ / ruang kerja / pset1. Saya telah menavigasi ke pset1 yang folder yang dalam ruang kerja saya. Dan jika saya menaip ls, saya melihat beberapa barangan yang berbeza di sini, bukan? Ini tidak sama senarai yang saya lihat sebelum ini. Saya telah menavigasi ke pset1. Dan sekarang, apabila saya menaip ls, Saya mendapat konteks apa yang boleh saya lihat dari dalam folder pset1 itu. Sekarang, saya akan menaip kawalan l, yang hanya membersihkan skrin. Dan saya akan menyenaraikan kandungan direktori lagi, supaya anda boleh lihat. Saya hanya mahu berbuat demikian kepada membersihkan beberapa perkara yang yang kaulihat itu, turun di bawah dan untuk mengelakkan perkara ini daripada pergi terlalu jauh ke bawah di luar liputan. Sekarang, saya berkata sebelum ini bahawa, jika saya ingin untuk menavigasi ke direktori semasa, Saya boleh menaip ruang cd titik. Tekan Enter. Ia tidak berbuat apa-apa, kan? Saya menukar direktori untuk direktori semasa. Anda tidak sentiasa akan mencari keperluan untuk titik tunggal, tetapi anda akan sekali-sekala. Mari kita mengatakan bahawa saya mahu untuk bergerak ke atas satu tahap. Saya hendak kembali kepada direktori ruang kerja saya. Saya tidak boleh menaip cd ruang kerja, tidak ada fail atau direktori tersebut. Dan sebab bahawa- saya menaip ls satu time-- lebih adalah bahawa tidak ada direktori dipanggil ruang kerja di dalam direktori pset1 saya. Saya akan membersihkan saya menyaring lagi dengan kawalan l. Ingat apa yang saya katakan sebelum ini, walaupun, kita yang boleh menavigasi kembali dengan dot, dot. Itulah nama direktori induk. Jadi, jika saya menaip cd, ruang, dot, dot, dan kemudian tekan Enter, kini melihat apa yang berlaku. Command prompt saya memberitahu saya bahawa saya kembali dalam direktori ~ / ruang kerja saya. Saya berpindah ke satu tahap, terima kasih kepada dot, dot. Sekarang, mari kita mengatakan bahawa saya menggunakan sistem operasi yang berasaskan Linux, tetapi tidak semestinya beritahu saya di mana saya. Yang ini berlaku untuk memberitahu kita bahawa Saya dalam ~ / ruang kerja sekarang, kerja, prompt. Tetapi saya boleh menjadi benar-benar hilang dalam keadaan kucar-kacir folder, dan saya tidak tahu di mana saya dan tidak tahu di mana saya mahu kembali kepada. Ada dua perkara yang boleh saya lakukan. Pertama sekali, saya boleh memikirkan di mana saya, dengan menaip pwd. Itulah direktori kerja saya sekarang. Dan jika saya tekan Enter, ia memberitahu saya betul-betul di mana saya. Sekarang / rumah / ubuntu adalah cara lama untuk mengatakan, tilde, yang adalah direktori rumah anda. Tetapi ia memberitahu saya bahawa saya dalam rumah / ubuntu / ruang kerja, atau ~ / ruang kerja. Saya akan pergi ke direktori pset1 saya sekali lagi, dan saya akan menyenaraikan kandungan. Dan saya melihat bahawa saya mempunyai satu lagi direktori yang dinamakan tambahan. Jadi saya akan cd ke dalam tambahan, dan maka saya akan mengosongkan skrin saya. Oleh sebab itu, saya cukup jauh, bukan? Bagaimana jika saya mahu menyandarkan untuk ruang kerja serta-merta? Ada beberapa perkara yang saya boleh lakukan. Saya boleh menaip cd, dot, dot, slash, dot, dot, untuk bergerak ke atas satu tahap dan kemudian tahap yang lain. Tetapi itulah jenis menjengkelkan. Jadi, jika saya pernah mahu kembali kepada hanya saya direktori rumah, tilde, Saya boleh menaip cd dengan apa-apa selepas itu. Cd, Enter. Dan sekarang, saya dalam tilde. Dan jika saya mahu ke ruang kerja, Saya hanya boleh menaip cd ruang kerja. Dan itulah bagaimana anda bekerja menukar direktori dalam IDE CS50 atau mana-mana Linux sistem operasi pada baris arahan. Baiklah. Yang seterusnya yang mungkin sangat berguna adalah mkdir, yang pendek untuk membuat direktori, jika saya perlu membuat folder baru. Jika anda biasa dengan sistem operasi GUI, anda mungkin klik kanan. Kemudian, apabila menu konteks timbul, pilih Folder Baru. Itu mungkin bagaimana anda telah melakukannya sebelum ini. Tetapi kita juga boleh membuat direktori pada baris arahan. Oleh itu, kita kembali dalam IDE. Saya akan zum masuk pada terminal dan senarai kandungan direktori saya lagi, hanya untuk memberi kita rangka rujukan. Mari kita mengatakan bahawa, kini, saya telah selesai bekerja pada masalah set 0 dan masalah set 1. Jadi saya ingin membuat direktori baru bekerja selama masalah set 2. Bagaimana saya boleh berbuat demikian? Nah, sekali lagi, saya boleh klik kanan dalam sebelah kiri sana dan pilih New Folder dan mewujudkan direktori pset2. Yang akan bekerja juga. Tetapi saya juga melakukannya pada baris arahan cantik dengan cepat, dengan menaip mkdir, saya space-- ditaip n, but-- ruang pset2. Jika saya tekan Enter dan kemudian saya menyenaraikan kandungan direktori saya sekali lagi, Saya melihat bahawa, lihatlah, Saya mempunyai folder pset2. Dan saya boleh menavigasi ke dalam bahawa menggunakan cd dan jangan semua kerja yang saya perlu lakukan untuk pset2. Secara kebetulan, saya hanya akan pop di sini benar-benar cepat ke pokok fail. Dan anda boleh melihat bahawa, juga, dalam Fail Explorer grafik, kita dapat melihat bahawa direktori pset2 yang juga telah diwujudkan di sana. Dan saya boleh mengemudi kepadanya, menggunakan GUI juga. Lain kali dan itu mungkin akan datang dalam berguna adalah cp, yang merupakan singkatan bagi salinan. Salin, tidak seperti semua yang lain arahan kita lihat sebelum ini, mengambil masa dua hujah, sumber, menamakan fail yang anda hendak salin, dan destinasi, di mana anda mahu menyalin fail ke. Ia agak mudah untuk menyalin fail, jadi mari kita berbuat demikian. Oleh itu, kita kembali dalam IDE. Saya akan menyenaraikan kandungan daripada direktori semasa saya dengan ls. Sekarang, mari kita mengatakan bahawa saya mahu untuk membuat salinan hello.txt. Sekali lagi, dari pokok fail pada kiri, antara muka grafik, Saya boleh klik kanan pada hello.txt, membuat salinan, paste salinan. Tetapi saya boleh melakukannya cukup cepat pada baris arahan juga. Katakan saya hendak salin hello.txt untuk hi.txt. Saya boleh CP, ruang, hello.txt. Itulah fail sumber saya, jadi itulah sebabnya Saya akan memilih salah satu yang pertama. Dan kemudian saya perlu menamakan fail destinasi, hi.txt. Saya tekan Enter. Dan jika saya menyenaraikan kandungan saya direktori lagi, ada hi.txt. Saya membuat salinan. Dan sebenarnya, jika saya pergi ke dalam hi.txt, saya boleh melihat bahawa ia akan menjadi satu yang tepat salinan semua yang wujud dalam fail hello.txt saya. Jadi itulah bagaimana anda menyalin fail. Tetapi bagaimana jika anda mahu menyalin direktori keseluruhan? Jadi untuk kali kedua, mari kita lihat pada apa yang di dalam direktori pset0 saya. Jika saya cd pset0 dan senarai kandungan, Saya mempunyai direktori yang dipanggil, sampel, dan fail awal, scratch.sb2. Jadi, itu baik untuk mengetahui. Oleh itu, marilah mengosongkan skrin, dan saya akan kembali ke direktori ruang kerja saya untuk kali kedua. Mari kita mengatakan bahawa, kini, saya mahu membuat salinan direktori pset0 saya. Saya tidak boleh hanya berkata cp pset0 pset3, misalnya. Anda mendapat mesej pelik ini, meninggalkan direktori pset0. Mengapa anda mendapat mesej itu? Nah, ternyata bahawa, apabila anda mempunyai direktori yang mempunyai hal-hal lain di dalamnya, arahan cp tidak benar-benar semestinya tahu apa yang perlu dilakukan dengan ia. Kita perlu jelas memberitahu Linux, terminal, Saya mahu anda untuk menyalin direktori pset0 dan salinan setiap folder yang wujud di dalam itu dan setiap fail yang wujud di dalamnya. Dalam erti kata lain, saya memerlukan anda untuk rekursif menyelam jauh ke dalam pset0 dan membuat salinan segala-galanya di sana. Jika saya mahu berbuat demikian, apa yang saya boleh lakukan adalah cp-r untuk rekursi, pset3 pset0. Tekan Enter. Sekarang, jika saya menyenaraikan kandungan direktori saya, Saya melihat ada pset3 yang direktori yang saya boleh bekerja dengan. Dan jika saya ke dalam cd pset3 sekarang dan kemudian senarai kandungan, melihat, ada sampel dan scratch.sb2 lagi. Jadi, itu agak sejuk. Jadi itulah bagaimana anda boleh menyalin keseluruhan yang direktori, dan bukan hanya satu fail. Jadi jika anda mahu untuk menyalin direktori, hanya ingat menggunakan bendera -r apabila anda berada bekerja dengan arahan cp. Baiklah. Jadi saya telah disalin fail, tetapi Saya telah melakukannya dengan tidak sengaja. Dan sekarang, saya ingin mendapatkan membuangnya. Bagaimana saya boleh berbuat demikian? Sekali lagi, jika anda biasa dengan antara muka GUI, anda boleh klik kanan dan hanya memilih Padam. Dan ia akan hantar ke sampah atau Recycle Bin. Tetapi pada baris arahan, kita hanya boleh menaip rm, untuk mengeluarkan, dan kemudian nama memfailkan kita mahu menyingkirkan. Sekarang, rm adalah sangat berhati-hati. Ia melakukan banyak dua memeriksa, memastikan bahawa anda benar-benar mahu memadam fail. Ia tidak mahu membuat sebarang kesilapan, kerana tidak ada Recycle Bin sini. Apabila kita memadam fail, ia pergi. Dan ada benar-benar ada cara untuk mendapatkannya kembali. Oleh itu, kita perlu menjadi cantik berhati-hati, dan sebagainya rm akan menjadi benar-benar berhati-hati untuk kita. Oleh itu, marilah kita kembali kepada IDE dan buang fail hi.txt bahawa saya dicipta minit yang lalu dengan salinan. Oleh itu, kita berada dalam IDE. Dan saya menyenaraikan kandungan direktori saya lagi, hanya untuk memberikan kita beberapa konteks. Maksud saya, anda boleh melihat bahawa ada hi.txt, yang saya buat sementara waktu lalu. Sekarang, saya mahu untuk mendapatkan membuangnya. Bagaimana saya melakukannya? Sekali lagi, hanya rm. Jadi saya boleh menaip rm hi.txt dan tekan Enter. Dan ada rm makhluk benar-benar berhati-hati untuk kita dan memastikan kita benar-benar mahu memadam fail ini. Adakah anda benar-benar mahu mengeluarkan tetap fail hi.txt kosong? Itu hanya seperti operasi yang sistem, seperti Windows atau Mac, yang mungkin menjadi biasa dengan bermunculan kotak yang mengatakan yang anda benar-benar pasti anda mahu melakukan ini. Saya agak pasti saya mahu ini, jadi saya akan menaip, yes-- atau saya juga boleh hanya menaip y-- dan tekan Enter. Dan jika saya menyenaraikan kandungan saya direktori lagi, hi.txt hilang. Boleh tahan, bukan? Mari kita L akhbar Kawalan, hanya untuk menghilangkan semua barangan ini dan membawa kita kembali bahagian atas skrin. Sekarang, terdapat satu cara untuk litar pintas rm, jadi bahawa ia tidak meminta kami soalan itu. Kami benar-benar tahu kita mahu untuk menghilangkan fail itu, dan kami tidak mahu boleh ditanya soalan. Bagaimana kita berbuat demikian? Nah, kita boleh menentukan bendera tambahan, sama seperti kita lakukan dengan cp di mana kita boleh menambah bendera -r, untuk secara rekursif menyalin ke dalam direktori. Ada bendera lain untuk rm, iaitu f, iaitu untuk memaksa rm untuk melakukan perkara apa yang kita memberitahu ia lakukan. Jadi katakan itu, kini, saya mahu untuk menghilangkan fail hello.txt saya. Saya tidak mahu satu yang sama ada. Apa yang boleh saya lakukan? Well, saya boleh rm hello.txt f. Apa yang anda fikir adalah akan berlaku di sini? Ia pergi. Adakah tidak bertanya kepada saya soalan. Dan sebenarnya, jika saya menyenaraikan kandungan daripada direktori saya sekali lagi, ia pergi. Tidak ada buat asal di sini. hello.txt hilang, dan saya tidak walaupun bertanya jika saya mahu untuk memadamnya. Bagaimana jika saya mahu menyingkirkan sebuah direktori keseluruhan? Cara anda berbuat demikian adalah hampir sama dengan menyalin. Jika anda ingin memadam direktori, anda tidak hanya mahu memadam direktori, anda mahu untuk memadam segala-galanya di dalamnya. Dan supaya anda menggunakan -r, untuk rekursif memadam direktori. Jadi mari kita rm pset2 -r. Saya tidak benar-benar bekerja pada pset2, jadi saya boleh menghilangkan direktori. Saya tekan Enter. Adakah saya mahu mengeluarkan direktori, pset2? Ya saya. Dan jika saya menyenaraikan kandungan direktori saya sekali lagi, ia pergi. Semua betul? Satu perubahan yang lebih pada tema ini. Jadi saya akan mengosongkan skrin sekali lagi, meletakkan segala-galanya di bahagian atas. Hit ls. Sekarang, saya mahu untuk menghilangkan daripada direktori pset3 saya, dan saya benar-benar tahu saya mahu menghilangkan direktori pset3 saya. Saya boleh secara berulang dan secara paksa membuang direktori pset3 saya. Sekarang, anda akan benar-benar berhati-hati apabila anda menggunakan rm -rf. Seperti yang anda program lagi, ia akan menjadi sesuatu yang anda hanya melakukan benar-benar cepat. Dan sebenarnya, saya melakukannya sepanjang masa. Tetapi ia boleh membawa kepada beberapa kesan buruk, jika anda secara tidak sengaja memadam perkara yang salah. Jadi saya mahu anda sedar bahawa ini adalah pilihan yang disediakan untuk anda, tetapi menggunakannya dengan berhati-hati, dan menggunakannya dengan berhati-hati. Saya tahu hakikatnya saya tidak bekerja pada masalah saya menetapkan 3 lagi, jadi saya akan menghapuskan semua fail-fail. Dan saya tahu saya tidak mahu ditanya setiap kali jika saya mahu memadam fail, jadi saya akan ke rm pset3 -rf. Adakah tidak bertanya kepada saya jika saya mahu mendapatkan membuangnya. Saya memukul ls. pset3 hilang. Jadi itu sahaja variasi yang boleh gunakan untuk menghilangkan fail dengan rm. Arahan terakhir baris arahan itu akan cukup berguna untuk anda adalah mv, yang pendek untuk bergerak. Pindah Adakah pada dasarnya sama dengan menamakan semula. Ia bergerak fail dari satu lokasi ke lokasi lain, sumber ke destinasi. Mari kita lihat di mana menggunakan kekuatan langkah menjadi berguna di tingkap terminal. Jadi saya di pset1 saya direktori, dan saya dapati sesuatu yang telah pergi yang salah sedikit. Saya telah bekerja pada masalah tamak saya, tetapi saya tidak sengaja menamakannya Greddy. Oleh itu, apabila saya cuba dan menjalankannya melalui check50, ia tidak benar-benar berkesan. Saya mempunyai beberapa pilihan. Kita boleh melakukan apa yang kita lakukan sebelum ini, iaitu untuk membuat salinan fail. Saya boleh menyalin greddy.c untuk greedy.c, bukan? Tekan Enter. Saya melihat bahawa kedua-dua fail yang ada. Dan kemudian saya boleh rm, untuk membuang, greddy.c. Yang mendapat membuangnya. Jadi yang akan bekerja, selepas saya mengesahkan yang saya ingin membuangnya. Dan saya berkesan mempunyai greddy.c dinamakan semula kepada greedy.c. Saya disalin, dan kemudian dikeluarkan asal. Tetapi itu adalah satu proses pelbagai langkah. Dan demi sesungguhnya, ada cara yang lebih baik. Malah, ada. Jadi mari kita memukul Kawalan L, hanya untuk membawa balik sehingga ini, dan senarai kandungan daripada direktori saya sekali lagi. Jadi katakan, oh, saya membuat kesilapan. Saya benar-benar benar-benar tidak mahu untuk memanggil fail greddy.c. Dalam satu kali kejadian, saya boleh menaip bergerak greedy.c untuk greddy.c. Tekan Enter. Dan sekarang, saya tidak mempunyai untuk menyalin dan mengeluarkannya, Saya hanya dapat menamakan semula. Sehenti membeli-belah. Kini, terdapat banyak lain kemudahan asas baris arahan yang boleh anda gunakan dengan baris arahan Linux. Dan kita akan membincangkan banyak daripada mereka pada masa hadapan dalam CS50. Tetapi untuk sekarang, hanya mendapat kaki anda basah dengan bekerja dengan terminal ini alam sekitar, lima arahan perlu mendapatkan anda cukup jauh dalam mengemudi di sekitar dan bekerja dengan fail dalam IDE anda atau dalam apa sahaja yang berasaskan Linux sistem operasi yang anda gunakan. Jika anda ingin tahu dan anda mahu melihat ke hadapan sedikit di beberapa satu arahan baris arahan kita akan menggunakan pada masa depan, di sini ialah senarai pasangan orang-orang yang lebih biasa. Saya Doug Lloyd. Ini adalah CS50.