[bookmark] Bash untuk pemula: 21 perintah yang berguna

Materi, terjemahan yang kami terbitkan hari ini, ditujukan bagi mereka yang ingin menguasai baris perintah Linux. Kemampuan untuk menggunakan alat ini secara efektif menghemat banyak waktu. Secara khusus, ini akan tentang shell Bash dan 21 perintah yang berguna. Kami juga akan berbicara tentang cara menggunakan bendera perintah dan alias Bash untuk mempercepat masuknya instruksi panjang.



Baca juga di blog kami serangkaian publikasi tentang skrip bash

Ketentuan


Ketika Anda belajar cara menggunakan baris perintah Linux, Anda mungkin menemukan banyak konsep yang akan berguna untuk dinavigasi. Beberapa dari mereka, seperti "Linux" dan "Unix", atau "command shell" dan "terminal", kadang-kadang bingung. Mari kita bicara tentang ini dan istilah-istilah penting lainnya.

Unix adalah sistem operasi populer yang dikembangkan oleh Bell Labs pada 1970-an. Kode nya bersifat pribadi.

Linux adalah sistem operasi mirip Unix yang paling populer. Ini digunakan hari ini di berbagai perangkat, termasuk komputer.

Terminal, atau terminal emulator, adalah program yang menyediakan akses ke sistem operasi. Anda dapat membuka beberapa jendela terminal secara bersamaan.

Shell adalah program yang memungkinkan Anda mengirim perintah yang ditulis dalam bahasa khusus ke sistem operasi.

Bash adalah singkatan dari Bourne Again Shell. Ini adalah bahasa shell yang paling umum digunakan untuk berinteraksi dengan sistem operasi. Selain itu, shell Bash default digunakan oleh macOS.

Command Line Interface (CLI) adalah cara interaksi antara seseorang dan komputer, yang dengannya pengguna memasukkan perintah dari keyboard, dan komputer, yang menjalankan perintah ini, menampilkan pesan dalam bentuk teks untuk pengguna. Pada dasarnya, CLI digunakan untuk mendapatkan informasi terkini tentang entitas tertentu, misalnya file, dan untuk bekerja dengan file. Antarmuka baris perintah harus dibedakan dari Graphical User Interface (GUI), yang digunakan terutama oleh mouse. Antarmuka baris perintah sering disebut hanya sebagai baris perintah.

Script adalah program kecil yang berisi urutan perintah shell. Script ditulis ke file, Anda dapat menggunakannya berulang kali. Saat menulis skrip, Anda dapat menggunakan variabel, konstruksi kondisional, loop, fungsi, dan fitur lainnya.

Sekarang kita telah mempertimbangkan istilah-istilah penting, saya ingin mencatat bahwa di sini saya akan menggunakan istilah "Bash", "shell" dan "command line" sebagai yang dapat dipertukarkan, serta konsep "direktori" dan "folder".

Streaming standar yang akan kita gunakan di sini adalah input standar (input standar, stdin ), output standar (output standar, stdout ) dan output kesalahan standar (standard error, stderr ).

Jika dalam contoh perintah yang akan diberikan di bawah ini, Anda menemukan sesuatu seperti my_whatever - ini berarti bahwa fragmen ini perlu diganti dengan sesuatu milik Anda. Misalnya, nama file.

Sekarang, sebelum melanjutkan dengan analisis tim-tim yang materi ini dikhususkan, mari kita lihat daftar mereka dan deskripsi singkat mereka.

21 Tim Bash


▍ Mendapatkan informasi


  • man : menampilkan buku petunjuk (bantuan) untuk perintah.
  • pwd : menampilkan informasi tentang direktori kerja.
  • ls : menampilkan isi direktori.
  • ps : memungkinkan Anda untuk melihat informasi tentang proses yang sedang berjalan.

▍ Manipulasi sistem file


  • cd : ubah direktori kerja.
  • touch : buat file.
  • mkdir : buat direktori.
  • cp : salin file.
  • mv : memindahkan atau menghapus file.
  • ln : pembuatan tautan.

▍ Pengalihan I / O dan jalur pipa


  • < : pengalihan stdin .
  • > : pengalihan stdout .
  • | : mengarahkan output dari satu perintah ke input dari perintah lain menggunakan pipeline.

▍Membaca file


  • head : baca bagian awal file.
  • tail : baca akhir file.
  • cat : membaca file dan menampilkan isinya di layar atau menyatukan file.

