Contoh Tips dan Trik Perintah Bash Berguna - Bahagian 2

Contoh Tips dan Trik Perintah Bash Berguna - Bahagian 2

Dalam siri ini, kami meneroka pelbagai contoh petua, helah dan baris baris yang akan membantu anda menjadi pengguna dan pengkodan bash yang lebih maju. Bash menyediakan bahasa skrip dan pengekodan yang kaya yang meletakkan kuasa kembali di tangan pengguna dan pemaju. Bash juga membolehkan anda belajar semasa anda pergi, dengan itu menjadikannya pengalaman yang lebih menyeronokkan. Untuk artikel pertama dalam siri kami, sila lihat artikel kami Bash Command Tips and Tricks Contoh Bahagian 1 Bahagian 1.

Dalam siri tutorial ini, anda akan belajar:

  • Petua, cara dan kaedah baris perintah bash berguna
  • Cara berinteraksi dengan baris perintah bash dengan cara yang lebih maju
  • Cara Mengasah Kemahiran Bash Anda secara keseluruhan dan menjadi pengguna bash yang lebih mahir
Contoh Tips dan Trik Perintah Bash Berguna - Bahagian 2

Keperluan perisian dan konvensyen yang digunakan

Keperluan Perisian dan Konvensyen Talian Perintah Linux
Kategori Keperluan, konvensyen atau versi perisian yang digunakan
Sistem Pengedaran linux-bebas
Perisian Baris perintah bash, sistem berasaskan linux
Yang lain Sebarang utiliti yang tidak termasuk dalam shell bash secara lalai boleh dipasang menggunakan sudo apt-get memasang nama utiliti (atau pemasangan yum untuk sistem berasaskan redhat)
Konvensyen # - memerlukan komando linux untuk dilaksanakan dengan keistimewaan akar sama ada secara langsung sebagai pengguna root atau dengan menggunakan sudo perintah
$-Memerlukan komando linux untuk dilaksanakan sebagai pengguna yang tidak istimewa

Contoh 1: Menangkap alamat IP yang tidak dikenali



Kadang -kadang, skrip kami perlu mengetahui alamat IP mesin kami. Terdapat beberapa kaedah yang berbeza, walaupun tiada seorang pun daripada mereka. Sebagai contoh, mempunyai pelbagai penyesuai rangkaian dalam satu komputer boleh membuat perubahan dalam output oleh pelbagai arahan. Juga, beberapa arahan mempunyai batasan.

Contohnya, Nama Host perintah jelas menyatakan dalam manualnya (untuk -I pilihan) bahawa ia akan memaparkan semua alamat rangkaian tuan rumah, tetapi untuk tidak membuat apa -apa andaian mengenai susunan output. Oleh itu, nampaknya menggunakan Nama Host mungkin bukan pilihan terbaik.

Contoh -contoh yang disediakan di sini adalah untuk memberi kuasa kepada anda dan memberikan beberapa cadangan untuk penerokaan lanjut dan persekitaran yang khusus dan/atau umum. Pengetahuan mesin yang dipersoalkan, atau rangkaian yang digunakan akan membolehkan seseorang mengubah arahan ini menjadi skrip retriever alamat IP yang lebih stabil.

$ Myip = "$ (ip a | grep 'inet.*Global '| GREP -V Docker | sed's |.*inet || ' | grep -o "^[\.0-9] \+")"; echo "$ myip" 10.10.0.20 $ myip = "$ (IP -s laluan mendapatkan 1 | grep -o" src [\.0-9] \+"| grep -o" [\.0-9] \+")"; echo "$ myip" 10.10.0.20 

Dalam perintah pertama, kami menggunakan ip a (alamat IP) Perintah untuk mendapatkan senarai semua alamat IP yang diberikan kepada mesin ini. Anda boleh menaip ip a perintah secara langsung di baris arahan bash untuk melihat output seperti itu.

