Rumah > Artikel > Operasi dan penyelenggaraan > Kuasai sepenuhnya pengaturcaraan Shell dalam sistem Linux
Artikel ini membawa anda pengetahuan yang berkaitan tentang pengaturcaraan shell dalam sistem Linux Sebelum mempelajari pengaturcaraan Shell, kita harus mengetahui dahulu apa itu Shell dan apakah itu skrip shell.
Hubungan antara pengguna, Shell, kernel Linux dan perkakasan adalah seperti berikut:
Shell adalah aplikasi, ia juga boleh dikatakan sebagai jurubahasa arahan, ia adalah pengguna Jambatan antara kernel Linux dan kernel Linux boleh melepasi operasi pengguna pada antara muka grafik atau arahan yang dimasukkan dalam terminal ke kernel Linux, dan kemudian kernel Linux menjadualkan pelbagai perkakasan dan sumber lain untuk melengkapkan operasi pengguna.
Apakah kernel Linux? Dalam sistem pengendalian Linux, bahagian yang sebenarnya boleh mengendalikan perkakasan komputer untuk melengkapkan fungsi pengguna tertentu dipanggil kernel sistem Linux. Apabila pengguna menggunakan sistem Linux, mereka tidak boleh mengendalikan kernel secara langsung, tetapi secara tidak langsung mengendalikan kernel melalui Shell. Shell bukan sebahagian daripada kernel, tetapi aplikasi yang dibangunkan di luar kernel Linux Ia menghantar operasi klik tetikus pengguna atau arahan input kepada kernel, dan kernel kemudian menjadualkan perkakasan untuk menyelesaikan operasi yang ditentukan. Dengan cara ini, pengguna tidak perlu mengendalikan kernel secara langsung, tetapi secara tidak langsung mengendalikan kernel melalui Shell Kernel tidak akan terdedah secara langsung kepada luar, yang memastikan keselamatan kernel dan memudahkan operasi pengguna.
Shell ialah aplikasi yang bermula apabila komputer dihidupkan Apabila kami mengendalikan sistem Linux, kami mengendalikan kernel Linux secara langsung atau tidak langsung melalui Shell sepanjang masa. Malah, sebelum terdapat antara muka grafik, pengguna terus memanggil aplikasi Shell melalui terminal atau konsol, dan kemudian mengendalikan sistem Linux dengan memasukkan arahan. $ dan # yang pengguna lihat pada konsol atau terminal sebenarnya adalah gesaan arahan Shell, yang menunjukkan bahawa pengguna telah memasuki program Shell dan hanya perlu memasukkan arahan untuk mengendalikan kernel Linux melalui Shell. Cuma $ dipaparkan apabila pengguna root log masuk, dan # dipaparkan apabila pengguna biasa log masuk.
Selain itu, proses Shell memindahkan operasi pengguna ke kernel ialah proses memanggil antara muka API yang disediakan oleh kernel. Sebagai contoh, pengguna menjalankan operasi membuka fail pada antara muka grafik atau baris arahan terminal Selepas menerima operasi pengguna, Shell akan memanggil fungsi sepadan yang disediakan oleh kernel, dan kemudian kernel akan menjadualkan sumber perkakasan untuk melengkapkan. operasi pengguna.
Kita tahu bahawa Linux ialah sistem pengendalian sumber terbuka yang dibangunkan bersama oleh pelbagai organisasi atau individu di seluruh dunia , setiap organisasi atau individu adalah bertanggungjawab untuk beberapa fungsi, dan akhirnya digabungkan bersama, mereka membentuk Linux yang kita gunakan sekarang. Atas sebab inilah organisasi atau individu yang berbeza ini akan membangunkan aplikasi yang boleh digunakan dalam sistem Linux Fungsi aplikasi ini mungkin serupa, dan masing-masing mempunyai kelebihan dan kekurangannya sendiri untuk digunakan. Shell ialah aplikasi sedemikian, jadi terdapat banyak versi Shell Pada masa ini, Shell lalai yang digunakan oleh kebanyakan pengedaran Linux ialah bash shell. Versi Shell biasa yang lain adalah seperti berikut:
(1) sh: Nama penuh sh ialah cangkerang Bourne, iaitu cangkerang standard pada UNIX Banyak versi UNIX dilengkapi dengan sh. sh ialah cangkerang pertama yang popular.
(2) csh: Sintaks shell ini agak serupa dengan bahasa C, jadi ia dinamakan shell C, atau singkatannya csh.
(3) tcsh: tcsh ialah versi csh yang dipertingkat, menambah fungsi pelengkapan arahan dan menyediakan sokongan sintaks yang lebih berkuasa.
(4) ash: Cangkang ringan yang menggunakan kurang sumber, sesuai untuk dijalankan dalam persekitaran memori rendah dan serasi sepenuhnya dengan cangkerang bash.
(5) bash: bash shell dibangunkan oleh organisasi GNU dan mengekalkan keserasian dengan sh shell Ia adalah shell lalai yang dikonfigurasikan dalam pelbagai pengedaran Linux.
Dalam sistem Linux, Shell lalai biasanya adalah shell bash. Shell ialah program aplikasi, yang biasanya diletakkan dalam direktori /bin
atau /user/bin
, dan cangkerang yang tersedia pada masa ini dalam sistem Linux direkodkan dalam fail /etc/shells
.
(1) Untuk melihat cangkerang sistem yang tersedia pada masa ini, laksanakan arahan [cat -n /etc/shells]:
(2) Untuk melihat lalai semasa sistem Untuk menggunakan shell, laksanakan arahan [echo $SHELL]:
(3) Untuk melihat shell yang digunakan oleh setiap pengguna, laksanakan arahan [cat -n /etc/passwd]:
Kita sedia maklum bahawa Shell ialah sebuah aplikasi, dan aplikasi ini bukan sahaja boleh menghantar arahan operasi pengguna kepada kernel Linux, ia juga menyokong pengaturcaraan. Shell akan sepadan dengan satu set sintaks bahasa pengaturcaraan, dan set bahasa ini dipanggil bahasa pengaturcaraan Shell atau bahasa skrip Shell. Bahasa pengaturcaraan Shell ialah bahasa skrip seperti bahasa JavaScript Ia tidak memerlukan kompilasi, dan penterjemahnya ialah aplikasi Shell itu sendiri.
Apa yang kami panggil Shell dalam kerja harian kami, dalam kebanyakan kes, merujuk kepada bahasa skrip Shell, bukan aplikasi Shell.
(1) Buat skrip Hello.sh baharu dalam direktori akar: [vim Hello.sh]
(2) Kemudian masukkan kandungan berikut:
Satu baris: #! ialah tanda konvensyen, yang boleh memberitahu sistem versi Shell yang akan digunakan sebagai penterjemah untuk skrip ini /bin/bash yang berikut ialah laluan Shell, jadi [#!/bin/bash ] bermaksud Isytihar untuk menggunakan bash shell dalam direktori bin sebagai penterjemah untuk skrip ini;#!/bin/bash echo "Hello World "
Baris kedua: [echo "Hello World "] menunjukkan teks output Hello World! ;
(3) Kemudian simpan dan keluar: [!wq];
(4) Dengan cara ini, seseorang boleh mengeluarkan Hello World! Skrip selesai.
Penjelasan tambahan:
Seperti yang telah kami katakan di atas, program Shell ialah penterjemah bahasa skrip Shell, dan apabila kami menggunakan terminal ( Contohnya, menyambung ke terminal pelayan Linux melalui Contohnya, isytiharkan pembolehubah dan cetak nilai pembolehubah ini: (1) Masukkan kod: [name=Zhang San], yang bermaksud nama pembolehubah ditakrifkan dan nilainya ialah Zhang San
(2) Masukkan kod: [echo $name], yang bermaksud mencetak nilai nama pembolehubah.
Sudah tentu, kaedah ini hanya sesuai untuk melaksanakan logik mudah dengan hanya satu atau dua ayat kod Dalam kebanyakan kes, kami masih menulis kod pengaturcaraan Shell dalam . sh skrip. Pergi dan laksanakan semula.
Di atas kami telah menulis skrip yang boleh mengeluarkan Hello World! Skrip Shell dijalankan, dan kini kita perlu melaksanakan skrip Hello.sh. Terdapat dua cara untuk melaksanakan skrip Shell:
Yang pertama: berikan kebenaran boleh laku teks .sh, dan kemudian laksanakan teks:
(1) Berikan Shell dahulu Kebenaran boleh laku skrip: [chmod x
Helo.sh
];
(2) Pelaksanaan langsung: laluan mutlak: [/Hello.sh] atau laluan relatif: [./Hello.sh]
Ambil perhatian bahawa jika anda menggunakan laluan relatif semasa melaksanakan di sini, ia mesti bermula dengan ./ untuk menunjukkan direktori semasa, jika tidak, sistem tidak akan dapat mencari skrip, menyebabkan pelaksanaan gagal.
Kedua: Hantar skrip Shell sebagai parameter kepada penterjemah Bash Shell:
(1) Bash Shell digunakan di sini sebagai penterjemah, kemudian kami memanggilnya terus Bash Shell ialah program, dan kemudian hantar skrip Hello.sh sebagai parameter kepada Shell: [/bin/bash Hello.sh] atau [bash Hello.sh]
(2) Perlu diingatkan di sini bahawa apabila melaksanakan skrip Shell dengan cara ini, tidak perlu mengisytiharkan versi Shell untuk digunakan sebagai penterjemah dalam baris pertama skrip Shell, iaitu, tidak perlu untuk baris kod ini [#!/ bin/bash], kerana arahan yang kami gunakan untuk menjalankan skrip [/bin/bash Hello.sh] telah pun menentukan versi Shell yang hendak digunakan sebagai penterjemah.
Nota, Apabila melaksanakan fail skrip dengan cara ini, jika laluan relatif digunakan, maka [/bin/bash ./hello.sh] dan [/bin/bash hello.sh] adalah sama, dan Tiada perbezaan dalam menggunakan kaedah pelaksanaan pertama.
Cadangan berkaitan: "Tutorial Video Linux"
Atas ialah kandungan terperinci Kuasai sepenuhnya pengaturcaraan Shell dalam sistem Linux. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!