Shell dapat dikatakan sebagai tempat
interaksi antara pengguna dan sistem Linux yang sedang digunakan. Shell juga bertugas
menerjemahkan atau mengeksekusi program.
Shell menyediakan suatu antarmuka teks
(command line). Shell dapat diguakan untuk mengelola (administering) sistem Linux
seperti menambah pengguna, mengatur file dan direktori dan memantau kerja dari sistem
operasi. Shell Linux ditandai oleh $ (user reguler) atau # (root).
Shell Bash dapat digunakan dalam dua
modus, yaitu modus interaktif dan modus skrip.
Pada modus interaktif, anda menuliskan satu baris perintah disamping
prompt dan mengakhirinya dengan ENTER. Hasil eksekusi akan ditampilkan langsung
pada layar dan anda kembali disediakan prompt untuk memasukkan
perintah-perintah berikutnya. Pada modus skrip, anda menuliskan skrip atau
kode program, berisi perintah-perintah
Linux, menyimpannya ke dalam sebuah file dengan ekstensi
.sh. Selanjutnya file ini dijalankan pada modus Interaktif.
Shell Interaktif
Bagian
ini memperlihatkan bagaimana
memanfaatkan shell interaktif
untuk mengadministrasi sistem Linux yang digunakan. Sebagai latihan awal, coba tulis (akhiri
dengan enter) setiap perintah di bawah ini dan
perhatikan luaran yang dihasilkan (‘$’ tidak diketik, itu hanya
menandakan prompt):
$ b=109; echo "B bernilai :" $b
Secara garis besar anda mengetahui apa fungsi dari perintah di atas,
dengan melihat luarannya. Perintah date
untuk mendapatkan tanggal dan jam, whoami (who am i) untuk mengetahui
nama login dari
pengguna, pwd (print working
directory) untuk mendapatkan nama direktori aktif (dimana anda
berada). Perintah top (table of processes)
untuk memperoleh daftar
proses yang sedang
berjalan. Perintah ls (list)
untuk mendapatkan daftar file dan
direktori dimana pengguna aktif berada.
Bagaimana dengan perintah-perintah lainnya? Anda belum tahu kegunaannya?
Luaran dari eksekusi di atas belum jelas? Anda dapat mengetahui fungsi dan cara
menggunakan perintah di Linux memanfaatkan perintah man, singkatan dari
manual.
Perintah ‘man ls’ digunakan untuk mendapatkan manual dari perintah ls.
Manual berisi fungsi dari perintah, cara pemanggilan perintah bersama dengan
parameter-parameter yang mungkin disertakan dan penjelasan lebih lanjut
mengenai setiap cara penggunaan dan sering disertai beberapa contoh.
Bagaimana mencari file dengan ekstensi tertentu? Misalnya *.jpg? Silakan
gunakan perintah ‘man find, baca dokumentasinya secara teliti dan selesaikan
masalah ini.
Sekarang jalankan
perintah-perintah di bawah
ini, satu demi
satu dan jelaskan maksudnya!
$
echo “belajar shell linux” > nama_file $
echo
“keren abis” >> nama_file
$
echo “OK...sepakat .... te o pe deh” >> nama_file
Apa
kegunaan dari perintah grep? Coba jalankan dua baris perintah yang mengandung perintah
grep. Samakah hasilnya? Apa perbedaannya?
$
cat nama_file | grep "OK"
2.2 Pipeline dan Redirection
Pipeline (garis pipa, |) dapat digunakan untuk
mengirimkan luaran dari suatu perintah ke perintah lain. Menggunakan pipe, luaran dari perintah di sebelah kiri pipe
akan dijadikan masukan bagi perintah di sebelah kanan pipe.
Jalankan baris demi baris di bawah ini dan
cermati hasilnya!
$ echo ”aris joko faza fenny ubaid”
$ echo ”aris joko faza fenny ubaid” | tr ” ”
”\n”
$ echo ”aris joko faza fenny ubaid” | tr ” ”
”\n” | sort
$ echo ”aris joko faza fenny ubaid” | tr ” ”
”\n” | sort -r
Anda tentu telah
paham manfaat dari perintah echo, yaitu hanya mencetak teks yang dijadikan
parameter saat pemanggilannya. Perintah tr digunakan untuk mentranslasi daftar
string. Parameter “ “ “\n” pada
pemanggilan tr mengatakan bahwa ganti spasi (“ “) dengan karakter
baris baru (newline, \n). Perintah
sort dapat digunakan
untuk mengurutkan baris-baris
string (teks). Apa yang dihasilkan oleh baris ke-4 di atas? Apa perbedaannya
dengan baris ke-3?
Redirection atau
pengalihan digunakan untuk mengalihkan luaran eksekusi dari suatu perintah.
Secara default, luaran dari suatu perintah adalah layar (screen). Kita dapat
mengalihkan luaran tersebut ke suatu file dengan menggunakan operator > atau
>>. Operator > digunakan untuk membuat file baru dan memasukkan teks
baru ke dalamnya.
Operator >> digunakan untuk menambahkan
entri selanjutnya ke dalam file yang dibuat oleh operator > sebelumnya.
Sekarang,
jalankan perintah di bawah ini
secara benar dan perhatikan
hasil yang diperoleh!
2.3 Skrip Shell Pertama
Pada bagian ini
anda akan belajar menuliskan sebuah skrip yang sekedar menampilkan pesan
"Halo dunia". Gunakan Text Editor dan buat file teks bernama
pertama.sh seperti dibawah ini:
# Nama file
skrip: pertama.sh
# Skrip ini
menampilkan teks menggunakan perintah echo
echo Halo
dunia # mencetak teks Halo dunia
Baris pertama memberitahukan sistem Linux bahwa file akan dieksekusi oleh program bernama /bin/bash. Ini
merupakan lokasi standard dari shell Bash pada banyak distribusi GNU/Linux. Pada beberapa
distribusi Linux, ada perintah /bin/sh yang merupakan link simbolik ke bash. Baris pertama dari setiap skrip
harus dan hanya mencantumkan “
#!/bin/bash”
atau “#!/bin/sh”.
Baris kedua
dimulai dengan simbol khusus, #. Ini menandakan baris tersebut sebagai suatu
komentar. Shell akan mengabaikannya, tidak memroses komentar tersebut.
Satu-satunya pengecualian adalah
simbol #! yang diletakkan di baris
pertama dari file skrip - seperti pada contoh di atas. Ini adalah direktif
khusus.
Jika anda terbiasa dengan Perl, tentu telah menjumpai adanya #!/usr/bin/perl pada baris pertama setiap skrip Perl untuk
memberitahukan shell interaktif bahwa program tersebut akan dieksekusi oleh
Perl. Pada pemrograman shell Bash adalah #!/bin/sh.
Baris ketiga menjalankan suatu perintah
echo dengan dua parameter atau
argumen - pertama adalah
"Halo" dan kedua adalah "dunia". Perintah
echo akan secara otomatis meletakkan spasi tunggal di antara
parameter-parameternya.
Simbol # menandakan komentar. Karakter # dan apapun yang mengikutinya,
pada baris yang sama, diabaikan oleh shell.
Sekarang jalankan
chmod 755 pertama.sh
atau (chmod +x pertama.sh)
untuk membuat file teks executable dan jalankan skrip dengan
./pertama.sh.
Pada jendela
shell (terminal) terlihat sebagai berikut:
2.4 Perintah echo
Apakah hanya untuk menampilkan dua kata
tersebut kita harus menulis skrip? TIDAK. Anda dapat menggunakan shell
interaktif untuk memperoleh hasil yang sama. Tuliskan langsung perintah echo
Halo dunia di shell dan perhatikan luarannya:
Sekarang buat sedikit perubahan. Pertama,
ingat bahwa echo meletakkan SATU spasi antara parameter-parameternya. Tempatkan
beberapa spasi antara
teks "Halo" dan "dunia". Hasil seperti apa yang
diharapkan? Bagaimana jika anda meletakkan karakter TAB di antaran dua kata
tersebut?
Bagaimana
luaran dari perubahan
tersebut? Output skrip
sama persis dengan sebelumnya. Kita
memanggil program echo
dengan dua argumen;
echo tidak menghiraukan berapa pun jumlah spasi di antaranya.
Sekarang, coba ubah lagi skrip tersebut menjadi:
echo "Halo dunia"
# Ini juga komentar
Kali ini spasi yang ditambahkan tampil
sebagai output. Mengapa? Karena echo dipanggil dengan hanya SATU argumen yang
diapit oleh petik ganda “Halo dunia”.
Tampilan di layar tepat sama dengan yang
dituliskan dalam skrip. Perlu dipahami bahwa shell mem-parse argumen SEBELUM melewatkannya ke program yang dipanggil.
Shell menghilangkan tanda petik dan melewatkan string tersebut sebagai satu
argumen.
Contoh kedua, masih berkaitan dengan
perintah echo. Tulis skrip berikut.
Perkirakan luarannya sebelum menjalankannya:
# Nama file skrip: kedua.sh
# Apa yang dihasilkan skrip ini?
# mencetak teks Halo dunia
Apakah luarannya
sesuai yang diharapkan? Jika tidak,
jangan khawatir! Ini hanya beberapa hal yang akan dibahas pada bagian-bagian
lanjut dalam panduan ini. Dan tentu anda akan belajar perintah-perintah lain
yang lebih powerful daripada echo.