10 Perintah Unix yang harus diketahui oleh pengguna Mac dan Linux

GUI hebat — kami tidak mahu hidup tanpa mereka. Tetapi jika anda pengguna Mac atau Linux dan anda ingin memanfaatkan sepenuhnya sistem operasi anda (dan penekanan kekunci anda), anda berhutang kepada anda untuk berkenalan dengan baris arahan Unix. Titik dan klik sangat bagus setiap kali anda perlu melakukan sesuatu sekali atau dua kali. Tetapi jika anda perlu mengulangi tugas itu berkali-kali, baris perintah adalah penyelamat anda.

Baris arahan adalah tetingkap ke dalam kekuatan komputer anda yang hebat dan hebat. Sekiranya anda ingin membebaskan diri daripada kekangan GUI atau berpendapat bahawa memprogram atau mentadbir mesin jarak jauh adalah masa depan anda, maka mempelajari baris arahan Unix pasti sesuai untuk anda.

Jangan bimbang jika arahan Unix kelihatan seperti mantera ajaib atau dalaman sistem misteri sepertinya tidak dapat anda fahami. Mereka tidak begitu sukar untuk belajar, dan artikel ini akan memberi anda 10 arahan penting yang anda perlukan untuk memulakan. Tidak lama kemudian, tali kripto ini akan menjadi sifat kedua.

Asas shell

Shell baris arahan Unix kira-kira setara dengan tetingkap arahan di Microsoft Windows (cmd atau PowerShell). Perintah yang kita jalankan di bawah ini akan berfungsi pada sistem seperti Unix, termasuk Linux, Darwin (asas MacOS), FreeBSD, dan juga Windows dengan sesuatu seperti Git Bash atau shell Bash baru di Windows 10. Pilihan dan outputnya berbeza-beza sedikit, tetapi anda tidak perlu menghadapi masalah untuk memahaminya.

Pertama, anda mesti membuka cengkerang, kadang-kadang dipanggil tetingkap terminal. Selalunya pengedaran Unix meletakkan ini di bawah menu Pentadbiran atau Sistem. Di MacOS, anda akan menemui terminal di Aplikasi> Utiliti> Terminal. Semasa melancarkannya, anda akan melihat sesuatu seperti ini:

Skrin ini, dari MacOS 10.11, adalah tipikal dari kebanyakan cengkerang dalam GUI. Di bahagian atas tetingkap kita melihat jenis shell, dalam hal ini Bash (Bourne Again Shell, yang merupakan shell default di MacOS dan kebanyakan distribusi Linux), dan ukuran tetingkap. Di dalam tetingkap terdapat petunjuk, dalam hal ini dikonfigurasikan untuk menampilkan nama mesin ( Mercury), nama direktori kerja saat ini (di sini tilde ~, yang merupakan singkatan dari direktori rumah pengguna), nama pengguna, dan akhirnya simbol segera ($). Perhatikan bahawa permintaan anda akan berubah semasa anda bergerak di sekitar sistem fail atau jika anda menjadi pengguna yang berbeza pada mesin anda (seperti root atau superuser untuk menjalankan perintah pentadbiran). Petunjuk memaparkan maklumat ini, supaya anda dapat mengetahui dengan mudah di mana dan siapa anda berada di mana-mana mesin.

Perlu diketahui bahawa terdapat dua rasa utama shell Unix: shell Bourne dan C. Bourne dan syarikat berasal dari AT&T Unix yang asli, sementara shell C berasal dari University of California di Berkeley dan BSD Unix. Umumnya derivatif shell Bourne dan C baik untuk kerja interaktif di terminal. Shell standard POSIX, shell Korn, adalah shell yang ingin anda gunakan untuk menulis program anda sendiri di shell, yang disebut skrip. Kami menggunakan shell Bash untuk contoh dalam tutorial ini.

Persekitaran shell

Salah satu fakta pertama yang perlu difahami mengenai bekerja pada baris arahan Unix adalah bahawa shell beroperasi di persekitarannya sendiri. Memahami cara mengawal persekitaran shell adalah bahagian penting untuk menjadi cekap di baris perintah. Mari lihat persekitaran menggunakan envarahan:

