[ditandai buku] Bash untuk pemula: 21 arahan berguna

Bahan, terjemahan yang kami terbitkan hari ini, bertujuan untuk mereka yang ingin menguasai baris arahan Linux. Keupayaan untuk menggunakan alat ini dengan berkesan dapat menjimatkan banyak masa. Khususnya, kita akan bercakap tentang shell Bash dan 21 arahan berguna di sini. Kami juga akan bercakap tentang cara menggunakan bendera arahan dan alias Bash untuk mempercepatkan menaip arahan yang panjang.

[ditandai buku] Bash untuk pemula: 21 arahan berguna

β†’ Juga baca dalam blog kami satu siri penerbitan tentang skrip bash

Terma

Semasa anda belajar untuk bekerja dengan baris arahan Linux, anda akan menghadapi banyak konsep yang berguna untuk mengemudi. Sesetengah daripada mereka, seperti "Linux" dan "Unix", atau "shell" dan "terminal", kadangkala keliru. Mari kita bercakap tentang ini dan istilah penting lain.

Unix ialah sistem pengendalian popular yang dibangunkan oleh Bell Labs pada tahun 1970-an. Kod dia ditutup.

Linux ialah sistem pengendalian seperti Unix yang paling popular. Ia kini digunakan pada banyak peranti, termasuk komputer.

Terminal (terminal), atau emulator terminal ialah program yang memberikan akses kepada sistem pengendalian. Anda boleh membuka berbilang tetingkap terminal pada masa yang sama.

Shell (shell) ialah program yang membolehkan anda menghantar arahan yang ditulis dalam bahasa khas ke sistem pengendalian.

Bash bermaksud Bourne Again Shell. Ia adalah bahasa shell yang paling biasa digunakan untuk berinteraksi dengan sistem pengendalian. Juga, cangkerang Bash adalah lalai pada macOS.

Antara muka baris arahan (Antara Muka Talian Perintah, CLI) ialah kaedah interaksi antara seseorang dan komputer, yang mana pengguna memasukkan arahan daripada papan kekunci, dan komputer, melaksanakan arahan ini, memaparkan mesej dalam bentuk teks untuk pengguna. Penggunaan utama CLI adalah untuk mendapatkan maklumat terkini tentang entiti tertentu, seperti fail, dan untuk bekerja dengan fail. Antara muka baris arahan harus dibezakan daripada antara muka pengguna grafik (GUI), yang terutamanya menggunakan tetikus. Antara muka baris arahan sering dirujuk hanya sebagai baris arahan.

Skrip (skrip) ialah program kecil yang mengandungi urutan arahan shell. Skrip ditulis pada fail, ia boleh digunakan berulang kali. Semasa menulis skrip, anda boleh menggunakan pembolehubah, syarat, gelung, fungsi dan ciri lain.

Memandangkan kita telah membincangkan istilah penting, saya ingin menyatakan bahawa saya akan menggunakan istilah "Bash", "shell" dan "baris arahan" secara bergantian di sini, serta istilah "direktori" dan "folder".

Standard aliran, yang akan kami gunakan di sini ialah input standard (input standard, stdin), keluaran piawai (keluaran piawai, stdout) dan output ralat piawai (ralat piawai, stderr).

Jika dalam contoh arahan yang akan diberikan di bawah, anda akan menemui sesuatu seperti my_whatever - ini bermakna bahawa serpihan ini perlu digantikan dengan sesuatu milik anda. Sebagai contoh, nama fail.

Sekarang, sebelum meneruskan analisis arahan yang didedikasikan oleh bahan ini, mari kita lihat senarai mereka dan penerangan ringkas mereka.

21 arahan Bash

▍Mendapatkan maklumat

  • man: Memaparkan panduan pengguna (bantuan) untuk arahan.
  • pwd: memaparkan maklumat tentang direktori kerja.
  • ls: memaparkan kandungan direktori.
  • ps: Membolehkan anda melihat maklumat tentang proses yang sedang berjalan.

