Boken Om Linux/Kapittel 18

Fra Wikibøker – frie læremidler
Hopp til navigering Hopp til søk

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.

GNOME Display Manager (GDM) on Fedora--2016, 05.png

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).

Fedorabrukerkonfigurasjon.png

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
MAIL 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

MAIL

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

  1. /etc/bashrc
  1. System wide functions and aliases
  1. Environment stuff goes in /etc/profile
  1. by default, we want this to get set.
  1. Even for non-interactive, non-login shells.

if [ id -gn = id -un -a id -u -gt 99 ]; then

umask 002

else

umask 022

fi

  1. 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

  1. 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

  1. .bashrc
  1. 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

  1. 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

  1. /etc/cshrc
  1. csh configuration for all shell invocations.
  1. by default, we want this to get set.
  1. 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

  1. .tcshrc
  1. 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]

Logutfedora.png

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:

  1. .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)