untuk mengulang perintah :
$history | less
contoh hasilnya sebagai berikut :
967 syn
968 mount | grep ^/dev | sort
969 sudo powertop
970 top -s
misalnya ingin mengulang perintah
| top -s |
ketik saja perintah :
$!970
perhatikan penggunaan tanda seru setelah prompt pada Bourne Again Shell (Bash)
dapat pula dengan [ctrl+r]
catatan :
perintah yang telah dijalankan bisa direkam oleh shell dan bisa dilacak dengan perintah history
kembali ke [ctrl+r]
apabila kita menekannya maka pada prompt keluar seperti berikut :
(reverse-i-search)'':
Pada kondisi ini, jika diketik "wh", maka tampilannya akan menjadi :
(reverse-i-search)'wh':whois suwantara@localhost
apabila perintah ini yang dijalankan tekan enter apabila tidak maka akan ditampilkan string mengandung 'wh'
EXPANSION
ingin melihat semua file di direktori yang berhuruf depan "a":
$ ls a*
ingat di linux dikenal case sensitif jadi tulislah huruf kecil atau kapital secara pas.
incremenal search
lewat fasilitas search pencarian perintah sesai dengan kata kunci yang diketik
namun expansion tidak hanya berbentuk seperti ini. bagaimana jika misalnya kita ingin membuat tiga sub direktori baru, masing-masing di dalamnya ada subdirektori lain contoh :
$mkdir -p test{1,2,3}/index{1,2,3}
Hasilnya adalah direktori dengan struktur seperti berikut ini:
|--test1
| | --index1
| |--index2
| --index3
|--test2
| |--index1
| |--index2
| --index3
-- test3
|--index1
|--index2
--index3
teknik ini dikenal dengan brace expansion
dengan menyebutkan angka 1,2,3 di dalam kurung kurawal, maka kita meminta shell untuk "menjabarkannya" menjadi tiga parameter yaitu test1, test2, test3,. Hal yang sama dilakukan untuk direktori index. Secara total, dengan satu perintah kita menciptakan 9 subdirektori bertingkat 2.
contoh lain :
misal buat file backup :
$cp file-coba.ods(,.bak)
apa yang terjadi? kenapa kali ini hanya ada satu tanda koma dan satu string yaitu "bak"? sebenarnya sama saja, ini artinya ada dua string yang disisipkan sebagai akhiran string "file-coba.ods" Yang pertama yaitu "file-coba.ods" plus string kosong, jadi tidak berubah tetap"file-coba.ods".
Yang kedua adalah "file-coba.ods" plus string ".bak" menjadi "file-coba.ods.bak".
perintah di atas sebenarnya sama saja jika diketik sbb:
$cp file-neraca.ods file-neraca.ods.bak
sekarang, beralihlah ke expansion jenis lain. gunakan tanda ~(tilde) untuk langsung ke home direktori. Perintah berikut akan menunjukkan untuk langsung ke home direktori. perintah berikut akan menunjukkan isi home direktori user yang aktif pada session ini.
$echo~
/home/suwantara
$ls~
...(output)...
apabila string ditambahkan di belakang tanda tilde, maka Bash akan menganggap direktori user tersebut sebagai referensinya. Simak contoh berikut :
$cp -R -budi /tmp/backup
di sini, perintah akan menyalin secara rekursif home direktori "budi" dan isinya ke direktori /tmp/backup. keuntungan penggunaan tilde ini cukup jelas. tidak semua admin membuat home direktori di bawah /home bisa dimana saja semaunya.
kesimpulan : manfaatkan fasilitas brace expansion untuk mempercepat pembuatan suatu struktur direktori
Perulangan
satu hal yang lazim terjadi saat kita bekerja adalah melakukan hal yang sama tapi berulang-ulang, misalnya kita terus-menerus ingin mengamati sisa hardisk yang kosong :
caranya adalah menggunakan looping while do :
$ while(true); do df -h; sleep 2; clear; done;
kata while(true) artinya ulang jika benar. karena while sendiri mengulang suatu perintah selama kondisi benar, maka sama saja dengan mengatakan "lakukan perintah ini terus-menerus" sampai kita menghentikan secara manual. Pasangan dari while adalah done yang dituliskan pada bagian akhir. perintah sleep kita gunakan sebagai interval waktu update. sementara perintah clear untuk menghapus isi layar. dengan demikian, status sisa harddisk dapat dilihat.
Atau gunakan perintah :
$watch -n 5 df -h
otomatis watch akan mengulang perintah yang disebutkan sebagai parameternya. secara default perintah akan diulang tiap 2 detik. untuk mengubah gunakan perintah :
$watch -n 5 df -h
perintah for sangat membantu saat ingin menambahkan 5 nama user baru misalnya seorang admin di warnet kecil menambahkan 5 user pelanggannya. hal tersebut dapat dilakukan dengan perintah :
$for a in desi ani juneto budi dagus ; do
useradd $a; echo $a | passwd --stdin $a ;
done
perintah diatas akan membuat 5 akun masing-masing untuk desi, ani, juneto, budi, dagus, sesuai parameter for. useradd kini akan diisi variabel dimana setiap iterasi akan diganti nama tiap akun user, dan passwordnya jadi ini akan sama dengan :
#useradd desi
#echo desi passwd --stdin desi
#useradd ani
#echo desi passwd --stdin ani
untungnya bahwa perintah passwd memiliki opsi stdin, sehingga passwordd bisa diset tanpa menunggu ketikan dari keyboard (autofill)
Alias dan Command Completion
Kebanyakan pengguna Linux malas mengetik perintah yang panjang. Mungkin ini penyebab interface grafis masih menjadi favorit bagi pemula. Namun sebenarnya ada cara untuk mempercepat mengetik perintah beserta opsi yang panjang. Caranya adalah memanfaatkan perintah alias dan tombol [tab] untuk melengkapi perintah secara otomatis. Misalnya sering mengetik perintah :
$ls -alsh
Perintah ini menampilkan semua file yang ada di direktori saat ini beserta semua atributnya. Ukuran block di disk juga ditampilkan. Opsi -h membuat perintah ls menampilkan ukuran file dalam satuan kilobyte, megabyte, dan seterusnya. Mengetik perintah seperti ini dengan berulang-ulang kurang efektif. Solusinya adalah memperpendeknya dengan bantuan perintah alias:
$alias lsa='ls -alsh'
apabila kemudian mengetik lsa outputnya sama dengan mengetik "ls -alsh".
Berikut contoh penggunaan alias untuk distribusi Linux Fedora 9:
$alias
alias l.='ls -d .* -color=auto'
alias ll='ls -l -color=auto'
alias ls='ls -color=auto'
alias mc=' ./usr/share/mc/bin/mc-wrapper
sh'
alias vi='vim'
alias which='alias | /usr/bin/which --tty-only
-read -alias -show-dot -show-tilde'
Berdasarkan output di atas, jika misalkan mengetik "ls", maka akan diubah menjadi pemanggilan "ls" disertai pewarnaan output (opsi "--auto"). Mungkin timbul pertanyaan, apakah melakukan alias perintah ke nama yang sama namun hanya berbeda parameter diperbolehkan, jawabannya hal ini sah dilakukan.
Perlu diperhatikan bahwa secara default alias untuk suatu perintah hanya berlaku untuk satu sesi login dan tidak berlaku lagi jika ada log out. Begitu juga misalnya jika ada set alias di satu sesi gnome terminal maka sesi gnome terminal lain tidak akan mengenalinya. Bagaiamana mengatasi hal seperti ini ? Jawabannya adalah dengan menggunakan startup script dari bash. Hal ini akan dibahas pada bagian login dan log out script
Untuk command completion, tekniknya adalah menekan tombol [tab] setelah kita memasukkan satu atau lebih string di prompt. Misalnya kita lupa kemungkinan semua perintah berawalan ls. Awalnya, ketik "ls" lalu langsung ikuti dengan menekan tombol [tab]. Tidak adanya reaksi menunjukkan ada banyak perintah berawalan "ls". Untuk itu, perlu menekan tombol [tab] dua kali agak cepat.
$ls [tab][tab]
ls lsattr lsb_release lshal lspgpot
ada 5 kemungkinan yang bisa terpilih, misalkandengan teruskan menambahkan huruf"p", tulisan "lsp" diikuti sekali penekanan [tab]akan menjadikannya tulisan "lspgot".
Selain untuk nama perintah,completion juga bisa dimanfaatkan pada file. Sebagai ilustrasi, jika Anda ingin melihat isi direktori, misalnya "/namadirektori/yangsangatpanjangsekali/berisidatasatutahun", maka daripada harus mengetiknya secara lengkap, gunakan saja perintah di bawah ini:
$ls /namad [tab]
$ls /namadirektori/yangs[tab]
$ls /namadirektori/yangsangatpanjangsekali/datasatutahun
Penekanan [tab] pertama melengkapi direktori level pertama yaitu"namadirektori", misalnya, dianggap ada beberapa nama direktori di bawahnya, sehingga perlu mengetik nama berikutnya, yaitu "yangs". Apabila [tab] ditekan sekali lagi, disini kita dianggap nama yang cukup unik sehingga Bash bisa melengkapinya sesuai harapan user. Menghemat waktu bukan?
Login dan Log Out Script
Bash memiliki memiliki mekanismee agar satu atau lebih perintah bisa dilakukan saat user login atau logout. Saat ogin, bash akan mengecek file .bash_profile dan .bashrc. Saat logout, bash akan mengcek file .bash_logout. Ketiga file ini letaknya ada di top level home direktori masing-masing ser.
Apa yang bisa dimasukkan dalam 3 file ini? Semua jenis perintah bisa. Contoh termudah adalah kita masukkan perintah alias pada bagian sebelumnya ke dalam .bash.rc. Buka dile .bashrc dengan editor teks contohnya : vim atau gnome edit lalu tambahkan script alias pada baris terbawah. Isi .bashrc kurang lebih akan menjadi :
| .bashrc |
| Source global definitons |
| if [-f /etc/bashrc ]: then |
| ./etc/bashrc |
| fi |
| #User specific aliases and functions |
| alias lsa='ls -alsh' |
Bagaimana dengan .bash_logout?
Mungkin ingin menghapus semua file berakhiran kata "bak" yang dibuat lebih dari tujuh hari saat log out. Untuk itu, edit file .bash_logout agar menjadi:
#`/.bash_logout
find ~ -type f -iname ""bak" -mtime +7 -exec
rm -i {} \;
Opsi -i pada perintah rm ditambahkan untuk meminta konfirmasi apakah file benar-benar akan dihapus aau tidak. apabila memang yakin akan dihapus gantilah opsi -i menjadi -f.
Tidak ada komentar:
Posting Komentar