Vi ska ta en titt på följande konfigureringsfiler: /etc/profile
/etc/bashrc
.bashrc .bash_profile .inputrc .less .lessrc
.xinitrc .fvwmrc .fvwm2rc95 .Xmodmap .Xdefaults .jedrc .abbrevs.sl
.joerc .emacs
. Lägg inte till några användare förrän du har
konfigurerat
färdigt ditt system; du ska stoppa in punktfilerna i /etc/skel
.
bash
(1)
Följande huvudfiler skall modifieras, för att skräddarsy bash
beteende:
/etc/bashrc
innehåller alla systemvida alias och funktioner;
/etc/profile
innehåller systemvida miljöprylar och
startprogram;
$HOME/.bashrc
innehåller användarens alias och
funktioner;
$HOME/.bash_profile
innehåller användarens
miljö-prylar och start-program;
$HOME/.inputrc
innehåller tangentbindningar och
andra småsaker.
Exempel på dessa filer visas nedan. Först och främst: /etc/profile
.
Den används för att ställa in en hel del egenskaper hos din Linux-burk,
som du kommer se i de följande avsnitten.
# /etc/profile # Systemvida miljöer och startprogram # Funktioner och alias ska finnas i /etc/bashrc # Den här filen ställer in det följande: # # o sökväg # o prompter # o några miljövariabler # o färg-ls # o less # # Användare kan köra över dessa inställningar och/eller lägga till # andra i sina $HOME/.bash_profile # ställ in en lämplig sökväg echo $PATH | grep X11R6 > /dev/null if [ $? = 1 ] ; then # lägg till saker till sökvägen PATH="$PATH:/usr/X11R6/bin:$HOME/bin:." fi # låt användaren få reda på: login- och icke-login-skal. Om det är # login-skalet, ska prompten vara blå; annars magenta. Roots prompt # är röd. USER=`whoami` if [ $LOGNAME = $USER ] ; then COLOUR=44 else COLOUR=45 fi if [ $USER = 'root' ] ; then COLOUR=41 fi # lägg in en riktig "escape"-sekvens, istället för ~[. Gör följande: # emacs: ^Q ESC vi: ^V ESC joe: ` 0 2 7 jed: ` ESC # Ta bort `;1' om du inte gillar fetstils-attributet ESC=^[ PS1='$ESC[$COLOUR;37;1m$USER:$ESC[37;40;1m\w\$ ' PS2="Continue> " # inga core-dumpar, tack ulimit -c 0 # ange umask if [ `id -gn` = `id -un` -a `id -u` -gt 14 ]; then umask 002 else umask 022 fi # några variabler 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 # slå på färg-ls eval `dircolors /etc/DIR_COLORS -b` export LS_OPTIONS='-F -s -T 0 --color=tty' # skräddarsy less LESS='-M-Q' LESSEDIT="%E ?lt+%lt. %f" LESSOPEN="| lesspipe.sh %s" VISUAL=jed LESSCHARSET=latin1 export LESS LESSEDIT LESSOPEN VISUAL LESSCHARSET for i in /etc/profile.d/*.sh ; do if [ -x $i ]; then . $i fi done
Här är ett exempel på en /etc/bashrc
:
# /etc/bashrc # Systemvida funktioner och alias # Miljöprylar ska vara i /etc/profile alias which="type -path" alias d="ls" alias dir="d"
Här kommer ett exempel på en .bashrc
:
# $HOME/.bashrc # Globala källdefinitioner if [ -f /etc/bashrc ]; then . /etc/bashrc fi # det här behövs för att användaren ska få reda på att de är i ett # icke-login-skal if [ "$GET_PS1" = "" ] ; then COLOUR=45 # sätt in ett riktigt "escape"-tecken, istället för ^[ ESC=^[ PS1='$ESC[$COLOUR;37m`whoami`:$ESC[37;40m\w\$ ' export PS1 fi # alias 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 # Några användbara funktioner inst() # Installera ett .tar.gz-arkiv i den aktuella katalogen. { gzip -dc $1 | tar xvf - } cz() # Lista innehållet i ett .zip-arkiv. { unzip -l $* } ctgz() # Lista innehållet i ett .tar.gz-arkiv. { for file in $* ; do gzip -dc ${file} | tar tf - done } tgz() # Skapa ett .tgz-arkiv á la zip. { name=$1 ; tar -cvf $1 ; shift tar -rf ${name} $* gzip -S .tgz ${name} }
Här kommer ett exempel på en .bash_profile
:
# $HOME/.bash_profile # Användarspecifika miljö- och start-program # Den här filen innehåller användardefinierade inställningar, som kör # över de i /etc/profile # Ange alias och funktioner if [ -f ~/.bashrc ]; then GET_PS1="NO" # ändra inte promptfärgen . ~/.bashrc fi # Ange några "standard"-kataloger export CDPATH="$CDPATH:$HOME:$HOME/text:$HOME/text/geology" # fixa backspace i rxvt 2.45 if [ "$COLORTERM" != "" ] ; then stty erase ^? ESC=^[ # sätt in en riktig "escape"-sekvens, istället för ^[ echo -n "$ESC[36l" fi
Här är ett exempel på en .inputrc
:
# $HOME/.inputrc # tangentbindningar "\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 # pip inte set meta-flag On # tillåt 8-bitars indata (accent-tecken) set convert-meta Off # "strippa" inte 8-bitars tecken set output-meta On # visa 8-bitars tecken korrekt set horizontal-scroll-mode On # "scrolla" långa kommando-rader set show-all-if-ambiguous On # efter att TAB tryckts ned
För att få backspace- och delete-tangenterna att fungera korrekt i en
xterm
, och andra X11-applikationer, så behövs också följande:
.xinitrc
:
usermodmap=$HOME/.Xmodmap
xmodmap $usermodmap
.Xmodmap
:
keycode 22 = BackSpace
keycode 107 = Delete
vilket fixar konsollen. För att fixa 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~")
rxvt
är en aning mer komplicerad, eftersom vissa inkompilerade
alternativ påverkas dess beteende. Se exempel-.bash_profile
ovan.
Mer information finns i man-sidorna för bash
(1) och readline
(3).
Räkna inte med att alla applikationer fungerar korrekt! Om du t.ex. kör
joe
i en xterm
, så är det vissa tangenter som inte fungerar. Samma
sak
gäller för rxvt
-versioner som är äldre än 2.21.
ls
(1)
ls
kan visa kataloglistningar, med färger för att markera olika fil-
typer. För att slå på detta ska du lägga till följande rader i
/etc/profile
:
eval `dircolors /etc/DIR_COLORS -b`
export LS_OPTIONS='-F -T 0 --color=tty'
(Om du inte har filen /etc/DIR_COLORS
, ta bort referensen till den i
första raden.) Detta anger miljövariabeln LS_COLORS
, vilken innehåller
färglistan, vilken anges i /etc/DIR_COLORS
. Observera: fråga mig inte
varför, men det här fungerar inte i rxvt
-versionen som är äldre än
2.21; använd något annat slags xterm
istället. Det verkar som om rxvt
har en bugg som hindrar det från att ta in miljön på ett korrekt sätt
under vissa omständigheter.
Calderas ls
har inte färger, men det finns en motsvarighet till
färg-ls
.
Lägg till följande i /etc/bashrc
:
alias ls="color-ls $LS_OPTIONS"
less
(1)
Med denna suveräna textvisare kan du inte bara bläddra igenom text- filer, utan även gzip-komprimerade filer, tar- och zip-arkiv, man-sidor och allt vad det är. Dess konfigurering innehåller följande steg:
less
med förflyttnings-tangenterna, lägg in följande
textfil, som .lesskey
, i din hem-katalog:
^[[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
Kör sedan kommandot lesskey
. Detta skapar en binär-fil, .less
, vilken
innehåller tangent-bindningarna.
/usr/bin/lesspipe.sh
, som innehåller:
#!/bin/sh # Detta är en förprocessor för less. Den används när denna miljö- # variabel är angiven: LESSOPEN="|lesspipe.sh %s" lesspipe() { case "$1" in *.tar) tar tf $1 2>/dev/null ;; # Se innehållet i .tar- och .tgz-filer *.tgz|*.tar.gz|*.tar.Z|*.tar.z) tar ztf $1 2>/dev/null ;; *.Z|*.z|*.gz) gzip -dc $1 2>/dev/null ;; # Se packade filer korrekt *.zip) unzip -l $1 2>/dev/null ;; # Titta i arkiv *.arj) unarj -l $1 2>/dev/null ;; *.rpm) rpm -q -p -i -l $1 2>/dev/null ;; *.cpio) cpio --list -F $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 $1 | grep text > /dev/null ; if [ $? = 1 ] ; then # det är inte något slags text strings $1 fi ;; esac } lesspipe $1
chmod 755 lesspipe.sh
.
lägg in följande rader i /etc/profile
:
LESS="-M-Q" # lång prompt, tyst
LESSEDIT="%E ?lt+%lt. %f" # editera översta raden
LESSOPEN="| lesspipe.sh %s" # filter
VISUAL=jed # standard-editor; ange din favorit
LESSCHARSET=latin1 # visa accent-tecken, om det behövs
export LESS LESSEDIT LESSOPEN VISUAL LESSCHARSET
Variabeln LESSCHARSET
är beroende av det faktum att jag bor i Italien
och vill använda tecken-uppsättningen ISO 8859/1 (Gäller även Sverige.
övers.anm.) Ni amerikaner, japaner och ryssar bör inte ange den.
emacs
(1)
Jag använder inte emacs
, så jag har bara några små råd att ge dig.
Vissa emacs
-distributioner kommer utan att vara förinställda för färg-
och syntax-markering. Skriv detta i din .emacs
:
(global-font-lock-mode t)
(setq font-lock-maximum-decoration t)
Det här fungerar bara i X11. Jag lämnar arbetet med att gå igenom all
emacs
-dokumentation, till dig, för att komma på hur du ska ställa in
det så att det passar dina behov. Det kan krävas flera månaders
"hackande"...
joe
(1)
Vissa rapporterar att joe
fungerar med färger under X11, men inte i
tty. Vidare fungerar inte vissa special-tangenter. Vad jag vet så har
ingen funnit en lösning på det första problemet; någon föreslog
"hackande" i /etc/termcap
.
Om du stöter på det problemet så är en snabb och skitig (och oelegant) lösning:
~$ export TERM=vt100
~$ joe min_fil
(editera din fil)
~$ export TERM=linux
jed
(1)
Det här är min favoriteditor: den gör vad jag behöver, den väger
lättare och är enklare att konfigurera än emacs
och enligt min åsikt
emulerar den andra editorer bättre. Många användare på mitt universitet
vill ha jed
för att emulera EDT
, VMS system-editor.
jed
s konfigurerings-filer är .jedrc
och /usr/lib/jed/lib/*
;
den förra kan kopieras från jed.rc
i den senare katalogen.
jed
att använda vissa specialtangenter korrekt, skapa
filen /usr/lib/jed/lib/defaults.sl
, vars enda rad ser ut så här:
() = evalfile("linux");
/usr/lib/jed/lib/linux.sl
: ta bort kommentaren från
raden som säger Info_Directory = "/usr/info"
, och lägg till
/bin/mail
efter UCB_Mailer =
;
jed
att emulera EDT
(eller andra editorer) är
rättframt: du
behöver bara modifiera några rader i .jedrc
. Om du vill använda det
numeriska tangentbordets "+" för att ta bort ord istället för
enskilda tecken, lägg till följande till .jedrc
:
unsetkey("\eOl");
unsetkey("\eOP\eOl");
setkey("edt_wdel", "\eOl");
setkey("edt_uwdel", "\eOP\eOl");
efter raden som säger () = evalfile("edt");
.
xjed
att använda det numeriska tangentbordet till
EDT
-emuleringen, infoga följande i .Xmodmap
:
keycode 77 = KP_F1
keycode 112 = KP_F2
keycode 63 = KP_F3
keycode 82 = KP_F4
keycode 86 = KP_Separator
Vidare, se till att din /etc/X11/XF86Config
innehåller de följande
raderna:
# ServerNumLock # must be commented out
XkbDisable
Detta gäller för XFree 3.2. Om du dock inte använder ett vanligt
amerikanskt tangentbord, obeservera att "XkbDisable" kan ge dig en del
problem. Dessa lämnar jag åt dig att upptäcka.
xjed
görs genom att lägga till rader som
dessa, i .Xdefaults
:
xjed*Geometry: 80x32+150+50
xjed*font: 10x20
xjed*background: midnight blue
$HOME/.abbrevs.sl
, med
följande innehåll:
create_abbrev_table ("Global", "");
define_abbrev ("Global", "GG", "Guido Gonzato");
create_abbrev_table ("TeX", "\\A-Za-z0-9");
define_abbrev ("TeX", "\\beq", "\\begin{equation}");
define_abbrev ("TeX", "\\eeq", "\\end{equation}");
% och så vidare...
och knappa in ESC x abbrev_mode
för att få det att starta. För att ha
"abbreviation" på som standard, lägg till följande i din .jedrc
:
define text_mode_hook ()
{
set_abbrev_mode (1);
}
%
define fortran_hook ()
{
set_abbrev_mode (1);
use_abbrev_table ("Fortran");
}
% och så vidare...
efax
(1)
Det här paketet är antagligen det mest praktiska för att på ett
enkelt sätt skicka och ta emot fax. Du måste fininställa skal-
programmet /usr/bin/fax
. Det är ett lätt jobb, men några små saker
gav mig en del huvudvärk:
efax
behöver. Om du vill lägga till ett AT-kommando, så lägg
till det till den lämpliga strängen, men utelämna "AT" och inled
resten med antingen "-i" eller "-k". T.ex.: för att lägga till
"ATX3"-kommandot till INIT, så lägger du till "-iX3".
Jag kommer förutsätta att du har teTeX-distributionen. Jag har bara några saker att påpeka här:
/usr/lib/texmf/texmf/tex/generic/config/language.dat
, och
skriv sedan:
~# texconfig init ; texconfig hyphen
texhash
, så att
teTeX får vetskap om det nya paketet, efter att du har lagt till
filerna i /usr/lib/texmf/texmf/tex/latex/
<.
dvips
, så är filen att editera
/usr/lib/texmf/texmf/dvips/config/config.ps
. Du ska vara medveten om
att fälten som rör standard-upplösningen också påverkar xdvi
s
beteende; om du är med om irriterande försök att skapa typsnitt,
varje gång du kör det, så lägg raden
XDvi*mfmode:
i .Xdefaults
. Det bör hjälpa.
Jag tar för givet att din kärna har PPP- + TCP/IP-stöd inkompilerat,
att "loopback" finns tillgängligt och att du redan har pppd
-paketet
installerat och suid root. Det är även uppenbart att din ISP (internet-
leverantör) måste stödja PPP.
Det finns nu två sätt att få PPP att fungera: a) manuell konfigurering, och b) ett konfigureringsprogram som fixar det automagiskt. Vilket alternativ du än väljer, så se till att du har följande information till hands:
Manuell konfigurering är ett hundgöra. Det handlar om att editera filer och skriva skalprogram, inte så mycket jobb, men det är lätt att göra misstag och nybörjare avskräcks ofta av detta. PPP-HOWTOn är som gjord för dig. Alternativet är verktyg som ställer dig frågor om det ovanstående och gör allt arbetet.
Det blir säkert mycket lättare om du går till en kompis som redan är uppkopplad och laddar ned något av de följande, trevliga verktygen:
http://www.serv.net/~cameron/ezppp/index.html
. Det är väldigt
enkelt att använda det är nästan självförklarande.
ftp://sunsite.unc.edu/pub/Linux/system/network/serial/ppp
. Ett av
de bästa är pppsetup-X.XX.tar.gz
.
wvdial
. Du
matar det med din ISPs telefonnummer, ditt användarnamn, ditt lösen-
ord, och du är igång. Från README-filen: `Det finns en (för till-
fället ganska dålig) webb-sida om wvdial på:
http://www.worldvisions.ca/wvdial
'. Ett väldigt fint verktyg.
För att hämta din e-post från en POP-server, använder du en POP-klient
som fetchpop
eller fetchmail
. Den senare är mer avancerad, och är
antagligen det enda alternativet om din ISPs PPP-server inte kan
handskas med LAST-kommandot. De finns på
ftp://sunsite.unc.edu/pub/Linux/system/mail/pop
.
För att konfigurera dessa klienter:
fetchpop
: första gången du kör det så kommer du bli tillfrågad om
en del information. Svara på frågorna och du är klar.
fetchmail
: använd följande enkla .fetchmailrc
:
# $HOME/.fetchmailrc
poll mbox.myisp.com with protocol pop3;
user john there with password _Loo%ny is john here
Du måste ange rättigheterna för filen med kommandot chmod 600
.fetchmailrc
, annars kommer fetchmail
vägra att starta. Det här
exemplet är väldigt grundläggande, och förutsätter att du har en
fungerande sendmail
. Det finns oändliga inställningsmöjligheter. Ta
en titt på dem på
http://www.ccil.org/~esr/fetchmail.
Så fort du har fått X att fungera (rätt grafik-kort osv.), så har du oändliga inställningsmöjligheter, vilka även beror på vilken fönster- hanterare du använder. I vilket fall som helst, så handlar det om att editera en eller flera ASCII-filer i din hemkatalog. Beroende på fönsterhanteraren:
/etc/X11/fvwm/system.fvwmrc
till din
hem-katalog som
.fvwmrc
, kolla igenom den och börja experimentera. Detta exempel på
en .fvwmrc
-fil är enligt min åsikt en aning för enkel
och gör inte fvwm
rättvisa.
/etc/X11/fvwm95-2/fvwm2rc95
till din hem-katalog,
som .fvwm2rc95
, editera den sedan. Detta exempel är ganska bra.
/etc/X11/TheNextLevel/.*
till din hem-katalog och gå noggrant
igenom dem, och försök ställa in dem. Den första du ska titta på är
.fvwm2rc.defines
.
Förutom dessa måste du även ha en passande .xinitrc
. Ett exempel:
#!/bin/sh
# $HOME/.xinitrc
# ställ in ett par tangenter ordentligt
usermodmap=$HOME/.Xmodmap
xmodmap $usermodmap
xset s noblank # slå av skärmsläckaren
xset s 300 2 # skärmsläckaren startar efter fem minuter
xsetroot -solid "medium blue" &
# rxvt spar en massa minne, men versioner äldre än 2.21 har buggar,
# påverkar tangenterna och sättet på vilket miljön tas över. Upp-
# gradera eller använd xterm istället.
xterm -ls -bg black -fg white -sb -sl 500 -j -ls -fn 10x20 -fb 10x20bold \
-title "Color xterm" -geometry 80x25+150+0 &
fvwm95-2
Enligt min erfarenhet så är Fortran-till-C-översättaren f2c
, och dess
fasad (front end) yaf77
, ett bra alternativ till g77
om du behöver
använda Fortran.
Skaffa yaf77-X.Y.tgz från
ftp://sunsite.unc.edu/pub/Linux/devel/lang/fortran
.
Det är en bra idé att låta en ny användare få vissa färdigställda
konfigureringsfiler, när han/hon först loggar in. Lägg in följande
filer i /etc/skel
: .bashrc .bash_profile .bash_logout
.inputrc .less .xinitrc .fvwmrc .fvwm2rc95 .Xmodmap .Xdefaults .jedrc
.abbrevs.sl .joerc .emacs
.
Observera att .pinerc
inte kan färdigställas helt i förväg; se i alla
fall till att fälten user-domain
, smtp-server
och nntp-server
är
ordentligt inställda.
Om du uppgraderar din maskin, kom ihåg att spara ett par extra filer
innan. Några av dessa är: /etc/X11/XF86Config
,
/usr/bin/fax
, ...