Jangan bimbang untuk memahami semua pemboleh ubah persekitaran sekarang, tetapi ketahui bahawa ada di dalamnya Anda harus mengenali beberapa pemboleh ubah sudah. Sebagai contoh, SHELL=/bin/bashmemberitahu kami bahawa kami menggunakan shell Bash. HOME=/Users/nunezmenentukan lokasi direktori rumah pengguna. Anda boleh mengubah atau membuat pemboleh ubah persekitaran, dan anda sering melakukannya. Berikut adalah contoh menetapkan pemboleh ubah persekitaran yang disebut FOOdan menampilkan nilainya:

Seperti yang anda lihat, secara konvensional kami meletakkan pemboleh ubah dalam huruf besar. Perhatikan bagaimana kita merujuk pemboleh ubah persekitaran ketika kita menggunakannya dalam perintah, dengan yang sebelumnya $. Yang $memberitahu jurubahasa arahan untuk menggunakan nilai pembolehubah. Tanpa $, yang echoperintah di atas hanya akan mencetak nama pembolehubah, FOO.

Perintah Unix

Tidak kira shell mana yang anda gunakan, setiap kali anda mengetik perintah di shell, anda akan menyebabkan program Unix dijalankan. Falsafah reka bentuk Unix adalah untuk membuat program yang dapat melakukan satu perkara dengan baik dan mengaitkan (atau "paip") bersama-sama untuk melakukan kerja yang berguna. Mari kita lihat contoh mudah untuk menghitung jumlah fail di direktori / etc (kita akan melihat bagaimana untuk berpindah ke direktori / etc di kemudian hari):

Urutan arahan ini menggambarkan dua konsep penting: perpaipan dan pilihan. The lsarahan (bersamaan dengan dirperintah dalam Windows) memaparkan kandungan direktori, dan  wc(jumlah perkataan) bilangan perkataan. Perhatikan bar menegak di antara mereka? Itulah watak paip. Pipa mengambil output dari perintah pertama dan mengarahkannya sebagai input ke perintah kedua. Anda boleh mengaitkan sebilangan perintah bersama di Unix dengan menghubungkan satu sama lain dengan paip.

Perkara kedua yang perlu diperhatikan adalah pilihan yang diberikan untuk setiap arahan. Di Unix, pilihan secara tradisinya diawali dengan satu huruf kecil , -. Pilihan baris arahan ini mengubah tingkah laku arahan. Dalam contoh ini, -l pilihan untuk lsberarti mengeluarkan isi direktori dalam format "panjang", sementara –lpilihan untuk wcberarti menghitung "baris" dan bukan kata-kata. Dalam bahasa Inggeris arahan ini mungkin dibaca:

Senaraikan bilangan baris dalam direktori semasa dan kemudian hantarkan ke program penghitungan kata untuk menghitung jumlah baris.

Selalunya pilihan baris perintah ini mengatasi lalai yang ditetapkan di persekitaran. Sekiranya anda ingin mengubah cara perintah bertindak secara tetap, anda boleh menetapkan pemboleh ubah persekitaran secara automatik semasa anda log masuk. Banyak arahan membolehkan anda menggabungkan pilihan dalam satu rentetan — misalnya, ls -la—tetapi yang lain tidak. Anda boleh mengetahui tentang semua pilihan perintah dengan memeriksa manualnya atau "halaman man" (yang kita bincangkan di bawah).

Belajar dan menggunakan pilihan baris perintah adalah sebahagian besar kecekapan di baris perintah Unix. Beberapa arahan mempunyai begitu banyak pilihan sehingga dokumentasi berjalan hingga berpuluh-puluh halaman. Jangan biarkan itu membimbangkan anda sekarang. Anda sering memerlukan hanya beberapa pilihan untuk melakukan tugas tertentu, dan banyak pilihan digunakan hanya ketika menulis program dalam bahasa shell.

Manualnya

Setelah anda memahami asas-asas baris perintah dan persekitarannya, kita dapat mulai menyelami sistem ini dengan lebih mendalam. Tempat pertama untuk memulakan adalah dengan manual.

Salah satu aspek baik dari Unix adalah kualiti dokumentasi yang tinggi. Terdapat dokumentasi untuk pengguna, pentadbir sistem, dan pembangun perisian. Anda mengakses dokumentasi dengan manarahan. Mari mulakan dengan membaca manual untuk manual (masukkan man manpada baris arahan):