▍ Hapus file, hentikan proses


  • rm : hapus file.
  • kill : hentikan prosesnya.

▍Cari


  • grep : cari informasi.
  • ag : tim pencarian lanjutan.

ChMenerima


  • tar : membuat dan bekerja dengan arsip.

Mari kita bicara tentang perintah-perintah ini secara lebih rinci.

Detail Tim


Untuk memulai, mari kita berurusan dengan tim yang hasilnya ditampilkan dalam bentuk stdout . Biasanya, hasil ini muncul di jendela terminal.

▍ Mendapatkan informasi


man command_name : output dari manual perintah, yaitu, informasi referensi.

pwd : menampilkan lintasan ke direktori kerja saat ini. Ketika bekerja dengan baris perintah, pengguna sering perlu mencari tahu di mana dia berada pada sistem.

ls : tampilkan isi direktori. Perintah ini juga cukup sering digunakan.

ls -a : output file tersembunyi. Bendera -a dari ls diterapkan di sini. Menggunakan bendera membantu untuk menyesuaikan perilaku tim.

ls -l : menampilkan informasi file terperinci.

Harap dicatat bahwa bendera dapat digabungkan. Misalnya, seperti ini: ls -al .

ps : lihat proses yang sedang berjalan.

ps -e : menampilkan informasi tentang semua proses yang berjalan, bukan hanya yang terkait dengan shell pengguna saat ini. Perintah ini sering digunakan dalam formulir ini.

▍ Manipulasi sistem file


cd my_directory : ubah direktori yang berfungsi menjadi my_directory . Untuk naik satu tingkat lebih tinggi di pohon direktori, gunakan jalur relatif ../ sebagai my_directory .


Perintah Cd

touch my_file : buat my_file di jalur yang ditentukan.

mkdir my_directory : Buat folder my_directory di jalur yang ditentukan.

mv my_file target_directory : pindahkan file my_file ke folder my_file . Saat menentukan direktori target, Anda harus menggunakan path absolut ke sana (dan bukan konstruk seperti ../ ).

Perintah mv juga dapat digunakan untuk mengganti nama file atau folder. Misalnya, mungkin terlihat seperti ini:

mv my_old_file_name.jpg my_new_file_name.jpg
cp my_source_file target_directory
mv my_old_file_name.jpg my_new_file_name.jpg
cp my_source_file target_directory
: buat salinan my_source_file dan letakkan di folder target_directory .

ln -s my_source_file my_target_file : buat tautan simbolis my_target_file ke my_source_file . Jika Anda mengubah tautan, file asli juga akan berubah.

Jika file my_source_file dihapus, maka my_target_file akan tetap ada. Bendera -s dari perintah ln memungkinkan Anda membuat tautan untuk direktori.

Sekarang mari kita bicara tentang I / O redirection dan jalur pipa.

▍ Pengalihan I / O dan jalur pipa


my_command < my_file : menggantikan deskriptor dari file input standar ( stdin ) dengan file my_file . Ini bisa berguna jika perintah berharap untuk memasukkan beberapa data dari keyboard, dan data ini disimpan dalam file terlebih dahulu.

my_command > my_file : mengarahkan ulang hasil dari perintah, yaitu, apa yang biasanya masuk ke stdout dan ditampilkan di layar, ke file my_file . Jika file my_file tidak ada, itu dibuat. Jika file itu ada, itu ditimpa.

Misalnya, setelah menjalankan ls > my_folder_contents.txt , file teks akan dibuat berisi daftar apa yang ada di direktori kerja saat ini.

Jika alih-alih simbol > menggunakan konstruksi >> , maka, asalkan ada file di mana output perintah diarahkan, file ini tidak akan ditimpa. Data akan ditambahkan ke akhir file ini.

Sekarang lihat data pipelining.


Output satu perintah apa yang dimasukkan ke input perintah lain. Ini seperti menghubungkan satu pipa ke yang lain

first_command | second_command first_command | second_command : simbol pipa, | , digunakan untuk mengirim hasil dari satu tim ke tim lain. Fakta bahwa perintah yang terletak di sisi kiri dari konstruksi yang dijelaskan mengirimkan ke stdout jatuh ke stdin perintah, yang terletak di sebelah kanan simbol pipa.

Di Linux, pipelining data dapat diatur menggunakan hampir semua perintah yang disusun dengan benar. Sering dikatakan bahwa semua yang ada di Linux adalah pipeline.

Menggunakan simbol konveyor, Anda dapat menghubungkan beberapa perintah secara bersamaan. Ini terlihat seperti ini:

 first_command | second_command | third_command 