▍ Manipulasi sistem fail

  • cd: tukar direktori kerja.
  • touch: buat fail.
  • mkdir: buat direktori.
  • cp: Salin fail.
  • mv: Alihkan atau padam fail.
  • ln: buat pautan.

▍Ubah hala I/O dan saluran paip

  • <: ubah hala stdin.
  • >: ubah hala stdout.
  • |: memaipkan output satu arahan ke input arahan lain.

▍Membaca fail

  • head: baca permulaan fail.
  • tail: baca hujung fail.
  • cat: Baca fail dan cetak kandungannya ke skrin, atau gabungkan fail.

▍Memadam fail, menghentikan proses

  • rm: Padamkan fail.
  • kill: hentikan proses.

▍Cari

  • grep: mencari maklumat.
  • ag: perintah lanjutan untuk mencari.

▍Mengarkib

  • tar: mencipta arkib dan bekerja dengannya.

Mari kita bincangkan tentang arahan ini dengan lebih terperinci.

Butiran Pasukan

Sebagai permulaan, mari kita berurusan dengan arahan, yang hasilnya dikeluarkan dalam bentuk stdout. Biasanya keputusan ini muncul dalam tetingkap terminal.

▍Mendapatkan maklumat

man command_name: memaparkan panduan arahan, iaitu maklumat bantuan.

pwd: memaparkan laluan ke direktori kerja semasa. Semasa bekerja dengan baris arahan, pengguna sering perlu mengetahui dengan tepat di mana dalam sistem dia berada.

ls: memaparkan kandungan direktori. Perintah ini juga digunakan agak kerap.

ls -a: tunjukkan fail tersembunyi. bendera digunakan di sini -a pasukan ls. Penggunaan bendera membantu menyesuaikan tingkah laku arahan.

ls -l: Paparkan maklumat terperinci tentang fail.

Ambil perhatian bahawa bendera boleh digabungkan. Sebagai contoh - seperti ini: ls -al.

ps: Lihat proses yang sedang berjalan.

ps -e: Paparkan maklumat tentang semua proses yang sedang berjalan, bukan hanya yang dikaitkan dengan shell pengguna semasa. Perintah ini sering digunakan dalam bentuk ini.

▍ Manipulasi sistem fail

cd my_directory: tukar direktori kerja kepada my_directory. Untuk naik satu tahap dalam pepohon direktori, gunakan my_directory laluan relatif ../.

[ditandai buku] Bash untuk pemula: 21 arahan berguna
arahan cd

touch my_file: penciptaan fail my_file sepanjang laluan yang diberikan.

mkdir my_directory: buat folder my_directory sepanjang laluan yang diberikan.

mv my_file target_directory: alih fail my_file ke folder target_directory. Apabila menentukan direktori sasaran, anda perlu menggunakan laluan mutlak kepadanya (dan bukan pembinaan seperti ../).

pasukan mvjuga boleh digunakan untuk menamakan semula fail atau folder. Sebagai contoh, ia mungkin kelihatan seperti ini:

mv my_old_file_name.jpg my_new_file_name.jpg
cp my_source_file target_directory
: buat salinan fail my_source_file dan masukkan ke dalam folder target_directory.

ln -s my_source_file my_target_file: buat pautan simbolik my_target_file setiap fail my_source_file. Jika anda menukar pautan, fail asal juga akan berubah.

Jika fail my_source_file akan dipadamkan, kemudian my_target_file akan kekal. Bendera -s pasukan ln membolehkan anda membuat pautan untuk direktori.

Sekarang mari kita bincangkan tentang pengalihan I/O dan saluran paip.

▍Ubah hala I/O dan saluran paip

my_command < my_file: menggantikan deskriptor fail input standard (stdin) setiap fail my_file. Ini boleh berguna jika arahan sedang menunggu beberapa input daripada papan kekunci, dan data ini telah disimpan dalam fail.