Kami seterusnya menyapu semua global inet penyesuai, dan mengeluarkan sebarang sambungan rangkaian Docker dari senarai (anda dapat melihat ini tidak sempurna; perisian lain boleh membuat antara muka rangkaian lain, sebagai contoh SSH atau program virtualisasi lain seperti VirtualBox, yang juga memerlukan penapisan).

Kami kemudian memproses input lebih jauh dengan sed untuk membuang maklumat sehingga inet. Akhirnya, kami menguatkan IP sebenar dengan a grep sahaja i.e. grep -o Perintah yang menggunakan ungkapan biasa untuk merebut alamat IP penuh (IPv4).

Untuk mengetahui lebih lanjut mengenai ungkapan biasa, lihat Bash Regexps kami untuk pemula dengan contoh dan canggih Bash Regex dengan artikel contoh.

Anda juga boleh melihat lagi bagaimana terdapat batasan di sini; Cara menggabungkan alamat IP IPv6, bagaimana untuk mengetahui apakah alamat IP utama apabila terdapat beberapa penyesuai dll.

Dalam arahan kedua, kami mencari laluan pertama di mesin dengan Laluan ip mendapat 1 dan kemudian memproses output dengan cara yang sama. Ini berpotensi lebih stabil untuk sekurang -kurangnya mencari alamat IPv4 utama mesin.

Marilah kita tahu kaedah terbaik anda untuk mendapatkan IP, dan mungkin alamat IPv4 utama menggunakan skrip bash dalam komen di bawah!

Contoh 2: Risiko globbing dan keperluan untuk memetik dengan betul

$ sentuh a b c $ echo "$ (echo"*")"*$ echo $ (echo "*") a b c 


Dalam contoh ini, kita mula -mula membuat 3 fail, a, b dan c, Dan seterusnya kita menjalankan dua echo. Echo pertama memetik dengan betul * Hasil daripada echo "*" di dalam subshell $ (), mengakibatkan literal * Dihidupkan oleh echo pertama dalam perintah. Perintah echo kedua tidak betul memetik * dan kerana globbing bash itu berlaku; The * dilihat sebagai pengecam nama fail, dan fail disenaraikan dan diserahkan kepada echo penumbuk. Untuk menjelaskan ini, pertimbangkan:

$ echo * a b c 

Oleh itu, kita melihat keperluan untuk sentiasa mengutip mana -mana teks yang boleh ditafsirkan sebagai nama fail, walaupun teks tersebut sudah dipetik dengan betul di dalam subshell, seperti yang berlaku di sini ($ (echo "*"): perhatikan yang dipetik *).

Kesimpulan

Dalam artikel ini, kami melihat bagaimana untuk mendapatkan alamat IP menggunakan pelbagai kaedah dan dianggap memperluaskan ini sesuai dengan pelbagai persekitaran. Kami juga meneroka Bash Globbing, dan keperluan untuk memetik teks yang boleh ditafsirkan sebagai nama fail dengan betul, untuk mengelakkan globbing.

  • Contoh Petua dan Trik Perintah Bash Berguna - Bahagian 1
  • Contoh Tips dan Trik Perintah Bash Berguna - Bahagian 2
  • Contoh Tips dan Trik Perintah Bash Berguna - Bahagian 3
  • Contoh Tips dan Trik Perintah Bash Berguna - Bahagian 4
  • Contoh Tips dan Trik Perintah Bash Berguna - Bahagian 5

Tutorial Linux Berkaitan:

  • Pengenalan kepada Automasi, Alat dan Teknik Linux
  • Menguasai Gelung Skrip Bash
  • Perkara yang hendak dipasang di Ubuntu 20.04
  • Gelung bersarang dalam skrip bash
  • Contoh Petua dan Trik Perintah Bash Berguna - Bahagian 1
  • Perkara yang perlu dilakukan setelah memasang ubuntu 20.04 Focal Fossa Linux
  • Ubuntu 20.04 Panduan
  • Ubuntu 20.04 Trik dan Perkara yang Anda Tidak Tahu
  • Contoh Tips dan Trik Perintah Bash Berguna - Bahagian 3
  • Contoh Tips dan Trik Perintah Bash Berguna - Bahagian 4