Konveyor dari beberapa tim dapat dibandingkan dengan saluran pipa

Perhatikan bahwa ketika perintah ada di sebelah kiri | mencetak sesuatu di stdout , apa yang dicetaknya segera tersedia sebagai stdin perintah kedua. Artinya, ternyata, menggunakan pipeline, kita berurusan dengan eksekusi perintah secara paralel. Terkadang ini dapat menyebabkan hasil yang tidak terduga. Detail tentang ini dapat ditemukan di sini .

Sekarang mari kita bicara tentang membaca data dari file dan menampilkannya di layar.

▍Membaca file


head my_file : membaca baris dari awal file dan menampilkannya. Anda dapat membaca tidak hanya isi file, tetapi juga apa perintah output ke stdin , menggunakan perintah ini sebagai elemen dari pipeline.

tail my_file : membaca baris dari akhir file. Perintah ini juga dapat digunakan dalam pipa.


Kepala di depan dan ekor di belakang

Jika Anda bekerja dengan data menggunakan panda library, maka perintah head dan tail harus familier bagi Anda. Jika tidak, lihat gambar di atas dan Anda akan mudah mengingatnya.

Mari kita lihat cara lain untuk membaca file, dan berbicara tentang cat .

cat menampilkan konten file di layar, atau menggabungkan beberapa file. Itu tergantung pada berapa banyak file yang dilewatkan ke perintah ini ketika dipanggil.


Tim kucing

cat my_one_file.txt : ketika satu perintah ditransfer ke perintah ini, ia menampilkannya di stdout .

Jika Anda memberinya dua file atau lebih file, maka ia berlaku berbeda.

cat my_file1.txt my_file2.txt : setelah menerima beberapa file sebagai input, perintah ini merangkai isinya dan menampilkan apa yang terjadi di stdout .

Jika hasil penggabungan file perlu disimpan sebagai file baru, Anda dapat menggunakan operator > :

 cat my_file1.txt my_file2.txt > my_new_file.txt 

Sekarang mari kita bicara tentang cara menghapus file dan menghentikan proses.

▍ Hapus file, hentikan proses


rm my_file : menghapus file my_file .

rm -r my_folder : Menghapus folder my_folder dan semua file dan folder yang dikandungnya. Bendera -r menunjukkan bahwa perintah akan bekerja dalam mode rekursif.

Untuk mencegah sistem meminta konfirmasi selama setiap operasi untuk menghapus file atau folder, gunakan flag -f .

kill 012345 : menghentikan proses berjalan yang ditentukan, memberikan waktu untuk mematikan dengan benar.

kill -9 012345 : menghentikan proses berjalan yang ditentukan secara paksa. Bendera bentuk -s SIGKILL berarti sama dengan bendera -9 .

▍Cari


Anda dapat menggunakan perintah yang berbeda untuk mencari data. Secara khusus, grep , ag dan ack . Kami memulai pengantar kami untuk perintah-perintah ini dengan grep . Ini adalah tim yang teruji waktu dan andal, yang, bagaimanapun, lebih lambat dari yang lain dan tidak seperti mereka, nyaman digunakan.


Perintah Grep

grep my_regex my_file : mencari my_regex di my_file . Ketika kecocokan ditemukan, seluruh string dikembalikan untuk masing-masing. Secara default, my_regex diperlakukan sebagai ekspresi reguler.

grep -i my_regex my_file : pencarian bersifat case-sensitive.

grep -v my_regex my_file : mengembalikan semua baris yang tidak mengandung my_regex . Bendera -v berarti inversi, menyerupai operator NOT , yang tersedia dalam banyak bahasa pemrograman.

grep -c my_regex my_file : mengembalikan informasi tentang jumlah kecocokan dengan pola pencarian yang ditemukan dalam file.

grep -R my_regex my_folder : melakukan pencarian rekursif di semua file yang terletak di folder tertentu dan di folder yang berada di dalamnya.

Sekarang mari kita bicara tentang tim ag . Dia muncul kemudian grep , dia lebih cepat, lebih nyaman untuk bekerja dengannya.


Tim ag

ag my_regex my_file : mengembalikan informasi tentang nomor baris, dan baris itu sendiri, di mana kecocokan ditemukan dengan my_regex .

ag -i my_regex my_file : pencarian tidak peka huruf besar-kecil.

