Bash Shell
Bash atau (mulai sekarang) shell de facto di sebagian besar sistem yang banyak digunakan: Linux, macOS, dan WSL di Windows 10/11.
Yaa Oia macOS setelah versi 10.15 Catalina, default shell-nya adalah zsh, bukan bash.
Ada alasan sejarah mengapa bash menjadi shell paling populer di dunia. Kembali ke tahun 1989 saat pertama kali rilis, dunia teknologi sangat berbeda di waktu itu. Di waktu itu, banyak software di dunia UNIX dengan sumber kode yang tertutup. Unix sendiri memiliki paten dan sumber kode yang tertutup.
Untuk menggunakan system UNIX anda harus menggunakan shell.
Shell yang paling populer di waktu itu adalah Bourne Shell (sh). yang tersedia di bawah perintah /bin/sh
. itu disebut “Bourne Shell” karena pembuatnya adalah Steve Bourne.
Richard Stallman di tahun itu dengan GNU Project (dan kedepannya Linux) hampir merevolusi semuanya, dimulai dengan revolusi Sumber Terbuka. GNU Project membutuhkan shell, dan, dengan bantuan dari Free Software Foundation, Lahirlah Bash. yang sangat terinpirasi oleh Bourne Shell, Artinya, Bash adalah Bourne Again Shell dan itu adalah resep kunci dari GNU Project, dan salah satu software yang paling populer di dunia yang masih digunakan hingga saat ini.
Bash bisa menjalankan skrip yang ditulis untuk sh
. yang merupakan fitur wajib untuk adopsi, dan juga memiliki banyak fitur baru yang tidak ada di Bourne Shell, Sejak hari pertama, sudah menawarkan pengalamannya yang sangat baik untuk pengguna. dan mendapatkan banyak improvisasi sejak itu. dan di blog ini, akan membahas tentang hal yang paling populer dan paling berguna di Bash yang bisa anda coba.
Langkah awal di bash
Semenjak Bash adalah shell bawaan di setiap sistem, yang pertama kali mau lsayakan untuk memulai bash shell adalah
- masuk ke sistem, jika itu server
- buka terminal, jika itu laptop/komputer
Saat pertama kali membuka terminal, anda akan melihat prompt (biasanya $
atau #
).
Bagaiman anda tau jika shell anda adalah bash? Coba ketikkan perintah echo $SHELL
di terminal anda. Jika anda mendapatkan /bin/bash
maka anda menggunakan bash, atau coba ketik help
dan klik enter.
Lihat? Kita baru saja meminta bash untuk meng eksekusi perintah help
. Perintah ini akan menampilkan versi bash yang anda gunakan, dan juga daftar perintah yang tersedia di bash.
Lebih sering atau tidak anda tidak akan pernah menggunakan daftar perintah yang tersedia di bash help
, kecuali jika membuat skrip bash. Tapi, ini akan berguna jika anda ingin mengetahui apa saja yang bisa anda lsayakan di bash.
99% dari hari ke hari menggunakan bash untuk menavigasi file dan direktori, dan menjalankan perintah seperti ls
, cd
dan perintah umum utilitas lainnya.
Navigasi sistem file
Untuk menavigasi sistem file anda akan menggunakan perintah ls
, itu tersedia di /bin/ls
, dan semenajak bash punya /bin
folder di $PATH, anda bisa menjalankan perintah ls
tanpa mengetikkan /bin/ls
.
ls
adalah perintah untuk melihat isi dari direktori. Jika anda tidak menentukan direktori, maka akan menampilkan isi dari direktori saat ini.
anda biasanya memulai nya di folder /home
atau /Users
di macOS. dan home folder ku saat ini adalah /home/memet
.
memet@zxce3 ~ $ ls
Desktop Documents Downloads Music Pictures Public Templates Videos
Untuk menavigasi ke direktori lain, anda bisa menggunakan perintah cd
(change directory). dan jika anda ingin kembali ke direktori sebelumnya, anda bisa menggunakan perintah cd -
.
memet@zxce3 ~ $ cd Desktop
memet@zxce3 ~/Desktop $ cd -
memet@zxce3 ~ $
cd ..
akan mengarahkan anda ke direktori sebelumnya, dan cd ../..
akan mengarahkan anda ke direktori dua tingkat sebelumnya.
memet@zxce3 ~ $ cd ..
memet@zxce3 /home $ cd ../..
memet@zxce3 / $
Tergantung dari konfigurasi Bash anda, anda akan melihat folder saat ini di prompt (simbol $
). dan jika anda menggunakan prompt yang lebih sederhana, anda bisa menggunakan perintah pwd
untuk melihat direktori saat ini.
memet@zxce3 ~ $ pwd
/home/memet
arti
pwd
adalah path working directory
Perintah editing
Saat anda mengetikkan perintah di terminal, anda bisa menggunakan beberapa tombol keyboard untuk mengedit perintah yang anda ketikkan. anda bisa menggunakan tombol panah untuk menggeser kursor, dan tombol backspace untuk menghapus karakter sebelum kursor. dan jika anda ingin menghapus seluruh perintah, anda bisa menggunakan perintah Ctrl + u
. Menekan enter
akan menjalankan perintah yang anda ketikkan.
Ini adalah hal yang normal dan dapat diterima, tapi sesuatu yang membuat wow
para pengguna UNIX/Linux awal.
Kombinasi keyboard membantu mu untuk mengedit perintah yang anda ketikkan, dan ini sangat berguna ketika anda ingin mengedit perintah yang panjang, tanpa haru menggunakan tombol panah kursor.
Ctrl + a
akan menggeser kursor ke awal perintahCtrl + e
akan menggeser kursor ke akhir perintahCtrl + f
akan menggeser kursor ke kanan satu karakterCtrl + b
akan menggeser kursor ke kiri satu karakterCtrl + k
akan menghapus semua karakter setelah kursorCtrl + u
akan menghapus semua karakter sebelum kursorCtrl + d
akan menghapus karakter di depan kursor
dan banyak lagi kombinasi keyboard yang bisa anda gunakan untuk mengedit perintah yang anda ketikkan.
Autocomplete
Salah satu fitur yang paling berguna di bash adalah autocompletion. Ini akan membantu anda untuk mengetikkan perintah dengan cepat, dan menghindari kesalahan ketik. coba ketik cd Doc
dan tekan tab
. bash akan menyelesaikan perintah untuk anda. jika ada beberapa pilihan untuk karakter yang anda ketikkan, anda bisa mengetikkan karakter lainnya dan tekan tab
lagi.
memet@zxce3 ~ $ cd Do
Documents/ Downloads/
memet@zxce3 ~ $ cd Doc
memet@zxce3 ~ $ cd Documents/
memet@zxce3 ~/Documents $
Autocompletion juga bekerja untuk nama file dan direktori. coba ketik ls Doc
dan tekan tab
. bash akan menyelesaikan nama direktori untuk anda.
memet@zxce3 ~ $ ls Doc
Documents/ Downloads/
memet@zxce3 ~ $ ls Documents/
image.png image2.png image3.png
Autocompletion juga bisa untuk perintah
Perintah Shell
Menggunakan shell kita bisa menjalankan perintah yang twesedia di sistem kita. dan kita bisa prefix perintah dengan full path (contoh: /bin/ls
atau /usr/bin/ls
untuk menampilkan daftar file dan direktori) tapi sheel punya konsep path
jadi kita cukup mengetikkan ls
dan itu adalah tempat dimana hampir semua perintah yang ada di sistem kita (dan kita bisa menambahkan folder ke path ini dengan menkonfigurasi nya).
perintah memerima argumen. Sebagai contoh ls /bin
akan menampilkan daftar semua file di /bin
folder.
Parameter di awali dengan dash (-
) dan bisa digabungkan. Sebagai contoh ls -a
akan menampilkan semua file termasuk file yang dimulai dengan titik (.
). dan ls -l
akan menampilkan daftar file dengan format yang lebih detail.
Perintah yang sering digunakan
Ada banyak perintah bawaan di semua sistem, dan mereka bervariasi tergantung itu Linux/Unix atau MacOS atau bahkan Distro linux yang anda gunakan.
Namum mari kita lsayakan yang singkat bulat dan yang umum digunakan.
Saat anda mengalami masalah, seperti tidak tau perintah apa, atau tidak tau cara menggunakan nya, anda bisa menggunakan perintah man
untuk melihat dokumentasi perintah tersebut.
Ini adalah daftar perintah sistem yang sering digunakan:
Perintah | Deskripsi |
---|---|
ls | menampilkan daftar file dan direktori |
cd | mengubah direktori saat ini |
pwd | menampilkan direktori saat ini |
mkdir | membuat direktori baru |
mv | memindahkan atau mengganti nama file atau direktori |
cp | menyalin file atau direktori |
rm | menghapus file atau direktori |
Setiap file di Unix punya izin/permisi, dan anda bisa menggunakan perintah chmod
untuk mengubahnya (Belum mau bahas ini). dan chown
untuk mengubah pemilik file.
cat
, tail
dan grep
adalah perintah paling berguna untuk file. cat
untuk menampilkan isi file, tail
untuk menampilkan bagian akhir file, dan grep
untuk mencari string di file.
find
dan locate
adalah perintah untuk mencari file. find
untuk mencari file di direktori saat ini, dan locate
untuk mencari file di seluruh sistem.
tar
dan gzip
adalah perintah untuk mengkompres file. tar
untuk mengkompres file, dan gzip
untuk mengkompres file yang sudah dikompres.
pico
, nano
, vim
dan emacs
adalah editor yang biasa diinstall dan digunakan.
whereis
dan which
adalah perintah untuk mengetahui lokasi perintah. whereis
untuk mengetahui lokasi perintah, dan which
untuk mengetahui lokasi perintah yang akan dijalankan.
dan ada banyak lagi perintah yang bisa anda gunakan di sistem anda. dan itu adalah beberapa perintah yang mungkin akan sering anda gunakan.
Menjalanakan perintah
Perintah cd
dan ls
, yang sudah dijelaskan di atas, yang ditemukan di folder /bin
. anda bisa meng eksekusi file apapun, selagi itu adalah file excutable. dengan mengetikkan full path, sebagai contoh /bin/pwd
. Perintah tidak membutuhkan /bin
folder, dan anda bisa meng eksekusi file yang ada di folder saat ini dengan indikator ./
path.
Contoh jika anda punya file yamete
di folder /home/memet/scripts
, anda bisa menjalankan
cd /home/memet/scripts
dan kemudian jalankan ./yamete
untuk menjalankan file tersebut.
Atau anda bisa menjalankan /home/memet/scripts/yamete
dari Bash, apapun folder saat ini.
Jobs
Di saat anda menjalankan perintah apapun, jika itu program yang memakan waktu lama, shell mu dikuasai oleh program tersebut. anda bisa menghentikan perintah dengan menekan ctrl + c
.
anda bisa menjalankan perintah di background dengan menambahkan &
di akhir perintah. Sebagai contoh sleep 1000 &
akan menjalankan perintah sleep
selama 1000 detik di background.
anda bisa melihat daftar perintah yang sedang berjalan dengan perintah jobs
. dan anda bisa menghentikan perintah dengan perintah kill
dan killall
.
memet@zxce3:~$ sleep 1000 &
[1] 1234
memet@zxce3:~$ jobs
[1]+ Running sleep 1000 &
memet@zxce3:~$ kill 1234
memet@zxce3:~$ jobs
[1]+ Terminated sleep 1000 &
Perintah yang berjalan di background akan berhenti jika shell anda ditutup.
Perintah berguna lainnya adalah ps
untuk melihat daftar proses yang sedang berjalan.
memet@zxce3:~$ ps
PID TTY TIME CMD
123 pts/0 00:00:00 bash
456 pts/0 00:00:00 ps
dan top
untuk melihat daftar proses yang sedang berjalan secara real time.
Sebuah job proses bisa dihentikan menggunakan kill <PID>
Perintah History
Menekan tombol up
kursor akan menampilkan perintah yang pernah anda jalankan. dan lagi, ini adalah fitur shell. Menekan tombol down
akan membantu mu menavigasi kembali ke perintah yang baru saja dijalankan. dan menekan enter
akan menjalankan perintah itu lagi.
Ini adalah akses cepat ke perintah yang pernah anda jalankan. Menjalankan perintah history
akan menampilkan semua daftar perintah yang pernah anda jalankan.
memet@zxce3:~$ history
1 ls
2 cd /home/memet
3 ls
4 cd /home/memet/scripts
5 ls
6 history
Saat anda mulai mengetik perintah, Bash bisa auto complete perintah yang anda jalankan dengan mereferensi perintah yang sebelumnya pernah dijalankan. coba dengan menekan esc
dan kemudian tab
.
Jujur aja saya menemukan implementasi dari fish shell yang lebih baik dan lebih mudah. mungkin saya akan bahas nanti.
Mengatur shell default
Ada banyak shell selain Bash. Seperti Fish, Zsh, TCSH, dan lainnya. Setiap user di sistem bisa memilih shell yang mereka inginkan. dan anda bisa mengubah shell default dengan perintah chsh
.
memet@zxce3:~$ chsh
Changing shell for memet.
Password:
New shell [/bin/bash]: /bin/zsh
memet@zxce3:~$ echo $SHELL
/bin/zsh
Kustomisasi Bash
Sudah di tulis sebelumnya bahwa anda bisa (atau tidak) melihat direktori saat ini di bash prompt. Dimana ini ditentukan? di file konfigurasi Bash!
Ada sedikit yang membingungkan disini karena Bash menggunakan konfigurasi file yang berbeda untuk skenario yang berbeda pula, dan itu juga membaca beberapa file konfiguras.
Mari kita bahas satu persatu tentang kebingungan ini. Pertama, ada perbedaan besar apakah Bash di inisialisasi sebagai login shell atau non-login shell. Login shell berarti bahwa sistem tidak berjalan di GUI (Graphical User Interface) dan anda login ke sistem dengan melalui shell. Ini dalam konteks server, sebagai contoh.
di kasus ini, Bash membaca file konfigurasi /etc/profile
dan lihat di home folder pengguna, ada file konfigurasi.
~/.bash_profile
~/.bash_login
~/.profile
dimana ~
adalah home folder pengguna (ini otomatis di translate oleh Bash).
Ini berarti jika ada .bash_profile
, ~/.bash_login
dan ~/.profile
di home folder pengguna, maka Bash akan membaca file-file tersebut. dan jika ada file .bash_profile
dan ~/.bash_login
di home folder pengguna, maka Bash akan membaca file .bash_profile
terlebih dahulu.
Jika Bash dijalankan sebagai non-login shell, maka Bash akan membaca file konfigurasi ~/.bashrc
.
Environment Variable
Terkadang anda punya program yang menggunakan enviroment variables. itu ada nilai yang bisa di set diluar program, dan program tersebut bisa mengaksesnya. sebuah API key, contohnya. Atau sebuah path yang anda butuhkan untuk menjalankan program.
anda bisa set environment variable dengan sintaks seperti ini.
NAMA_VARIABEL=ISINYA
ini dari nilai bisa mengandung spasi dan karakter khusus. dengan menggunakan quotes.
NAMA_VARIABEL="ISINYA INI"
Bash skrip bisa menggunaka variabel dengan sintaks $NAMA_VARIABEL
.
memet@zxce3:~$ NAMA_VARIABEL="ISINYA INI"
memet@zxce3:~$ echo $NAMA_VARIABEL
ISINYA INI
Bash juga menyediakan beberapa variabel yang bisa anda gunakan, seperti
$HOME
untuk home folder pengguna$PATH
untuk path yang bisa di akses oleh program$SHELL
untuk shell yang sedang dijalankan$USER
untuk nama pengguna
anda bisa melihat isi dari variabel tersebut menggunakan perintah echo
memet@zxce3:~$ echo $HOME
/home/memet
memet@zxce3:~$ echo $SHELL
/bin/bash
Enviroment variable spesial: $PATH
$PATH
adalah variabel yang berisi daftar path yang bisa di akses oleh program. dan shell akan meliaht ini saat anda mengetik perintah. folder di pisahkan dengan colon :
dan mereka di urutkan dari kiri ke kanan - Bash akan melihat yang pertama, mencari perintah di sana, dan jika tidak ada, melihat yang kedua, dan seterusnya.
path ku sekarang adalah seperti ini.
memet@zxce3:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin/:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/games:
anda bisa edit ini di file ~/.bashrc
dengan menambahkan path yang anda inginkan.
PATH=$PATH:/home/memet/scripts
Aliases
Aliases adalah shortcut untuk perintah yang sering anda gunakan. misalnya, anda bisa membuat alias untuk git status
dengan gst
.
memet@zxce3:~$ alias gst='git status'
memet@zxce3:~$ gst
On branch master
Your branch is up to date with 'origin/master'.
Untu mendefinisikan alias bisa menggunakan syntax seperti ini.
alias <alias>=<perintah>
jika anda ingin membuat alias untuk perintah yang panjang, anda bisa menggunakan quotes.
alias <alias>="<perintah>"
anda juga bisa mendefinisikan alias di file ~/.bashrc
.
Berhati-hati dengan tanda kutip jika anda memiliki variable didalam perintah: menggunakan quotes ganda variabel akan diselesaikan pada waktu definisi, menggunakan tanda kutip tunggal variabel akan diselesaikan pada waktu pemanggilan. 2 hal itu berbeda.
alias lsini="ls $PWD"
alias lssek='ls $PWD'
$PWD
mengacu pada folder saat ini, dan jika anda mengetik lsini
dan lssek
, anda akan mendapatkan hasil yang berbeda. lsini
akan menampilkan isi dari folder saat ini, sedangkan lssek
akan menampilkan isi dari folder dimana anda mendefinisikan alias.
Fitur lanjutan baris perintah
Wildcard
ls
dan banyak perintah lain bisa menggunakan wildcard, anda bisa melihat daftar semua file yang dimulai dengan a
dengan perintah ls a*
.
memet@zxce3:~$ ls a*
a.txt ab.txt abc.txt
atau anda bisa melihat semua file yang diakhiri dengan .txt
dengan perintah ls *.txt
.
memet@zxce3:~$ ls *.txt
a.txt ab.txt abc.txt
atau semua file yang diakhiri dengan b
atau c
dengan perintah ls *b* *c*
.
memet@zxce3:~$ ls *b* *c*
a.txt ab.txt abc.txt
Mengarahkan output dan standard error error
Secara default, perintah yang dimulai di shell menjecta kedua output dan error ke terminal. mungkin ini bukan yang anda inginkan, anda bisa menentukan kemana output itu akan dibuat.
Sebenarnya, ke /file lain/, karena di Unix bahkan layar saja di anggap sebagai file. Secara khusus
0
adalah standard input1
adalah standard output2
adalah standard error
anda bisa mengarahkan standar output ke file dengan menambahkan 1>
di belakang perintah, di ikuti dengan nama file
Menggunakan teknik yang sama anda bisa mengarahkan standard error ke file dengan menambahkan 2>
.
ada shortcut >
jadi 1>
, karena ini digunakan paling banyak.
Contoh:
ls 1> output.txt 2> error.txt
ls > output.txt 2> error.txt
Shortcut lainnya, &>
mengarahkan /kedua/ standar output dan standar error ke file yang sama.
ls &> output.txt
Hal lain yang sering anda lsayakan adalah mengarahkan kedua standar output dan standar error ke /sama/ tempat. anda bisa menggunakan 2>&1
untuk mengarahkan standard error ke tempat yang sama dengan standard output.
ls 1> output.txt 2>&1
Menjalankan perintah di background
anda bisa mengatakan pada Bash untuk menjalankan perintah di background tanpa harus mengambil kontrol dari shell, dengan menambahkan &
di belakang perintah.
memet@zxce3:~$ top &
[1] 1234
top
adalah perintah yang menampilkan daftar proses yang sedang berjalan di sistem.
[1] 1234
adalah pesan yang menunjukkan bahwa perintah sedang berjalan di background, dan nomor prosesnya adalah 1234
.
Aplikasi yang biasanya mengendalikan shell, kini berjalan namun seperti tidak ada yang terjadi. anda bisa mengembalikan ke shell dengan mengetik fg
(foreground), tapi sekarang kita akan memasuki ranah proses dan pekerjaan yang merupakan topik besar tersendiri, ini gambaran singkatnya:
Saat sebuah perintah sedang berjalan, anda bisa menggunakan Ctrl + Z
untuk men-jeda perintah tersebut, dan mengarahkan nya ke background. Shell kembali ke foreground, dan anda sekarang bisa menjalankan bg
untuk menjalankan perintah yang di jeda di background tadi.
Ketika anda siap untuk kembali kesana, anda bisa menggunakan fg
untuk mengembalikan perintah ke foreground.
anda juga bisa melihat daftar proses yang sedang berjalan di background dengan perintah ps
, dan daftar menunjukkan semua nomor pid
proses. dengan menggunakan pid
proses yang dijeda, anda bisa mengembalikan proses tersebut ke foreground dengan perintah fg <pid>
. Hal yang sama juga berlsaya untuk bg
.
memet@zxce3:~$ ps
PID TTY TIME CMD
1234 pts/0 00:00:00 top
1235 pts/0 00:00:00 bash
1236 pts/0 00:00:00 ps
memet@zxce3:~$ fg 1234
top
Antrian perintah
anda bisa meminta Bash untuk menjalankan perintah setelah perintah lain selesai dengan memisahkan mereka dengan ;
semikolon.
memet@zxce3:~$ sleep 5; echo "selesai"
selesai
anda bisa mengulangi antriannya perinitah di satu baris yang sama.
Mengarahkan output
Program bisa menerima input dari file apapun dengan menggunakan operator <
, dan mengarahkan output ke file lain dengan menggunakan operator >
.
memet@zxce3:~$ echo "halo" > output.txt
memet@zxce3:~$ wc < output.txt
1 1 6 output.txt
wc
adalah perintah yang menghitung jumlah kata, baris, dan karakter dalam file.
Pipe
Pipe adalah operator yang mengarahkan output dari perintah ke input perintah lain. Ini adalah cara yang sangat efektif untuk mengolah data. Ini mirip dengan >
operator, tapi lebih fleksibel. Menggunakan operator |
untuk mengabungkan perintah.
contoh wc
mendapatkan input dari output echo halo
dan menghitung jumlah kata, baris, dan karakter dalam string.
memet@zxce3:~$ echo "halo" | wc
1 1 6
Grup perintah
Gunakan &&
untuk menggabungkan dua perintah dengan menggunkan katak “dan”. Jika perintah pertama berhasil, perintah kedua akan dijalankan. Jika perintah pertama gagal, perintah kedua tidak akan dijalankan, dan seterusnya.
memet@zxce3:~$ false && echo "berhasil"
memet@zxce3:~$ true && echo "berhasil"
berhasil
Gunakan ||
untuk menggabungkan dua perintah dengan kata “atau”. Jika perintah pertama gagal, perintah kedua akan dijalankan. Jika perintah pertama berhasil, perintah kedua tidak akan dijalankan, dan seterusnya.
memet@zxce3:~$ false || echo "berhasil"
berhasil
memet@zxce3:~$ true || echo "berhasil"
memet@zxce3:~$
!
operator membalikkan nilai dari perintah.
memet@zxce3:~$ !true
false
memet@zxce3:~$ !false
true
anda juga bisa menggunakan tanda kurung untuk menggabungkan ekspresi untuk menghindari kebingungan dan juga mengubah prioritas eksekusi.
memet@zxce3:~$ (true && false) || true
true
memet@zxce3:~$ ! (true && false) || true
false
Shell script
Salah satu fitru terbaik sheel seperti Bash mampu membuat program yang bisa dijalankan di shell, ya bisa dibilang otomatisai eksekusi perintah.
Dan saya akan membuat beberapa blog tentang ini nanti. yang akan terbagi dalam beberapa tutorial. mengapa tidak dijadikan satu saja? ya karena topik nya itu jauh lebih mendalam dan panjang.
Sedikit perkenalan: skrip adalah file text yang dimulai dengan baris yang menunjukkan bahwa itu sebuah shell script (dan apa yang dibutuhkan shell), dan kemudian berisi perintah shell yang akan dijalankan.
#!/bin/bash
echo "halo"
anda bisa menyimpan ini sebagai file skrip
dan menjadikan file tersebut executable dengan perintah chmod +x skrip
. Kemudian anda bisa menjalankan file tersebut dengan perintah ./skrip
(./
adalah lokasi file sekarang).
Shell scripting sebenarnya diluar lingkup dari tutorial ini, tapi saya ingin anda tahu tentang ini. Jadi saya akan membuat beberapa tutorial tentang shell scripting nanti. Skrip bisa melsayakan banyak hal, seperti mengambil input dari pengguna, mengolah data, dan banyak lagi.
Scripting strategi juga bekerja di banyak shell lain, seperti zsh
, fish
, dan csh
.
Contoh fish shell script
#!/usr/bin/fish
echo "halo"
Silahkan berikan komentar dan saran untuk blog ini. Terima kasih.