Manual dibahagikan kepada lapan bahagian, yang sedikit berbeza bergantung pada sama ada anda menggunakan Unix jenis BSD / Linux / Mac atau Sistem V. Sangat berguna untuk memulakannya dengan membaca pengenalan untuk setiap bahagian, dan anda boleh melakukannya dengan mantra seperti man -s 1 intro, yang bermaksud untuk melihat di bahagian 1 untuk mencari halaman manual yang disebut "intro":

Sekiranya anda tidak pasti arahan apa yang anda cari, anda boleh mencuba -fdan -kpilihannya. akan memberitahu anda fungsi arahan jika anda mengetahui namanya, sementara akan menyenaraikan nama-nama arahan yang relevan berdasarkan satu atau lebih kata kunci. Kedua-dua pilihan akan mencari pangkalan data terbina dalam (jika telah dikonfigurasi; biasanya ada) dan mengembalikan semua padanan. Sebagai contoh, akan memaparkan halaman manual yang bermula dengan rentetan :man –f command man –k hint man –k bzerbz

Sistem fail

Terdapat banyak perintah yang berkaitan dengan sistem fail Unix, kerana ini adalah inti dari sistem operasi. Kami melihat salah satu daripadanya sebelumnya:, lsyang menyenaraikan fail dalam direktori:

The lsarahan mungkin arahan yang paling kerap digunakan sekali, dan ia mempunyai banyak pilihan untuk menyesuaikan output. Satu pilihan yang ingin anda ketahui dengan segera ialah ls -a(senaraikan semua). Ini akan mendedahkan fail "dot" (fail atau direktori yang namanya dimulai dengan titik atau titik), yang tersembunyi secara lalai. Fail atau direktori ini biasanya mengandungi maklumat konfigurasi atau fail log untuk sistem Unix. Fail .bash_history, misalnya, mencatat semua arahan yang anda masukkan pada baris arahan.

Perintah lain yang anda perlukan segera adalah cdperintah, yang anda gunakan untuk menukar direktori. Ini serupa dengan perintah yang sama di Windows, tetapi dengan perbezaan yang penting. Di Unix, semua pemacu (peranti) muncul sebagai pemacu tunggal. Manakala di Windows anda mungkin mempunyai gambar anda pada cakera keras luaran yang muncul sebagai E :, di Unix pemacu itu mungkin / home / user / gambar. Semua fail pada sistem Unix diakses melalui jalan yang dimulai dengan / (direktori root), dan anda dapat memasang hard drive yang berlainan pada titik yang berlainan dalam sistem file sesuai dengan kebutuhan anda.

Sebelum anda mula berkeliaran di sistem fail, izinkan saya memperkenalkan perintah lain yang anda perlukan: pwd(mencetak direktori kerja). Kerana terdapat banyak tempat yang tersesat dalam sistem fail yang semakin meningkat, perintah ini membolehkan anda dengan cepat menentukan di mana anda berada. Mari beralih direktori ke lokasi di mana fail konfigurasi sistem disimpan dan sahkan lokasi kami:

Perhatikan bahawa anda boleh menggunakan cdperintah tanpa argumen untuk cepat kembali ke direktori rumah anda. Petua lain: Alat ~ini boleh digunakan sebagai jalan pintas untuk merujuk ke direktori rumah anda dalam shell Bash dan C. 

Pada ketika ini anda tahu bagaimana untuk bergerak di sekitar sistem fail dan menyenaraikan kandungan direktori. Sekarang kita memerlukan kaedah untuk membaca fail yang disimpan di dalamnya. Hari ini kebanyakan sistem dilengkapi dengan lessarahan untuk ini. lessakan memaparkan halaman fail demi halaman dan membolehkan anda menavigasi menggunakan perintah Vi (tekan juntuk bergerak ke bawah, kuntuk bergerak ke atas, huntuk mendapatkan bantuan, dan qkeluar dari fail).

Mari lihat apa yang ada dalam fail / etc / passwd kami dengan memasukkan less /etc/passwd:

