-
1.1. Operasi File
1.2. Operasi Teks
1.3. Operasi Direktori
-
2.1. Variabel
2.2. Array
2.3. Substitusi String
2.4. Triks String Lainnya
2.5. Fungsi
2.7. Pengulangan
Displays all environment variables. If you want to get details of a specific variable, use echo $VARIABLE_NAME.
exportContoh:
$ export
AWS_HOME=/Users/adnanadnan/.aws
LANG=en_US.UTF-8
LC_CTYPE=en_US.UTF-8
LESS=-R
$ echo $AWS_HOME
/Users/adnanadnan/.awswhatis menampilkan deskripsi dari perintah yang diinputkan user atau pengguna, system calls, library functions, dan lainnya pada terminal.
whatis somethingExample:
$ whatis bash
bash (1) - GNU Bourne-Again SHellwhereis digunakan untuk mencari executable file, source filesnya, dan ditampilkan di terminal menggunakan database yang dibuat oleh sistem secara otomatis.
whereis nameExample:
$ whereis php
/usr/bin/phpwhich digunakan untuk mencari executable file yang ada di direktori tertentu yang sudah ditentukan sebelumnya oleh PATH environment variable. Perintah ini akan menampilkan PATH dari executable file yang ingin kamu cari.
which program_nameExample:
$ which php
/c/xampp/php/phpMenghapus isi dari console atau terminal.
| cat | chmod | chown | cp | diff | file | find | gunzip | gzcat | gzip | head |
| lpq | lpr | lprm | ls | more | mv | rm | tail | touch |
It can be used for the following purposes under UNIX or Linux.
- Display text files on screen
- Copy text files
- Combine text files
- Create new text files
cat filename
cat file1 file2
cat file1 file2 > newcombinedfile
cat < file1 > file2 #copy file1 to file2 file1 > file2 #copy file1 to file2Perintah atau command chmod adalah singkatan dari "change mode" yang memungkinkan Kita untuk mengubah izin read, write, dan execute pada file dan folder. Untuk informasi lebih lanjut tentang perintah ini, kunjungi tautan berikut Link.
chmod -options filenamePerintah chown yang merupakan singkatan dari "change owner", memungkinkan Kita untuk mengubah pemilik atau owner dari file atau folder, yang mana dapat berupa user atau group. Kombinasi penggunaannya yaitu user (owner), kemudian groupnya, yang dipisahkan oleh titik dua (:).
chown -options user:group filenameCopies a file from one location to other.
cp filename1 filename2Dimana filename1 adalah file sumbernya dan filename2 adalah file destinasinya.
Compares files, and lists their differences.
diff filename1 filename2Determine file type.
file filenameExample:
$ file index.html
index.html: HTML document, ASCII textMenemukan suatu file dalam direktori tertentu.
find directory options patternExample:
find . -name README.md
find /home/user1 -name '*.png'Un-compresses files compressed by gzip.
gunzip filenameLets you look at gzipped file without actually having to gunzip it.
gzcat filenameCompresses files.
gzip filenameOutputs the first 10 lines of file
head filenameCheck out the printer queue.
lpqExample:
$ lpq
Rank Owner Job File(s) Total Size
active adnanad 59 demo 399360 bytes
1st adnanad 60 (stdin) 0 bytesPrint the file.
lpr filenameRemove something from the printer queue.
lprm jobnumberLists your files. ls has many options: -l lists files in 'long format', which contains the exact size of the file, who owns the file, who has the right to look at it, and when it was last modified. -a lists all files, including hidden files. For more information on this command check this link.
ls optionExample:
$ ls -la rwxr-xr-x 33 adnan staff 1122 Mar 27 18:44 . drwxrwxrwx 60 adnan staff 2040 Mar 21 15:06 .. -rw-r--r--@ 1 adnan staff 14340 Mar 23 15:05 .DS_Store -rw-r--r-- 1 adnan staff 157 Mar 25 18:08 .bumpversion.cfg -rw-r--r-- 1 adnan staff 6515 Mar 25 18:08 .config.ini -rw-r--r-- 1 adnan staff 5805 Mar 27 18:44 .config.override.ini drwxr-xr-x 17 adnan staff 578 Mar 27 23:36 .git -rwxr-xr-x 1 adnan staff 2702 Mar 25 18:08 .gitignore
Shows the first part of a file (move with space and type q to quit).
more filenameMoves a file from one location to other.
mv filename1 filename2Yang mana filename1 adalah file sumbernya filename2 adalah destinasinya.
Juga digunakan untuk mengganti nama atau rename file.
mv old_name new_nameDigunakan untuk menghapus file. Akan error jika command ini digunakan untuk menghapus direktori.
rm: directory: is a directory
Untuk menghapus direktori cukup tambahkan argumen -r sehingga akan menghapus isi direktori secara rekursif. Opsi lainnya yaitu jika ingin mengahapus file atau direktori tanpa konfirmasi terlebih dahulu gunakan argumen -f.
rm filenameOutputs the last 10 lines of file. Use -f to output appended data as the file grows.
tail filenameMemperbarui akses dan time stamps dari file. Kita juga bisa memanfaatkan touch untuk membuat file baru.
touch filenameExample:
touch trick.md| awk | cut | echo | egrep | fgrep | fmt | grep | nl | sed | sort |
| tr | uniq | wc |
awk adalah perintah yang sangat berguna dalam menangani file teks. Beroperasi pada file baris per baris. Secara default menggunakan spasi untuk memisahkan bidang-bidangnya. Berikut ini sintaks-sintaks yang umum digunakan
awk '/search_pattern/ { action_to_take_if_pattern_matches; }' file_to_parseMari kita ambil contoh dari file berikut /etc/passwd. Berikut data ada:
root:x:0:0:root:/root:/usr/bin/zsh
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
Sekarang coba kita dapatkan usernamenya saja dari file tadi. Dimana -F menentukan basis mana yang dipisahkan. dalam kasus ini :. { print $1 }artinya mencetak bidang pertama yang cocok.
awk -F':' '{ print $1 }' /etc/passwdSetelah menjalankan perintah tersebut dalam menghasilkan output atau keluaran seperti berikut.
root
daemon
bin
sys
sync
Untuk informasi lebih lanjut mengenai penggunaan awk, cek link berikut link.
Hapus bagian tertentu dari baris teks tertentu
example.txt
red riding hood went to the park to playtunjukkan kolom 2 , 7 , dan 9 dengan spasi sebagai pemisah
cut -d " " -f2,7,9 example.txtriding park playMenampilkan setiap baris dalam teks
tampilkan "Hello World"
echo Hello WorldHello Worldtampilkan "Hello World" dengan baris baru di antara kata-kata (enter)
echo -ne "Hello\nWorld\n"Hello
WorldMencetak baris dengan pola yang diinginkan - Extended Expression (alias for: 'grep -E')
example.txt
Lorem ipsum
dolor sit amet,
consetetur
sadipscing elitr,
sed diam nonumy
eirmod tempor
invidunt ut labore
et dolore magna
aliquyam erat, sed
diam voluptua. At
vero eos et
accusam et justo
duo dolores et ea
rebum. Stet clita
kasd gubergren,
no sea takimata
sanctus est Lorem
ipsum dolor sit
amet.tampilkan baris yang memiliki "Lorem" or "dolor" di dalamnya.
egrep '(Lorem|dolor)' example.txt
or
grep -E '(Lorem|dolor)' example.txtLorem ipsum
dolor sit amet,
et dolore magna
duo dolores et ea
sanctus est Lorem
ipsum dolor sitMencetak baris yang cocok dengan pola - FIXED pattern matching (alias for: 'grep -F')
example.txt
Lorem ipsum
dolor sit amet,
consetetur
sadipscing elitr,
sed diam nonumy
eirmod tempor
foo (Lorem|dolor)
invidunt ut labore
et dolore magna
aliquyam erat, sed
diam voluptua. At
vero eos et
accusam et justo
duo dolores et ea
rebum. Stet clita
kasd gubergren,
no sea takimata
sanctus est Lorem
ipsum dolor sit
amet.Menemukan string yang tepat '(Lorem|dolor)' in example.txt
fgrep '(Lorem|dolor)' example.txt
or
grep -F '(Lorem|dolor)' example.txtfoo (Lorem|dolor)Format teks dengan simpel
example: example.txt (1 line)
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.keluaran example.txt hingga 20 baris
cat example.txt | fmt -w 20Lorem ipsum
dolor sit amet,
consetetur
sadipscing elitr,
sed diam nonumy
eirmod tempor
invidunt ut labore
et dolore magna
aliquyam erat, sed
diam voluptua. At
vero eos et
accusam et justo
duo dolores et ea
rebum. Stet clita
kasd gubergren,
no sea takimata
sanctus est Lorem
ipsum dolor sit
amet.Looks for text inside files. You can use grep to search for lines of text that match one or many regular expressions, and outputs only the matching lines.
grep pola namafileContoh:
$ grep admin /etc/passwd
_kadmin_admin:*:218:-2:Kerberos Admin Service:/var/empty:/usr/bin/false
_kadmin_changepw:*:219:-2:Kerberos Change Password Service:/var/empty:/usr/bin/false
_krb_kadmin:*:231:-2:Open Directory Kerberos Admin Service:/var/empty:/usr/bin/falseAnda juga dapat memaksa grep untuk mengabaikan huruf besar/kecil dengan menggunakan opsi -i. -r dapat digunakan untuk mencari semua file didalam direktori tertentu, contohnya:
grep -r admin /etc/Dan -w untuk mencari kata saja. Untuk detail lebih lanjut tentang grep, silahkan kunjungi [link] berikut (https://www.cyberciti.biz/faq/grep-in-bash).
Menghitung jumlah baris dari sebuah file teks
example.txt
Lorem ipsum
dolor sit amet,
consetetur
sadipscing elitr,
sed diam nonumy
eirmod tempor
invidunt ut labore
et dolore magna
aliquyam erat, sed
diam voluptua. At
vero eos et
accusam et justo
duo dolores et ea
rebum. Stet clita
kasd gubergren,
no sea takimata
sanctus est Lorem
ipsum dolor sit
amet.tampilkan example.txt dengan nomor barisnya
nl -s". " example.txt 1. Lorem ipsum
2. dolor sit amet,
3. consetetur
4. sadipscing elitr,
5. sed diam nonumy
6. eirmod tempor
7. invidunt ut labore
8. et dolore magna
9. aliquyam erat, sed
10. diam voluptua. At
11. vero eos et
12. accusam et justo
13. duo dolores et ea
14. rebum. Stet clita
15. kasd gubergren,
16. no sea takimata
17. sanctus est Lorem
18. ipsum dolor sit
19. amet.Sed atau kepanjangannya Stream editor biasas digunakan untuk memfilter dan mengubah teks
example.txt
Hello This is a Test 1 2 3 4ganti semua spasi dengan tanda hubung
sed 's/ /-/g' example.txtHello-This-is-a-Test-1-2-3-4ganti semua digit/angka dengan "d"
sed 's/[0-9]/d/g' example.txtHello This is a Test d d d dMengurutkan baris file teks
example.txt
f
b
c
g
a
e
dmengurutkan example.txt
sort example.txta
b
c
d
e
f
gmengacak yang sebelumnya sudah disort example.txt
sort example.txt | sort -Rb
f
a
c
d
g
eMenerjemahkan atau menghapus karakter.
example.txt
Hello World Foo Bar Baz!mengambil semua huruf kecil dan menjadikannya huruf kapital
cat example.txt | tr 'a-z' 'A-Z'HELLO WORLD FOO BAR BAZ!mengganti semua spasi dengan menjadikannya sebagai baris baru
cat example.txt | tr ' ' '\n'Hello
World
Foo
Bar
Baz!Laporkan atau hilangkan baris yang berulang
example.txt
a
a
b
a
b
c
d
ctampilkan hanya baris-baris unik dari example.txt (pertama-tama Anda harus mengurutkannya, jika tidak maka tidak akan terlihat tumpang tindih)
sort example.txt | uniqa
b
c
dtampilkan item unik untuk setiap baris, dan beri tahu saya berapa banyak contoh yang ditemukan
sort example.txt | uniq -c 3 a
2 b
2 c
1 dTells you how many lines, words and characters there are in a file.
wc filenameContoh:
$ wc demo.txt
7459 15915 398400 demo.txtDi mana 7459 adalah jumlah baris, 15915 adalah jumlah kata, dan 398400 adalah jumlah karakter.
| cd | mkdir | pwd |
Moves you from one directory to other. Running this
cdmemindahkan Anda ke direktori home. Perintah ini menerima sebuah dirname opsional, yang akan memindahkan Anda ke direktori tersebut.
cd dirnameMakes a new directory.
mkdir dirnameAnda dapat menggunakan ini untuk membuat beberapa direktori sekaligus di dalam direktori Anda saat ini.
mkdir 1stDirectory 2ndDirectory 3rdDirectoryYou can also use this to create parent directories at the same time with the -p (or --parents) flag. For instance, if you wanted a directory named 'project1' in another subdirectory at '/samples/bash/projects/', you could run:
mkdir -p /samples/bash/projects/project1
mkdir --parents /samples/bash/projects/project1Kedua perintah di atas akan melakukan hal yang sama. Jika salah satu direktori ini belum ada, maka direktori tersebut akan dibuat juga.
Tells you which directory you currently are in.
pwd| bg | cal | date | df | dig | du | fg | finger | jobs | last |
| man | passwd | ping | ps | quota | scp | ssh | top | uname | uptime |
| w | wget | whoami | whois | sync | curl |
Melihat daftar pekerjaan (jobs) yang dihentikan atau proses yang berjalan dilatar belakang (background); melanjutkan pekerjaan yang dihentikan di latar belakang.
Menampilkan kalender dalam format bulan.
Menampilkan tanggal dan waktu saat ini.
Menunjukkan penggunaan disk.
Gets DNS information for domain.
dig domainMenunjukkan penggunaan disk dari file atau direktori. Untuk informasi lebih lanjut mengenai perintah ini, lihat [link] ini (http://www.linfo.org/du.html).
du [option] [filename|directory]Options:
-h(human readable) Displays output it in kilobytes (K), megabytes (M) and gigabytes (G).-s(supress or summarize) Outputs total disk space of a directory and supresses reports for subdirectories.
Example:
du -sh pictures
1.4M picturesMenampilkan pekerjaan terbaru di latar depan (foreground).
Displays information about user.
finger usernameMencantumkan pekerjaan yang berjalan di latar belakang, dengan memberikan penomoran pada pekerjaan itu.
Lists your last logins of specified user.
last yourUsernameShows the manual for specified command.
man commandMemungkinkan pengguna yang masuk saat ini untuk mengubah kata sandi mereka (password).
Pings host and outputs results.
ping hostLists your processes.
ps -u yourusernameUse the flags ef. e for every process and f for full listing.
ps -efShows what your disk quota is.
quota -vMentransfer file antara host lokal dan host jarak jauh atau antara dua host jarak jauh (remote host).
menyalin dari host lokal ke host jarak jauh (remote host)
scp source_file user@host:directory/target_filemenyalin dari host jarak jauh ke host lokal
scp user@host:directory/source_file target_file
scp -r user@host:directory/source_folder target_folderThis command also accepts an option -P that can be used to connect to specific port.
scp -P port user@host:directory/source_file target_filessh (SSH client) is a program for logging into and executing commands on a remote machine.
ssh user@hostThis command also accepts an option -p that can be used to connect to specific port.
ssh -p port user@hostMenampilkan proses Anda yang sedang aktif.
Shows kernel information.
uname -aMenunjukkan waktu aktif saat ini.
Menampilkan siapa yang sedang online.
Downloads file.
wget fileMenampilkan nama pengguna yang kita pakai saat ini.
Gets whois information for domain.
whois domainMelakukan pekerjaan yang sama persis dengan perintah scp, tetapi hanya mentransfer file yang diubah. Berguna saat mentransfer folder yang sama ke/dari server beberapa kali.
rsync source_folder user@host:target_folder
rsync user@host:target_folder target_folderCurl adalah alat bantu untuk meminta atau mengirim data menggunakan sintaks URL. Berguna pada sistem di mana Anda hanya memiliki terminal yang tersedia untuk membuat berbagai permintaan.
curl urlUse -X or --request to specify which method you would like invoke (GET, POST, DELETE, ...).
Use -d <data> or --data <data> to POST data on given URL.
| kill | killall | & | nohup |
Kills (ends) the processes with the ID you gave.
kill PIDKill all processes with the name.
killall namaprosesSimbol & menginstruksikan perintah untuk dijalankan sebagai proses latar belakang (background) dalam subshell.
command &nohup adalah singkatan dari "No Hang Up". Ini memungkinkan untuk menjalankan perintah/proses atau skrip shell yang dapat terus berjalan di latar belakang setelah Anda keluar dari shell.
nohup commandCombine it with & to create background processes
nohup command &Baris pertama yang akan Anda tulis dalam file skrip bash disebut shebang. Baris ini dalam skrip apa pun menentukan kemampuan skrip untuk dieksekusi seperti eksekusi mandiri tanpa mengetikkan sh, bash, python, php, dan lain-lain terlebih dahulu di terminal.
#!/usr/bin/env bashMembuat variabel dalam bash mirip dengan bahasa lain. Tidak ada tipe data. Variabel dalam bash dapat berisi angka, karakter, string karakter, dll. Anda tidak perlu mendeklarasikan variabel, cukup dengan memberikan nilai pada referensinya saja sudah cukup untuk membuatnya.
Contoh:
str="hello world"Baris di atas membuat variabel str dan menetapkan "hello world" ke variabel tersebut. Nilai variabel diambil dengan meletakkan $ di awal nama variabel.
Contoh:
echo $str # hello worldSeperti bahasa lain, bash juga memiliki array. Sebuah array adalah sebuah variabel yang berisi banyak nilai. Tidak ada batasan maksimum pada ukuran array. Array dalam bash berbasis nol. Elemen pertama diindeks dengan elemen 0. Ada beberapa cara untuk membuat array di bash yang diberikan di bawah ini.
Contoh:
array[0]=val
array[1]=val
array[2]=val
array=([2]=val [0]=val [1]=val)
array=(val val val)Untuk menampilkan nilai pada indeks tertentu, gunakan sintaks berikut:
${array[i]} # dimana i adalah indeksnyaJika tidak ada indeks yang diberikan, elemen larik 0 diasumsikan. Untuk mengetahui berapa banyak nilai yang ada dalam larik, gunakan sintaks berikut:
${#array[@]}Bash juga mendukung kondisi terner. Lihat beberapa contoh di bawah ini.
${varname:-word} # if varname exists and isn't null, return its value; otherwise return word
${varname:=word} # if varname exists and isn't null, return its value; otherwise set it word and then return its value
${varname:+word} # if varname exists and isn't null, return word; otherwise return null
${varname:offset:length} # performs substring expansion. It returns the substring of $varname starting at offset and up to length charactersPeriksa beberapa sintaks tentang cara memanipulasi string
${variabel#pola} # jika pola cocok dengan awal nilai variabel, hapus bagian terpendek yang cocok dan kembalikan sisanya
${variabel#pola} # jika pola cocok dengan awal nilai variabel, hapus bagian terpanjang yang cocok dan kembalikan sisanya
${variabel%pola} # jika pola cocok dengan akhir nilai variabel, hapus bagian terpendek yang cocok dan kembalikan sisanya
${variabel%%pola} # jika pola cocok dengan akhir nilai variabel, hapus bagian terpanjang yang cocok dan kembalikan sisanya
${variabel/pola/string} # kecocokan terpanjang dengan pola dalam variabel diganti dengan string. Hanya kecocokan pertama yang diganti
${variabel//pola/string} # kecocokan terpanjang dengan pola dalam variabel diganti dengan string. Semua kecocokan diganti
${#varname} # mengembalikan panjang nilai variabel sebagai string karakterBash memiliki beberapa trik singkatan untuk melakukan berbagai hal pada string.
${variabel ,,} #ini mengubah setiap huruf dalam variabel menjadi huruf kecil
${variabel^^} #ini mengubah setiap huruf dalam variabel menjadi huruf besar
${variabel:2:8} #ini mengembalikan substring dari sebuah string, dimulai dari karakter pada indeks ke-2 (string dimulai dari indeks 0, jadi ini adalah karakter ke-3),
#Substring akan memiliki panjang 8 karakter, jadi ini akan mengembalikan string yang terdiri dari karakter ke-3 hingga ke-11.Berikut ini beberapa trik pencocokan pola yang praktis
if [ [ "$variabel" == *subString* ]] #ini mengembalikan nilai true jika substring yang diberikan ada di dalam variabel
if [[ "$variabel" != *subString* ]] #ini mengembalikan nilai true jika substring yang diberikan tidak ada di dalam variabel
if [[ "$variabel" == subString* ]] #ini mengembalikan nilai true jika variabel dimulai dengan subString yang diberikan
if [[ "$variabel" == *subString ]] #ini mengembalikan nilai true jika variabel diakhiri dengan subString yang diberikanHal di atas dapat dipersingkat dengan menggunakan pernyataan kasus dan kata kunci IN
case "$var" in
begin*)
#variabel dimulai dengan "begin"
;;
*subString*)
#subString ada di dalam variabel
;;
* subSubString lainnya*)
#subString lainnya ada di dalam variabel
;;
esacSeperti pada hampir semua bahasa pemrograman, Anda dapat menggunakan fungsi untuk mengelompokkan potongan-potongan kode dengan cara yang lebih logis atau mempraktikkan seni rekursi. Mendeklarasikan sebuah fungsi hanyalah masalah menulis fungsi my_func { my_code }. Memanggil sebuah fungsi sama seperti memanggil program lain, Anda cukup menuliskan namanya.
nama fungsi() {
perintah shell
}Contoh:
#!/bin/bash
function hello {
echo world!
}
hello
function say {
echo $1
}
say "hello world!"Ketika Anda menjalankan contoh di atas, fungsi hello akan mengeluarkan output "world!". Kedua fungsi di atas, hello dan say, adalah sama. Perbedaan utamanya adalah fungsi say. Fungsi ini, mencetak argumen pertama yang diterimanya. Argumen, di dalam fungsi, diperlakukan dengan cara yang sama seperti argumen yang diberikan ke skrip.
Pernyataan kondisional dalam bash mirip dengan bahasa pemrograman lainnya. Kondisi memiliki banyak bentuk seperti bentuk yang paling dasar adalah pernyataan if ekspresi then di mana pernyataan hanya dieksekusi jika ekspresi bernilai true.
if [ ekspresi]; then
akan dieksekusi hanya jika ekspresi bernilai benar
else
akan dieksekusi jika ekspresi bernilai salah
fiTerkadang jika kondisi menjadi membingungkan, Anda dapat menulis kondisi yang sama menggunakan pernyataan kasus.
case expression in
pola1 )
statements ;;
pola2 )
statements ;;
...
esacCOntoh penggunaan ekspresi:
pernyataan1 && pernyataan2 # kedua pernyataan tersebut benar
pernyataan1 || pernyataan2 # setidaknya salah satu dari pernyataan bernilai benar
str1=str2 # str1 cocok dengan str2
str1!=str2 # str1 tidak cocok dengan str2
str1<str2 # str1 kurang dari str2
str1>str2 # str1 lebih besar dari str2
-n str1 # str1 tidak nol (memiliki panjang lebih besar dari 0)
-z str1 # str1 adalah null (memiliki panjang 0)
-a file # file ada
-d file # file ada dan merupakan sebuah direktori
-e file # file ada; sama dengan -a
-f file # file ada dan merupakan file biasa (yaitu, bukan direktori atau jenis file khusus lainnya)
-r file # Anda memiliki izin baca
-s berkas # berkas ada dan tidak kosong
-w file # Anda memiliki izin menulis
-x berkas # Anda memiliki izin eksekusi pada berkas, atau izin pencarian direktori jika berkas tersebut adalah sebuah direktori
-N file # file telah dimodifikasi sejak terakhir kali dibaca
-O file # file Anda sendiri
-G file # ID grup file cocok dengan ID grup Anda (atau salah satu ID grup Anda, jika Anda berada dalam beberapa grup)
file1 -nt file2 # file1 lebih baru dari file2
file1 -ot file2 # file1 lebih tua dari file2
-lt # kurang dari
-le # kurang dari atau sama dengan
-eq # sama dengan
-ge # lebih besar dari atau sama dengan
-gt # lebih besar dari
-ne # tidak samaAda tiga jenis perulangan dalam bash. for, while dan until.
for Sintaks:
for x := 1 to 10 do
mulai
pernyataan
end
for nama [in list]
do
pernyataan yang dapat menggunakan $nama
done
for (( inisialisasi ; kondisi akhir ; update ))
do
pernyataan-pernyataan
donewhile Sintaks:
while kondisi; do
pernyataan
doneuntil Sintaks:
until kondisi; do
pernyataan
doneJalankan nano ~/.bash_profile lalu tambahkan baris berikut:
alias dockerlogin='ssh www-data@adnan.local -p2222' # add your alias in .bash_profileJalankan nano ~/.bashrc dan tambahkan baris berikut:
export hotellogs="/workspace/hotel-api/storage/logs"Sekarang Anda dapat menggunakan jalur yang disimpan di alias:
source ~/.bashrc
cd $hotellogsThis goes back to the days before you could rely on keyboards to have an "up" arrow key, but can still be useful. To run the last command in your history
!!Kesalahan yang sering terjadi adalah lupa menggunakan sudo untuk mengawali perintah yang membutuhkan eksekusi khusus. Daripada mengetikkan seluruh perintah lagi, Anda dapat:
sudo !!Ini akan mengubah mkdir somedir menjadi sudo mkdir somedir.
Jadikan skrip bash Anda lebih kuat dengan melakukan pembersihan secara andal.
function finish {
# pembersihan Anda di sini. misal, bunuh semua proses bercabang
jobs -p | xargs kill
}
trap finish EXITKetika Anda melakukan export FOO = BAR, variabel Anda hanya diekspor dalam shell saat ini dan semua anak-anaknya, untuk mempertahankannya di masa depan, Anda cukup menambahkan perintah untuk mengekspor variabel Anda dalam berkas ~/.bash_profile.
echo export FOO=BAR >> ~/.bash_profileAnda dapat dengan mudah mengakses skrip Anda dengan membuat folder bin di /home Anda dengan mkdir ~/bin, sekarang semua skrip yang Anda taruh di folder ini dapat Anda akses di direktori mana pun.
Jika Anda tidak dapat mengakses, coba tambahkan kode di bawah ini pada berkas ~/.bash_profile Anda dan setelah melakukan source ~/.bash_profile.
# setel PATH agar menyertakan tempat sampah pribadi pengguna jika ada
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fiAnda dapat dengan mudah men-debug skrip bash dengan memberikan opsi yang berbeda pada perintah bash. Sebagai contoh -n tidak akan menjalankan perintah dan hanya memeriksa kesalahan sintaks. -v menggemakan perintah sebelum menjalankannya. Perintah echo -x setelah pemrosesan baris perintah.
bash -n scriptname
bash -v scriptname
bash -x scriptnameAnda dapat dengan mudah melakukan multi-threading pekerjaan Anda dengan menggunakan &. Semua pekerjaan tersebut akan berjalan di latar belakang secara bersamaan dan Anda dapat melihat proses-proses di bawah ini berjalan menggunakan jobs.
sleep 15 & sleep 5 &Perintah opsional wait kemudian akan menunggu sampai semua pekerjaan selesai.
sleep 10 & sleep 5 &
wait