InnehÄllsförteckning
HÀr beskriver jag grundlÀggande tips för att konfigurera och hantera system, mestadels frÄn konsolen.
Det finns nÄgra verktygsprogram som hjÀlper dig med konsolaktiviteterna.
Tabell 9.1. Lista över program för att stödja konsolaktiviteter
| paket | popcon | storlek | beskrivning |
|---|---|---|---|
mc
|
V:44, I:184 | 1590 | Se Avsnitt 1.3, âMidnight Commander (MC)â |
bsdutils
|
V:443, I:999 | 335 | script(1)-kommando för att spela in en terminalsession |
screen
|
V:54, I:200 | 1006 | terminalmultiplexer med VT100/ANSI-terminalemulering |
tmux
|
V:81, I:154 | 1292 | terminal multiplexer alternativ (AnvÀnd "Control-B" istÀllet) |
ripgrep
|
V:9, I:31 | 5342 | snabb rekursiv strÀngsökning i kÀllkodstrÀdet med automatisk filtrering |
fzf
|
V:9, I:33 | 4902 | fuzzy text sökare |
fzy
|
V:0.09, I:0.41 | 59 | fuzzy text sökare |
rlwrap
|
V:1, I:12 | 328 | readline-funktion kommandoradsinklÀdnad |
ledit
|
V:0.5, I:8.4 | 375 | readline-funktion kommandoradsinklÀdnad |
rlfe
|
V:0.05, I:0.52 | 45 | readline-funktion kommandoradsinklÀdnad |
En enkel anvĂ€ndning av script(1) (se Avsnitt 1.4.9, âRegistrering av skalets aktiviteterâ) för att registrera aktiviteten
i skalet ger en fil med kontrolltecken. Detta kan undvikas genom att
anvÀnda col(1) pÄ följande sÀtt.
$ script Script started, file is typescript
Gör vad som helst ... och tryck pÄ Ctrl-D för att avsluta
skriptet.
$ col -bx < typescript > cleanedfile $ vim cleanedfile
Det finns alternativa metoder för att registrera skalaktiviteterna:
AnvÀnd tee (kan anvÀndas under startprocessen i
initramfs):
$ sh -i 2>&1 | tee typescript
AnvÀnd gnome-terminal med utökad radbuffert för
scrollback.
AnvĂ€nd skĂ€rmen med "^A H" (se Avsnitt 9.1.2, âSkĂ€rmprogrammetâ) för att spela in konsolen.
AnvÀnd vim med ":terminal" för att gÄ
till terminallÀget. AnvÀnd "Ctrl-W N" för att gÄ frÄn
terminallÀge till normallÀge. AnvÀnd ":w typescript" för
att skriva bufferten till en fil.
AnvÀnd emacs med "M-xshell",
"M-x eshell" eller "M-xterm" för att
komma till inspelningskonsolen. AnvÀnd "C-x C-w" för att
skriva bufferten till en fil.
screen(1) gör inte bara att ett terminalfönster kan
arbeta med flera processer, utan gör ocksÄ att
fjÀrrskalprocessen kan överleva avbrutna anslutningar. HÀr Àr
ett typiskt anvÀndningsscenario för screen(1).
Du loggar in pÄ en fjÀrrmaskin.
Du startar skÀrmen pÄ en enda konsol.
Du kör flera program i skÀrmfönster som skapats med
^A c ("Control-A" följt av "c").
Du vÀxlar mellan de olika fönstren med ^A
n ("Control-A" följt av "n").
Plötsligt mÄste du lÀmna din terminal, men du vill inte förlora ditt aktiva arbete genom att behÄlla anslutningen.
Du kan ta bort
skÀrmsessionen pÄ valfritt sÀtt.
Brutalt koppla bort din nÀtverksanslutning
Skriv ^A d ("Control-A" följt av "d") och logga ut
manuellt frÄn fjÀrranslutningen
Skriv ^A DD ("Control-A" följt av "DD") för att fÄ
skÀrmen att lossna och logga ut dig
Du loggar in igen pÄ samma fjÀrrmaskin (Àven frÄn en annan terminal).
Du startar screen som "screen -r".
screen Äterför pÄ ett
magiskt sÀtt alla tidigare skÀrmfönster med alla aktivt
pÄgÄende program.
|
Tips |
|---|---|
|
Du kan spara anslutningsavgifter med |
I en skÀrmsession skickas alla tangentbordsinmatningar
till det aktuella fönstret utom kommandotangenttryckningen. Alla
kommandotangenttryckningar pÄ skÀrmen anges genom att
skriva ^A ("Control-A") plus en enda tangent [plus
eventuella parametrar]. HÀr Àr nÄgra som Àr viktiga att komma ihÄg.
Tabell 9.2. Lista över tangentbindningar för skÀrm
| nyckelbindning | betydelse |
|---|---|
^A ? |
visa en hjÀlpskÀrm (visa tangentbindningar) |
^A c |
skapa ett nytt fönster och vÀxla till det |
^A n |
gÄ till nÀsta fönster |
^A p |
gÄ till föregÄende fönster |
^A 0 |
gÄ till fönster nummer 0 |
^A 1 |
gÄ till fönster nummer 1 |
^A w |
visa en lista över fönster |
^A a |
skicka ett Ctrl-A till aktuellt fönster som tangentbordsinmatning |
^A h |
skriva en papperskopia av det aktuella fönstret till filen |
^A H |
pÄbörja/avsluta loggning av aktuellt fönster till fil |
^A ^X |
lÄsa terminalen (lösenordsskyddad) |
^A d |
koppla loss skÀrmsessionen frÄn terminalen |
^A DD |
koppla bort skÀrmsessionen och logga ut |
Se screen(1) för mer information.
Se tmux(1) för funktionaliteten hos det alternativa
kommandot.
I Avsnitt 1.4.2, âAnpassa bashâ beskrivs 2 tips för att snabbt kunna
navigera i kataloger: $CDPATH och mc.
Om du anvÀnder textfilterprogrammet fuzzy kan du slippa skriva den exakta
sökvÀgen. För fzf, inkludera följande i
~/.bashrc.
FZF_KEYBINDINGS_PATH=/usr/share/doc/fzf/examples/key-bindings.bash if [ -f $FZF_KEYBINDINGS_PATH ]; then . $FZF_KEYBINDINGS_PATH fi
Till exempel:
Du kan hoppa till en mycket djup underkatalog med minimal anstrÀngning. Du
skriver först "cd **" och trycker pÄ
Tab. Sedan fÄr du en frÄga om möjliga sökvÀgar. Om du
skriver in delstrÀngar av sökvÀgen, t.ex. s/d/b foo,
begrÀnsas antalet sökvÀgar. Du vÀljer den sökvÀg som ska anvÀndas av
cd med hjÀlp av markör- och returtangenterna.
Du kan vÀlja ett kommando frÄn kommandohistoriken pÄ ett mer effektivt sÀtt
med minimal anstrÀngning. Du trycker pÄ Ctrl-R vid
kommandotolken. DĂ„ kommer du att uppmanas med kandidatkommandon. Om du
skriver in delar av kommandostrÀngar, t.ex. vim d,
begrÀnsas antalet kandidater. Du vÀljer det som ska anvÀndas med markör-
och returtangenterna.
Vissa kommandon, t.ex. /usr/bin/dash, som saknar
möjlighet att redigera kommandoradshistorik kan lÀgga till sÄdan
funktionalitet pÄ ett transparent sÀtt genom att köra under
rlwrap eller dess motsvarigheter.
$ rlwrap dash -i
Detta ger en bekvÀm plattform för att testa subtila punkter för
dash med vÀnlig bash-liknande miljö.
Kommandot rg(1) i paketet ripgrep
erbjuder ett snabbare alternativ till kommandot grep(1)
för att skanna kÀllkodstrÀdet för typiska situationer. Det drar nytta av
moderna flerkÀrniga processorer och tillÀmpar automatiskt rimliga filter för
att hoppa över vissa filer.
NĂ€r du har lĂ€rt dig grunderna i vim(1) via Avsnitt 1.4.8, âAnvĂ€nda vimâ, lĂ€s Bram Moolenaars"Seven habits of effective text
editing (2000)" för att förstÄ hur vim ska
anvÀndas.
Beteendet hos vim kan Àndras avsevÀrt genom att aktivera
dess interna funktioner genom Ex-mode-kommandon som
"set ..." för att stÀlla in vim-alternativ.
Dessa Ex-mode-kommandon kan inkluderas i anvÀndarens
vimrc-fil, traditionell "~/.vimrc" eller git-vÀnlig
"~/.vim/vimrc". HÀr Àr ett mycket enkelt exempel
[2]:
""" Generic baseline Vim and Neovim configuration (~/.vimrc) """ - For NeoVim, use "nvim -u ~/.vimrc [filename]" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" let mapleader = ' ' " :h mapleader """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" set nocompatible " :h 'cp -- sensible (n)vim mode syntax on " :h :syn-on filetype plugin indent on " :h :filetype-overview set encoding=utf-8 " :h 'enc (default: latin1) -- sensible encoding """ current vim option value can be verified by :set encoding? set backspace=indent,eol,start " :h 'bs (default: nobs) -- sensible BS set statusline=%<%f%m%r%h%w%=%y[U+%04B]%2l/%2L=%P,%2c%V set listchars=eol:¶,tab:â\ ,extends:âŠ,precedes:â€,nbsp:⣠set viminfo=!,'100,<5000,s100,h " :h 'vi -- bigger copy buffer etc. """ Pick "colorscheme" from blue darkblue default delek desert elflord evening """ habamax industry koehler lunaperche morning murphy pablo peachpuff quiet ron """ shine slate torte zellner colorscheme industry """ don't pick "colorscheme" as "default" which may kill SpellUnderline settings set scrolloff=5 " :h 'scr -- show 5 lines around cursor set laststatus=2 " :h 'ls (default 1) k """ boolean options can be unset by prefixing "no" set ignorecase " :h 'ic set smartcase " :h 'scs set autoindent " :h 'ai set smartindent " :h 'si set nowrap " :h 'wrap "set list " :h 'list (default nolist) set noerrorbells " :h 'eb set novisualbell " :h 'vb set t_vb= " :h 't_vb -- termcap visual bell set spell " :h 'spell set spelllang=en_us,cjk " :h 'spl -- english spell, ignore CJK set clipboard=unnamedplus " :h 'cb -- cut/copy/paste with other app set hidden " :h 'hid set autowrite " :h 'aw set timeoutlen=300 " :h 'tm
Keymapen för vim kan Àndras i anvÀndarens vimrc-fil.
T.ex:
|
Observera |
|---|---|
|
Försök inte att Àndra standardtangentbindningarna utan mycket goda skÀl. |
""" Popular mappings (imitating LazyVim etc.)
""" Window moves without using CTRL-W which is dangerous in INSERT mode
nnoremap <C-H> <C-W>h
nnoremap <C-J> <C-W>j
nnoremap <C-K> <C-W>k
silent! nnoremap <C-L> <C-W>l
""" Window resize
nnoremap <C-LEFT> <CMD>vertical resize -2<CR>
nnoremap <C-DOWN> <CMD>resize -2<CR>
nnoremap <C-UP> <CMD>resize +2<CR>
nnoremap <C-RIGHT> <CMD>vertical resize +2<CR>
""" Clear hlsearch with <ESC> (<C-L> is mapped as above)
nnoremap <ESC> <CMD>noh<CR><ESC>
inoremap <ESC> <CMD>noh<CR><ESC>
""" center after jump next
nnoremap n nzz
nnoremap N Nzz
""" fast "jk" to get out of INSERT mode (<ESC>)
inoremap jk <CMD>noh<CR><ESC>
""" fast "<ESC><ESC>" to get out of TERM mode (CTRL-\ CTRL-N)
tnoremap <ESC><ESC> <C-\><C-N>
""" fast "jk" to get out of TERM mode (CTRL-\ CTRL-N)
tnoremap jk <C-\><C-N>
""" previous/next trouble/quickfix item
nnoremap [q <CMD>cprevious<CR>
nnoremap ]q <CMD>cnext<CR>
""" buffers
nnoremap <S-H> <CMD>bprevious<CR>
nnoremap <S-L> <CMD>bnext<CR>
nnoremap [b <CMD>bprevious<CR>
nnoremap ]b <CMD>bnext<CR>
""" Add undo break-points
inoremap , ,<C-G>u
inoremap . .<C-G>u
inoremap ; ;<C-G>u
""" save file
inoremap <C-S> <CMD>w<CR><ESC>
xnoremap <C-S> <CMD>w<CR><ESC>
nnoremap <C-S> <CMD>w<CR><ESC>
snoremap <C-S> <CMD>w<CR><ESC>
""" better indenting
vnoremap < <gv
vnoremap > >gv
""" terminal (Somehow under Linux, <C-/> becomes <C-_> in Vim)
nnoremap <C-_> <CMD>terminal<CR>
"nnoremap <C-/> <CMD>terminal<CR>
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
if ! has('nvim')
""" Toggle paste mode with <SPACE>p for Vim (no need for Nvim)
set pastetoggle=<leader>p
""" nvim default mappings for Vim. See :h default-mappings in nvim
""" copy to EOL (no delete) like D for d
noremap Y y$
""" sets a new undo point before deleting
inoremap <C-U> <C-G>u<C-U>
inoremap <C-W> <C-G>u<C-W>
""" <C-L> is re-purposed as above
""" execute the previous macro recorded with Q
nnoremap Q @@
""" repeat last substitute and *KEEP* flags
nnoremap & :&&<CR>
""" search visual selected string for visual mode
xnoremap * y/\V<C-R>"<CR>
xnoremap # y?\V<C-R>"<CR>
endif
För att ovanstÄende tangentbindningar ska fungera korrekt mÄste
terminalprogrammet konfigureras sÄ att det genererar "ASCII DEL" för
Backspace-tangenten och "Escape-sekvens" för
Delete-tangenten.
Andra diverse konfigurationer kan Àndras i anvÀndarens vimrc-fil. T.ex:
""" Use faster 'rg' (ripgrep package) for :grep
if executable("rg")
set grepprg=rg\ --vimgrep\ --smart-case
set grepformat=%f:%l:%c:%m
endif
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
""" Retain last cursor position :h '"
augroup RetainLastCursorPosition
autocmd!
autocmd BufReadPost *
\ if line("'\"") > 0 && line ("'\"") <= line("$") |
\ exe "normal! g'\"" |
\ endif
augroup END
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
""" Force to use underline for spell check results
augroup SpellUnderline
autocmd!
autocmd ColorScheme * highlight SpellBad term=Underline gui=Undercurl
autocmd ColorScheme * highlight SpellCap term=Underline gui=Undercurl
autocmd ColorScheme * highlight SpellLocal term=Underline gui=Undercurl
autocmd ColorScheme * highlight SpellRare term=Underline gui=Undercurl
augroup END
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
""" highlight tailing spaces except when typing as red (set after colorscheme)
highlight TailingWhitespaces ctermbg=red guibg=red
""" \s\+ 1 or more whitespace character: <Space> and <Tab>
""" \%#\@<! Matches with zero width if the cursor position does NOT match.
match TailingWhitespaces /\s\+\%#\@<!$/
Intressanta externa plugin-paket kan hittas:
Vim - den allestÀdes nÀrvarande textredigeraren -- Den officiella uppströmswebbplatsen för Vim och vim-skript
VimAwsome -- En lista över Vim-plugins
vim-scripts -- Debian-paket: en samling vim-skript
Plugin-paket i paketet vim-scripts kan aktiveras med hjÀlp av anvÀndarens vimrc-fil. T.ex:
packadd! secure-modelines packadd! winmanager " IDE-like UI for files and buffers with <space>w nnoremap <leader>w :WMToggle<CR>
Det nya inbyggda Vim-paketsystemet fungerar fint med
"git" och "git submodule". Ett sÄdant
exempel pÄ konfiguration finns i mitt
git-arkiv: dot-vim. Detta gör i huvudsak:
Genom att anvÀnda "git" och "git
submodule" kan de senaste externa paketen, till exempel
"namn", placeras i
~/.vim/pack/*/opt/name och liknande.
Genom att lÀgga till
namnraden:packadd! i anvÀndarens vimrc-fil
placeras dessa paket pÄ runtimepath.
Vim laddar dessa paket pÄ runtimepath under
initialiseringen.
I slutet av initialiseringen uppdateras taggarna för de installerade
dokumenten med "helptags ALL".
För mer information, starta vim med âvim
--startuptime vimstart.logâ för att kontrollera den faktiska
exekveringssekvensen och tiden som ÄtgÄr för varje steg.
Det Àr ganska förvirrande att se alltför mÄnga sÀtt[3] att hantera och ladda dessa externa paket till
vim. Att kontrollera den ursprungliga informationen Àr
det bÀsta botemedlet.
Tabell 9.3. Information om initialiseringen av vim
| tangenttryckningar | information |
|---|---|
:help package |
förklaring av paketmekanismen vim |
:help runtimepath |
förklaring av mekanismen för runtimepath |
:version |
interna stater inklusive kandidater för vimrc-filen |
:echo $VIM |
miljövariabeln "$VIM" som anvÀnds för att hitta
vimrc-filen |
:set runtimepath? |
lista över kataloger som ska genomsökas efter alla runtime-stödfiler |
:echo $VIMRUNTIME |
miljövariabeln "$VIMRUNTIME" som anvÀnds för att hitta
olika systemtillhandahÄllna runtime-stödfiler |
MÄnga traditionella program registrerar sina aktiviteter i textfilformat
under katalogen "/var/log/".
logrotate(8) anvÀnds för att förenkla administrationen av
loggfiler pÄ ett system som genererar mÄnga loggfiler.
MÄnga nya program registrerar sina aktiviteter i det binÀra filformatet med
hjÀlp av systemd-journald(8) JournaltjÀnst under
katalogen "/var/log/journal".
Du kan logga data till journalen systemd-journald(8) frÄn
ett skalskript med kommandot systemd-cat(1).
Se Avsnitt 3.5, âSystemets meddelandeâ och Avsnitt 3.4, âKĂ€rnans meddelandeâ.
HÀr Àr anmÀrkningsvÀrda logganalysatorer (
"~Gsecurity::log-analyzer" i
aptitude(8)).
Tabell 9.4. Lista över systemlogganalysatorer
| paket | popcon | storlek | beskrivning |
|---|---|---|---|
fail2ban
|
V:96, I:107 | 2191 | förbjuda IP-adresser som orsakar flera autentiseringsfel |
logwatch
|
V:9, I:11 | 2436 | logganalysator med snygg utdata skriven i Perl |
awstats
|
V:5.5, I:8.7 | 6935 | kraftfull och funktionell analysator för webbserverloggar |
analog
|
V:3, I:88 | 3739 | logganalysator för webbserver |
sarg
|
V:0.82, I:0.90 | 863 | generator för blÀckfiskanalysrapport |
pflogsumm
|
V:1.5, I:3.8 | 170 | Postfix sammanfattning av loggposter |
fwlogwatch
|
V:0.12, I:0.18 | 487 | analysator för brandvÀggsloggar |
squidview
|
V:0.05, I:0.50 | 189 | övervaka och analysera squid access.log-filer |
swatch
|
V:0.09, I:0.32 | 99 | loggfilsgranskare med regexp-matchning, markering och krokar |
crm114
|
V:0.07, I:0.37 | 1371 | Kontrollerbart regex- och skrÀppostfilter (CRM114) |
icmpinfo
|
V:0.03, I:0.36 | 42 | tolka ICMP-meddelanden |
|
Notera |
|---|---|
|
CRM114 tillhandahÄller sprÄkinfrastruktur för att skriva fuzzy-filter med TRE regex-biblioteket. Det anvÀnds ofta som spamfilter men kan Àven anvÀndas som logganalysator. |
Ăven om pager-verktyg som more(1) och
less(1) (se Avsnitt 1.4.5, âPersonsökarenâ) och anpassade
verktyg för markering och formatering (se Avsnitt 11.1.8, âMarkera och formatera data i klartextâ) kan visa textdata
pĂ„ ett snyggt sĂ€tt, Ă€r generella editorer (se Avsnitt 1.4.6, âTextredigerarenâ) mest mĂ„ngsidiga och anpassningsbara.
|
Tips |
|---|---|
|
För |
Standardformatet för visning av tid och datum med kommandot "ls
-l" beror pĂ„ locale (se Avsnitt 1.2.6, âTidsstĂ€mplarâ för vĂ€rde). Variabeln "$LANG"
anges först och den kan ÄsidosÀttas av de exporterade miljövariablerna
"$LC_TIME" eller "$LC_ALL".
Det faktiska standardformatet för varje lokal beror pÄ vilken version av
standardbiblioteket för C ( paketet libc6 ) som anvÀnds.
D.v.s. olika versioner av Debian har olika standardformat. För isoformat,
se ISO 8601.
Om du verkligen vill anpassa detta visningsformat för tid och datum utöver
locale, bör du stÀlla in tidsformatvÀrdet med argumentet "
--time-styleâ eller med vĂ€rdet â$TIME_STYLEâ
(se ls(1), date(1), âinfo
coreutils âls invocationâ").
Tabell 9.5. Visa exempel pÄ tid och datum för kommandot "ls -l" med
vÀrdet för tidstyp
| tid stil vÀrde | lokal | visning av tid och datum |
|---|---|---|
iso |
nÄgon | 01-19 00:15 |
long-iso |
nÄgon | 2009-01-19 00:15 |
full-iso |
nÄgon | 2009-01-19 00:15:16.000000000 +0900 |
locale |
C |
Jan 19 00:15 |
locale |
en_US.UTF-8 |
Jan 19 00:15 |
locale |
es_ES.UTF-8 |
ene 19 00:15 |
+%d.%m.%y %H:%M |
nÄgon | 19.01.09 00:15 |
+%d.%b.%y %H:%M |
C eller en_US.UTF-8 |
19.09 januari 00:15 |
+%d.%b.%y %H:%M |
es_ES.UTF-8 |
19.ene.09 00:15 |
|
Tips |
|---|---|
|
Du kan slippa skriva lĂ„nga alternativ pĂ„ kommandoraden med hjĂ€lp av kommandonas alias (se Avsnitt 1.5.9, âKommando aliasâ): alias ls='ls --time-style=+%d.%m.%y %H:%M' |
Shell-eko till de flesta moderna terminaler kan fÀrglÀggas med hjÀlp av
ANSI escape code (se
"/usr/share/doc/xterm/ctlseqs.txt.gz").
Försök till exempel med följande
$ RED=$(printf "\x1b[31m")
$ NORMAL=$(printf "\x1b[0m")
$ REVERSE=$(printf "\x1b[7m")
$ echo "${RED}RED-TEXT${NORMAL} ${REVERSE}REVERSE-TEXT${NORMAL}"
FÀrgade kommandon Àr praktiska för att inspektera deras utdata i den
interaktiva miljön. Jag inkluderar följande i min
"~/.bashrc".
if [ "$TERM" != "dumb" ]; then
eval "`dircolors -b`"
alias ls='ls --color=always'
alias ll='ls --color=always -l'
alias la='ls --color=always -A'
alias less='less -R'
alias ls='ls --color=always'
alias grep='grep --color=always'
alias egrep='egrep --color=always'
alias fgrep='fgrep --color=always'
alias zgrep='zgrep --color=always'
else
alias ll='ls -l'
alias la='ls -A'
fi
AnvÀndningen av alias begrÀnsar fÀrgeffekterna till den interaktiva
kommandoanvÀndningen. Det har en fördel jÀmfört med att exportera
miljövariabeln "export GREP_OPTIONS='--color=auto'"
eftersom fÀrg kan ses under pager-program som less(1).
Om du vill undertrycka fÀrgen vid piping till andra program, anvÀnd
"--color=auto" istÀllet i exemplet ovan för
"~/.bashrc".
|
Tips |
|---|---|
|
Du kan stÀnga av dessa fÀrglÀggande alias i den interaktiva miljön genom att
anropa shell med " |
Du kan spela in redigeringsaktiviteterna för komplexa upprepningar.
För Vim, enligt följande.
"qa": börja registrera skrivna tecken i ett namngivet
register "a".
... redaktörsverksamhet
"q": avsluta inspelning av skrivna tecken.
"@a": kör innehÄllet i register "a".
För Emacs, enligt följande.
"C-x (": Börja definiera ett tangentbordsmakro.
... redaktörsverksamhet
"C-x )": Avsluta definitionen av ett tangentbordsmakro.
"C-x e": Utför ett tangentbordsmakro.
Det finns nÄgra olika sÀtt att spela in grafikbilden för ett X-program,
inklusive en xterm-display.
Tabell 9.6. Lista över grafiska bildmanipuleringsverktyg
| paket | popcon | storlek | skÀrm | kommando |
|---|---|---|---|---|
gnome-screenshot
|
V:13, I:110 | 1115 | Wayland | skÀrmdumpsprogram för GNOME |
flameshot
|
V:8, I:18 | 3532 | Wayland | skÀrmdump ansökan pÄ steroid |
gimp
|
V:33, I:229 | 32032 | Wayland + X | skÀrmdump i GUI-meny |
x11-apps
|
V:33, I:463 | 2461 | X | xwd(1) |
imagemagick
|
V:9, I:291 | 77 | X | import(1) |
scrot
|
V:4, I:54 | 141 | X | scrot(1) |
Det finns specialiserade verktyg för att registrera Àndringar i konfigurationsfiler med hjÀlp av DVCS och för att göra ögonblicksbilder av systemet pÄ Btrfs.
Tabell 9.7. Lista över paket som kan registrera konfigurationshistorik
| paket | popcon | storlek | beskrivning |
|---|---|---|---|
etckeeper
|
V:25, I:28 | 157 | lagra konfigurationsfiler och deras metadata med Git (standard), Mercurial eller GNU Bazaar |
timeshift
|
V:8, I:14 | 4481 | verktyg för systemÄterstÀllning med hjÀlp av rsync eller BTRFS-snapshots |
snapper
|
V:6.5, I:8.8 | 2410 | Verktyg för hantering av ögonblicksbilder av Linux-filsystem |
Du kan ocksĂ„ tĂ€nka dig att anvĂ€nda det lokala skriptet Avsnitt 10.2.3, âTips för sĂ€kerhetskopieringâ.
Programaktiviteter kan övervakas och styras med hjÀlp av specialiserade verktyg.
Tabell 9.8. Förteckning över verktyg för övervakning och kontroll av programaktiviteter
| paket | popcon | storlek | beskrivning |
|---|---|---|---|
coreutils
|
V:897, I:1000 | 17994 | nice(1): kör ett program med Àndrad
schemalÀggningsprioritet |
bsdutils
|
V:443, I:999 | 335 | renice(1): Àndra schemalÀggningsprioriteten för en
process som körs |
procps
|
V:822, I:998 | 2404 | "/proc" filsystemverktyg: ps(1),
top(1), kill(1),
watch(1), ⊠|
psmisc
|
V:410, I:742 | 950 | verktyg för filsystemet "/proc":
killall(1), fuser(1),
peekfd(1), pstree(1) |
time
|
V:6, I:85 | 129 | time(1): kör ett program för att rapportera hur
systemresurser anvÀnds med avseende pÄ tid |
sysstat
|
V:124, I:163 | 1904 | sar(1), iostat(1),
mpstat(1), ...: verktyg för systemprestanda för Linux |
isag
|
V:0.1, I:3.3 | 109 | Interactive System Activity Grapher för sysstat |
lsof
|
V:445, I:950 | 492 | lsof(8): lista filer som öppnats av en pÄgÄende process
med alternativet "-p" |
strace
|
V:10, I:104 | 3253 | strace(1): spÄra systemanrop och signaler |
ltrace
|
V:1, I:12 | 420 | ltrace(1): spÄra anrop till bibliotek |
xtrace
|
V:0.06, I:0.69 | 353 | xtrace(1): spÄra kommunikationen mellan X11-klient och
server |
powertop
|
V:34, I:231 | 696 | powertop(1): information om systemets strömförbrukning |
cron
|
V:907, I:997 | 250 | kör processer enligt ett schema i bakgrunden frÄn
cron(8)-daemon |
anacron
|
V:421, I:492 | 112 | cron-liknande kommandoschemalÀggare för system som inte körs 24 timmar om dygnet |
at
|
V:74, I:101 | 158 | at(1) eller batch(1): kör ett jobb vid
en angiven tidpunkt eller under en viss belastningsnivÄ |
|
Tips |
|---|---|
|
Paketen |
Visar tid som anvÀnts av den process som anropas av kommandot.
# time some_command >/dev/null real 0m0.035s # time on wall clock (elapsed real time) user 0m0.000s # time in user mode sys 0m0.020s # time in kernel mode
Ett fint vÀrde anvÀnds för att styra schemalÀggningsprioriteten för processen.
Tabell 9.9. Lista med bra vÀrden för schemalÀggningsprioritet
| bra vÀrde | prioritet för schemalÀggning |
|---|---|
| 19 | process med lÀgst prioritet (nice) |
| 0 | mycket högprioriterad process för anvÀndaren |
| -20 | mycket högprioriterad process för rot (inte trevligt) |
# nice -19 top # very nice # nice --20 wodim -v -eject speed=2 dev=0,0 disk.img # very fast
Ibland gör ett extremt nice-vÀrde mer skada Àn nytta för systemet. AnvÀnd detta kommando med försiktighet.
Kommandot ps(1) pÄ ett Debian-system har stöd för bÄde
BSD- och SystemV-funktioner och hjÀlper till att identifiera
processaktiviteten statiskt.
Tabell 9.10. Lista över stilar för kommandot ps
| stil | typiskt kommando | funktion |
|---|---|---|
| BSD | ps aux |
visa %CPU %MEM |
| System V | ps -efH |
visa PPID |
NÀr det gÀller zombieprocesser kan du döda dem med hjÀlp av det ID för den
överordnade processen som anges i fÀltet "PPID".
Kommandot pstree(1) visar ett trÀd med processer.
top(1) pÄ Debian-systemet har rika funktioner och hjÀlper
till att identifiera vilken process som agerar roligt dynamiskt.
Det Àr ett interaktivt fullskÀrmsprogram. Du kan fÄ hjÀlp med anvÀndningen genom att trycka pÄ "h"-tangenten och avsluta det genom att trycka pÄ "q"-tangenten.
Du kan lista alla filer som öppnats av en process med ett process-ID (PID), t.ex. 1, pÄ följande sÀtt.
$ sudo lsof -p 1
PID=1 Àr vanligtvis init-programmet.
Du kan spÄra programaktivitet med strace(1),
ltrace(1) eller xtrace(1) för
systemanrop och signaler, biblioteksanrop eller kommunikation mellan
X11-klient och -server.
Du kan spÄra systemanrop med kommandot ls pÄ följande
sÀtt.
$ sudo strace ls
|
Tips |
|---|---|
|
AnvÀnd skriptet strace-graph som finns i /usr/share/doc/strace/examples/ för att skapa en snygg trÀdvy |
Du kan ocksÄ identifiera processer med hjÀlp av filer genom
fuser(1), t.ex. för
"/var/log/mail.log" pÄ följande sÀtt.
$ sudo fuser -v /var/log/mail.log
USER PID ACCESS COMMAND
/var/log/mail.log: root 2946 F.... rsyslogd
Du ser att filen "/var/log/mail.log" Àr öppen för
skrivning av kommandot rsyslogd(8).
Du kan ocksÄ identifiera processer som anvÀnder uttag med
fuser(1), t.ex. för âsmtp/tcpâ med
följande.
$ sudo fuser -v smtp/tcp
USER PID ACCESS COMMAND
smtp/tcp: Debian-exim 3379 F.... exim4
Nu vet du att ditt system kör exim4(8) för att hantera
TCP-anslutningar till SMTP-porten (25).
watch(1) kör ett program upprepade gÄnger med ett
konstant intervall och visar dess resultat i helskÀrm.
$ watch w
Visar vem som Àr inloggad pÄ systemet och uppdateras varannan sekund.
Det finns flera sÀtt att upprepa ett kommando som loopar över filer som
uppfyller ett visst villkor, t.ex. att matcha globmönstret
"*.ext".
Shell for loop-metoden (se Avsnitt 12.1.4, âĂglor i skaletâ):
for x in *.ext; do if [ -f "$x"]; then command "$x" ; fi; done
find(1) och xargs(1) kombination:
find . -type f -maxdepth 1 -name '*.ext' -print0 | xargs -0 -n 1 command
find(1) med alternativet "-exec" med
ett kommando:
find . -type f -maxdepth 1 -name '*.ext' -exec command '{}' \;
find(1) med alternativet "-exec" med
ett kort shell-skript:
find . -type f -maxdepth 1 -name '*.ext' -exec sh -c "command '{}' && echo 'successful'" \;
Exemplen ovan Àr skrivna för att sÀkerstÀlla korrekt hantering av konstiga
filnamn, t.ex. sĂ„dana som innehĂ„ller mellanslag. Se Avsnitt 10.1.5, âIdiom för urval av filerâ för mer avancerade
anvÀndningsomrÄden för find(1).
För kommandoradsgrÀnssnittet
(CLI) körs det första programmet med samma namn som finns i de
kataloger som anges i miljövariabeln $PATH. Se Avsnitt 1.5.3, âVariabeln "$PATH"â.
För det grafiska
anvÀndargrÀnssnittet (GUI) som följer freedesktop.org-standarderna tillhandahÄller
*.desktop-filerna i katalogen
/usr/share/applications/ nödvÀndiga attribut för
GUI-menyvisningen i varje program. Varje paket som Àr kompatibelt med
Freedesktop.org:s xdg-menysystem installerar sina menydata som
tillhandahÄlls av "*.desktop" under "/usr/share/applications/". Moderna
skrivbordsmiljöer som följer Freedesktop.org-standarden anvÀnder dessa data
för att generera sin meny med hjÀlp av paketet xdg-utils. Se
"/usr/share/doc/xdg-utils/README".
Till exempel definierar filen chromium.desktop attribut
för "Chromium Web Browser", sÄsom "Name" för programnamnet, "Exec" för
sökvÀgen och argumenten för programkörning, "Icon" för den ikon som anvÀnds,
etc. (se Desktop Entry
Specification) enligt följande:
[Desktop Entry] Version=1.0 Name=Chromium Web Browser GenericName=Web Browser Comment=Access the Internet Comment[fr]=Explorer le Web Exec=/usr/bin/chromium %U Terminal=false X-MultipleArgs=false Type=Application Icon=chromium Categories=Network;WebBrowser; MimeType=text/html;text/xml;application/xhtml_xml;x-scheme-handler/http;x-scheme-handler/https; StartupWMClass=Chromium StartupNotify=true
Detta Àr en alltför förenklad
beskrivning. *.desktop-filerna skannas enligt följande.
The desktop environment sets $XDG_DATA_HOME and
$XDG_DATA_DIR environment variables. For example, under
the GNOME:
$XDG_DATA_HOME Àr inte instÀllt. (StandardvÀrdet
$HOME/.local/share anvÀnds)
$XDG_DATA_DIRS Àr instÀlld pÄ
/usr/share/gnome:/usr/local/share/:/usr/share/.
Baskatalogerna (se XDG Base
Directory Specification) och
applikationskatalogerna Àr alltsÄ följande.
$HOME/.local/share/ â
$HOME/.local/share/applications/
/usr/share/gnome/ â
/usr/share/gnome/applications/
/usr/local/share/ â
/usr/local/share/applications/
/usr/share/ â /usr/share/applications/
*.desktop-filerna skannas i dessa
programkataloger i denna ordning.
|
Tips |
|---|---|
|
En anvÀndaranpassad GUI-menypost kan skapas genom att lÀgga till en
|
|
Tips |
|---|---|
|
" |
|
Tips |
|---|---|
|
PÄ samma sÀtt, om en |
|
Tips |
|---|---|
|
PÄ samma sÀtt, om en |
Vissa program startar ett annat program automatiskt. HÀr följer kontrollpunkter för att anpassa denna process.
Meny för programkonfiguration:
GNOME desktop: "Settings" â "Apps" â "Default Apps"
KDE desktop: "Application Launcher" â "System Settings" â "Default Applications"
Iceweasel webblĂ€sare: "Redigera" â "InstĂ€llningar" â "Program"
mc(1): "/etc/mc/mc.ext"
Miljövariabler som "$BROWSER",
"$EDITOR", "$VISUAL" och
"$PAGER" (se environ(7))
Systemet update-alternatives(1) för program som
"editor", "view",
"x-www-browser", "gnome-www-browser"
och "www-browser" (se Avsnitt 1.4.7, âAnge en standardtextredigerareâ)
filinnehÄllet i "~/.mailcap" och
"/etc/mailcap" som associerar MIME-typ med program (se mailcap(5))
FilinnehÄllet i "~/.mime.types" och
"/etc/mime.types" som associerar filnamnstillÀgg med
MIME-typ (se run-mailcap(1))
|
Tips |
|---|---|
|
|
|
Tips |
|---|---|
|
Paketet |
|
Tips |
|---|---|
|
För att kunna köra en konsolapplikation som # cat /usr/local/bin/mutt-term <<EOF #!/bin/sh gnome-terminal -e "mutt \$@" EOF # chmod 755 /usr/local/bin/mutt-term |
AnvÀnd kill(1) för att döda (eller skicka en signal till)
en process med process-ID.
AnvÀnd killall(1) eller pkill(1) för
att göra samma sak med processens kommandonamn och andra attribut.
Tabell 9.11. Lista över ofta anvÀnda signaler för kill-kommando
| signalvÀrde | signalens namn | ÄtgÀrd | notering |
|---|---|---|---|
| 0 | --- | ingen signal skickas (se kill(2)) |
kontrollera om processen Àr igÄng |
| 1 | SIGHUP | avsluta processen | frÄnkopplad terminal (signal upphÀngd) |
| 2 | SIGINT | avsluta processen | avbrott frÄn tangentbordet(CTRL-C) |
| 3 | SIGQUIT | avsluta processen och dumpa kÀrnan | avsluta frÄn tangentbordet(CTRL-\\) |
| 9 | SIGKILL | avsluta processen | oblockerbar dödssignal |
| 15 | SIGTERM | avsluta processen | blockerbar avslutningssignal |
Kör kommandot at(1) för att schemalÀgga ett engÄngsjobb
pÄ följande sÀtt.
$ echo 'command -args'| at 3:40 monday
AnvÀnd cron(8) för att schemalÀgga uppgifter
regelbundet. Se crontab(1) och
crontab(5).
Du kan schemalÀgga att köra processer som en vanlig anvÀndare,
t.ex. foo, genom att skapa en
crontab(5)-fil som
"/var/spool/cron/crontabs/foo" med kommandot
"crontab -e".
HÀr Àr ett exempel pÄ en crontab(5)-fil.
# use /usr/bin/sh to run commands, no matter what /etc/passwd says SHELL=/bin/sh # mail any output to paul, no matter whose crontab this is MAILTO=paul # Min Hour DayOfMonth Month DayOfWeek command (Day... are OR'ed) # run at 00:05, every day 5 0 * * * $HOME/bin/daily.job >> $HOME/tmp/out 2>&1 # run at 14:15 on the first of every month -- output mailed to paul 15 14 1 * * $HOME/bin/monthly # run at 22:00 on weekdays(1-5), annoy Joe. % for newline, last % for cc: 0 22 * * 1-5 mail -s "It's 10pm" joe%Joe,%%Where are your kids?%.%% 23 */2 1 2 * echo "run 23 minutes after 0am, 2am, 4am ..., on Feb 1" 5 4 * * sun echo "run at 04:05 every Sunday" # run at 03:40 on the first Monday of each month 40 3 1-7 * * [ "$(date +%a)" == "Mon" ] && command -args
|
Tips |
|---|---|
|
Om systemet inte körs kontinuerligt kan du installera paketet
|
|
Tips |
|---|---|
|
Skript för schemalagt systemunderhÄll kan du köra regelbundet frÄn
root-kontot genom att placera dem i " |
Systemd har kapacitet pÄ lÄg nivÄ för att
schemalÀgga program som ska köras utan cron-daemon. Till
exempel stÀller /lib/systemd/system/apt-daily.timer och
/lib/systemd/system/apt-daily.service in dagliga
apt-hÀmtningsaktiviteter. Se systemd.timer(5) .
Systemd kan schemalĂ€gga program inte bara pĂ„ timerhĂ€ndelsen utan Ă€ven pĂ„ mount-hĂ€ndelsen. Se Avsnitt 10.2.3.3, âTimerhĂ€ndelseutlöst sĂ€kerhetskopieringâ och Avsnitt 10.2.3.2, âMontera hĂ€ndelsestyrd sĂ€kerhetskopieringâ för exempel.
Genom att trycka pÄ Alt-SysRq (PrtScr) följt av en knapptryckning ÄterfÄr du kontrollen över systemet.
Tabell 9.12. Lista över anmÀrkningsvÀrda SAK-kommandotangenter
| tangent efter Alt-SysRq | beskrivning av ÄtgÀrden |
|---|---|
k |
dödaalla processer pÄ den aktuella virtuella konsolen(SAK) |
s |
synkroniseraalla monterade filsystem för att undvika datakorruption |
u |
Ätermontera alla monterade filsystem skrivskyddade(umount) |
r |
ÄterstÀlla tangentbordet frÄn raw-lÀgeefter X-krasch |
Se mer pÄ Linux-kÀrnans anvÀndar- och administratörshandbok " Linux Magic System Request Key Hacks
|
Tips |
|---|---|
|
FrÄn SSH-terminaler etc. kan du anvÀnda Alt-SysRq-funktionen genom att
skriva till " |
Den aktuella (2021) Debian amd64 Linux-kÀrnan har
/proc/sys/kernel/sysrq=438=0b110110110:
2 = 0x2 - aktivera kontroll av konsolloggningsnivÄ (ON)
4 = 0x4 - aktivera styrning av tangentbord (SAK, unraw) (ON)
8 = 0x8 - aktivera felsökningsdumpar av processer etc. (OFF)
16 = 0x10 - aktivera synkroniseringskommando (ON)
32 = 0x20 - aktivera Ätermontering skrivskyddad (ON)
64 = 0x40 - aktivera signalering av processer (term, kill, oom-kill) (OFF)
128 = 0x80 - TillÄt omstart/avstÀngning (ON)
256 = 0x100 - TillÄt nikning av alla RT-uppgifter (ON)
Du kan kontrollera vem som Àr inne i systemet pÄ följande sÀtt.
who(1) visar vem som Àr inloggad.
w(1) visar vem som Àr inloggad och vad de gör.
last(1) visar en lista över den senast inloggade
anvÀndaren.
lastb(1) visar en lista över de senaste dÄliga inloggade
anvÀndarna.
|
Tips |
|---|---|
|
" |
Du kan skicka ett meddelande till alla som Àr inloggade i systemet med
wall(1) pÄ följande sÀtt.
$ echo "We are shutting down in 1 hour" | wall
För PCI-liknande enheter(AGP, PCI-Express,
CardBus, ExpressCard etc.) Àr lspci(8)
(förmodligen med alternativet "-nn") en bra början för
identifiering av maskinvaran.
Alternativt kan du identifiera maskinvaran genom att lÀsa innehÄllet i
"/proc/bus/pci/devices" eller blÀddra i katalogtrÀdet
under "/sys/bus/pci" (se Avsnitt 1.2.12, âprocfs och sysfsâ).
Tabell 9.13. Lista över verktyg för identifiering av hÄrdvara
| paket | popcon | storlek | beskrivning |
|---|---|---|---|
pciutils
|
V:256, I:992 | 280 | Linux PCI-verktyg: lspci(8) |
usbutils
|
V:81, I:887 | 322 | USB-verktyg för Linux: lsusb(8) |
nvme-cli
|
V:23, I:31 | 2222 | NVMe-verktyg för Linux: nvme(1) |
pcmciautils
|
V:4.6, I:7.1 | 92 | PCMCIA-verktyg för Linux: pccardctl(8) |
scsitools
|
V:0.2, I:2.4 | 261 | samling verktyg för hantering av SCSI-maskinvara:
lsscsi(8) |
procinfo
|
V:0.4, I:6.2 | 149 | systeminformation hÀmtad frÄn "/proc":
lsdev(8) |
lshw
|
V:13, I:91 | 971 | information om maskinvarukonfiguration: lshw(1) |
discover
|
V:27, I:677 | 81 | system för identifiering av hÄrdvara: discover(8) |
Ăven om det mesta av maskinvarukonfigurationen pĂ„ moderna GUI-skrivbordssystem som GNOME och KDE kan hanteras via medföljande GUI-konfigurationsverktyg, Ă€r det en bra idĂ© att kĂ€nna till nĂ„gra grundlĂ€ggande metoder för att konfigurera dem.
Tabell 9.14. Lista över verktyg för hÄrdvarukonfiguration
| paket | popcon | storlek | beskrivning |
|---|---|---|---|
console-setup
|
V:81, I:973 | 421 | Font och keytable-verktyg för Linux-konsolen |
x11-xserver-utils
|
V:315, I:542 | 559 | Verktyg för X-server: xset(1),
xmodmap(1) |
acpid
|
V:58, I:90 | 158 | daemon för att hantera hÀndelser som levereras av ACPI (Advanced Configuration and Power Interface) |
acpi
|
V:7, I:84 | 49 | verktyg för att visa information om ACPI-enheter |
sleepd
|
V:0.09, I:0.11 | 84 | daemon för att sÀtta en bÀrbar dator i vilolÀge under inaktivitet |
hdparm
|
V:118, I:222 | 246 | optimering av hĂ„rddiskĂ„tkomst (se Avsnitt 9.6.9, âOptimering av hĂ„rddiskenâ) |
smartmontools
|
V:230, I:264 | 2455 | styra och övervaka lagringssystem med hjÀlp av S.M.A.R.T. |
setserial
|
V:3.4, I:5.4 | 104 | samling av verktyg för hantering av serieportar |
memtest86+
|
V:1, I:19 | 12473 | samling av verktyg för hantering av minneshÄrdvara |
scsitools
|
V:0.2, I:2.4 | 261 | samling av verktyg för hantering av SCSI-hÄrdvara |
setcd
|
V:0.06, I:0.67 | 33 | optimering av Ätkomst till cd-lÀsare |
big-cursor
|
I:0.70 | 26 | större muspekare för X |
ACPI Àr ett nyare ramverk för energihanteringssystemet Àn APM.
|
Tips |
|---|---|
|
Skalning av CPU-frekvens pÄ moderna system styrs av kÀrnmoduler som
t.ex. |
I det följande stÀlls system- och maskinvarutid in pÄ MM/DD hh:mm, CCYY.
# date MMDDhhmmCCYY # hwclock --utc --systohc # hwclock --show
Tiderna visas normalt i lokal tid pÄ Debian-systemet, men maskinvaru- och systemtiden anvÀnder vanligtvis UTC(GMT).
Om maskinvarans tid Àr instÀlld pÄ UTC ska du Àndra instÀllningen till
"UTC=yes" i "/etc/default/rcS".
Följande omkonfigurerar den tidszon som anvÀnds av Debiansystemet.
# dpkg-reconfigure tzdata
Om du vill uppdatera systemtiden via nÀtverket kan du övervÀga att anvÀnda
NTP-tjÀnsten med paket som
ntp, ntpdate och
chrony.
|
Tips |
|---|---|
|
Under systemd ska du istÀllet anvÀnda
|
Se följande.
|
Tips |
|---|---|
|
|
Det finns flera komponenter för att konfigurera teckenkonsol- och
ncurses(3)-systemfunktioner.
Filen "/etc/terminfo/*/*"(terminfo(5))
Miljövariabeln "$TERM"(term(7))
setterm(1), stty(1),
tic(1) och toe(1)
Om terminfo-posten för xterm inte
fungerar med en xterm som inte Àr frÄn Debian, Àndra din
terminaltyp, "$TERM", frÄn "xterm"
till en av de funktionsbegrÀnsade versionerna som
"xterm-r6" nÀr du loggar in pÄ ett Debiansystem pÄ
distans. Se "/usr/share/doc/libncurses5/FAQ" för mer
information. "dumb" Àr den minsta gemensamma nÀmnaren
för "$TERM".
Drivrutiner för ljudkort för nuvarande Linux tillhandahÄlls av Advanced Linux Sound Architecture (ALSA). ALSA tillhandahÄller emuleringslÀge för tidigare Open Sound System (OSS) för kompatibilitet.
Programvarorna kan konfigureras sÄ att de inte bara har direkt tillgÄng till ljudenheterna utan ocksÄ till dem via ett standardiserat ljudserversystem. För nÀrvarande anvÀnds PulseAudio, JACK och PipeWire som ljudserversystem. Se Debians wikisida om ljud för den senaste situationen.
Det finns vanligtvis en gemensam ljudmotor för varje populÀr skrivbordsmiljö. Varje ljudmotor som anvÀnds av programmet kan vÀlja att ansluta till olika ljudservrar.
|
Tips |
|---|---|
|
AnvÀnd " |
|
Tips |
|---|---|
|
Om du inte fÄr nÄgot ljud kan högtalaren vara ansluten till en utgÄng som Àr
avstÀngd. Moderna ljudsystem har mÄnga
utgÄngar. |
Tabell 9.15. Lista över ljudpaket
AnvÀnd följande kommandon för att inaktivera skÀrmslÀckaren.
Tabell 9.16. Lista över kommandon för att inaktivera skÀrmslÀckaren
| miljö | kommando |
|---|---|
| Linux-konsolen | setterm -powersave off |
| X-fönstret (stÀnga av skÀrmslÀckaren) | xset s off |
| X-fönstret (inaktivera dpms) | xset -dpms |
| X-fönstret (GUI-konfiguration av skÀrmslÀckare) | xscreensaver-command -prefs |
Man kan alltid koppla ur datorns högtalare för att inaktivera pipljud. Att
ta bort pcspkr-kÀrnmodulen gör detta Ät dig.
Följande förhindrar att programmet readline(3) som
anvÀnds av bash(1) piper nÀr det stöter pÄ ett
alert-tecken (ASCII=7).
$ echo "set bell-style none">> ~/.inputrc
Det finns 2 resurser tillgÀngliga för dig för att fÄ information om minnesanvÀndningssituationen.
KÀrnans startmeddelande i "/var/log/dmesg" innehÄller den
totala exakta storleken pÄ tillgÀngligt minne.
free(1) och top(1) visar information
om minnesresurser i det system som körs.
HÀr Àr ett exempel.
# grep '\] Memory' /var/log/dmesg
[ 0.004000] Memory: 990528k/1016784k available (1975k kernel code, 25868k reserved, 931k data, 296k init)
$ free -k
total used free shared buffers cached
Mem: 997184 976928 20256 0 129592 171932
-/+ buffers/cache: 675404 321780
Swap: 4545576 4 4545572
Du kanske undrar "dmesg sÀger att jag har 990 MB ledigt, och free -k sÀger att 320 MB Àr ledigt. Mer Àn 600 MB saknas ...".
Bry dig inte om det stora "used" och det lilla
"free" i raden "Mem:", utan lÀs det
som stÄr under dem (675404 och 321780 i exemplet ovan) och slappna av.
För min MacBook med 1GB=1048576k DRAM (videosystemet stjÀl en del av detta), ser jag följande.
Tabell 9.17. Lista över rapporterade minnesstorlekar
| felanmalan | storlek |
|---|---|
| Total storlek i dmesg | 1016784k = 1GB - 31792k |
| Gratis i dmesg | 990528k |
| Totalt under skal | 997184k |
| Fri under skal | 20256k (men i praktiken 321780k) |
DÄligt systemunderhÄll kan utsÀtta ditt system för extern exploatering.
För att kontrollera systemets sÀkerhet och integritet bör du börja med följande.
Debsums-paketet, se debsums(1) och
Avsnitt 2.5.2, â"Release"-fil pĂ„ högsta nivĂ„ och Ă€kthetâ.
Paketet chkrootkit, se chkrootkit(1).
Paketfamiljen clamav, se clamscan(1)
och freshclam(1).
Tabell 9.18. Förteckning över verktyg för kontroll av systemsÀkerhet och systemintegritet
| paket | popcon | storlek | beskrivning |
|---|---|---|---|
logcheck
|
V:5.0, I:6.1 | 120 | daemon för att skicka avvikelser i systemets loggfiler till administratören |
debsums
|
V:4, I:30 | 107 | verktyg för att verifiera installerade paketfiler mot MD5-kontrollsummor |
chkrootkit
|
V:9, I:15 | 966 | rootkit-detektor |
clamav
|
V:9, I:40 | 33154 | antivirusprogram för Unix - kommandoradsgrÀnssnitt |
tiger
|
V:1.4, I:1.8 | 7800 | rapportera sÄrbarheter i systemsÀkerheten |
tripwire
|
V:1.5, I:1.9 | 5050 | kontroll av fil- och katalogintegritet |
john
|
V:1.4, I:8.0 | 469 | aktivt verktyg för att knÀcka lösenord |
aide
|
V:1.8, I:2.2 | 331 | Avancerad miljö för intrÄngsdetektering - statisk binÀr |
integrit
|
V:0.09, I:0.19 | 2939 | program för verifiering av filintegritet |
crack
|
V:0.11, I:0.82 | 153 | program för lösenordsgissning |
HÀr Àr ett enkelt skript för att kontrollera om filbehörigheterna för skrivbara filer Àr felaktiga.
# find / -perm 777 -a \! -type s -a \! -type l -a \! \( -type d -a -perm 1777 \)
|
Observera |
|---|---|
|
Eftersom |
Booting your system as the Linux live system (see Avsnitt 3.2.2, âLinux live rescue system on USBâ and Avsnitt 3.2.3, âLinux live rescue system from GRUBâ) makes it easy for you to reconfigure data storage on the installed system.
|
Notera |
|---|---|
|
Statements on hard disk (HDD) are applicable to
other storage devices such as SSD / USB flash drive / Memory card / ... . Replace device names in
examples such as |
Du kan behöva umount(8) vissa enheter manuellt frÄn
kommandoraden innan du kör pÄ dem om de monteras automatiskt av
GUI-skrivbordssystemet.
DiskutrymmesanvÀndningen kan utvÀrderas med hjÀlp av program som
tillhandahÄlls av paketen mount,
coreutils och xdu:
mount(8) rapporterar alla monterade filsystem (= diskar).
df(1) rapporterar hur mycket diskutrymme som anvÀnds för
filsystemet.
du(1) rapporterar hur mycket diskutrymme som anvÀnds för
katalogtrÀdet.
|
Tips |
|---|---|
|
Du kan mata utdata frÄn |
För diskpartitionskonfiguration, Àven
om fdisk(8) har ansetts vara standard, förtjÀnar
parted(8) viss uppmÀrksamhet. "Diskpartitionsdata",
"partitionstabell", "partitionskarta" och "disketikett" Àr synonymer.
Ăldre datorer anvĂ€nder det klassiska MBR-schemat (Master Boot Record) för att lagra diskpartitioneringsdata i den första sektorn, dvs. LBA-sektorn 0 (512 byte).
Nya datorer med UEFI (Unified Extensible Firmware Interface), inklusive Intel-baserade Mac-datorer, anvÀnder GPT (GUID Partition Table) för att lagra diskpartitioneringsdata som inte finns i den första sektorn.
Ăven om fdisk(8) har varit standard för
diskpartitioneringsverktyget hÄller parted(8) pÄ att
ersÀtta det.
Tabell 9.19. Lista över paket för hantering av diskpartitioner
| paket | popcon | storlek | beskrivning |
|---|---|---|---|
util-linux
|
V:902, I:1000 | 4384 | diverse systemverktyg inklusive fdisk(8) och
cfdisk(8) |
parted
|
V:448, I:580 | 126 | GNU Parted program för att Àndra storlek pÄ diskpartitioner |
gparted
|
V:13, I:93 | 2313 | GNOME-partitionsredigerare baserad pÄ libparted |
gdisk
|
V:20, I:306 | 940 | partition editor för GPT/MBR hybriddisk |
kpartx
|
V:17, I:28 | 76 | program för att skapa enhetsmappningar för partitioner |
|
Observera |
|---|---|
|
Ăven om |
|
Notera |
|---|---|
|
För att kunna vÀxla mellan GPT och MBR mÄste du radera de första blocken av diskinnehÄllet
direkt (se Avsnitt 9.8.6, âRensning av filinnehĂ„llâ) och anvĂ€nda
" |
Ăven om omkonfigurering av partitioner eller aktiveringsordning för flyttbara lagringsmedia kan ge olika namn pĂ„ partitioner, kan du komma Ă„t dem pĂ„ ett konsekvent sĂ€tt. Detta Ă€r ocksĂ„ anvĂ€ndbart om du har flera diskar och ditt BIOS/UEFI inte ger dem enhetsnamn som Ă€r konsekventa.
mount(8) med alternativet "-U" kan
montera en blockenhet med hjÀlp av UUID,
istÀllet för att anvÀnda dess filnamn, t.ex. "/dev/sda3".
"/etc/fstab" (se fstab(5)) kan anvÀnda
UUID.
Boot loaders (Avsnitt 3.1.2, âSteg 2: startladdarenâ) kan ocksĂ„ anvĂ€nda UUID.
|
Tips |
|---|---|
|
Du kan undersöka UUID för en blockspecifik enhet
med Du kan ocksÄ undersöka UUID och annan information med " |
LVM2 Àr en logisk volymhanterare för Linux-kÀrnan. Med LVM2 kan diskpartitioner skapas pÄ logiska volymer i stÀllet för pÄ de fysiska hÄrddiskarna.
LVM krÀver följande.
stöd för enhetsmappare i Linux-kÀrnan (standard för Debian-kÀrnor)
stödbibliotek för enhet-mappare i
anvÀndarutrymmet(libdevmapper*-paketet)
lVM2-verktygen i anvÀndarutrymmet(lvm2-paketet)
Börja med att lÀra dig LVM2 frÄn följande manpages.
lvm(8): Grunderna i LVM2-mekanismen (lista över alla
LVM2-kommandon)
lvm.conf(5): Konfigurationsfil för LVM2
lvs(8): Rapportera information om logiska volymer
vgs(8): Rapportera information om volymgrupper
pvs(8): Rapportera information om fysiska volymer
För ext4-filsystem tillhandahÄller paketet
e2fsprogs följande.
mkfs.ext4(8) för att skapa ett nytt ext4-filsystem
fsck.ext4(8) för att kontrollera och reparera ett
befintligt ext4-filsystem
tune2fs(8) för att konfigurera superblock i ext4-filsystem
debugfs(8) för att felsöka ext4-filsystem interaktivt. (Det har kommandot
undel för att ÄterstÀlla raderade filer)
Kommandona mkfs(8) och fsck(8)
tillhandahÄlls av paketet e2fsprogs som front-ends till
olika filsystemberoende program (mkfs.fstype och
fsck.fstype). För ext4-filsystemet Àr det mkfs.ext4(8)
och fsck.ext4(8) (de Àr symlÀnkade till
mke2fs(8) och e2fsck(8)).
Liknande kommandon finns tillgÀngliga för alla filsystem som stöds av Linux.
Tabell 9.20. Lista över paket för hantering av filsystem
| paket | popcon | storlek | beskrivning |
|---|---|---|---|
e2fsprogs
|
V:804, I:998 | 1543 | verktyg för filsystemen ext2/ext3/ext4 |
btrfs-progs
|
V:49, I:77 | 5204 | verktyg för filsystemet Btrfs |
reiserfsprogs
|
V:10, I:22 | 473 | verktyg för Reiserfs-filsystemet |
zfsutils-linux
|
V:32, I:32 | 1893 | verktyg för OpenZFS-filsystemet |
dosfstools
|
V:251, I:573 | 310 | verktyg för FAT-filsystemet. (Microsoft: MS-DOS, Windows) |
exfatprogs
|
V:37, I:468 | 352 | verktyg för exFAT-filsystemet som underhÄlls av Samsung. |
exfat-fuse
|
V:2, I:50 | 73 | lÀs/skriv exFAT-filsystem (Microsoft) drivrutin för FUSE. |
xfsprogs
|
V:37, I:87 | 4382 | verktyg för XFS-filsystemet. (SGI: IRIX) |
ntfs-3g
|
V:219, I:527 | 1500 | lÀs/skriv NTFS-filsystem (Microsoft: Windows NT, ...) drivrutin för FUSE. |
jfsutils
|
V:0.5, I:7.2 | 1104 | verktyg för JFS-filsystemet. (IBM: AIX, OS/2) |
xorriso
|
V:15, I:64 | 347 | utilities for the ISO-9660 filesystem and CD/DVD writing from libburnia |
wodim
|
V:9, I:97 | 898 | command line CD/DVD writing tool from cdrkit |
genisoimage
|
V:18, I:168 | 1567 | command line ISO-9660 filesystem tool from cdrkit |
reiser4progs
|
V:0.1, I:1.5 | 1367 | verktyg för Reiser4-filsystemet |
hfsprogs
|
V:0.3, I:3.5 | 394 | verktyg för filsystemet HFS och HFS Plus. (Apple: Mac OS) |
zerofree
|
V:6, I:120 | 30 | program för att nollstÀlla fria block frÄn ext2/3/4-filsystem |
|
Tips |
|---|---|
|
Ext4-filsystemet Ă€r standardfilsystemet för Linux-systemet och rekommenderas starkt att anvĂ€nda det om du inte har nĂ„gra specifika skĂ€l att inte göra det. Status för btrfs finns pĂ„ Debian wiki on btrfs och kernel.org wiki on btrfs. Det förvĂ€ntas bli nĂ€sta standardfilsystem efter ext4-filsystemet. Vissa verktyg ger Ă„tkomst till filsystem utan stöd frĂ„n Linux-kĂ€rnan (se Avsnitt 9.8.2, âManipulera filer utan att montera diskâ). |
Kommandot mkfs(8) skapar filsystemet pÄ ett
Linux-system. Med kommandot fsck(8) kan du kontrollera
och reparera filsystemets integritet pÄ ett Linux-system.
Debian anvÀnder nu som standard ingen periodisk fsck
efter skapande av filsystem.
|
Observera |
|---|---|
|
Det Àr i allmÀnhet inte sÀkert att köra |
|
Tips |
|---|---|
|
Du kan köra kommandot Kontrollera filerna i " |
Den grundlÀggande konfigurationen av ett statiskt filsystem anges i
"/etc/fstab". Till exempel,
«file system» «mount point» «type» «options» «dump» «pass» proc /proc proc defaults 0 0 UUID=709cbe4c-80c1-56db-8ab1-dbce3146d2f7 / ext4 errors=remount-ro 0 1 UUID=817bae6b-45d2-5aca-4d2a-1267ab46ac23 none swap sw 0 0 /dev/scd0 /media/cdrom0 udf,iso9660 user,noauto 0 0
|
Tips |
|---|---|
|
UUID (se Avsnitt 9.6.3, âĂ
tkomst till partition med hjĂ€lp av UUIDâ) kan anvĂ€ndas för att
identifiera en blockenhet i stÀllet för normala blockenhetsnamn som
" |
Sedan Linux 2.6.30 anvÀnder kÀrnan som standard det beteende som anges i
alternativet "relatime".
Se fstab(5) och mount(8).
Egenskaperna hos ett filsystem kan optimeras via dess superblock med hjÀlp
av kommandot tune2fs(8).
NÀr "sudo tune2fs -l /dev/sda1" körs visas innehÄllet i
filsystemets superblock pÄ "/dev/sda1".
Genom att köra "sudo tune2fs -c 50 /dev/sda1" Àndras
frekvensen för filsystemkontroller(fsck körs under
uppstart) till var 50:e uppstart pÄ "/dev/sda1".
Genom att köra "sudo tune2fs -j /dev/sda1" lÀggs
journaliseringskapacitet till filsystemet, dvs. filsystemet konverteras frÄn
ext2 till ext3 pÄ
"/dev/sda1". (Gör detta pÄ det omonterade filsystemet.)
Utförandet av "sudo tune2fs -O extents,uninit_bg,dir_index
/dev/sda1 && fsck -pf /dev/sda1" konverterar det frÄn
ext3 till ext4 pÄ
"/dev/sda1". (Gör detta pÄ det omonterade filsystemet.)
|
Tips |
|---|---|
|
Trots sitt namn fungerar |
|
Varning |
|---|---|
|
Kontrollera din maskinvara och lÀs manpage för |
Du kan testa diskÄtkomsthastigheten för en hÄrddisk,
t.ex. "/dev/sda", med "hdparm -tT
/dev/sda". För vissa hÄrddiskar som Àr anslutna till (E)IDE kan du
snabba upp den med "hdparm -q -c3 -d1 -u1 -m16 /dev/sda"
genom att aktivera "(E)IDE 32-bitars I/O-stöd", aktivera
"using_dma-flaggan", stÀlla in "interrupt-unmask-flaggan" och stÀlla in
"multiple 16 sector I/O" (farligt!).
Du kan testa skrivcache-funktionen pÄ en hÄrddisk,
t.ex. "/dev/sda", med "hdparm -W
/dev/sda". Du kan inaktivera dess skrivcachefunktion med
"hdparm -W 0 /dev/sda".
Du kanske kan lÀsa dÄligt pressade CDROM-skivor pÄ en modern CD-ROM-enhet
med hög hastighet genom att sakta ner den med "setcd -x
2".
SSD-enheten (Solid State Drive) upptÀcks automatiskt nu.
Minska onödiga diskÄtkomster för att förhindra att disken slits ut genom att
montera "tmpfs" pÄ den flyktiga datasökvÀgen i
/etc/fstab.
Du kan övervaka och logga din SMART-kompatibla
hÄrddisk med hjÀlp av daemon smartd(8).
Aktivera SMART-funktionen i BIOS.
Installera paketet smartmontools.
Identifiera dina hÄrddiskar genom att lista dem med
df(1).
LÄt oss anta att en hÄrddisk som ska övervakas heter
"/dev/sda".
Kontrollera utdata frÄn "smartctl -a /dev/sda" för att se
om SMART-funktionen faktiskt Àr aktiverad.
Om inte, aktivera den genom att "smartctl -s on -a
/dev/sda".
Aktivera smartd(8) daemon att köras genom att göra
följande.
kommentera bort "start_smartd=yes" i filen
"/etc/default/smartmontools".
starta om daemon smartd(8) med "sudo systemctl
restart smartmontools".
|
Tips |
|---|---|
|
|
Program skapar normalt temporÀra filer under den temporÀra lagringskatalogen
"/tmp". Om "/tmp" inte ger
tillrÀckligt med utrymme kan du ange en sÄdan katalog för tillfÀllig lagring
via variabeln $TMPDIR för vÀluppfostrade program.
För partitioner som skapas med LVM (Logical Volume Manager) (Linux-funktion) vid installationstillfÀllet kan storleken enkelt Àndras genom att sammanlÀnka extenter till dem eller avkorta extenter frÄn dem över flera lagringsenheter utan större omkonfigurering av systemet.
Om du har en tom partition (t.ex. "/dev/sdx") kan du
formatera den med mkfs.ext4(1) och
mount(8) den till en katalog dÀr du behöver mer
utrymme. (Du mÄste kopiera det ursprungliga datainnehÄllet.)
$ sudo mv work-dir old-dir $ sudo mkfs.ext4 /dev/sdx $ sudo mount -t ext4 /dev/sdx work-dir $ sudo cp -a old-dir/* work-dir $ sudo rm -rf old-dir
|
Tips |
|---|---|
|
Alternativt kan du montera en tom diskavbildningsfil (se Avsnitt 9.7.5, âSkapa en tom diskavbildningsfilâ) som en loop-enhet (se Avsnitt 9.7.3, âMontering av diskavbildningsfilenâ). Den faktiska diskanvĂ€ndningen vĂ€xer med de faktiska data som lagras. |
Om du har en tom katalog (t.ex. "/path/to/emp-dir") pÄ en
annan partition med anvÀndbart utrymme kan du montera(8) den med
alternativet "--bind" till en katalog
(t.ex. "work-dir") dÀr du behöver mer utrymme.
$ sudo mount --bind /path/to/emp-dir work-dir
Om du har anvÀndbart utrymme i en annan partition
(t.ex. "/path/to/empty" och
"/path/to/work") kan du skapa en katalog i den och stapla
den pÄ en gammal katalog (t.ex. "/path/to/old") dÀr du
behöver utrymme med hjÀlp av OverlayFS för
Linux-kÀrnan 3.18 eller nyare (Debian Stretch 9.0 eller nyare).
$ sudo mount -t overlay overlay \ -olowerdir=/path/to/old-dir,upperdir=/path/to/empty,workdir=/path/to/work
HÀr bör "/path/to/empty" och
"/path/to/work" finnas pÄ den RW-aktiverade partitionen
för att skriva pÄ "/path/to/old".
|
Observera |
|---|---|
|
Detta Àr en förÄldrad metod. Vissa program kanske inte fungerar bra med "symlÀnk till en katalog". AnvÀnd istÀllet "mounting"-metoderna som beskrivs i avsnittet ovan. |
Om du har en tom katalog (t.ex. "/path/to/emp-dir") i en
annan partition med anvÀndbart utrymme kan du skapa en symlÀnk till
katalogen med ln(8).
$ sudo mv work-dir old-dir $ sudo mkdir -p /path/to/emp-dir $ sudo ln -sf /path/to/emp-dir work-dir $ sudo cp -a old-dir/* work-dir $ sudo rm -rf old-dir
|
Varning |
|---|---|
|
AnvÀnd inte "symlÀnk till en katalog" för kataloger som hanteras av
systemet, t.ex. " |
HĂ€r diskuterar vi manipuleringar av diskavbildningen.
The disk image file, "disk.img", of an unmounted device,
e.g., the second SCSI or serial ATA drive "/dev/sdb", can
be made by one of the following.
# dd if=/dev/sdb of=disk.img; sync
# cp /dev/sdb disk.img ; sync
# cat /dev/sdb > disk.img ; sync
Skivavbildningen av den traditionella datorns Master Boot Record (MBR) (se Avsnitt 9.6.2, âKonfiguration av diskpartitionerâ) som finns i den första sektorn pĂ„
den primÀra IDE-disken kan skapas med dd(1) pÄ följande
sÀtt.
# dd if=/dev/sda of=mbr.img bs=512 count=1 # dd if=/dev/sda of=mbr-nopart.img bs=446 count=1 # dd if=/dev/sda of=mbr-part.img skip=446 bs=1 count=66
"mbr.img": MBR med partitionstabellen
"mbr-nopart.img": MBR utan partitionstabell
"mbr-part.img": Endast partitionstabellen för MBR
Om du gör en avbildning av en diskpartition pÄ originaldisken ersÀtter du
"/dev/sda" med "/dev/sda1" osv.
The disk image file, "disk.img" can be written to an
unmounted device, e.g., the second SCSI drive "/dev/sdb"
with matching size, by one of the following.
# dd if=disk.img of=/dev/sdb ; sync
# cp disk.img /dev/sdb ; sync
# cat disk.img >/dev/sdb ; sync
PÄ samma sÀtt kan diskpartitionsbildfilen "partition.img"
skrivas till en omonterad partition, t.ex. den första partitionen i den
andra SCSI-enheten "/dev/sdb1" med matchande storlek, pÄ
följande sÀtt.
# dd if=partition.img of=/dev/sdb1 ; sync
Diskavbildningen "partition.img" som innehÄller en enda
partitionsavbildning kan monteras och avmonteras med hjÀlp av loop-enheten pÄ följande sÀtt.
# losetup --show -f partition.img /dev/loop0 # mkdir -p /mnt/loop0 # mount -t auto /dev/loop0 /mnt/loop0 ...hack...hack...hack # umount /dev/loop0 # losetup -d /dev/loop0
Detta kan förenklas pÄ följande sÀtt.
# mkdir -p /mnt/loop0 # mount -t auto -o loop partition.img /mnt/loop0 ...hack...hack...hack # umount partition.img
Varje partition i diskavbildningen "disk.img" som
innehÄller flera partitioner kan monteras med hjÀlp av loop-enheten.
# losetup --show -f -P disk.img /dev/loop0 # ls -l /dev/loop0* brw-rw---- 1 root disk 7, 0 Apr 2 22:51 /dev/loop0 brw-rw---- 1 root disk 259, 12 Apr 2 22:51 /dev/loop0p1 brw-rw---- 1 root disk 259, 13 Apr 2 22:51 /dev/loop0p14 brw-rw---- 1 root disk 259, 14 Apr 2 22:51 /dev/loop0p15 # fdisk -l /dev/loop0 Disk /dev/loop0: 2 GiB, 2147483648 bytes, 4194304 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: 6A1D9E28-C48C-2144-91F7-968B3CBC9BD1 Device Start End Sectors Size Type /dev/loop0p1 262144 4192255 3930112 1.9G Linux root (x86-64) /dev/loop0p14 2048 8191 6144 3M BIOS boot /dev/loop0p15 8192 262143 253952 124M EFI System Partition table entries are not in disk order. # mkdir -p /mnt/loop0p1 # mkdir -p /mnt/loop0p15 # mount -t auto /dev/loop0p1 /mnt/loop0p1 # mount -t auto /dev/loop0p15 /mnt/loop0p15 # mount |grep loop /dev/loop0p1 on /mnt/loop0p1 type ext4 (rw,relatime) /dev/loop0p15 on /mnt/loop0p15 type vfat (rw,relatime,fmask=0002,dmask=0002,allow_utime=0020,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro) ...hack...hack...hack # umount /dev/loop0p1 # umount /dev/loop0p15 # losetup -d /dev/loop0
Alternativt kan liknande effekter Ästadkommas genom att anvÀnda device mapper-enheter som skapats av
kpartx(8) frÄn kpartx-paketet enligt
följande.
# kpartx -a -v disk.img add map loop0p1 (253:0): 0 3930112 linear 7:0 262144 add map loop0p14 (253:1): 0 6144 linear 7:0 2048 add map loop0p15 (253:2): 0 253952 linear 7:0 8192 # fdisk -l /dev/loop0 Disk /dev/loop0: 2 GiB, 2147483648 bytes, 4194304 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: 6A1D9E28-C48C-2144-91F7-968B3CBC9BD1 Device Start End Sectors Size Type /dev/loop0p1 262144 4192255 3930112 1.9G Linux root (x86-64) /dev/loop0p14 2048 8191 6144 3M BIOS boot /dev/loop0p15 8192 262143 253952 124M EFI System Partition table entries are not in disk order. # ls -l /dev/mapper/ total 0 crw------- 1 root root 10, 236 Apr 2 22:45 control lrwxrwxrwx 1 root root 7 Apr 2 23:19 loop0p1 -> ../dm-0 lrwxrwxrwx 1 root root 7 Apr 2 23:19 loop0p14 -> ../dm-1 lrwxrwxrwx 1 root root 7 Apr 2 23:19 loop0p15 -> ../dm-2 # mkdir -p /mnt/loop0p1 # mkdir -p /mnt/loop0p15 # mount -t auto /dev/mapper/loop0p1 /mnt/loop0p1 # mount -t auto /dev/mapper/loop0p15 /mnt/loop0p15 # mount |grep loop /dev/loop0p1 on /mnt/loop0p1 type ext4 (rw,relatime) /dev/loop0p15 on /mnt/loop0p15 type vfat (rw,relatime,fmask=0002,dmask=0002,allow_utime=0020,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro) ...hack...hack...hack # umount /dev/mapper/loop0p1 # umount /dev/mapper/loop0p15 # kpartx -d disk.img
En diskavbildningsfil, "disk.img", kan rensas frÄn alla
borttagna filer till en ren, gles avbildning, "new.img",
pÄ följande sÀtt.
# mkdir old; mkdir new # mount -t auto -o loop disk.img old # dd bs=1 count=0 if=/dev/zero of=new.img seek=5G # mount -t auto -o loop new.img new # cd old # cp -a --sparse=always ./ ../new/ # cd .. # umount new.img # umount disk.img
Om "disk.img" Àr i ext2, ext3 eller ext4 kan du ocksÄ
anvÀnda zerofree(8) frÄn
zerofree-paketet enligt följande.
# losetup --show -f disk.img /dev/loop0 # zerofree /dev/loop0 # cp --sparse=always disk.img new.img # losetup -d /dev/loop0
Den tomma diskavbildningen "disk.img" som kan vÀxa upp
till 5GiB kan skapas med dd(1) pÄ följande sÀtt.
$ dd bs=1 count=0 if=/dev/zero of=disk.img seek=5G
IstÀllet för att anvÀnda dd(1) kan den specialiserade
fallocate(8) anvÀndas hÀr.
Du kan skapa ett ext4-filsystem pÄ den hÀr diskavbildningen
"disk.img" med hjÀlp av loop-enheten pÄ följande sÀtt.
# losetup --show -f disk.img /dev/loop0 # mkfs.ext4 /dev/loop0 ...hack...hack...hack # losetup -d /dev/loop0 $ du --apparent-size -h disk.img 5.0G disk.img $ du -h disk.img 83M disk.img
För "disk.img" Àr filstorleken 5,0 GiB och den faktiska
diskanvÀndningen Àr bara 83MiB. Denna avvikelse Àr möjlig eftersom ext4 kan hÄlla glesa
filer.
|
Tips |
|---|---|
|
Den faktiska diskanvÀndningen för sparse file vÀxer med data som skrivs till den. |
Genom att anvĂ€nda liknande Ă„tgĂ€rder pĂ„ enheter som skapats av loop-enheten eller enhetsmappningsenheterna som Avsnitt 9.7.3, âMontering av diskavbildningsfilenâ kan du partitionera
diskavbildningen "disk.img" med hjÀlp av
parted(8) eller fdisk(8) och skapa filsystem pÄ
den med hjÀlp av mkfs.ext4(8),
mkswap(8), etc.
|
Tips |
|---|---|
|
Both |
ISO9660-bildfilen,
"cd.iso", frÄn kÀllkatalogtrÀdet i
"source_directory" kan skapas med hjÀlp av
genisoimage(1) frÄn cdrkit
pÄ följande sÀtt.
# genisoimage -r -J -T -V volume_id -o cd.iso source_directory
PÄ samma sÀtt kan den startbara ISO9660-bildfilen,
"cdboot.iso", skapas frÄn
debian-installer-liknande katalogtrÀd i
"source_directory" genom följande.
# genisoimage -r -o cdboot.iso -V volume_id \ -b isolinux/isolinux.bin -c isolinux/boot.cat \ -no-emul-boot -boot-load-size 4 -boot-info-table source_directory
HĂ€r anvĂ€nds Isolinux boot loader (se Avsnitt 3.1.2, âSteg 2: startladdarenâ) för uppstart.
Du kan berÀkna md5sum-vÀrdet och skapa ISO9660-bilden direkt frÄn CD-ROM-enheten pÄ följande sÀtt.
$ isoinfo -d -i /dev/cdrom CD-ROM is in ISO 9660 format ... Logical block size is: 2048 Volume size is: 23150592 ... # dd if=/dev/cdrom bs=2048 count=23150592 conv=notrunc,noerror | md5sum # dd if=/dev/cdrom bs=2048 count=23150592 conv=notrunc,noerror > cd.iso
|
Varning |
|---|---|
|
Du mÄste noggrant undvika ISO9660 filsystem read ahead bug i Linux enligt ovan för att fÄ rÀtt resultat. |
|
Tips |
|---|---|
|
DVD is only a large CD to |
Du kan hitta en anvÀndbar enhet genom att göra följande.
# wodim --devices
Sedan sÀtts den tomma CD-R:n i CD-enheten och ISO9660-bildfilen
"cd.iso" skrivs till den hÀr enheten,
t.ex. "/dev/sda", med wodim(1) pÄ
följande sÀtt.
# wodim -v -eject dev=/dev/sda cd.iso
Om CD-RW anvÀnds i stÀllet för CD-R, gör du i stÀllet pÄ följande sÀtt.
# wodim -v -eject blank=fast dev=/dev/sda cd.iso
|
Tips |
|---|---|
|
Om ditt skrivbordssystem monterar CD-skivor automatiskt ska du avmontera dem
genom att " |
Om "cd.iso" innehÄller en ISO9660-avbildning, monteras
den manuellt till "/cdrom" pÄ följande sÀtt.
# mount -t iso9660 -o ro,loop cd.iso /cdrom
|
Tips |
|---|---|
|
Moderna skrivbordssystem kan automatiskt montera flyttbara media, t.ex. ISO9660-formaterade CD-skivor (se Avsnitt 10.1.7, âFlyttbar lagringsenhetâ). |
HÀr diskuterar vi direkta manipulationer av binÀrdata pÄ lagringsmedia.
Den mest grundlÀggande visningsmetoden för binÀra data Àr att anvÀnda
kommandot "od -t x1".
Tabell 9.21. Lista över paket som visar och redigerar binÀra data
| paket | popcon | storlek | beskrivning |
|---|---|---|---|
coreutils
|
V:897, I:1000 | 17994 | grundlÀggande paket som har od(1) för att dumpa filer
(HEX, ASCII, OCTAL, ...) |
bsdmainutils
|
V:5, I:150 | 17 | verktygspaket som har hd(1) för att dumpa filer (HEX,
ASCII, OCTAL, ...) |
hexedit
|
V:1.0, I:8.5 | 70 | binÀr editor och viewer (HEX, ASCII) |
bless
|
V:0.2, I:1.7 | 924 | fullfjÀdrad hexadecimalredigerare (GNOME) |
okteta
|
V:1, I:12 | 1589 | fullfjÀdrad hexadecimal editor (KDE4) |
ncurses-hexedit
|
V:0.2, I:1.3 | 130 | binÀr editor och viewer (HEX, ASCII, EBCDIC) |
beav
|
V:0.05, I:0.36 | 137 | binÀr editor och viewer (HEX, ASCII, EBCDIC, OCTAL, ...) |
|
Tips |
|---|---|
|
HEX anvÀnds som en förkortning för hexadecimalt format med radix 16. OCTAL anvÀnds för oktalt format med radix 8. ASCII anvÀnds för American Standard Code for Information Interchange, dvs. normal engelsk textkod. EBCDIC Àr för Extended Binary Coded Decimal Interchange Code som anvÀnds pÄ IBM mainframe operativsystem. |
Det finns verktyg för att lÀsa och skriva filer utan att montera disken.
RAID-system för programvara som erbjuds av Linux-kÀrnan ger dataredundans pÄ filsystemnivÄ för att uppnÄ höga nivÄer av lagringstillförlitlighet.
Det finns ocksÄ verktyg för att lÀgga till dataredundans i filer pÄ applikationsprogramnivÄ för att uppnÄ höga nivÄer av lagringstillförlitlighet.
Tabell 9.23. Lista över verktyg för att lÀgga till dataredundans i filer
| paket | popcon | storlek | beskrivning |
|---|---|---|---|
par2
|
V:11, I:120 | 298 | Parity Archive Volume Set, för kontroll och reparation av filer |
dvdisaster
|
V:0.1, I:1.4 | 1422 | skydd mot dataförlust/skrap/Äldring för CD/DVD-media |
dvbackup
|
V:0.01, I:0.07 | 413 | backupverktyg som anvÀnder MiniDV-videokameror (tillhandahÄller
rsbep(1)) |
Det finns verktyg för ÄterstÀllning av datafiler och kriminalteknisk analys.
Tabell 9.24. Lista över paket för ÄterstÀllning av datafiler och kriminalteknisk analys
| paket | popcon | storlek | beskrivning |
|---|---|---|---|
testdisk
|
V:2, I:27 | 1495 | verktyg för partitionsskanning och diskÄterstÀllning |
magicrescue
|
V:0.3, I:2.1 | 257 | verktyg för att ÄterstÀlla filer genom att leta efter magiska byte |
scalpel
|
V:0.3, I:2.6 | 89 | sparsam, högpresterande filhuggare |
myrescue
|
V:0.3, I:2.3 | 83 | rÀdda data frÄn skadade hÄrddiskar |
extundelete
|
V:0.6, I:7.9 | 152 | verktyg för att ÄterstÀlla filer pÄ ext3/4-filsystemet |
ext4magic
|
V:0.4, I:3.8 | 235 | verktyg för att ÄterstÀlla filer pÄ ext3/4-filsystemet |
ext3grep
|
V:0.3, I:2.2 | 299 | verktyg som hjÀlper till att ÄterstÀlla raderade filer pÄ ext3-filsystemet |
scrounge-ntfs
|
V:0.2, I:1.8 | 49 | program för dataÄterstÀllning för NTFS-filsystem |
gzrt
|
V:0.04, I:0.50 | 33 | verktyg för gzip-ÄterstÀllning |
sleuthkit
|
V:2, I:24 | 1119 | verktyg för kriminalteknisk analys. (Sleuthkit) |
autopsy
|
V:0.2, I:1.4 | 1026 | grafiskt grÀnssnitt till SleuthKit |
foremost
|
V:0.5, I:4.4 | 102 | kriminalteknisk applikation för att ÄterstÀlla data |
guymager
|
V:0.22, I:0.93 | 1049 | verktyg för kriminalteknisk avbildning baserat pÄ Qt |
dcfldd
|
V:0.4, I:3.0 | 113 | förbÀttrad version av dd för kriminalteknik och sÀkerhet |
|
Tips |
|---|---|
|
Du kan ÄterstÀlla filer i ext2-filsystemet med hjÀlp av kommandona
|
NÀr en data Àr för stor för att sÀkerhetskopiera som en enda fil kan du sÀkerhetskopiera innehÄllet efter att ha delat upp det i t.ex. 2000MiB bitar och slÄ samman dessa bitar tillbaka till originalfilen senare.
$ split -b 2000m large_file $ cat x* >large_file
|
Observera |
|---|---|
|
Se till att du inte har nÄgra filer som börjar med " |
Om du vill rensa innehÄllet i en fil, t.ex. en loggfil, ska du inte anvÀnda
rm(1) för att radera filen och sedan skapa en ny tom fil,
eftersom filen fortfarande kan nÄs under tiden mellan kommandona. Följande
Àr det sÀkra sÀttet att rensa innehÄllet i filen.
$ :>file_to_be_cleared
Följande kommandon skapar dummyfiler eller tomma filer.
$ dd if=/dev/zero of=5kb.file bs=1k count=5 $ dd if=/dev/urandom of=7mb.file bs=1M count=7 $ touch zero.file $ : > alwayszero.file
Du bör hitta följande filer.
"5kb.file" Àr 5KB med nollor.
"7mb.file" Àr 7MB slumpmÀssig data.
"zero.file" kan vara en fil pÄ 0 byte. Om den existerade
uppdateras dess mtime medan dess innehÄll och lÀngd
behÄlls.
"alwayszero.file" Àr alltid en fil med 0 byte. Om den
existerade uppdateras dess mtime och dess innehÄll
nollstÀlls.
There are several ways to completely erase data from an entire hard disk
like device, e.g., USB flash drive at
"/dev/sda".
|
Observera |
|---|---|
|
Check your USB flash drive location
with |
Radera allt innehÄll pÄ hÄrddisken genom att ÄterstÀlla data till 0 med följande.
# dd if=/dev/zero of=/dev/sda
Radera allt genom att skriva över med slumpmÀssiga data enligt följande.
# dd if=/dev/urandom of=/dev/sda
Radera allt genom att skriva över med slumpmÀssiga data pÄ ett mycket effektivt sÀtt enligt följande.
# shred -v -n 1 /dev/sda
Alternativt kan du anvÀnda badblocks(8) med flaggan
-t random.
Eftersom dd(1) finns tillgÀnglig i skalet pÄ mÄnga
startbara Linux-CD-skivor, t.ex. Debians installations-CD, kan du radera
ditt installerade system helt genom att köra ett raderingskommando frÄn ett
sÄdant media pÄ systemets hÄrddisk, t.ex. "/dev/sda",
"/dev/sda", etc.
Unused area on an hard disk (or USB flash
drive), e.g. "/dev/sdb1" may still contain erased
data themselves since they are only unlinked from the filesystem. These can
be cleaned by overwriting them.
# mount -t auto /dev/sdb1 /mnt/foo # cd /mnt/foo # dd if=/dev/zero of=junk dd: writing to `junk': No space left on device ... # sync # umount /dev/sdb1
|
Varning |
|---|---|
|
This is usually good enough for your USB flash drive. But this is not perfect. Most parts of erased filenames and their attributes may be hidden and remain in the filesystem. |
Ăven om du av misstag har raderat en fil, sĂ„ lĂ€nge filen fortfarande anvĂ€nds av nĂ„got program (lĂ€s- eller skrivlĂ€ge), Ă€r det möjligt att Ă„terstĂ€lla en sĂ„dan fil.
Försök till exempel med följande
$ echo foo > bar $ less bar $ ps aux | grep ' less[ ]' bozo 4775 0.0 0.0 92200 884 pts/8 S+ 00:18 0:00 less bar $ rm bar $ ls -l /proc/4775/fd | grep bar lr-x------ 1 bozo bozo 64 2008-05-09 00:19 4 -> /home/bozo/bar (deleted) $ cat /proc/4775/fd/4 >bar $ ls -l -rw-r--r-- 1 bozo bozo 4 2008-05-09 00:25 bar $ cat bar foo
Gör sÄ hÀr pÄ en annan terminal (nÀr du har lsof-paketet
installerat).
$ ls -li bar 2228329 -rw-r--r-- 1 bozo bozo 4 2008-05-11 11:02 bar $ lsof |grep bar|grep less less 4775 bozo 4r REG 8,3 4 2228329 /home/bozo/bar $ rm bar $ lsof |grep bar|grep less less 4775 bozo 4r REG 8,3 4 2228329 /home/bozo/bar (deleted) $ cat /proc/4775/fd/4 >bar $ ls -li bar 2228302 -rw-r--r-- 1 bozo bozo 4 2008-05-11 11:05 bar $ cat bar foo
Filer med hÄrda lÀnkar kan identifieras med "ls -li".
$ ls -li total 0 2738405 -rw-r--r-- 1 root root 0 2008-09-15 20:21 bar 2738404 -rw-r--r-- 2 root root 0 2008-09-15 20:21 baz 2738404 -rw-r--r-- 2 root root 0 2008-09-15 20:21 foo
BÄde "baz" och "foo" har lÀnkantal pÄ
"2" (>1) vilket visar att de har hÄrda lÀnkar. Deras inodnummer Àr gemensamma "2738404". Detta betyder att
de Àr samma hÄrdlÀnkade fil. Om du inte rÄkar hitta alla hÄrdlÀnkade filer
av en slump kan du söka efter inode,
t.ex. "2738404" enligt följande.
# find /path/to/mount/point -xdev -inum 2738404
Med fysisk tillgĂ„ng till din dator kan vem som helst enkelt fĂ„ root-behörighet och komma Ă„t alla filer pĂ„ din dator (se Avsnitt 4.6.4, âSĂ€kra lösenordet för rootâ). Det innebĂ€r att ett system med inloggningslösenord inte kan skydda dina privata och kĂ€nsliga data mot eventuell stöld av din dator. Du mĂ„ste anvĂ€nda datakrypteringsteknik för att göra det. GNU privacy guard (se Avsnitt 10.3, âInfrastruktur för datasĂ€kerhetâ) kan visserligen kryptera filer, men det krĂ€ver en del arbete av anvĂ€ndaren.
Dm-crypt underlÀttar automatisk datakryptering via inbyggda Linux-kÀrnmoduler med minimal anvÀndarinsats med hjÀlp av device-mapper.
Tabell 9.25. Lista över verktyg för datakryptering
| paket | popcon | storlek | beskrivning |
|---|---|---|---|
cryptsetup
|
V:35, I:81 | 465 | verktyg för krypterad blockenhet(dm-crypt / LUKS) |
cryptmount
|
V:2.2, I:2.8 | 231 | verktyg för krypterade blockenheter(dm-crypt / LUKS) med fokus pÄ montering/avmontering av vanliga anvÀndare |
fscrypt
|
V:0.4, I:1.1 | 6471 | verktyg för kryptering av Linux-filsystem(fscrypt) |
libpam-fscrypt
|
V:0.27, I:0.33 | 5589 | PAM-modul för kryptering av Linux-filsystem(fscrypt) |
|
Observera |
|---|---|
|
Datakryptering kostar CPU-tid etc. Krypterad data blir oÄtkomlig om lösenordet förloras. VÀnligen vÀga dess fördelar och kostnader. |
|
Notera |
|---|---|
|
Hela Debian-systemet kan installeras pÄ en krypterad disk med debian-installer (lenny eller nyare) med hjÀlp av dm-crypt/LUKS och initramfs. |
|
Tips |
|---|---|
|
Se Avsnitt 10.3, âInfrastruktur för datasĂ€kerhetâ för verktyg för kryptering av anvĂ€ndarutrymme: GNU Privacy Guard. |
You can encrypt contents of removable mass devices, e.g. USB flash drive on
"/dev/sdx", using dm-crypt/LUKS. You
simply format it as the following.
# fdisk /dev/sdx ... "n" "p" "1" "return" "return" "w" # cryptsetup luksFormat /dev/sdx1 ... # cryptsetup open /dev/sdx1 secret ... # ls -l /dev/mapper/ total 0 crw-rw---- 1 root root 10, 60 2021-10-04 18:44 control lrwxrwxrwx 1 root root 7 2021-10-04 23:55 secret -> ../dm-0 # mkfs.vfat /dev/mapper/secret ... # cryptsetup close secret
Sedan kan den monteras precis som en vanlig disk pÄ
"/media/anvÀndarnamn/disk_label", förutom att
man mĂ„ste frĂ„ga efter lösenordet (se Avsnitt 10.1.7, âFlyttbar lagringsenhetâ) i en modern skrivbordsmiljö med hjĂ€lp
av udisks2-paketet. Skillnaden Àr att alla data som
skrivs till den Àr krypterade. Lösenordsinmatningen kan automatiseras med
hjĂ€lp av keyring (se Avsnitt 10.3.6, âNyckelring för lösenordâ).
Alternativt kan du formatera media i ett annat filsystem, t.ex. ext4 med
"mkfs.ext4 /dev/mapper/sdx1". Om btrfs anvÀnds i stÀllet
mÄste paketet udisks2-btrfs installeras. För dessa
filsystem kan filÀgande och behörigheter behöva konfigureras.
En krypterad diskpartition som skapats med dm-crypt/LUKS pÄ
"/dev/sdc5" av Debian Installer kan t.ex. monteras pÄ
"/mnt" enligt följande:
$ sudo cryptsetup open /dev/sdc5 ninja --type luks Enter passphrase for /dev/sdc5: **** $ sudo lvm lvm> lvscan inactive '/dev/ninja-vg/root' [13.52 GiB] inherit inactive '/dev/ninja-vg/swap_1' [640.00 MiB] inherit ACTIVE '/dev/goofy/root' [180.00 GiB] inherit ACTIVE '/dev/goofy/swap' [9.70 GiB] inherit lvm> lvchange -a y /dev/ninja-vg/root lvm> exit Exiting. $ sudo mount /dev/ninja-vg/root /mnt
Debian distribuerar den modulariserade LinuxkÀrnan som paket för de arkitekturer som stöds.
Om du lÀser den hÀr dokumentationen behöver du förmodligen inte kompilera Linux-kÀrnan sjÀlv.
MÄnga Linux-funktioner Àr konfigurerbara via kÀrnparametrar enligt följande.
KĂ€rnparametrar som initieras av bootloader (se Avsnitt 3.1.2, âSteg 2: startladdarenâ)
KÀrnparametrar som Àndras av sysctl(8) vid körning för de
som Ă€r tillgĂ€ngliga via sysfs (se Avsnitt 1.2.12, âprocfs och sysfsâ)
Modulparametrar som stÀlls in med argument frÄn
modprobe(8) nĂ€r en modul aktiveras (se Avsnitt 9.7.3, âMontering av diskavbildningsfilenâ)
Se"Linux-kÀrnans anvÀndar- och administratörshandbok " " KÀrnans kommandoradsparametrar" för mer information.
De flesta normala program behöver inte
kÀrnhuvuden och kan i sjÀlva verket gÄ sönder om du anvÀnder dem direkt för
kompilering. De bör kompileras mot headern i
"/usr/include/linux" och
"/usr/include/asm" som tillhandahÄlls av
libc6-dev-paketet (skapat frÄn kÀllkodspaketet
glibc ) pÄ Debian-systemet.
|
Notera |
|---|---|
|
För att kompilera vissa kÀrnspecifika program, t.ex. kÀrnmoduler frÄn extern
kÀlla och automounter-daemon |
Debian har sin egen metod för att kompilera kÀrnan och relaterade moduler.
Tabell 9.26. Lista över viktiga paket som ska installeras för omkompilering av kÀrnan pÄ Debian-systemet
| paket | popcon | storlek | beskrivning |
|---|---|---|---|
build-essential
|
V:17, I:508 | 17 | nödvÀndiga paket för att bygga Debian-paket: make,
gcc, ⊠|
bzip2
|
V:170, I:972 | 114 | verktyg för komprimering och dekomprimering av bz2-filer |
libncurses5-dev
|
I:41 | 6 | utvecklares bibliotek och dokument för ncurses |
git
|
V:387, I:602 | 50972 | git: distribuerat revisionskontrollsystem som anvÀnds av Linux-kÀrnan |
fakeroot
|
V:32, I:511 | 225 | tillhandahÄlla fakeroot-miljö för att bygga paket som icke-root |
initramfs-tools
|
V:486, I:989 | 52 | verktyg för att bygga en initramfs (Debian-specifikt) |
dkms
|
V:80, I:147 | 235 | dKMS (dynamiskt stöd för kÀrnmoduler) (generisk) |
module-assistant
|
V:1, I:14 | 391 | hjÀlpverktyg för att skapa modulpaket (Debian-specifikt) |
devscripts
|
V:6, I:34 | 2770 | hjÀlpskript för en underhÄllare av Debian-paket (Debian-specifikt) |
Om du anvĂ€nder initrd i Avsnitt 3.1.2, âSteg 2: startladdarenâ, se till att lĂ€sa relaterad information
i initramfs-tools(8),
update-initramfs(8), mkinitramfs(8)
och initramfs.conf(5).
|
Varning |
|---|---|
|
LÀgg inte in symlinks till katalogerna i kÀlltrÀdet
(t.ex. " |
|
Notera |
|---|---|
|
Vid kompilering av den senaste Linux-kÀrnan pÄ Debian
DKMS (Dynamic Kernel Module Support) Àr ett nytt distributionsoberoende ramverk som gör det möjligt att uppgradera enskilda kernelmoduler utan att Àndra hela kerneln. Detta anvÀnds för underhÄll av out-of-tree-moduler. Det gör det ocksÄ mycket enkelt att bygga om moduler nÀr man uppgraderar kÀrnan. |
För att bygga anpassade binÀra kÀrnpaket frÄn uppströms kÀrnkÀlla bör du
anvÀnda "deb-pkg"-mÄlet som tillhandahÄlls av den.
$ sudo apt-get build-dep linux $ cd /usr/src $ wget https://mirrors.edge.kernel.org/pub/linux/kernel/v6.x/linux-version.tar.xz $ tar --xz -xvf linux-version.tar.xz $ cd linux-version $ cp /boot/config-version .config $ make menuconfig ... $ make deb-pkg
|
Tips |
|---|---|
|
Paketet linux-source-version tillhandahÄller
Linux-kÀrnkÀllan med Debian-patchar som
" |
För att bygga specifika binÀra paket frÄn Debian-kÀrnans kÀllkodspaket bör
du anvÀnda mÄlen
"binary-arch_arkitektur_featureset_variant"
i debian/rules.gen".
$ sudo apt-get build-dep linux $ apt-get source linux $ cd linux-3.* $ fakeroot make -f debian/rules.gen binary-arch_i386_none_686
Se ytterligare information:
Debian Wiki: KernelFAQ
Debian Wiki: DebianKernel
Handbok för Debians LinuxkÀrnor: https://kernel-handbook.debian.net
Maskinvarudrivrutinen Àr den kod som körs pÄ mÄlsystemets
huvudprocessorer. De flesta maskinvarudrivrutiner finns nu tillgÀngliga som
fri programvara och ingÄr i de normala Debian-kÀrnpaketen i
main.
Intel GPU-drivrutin (main)
AMD/ATI GPU-drivrutin (main)
NVIDIA GPU-drivrutin (main för drivrutinen nouveau och non-free för binÀra
drivrutiner som stöds av tillverkaren.)
Den fasta programvaran Àr den kod eller de data som laddas pÄ den enhet som Àr kopplad till mÄlsystemet (t.ex. CPU:ns mikrokod, renderingskod som körs pÄ GPU, eller FPGA / CPLD, ...). Vissa paket med fast programvara Àr tillgÀngliga som fri programvara, men mÄnga paket för fast programvara Àr inte tillgÀngliga som fri programvara eftersom de innehÄller binÀra data utan kÀlla. Installation av dessa datapaket med fast programvara Àr nödvÀndig för att enheten ska fungera som förvÀntat.
Datapaket för fast programvara som innehÄller data som laddats till det flyktiga minnet pÄ mÄlenheten.
firmware-linux-free (main)
firmware-linux-nonfree (non-free-firmware)
firmware-linux-*(icke-fri firmware)
*-firmware(icke-fri-firmware)
intel-mikrokod(icke-fri firmware)
amd64-mikrokod(icke-fri firmware)
Programpaket för uppdatering av fast programvara som uppdaterar data i det icke-flyktiga minnet pÄ mÄlenheten.
fwupd (main): Demon för
uppdatering av fast programvara som hÀmtar data om fast programvara frÄn
Linux Vendor Firmware
Service.
gnome-firmware (main): GTK-frontend för fwupd
plasma-discover-backend-fwupd (main): Qt-frontend för
fwupd
Observera att Ätkomst till icke-firmware-paket
tillhandahÄlls av det officiella installationsmediet för att erbjuda en
funktionell installationsupplevelse för anvÀndaren sedan Debian 12
Bookworm. OmrÄdet för non-free programvaror beskrivs i
Avsnitt 2.1.5, âGrunderna i Debian-arkivetâ.
Observera ocksÄ att de data om fast programvara som hÀmtas av fwupd frÄn Linux Vendor Firmware Service och
laddas till den Linux-kÀrna som körs kan vara non-free.
Genom att anvÀnda ett virtualiserat system kan vi köra flera instanser av systemet samtidigt pÄ en enda maskinvara.
|
Tips |
|---|---|
Det finns flera olika plattformar för virtualiserings- och emuleringsverktyg.
Kompletta hÄrdvaruemuleringspaket, t.ex. de som installeras av metapaketet games-emulator
Mestadels emulering pÄ CPU-nivÄ med vissa emuleringar av I/O-enheter, t.ex. QEMU
Mestadels virtualisering pÄ CPU-nivÄ med vissa emuleringar av I/O-enheter, t.ex. Kernel-based Virtual Machine (KVM)
Containervirtualisering pÄ OS-nivÄ med stöd pÄ kÀrnnivÄ, t.ex. LXC (Linux Containers), Docker, systemd-nspawn(1), ...
Virtualisering av filsystemÄtkomst pÄ OS-nivÄ med ÄsidosÀttande av systembiblioteksanrop pÄ filsökvÀgen, t.ex. chroot
Virtualisering av filsystemÄtkomst pÄ OS-nivÄ med systembiblioteksanrop som ÄsidosÀtter filÀgandet, t.ex. fakeroot
OS API-emulering som till exempel Wine
Virtualisering pÄ tolkningsnivÄ med dess val av körbar fil och ÄsidosÀttande av körtidsbibliotek, t.ex. virtualenv och venv för Python
Containervirtualisering anvĂ€nder Avsnitt 4.7.5, âSĂ€kerhetsfunktioner i Linuxâ och Ă€r backend-tekniken för Avsnitt 7.7, âSandlĂ„daâ.
HÀr följer nÄgra paket som hjÀlper dig att konfigurera det virtualiserade systemet.
Tabell 9.27. Lista över virtualiseringsverktyg
| paket | popcon | storlek | beskrivning |
|---|---|---|---|
coreutils
|
V:897, I:1000 | 17994 | GNU core-verktyg som innehÄller chroot(8) |
util-linux
|
V:902, I:1000 | 4384 | miscellaneous system utilities which contain unshare(1) |
systemd-container
|
V:74, I:77 | 2458 | systemd container/nspawn verktyg som innehÄller
systemd-nspawn(1) |
schroot
|
V:5.6, I:7.2 | 2222 | specialiserat verktyg för att köra Debians binÀra paket i chroot |
sbuild
|
V:1.3, I:4.4 | 157 | verktyg för att bygga binÀra Debian-paket frÄn Debian-kÀllor |
debootstrap
|
V:5, I:46 | 330 | starta upp ett grundlÀggande Debian-system (skrivet i sh) |
mmdebstrap
|
V:6, I:11 | 574 | bootstrappa ett Debian-system (skrivet i Perl) |
cdebootstrap
|
V:0.1, I:1.4 | 114 | bootstrappa ett Debian-system (skrivet i C) |
cloud-image-utils
|
V:1, I:15 | 66 | verktyg för bildhantering i molnet |
cloud-guest-utils
|
V:4, I:19 | 71 | verktyg för molngÀster |
virt-manager
|
V:13, I:50 | 2310 | Virtual Machine Manager: skrivbordsprogram för hantering av virtuella maskiner |
libvirt-clients
|
V:50, I:72 | 1155 | program för libvirt-biblioteket |
docker.io
|
V:46, I:49 | 98998 | docker: Körprogram för Linux-containrar |
podman
|
V:27, I:30 | 81828 | podman: motor för att köra OCI-baserade behÄllare i Pods |
podman-docker
|
V:2.3, I:2.8 | 275 | motor för att köra OCI-baserade containrar i Pods - wrapper för docker |
incus
|
V:0.7, I:2.6 | 21 | Incus: systembehÄllare och virtuell maskinhanterare |
games-emulator
|
I:0.20 | 21 | spel-emulator: Debians emulatorer för spel |
bochs
|
V:0.06, I:0.74 | 8180 | Bochs: IA-32 PC-emulator |
qemu-system
|
I:22 | 80 | QEMU: binÀrfiler för fullstÀndig systememulering |
qemu-user
|
V:5.5, I:9.2 | 464225 | QEMU: binÀrfiler för emulering i anvÀndarlÀge |
qemu-utils
|
V:14, I:110 | 12157 | QEMU: verktyg |
qemu-system-x86
|
V:54, I:94 | 67511 | KVM: full virtualisering pÄ x86-hÄrdvara med hÄrdvaruassisterad virtualisering |
virtualbox
|
V:3.9, I:4.7 | 151525 | VirtualBox: lösning för x86-virtualisering pÄ i386 och amd64 |
gnome-boxes
|
V:1.4, I:7.1 | 6847 | LÄdor: Enkel GNOME-app för Ätkomst till virtuella system |
xen-tools
|
V:0.1, I:1.6 | 719 | verktyg för att hantera debian XEN virtuell server |
wine
|
V:14, I:58 | 204 | Vin: Implementering av Windows API (standardpaket) |
dosbox
|
V:2, I:13 | 2697 | DOSBox: x86-emulator med Tandy/Herc/CGA/EGA/VGA/SVGA-grafik, ljud och DOS |
lxc
|
V:10, I:12 | 1627 | Linux-containrar verktyg för anvÀndarutrymme |
python3-venv
|
V:9, I:139 | 6 | venv för att skapa virtuella pythonmiljöer (systembibliotek) |
python3-virtualenv
|
V:8, I:42 | 417 | virtualenv för att skapa isolerade virtuella pythonmiljöer |
pipx
|
V:7, I:44 | 3613 | pipx för installation av python-program i isolerade miljöer |
Se Wikipedia-artikeln Comparison of platform virtual machines för en detaljerad jÀmförelse av olika lösningar för plattformsvirtualisering.
|
Notera |
|---|---|
|
Debians standardkÀrnor stöder KVM sedan
|
Ett typiskt arbetsflöde för virtualisering omfattar flera steg.
Skapa ett tomt filsystem (ett filtrÀd eller en diskavbildning).
FiltrÀdet kan skapas genom "mkdir -p /path/to/chroot".
Den obearbetade diskavbildningsfilen kan skapas med dd(1)
(se Avsnitt 9.7.1, âSkapa en diskavbildningsfilâ och Avsnitt 9.7.5, âSkapa en tom diskavbildningsfilâ).
qemu-img(1) kan anvÀndas för att skapa och konvertera
diskavbildningsfiler som stöds av QEMU.
Filformaten raw och VMDK kan anvÀndas som gemensamma format bland virtualiseringsverktyg.
Montera diskavbildningen med mount(8) till filsystemet
(valfritt).
För den rĂ„a diskavbildningsfilen, montera den som loop-enhet eller enhetsmappningsenheter (se Avsnitt 9.7.3, âMontering av diskavbildningsfilenâ).
För diskavbildningar som stöds av QEMU, montera dem som nĂ€tverksblockenheter (se Avsnitt 9.11.3, âMontering av avbildningsfilen för den virtuella diskenâ).
Fyll pÄ mÄlfilsystemet med nödvÀndiga systemdata.
AnvÀndningen av program som debootstrap och
cdebootstrap hjĂ€lper till med denna process (se Avsnitt 9.11.4, âChroot-systemâ).
AnvÀnd installatörer av operativsystem under fullstÀndig systememulering.
Kör ett program i en virtualiserad miljö.
chroot ger en grundlÀggande virtualiserad miljö som Àr tillrÀcklig för att kompilera program, köra konsolprogram och köra daemoner i den.
QEMU tillhandahÄller CPU-emulering över flera plattformar.
QEMU med KVM ger fullstÀndig systememulering genom maskinvaruassisterad virtualisering.
VirtualBox tillhandahÄller fullstÀndig systememulering pÄ i386 och amd64 med eller utan maskinvarustödd virtualisering.
För den rĂ„a diskavbildningsfilen, se Avsnitt 9.7, âDiskavbildningenâ.
För andra virtuella diskavbildningsfiler kan du anvÀnda
qemu-nbd(8) för att exportera dem med hjÀlp av network block device protocol och montera
dem med hjÀlp av nbd-kÀrnmodulen.
qemu-nbd(8) stöder diskformat som stöds av QEMU: raw, qcow2,
qcow, vmdk, vdi, bochs, cow (Linux
copy-on-write i anvÀndarlÀge), parallels,
dmg, cloop, vpc, vvfat (virtuell VFAT) och host_device.
NÀtverksblockenheten kan stödja
partitioner pÄ samma sÀtt som loop-enheten
(se Avsnitt 9.7.3, âMontering av diskavbildningsfilenâ). Du kan montera den
första partitionen pÄ "disk.img" pÄ följande sÀtt.
# modprobe nbd max_part=16 # qemu-nbd -v -c /dev/nbd0 disk.img ... # mkdir /mnt/part1 # mount /dev/nbd0p1 /mnt/part1
|
Tips |
|---|---|
|
Du kan exportera endast den första partitionen i
" |
Om du vill prova en ny Debian-miljö frÄn en terminalkonsol rekommenderar jag
att du anvÀnder chroot. Detta gör att du kan
köra konsolprogram för Debian unstable och
testing utan de vanliga risker som Àr förknippade med
detta och utan att starta om. chroot(8) Àr det mest
grundlÀggande sÀttet.
|
Observera |
|---|---|
|
Exemplen nedan förutsÀtter att bÄde det överordnade systemet och
chroot-systemet har samma |
Ăven om du manuellt kan skapa en chroot(8)-miljö med
hjÀlp av debootstrap(1), krÀver det en del arbete.
Paketet sbuild för att bygga Debian-paket frÄn
kÀllkod anvÀnder chroot-miljön som hanteras av paketet schroot. Det levereras med hjÀlpskriptet
sbuild-createchroot(1). LÄt oss lÀra oss hur det
fungerar genom att köra det pÄ följande sÀtt.
$ sudo mkdir -p /srv/chroot $ sudo sbuild-createchroot -v --include=eatmydata,ccache unstable /srv/chroot/unstable-amd64-sbuild http://deb.debian.org/debian ...
Du ser hur debootstrap(8) fyller i systemdata för
unstable miljö under
"/srv/chroot/unstable-amd64-sbuild" för ett minimalt
byggsystem.
Du kan logga in i den hÀr miljön med hjÀlp av schroot(1).
$ sudo schroot -v -c chroot:unstable-amd64-sbuild
Du ser hur ett systemskal som körs i en unstable miljö
skapas.
|
Notera |
|---|---|
|
Filen " |
|
Notera |
|---|---|
|
Vissa program under chroot kan behöva tillgÄng till fler filer frÄn det
överordnade systemet för att fungera Àn vad
|
|
Tips |
|---|---|
|
Paketet |
|
Tips |
|---|---|
|
Kommandot |
Om du vill prova en ny GUI-skrivbordsmiljö för nÄgot operativsystem
rekommenderar jag att du anvÀnder QEMU eller
KVM pÄ ett stable
Debian-system för att köra flera skrivbordssystem pÄ ett sÀkert sÀtt med
hjÀlp av virtualisering. Dessa gör
att du kan köra alla skrivbordsprogram, inklusive Debian
unstable och testing, utan de vanliga
risker som Àr förknippade med dem och utan att behöva starta om.
Eftersom ren QEMU Àr mycket lÄngsam rekommenderas det att accelerera den med KVM nÀr vÀrdsystemet stöder det.
Administrerare av virtuella
maskiner, Àven kÀnd som virt-manager, Àr ett
bekvÀmt grafiskt grÀnssnittsverktyg för hantering av KVM-virtuella maskiner
via libvirt.
Den virtuella diskavbildningen "virtdisk.qcow2" som
innehÄller ett Debian-system för QEMU kan skapas
med debian-installer: SmÄ
CD-skivor enligt följande.
$ wget https://cdimage.debian.org/debian-cd/5.0.3/amd64/iso-cd/debian-503-amd64-netinst.iso $ qemu-img create -f qcow2 virtdisk.qcow2 5G $ qemu -hda virtdisk.qcow2 -cdrom debian-503-amd64-netinst.iso -boot d -m 256 ...
|
Tips |
|---|---|
|
Att köra andra GNU/Linux-distributioner som Ubuntu och Fedora under virtualisering Àr ett bra sÀtt att lÀra sig konfigurationstips. Andra proprietÀra operativsystem kan ocksÄ köras snyggt under denna GNU/Linux-virtualisering. |
Se fler tips pÄ Debians wiki: SystemVirtualisering.
[2] Mer detaljerade exempel pÄ anpassning:"Vim Galore","sensible.vim", ...
[3] vim-pathogen var populÀr.