sh(1p)
sh(1p) – POSIX-skal
PROLOG
Denna manualsida är en del av POSIX Programmer’s Manual. Linux-implementationer kan skilja sig från denna specifikation.
NAMN
sh — skal, standardtolk för kommandospråk
SYNOPSIS
sh [-abCefhimnuvx] [-o option]... [+abCefhimnuvx] [+o option]...
[command_file [argument...]]
sh -c [-abCefhimnuvx] [-o option]...
command_string [command_name [argument...]]
sh -s [-abCefhimnuvx] [-o option]...
[argument...]
BESKRIVNING
sh är en kommandotolk som:
- kör kommandon från:
- kommandorad
- standard input
- fil
- följer POSIX Shell Command Language (Kapitel 2)
Egenskaper:
- Filnamnsexpansion ska inte misslyckas p.g.a. filstorlek
- Omdirigeringar har implementationsberoende begränsningar
FLAGGOR
Standardflaggor (från set)
- -a -b -C -e -f -m -n -u -v -x
- -o option
Dessa kan även anges med + för motsatt beteende.
Specifika flaggor
- -c
- Kör kommandon från en sträng
- -i
- Interaktivt skal
- -s
- Läs från standard input
OPERANDER
- command_file
- Fil med kommandon
- command_string
- Sträng som tolkas som kommandon
- argument
- Positionella parametrar ($1, $2, …)
- -
- Ignoreras om ensam
STDIN
Används när:
- -s används
- inga argument ges
- kommandon kräver input
Skalet får inte konsumera input som tillhör underprocesser.
INPUTFILER
- Textfiler
- Obegränsad radlängd
- Endast kommentarer → exit status 0
MILJÖVARIABLER
Viktiga variabler:
- ENV
- Fil som körs vid interaktivt skal
- PATH
- Sökväg för kommandon
- HOME
- Hemkatalog
- LANG, LC_*
- Lokalisering
- HISTFILE
- Historikfil
- HISTSIZE
- Antal sparade kommandon
- MAIL, MAILPATH
- Mail-notifiering
- PWD
- Nuvarande katalog
ASYNKRONA HÄNDELSER
Signaler:
- Interaktivt skal:
* SIGINT fångas * SIGQUIT ignoreras * SIGTERM ignoreras
- Kan ändras via:
trap
STDOUT
Se STDERR
STDERR
Används för:
- felmeddelanden
OUTPUTFILER
- Inga
UTFÖRLIG BESKRIVNING
Kommandohistorik
- Sparas i fil angiven av HISTFILE
- Delas mellan skalinstanser
Kommandoredigering (vi-läge)
Aktivera:
set -o vi
Lägen:
- insert mode (standard)
- command mode (via ESC)
Insert mode (urval)
- Enter → kör kommando
- Backspace → radera
- Ctrl+W → radera ord
- Ctrl+V → infoga bokstavligt tecken
- ESC → command mode
Command mode (urval)
Navigering:
- h l – vänster/höger
- w b – ord fram/bak
- 0 $ – rad början/slut
Redigering:
- i a A – insert
- x – radera tecken
- dd – radera rad
- yy – kopiera
- p – klistra
Historik:
- k / j – upp/ned
- /pattern – sök bakåt
- ?pattern – sök framåt
EXIT STATUS
| Kod | Betydelse |
|---|---|
| 0 | Endast tomma rader/kommentarer |
| 1–125 | Fel (syntax, redirection, etc.) |
| 126 | Kan inte exekvera fil |
| 127 | Fil hittades inte |
Annars returneras senaste kommandots status.
FELHANTERING
Se POSIX avsnitt 2.8.1
ANVÄNDNING
Exempel:
sh -c "cat file"
sh script.sh
Tips:
- Använd:
command -v sh
för att hitta korrekt sökväg
EXEMPEL
1. Kör kommando:
sh -c "ls -l"
2. Kör skript:
sh script.sh
RATIONALE
- Delar flaggor med set
- Historik och IFS påverkar optimering
- vi-läge valdes över emacs-läge (standardisering)
FRAMTIDA ÄNDRINGAR
Inga planerade
SE ÄVEN
COPYRIGHT
POSIX.1-2017 (IEEE / The Open Group)
Sidslut
Det här är en maskinöversättning av linux kommando manualen till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på
https://www.linux.se/kontaka-linux-se/
Tack till Datorhjälp som har sponsrat Linux.se med webserver.