GNU/Linux >> Belajar Linux >  >> Linux

Cara menggunakan ekspansi shell untuk menghasilkan token shell di Linux

Ekspansi Shell

Saat bekerja di shell, set atau rentang informasi sering diulang. Ekspansi shell membantu menghasilkan sejumlah besar token shell menggunakan sintaks yang ringkas. Perluasan dilakukan pada baris perintah setelah perintah dipecah menjadi token. Dari sekian banyak perluasan yang tersedia, nama jalur, nama file, dan perluasan kurung kurawal dijelaskan di depan.

Perluasan Nama Jalur

Perluasan pathname menyederhanakan perubahan lokasi dalam hierarki direktori. Perluasan nama jalur mencakup:
tilde (~) karakter, yang mewakili nama path absolut dari direktori home dari pengguna saat ini
– Karakter tilde (~) dengan nama pengguna, yang mewakili direktori home dari pengguna yang ditentukan
– Tanda hubung ( -) karakter, yang mewakili direktori kerja sebelumnya

Catatan :Karakter tilde (~) tersedia di semua shell kecuali shell Bourne.

Perhatikan contoh berikut untuk setiap karakter perluasan:
1. Ubah direktori menjadi dir1 dengan menggunakan karakter tilde (~).

$ cd ~/dir1
$ pwd 
/home/user/dir1/

2. Ubah direktori ke direktori home pengguna menggunakan karakter tilde (~) diikuti dengan nama pengguna.

$ cd ~user
$ pwd 
/home/user

3. Beralih antara direktori pengguna dan tmp menggunakan karakter – ekspansi.

$ cd
$ pwd
/home/user
$ cd /tmp
$ pwd
/tmp
$ cd -
/export/home/user1
$ cd -
/tmp

Ekspansi Nama File

Perluasan nama file adalah:

  • Karakter asterisk (*)
  • Karakter tanda tanya (?)
  • Karakter kurung siku ([])

1. Karakter Asterisk (*)

Karakter ekspansi asterisk (*) juga disebut karakter wildcard dan mewakili nol atau lebih karakter, kecuali titik awal (.) dari file tersembunyi. Misalnya, daftar semua file dan direktori yang dimulai dengan huruf f diikuti dengan nol atau lebih karakter lainnya.

$ ls f*
file.1 file.2 file.3 file4

Contoh lainnya adalah membuat daftar semua file dan direktori yang diakhiri dengan angka 3, didahului dengan nol karakter atau lebih.

$ ls *3
file.3 file3

2. Tanda Tanya (?) Karakter

Karakter tanda tanya (?) juga disebut karakter wildcard dan mewakili karakter tunggal apa pun kecuali titik awal (.) dari file tersembunyi. Misalnya, daftar semua file dan direktori yang dimulai dengan string dir dan diikuti oleh satu karakter lainnya.

 $ ls dir?
dir1:
coffees fruit trees
dir2:
beans notes recipes

Jika tidak ada file yang cocok dengan entri yang menggunakan karakter tanda tanya (?), pesan kesalahan akan muncul.

$ ls z?
z?: No such file or directory

3. Kurung Kotak ([]) Karakter

Tanda kurung siku ([] ) karakter mewakili satu set atau rentang karakter untuk satu posisi karakter.
– Satu set karakter adalah sejumlah karakter tertentu, misalnya, [acb]. Karakter dalam satu set tidak harus dalam urutan apa pun. Misalnya, [abc] sama dengan [cab].
– Rentang karakter adalah serangkaian karakter yang diurutkan.

  • Rentang mencantumkan karakter pertama diikuti dengan tanda hubung (-) dan kemudian karakter terakhir, misalnya, [a–z] atau [0–9].
  • Saat menentukan rentang, atur karakter dalam urutan yang Anda inginkan agar muncul di output.
  • Misalnya, gunakan [A–Z] atau [a–z] untuk mencari karakter alfabet huruf besar atau kecil.

Misalnya, daftar semua file dan direktori yang dimulai dengan huruf a sampai f.

$ ls [a-f]*
brands    dante_1    file.1    file2    file4 
celery    feathers    file1    file.3   fruit 
dante    feathers_6    file.2    file3     fruit2

Misalnya, daftar semua file dan direktori yang dimulai dengan huruf f atau p.

$ ls [fp]*
perm    file.1    file.2    file.3    file4    fruit2
feathers_6   file1    file2     file3     fruit

Ekspansi Brace

Ekspansi {} brace adalah mekanisme yang dapat digunakan untuk menghasilkan string arbitrer. Pola yang akan diperluas dengan kurung kurawal berbentuk pembukaan opsional, diikuti oleh serangkaian string yang dipisahkan koma atau ekspresi urutan di antara sepasang kurung kurawal, diikuti oleh skrip tambahan opsional. Pembukaan “a” diawali dengan setiap string yang ada di dalam kurung kurawal, dan postscript “e” kemudian ditambahkan ke setiap string yang dihasilkan, meluas dari kiri ke kanan.

$ echo a{d,c,b}e
ade ace abe


Linux
  1. Cara Mengganti Shell di Linux

  2. Cara menggunakan FTP di Linux untuk mentransfer file

  3. Cara menggunakan perintah tar di Linux

  1. Cara menggunakan fungsi shell baris perintah di Linux

  2. Cara menggunakan pengalihan perintah di Linux

  3. Cara menggunakan ekspansi shell untuk menghasilkan token shell di Linux

  1. Cara menggunakan BusyBox di Linux

  2. Cara menggunakan rsync lanjutan untuk cadangan Linux besar

  3. Cara efektif menggunakan Halaman Man di Linux