GNU/Linux >> Belajar Linux >  >> Linux

Linux mengatur Perintah &Cara Menggunakannya {9 Contoh}

Pendahuluan

set command adalah perintah shell Linux bawaan yang menampilkan dan menetapkan nama dan nilai variabel lingkungan shell dan Linux. Pada sistem operasi mirip Unix, set fungsi perintah dalam shell Bourne (sh ), C shell (csh ), dan Korn shell (ksh ).

Dalam tutorial ini, Anda akan mempelajari apa yang set perintah dan cara menggunakannya.

Prasyarat

  • Sistem yang menjalankan Linux.
  • Akses ke terminal/baris perintah.

Linux mengatur Sintaks Perintah

Sintaks umum untuk set perintahnya adalah:

set [options] [arguments]

Opsi

Dalam konteks set perintah, [options] adalah pengaturan atau tanda yang disetel atau tidak disetel di lingkungan shell Bash. Gunakan untuk memengaruhi perilaku skrip shell yang ditentukan dan membantu menjalankan tugas yang diinginkan.

  • Setel opsi dengan menggunakan tanda minus (- ) diikuti dengan opsi yang sesuai.
  • Batalkan opsi dengan menggunakan tanda tambah (+ ) diikuti dengan opsi yang sesuai.

Argumen

[arguments] adalah parameter posisi dan ditetapkan secara berurutan dengan parameter berikut:

  • $1
  • $2
  • ...
  • $n

Tidak menentukan opsi atau argumen apa pun menyebabkan perintah mencetak semua variabel shell.

Keluar Nilai

set perintah memiliki tiga nilai keluar:

  • 0 . Menandai penyelesaian yang berhasil.
  • 1 . Kegagalan yang disebabkan oleh argumen yang tidak valid.
  • 2 . Kegagalan mengakibatkan pesan penggunaan, biasanya karena argumen tidak ada.

Linux mengatur Opsi Perintah

set perintah menyediakan daftar pilihan yang luas yang dapat digabungkan.

Sebagian besar opsi memiliki -o flag yang sesuai yang dapat digunakan untuk memanggil opsi. Tabel di bawah ini mencantumkan semua opsi dan bentuk alternatifnya masing-masing menggunakan -o flag sintaks.

Opsi -o bendera Deskripsi
-a -o allexport Menandai semua variabel atau fungsi yang dibuat atau dimodifikasi untuk diekspor.
-b -o notify Memperingatkan pengguna tentang penghentian pekerjaan di latar belakang.
-e -o errexit Menginstruksikan shell untuk keluar jika perintah gagal, yaitu, jika mengeluarkan status keluar bukan nol.
-f -o noglob Menonaktifkan pembuatan nama file (globbing).
-h -o hashall Menemukan dan menyimpan perintah fungsi ketika suatu fungsi didefinisikan. -h opsi diaktifkan secara default.
-k -o keyword Menempatkan semua argumen penetapan di lingkungan untuk sebuah perintah, bukan hanya yang mendahului nama perintah.
-n -o noexec Membaca perintah tetapi tidak menjalankannya.
-m -o monitor Menampilkan pesan saat tugas selesai.
-p -o privileged Menonaktifkan $ENV pemrosesan file dan impor fungsi shell. -p opsi diaktifkan secara default ketika ID pengguna yang sebenarnya dan efektif tidak cocok. Menonaktifkannya akan menyetel uid dan gid yang efektif ke uid dan gid yang sebenarnya.
-t -o onecmd Membaca satu perintah lalu keluar.
-u -o nounset Memperlakukan variabel yang tidak disetel atau tidak ditentukan sebagai kesalahan saat mengganti (selama ekspansi parameter). Tidak berlaku untuk parameter khusus seperti wildcard * atau @ .
-v -o verbose Mencetak baris input shell saat membacanya.
-x -o xtrace Mencetak argumen perintah selama eksekusi.
-B -o braceexpand Melakukan ekspansi penyangga shell.
-C -o noclobber Mencegah menimpa file biasa yang ada dengan pengalihan output. Secara default, Bash mengizinkan keluaran yang dialihkan untuk menimpa file yang ada.
-E -o errtrace Menyebabkan fungsi shell mewarisi perangkap ERR.
-H -o histexpand Mengaktifkan penggantian riwayat gaya. Opsi ini aktif secara default saat shell bersifat interaktif.
-P -o physical Mencegah tautan simbolis mengikuti saat menjalankan perintah.
-T -o functrace Menyebabkan fungsi shell mewarisi jebakan DEBUG.
-- t/a Menetapkan argumen yang tersisa ke parameter posisi. Jika tidak ada argumen yang tersisa, setel parameter posisi.
- t/a Menetapkan argumen yang tersisa ke parameter posisi. Mematikan -x dan -v pilihan.
t/a -o emacs Menggunakan dan antarmuka pengeditan baris bergaya emacs.
t/a -o history Mengaktifkan riwayat perintah.
t/a -o ignoreeof Shell tidak berhenti setelah membaca akhir file.
t/a -o interactive-comments Mengizinkan komentar dalam perintah interaktif.
t/a -o nolog Tidak merekam definisi fungsi dalam file riwayat.
t/a -o pipefail Nilai kembalian dari sebuah pipeline adalah status dari perintah terakhir yang memiliki status bukan nol saat keluar. Jika tidak ada perintah yang memiliki status bukan nol saat keluar, nilainya adalah nol.
t/a -o posix Menyebabkan Bash cocok dengan standar ketika operasi default berbeda dari standar Posix.
t/a -o vi Menggunakan antarmuka pengeditan baris yang mirip dengan vi .

