bash(1)Untuk mengubah perilaku bash , berikut adalah berkas-berkas yang disunting:
/etc/bashrc berisi alias dan fungsi-fungsi untuk seluruh sistem;
/etc/profile berisi hal-hal environment dan program-program sewaktu mulai menjalankan bash untuk seluruh sistem;
$HOME/.bashrc berisi alias dan fungsi-fungsi untuk user;
$HOME/.bash_profile berisi hal-hal environment dan
program-program sewaktu mulai menjalankan bash untuk user;
$HOME/.bash_logout berisi perintah-perintah yang dijalankan sewaktu logout;
$HOME/.inputrc berisi definisi tombol dan lain-lain.
Contoh dari berkas-berkas di atas ditunjukkan di bawah ini. Pertama-tama, yang paling penting: /etc/profile. Yang digunakan untuk mengkonfigurasi banyak hal di sistem Linux anda, seperti yang akan kita lihat berikut ini.
# /etc/profile
# System wide environment and startup programs
# Functions and aliases go in /etc/bashrc
# This file sets the following features:
#
# o path
# o prompts
# o a few environment variables
# o colour ls
# o less behaviour
# o keyboard settings
#
# Users can override these settings and/or add others in their
# $HOME/.bash_profile
# set a decent path
echo $PATH | grep X11R6 > /dev/null
if [ $? = 1 ] ; then # add entries to the path
PATH="$PATH:/usr/X11R6/bin:$HOME/bin:."
fi
# notify the user: login or non-login shell. If login, the prompt is
# coloured in blue; otherwise in magenta. Root's prompt is red.
USER=`whoami`
if [ $LOGNAME = $USER ] ; then
COLOUR=44
else
COLOUR=45
fi
if [ $USER = 'root' ] ; then
COLOUR=41
fi
# put a real escape character instead of ^[
PS1='^[[$COLOUR;37;1m$HOSTNAME:^[[37;40;1m\w\$ '
PS2="Continue> "
# no core dumps, please
ulimit -c 0
# set umask
if [ `id -gn` = `id -un` -a `id -u` -gt 14 ]; then
umask 002
else
umask 022
fi
# a few variables
USER=`id -un`
LOGNAME=$USER
MAIL="/var/spool/mail/$USER"
EDITOR=jed
HOSTNAME=`/bin/hostname`
HISTSIZE=1000
HISTFILESIZE=1000
export PATH PS1 PS2 USER LOGNAME MAIL EDITOR HOSTNAME HISTSIZE HISTFILESIZE
# enable colour ls
eval `dircolors /etc/DIR_COLORS -b`
export LS_OPTIONS='-F -s -T 0 --color=tty'
# customize less
LESS='-M-Q'
LESSEDIT="%E ?lt+%lt. %f"
LESSOPEN="| lesspipe.sh %s"
VISUAL=jed
LESSCHARSET=latin1
export LESS LESSEDIT LESSOPEN VISUAL LESSCHARSET
# customise the keyboard
/sbin/kbdrate -s -r 16 -d 500
for i in /etc/profile.d/*.sh ; do
if [ -x $i ]; then
. $i
fi
done
Ini adalah /etc/bashrc:
# /etc/bashrc # System wide functions and aliases # Environment stuff goes in /etc/profile alias which="type -path" alias d="ls" alias dir="d"
This is .bashrc:
# $HOME/.bashrc
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
# this is needed to notify the user that they are in non-login shell
COLOUR=45
# put a real escape character instead of ^[
PS1='^[[$COLOUR;37m$USER:^[[37;40m\w\$ '
# aliases
alias cp='cp -i'
alias l=less
alias lyx='lyx -width 900 -height 700'
alias mv='mv -i'
alias rm='rm -i'
alias x=startx
# A few useful functions
inst() # Install a .tar.gz archive in the current directory.
{ gzip -dc $1 | tar xvf - }
cz() # List the contents of a .zip archive.
{ unzip -l $* }
ctgz() # List the contents of a .tar.gz archive.
{
for file in $* ; do
gzip -dc ${file} | tar tf -
done
}
tgz() # Create a .tgz archive a la zip.
{
name=$1 ; tar -cvf $1 ; shift
tar -rf ${name} $*
gzip -S .tgz ${name}
}
Ini adalah .bash_profile:
# $HOME/.bash_profile
# User specific environment and startup programs
# This file contains user-defined settings that override
# those in /etc/profile
# Get aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# re-get PS1 settings
if [ $USER = 'root' ] ; then
COLOUR=41
else
COLOUR=44
fi
# put a real escape character instead of ^[
PS1='^[[$COLOUR;37;1m$HOSTNAME:^[[37;40;1m\w\$ '
export PS1
Ini adalah .bash_logout:
# $HOME/.bash_logout clear
Ini adalah .inputrc:
# $HOME/.inputrc # key bindings "\e[1~": beginning-of-line "\e[3~": delete-char "\e[4~": end-of-line # (F1 .. F5) are "\e[[A" ... "\e[[E" "\e[[A": "info \C-m" set bell-style visible # please don't beep set meta-flag On # allow 8-bit input (i.e, accented letters) set convert-meta Off # don't strip 8-bit characters set output-meta On # display 8-bit characters correctly set horizontal-scroll-mode On set show-all-if-ambiguous On
Supaya tombol backspace dan delete dapat bekerja dengan benar di xterm dan aplikasi-aplikasi X11 lainnya, yang berikut ini juga diperlukan:
.xinitrc:
usermodmap=$HOME/.Xmodmap
xmodmap $usermodmap
.Xmodmap:
keycode 22 = BackSpace
keycode 107 = Delete
akan memperbaiki console. Untuk memperbaiki xterm:
.Xdefaults:
xterm*VT100.Translations: #override <Key>BackSpace: string(0x7F)\n\
<Key>Delete: string(0x1b) string("[3~")\n\
<Key>Home: string(0x1b) string("[1~")\n\
<Key>End: string(0x1b) string("[4~")\n\
Ctrl<Key>Prior: string(0x1b) string("[40~")\n\
Ctrl<Key>Next: string(0x1b) string("[41~")
nxterm*VT100.Translations: #override <Key>BackSpace: string(0x7F)\n\
<Key>Delete: string(0x1b) string("[3~")\n\
<Key>Home: string(0x1b) string("[1~")\n\
<Key>End: string(0x1b) string("[4~")\n\
Ctrl<Key>Prior: string(0x1b) string("[40~")\n\
Ctrl<Key>Next: string(0x1b) string("[41~")
Info lebih lanjut di halaman-halaman 'man' dari bash(1) dan readline(3).
Jangan beranggapan bahwa semua aplikasi akan berjalan mulus! Jika anda menjalankan joe di xterm misalnya, beberapa tombol tidak bekerja; juga untuk rxvt. Kabarnya ada masalah dengan termcap.
ls(1)ls dapat menampilkan isi direktori menggunakan warna untuk menyorot jenis-jenis berkas yang berbeda. Untuk dapat menggunakan fasilitas ini, tambahkan baris-baris berikut ke /etc/profile:
eval `dircolors /etc/DIR_COLORS -b`
export LS_OPTIONS='-F -T 0 --color=tty'
akan mengeset environment variable LS_COLORS sehingga berisi daftar warna yang tercantum di /etc/DIR_COLORS. Catatan: jangan bertanya mengapa, tetapi hal ini tidak bekerja dengan beberapa versi dari rxvt; gunakanlah xterm sebagai pengganti. Sepertinya rxvt mengandung bug yang mencegahnya untuk mengambil variabel-variabel environment dengan benar dalam keadaan-keadaan tertentu.
less(1)Dengan menggunakan program bagus ini anda bukan saja bisa melihat isi berkas teks, tetapi juga yang dipadatkan dengan gzip, tar dan zip, halaman-halaman 'man', dan sebagainya. Konfigurasinya meliputi beberapa langkah:
.lesskey di home direktori anda:
^[[A back-line
^[[B forw-line
^[[C right-scroll
^[[D left-scroll
^[OA back-line
^[OB forw-line
^[OC right-scroll
^[OD left-scroll
^[[6~ forw-scroll
^[[5~ back-scroll
^[[1~ goto-line
^[[4~ goto-end
^[[7~ goto-line
^[[8~ goto-end
kemudian jalankan perintah lesskey yang akan membuat berkas biner .less berisi definisi tombol.
/usr/bin/lesspipe.sh:
#!/bin/sh
# This is a preprocessor for 'less'. It is used when this environment
# variable is set: LESSOPEN="|lesspipe.sh %s"
lesspipe() {
case "$1" in
*.tar) tar tf $1 2>/dev/null ;; # View contents of .tar and .tgz files
*.tgz|*.tar.gz|*.tar.Z|*.tar.z) tar ztf $1 2>/dev/null ;;
*.Z|*.z|*.gz) gzip -dc $1 2>/dev/null ;; # View compressed files correctly
*.zip) unzip -l $1 2>/dev/null ;; # View archives
*.arj) unarj -l $1 2>/dev/null ;;
*.rpm) rpm -q -p -i -l $1 2>/dev/null ;;
*.1|*.2|*.3|*.4|*.5|*.6|*.7|*.8|*.9|*.n|*.man) FILE=`file -L $1`
FILE=`echo $FILE | cut -d ' ' -f 2`
if [ "$FILE" = "troff" ]; then
groff -s -p -t -e -Tascii -mandoc $1
fi ;;
*) FILE=`file -L $1` ; # Check to see if binary
FILE1=`echo $FILE | cut -d ' ' -f 2`
FILE2=`echo $FILE | cut -d ' ' -f 3`
if [ "$FILE1" = "Linux/i386" -o "$FILE2" = "Linux/i386" \
-o "$FILE1" = "ELF" -o "$FILE2" = "ELF" ]; then
strings $1
fi ;;
esac
}
lesspipe $1
chmod 755 lesspipe.sh.
/etc/profile:
LESS="-M-Q" # long prompt, silent
LESSEDIT="%E ?lt+%lt. %f" # edit top line
LESSOPEN="| lesspipe.sh %s" # filter
VISUAL=jed # default editor---insert your favourite
LESSCHARSET=latin1 # display accented letters if needed
export LESS LESSEDIT LESSOPEN VISUAL LESSCHARSET
Variabel LESSCHARSET di atas dikarenakan penulis tinggal di Itali dan penulis berencana menggunakan ISO 8859/1 character set. Jika anda tidak akan menggunakannya sebaiknya jangan didefinisikan.
emacs(1)Beberapa distribusi emacs tidak dikonfigurasi untuk menggunakan warna dan penyorotan sintaks (syntax highlighting). Tambahkan di .emacs:
(global-font-lock-mode t)
(setq font-lock-maximum-decoration t)
Ini hanya bekerja di X11. Silakan membaca dokumentasi emacs untuk mengkonfigurasi penuh sesuai keinginan anda (kemungkinan bisa memakan waktu berbulan-bulan).
joe(1)Periksalah di /usr/bin/ apakah jmacs, jstar, and jpico adalah symlinks (symbolic links) ke joe atau merupakan berkas-berkas biner sendiri; dalam hal yang terakhir, anda dapat mengubahnya ke symlinks untuk menghemat ruang harddisk:
~# cd /usr/bin
/usr/bin# ln -sf joe jmacs ; ln -sf joe jstar ; ln -sf joe jpico
Kemudian, anda tinggal menyalin berkas /usr/lib/joe/joerc ke direktori home sebagai .joerc dan menyuntingnya.
jedIni adalah editor favorit penulis, jed mengerjakan apa yang penulis butuhkan, lebih kecil dan lebih mudah dikonfigurasi daripada emacs, dan menurut hemat penulis mengemulasikan editor lain lebih baik.
Banyak pengguna di universitas penulis ingin jed supaya mengemulasikan EDT, editor sistem VMS.
Berkas-berkas konfigurasinya adalah .jedrc and /usr/lib/jed/lib/*; yang pertama bisa dicontoh dari jed.rc di direktori yang terakhir disebut.
jed menggunakan tombol-tombol dengan benar, buatlah
/usr/lib/jed/lib/defaults.sl yang hanya berisi:
() = evalfile("linux");
/usr/lib/jed/lib/linux.sl; hilangkan komentar dari baris Info_Directory = "/usr/info"; dan tambahkan /bin/mail setelah UCB_Mailer =;
jed agar mengemulasikan EDT (atau editor lain) tidak sulit: anda cukup mengubah beberapa baris di .jedrc.
Jika anda ingin menggunakan `+' di numeric keypad untuk menghapus sebuah kata (bukan satu karakter), tambahkan di .jedrc:
unsetkey("\eOl");
unsetkey("\eOP\eOl");
setkey("edt_wdel", "\eOl");
setkey("edt_uwdel", "\eOP\eOl");
setelah baris () = evalfile("edt");.
xjed menggunakan numeric keypad untuk emulasi EDT membutuhkan beberapa baris berikut di .Xmodmap:
keycode 77 = KP_F1
keycode 112 = KP_F2
keycode 63 = KP_F3
keycode 82 = KP_F4
keycode 86 = KP_Separator
Selanjutnya, pastikan /etc/X11/XF86Config mengandung baris-baris berikut:
# ServerNumLock # harus dibuat menjadi komentar dengan tanda # di depan
XkbDisable
Hal ini berlaku untuk XFree 3.2. Kecuali anda menggunakan keyboard standar Amerika, ketahuilah bahwa ``XkbDisable'' mengakibatkan beberapa masalah. Anda akan tahu sendiri nantinya.
xjed dilakukan dengan menambahkan baris-baris berikut di .Xdefaults:
xjed*Geometry: 80x32+150+50
xjed*font: 10x20
xjed*background: midnight blue
Info lebih lanjut di xjed.doc, yang disertakan di paketnya.
Penulis beranggapan anda memiliki distribusi TeTeX. Beberapa hal:
/usr/lib/texmf/texmf/tex/generic/config/language.dat, kemudian:
~# texconfig init ; texconfig hyphen
/usr/lib/texmf/texmf/tex/latex/ jalankan perintah texhash supaya TeTeX mengenali paket baru tersebut.
dvips, berkas yang perlu diubah adalah
/usr/lib/texmf/texmf/dvips/config/config.ps. Ketahuilah bahwa
kolom-kolom mengenai resolusi default juga mempegaruhi perilaku xdvi;
jika anda tidak ingin program tersebut membuat fonts setiap kali dijalankan,
mungkin bisa membantu jika ditambahkan yang berikut ini di .Xdefault:
XDvi*mfmode:
Penulis beranggapan bahwa kernel anda sudah memliki dukungan PPP dan TCP/IP di dalamnya, menggunakan loopback, dan anda sudah memasang paket pppd
dengan benar. (Syarat-syarat tersebut biasanya sudah terpasang secara default). Ada dua cara untuk menggunakan PPP: a) konfigurasi manual, dan b) menggunakan program yang menjalankannya secara otomatis. Pertama, manual.
Misalkan data-data dari ISP anda sbb:
Untuk konfigurasi manual koneksi PPP, lakukan:
/usr/local/bin/ppp-on berikut, yang akan digunakan untuk membuat koneksi ke ISP anda:
#!/bin/sh
# ppp-on: script to connect to an ISP
INIT=ATX3 # tergantung modem anda, bisa juga ATZ
PHONE=1234567
/usr/sbin/pppd connect "/usr/sbin/chat '' $INIT OK ATDP$PHONE \
CONNECT '' " user John
kemudian buatlah menjadi executable dengan chmod 755 /usr/local/bin/ppp-on. Jika ISP anda tidak menggunakan protokol PAP, anda bisa menggunakan script berikut:
#!/bin/sh
# ppp-on: script to connect to an ISP
INIT=atx3 # tergantung modem anda, bisa juga ATZ
PHONE=1234567
/usr/sbin/pppd connect "/usr/sbin/chat '' $INIT OK ATDT$PHONE \
CONNECT '' 'ogin' John 'word' _Loo%ny ''" /dev/modem 38400 \
modem defaultroute
/usr/local/bin/ppp-off berikut, yang digunakan untuk memutuskan hubungan ppp:
#!/bin/sh
# ppp-off
DEVICE=ppp0
if [ -r /var/run/$DEVICE.pid ]; then
kill -INT `cat /var/run/$DEVICE.pid`
if [ ! "$?" = "0" ]; then
echo "removing stale $DEVICE pid file."
rm -f /var/run/$DEVICE.pid ; exit 1
fi
echo "$DEVICE link terminated" ; exit 0
fi
# link not active
echo "$DEVICE link is not active" ; exit 1
kemudian buatlah menjadi executable dengan chmod 755 /usr/local/bin/ppp-off.
/etc/ppp/options:
# /etc/ppp/options
/dev/modem
38400
lock
crtscts
modem
asyncmap 0
remotename www.supernet.edu
defaultroute
/etc/ppp/pap-secrets:
# /etc/ppp/pap-secrets
# username remotehost secret
John www.supernet.edu _Loo%ny
/etc/resolv.conf:
# /etc/resolv.conf
search supernet.edu
nameserver 123.231.112.111
/etc/sendmail.cf. Carilah baris yang dimulai dengan DS, dan buatlah menyerupai:
DSmbox.supernet.edu
Fuih! Jika anda beruntung, semestinya sudah bisa bekerja. Jika tidak, bersiap-siaplah mempelajari PPP-HOWTO.
Sudah cukup dengan konfigurasi manual. Ada paket bagus yang mengotomatisasi hal-hal di atas bernama ezppp dan bisa didapat dari
http://www.serv.net/~cameron/ezppp/index.html.
Untuk mengambil mail-mail anda dari sebuah server POP, gunakan program/klien POP seperti fetchpop atau fetchmail. Yang terakhir mungkin satu-satunya pilihan jika server POP ISP anda mempunyai masalah dengan perintah LAST.
Untuk mengkonfigurasi klien-klien tersebut:
fetchpop: pertama kali dijalankan anda akan ditanyai berbagai pertanyaan. Anda tinggal menjawab pertanyaan-pertanyaan tersebut dan sudah beres.
fetchmail: pergunakan contoh berikut untuk .fetchmailrc:
# $HOME/.fetchmailrc
poll mbox.supernet.edu with protocol pop3;
user john there with password _Loo%ny is john here
mda "/usr/bin/procmail -f fetchmail"
Baris terakhir mungkin tidak dibutuhkan. Anda harus mengeset permission berkas ini dengan chmod 600 .fetchmailrc, jika tidak fetchmail tidak akan bekerja.
Setelah X bekerja (video card yang benar, dll.), ada banyak kemungkinan untuk konfigurasi; tergantung pada window manager yang anda gunakan. Pada dasarnya, anda menyunting berkas-berkas ASCII di direktori home anda. Untuk window managernya:
/etc/X11/fvwm/system.fvwmrc sebagai
$HOME/.fvwmrc, lihat-lihatlah isinya dan mulailah bereksperimen. Berkas system.fvwmrc contoh ini menurut penulis sedikit terlalu sederhana dan tidak menunjukkan semua kemampuan fvwm.
/etc/X11/fvwm95-2/fvwm2rc95 sebagai
$HOME/.fvwm2rc95, kemudian suntinglah. Contohnya lumayan bagus.
/etc/X11/TheNextLevel/.* ke direktori home anda, lihat-lihatlah isinya dengan baik, kemudian cobalah mengkonfigurasi sedikit-sedikit. Yang pertama kali seharusnya dilihat adalah .fvwm2rc.defines.
Sebagai tambahan, jangan lupa untuk membuat .xinitrc. Contoh:
#!/bin/sh
# $HOME/.xinitrc
# set a few keys correctly
usermodmap=$HOME/.Xmodmap
xmodmap $usermodmap
xset s noblank # turn off the screen saver
xset s 300 2 # screen saver start after 5 min
xsetroot -solid "medium blue" &
# rxvt saves memory, but has a few bugs:
# - home and end keys are not recognised;
# - backspace and delete don't work as in console;
# - colours are not properly inherited by the environment;
# - problems with the environment in general;
# xterm is therefore better in many cases. However, rxvt is best
# for running some colour apps like mc.
xterm -ls -bg black -fg white -sb -sl 500 -j -ls -fn 10x20 -fb 10x20bold \
-title "Color xterm" -geometry 80x25+150+0 &
fvwm95-2
Menurut pengalaman penulis, jika anda membutuhkan Fortran, alternatif yang baik untuk g77 adalah penerjemah Fortran ke C f2c dan yaf77 sebagai front-end.
Dapatkan yaf77 dari
ftp://sunsite.unc.edu/pub/Linux/devel/languages/fortran/yaf77-1.4.tgz
dan mirror-mirrornya.
Penulis menganjurkan supaya pengguna baru sudah memiliki berkas-berkas konfigurasi yang siap digunakan ketika mereka pertama kali login.
Letakkan berkas-berkas berikut di bawah /etc/skel/: bashrc, bash_profile, bash_logout, inputrc, less, xinitrc, fvwmrc,
fvwm2rc95, Xmodmap, Xdefaults, jedrc, joerc, emacs.
(Catatan: karena masalah sewaktu mem-format dokumen ini, penulis terpaksa menghilangkan tanda titik (`.') di awal nama berkas-berkas di atas)
Ketahuilah bahwa .pinerc tidak bisa sepenuhnya dikonfigurasi; pastikan bahwa minimal user-domain, smtp-server, and nntp-server terdefinisi dengan benar.