my_command > my_file: mengubah hala hasil arahan, iaitu perkara yang biasanya masuk ke dalam stdout dan output ke skrin, ke fail my_file. Jika fail my_file tidak wujud - ia dicipta. Jika fail itu wujud, ia akan ditimpa.

Sebagai contoh, selepas melaksanakan arahan ls > my_folder_contents.txt fail teks akan dibuat yang mengandungi senarai perkara yang ada dalam direktori kerja semasa.

Jika bukan simbol > menggunakan pembinaan >>, maka, dengan syarat bahawa fail yang output arahan diubah hala wujud, fail ini tidak akan ditulis ganti. Data akan ditambahkan pada penghujung fail ini.

Sekarang mari kita lihat pemprosesan saluran paip data.

[ditandai buku] Bash untuk pemula: 21 arahan berguna
Output satu arahan dimasukkan ke dalam input arahan lain. Ia seperti menyambung satu paip ke paip yang lain

first_command | second_command: simbol penghantar, |, digunakan untuk menghantar output satu arahan kepada arahan lain. Apa yang dihantar oleh arahan di sebelah kiri struktur yang diterangkan stdout, Jatuh ke stdin arahan di sebelah kanan simbol saluran paip.

Di Linux, data boleh disalurkan menggunakan hampir mana-mana arahan yang dibentuk dengan baik. Selalunya dikatakan bahawa segala-galanya dalam Linux adalah saluran paip.

Anda boleh merantai berbilang arahan menggunakan simbol saluran paip. Ia kelihatan seperti ini:

first_command | second_command | third_command

[ditandai buku] Bash untuk pemula: 21 arahan berguna
Saluran paip beberapa arahan boleh dibandingkan dengan saluran paip

Perhatikan bahawa apabila arahan di sebelah kiri simbol |, mengeluarkan sesuatu kepada stdout, apa yang dia keluarkan tersedia serta-merta sebagai stdin pasukan kedua. Iaitu, ternyata, menggunakan saluran paip, kita berurusan dengan pelaksanaan perintah selari. Kadang-kadang ini boleh membawa kepada hasil yang tidak dijangka. Butiran tentang ini boleh dibaca di sini.

Sekarang mari kita bercakap tentang membaca data daripada fail dan memaparkannya pada skrin.

▍Membaca fail

head my_file: membaca baris dari permulaan fail dan mencetaknya ke skrin. Anda boleh membaca bukan sahaja kandungan fail, tetapi juga apa yang dikeluarkan oleh arahan stdinmenggunakan arahan ini sebagai sebahagian daripada saluran paip.

tail my_file: membaca baris dari hujung fail. Perintah ini juga boleh digunakan dalam saluran paip.

[ditandai buku] Bash untuk pemula: 21 arahan berguna
Kepala (kepala) di hadapan, dan ekor (ekor) di belakang

Jika anda bekerja dengan data menggunakan perpustakaan panda, maka arahan head ΠΈ tail sepatutnya biasa kepada anda. Jika ini tidak berlaku, lihat angka di atas, dan anda akan mengingatinya dengan mudah.

Pertimbangkan cara lain untuk membaca fail, mari kita bercakap tentang arahan cat.

Pasukan cat sama ada mencetak kandungan fail ke skrin, atau menggabungkan berbilang fail. Ia bergantung pada berapa banyak fail yang dihantar ke arahan ini apabila dipanggil.

[ditandai buku] Bash untuk pemula: 21 arahan berguna
perintah kucing

cat my_one_file.txt: apabila satu fail dihantar ke arahan ini, ia mengeluarkannya ke stdout.

Jika anda memberikannya dua fail atau lebih fail, maka ia berkelakuan berbeza.

cat my_file1.txt my_file2.txt: setelah menerima beberapa fail sebagai input, arahan ini menggabungkan kandungannya dan memaparkan apa yang berlaku di dalamnya stdout.

