Boken Om Linux/Kapittel 18
18: Innlogging
[rediger]Innlogging
[rediger]Hvis du ikke har grafisk innlogging, er /etc/getty det første programmet som snakker med deg som bruker. Første melding fra Linux-systemet kommer alltid fra getty. Kjører du grafisk innlogging, er xdm (gdm eller kdm) det første programmet som snakker med deg som bruker. Ved hjelp av filen /etc/X11/xdm/Xsession ser Linux vindusbehandleren (WindowManager - WM) om du bruker kdm eller gdm. Når du får opp innloggingsboksen ser du om du kjører kdm eller gdm.
Figur 18.1: Innlogging under GNOME
Når brukeren har skrevet brukernavnet sitt, blir det lest av login-programmet som videre sjekker om brukeren er definert i systemet. Dette sjekkes i filene /etc/passwd (/etc/shadow) og /etc/group. Har brukeren et passord, må dette skrives inn. Alle brukere bør ha passord, inkludert root, som er brukernavnet for systemadministrator.
Getty venter på ditt svar og starter deretter det virkelige innloggings-programmet med svaret som argument. Getty finner for eksempel ut om terminalen din kan håndtere store og små bokstaver. Håndterer ikke terminalen din små bokstaver, vil loginledeteksten komme i store bokstaver. Getty kan også foreta automatisk hastighetsbestemmelse.
Skissen under viser oss at det er init som er foreldreprosessen til alle gettyene og gdmene. Kjører du grafisk innlogging, er forskjellige versjoner av xdm (som for eksempel gdm og kdm) det første programmet som snakker med deg som bruker.
Figur 18.2: Innlogging via X Windows eller tegnbasert
Når du skriver brukernavnet og passordet ditt på terminalen, sjekker login-programmet at begge er gyldig.
Skjermbildet som kommer opp etter en tegnbasert innlogging, er definert i systemfilen /etc/motd. Er brukeren definert, kommer tekstfilen /etc/motd på skjermen med dagens velkomstmelding.
Filen /etc/passwd
[rediger]Hvilken kommandotolk (skall) brukerne skal kjøre under, blir bestemt i /etc/passwd. Kolonnene i passordfilen har følgende felt:
- brukernavn (bruker-id som brukes ved innlogging)
- passord (passordet ditt)
- brukernummer (bruker-id er mappet mot et brukernummer)
- gruppenummer (gruppenummeret ditt)
- tekstfelt (tekstfelt som beskriver bruker)
- brukerområde (ditt hjemmeområde)
- skall (skallet som du bruker)
Alle disse parameterene kan du definere når du lager en ny Linux-bruker. Nye Linux-brukere kan du definere fra Red Hat brukerkonfigurasjon (# system-config-users), som du starter fra startknappen. Under Red Hat/GNOME, Systeminnstillinger og Brukere og grupper (Users and Groups).
Figur 18.3: Editering av bruker fra Fedora brukerkonfigurasjon
Brukernavnet er det navnet systemadministrator har definert for bruker. Dette navnet skal som regel bare bestå av små bokstaver.
Neste felt er passordet. På de fleste systemer er dette feltet satt opp slik at det også skal ha flere andre funksjoner. Hvis brukeren må skifte passord ved neste innlogging, eller passordet har passert en bestemt dato, kan dette være spesifisert i dette feltet med en bestemt kode. På Linux-systemer kan du se at passordet er kryptert i dette feltet. Bruker Linux-systemet ditt filen /etc/shadow, blir det krypterte passordet flyttet til /etc/shadow. I din /etc/passwd-fil vil det da bare stå en stjerne i passordfeltet.
Brukernummeret er et unikt nummer som peker til brukernavnet. Gruppenummeret viser oss hvilke grupper brukeren er medlem av. Navnet på gruppene finner du i /etc/group.
Tekstfeltet kan på de fleste systemer være maksimalt 38 tegn. Her kan du gi en tekstbeskrivelse av bruker.
Brukerområdet angir hvor brukeren har sitt arbeidsområde. Arbeidsområdet kan for eksempel være /home/ole, /usr/anne, /u/nils, /usr2/petter, /home1/hansen osv.
Skallet (shell) er et interaktivt program som fungerer som en kommandotolk (interpreter). (Se også kapittel 7, 8 og 16.)
I /etc/passwd har vi følgende forkortelser:
Skall | Navnet på skallet (shell) |
/bin/bash | Bash-skall (standard) |
/bin/bash2 | En variant av Bash-skall |
/bin/bsh | En variant av Bourne-skall |
/bin/tcsh | T-skall/bin/csh |
C-skall | Korn-skall |
/bin/ksh | Lagrer filen og avslutter vi |
/bin/sh | Bourne-skall (ikke standard i alle Linux-distribusjoner) |
/bin/zsh | Z-skall |
/sbin/nologin | Linux skall begrenset tilgang. |
Skall som brukes ikke for brukere (prosesser) | * Bash-skallet |
Når du logger deg inn, har du bestemte nøkkelfiler som lastes opp. Du kan bruke skall og miljøvariabler. I bash-skall kjennetegnes miljøvariabler ved at de har store bokstaver, og de settes ved bruk av export-kommandoen.
Miljøvariabler
[rediger]Nedenfor finner du en tabell over de viktigste bash-miljøvariablene som det kan være lurt å få satt opp og definert i din egen .bashrc-fil.
Bash-skall miljøvariabler | Beskrivelse |
BASH | gir søkebane til bash-skallet |
DISPLAY | viser skjermøkt (X-Window) |
HOME | søkebane til din hjemmekatalog |
HOSTNAME | navn på maskin |
HOSTTYPE | type maskin |
IPS | definerer feltseparator |
LOGNAME | ditt login-navn |
LANG | valgt språk |
søkebane til din e-POST fil | |
MAILCHECK | sjekk av post |
OSTYPE | denne variabelen gir deg type operativsystem |
PATH | søkebane for kommando |
PROMPT_COMMAND | kommando som skal kjøres etter nytt linjeskift |
PS1 | definerer ledeteksten din |
PS2 | definerer sekundær ledetekst |
PWD | katalogen du er i for øyeblikket |
SECONDS | antall sekunder som har gått siden du startet skallet |
SHELL | søkebane til ditt skall |
TERM | din terminaltype |
TMOUT | automatisk utlogging etter en tidsperiode uten aktivitet |
Eksempler på miljøvariabler er terminaltype, postkasse, om du har fått post, dagens dato osv. Standardrettigheter med umask-kommandoen kan du også sette opp her (mer om umask-kommandoen i kapittel 8). Skriver du printenv, får du de variablene du bruker i øyeblikket:
Eksempel:
[elboth@davidlin elboth]$ printenv | more
PWD=/home/elboth
HOSTNAME=davidlin.frisurf.no
PVM_RSH=/usr/bin/rsh
QTDIR=/usr/lib/qt-2.3.1
LESSOPEN=|/usr/bin/lesspipe.sh %s
XPVM_ROOT=/usr/share/pvm3/xpvm
KDEDIR=/usr
USER=elboth
LS_COLORS=no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=01;32:*.cmd=01;32:*.exe=01;32:*.com=01;32:*.btm=01;32:*.bat=01;32:*.sh=01;32:*.csh=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tz=01;31:*.rpm=01;31:*.cpio=01;31:*.jpg=01;35:*.gif=01;35:*.bmp=01;35:*.xbm=01;35:*.xpm=01;35:*.png=01;35:*.tif=01;35:
MACHTYPE=i386-redhat-linux-gnu
MAIL=/var/spool/mail/elboth
INPUTRC=/etc/inputrc
LANG=sv_SE
LOGNAME=elboth
SHLVL=1
SHELL=/bin/bash
HOSTTYPE=i386
OSTYPE=linux-gnu
HISTSIZE=1000
LAMHELPFILE=/etc/lam/lam-helpfile
PVM_ROOT=/usr/share/pvm3
HOME=/home/elboth
TERM=linux
SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass
PATH=/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/elboth/bin:/home/elboth/c-source:/home/elboth/bin
_=/usr/bin/printenv
Bash-skallet gir standardverdier for miljøvariablene PATH, PS1, PS2 og IFS hvis de ikke blir definert. Derimot blir HOME satt av login. MAIL har ingen verdi, den må settes.
For at miljøvariabler skal bli aktivert, må du, når du har definert dem, utføre export-kommandoen. Den generelle syntaksen er: export variabel=verdi
Eksempler:
[david@nittedal /etc]$ export HOME=/home/david
Miljøvariabler skrives alltid med store bokstaver og kjennetegnes ved at de har med ditt brukermiljø å gjøre. Miljøvariabler settes opp ved at du definerer dem som vanlige variabler. Miljøvariabler arves av nye skall som settes opp senere.
BASH
BASH-variablen gir deg søkebanen til bash-tolkeren. Har du flyttet bash, kan du omdefinere søkebanen.
[david@nittedal david]$ BASH=/usr/bin/bash
Som standard peker bash til katalogen /bin/bash.
DISPLAY
Skal du kjøre X Windows, er det viktig å sette opp DISPLAY-variablen, for eksempel:
[david@nittedal david]$ export DISPLAY=elboth:0.0
Syntaksen til DISPLAY-variablen er: vertsmaskin:skjerm:skjermsesjon.
HOME
Navnet på brukerens hjemmekatalog er definert som en miljøvariabel man kaller HOME. Du kan for eksempel bruke HOME i miljøvariabelen PATH.
HOSTNAME
Navnet på maskinen din finner du i /etc/hostaname.
Eksempel:
[david@nittedal david]$ echo $HOSTNAME
nittedal.c2i.net
IPS
IPS bestemmer hvilken variabel som skal være feltseparator. Intern feltseparatorer er vanligvis mellomrom, tab og ny linje.
Eksempel:
[david@nittedal david]$ export IPS=,
Her har jeg definert , (komma) som feltseparator.
LOGNAME
Definerer login-navnet ditt.
Eksempel:
[david@nittedal david]$ echo $LOGNAME
david
[david@nittedal david]$
LANG
Definerer språk. Du finner mer om språk og tastatur layout i kapittel 3 og kapittel 19.
Eksempel:
[david@nittedal david]$ echo $LANG
en_US
Navnet på brukerens elektroniske postkasse er vanligvis plassert på /usr/spool/mail. MAIL-variabelen brukes vanligvis til å endre søkebane og filnavn til postkassen.
Eksempel:
[elboth@nittedal david]$ export MAIL=/var/spool/mail/logname
MAILCHECK
Denne parameteren spesifiserer hvor ofte (i sekunder) posten skal sjekkes.
Eksempel:
[david@nittedal david]$ MAILCHECK=360
Her vil posten bli sjekket hvert 6. minutt (1 minutt = 60 sekunder). Standardverdien på MAILCHECK er 10 minutter (600 sekunder) hvis ikke noe annet er spesifisert. Setter du MAILCHECK=0, vil mailsystemet sjekke hver gang du får en ny ledetekst (dvs. hver gang du trykker enter).
OSTYPE
Ønsker du vite hva slags operativsystem du har, er OSTYPE-variabelen nyttig å lese.
Eksempel:
[david@nittedal david]$ echo $OSTYPE
linux-gnu
Har du applikasjoner som leser den variablen, og annen OSTYPE kreves, kan du definere hva du vil.
Eksempel:
[david@nittedal david]$ export OSTYPE=windows
PATH
Den spesielle skallvariabelen PATH kontrollerer hvilke programmer som kan utføres. PATH forteller noe om søkebanen for skalltolkeren. Uten PATH-kommandoen får du bare kjørt de programmene og kommandoene som er plassert i din lokale katalog. Får du feilmeldingen Command not found, kan det bety at bash-skallet ikke finner programmet i noen av de katalogene som er spesifisert i søkebanen (PATH).
Søkebanen med PATH settes vanligvis opp slik: .bash-profile eller .profile.
Eksempel:
[david@nittedal david]$ export PATH=/bin:/usr/bin: $HOME/bin:.
PROMPT_COMMAND
Med PROMPT_COMMAND har du muligheten til å kjøre en hvilken som helst Linux-kommando etter hver linjeskift.
Eksempel
[david@nittedal david]$ export PROMPT_COMMAND=hostname
Her kommer maskinnavnet etter hvert linjeskift.
PS1
I bash- og tcsh-skall definerer variabelen PS1 ledeteksten din. Standardverdi på ledeteksten for en bash-skallbruker er $-tegnet og for en tcsh-skallbruker %-tegnet.
Eksempel:
[david@nittedal david]$ export PS1='Gi kommando:'
Her definerer jeg ledeteksten til teksten Gi kommando.
[david@nittedal david]$ export PS1='Dato: \d Tid: \t->'
Dato: Sat Feb 27 Tid: 21:34:53->
Her definerer jeg ledeteksten til teksten med dagens dato og klokke. Du kan nå endre på systemvariabelen PS1 slik at du får en ledetekst C. Da kan brukeren innbille seg at han sitter ved en PC med Windows- og DOS-operativsystem.
PS2
PS2 er en sekundær ledetekst som du ser når skallet ditt forventer mer input. Denne miljøvariabelen er som standard satt til >.
Eksempel:
[david@nittedal david]$ PS2=+
Her definerer jeg sekundærledeteksten til tegnet + (pluss).
Kommandoene i systemfilen .bash-profile og .profile blir utført når du logger deg inn som bash-skallbruker.
PWD
Gir deg din aktive katalog.
Eksempel:
[david@nittedal david]$ echo $PWD
/home/david
SECONDS
Denne variabelen gir deg antall sekunder som har gått siden skallet ble startet.
Eksempel:
[david@nittedal david]$ echo $SECONDS
393
SHELL
Med miljøvariabelen SHELL får du status på hvilket skall du har. Du kan også omdefinere skallet.
Eksempel:
[david@nittedal david]$ echo $SHELL
/bin/bash
TERM
Når du ser beskjeden terminaltype på skjermen, har Linux brukt TERM-variabelen til å definere terminaltype. Ønsker du å sette en fast terminaltype i filen .bash_profile eller .profile, kan du for eksempel skrive:
[david@nittedal david]$ export TERM=vt100
Her setter jeg terminaltype til vt100.
[david@nittedal david]$ export TERM=linux
Her setter jeg terminaltype til linux.
TMOUT
Med denne variabelen kan jeg sette hvor lenge skallet kan være inaktivt før bash automatisk logger meg ut. Verdien som settes er i sekunder. TMOUT er uunnværlig i miljøer hvor sikkerhet er viktig.
[david@nittedal david]$ export TMOUT=900
Her tillater jeg 15 minutter med ingen aktivitet før automatisk utlogging.
Aliaser og skall-kommandoer
[rediger]I dette avsnittet ser jeg på alias-definsjoner og andre nyttige kommandoer.
Bash-skall-variabler | Beskrivelse |
alias | Definerer aliaser, dvs. du kan definere andre navn på kommandoer. |
unalias | Opphever aliaser |
history | Husker kommandoer |
source | Oppdatering av bash-miljø |
Eksempel:
[david@nittedal david]$ alias l='ls -la'
Nedenfor har jeg eksempler på nyttige aliaser:
[david@nittedal david]$ alias rm='rm -i'
[david@nittedal david]$ alias cp='cp -i'
[david@nittedal david]$ alias mv='mv -i'
[david@nittedal david]$ alias lsf='ls -color'
I det siste eksemplet får jeg alltid farger på filnavnene.
unalias
Ønsker du å oppheve et alias, kan du bruke kommandoen unalias. Nedenfor har jeg noen eksempler:
[david@nittedal david]$ unalias lsf
[david@nittedal david]$ unalias print
Kjører du tcsh-skallet og ønsker å få med argumenter til et alias, kan du bruke tegnkombinasjonen \!*, men det er nødvendig å bruke enkle apostrofer (') rundt aliaser som bruker \!* eller andre spesialtegn.
Eksempel (tcsh-skallet):
[vigdis@delboth ~]% alias print 'pr -n \!:* | lpr '
Bruker du ingen argumenter til alias-kommandoen, blir alle aliasene som gjelder skallet, skrevet ut.
history
Setter du opp history-kommandoen, vil tcsh- og bash-skallet huske så mange kommandoer som du ønsker. I de fleste tilfeller setter jeg opp mellom 10 og 25 kommandoer. Kommandoen settes opp ved å skrive set history=n, hvor n er antall kommandoer som skal huskes.
Eksempel (tcsh-skallet):
[david@nittedal david]$ set history=20
Listen som history-kommandoen lager, kan du referere til når du ønsker å gjøre en kommando eller en del av en kommando om igjen.
Skriver du bare history, får du en liste over kommandoer som du har brukt. Alle referanser til history-listen begynner med et utropstegn (!).
source
Har du gjort endringer i .bash_profile, .bashrc, .profile, .tcshrc, .login eller .cshrc, kan du få oppdatert ditt miljø ved å skrive source og navnet på konfigurasjonsfilen. Du slipper dermed å logge ut og inn igjen.
Eksempel (tcsh- og csh-skallet):
[david@nittedal david]$ source .tcshrc
Oppstartsfilene
[rediger]Alle skallene under Linux er tolker tilsvarende de som finnes i batch-miljøet under MS-DOS (command) og Windows (command eller cmd). Sammenligner du batch-miljøet under Linux med tilsvarende miljø under DOS eller Windows, vil du fort se at de forskjellige batch-miljøene under Linux er meget avanserte. De enkelte skallene har komplette utviklingsmiljøer hvor du kan lage avanserte programmer.
I utgangspunktet blir alle nye Linux-brukere satt opp med standard innloggingsprofiler. Disse kan styres både sentralt og lokalt. Det er opp til deg å sette opp dine lokale oppstartsfiler. Vær klar over at noen oppstartsfiler kjøres gjennom bare når du logger deg inn på systemet, mens andre kjøres hver gang du starter et ny skall.
I dette avsnittet ser jeg på oppstartsfilene som brukes for skallene bash (Bash-skall) og tcsh (T-skall). Ønsker du å benytte andre skall, for eksempel zsh (Z-skall), sh (Bourne-skall) eller csh (C-skall), finner du mer informasjon under man-sidene.
Bash-oppstartsfilene
[rediger]Felles oppstartsfil for alle bash-brukere er /etc/profile. Denne filen kan bare settes opp av systemadministrator. Som standard innloggingsfil for de enkelte brukerne brukte man tidligere $HOME/.profile. Denne konfigurasjonsfilen er nå forlatt, men brukes fortsatt av blant annet Bourne-skall (sh). Filen $HOME/.profile blir bare utført en gang dvs. når du logger inn på systemet. Den tilsvarende filen under bash-skall er $HOME/.bash_profile. Denne filen blir bare utført når du logger inn som bash-bruker. Hver gang du logger inn eller starter et skall blir innloggingsfilen $HOME/.bashrc utført. Det er derfor lurt å ha en $HOME/.bashrc. Husk at denne filen blir utført av alle ikke-innloggingskopier av bash.
Bash-skall | Beskrivelse |
$HOME/.bash_profile | Denne filen blir bare utført en gang, dvs. når du logger inn på systemet. |
/etc/profile | Dette er felles innloggingsfil for alle. Den setter standard miljøvariabel for alle. Denne filen blir bare utført en gang dvs. når du logger inn på systemet. |
$HOME/.profile | Denne filen brukes ved innlogging. Denne filen brukes mindre og mindre. Bruk isteden .bashrc. |
$HOME/.bashrc | Denne filen kjøres ved oppstart av et skall, for eksempel når du skriver bash. Siden denne filen inneholder bash-informasjon som er spesifikk for ditt skall, er det greit å bruke denne filen til dine miljøvariabler. |
$HOME/.bash_logout | Denne filen med innhold blir utført når du logger ut. |
Eksempel på fellessystemfilen (/etc/profile) for alle bash-brukere på systemet.
[root@nittedal /root]# more /etc/profile
- /etc/bashrc
- System wide functions and aliases
- Environment stuff goes in /etc/profile
- by default, we want this to get set.
- Even for non-interactive, non-login shells.
if [ id -gn = id -un -a id -u -gt 99 ]; then
umask 002
else
umask 022
fi
- are we an interactive shell?
if [ "$PS1" ]; then
if [ -x /usr/bin/tput ]; then
if [ "xtput kbs" != "x" ]; then # We can't do this with "dumb" terminal
stty erase tput kbs
elif [ -x /usr/bin/wc ]; then
if [ "tput kbs|wc -c " -gt 0 ]; then # We can't do this with "dumb" terminal
stty erase tput kbs
fi
fi
fi
case $TERM in
xterm*)
if [ -e /etc/sysconfig/bash-prompt-xterm ]; then
PROMPT_COMMAND=/etc/sysconfig/bash-prompt-xterm
else
PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/$HOME/~}\007"'
fi
- )
[ -e /etc/sysconfig/bash-prompt-default ] && PROMPT_COMMAND=/etc/sysconfig/bash-prompt-default
esac
[ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \W]\\$ "
if [ "x$SHLVL" != "x1" ]; then # We're not a login shell
for i in /etc/profile.d/*.sh; do
if [ -x $i ]; then
. $i
fi
done
fi
fi
- vim:ts=4:sw=4
Ønsker du å se hvilke variabler som er definert i bash-skall, kan du skrive printenv, export eller env. I bash-skall kan du definere en miljøvariabel ved å tilordne den en verdi, og deretter eksportere variabelen med export-kommandoen.
Under er et eksempel på en enkel lokal $HOME/.bashrc-fil.
[david@nittedal david]$ cat .bashrc
- .bashrc
- User specific aliases and functions
alias d='dir'
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
PATH=$PATH:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/elboth/bin:/home/elboth/c-source
export PATH
- Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
I vårt eksempel er de brukerspesifikke behovene som aliaser og søkebane definert lokalt i $HOME/.bashrc, mens felles funksjoner og andre globale definisjoner er definert i /etc/bashrc.
Tcsh-oppstartsfilene
[rediger]Er du satt opp som en tcsh-bruker (tcsh) kjøres først den globale /etc/csh.cshrc-filen før din lokale $HOME/.cshrc eller $HOME/.tcshrc. Tcsh-skall søker først etter $HOME/.tcshrc ved innlogging og ved alle nye kopier av tcsh. Har du ingen lokal .tcshrc-fil, blir .cshrc-filen brukt hvis den eksisterer
Tcsh-skall | Beskrivelse |
/etc/csh.cshrc | Dette er felles innloggingsfil for alle. Som standard setter den bestemte miljøvariabler for alle. Denne filen blir bare utført en gang, dvs. når du logger inn på systemet. |
$HOME/.cshrc | Denne filen kjøres ved oppstart av et skall, for eksempel når du skriver tcsh (eller csh). Siden denne filen inneholder tcsh (eller csh)-informasjon som er spesifikk for ditt skall, er det greit å bruke denne filen til dine miljøvariabler. Kommentar: Denne filen brukes mindre og mindre. Bruk isteden .tcshrc |
$HOME/.tcshrc | Denne filen kjøres ved oppstart av et skall, for eksempel når du skriver tcsh. Siden denne filen inneholder tcsh-informasjon som er spesifikk for ditt skall, er det greit å bruke denne filen til dine miljøvariabler. |
$HOME/.tcsh_logout | Denne filen med innhold blir utført når du logger ut. |
Nedenfor har jeg et eksempel på en felles innloggingsfil for alle tcsh-skall- brukere. Den setter standard miljøvariabler for alle. Denne filen blir bare utført en gang dvs. når du logger inn på systemet.
[root@nittedal /root]# more /etc/csh.cshrc
- /etc/cshrc
- csh configuration for all shell invocations.
- by default, we want this to get set.
- Even for non-interactive, non-login shells.
[ id -gn = id -un -a id -u -gt 99 ]
if $status then
umask 022
else
umask 002
endif
if ($?prompt) then
if ($?tcsh) then
set prompt='[%n@%m %c]$ '
else
set prompt=\[id -nu@hostname -s\]\$\
endif
endif
Nedenfor har et eksempel på en enkel lokal $HOME/.tcshrc-fil.
[julie@nittedal julie]$ cat .tcshrc
- .tcshrc
- User specific aliases and functions
alias d 'dir'
alias rm 'rm -i'
alias cp 'cp -i'
alias mv 'mv -i'
setenv PATH "/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/julie/bin:/home/julie/c-source"
set prompt='[%n@%m %c]# '
I vårt eksempel over har jeg definert aliaser, søkebane og venstre ledetekst i $HOME/.tshrc, mens felles funksjoner og andre globale definisjoner er definert i /etc/csh.cshrc. Du finner mer om tcsh på Linux-man-sidene.
Utlogging
[rediger]Utlogging fra Gnome. Under bash (under tcsh $HOME/.tcsh_logout) blir det søkt etter en utloggingsfil $HOME/.logout når du logger deg ut. Du har derfor muligheten til å lage din egen sikkerhetsrutine. Hver gang du vil fjerne en fil, kan du flytte filen i stedet for å fjerne den.
I eksemplet nedenfor har jeg laget et alias for Linux-kommandoen rm. I stedet for å fjerne filen, flytter jeg filen ned på en katalog som jeg kaller tmp.
Eksempel på $HOME/.tcsh_logout-fil. for tcsh-skallet:
- .tcsh_logout-fil
clear
find $TRASH \( -mtime +2 -o -size +15 \) -exec /bin/rm -f {}
\;
Følgende må oppdateres i din $HOME/.tcshrc fil:
setenv TRASH $HOME/.Trash
alias rm 'mv \!* $TRASH'
Innlogging eksternt
[rediger]Ønsker du å ha muligheten til å logge inn på Linux-maskinen utenfra, har du to muligheter:
- via nettverket (for eksempel TCP/IP eller IPX/SPX)
- serieport (for eksempel COM1 eller COM2)
Innlogging ved hjelp av for eksempel telnet er beskrevet i kapittel 22. Ønsker du å logge deg inn via en serieport, må serieporten du skal bruke settes opp. Serieportene dine kan du sette opp ved å bruke setserial-kommandoen. Setserial blir ofte kjørt ved oppstarten av en Linux-maskin for å sette maskinvareparametere som interupts og I/U-adresser. Sjekk man-siden på setserial og dokumentasjonen /usr/doc/setserial.../ eller /usr/share/doc/setserial. Denne kommandoen:
[root@nittedal /etc]# setserial -g '/dev/ttyS*'
gir deg informasjon om alle dine serieporter. Bruk stty-kommandoen for å endre kommunikasjonsparameterne på de enkelte portene du ønsker å bruke.
[root@nittedal /etc]# stty
speed 38400 baud; line = 0;
-brkint -imaxbel
Man stty gir deg hjelp til å sette de enkelte kommunikasjons-parameterene.
[root@nittedal /etc]# stty -F /dev/ttyS1 raw
I vårt siste eksempel setter jeg opp flere forskjellige kommunikasjonsparametere på COM1 (første serieport).
Oppgaver til kapittel 18
[rediger]Oppgave 18.1
Hva gjør prosessene getty (/sbin/mingetty) og gdm? Hva er moderprosessene til getty og gdm?
Oppgave 18.2
Hvilket skall er du satt opp i hvis det står følgende i /etc/passwd: tcsh, bash, sh, ksh?
Oppgave 18.3
Hvilket skall er alltid systemadministrator satt opp i?
Oppgave 18.4
Hvilke innloggingsfiler har man i bash-skall?
Oppgave 18.5
Hva gjør PS1- og IFS-kommandoene under bash-skall?
Oppgave 18.6
Definerer noen nyttige aliaser.
Oppgave 18.7
Lag dine egne nøkkelfiler under bash. (.bash_profile og $HOME/.bashrc)