Linux mengatur Contoh Perintah

Bagian ini mencantumkan contoh penggunaan paling umum dari set perintah.

Menggunakan Perintah yang Diset Tanpa Opsi

Menjalankan perintah tanpa opsi atau argumen menghasilkan daftar semua pengaturan - nama dan nilai semua variabel dan fungsi shell. Karena daftarnya sangat panjang, Anda dapat menggulirnya menggunakan Page Up dan Page Down kunci.

Berikut adalah contoh sebagian set keluaran perintah:

Men-debug Skrip

set perintah sangat berguna ketika Anda mencoba untuk men-debug skrip Anda. Gunakan -x opsi dengan set perintah untuk melihat perintah mana dalam skrip Anda yang dieksekusi setelah hasilnya, memungkinkan Anda untuk menentukan hasil setiap perintah.

Contoh berikut menunjukkan cara men-debug skrip dengan set -x . Ikuti langkah-langkah di bawah ini:

1. Jalankan set -x :

set -x

2. Gunakan editor teks favorit Anda (kami menggunakan editor vi) untuk membuat skrip. Kami membuat loop sederhana yang memungkinkan kami melihat -x efek opsi:

x=10
while [ $x -gt 0 ]; do
         x=$[ $x-1 ]
         echo $x
         sleep 2
done

3. Pastikan untuk chmod skrip agar dapat dieksekusi. Langkah ini selalu wajib sebelum menjalankan skrip . Sintaksnya adalah:

chmod +x [script-name.sh]

4. Jalankan skrip. Sintaksnya adalah:

./[script-name.sh]

Output mencetak satu baris pada satu waktu, menjalankannya, menunjukkan hasil jika ada, dan pindah ke baris berikutnya.

Cara lain untuk mengaktifkan debugging adalah dengan menempatkan -x tandai pada baris skrip shebang:

#!/bin/bash -x

Pengeksporan Skrip

Ekspor otomatis variabel atau fungsi apa pun yang dibuat menggunakan -a pilihan. Mengekspor variabel atau fungsi memungkinkan subkulit dan skrip lain untuk menggunakannya.

Aktifkan ekspor skrip dengan menjalankan perintah berikut:

set -a

Contoh berikut menunjukkan cara kerja ekspor skrip. Ikuti langkah-langkah di bawah ini:

1. Buat skrip baru menggunakan editor pilihan Anda. Misalnya:

one=1
two=2
three=3
four=4
/bin/bash

/bin/bash argumen menandai awal dari shell baru.

2. Periksa apakah skrip berfungsi di shell baru:

echo $one $two $three $four