Fail passwd menyenaraikan akaun pengguna pada sistem Unix, bersama dengan nombor ID pengguna dan kumpulan mereka, direktori rumah mereka, dan jalan ke perintah atau shell yang sesuai. Walau bagaimanapun, di MacOS, anda hanya akan menemui akaun perkhidmatan sistem dalam kata laluan. Ini kerana pengguna manusia dikonfigurasi di bawah Pengguna & Kumpulan dalam Keutamaan Sistem MacOS.

Ruang cakera

Kehabisan ruang cakera adalah proses beransur-ansur yang mungkin memakan masa bertahun-tahun, tetapi masih dapat membuat anda lengah. Terdapat dua perintah yang dapat Anda gunakan untuk memeriksa ruang kosong anda dan menentukan fail mana yang memonopoli cakera anda: du(penggunaan cakera) dan df(bebas cakera). Mereka berdua mengambil -hpilihan (boleh dibaca manusia). Untuk mengetahui betapa penuhnya cakera anda, gunakan dfarahan:

Buat masa ini, fokus pada %iuseddan mounted onlajur. Ini menunjukkan bahawa direktori rumah saya penuh 92 peratus, jadi saya mungkin harus membersihkannya. Tetapi bagaimana saya tahu di mana semua ruang digunakan? Itulah duuntuk:

Untuk contoh ini, saya menggunakan mantra yang menghadkan output ke 10 baris pertama. Jika tidak, duakan menyenaraikan setiap direktori di mesin, yang mudah difahami. Dari senarai ini anda dapat melihat berapa banyak ruang yang digunakan oleh setiap direktori. Anda mungkin juga melihat bagaimana, dengan mengikat beberapa perintah bersama-sama, kita dapat dengan mudah mengumpulkan skrip yang akan menyenaraikan 10 direktori teratas dengan penggunaan ruang. Perintah yang kita perlukan untuk menyusun output tentu saja sortperintahnya.

Kerana versi MacOS sorttidak dapat menangani duoutput yang dapat dibaca manusia, saya menggunakan -mopsi untuk dumenampilkan penggunaan cakera dalam megabyte (gunakan opsi -gatau -kuntuk ditampilkan dalam gigabyte atau kilobyte). Pilihan -ndan -rpilihan untuk sortmenyusun output secara berangka dan terbalik, jadi direktori terbesar akan muncul di bahagian atas senarai.

Superuser, su, dan sudo

Sejumlah arahan berkaitan dengan pentadbiran sistem. Cuba taip man -s 8 intrountuk pengenalan kepada mereka. Saya akan memberikan anda satu arahan penting untuk pentadbiran sistem di sini: su. Ini bermaksud "pengguna super" dan merujuk kepada pengguna pentadbiran atau akaun root. Semua fail milik sistem dimiliki oleh pengguna ini, dan anda perlu menjadi pengguna ini untuk menjalankan pentadbiran.

Perintah yang berkaitan sudo, membolehkan anda menjadi pengguna super untuk satu perintah. Mengapa menggunakan sudobukan su? Kerana praktik terbaik menentukan bahawa anda tidak menjadi pengguna root, dengan kekuatan untuk melakukan kerosakan yang tidak dapat diperbaiki secara tidak sengaja. Anda pasti mahu melakukan semua yang anda boleh lakukan sebagai pengguna biasa dan menjadi pengguna super hanya apabila anda memerlukannya. Tepat bagaimana anda memperoleh keistimewaan pengguna super akan bergantung pada pengedaran Unix anda. Mari lihat cara sukerjanya di MacOS:

Hah? Saya pasti saya menaip kata laluan dengan betul. Apa yang berlaku di sini adalah bahawa pengguna saya sekarang nunez, tidak mempunyai kebenaran untuk su. Pada beberapa Unix ini bermakna pengguna perlu berada dalam wheelkumpulan, dan pada sistem lain (termasuk MacOS) pengguna perlu berada dalam sudoersfail.

Mari kita selesaikan dengan menambah nunezkepada sudoers, yang akan memberikan anda rasa mengedit fail pada baris arahan. Pengguna hebat menyanyikan pujian editor Emacs dan Vi, dan saya mendorong anda untuk mencubanya, tetapi kami akan menggunakan Nano di sini. Nano mudah dipelajari dan digunakan, dan MacOS dan banyak distro Linux disertakan dengan pemasangannya.