Perintah ag secara otomatis memproses file .gitignore dan mengecualikan dari output apa yang ditemukan dalam folder atau file yang tercantum dalam file ini. Sangat nyaman.

ag my_regex my_file -- skip-vcs-ignores : isi file dari sistem kontrol versi otomatis (seperti .gitignore ) tidak diperhitungkan selama pencarian.

Selain itu, untuk memberi tahu perintah ag file path mana yang dikecualikan dari pencarian, Anda dapat membuat file .agignore .

Di awal bagian ini, kami menyebutkan perintah ack . Perintah ack dan ag sangat mirip, kita dapat mengatakan bahwa mereka 99% dipertukarkan. Namun, perintah ag lebih cepat, jadi saya jelaskan secara khusus.

Sekarang mari kita bicara tentang bekerja dengan arsip.

ChMenerima


tar my_source_directory : menggabungkan file dari folder my_source_directory menjadi file tarball tunggal. File seperti itu nyaman digunakan untuk mentransfer set file besar ke seseorang.


Perintah tar

File tarball yang dibuat oleh perintah ini adalah file dengan ekstensi .tar (Tape ARchive). Fakta bahwa kata "tape" tersembunyi dalam nama perintah dan dalam ekstensi nama file yang dibuat olehnya menunjukkan berapa lama perintah ini telah ada.

tar -cf my_file.tar my_source_directory : membuat file tarball bernama my_file.tar dengan isi folder my_source_directory . Bendera -c adalah singkatan dari "create", dan bendera -f adalah singkatan dari "file".

Untuk mengekstrak file yang ada dalam file .tar , gunakan perintah tar dengan flag -x ("ekstrak", ekstraksi) dan -f ("file", file).

tar -xf my_file.tar : tar -xf my_file.tar file dari my_file.tar ke direktori kerja saat ini.

Sekarang mari kita bicara tentang cara mengompres dan mendekompresi file .tar .

tar -cfz my_file.tar.gz my_source_directory : di sini, menggunakan flag -z (algoritma kompresi "zip") menunjukkan bahwa gzip (GNU zip) harus digunakan untuk mengkompres file. Kompresi file menghemat ruang disk saat menyimpan file tersebut. Jika file direncanakan, misalnya, untuk ditransfer ke pengguna lain, ini berkontribusi pada pengunduhan file yang lebih cepat.

Anda dapat meng-unzip file .tar.gz dengan menambahkan tanda -z pada perintah untuk mengekstrak isi file .tar , yang telah kami periksa di atas. Ini terlihat seperti ini:

tar -xfz my_file.tar.gz
Perlu dicatat bahwa perintah tar memiliki lebih banyak flag yang berguna.

Alias ​​Bash


Alias ​​Bash (juga disebut alias atau singkatan) dirancang untuk membuat nama perintah yang disingkat atau urutannya, yang penggunaannya alih-alih perintah biasa mempercepat pekerjaan. Jika, python setup.py sdist bdist_wheel , Anda memiliki alias bu , di belakangnya perintah python setup.py sdist bdist_wheel , maka untuk memanggil perintah ini, cukup gunakan alias ini.

Untuk membuat alias seperti itu, cukup tambahkan perintah berikut ke file ~/.bash_profile :

 alias bu="python setup.py sdist bdist_wheel" 

Jika sistem Anda tidak memiliki file ~/.bash_profile , maka Anda dapat membuatnya sendiri menggunakan perintah touch . Setelah membuat alias, restart terminal, setelah itu Anda dapat menggunakan alias ini. Dalam hal ini, input dua karakter menggantikan input lebih dari tiga lusin karakter dari perintah, yang dirancang untuk membangun paket-paket Python.

Di ~/.bash_profile Anda bisa menambahkan alias untuk perintah yang biasa digunakan.

▍ Hasil


Dalam artikel ini, kami melihat 21 tim Bash populer dan berbicara tentang membuat alias untuk tim. Jika Anda tertarik dengan topik ini, berikut adalah seri publikasi Bash. Di sini Anda dapat menemukan versi pdf dari publikasi ini. Selain itu, jika Anda ingin mempelajari Bash, ingatlah bahwa di sini, seperti halnya mempelajari sistem perangkat lunak lain, praktik adalah penting.

Pembaca yang budiman! Perintah apa yang berguna untuk diketahui oleh pemula yang akan Anda tambahkan ke yang dibahas dalam artikel ini?

Baca juga di blog kami serangkaian publikasi tentang skrip bash

Source: https://habr.com/ru/post/id445270/


All Articles