Outputnya membuktikan bahwa fungsi yang kita buat telah diekspor dan berfungsi bahkan saat memulai shell baru.

Keluar Saat Perintah Gagal

Gunakan -e opsi untuk menginstruksikan skrip untuk keluar jika menemukan kesalahan selama eksekusi. Menghentikan skrip yang berfungsi sebagian membantu mencegah masalah atau hasil yang salah.

Buat skrip dengan konten berikut untuk menguji opsi ini:

#!/bin/bash
set -e
cat nonexistingfile
echo "The end"

Pada contoh di atas, skrip menemui kesalahan saat mencoba menampilkan konten nonexistingfile karena file itu tidak ada, menyebabkannya keluar pada saat itu. Jadi, echo final terakhir perintah tidak dijalankan.

Mencegah Kehilangan Data

Pengaturan Bash default adalah untuk menimpa file yang ada. Namun, menggunakan -C opsi mengonfigurasi Bash untuk tidak menimpa file yang ada saat pengalihan output menggunakan > , >& , atau <> diarahkan ke file itu.

Misalnya:

Bash pertama memungkinkan kita untuk menimpa listing.txt mengajukan. Namun, setelah menjalankan set -C perintah, Bash mengeluarkan pesan yang menyatakan bahwa itu tidak dapat menimpa file yang ada.

Laporkan Variabel yang Tidak Ada

Pengaturan default di Bash adalah mengabaikan variabel yang tidak ada dan bekerja dengan yang sudah ada. Menggunakan -u opsi mencegah Bash mengabaikan variabel yang tidak ada dan membuatnya melaporkan masalah.

Misalnya, skrip berikut tidak berisi set -u perintah dan Bash mengabaikan $var2 . itu tidak didefinisikan.

#!/bin/bash
var1="123"
echo $var1 $var2

Keluaran hanya berisi $var1 .

Namun, mengubah skrip dan menambahkan set -u perintah mencegah Bash mengabaikan masalah dan melaporkannya:

#!/bin/bash
set -u
var1="123"
echo $var1 $var2

Setel Parameter Posisi

set perintah juga dapat menetapkan nilai ke parameter posisi. Parameter posisi adalah variabel shell yang nilainya direferensikan menggunakan sintaks berikut:

$[N]

[N] nilai adalah digit yang menunjukkan posisi parameter. Misalnya, $1 adalah parameter posisi pertama, $2 adalah parameter kedua, dll.

Misalnya:

set first second third

Menjalankan perintah di atas set first agar sesuai dengan $1 parameter posisi, second ke $2 , dan third ke $3 . Periksa ini dengan perintah echo:

echo $2

Hapus parameter posisi dengan menjalankan:

set --

Membagi String

Gunakan set perintah untuk membagi string berdasarkan spasi menjadi variabel terpisah. Misalnya, pisahkan string dalam variabel yang disebut myvar , yang mengatakan "Ini adalah ujian" .

myvar="This is a test"

set -- $myvar
echo $1
echo $2
echo $3
echo $4

Gunakan opsi ini untuk mengekstrak dan memfilter informasi dari output perintah, mirip dengan apa yang dilakukan perintah awk.

Setel allexport dan beri tahu Bendera

-o allexport flag memungkinkan Anda untuk mengekspor semua variabel yang ditentukan selanjutnya secara otomatis, sedangkan -o notify flag memerintahkan shell untuk segera mencetak pesan penyelesaian pekerjaan.

Untuk menyetel bendera, jalankan:

set -o allexport -o notify

Dalam contoh berikut, kami melihat bahwa shell memberi tahu Anda setelah penyelesaian pekerjaan latar belakang sejak skrip diekspor:


Linux
  1. Cara menggunakan perintah grep Linux

  2. Cara menggunakan perintah history di Linux

  3. Cara menggunakan Perintah Su di Linux

  1. Cara Menggunakan Perintah Layar Linux

  2. Cara menggunakan Perintah ldconfig di Linux

  3. Cara menggunakan Perintah ipset di Linux

  1. Cara Menggunakan Perintah Disown di Linux

  2. Cara Menggunakan Perintah SS Linux

  3. Cara Menggunakan Perintah Linux nohup