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
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