Jika hasil penggabungan fail perlu disimpan sebagai fail baharu, anda boleh menggunakan operator >:

cat my_file1.txt my_file2.txt > my_new_file.txt

Sekarang mari kita bincangkan tentang cara memadam fail dan menghentikan proses.

▍Memadam fail, menghentikan proses

rm my_file: padam fail my_file.

rm -r my_folder: memadam folder my_folder dan semua fail dan folder yang terkandung di dalamnya. Bendera -r menunjukkan bahawa arahan akan dijalankan dalam mod rekursif.

Untuk menghalang sistem daripada meminta pengesahan setiap kali fail atau folder dipadamkan, gunakan bendera -f.

kill 012345: Menghentikan proses berjalan yang ditentukan, memberi masa untuk menutup dengan anggun.

kill -9 012345: Menamatkan proses berjalan yang ditentukan secara paksa. Lihat bendera -s SIGKILL maksudnya sama dengan bendera -9.

▍Cari

Anda boleh menggunakan arahan yang berbeza untuk mencari data. khususnya - grep, ag ΠΈ ack. Mari kita mulakan perkenalan kita dengan arahan ini dengan grep. Ini adalah arahan yang diuji masa dan boleh dipercayai, yang, bagaimanapun, adalah lebih perlahan daripada yang lain dan tidak semudah digunakan seperti sedia ada.

[ditandai buku] Bash untuk pemula: 21 arahan berguna
arahan grep

grep my_regex my_file: carian my_regex Π² my_file. Jika perlawanan ditemui, keseluruhan rentetan dikembalikan, untuk setiap perlawanan. Lalai my_regex dianggap sebagai ungkapan biasa.

grep -i my_regex my_file: Carian dilakukan dalam cara yang tidak peka huruf besar-besaran.

grep -v my_regex my_file: mengembalikan semua baris yang tidak mengandungi my_regex. Bendera -v bermaksud penyongsangan, ia menyerupai operator NOT, terdapat dalam banyak bahasa pengaturcaraan.

grep -c my_regex my_file: Mengembalikan maklumat tentang bilangan padanan yang ditemui dalam fail untuk corak carian.

grep -R my_regex my_folder: melakukan carian rekursif dalam semua fail yang terletak dalam folder yang ditentukan dan dalam folder yang bersarang di dalamnya.

Sekarang mari kita bercakap tentang pasukan ag. Dia datang kemudian grep, ia lebih pantas, lebih mudah untuk bekerja dengannya.

[ditandai buku] Bash untuk pemula: 21 arahan berguna
perintah ag

ag my_regex my_file: mengembalikan maklumat tentang nombor baris, dan garisan itu sendiri, di mana padanan ditemui my_regex.

ag -i my_regex my_file: Carian dilakukan dalam cara yang tidak peka huruf besar-besaran.

Pasukan ag memproses fail secara automatik .gitignore dan tidak termasuk daripada output apa yang terdapat dalam folder atau fail yang disenaraikan dalam fail itu. Ia sangat selesa.

ag my_regex my_file -- skip-vcs-ignores: kandungan fail kawalan versi automatik (seperti .gitignore) tidak diambil kira dalam carian.

Di samping itu, untuk memberitahu pasukan ag pada laluan fail yang anda ingin kecualikan daripada carian, anda boleh membuat fail .agignore.

Pada permulaan bahagian ini, kami menyebut arahan ack. Pasukan ack ΠΈ ag sangat serupa, kita boleh mengatakan bahawa mereka 99% boleh ditukar ganti. Walau bagaimanapun, pasukan ag berfungsi lebih cepat, itulah sebabnya saya menerangkannya.

Sekarang mari kita bercakap tentang bekerja dengan arkib.

▍Mengarkib

tar my_source_directory: menggabungkan fail daripada folder my_source_directory ke dalam satu fail tarball. Fail sedemikian berguna untuk memindahkan set fail yang besar kepada seseorang.

[ditandai buku] Bash untuk pemula: 21 arahan berguna
arahan tar

Fail tarball yang dijana oleh arahan ini ialah fail dengan sambungan .tar (Arkib Pita). Hakikat bahawa perkataan "pita" (pita) tersembunyi dalam nama arahan dan dalam lanjutan nama fail yang diciptanya menunjukkan berapa lama arahan ini telah wujud.

tar -cf my_file.tar my_source_directory: mencipta fail tarball bernama my_file.tar dengan kandungan folder my_source_directory. Bendera -c bermaksud "cipta" (penciptaan), dan bendera -f sebagai "fail" (fail).

Untuk mengekstrak fail daripada .tar-fail, gunakan arahan tar dengan bendera -x ("ekstrak", perahan) dan -f ("fail", fail).

tar -xf my_file.tar: mengekstrak fail daripada my_file.tar ke direktori kerja semasa.

Sekarang mari kita bercakap tentang cara memampatkan dan nyahmampat .tar-fail.

tar -cfz my_file.tar.gz my_source_directory: di sini menggunakan bendera -z ("zip", algoritma pemampatan) menunjukkan bahawa algoritma harus digunakan untuk memampatkan fail gzip (GNUzip). Pemampatan fail menjimatkan ruang cakera apabila menyimpan fail tersebut. Jika fail dirancang, sebagai contoh, untuk dipindahkan kepada pengguna lain, ini menyumbang kepada muat turun fail tersebut dengan lebih pantas.

Nyahzip fail .tar.gz anda boleh menambah bendera -z kepada perintah kandungan ekstrak .tar-files, yang kami bincangkan di atas. Ia kelihatan seperti ini:

tar -xfz my_file.tar.gz
Perlu diingatkan bahawa pasukan tar Terdapat banyak lagi bendera yang berguna.

alias Bash

Alias ​​Bash (juga dipanggil alias atau singkatan) direka bentuk untuk mencipta nama singkatan bagi perintah atau urutannya, yang penggunaannya bukannya arahan biasa mempercepatkan kerja. Jika anda mempunyai alias bu, yang menyembunyikan arahan python setup.py sdist bdist_wheel, kemudian untuk memanggil arahan ini, sudah cukup untuk menggunakan alias ini.

Untuk mencipta alias sedemikian, cuma tambahkan arahan berikut pada fail ~/.bash_profile:

alias bu="python setup.py sdist bdist_wheel"

Jika sistem anda tidak mempunyai fail ~/.bash_profile, maka anda boleh menciptanya sendiri menggunakan arahan touch. Selepas mencipta alias, mulakan semula terminal, selepas itu anda boleh menggunakan alias ini. Dalam kes ini, input dua aksara menggantikan input lebih daripada tiga dozen aksara arahan, yang bertujuan untuk perhimpunan Pakej Python.

Π’ ~/.bash_profile anda boleh menambah alias untuk sebarang arahan yang kerap digunakan.

▍Hasil

Dalam siaran ini, kami telah merangkumi 21 arahan Bash yang popular dan bercakap tentang mencipta alias arahan. Jika anda berminat dengan topik ini - di sini satu siri penerbitan khusus untuk Bash. ia adalah Anda boleh mendapatkan versi pdf penerbitan ini. Selain itu, jika anda ingin mempelajari Bash, ingat bahawa, seperti mana-mana sistem pengaturcaraan lain, latihan adalah kunci.

Pembaca yang dihormati! Apakah arahan yang berguna untuk pemula yang akan anda tambahkan pada arahan yang dibincangkan dalam artikel ini?

β†’ Juga baca dalam blog kami satu siri penerbitan tentang skrip bash

[ditandai buku] Bash untuk pemula: 21 arahan berguna

Sumber: www.habr.com

Tambah komen