Daftar Isi
Di sini, saya menjelaskan tips dasar untuk mengonfigurasi dan mengelola sistem, sebagian besar dari konsol.
Ada beberapa program utilitas untuk membantu aktivitas konsol Anda.
Tabel 9.1. Daftar program untuk mendukung aktivitas konsol
paket | popcon | ukuran | deskripsi |
---|---|---|---|
mc
|
V:50, I:209 | 1542 | Lihat Bagian 1.3, “Midnight Commander (MC)” |
bsdutils
|
V:519, I:999 | 356 | script (1) command to make a record of terminal session |
screen
|
V:71, I:230 | 1003 | pemultipleks terminal dengan emulasi terminal VT100/ANSI |
tmux
|
V:43, I:146 | 1180 | pemultipleks terminal alternatif (Gunakan "Control-B" sebagai gantinya) |
fzf
|
V:4, I:16 | 3648 | pencari teks fuzzy |
fzy
|
V:0, I:0 | 54 | pencari teks fuzzy |
rlwrap
|
V:1, I:15 | 330 | pembungkus baris perintah fitur readline |
ledit
|
V:0, I:11 | 331 | pembungkus baris perintah fitur readline |
rlfe
|
V:0, I:0 | 45 | pembungkus baris perintah fitur readline |
ripgrep
|
V:5, I:19 | 5152 | pencarian string rekursif yang cepat dalam pohon kode sumber dengan penyaringan otomatis |
Penggunaan sederhana script
(1) (lihat Bagian 1.4.9, “Merekam aktivitas shell”) untuk merekam aktivitas shell
menghasilkan berkas dengan karakter kontrol. Hal ini dapat dihindari dengan
menggunakan col
(1) sebagai berikut.
$ script Script started, file is typescript
Lakukan apapun … dan tekan Ctrl-D
untuk keluar
dari skrip
.
$ col -bx < typescript > cleanedfile $ vim cleanedfile
Ada metode alternatif untuk merekam aktivitas shell:
Menggunakan tee
(dapat digunakan selama proses boot di
initramfs):
$ sh -i 2>&1 | tee typescript
Menggunakan gnome-terminal
dengan penyangga baris yang
dinaikkan untuk gulir balik.
Menggunakan screen
dengan "^A H
"
(lihat Bagian 9.1.2, “Program screen”) untuk melakukan perekaman
konsol.
Menggunakan vim
dengan ":terminal
"
untuk memasuki mode terminal. Gunakan "Ctrl-W N
" untuk
keluar dari mode terminal ke mode normal. Gunakan ":w
typescript
" untuk menulis penyangga ke berkas.
Menggunakan emacs
dengan "M-x shell
",
"M-x eshell
", atau "M-x term
" untuk
memasuki konsol rekaman. Gunakan "C-x C-w
" untuk menulis
penyangga ke berkas.
screen
(1) tidak hanya memungkinkan satu jendela terminal
bekerja dengan beberapa proses, tetapi juga memungkinkan proses shell jarak jauh untuk bertahan dari koneksi yang
terputus. Berikut adalah skenario penggunaan
screen
(1) yang biasa.
Anda masuk ke mesin remote.
Anda memulai screen
pada satu konsol.
Anda menjalankan beberapa program di jendela screen
yang
dibuat dengan ^A c
("Control-A" diikuti oleh "c").
Anda beralih di antara beberapa jendela screen
dengan
^A n
("Control-A" diikuti oleh "n").
Tiba-tiba Anda harus meninggalkan terminal Anda, tetapi Anda tidak ingin kehilangan pekerjaan aktif Anda dengan mempertahankan koneksi.
Anda dapat melepaskan sesi
layar
dengan metode apa pun.
Secara brutal mencabut koneksi jaringan Anda
Mengetik ^A d
("Control-A" diikuti oleh "d") dan keluar
secara manual dari sambungan jarak jauh
Ketik ^A DD
("Control-A" diikuti oleh "DD") agar
layar
terlepas dan log Anda keluar
Anda masuk lagi ke mesin remote yang sama (bahkan dari terminal yang berbeda).
Anda memulai screen
sebagai "screen
-r
".
screen
secara ajaib memasang
kembali semua jendela screen
sebelumnya dengan
semua program aktif berjalan.
![]() |
Tip |
---|---|
Anda dapat menghemat biaya koneksi dengan |
Dalam sesi screen
, semua masukan papan ketik dikirim ke
jendela Anda saat ini kecuali untuk penekanan tombol perintah. Semua
penekanan tombol perintah screen
dimasukkan dengan
mengetik ^A
("Control-A") ditambah satu tombol [ditambah
parameter apa pun]. Berikut adalah hal-hal penting untuk diingat.
Tabel 9.2. Daftar pengikatan tombol untuk screen
pengikatan tombol | arti |
---|---|
^A ? |
memperlihatkan layar bantuan (menampilkan pengikatan tombol) |
^A c |
membuat jendela baru dan beralih ke jendela itu |
^A n |
pergi ke jendela berikutnya |
^A p |
pergi ke jendela sebelumnya |
^A 0 |
masuk ke jendela nomor 0 |
^A 1 |
masuk ke jendela nomor 1 |
^A w |
memperlihatkan daftar jendela |
^A a |
mengirim Ctrl-A ke jendela saat ini sebagai masukan papan ketik |
^A h |
menulis hardcopy jendela saat ini ke berkas |
^A H |
memulai/mengakhiri mencatat jendela saat ini ke berkas |
^A ^X |
mengunci terminal (dilindungi kata sandi) |
^A d |
melepas sesi screen dari terminal |
^A DD |
melepas sesi screen dan log keluar |
Lihat screen
(1) untuk detailnya.
Lihat tmux
(1)untuk fungsionalitas dari perintah
alternatif.
Pada Bagian 1.4.2, “Menyesuaikan bash”, 2 tips untuk memungkinkan navigasi
cepat di sekitar direktori dijelaskan: $CDPATH
dan
mc
.
Jika Anda menggunakan program filter teks fuzzy, Anda dapat melakukannya
tanpa mengetik path yang tepat. Untuk fzf
, sertakan yang
berikut dalam ~/.bashrc
.
FZF_KEYBINDINGS_PATH=/usr/share/doc/fzf/examples/key-bindings.bash if [ -f $FZF_KEYBINDINGS_PATH ]; then . $FZF_KEYBINDINGS_PATH fi
Sebagai contoh:
Anda dapat melompat ke subdirektori yang sangat dalam dengan upaya minimal.
Anda pertama mengetik "cd **
" dan menekan
Tab
. Kemudian Anda akan diberi tampilan path kandidat.
Mengetikkan string path parsial, misalnya, s/d/b foo
,
akan mempersempit path kandidat. Anda memilih path yang akan digunakan oleh
cd
dengan kursor dan tombol return.
Anda dapat memilih perintah dari riwayat perintah dengan lebih efisien
dengan upaya minimal. Anda menekan Ctrl-R
di sapaan
perintah. Kemudian Anda akan dimintai perintah kandidat. Mengetikkan
string perintah parsial, misalnya, vim d
, akan
mempersempit kandidat. Anda memilih yang akan digunakan dengan kursor dan
tombol return.
Beberapa perintah seperti /usr/bin/dash
yang tidak
memiliki kemampuan penyuntingan riwayat baris perintah dapat menambahkan
fungsionalitas tersebut secara transparan dengan berjalan di bawah
rlwrap
atau yang setara.
$ rlwrap dash -i
Ini menyediakan platform yang nyaman untuk menguji titik-titik halus untuk
dash
dengan lingkungan mirip bash
yang
ramah.
Perintah rg
(1) dalam paket ripgrep
menawarkan alternatif yang lebih cepat dari perintah
grep
(1) untuk memindai pohon kode sumber bagi situasi
tipikal. Ini mengambil keuntungan dari CPU multi-core modern dan secara
otomatis menerapkan filter yang masuk akal untuk melewati beberapa berkas.
Setelah Anda mempelajari dasar-dasar vim
(1) melalui Bagian 1.4.8, “Menggunakan vim”, silakan baca "Seven habits of effective text
editing (2000)" dari Bram Moolenaar untuk memahami bagaimana
vim
harus digunakan.
Perilaku vim
dapat diubah secara signifikan dengan
mengaktifkan fitur internalnya melalui perintah mode Ex
seperti "set ...
" untuk mengatur opsi vim.
Perintah mode Ex
ini dapat dimasukkan dalam berkas vimrc
pengguna, "~/.vimrc
" tradisional,
atau"~/.vim/vimrc
" yang ramah git. Berikut adalah contoh
yang sangat sederhana [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
The keymap of vim
can be changed in user's vimrc file.
E.g.:
![]() |
Perhatian |
---|---|
Jangan mencoba mengubah pengikatan tombol baku tanpa alasan yang sangat bagus. |
""" 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
Agar pengikatan tombol di atas berfungsi dengan baik, program terminal perlu
dikonfigurasi untuk menghasilkan "ASCII DEL" bagi tombol
Backspace
dan "Escape sequence" untuk tombol
Delete
.
Other miscellaneous configuration can be changed in user's vimrc file. E.g.:
""" 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\+\%#\@<!$/
Paket pengaya eksternal yang menarik dapat ditemukan:
Vim - editor teks di mana-mana -- Situs hulu resmi Vim dan skrip vim
VimAwsome -- Daftar pengaya Vim
vim-scripts -- Paket Debian: kumpulan skrip vim
Paket pengaya dalam paket vim-scripts dapat difungsikan memakai berkas vimrc pengguna. Mis.:
packadd! secure-modelines packadd! winmanager " IDE-like UI for files and buffers with <space>w nnoremap <leader>w :WMToggle<CR>
Sistem paket Vim asli yang baru, bekerja dengan baik dengan
"git
" dan "git submodule
". Salah satu
contoh konfigurasi tersebut dapat ditemukan di repositori git saya: dot-vim. Ini
pada dasarnya:
Dengan menggunakan "git
" dan "git
submodule
", paket eksternal terbaru, seperti
"nama
", ditempatkan ke dalam
~/.vim/pack/*/opt/nama
dan
sejenisnya.
Dengan menambahkan baris :packadd! nama
ke berkas vimrc pengguna, paket-paket ini ditempatkan pada
runtimepath
.
Vim memuat paket-paket ini pada runtimepath
selama
inisialisasinya.
Pada akhir inisialisasinya, tag untuk dokumen yang dipasang diperbarui
dengan "helptags ALL
".
Untuk lebih lanjut, silakan mulai vim
dengan
"vim --startuptime vimstart.log
" untuk memeriksa urutan
eksekusi aktual dan waktu yang dihabiskan untuk setiap langkah.
Cukup membingungkan untuk melihat terlalu banyak cara[3] untuk mengelola dan memuat paket-paket eksternal
ini bagi vim
. Memeriksa informasi asli adalah obat
terbaik.
Tabel 9.3. Informasi tentang inisialisasi vim
ketikan tombol | informasi |
---|---|
:help package |
penjelasan tentang mekanisme paket vim |
:help runtimepath |
penjelasan tentang mekanisme runtimepath |
:version |
keadaan internal termasuk kandidat untuk berkas vimrc |
:echo $VIM |
variabel lingkungan "$VIM " yang digunakan untuk menemukan
berkas vimrc |
:set runtimepath? |
daftar direktori yang akan dicari untuk semua berkas dukungan runtime |
:echo $VIMRUNTIME |
variabel lingkungan "$VIMRUNTIME " digunakan untuk
menemukan berbagai berkas dukungan runtime yang disediakan oleh sistem |
Banyak program tradisional merekam aktivitas mereka dalam format berkas teks
di bawah direktori "/var/log/
".
logrotate
(8) digunakan untuk menyederhanakan administrasi
berkas log pada sistem yang menghasilkan banyak berkas log.
Banyak program baru merekam aktivitasnya dalam format berkas biner
menggunakan layanan Jurnal systemd-journald
(8) di bawah
direktori "/var/log/journal
".
Anda dapat mencatat data ke Jurnal systemd-journald
(8)
dari skrip shell dengan menggunakan perintah
systemd-cat
(1).
Lihat Bagian 3.4, “Pesan sistem” dan Bagian 3.3, “Pesan kernel”.
Berikut adalah penganalisis log terkenal
("~Gsecurity::log-analyzer
" dalam
aptitude
(8)).
Tabel 9.4. Daftar penganalisis log sistem
paket | popcon | ukuran | deskripsi |
---|---|---|---|
logwatch
|
V:11, I:13 | 2328 | penganalisis log dengan keluaran bagus yang ditulis dalam Perl |
fail2ban
|
V:98, I:111 | 2126 | memblokir IP-IP yang menyebabkan beberapa kesalahan otentikasi |
analog
|
V:3, I:96 | 3739 | penganalisis log server web |
awstats
|
V:6, I:10 | 6928 | penganalisis log server web yang kuat dan penuh fitur |
sarg
|
V:1, I:1 | 845 | generator laporan analisis squid |
pflogsumm
|
V:1, I:4 | 109 | Perangkum entri log Postfix |
fwlogwatch
|
V:0, I:0 | 481 | penganalisis log firewall |
squidview
|
V:0, I:0 | 189 | memantau dan menganalisis berkas access.log squid |
swatch
|
V:0, I:0 | 99 | penampil berkas log dengan pencocokan regex, penyorotan, dan kait |
crm114
|
V:0, I:0 | 1119 | Mutilator Regex dan Filter Spam yang Dapat Dikontrol (CRM114) |
icmpinfo
|
V:0, I:0 | 44 | menafsirkan pesan ICMP |
![]() |
Catatan |
---|---|
CRM114 menyediakan infrastruktur bahasa untuk menulis filter fuzzy dengan perpustakaan regex TRE. Penggunaannya yang populer adalah filter surel spam tetapi dapat digunakan sebagai penganalisis log. |
Meskipun alat pager seperti more
(1) dan
less
(1) (lihat Bagian 1.4.5, “Pager”) dan alat
ubahan untuk menyoroti dan memformat (lihat Bagian 11.1.8, “Menyoroti dan memformat data teks polos”) dapat menampilkan
data teks dengan baik, penyunting tujuan umum (lihat Bagian 1.4.6, “Penyunting teks”) paling serbaguna dan dapat disesuaikan.
![]() |
Tip |
---|---|
Untuk |
Format tampilan baku waktu dan tanggal oleh perintah "ls
-l
" tergantung pada lokal
(lihat Bagian 1.2.6, “Stempel waktu” untuk nilainya). Variabel
"$LANG
" dirujuk terlebih dahulu dan dapat ditimpa oleh
variabel lingkungan "$LC_TIME
" atau
"$LC_ALL
" yang diekspor.
Format tampilan baku aktual untuk setiap lokal tergantung pada versi pustaka
C standar (paket libc6
) yang digunakan. Yaitu, rilis
Debian yang berbeda memiliki baku yang berbeda. Untuk format iso, lihat
ISO 8601.
Jika Anda benar-benar ingin menyesuaikan format tampilan waktu dan tanggal
ini di luar lokal, Anda harus mengatur
nilai gaya waktu dengan argumen
"--time-style
" atau dengan nilai
"$TIME_STYLE
" (lihat ls
(1),
date
(1), "info coreutils 'ls
invocation'
").
Tabel 9.5. Menampilkan contoh waktu dan tanggal untuk perintah "ls
-l
" dengan nilai gaya waktu
nilai gaya waktu | lokal | tampilan waktu dan tanggal |
---|---|---|
iso |
apapun | 01-19 00:15 |
long-iso |
apapun | 2009-01-19 00:15 |
full-iso |
apapun | 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 |
apapun | 19.01.09 00:15 |
+%d.%b.%y %H:%M |
C atau en_US.UTF-8 |
19.Jan.09 00:15 |
+%d.%b.%y %H:%M |
es_ES.UTF-8 |
19.ene.09 00:15 |
![]() |
Tip |
---|---|
Anda dapat menghilangkan mengetik opsi panjang pada baris perintah menggunakan alias perintah (lihat Bagian 1.5.9, “Alias perintah”): alias ls='ls --time-style=+%d.%m.%y %H:%M' |
Shell echo ke sebagian besar terminal modern dapat diwarnai menggunakan
kode escape ANSI (lihat
"/usr/share/doc/xterm/ctlseqs.txt.gz"
).
Misalnya, coba yang berikut ini
$ RED=$(printf "\x1b[31m") $ NORMAL=$(printf "\x1b[0m") $ REVERSE=$(printf "\x1b[7m") $ echo "${RED}RED-TEXT${NORMAL} ${REVERSE}REVERSE-TEXT${NORMAL}"
Perintah berwarna berguna untuk memeriksa keluaran mereka di lingkungan
interaktif. Saya memasukkan yang berikut dalam
"~/.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
Penggunaan alias membatasi efek warna pada penggunaan perintah interaktif.
Ini memiliki keuntungan dibandingkan mengekspor variabel lingkungan
"export GREP_OPTIONS='--color=auto'
" karena warna dapat
dilihat di bawah program pager seperti less
(1). Jika
Anda ingin meniadakan warna saat menyalurkan ke program lain, gunakan
"--color=auto
" sebagai gantinya dalam contoh di atas
untuk "~/.bashrc
".
![]() |
Tip |
---|---|
Anda dapat mematikan alias mewarnai ini di lingkungan interaktif dengan
memanggil shell memakai " |
Anda dapat merekam aktivitas penyunting untuk pengulangan yang kompleks.
Untuk Vim, sebagai berikut.
"qa
": mulai merekam karakter yang diketik ke dalam
register bernama "a
".
… aktivitas penyunting
"q
": mengakhiri rekaman karakter yang diketik.
"@a
": jalankan isi register "a
".
Untuk Emacs, sebagai berikut.
"C-x (
": mulai mendefinisikan makro papan ketik.
… aktivitas penyunting
"C-x)
": akhir mendefinisikan makro papan ketik.
"C-x e
": jalankan makro papan ketik.
Ada beberapa cara untuk merekam gambar grafis dari aplikasi X, termasuk
tampilan xterm
.
Tabel 9.6. Daftar alat manipulasi gambar grafis
paket | popcon | ukuran | layar | perintah |
---|---|---|---|---|
gnome-screenshot
|
V:18, I:173 | 1134 | Wayland | aplikasi tangkapan layar untuk GNOME |
flameshot
|
V:7, I:15 | 3364 | Wayland | aplikasi tangkapan layar dengan steroid |
gimp
|
V:50, I:252 | 19304 | Wayland + X | tangkapan layar di menu GUI |
x11-apps
|
V:31, I:463 | 2460 | X | xwd (1) |
imagemagick
|
I:317 | 74 | X | import (1) |
scrot
|
V:5, I:63 | 131 | X | scrot (1) |
Ada alat khusus untuk merekam perubahan dalam berkas konfigurasi dengan bantuan DVCS dan untuk membuat snapshot sistem di Btrfs.
Tabel 9.7. Daftar paket yang dapat merekam riwayat konfigurasi
paket | popcon | ukuran | deskripsi |
---|---|---|---|
etckeeper
|
V:26, I:30 | 168 | menyimpan berkas konfigurasi dan metadatanya dengan Git (baku), Mercurial, atau GNU Bazaar |
timeshift
|
V:5, I:10 | 3506 | utilitas pemulihan sistem menggunakan snapshot rsync atau BTRFS |
snapper
|
V:4, I:5 | 2392 | Alat manajemen snapshot sistem berkas Linux |
You may also think about local script Bagian 10.2.3, “Backup tips” approach.
Aktivitas program dapat dipantau dan dikendalikan menggunakan alat khusus.
Tabel 9.8. Daftar alat untuk memantau dan mengendalikan aktivitas program
paket | popcon | ukuran | deskripsi |
---|---|---|---|
coreutils
|
V:880, I:999 | 18307 | nice (1): menjalankan program dengan prioritas penjadwalan
yang dimodifikasi |
bsdutils
|
V:519, I:999 | 356 | renice (1): memodifikasi prioritas penjadwalan dari proses
yang berjalan |
procps
|
V:766, I:999 | 2389 | Utilitas sistem berkas "/proc ": ps (1),
top (1), kill (1),
watch (1), … |
psmisc
|
V:420, I:775 | 908 | Utilitas sistem berkas "/proc ":
killall (1), fuser (1),
peekfd (1), pstree (1) |
time
|
V:7, I:132 | 129 | time (1): menjalankan program untuk melaporkan penggunaan
sumber daya sistem sehubungan dengan waktu |
sysstat
|
V:148, I:170 | 1904 | sar (1), iostat (1),
mpstat (1), …: alat kinerja sistem untuk Linux |
isag
|
V:0, I:3 | 109 | Grafer Aktivitas Sistem Interaktif untuk sysstat |
lsof
|
V:422, I:945 | 482 | lsof (8): daftar berkas yang dibuka oleh proses berjalan
menggunakan opsi "-p " |
strace
|
V:12, I:119 | 2897 | strace (1): melacak panggilan sistem dan sinyal |
ltrace
|
V:0, I:16 | 330 | ltrace (1): melacak panggilan pustaka |
xtrace
|
V:0, I:0 | 353 | xtrace (1): melacak komunikasi antara klien dan server X11 |
powertop
|
V:18, I:217 | 677 | powertop (1): informasi tentang penggunaan daya sistem |
cron
|
V:872, I:995 | 244 | menjalankan proses sesuai dengan jadwal di latar belakang dari daemon
cron (8) |
anacron
|
V:396, I:479 | 93 | penjadwal perintah seperti cron untuk sistem yang tidak berjalan 24 jam sehari |
at
|
V:101, I:154 | 158 | at (1) atau batch (1): menjalankan
pekerjaan pada waktu tertentu atau di bawah tingkat beban tertentu |
![]() |
Tip |
---|---|
Paket |
Menampilkan waktu yang digunakan oleh proses yang dipanggil oleh perintah.
# 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
Suatu nilai nice digunakan untuk mengontrol prioritas penjadwalan untuk proses tersebut.
Tabel 9.9. Daftar nilai nice untuk prioritas penjadwalan
nilai nice | prioritas penjadwalan |
---|---|
19 | proses prioritas terendah (nice) |
0 | proses prioritas sangat tinggi untuk pengguna |
-20 | proses prioritas yang sangat tinggi untuk root (tidak-nice) |
# nice -19 top # very nice # nice --20 wodim -v -eject speed=2 dev=0,0 disk.img # very fast
Terkadang nilai nice yang ekstrem lebih berbahaya daripada baik untuk sistem. Gunakan perintah ini dengan hati-hati.
Perintah ps
(1) pada sistem Debian mendukung fitur BSD dan
SystemV dan membantu mengidentifikasi aktivitas proses secara statis.
Tabel 9.10. Daftar gaya perintah ps
gaya | perintah tipikal | fitur |
---|---|---|
BSD | ps aux |
display %CPU %MEM |
System V | ps -efH |
tampilkan PPID |
Untuk proses anak zombie (mati), Anda dapat membunuh mereka dengan id proses
induk yang diidentifikasi di bidang "PPID
".
Perintah pstree
(1) menampilkan pohon proses.
top
(1) pada sistem Debian memiliki fitur yang kaya dan
membantu mengidentifikasi proses apa yang bertindak aneh secara dinamis.
Ini adalah program layar penuh interaktif. Anda bisa mendapatkan bantuan penggunaannya dengan menekan tombol "h" dan menghentikannya dengan menekan tombol "q".
Anda dapat mencantumkan semua berkas yang dibuka oleh proses dengan ID proses (PID), misalnya 1, dengan yang berikut ini.
$ sudo lsof -p 1
PID=1 biasanya adalah program init
.
Anda dapat melacak aktivitas program dengan strace
(1),
ltrace
(1), atau xtrace
(1) untuk
panggilan dan sinyal sistem, panggilan pustaka, atau komunikasi antara klien
dan server X11.
Anda dapat melacak panggilan sistem dari perintah ls
sebagai berikut.
$ sudo strace ls
![]() |
Tip |
---|---|
Gunakan skrip strace-graph yang ditemukan di /usr/share/doc/strace/examples/ untuk membuat tampilan pohon yang bagus |
Anda juga dapat mengidentifikasi proses yang menggunakan berkas dengan
fuser
(1), misalnya untuk
"/var/log/mail.log
" dengan berikut ini.
$ sudo fuser -v /var/log/mail.log USER PID ACCESS COMMAND /var/log/mail.log: root 2946 F.... rsyslogd
Anda melihat bahwa berkas "/var/log/mail.log
" dibuka
untuk ditulis oleh perintah rsyslogd
(8).
Anda juga dapat mengidentifikasi proses menggunakan soket dengan
fuser
(1), misalnya untuk "smtp/tcp
"
dengan yang berikut.
$ sudo fuser -v smtp/tcp USER PID ACCESS COMMAND smtp/tcp: Debian-exim 3379 F.... exim4
Sekarang Anda tahu sistem Anda menjalankan exim4
(8) untuk
menangani koneksi TCP ke port SMTP (25).
watch
(1) mengeksekusi program berulang kali dengan
interval konstan sambil menunjukkan keluarannya di layar penuh.
$ watch w
Ini menampilkan siapa yang masuk ke sistem, diperbarui setiap 2 detik.
Ada beberapa cara untuk mengulangi perintah atas berkas yang cocok dengan
beberapa kondisi, misalnya pencocokan pola glob "*.ext
".
Metode for-loop shell (lihat Bagian 12.1.4, “Loop shell”):
for x in *.ext; do if [ -f "$x"]; then command "$x" ; fi; done
Kombinasi find
(1) dan xargs
(1):
find . -type f -maxdepth 1 -name '*.ext' -print0 | xargs -0 -n 1 command
find
(1) dengan opsi "-exec
" dengan
suatu perintah:
find . -type f -maxdepth 1 -name '*.ext' -exec command '{}' \;
find
(1) dengan opsi "-exec
" dengan
skrip shell pendek:
find . -type f -maxdepth 1 -name '*.ext' -exec sh -c "command '{}' && echo 'successful'" \;
Contoh di atas ditulis untuk memastikan penanganan yang tepat dari nama
berkas aneh seperti yang berisi spasi. Lihat Bagian 10.1.5, “Idiom untuk pemilihan berkas” untuk penggunaan
find
(1) pada tingkat lanjut.
Untuk antarmuka baris perintah
(CLI), program pertama dengan nama yang cocok yang ditemukan di
direktori yang ditentukan dalam variabel lingkungan $PATH
dijalankan. Lihat Bagian 1.5.3, “Variabel "$PATH
"”.
Untuk antarmuka pengguna grafis
(GUI) yang sesuai dengan standar freedesktop.org, berkas
*.desktop
di direktori
/usr/share/applications/
memberikan atribut yang
diperlukan untuk tampilan menu GUI dari setiap program. Setiap paket yang
sesuai dengan sistem menu xdg Freedesktop.org memasang data menu yang
disediakan oleh "*.desktop" di bawah "/usr/share/applications/". Lingkungan
desktop modern yang sesuai dengan standar Freedesktop.org menggunakan data
ini untuk menghasilkan menu mereka menggunakan paket xdg-utils. Lihat
"/usr/share/doc/xdg-utils/README".
Misalnya, berkas chromium.desktop
mendefinisikan atribut
untuk "Peramban Web Chromium" seperti "Name" untuk nama program, "Exec"
untuk path eksekusi program dan argumen, "Icon" untuk ikon yang digunakan,
dll. (lihat Spesifikasi Entri
Desktop) sebagai berikut:
[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
Ini adalah deskripsi yang terlalu disederhanakan. Berkas
*.desktop
dipindai sebagai berikut.
Lingkungan desktop mengatur variabel lingkungan
$XDG_DATA_HOME
dan $XDG_DATA_DIR
.
Misalnya, di bawah GNOME 3:
$XDG_DATA_HOME
tidak ditata. (Nilai baku
$HOME/.local/share
digunakan.)
$XDG_DATA_DIRS
diatur ke
/usr/share/gnome:/usr/local/share/:/usr/share/
.
Jadi direktori dasar (lihat Spesifikasi Direktori Dasar
XDG) dan direktori applications
adalah sebagai
berikut.
$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/
Berkas *.desktop
dipindai dalam direktori
applications
ini dalam urutan ini.
![]() |
Tip |
---|---|
Entri menu GUI ubahan pengguna dapat dibuat dengan menambahkan berkas
|
![]() |
Tip |
---|---|
The " |
![]() |
Tip |
---|---|
Demikian pula, jika berkas |
![]() |
Tip |
---|---|
Demikian pula, jika berkas |
Beberapa program memulai program lain secara otomatis. Berikut adalah poin-poin pemeriksaan untuk menyesuaikan proses ini.
Menu konfigurasi aplikasi:
Desktop GNOME3: "Pengaturan" → "Sistem" → "Detail" → "Aplikasi Baku"
Desktop KDE: "K" → "Pusat Kontrol" → "Komponen KDE" → "Pemilih Komponen"
Peramban Iceweasel: "Sunting" → "Preferensi" → "Aplikasi"
mc
(1): "/etc/mc/mc.ext
"
Variabel lingkungan seperti "$BROWSER
",
"$EDITOR
", "$VISUAL
", dan
"$PAGER
" (lihat environ
(7))
Sistem update-alternatives
(1) untuk program seperti
"editor
", "view
",
"x-www-browser
", "gnome-www-browser
",
dan"www-browser
" (lihat Bagian 1.4.7, “Menyiapkan penyunting teks default”)
isi berkas "~/.mailcap
" dan
"/etc/mailcap
" yang mengaitkan jenis MIME dengan program (lihat
mailcap
(5))
Konten berkas "~/.mime.types
" dan
"/etc/mime.types
" yang mengaitkan ekstensi nama berkas
dengan tipe MIME (lihat
run-mailcap
(1))
![]() |
Tip |
---|---|
|
![]() |
Tip |
---|---|
Paket |
![]() |
Tip |
---|---|
Untuk menjalankan aplikasi konsol seperti # cat /usr/local/bin/mutt-term <<EOF #!/bin/sh gnome-terminal -e "mutt \$@" EOF # chmod 755 /usr/local/bin/mutt-term |
Gunakan kill
(1) untuk membunuh (atau mengirim sinyal ke)
suatu proses dengan ID proses.
Gunakan killall
(1) atau pkill
(1) untuk
melakukan hal yang sama dengan nama perintah proses dan atribut lainnya.
Tabel 9.11. Daftar sinyal yang sering digunakan untuk perintah bunuh
nilai sinyal | nama sinyal | aksi | catatan |
---|---|---|---|
0 | --- | tidak ada sinyal yang dikirim (lihat kill (2)) |
memeriksa apakah proses sedang berjalan |
1 | SIGHUP | mengakhiri proses | terminal terputus (sinyal terputus) |
2 | SIGINT | mengakhiri proses | interupsi dari papan ketik (CTRL-C ) |
3 | SIGQUIT | hentikan proses dan dump core | berhenti dari papan ketik (CTRL-\ ) |
9 | SIGKILL | mengakhiri proses | sinyal kill yang tidak dapat diblokir |
15 | SIGTERM | mengakhiri proses | sinyal pengakhiran yang dapat diblokir |
Jalankan perintah at
(1) untuk menjadwalkan pekerjaan satu
kali dengan yang berikut.
$ echo 'command -args'| at 3:40 monday
Gunakan cron
(8) untuk menjadwalkan tugas secara teratur.
Lihat crontab
(1) dan crontab
(5).
Anda dapat menjadwalkan untuk menjalankan proses sebagai pengguna normal,
misalnya foo
dengan membuat berkas
crontab
(5) sebagai
"/var/spool/cron/crontabs/foo
" dengan perintah
"crontab -e
".
Berikut adalah contoh berkas crontab
(5).
# 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
![]() |
Tip |
---|---|
Untuk sistem yang tidak berjalan terus menerus, pasang paket
|
![]() |
Tip |
---|---|
Untuk skrip pemeliharaan sistem terjadwal, Anda dapat menjalankannya secara
berkala dari akun root dengan menempatkan skrip tersebut di
" |
Systemd memiliki kemampuan tingkat rendah
untuk menjadwalkan program untuk berjalan tanpa daemon
cron
. Misalnya,
/lib/systemd/system/apt-daily.timer
dan
/lib/systemd/system/apt-daily.service
mengatur kegiatan
pengunduhan apt harian. Lihat systemd.timer
(5).
Systemd can schedule program not only on the timer event but also on the mount event. See Bagian 10.2.3.3, “Timer event triggered backup” and Bagian 10.2.3.2, “Mount event triggered backup” for examples.
Menekan Alt-SysRq (PrtScr) diikuti oleh satu tombol melakukan keajaiban menyelamatkan kontrol sistem.
Tabel 9.12. Daftar tombol perintah SAK yang terkenal
tombol setelah Alt-SysRq | deskripsi tindakan |
---|---|
k |
matikan semua proses pada konsol virtual saat ini (SAK) |
s |
selaraskan semua sistem berkas yang dikait untuk menghindari korupsi data |
u |
kait ulang ke hanya baca semua sistem berkas yang dikait (umount) |
r |
memulihkan papan ketik dari mode raw setelah X crash |
Lihat lebih lanjut pada Linux kernel user’s and administrator’s guide » Linux Magic System Request Key Hacks
![]() |
Tip |
---|---|
Dari terminal SSH dll., Anda dapat menggunakan fitur Alt-SysRq dengan
menulis ke " |
Kernel Linux Debian amd64 saat ini (2021) memiliki
/proc/sys/kernel/sysrq=438=0b110110110
:
2 = 0x2 - memfungsikan kontrol tingkat log konsol (ON)
4 = 0x4 - memfungsikan kontrol papan ketik (SAK, unraw) (ON)
8 = 0x8 - memfungsikan dump debug proses dll (OFF)
16 = 0x10 - memfungsikan perintah sinkronisasi (ON)
32 = 0x20 - memfungsikan remount hanya baca (ON)
64 = 0x40 - memfungsikan pensinyalan proses (term, kill, oom-kill) (OFF)
128 = 0x80 - izinkan reboot/poweroff (ON)
256 = 0x100 - memungkinkan me-nice semua tugas RT (ON)
Anda dapat memeriksa siapa yang ada di sistem dengan berikut ini.
who
(1) menunjukkan siapa yang sedang log masuk.
w
(1) menunjukkan siapa yang sedang log masuk dan apa yang
mereka lakukan.
last
(1) menampilkan daftar pengguna terakhir yang masuk.
lastb
(1) menunjukkan daftar pengguna buruk terakhir yang
masuk.
![]() |
Tip |
---|---|
" |
Anda dapat mengirim pesan ke semua orang yang masuk ke sistem dengan
wall
(1) dengan berikut ini.
$ echo "We are shutting down in 1 hour" | wall
Untuk perangkat mirip PCI (AGP, PCI-Express,
CardBus, ExpressCard, dll), lspci
(8)
(mungkin dengan opsi "-nn
") adalah awal yang baik untuk
identifikasi perangkat keras.
Atau, Anda dapat mengidentifikasi perangkat keras dengan membaca isi
"/proc/bus/pci/devices
" atau meramban pohon direktori di
bawah "/sys/bus/pci
" (lihat Bagian 1.2.12, “procfs dan sysfs”).
Tabel 9.13. Daftar alat identifikasi perangkat keras
paket | popcon | ukuran | deskripsi |
---|---|---|---|
pciutils
|
V:249, I:991 | 213 | Utilitas PCI Linux: lspci (8) |
usbutils
|
V:68, I:869 | 325 | Utilitas USB Linux: lsusb (8) |
nvme-cli
|
V:15, I:22 | 1642 | Utilitas NVMe untuk Linux: nvme (1) |
pcmciautils
|
V:6, I:10 | 91 | Utilitas PCMCIA untuk Linux: pccardctl (8) |
scsitools
|
V:0, I:2 | 346 | kumpulan alat untuk manajemen perangkat keras SCSI:
lsscsi (8) |
procinfo
|
V:0, I:9 | 132 | informasi sistem yang diperoleh dari "/proc ":
lsdev (8) |
lshw
|
V:13, I:89 | 919 | informasi tentang konfigurasi perangkat keras: lshw (1) |
discover
|
V:40, I:958 | 98 | sistem identifikasi perangkat keras: discover (8) |
Meskipun sebagian besar konfigurasi perangkat keras pada sistem desktop GUI modern seperti GNOME dan KDE dapat dikelola melalui alat konfigurasi GUI yang menyertainya, adalah ide yang baik untuk mengetahui beberapa metode dasar untuk mengkonfigurasinya.
Tabel 9.14. Daftar alat konfigurasi perangkat keras
paket | popcon | ukuran | deskripsi |
---|---|---|---|
console-setup
|
V:88, I:967 | 428 | Fonta konsol Linux dan utilitas keytable |
x11-xserver-utils
|
V:302, I:528 | 568 | Utilitas server X: xset (1), xmodmap (1) |
acpid
|
V:84, I:148 | 158 | daemon untuk mengelola kejadian yang disampaikan oleh Advanced Configuration and Power Interface (ACPI) |
acpi
|
V:9, I:136 | 47 | utilitas untuk menampilkan informasi pada perangkat ACPI |
sleepd
|
V:0, I:0 | 86 | daemon untuk membuat laptop tidur selama tidak aktif |
hdparm
|
V:178, I:335 | 256 | optimasi akses hard disk (lihat Bagian 9.6.9, “Optimalisasi hard disk”) |
smartmontools
|
V:207, I:250 | 2358 | mengontrol dan memantau sistem penyimpanan menggunakan S.M.A.R.T. |
setserial
|
V:4, I:6 | 103 | koleksi alat untuk manajemen port serial |
memtest86+
|
V:1, I:21 | 12711 | koleksi alat untuk manajemen perangkat keras memori |
scsitools
|
V:0, I:2 | 346 | koleksi alat untuk manajemen perangkat keras SCSI |
setcd
|
V:0, I:0 | 37 | optimasi akses drive compact disc |
big-cursor
|
I:0 | 26 | kursor tetikus yang lebih besar untuk X |
Di sini, ACPI adalah kerangka kerja yang lebih baru untuk sistem manajemen daya daripada APM.
![]() |
Tip |
---|---|
Penskalaan frekuensi CPU pada sistem modern diatur oleh modul kernel seperti
|
Berikut ini mengatur waktu sistem dan perangkat keras ke BB/TT jj:mm, AAYY.
# date MMDDhhmmCCYY # hwclock --utc --systohc # hwclock --show
Waktu biasanya ditampilkan pada waktu lokal pada sistem Debian tetapi waktu perangkat keras dan sistem biasanya menggunakan UTC (GMT).
Jika waktu perangkat keras diatur ke UTC, ubah pengaturan menjadi
"UTC=yes
" di "/etc/default/rcS
".
Berikut konfigurasi ulang zona waktu yang digunakan oleh sistem Debian.
# dpkg-reconfigure tzdata
Jika Anda ingin memperbarui waktu sistem melalui jaringan, pertimbangkan
untuk menggunakan layanan NTP dengan paket
seperti ntp
, ntpdate
, dan
chrony
.
![]() |
Tip |
---|---|
Di bawah systemd, gunakan
|
Lihat yang berikut.
![]() |
Tip |
---|---|
|
Ada beberapa komponen untuk mengkonfigurasi konsol karakter dan fitur sistem
ncurses
(3).
Berkas "/etc/terminfo/*/*
"
(terminfo
(5))
Variabel lingkungan "$TERM
" (term
(7))
setterm
(1), stty
(1),
tic
(1), dan toe
(1)
Jika entri terminfo
untuk xterm
tidak
berfungsi dengan xterm
non-Debian, ubah tipe terminal
Anda, "$TERM
", dari "xterm
" ke salah
satu versi terbatas fitur seperti "xterm-r6
" ketika Anda
masuk ke sistem Debian dari jarak jauh. Lihat
"/usr/share/doc/libncurses5/FAQ
" untuk informasi lebih
lanjut. "dumb
" adalah penyebut umum terendah untuk
"$TERM
".
Driver perangkat untuk kartu suara bagi Linux saat ini disediakan oleh Advanced Linux Sound Architecture (ALSA). ALSA menyediakan mode emulasi untuk Open Sound System (OSS) sebelumnya untuk kompatibilitas.
Perangkat lunak aplikasi dapat dikonfigurasi tidak hanya untuk mengakses perangkat suara secara langsung tetapi juga untuk mengaksesnya melalui beberapa sistem server suara standar. Saat ini, PulseAudio, JACK, dan PipeWire digunakan sebagai sistem server suara. Lihat halaman wiki Debian tentang Suara untuk situasi terbaru.
Biasanya ada mesin suara umum untuk setiap lingkungan desktop yang populer. Setiap mesin suara yang digunakan oleh aplikasi dapat memilih untuk terhubung ke server suara yang berbeda.
![]() |
Tip |
---|---|
Gunakan " |
![]() |
Tip |
---|---|
Jika Anda tidak bisa mendapatkan suara, speaker Anda mungkin terhubung ke
keluaran yang dibisukan. Sistem suara modern memiliki banyak keluaran.
|
Tabel 9.15. Daftar paket suara
Untuk menonaktifkan screen saver, gunakan perintah berikut.
Tabel 9.16. Daftar perintah untuk menonaktifkan screen saver
lingkungan | perintah |
---|---|
Konsol Linux | setterm -powersave off |
X Window (mematikan screensaver) | xset s off |
X Window (menonaktifkan DPMS) | xset -dpms |
X Window (konfigurasi GUI screen saver) | xscreensaver-command -prefs |
Seseorang selalu dapat mencabut speaker PC untuk menonaktifkan suara bip.
Menghapus modul kernel pcspkr
melakukan ini untuk Anda.
Berikut ini mencegah program readline
(3) yang digunakan
oleh bash
(1) untuk berbunyi bip saat menemui karakter
peringatan (ASCII=7).
$ echo "set bell-style none">> ~/.inputrc
Ada 2 sumber daya yang tersedia bagi Anda untuk mendapatkan situasi penggunaan memori.
Pesan boot kernel dalam "/var/log/dmesg
" berisi ukuran
total yang tepat dari memori yang tersedia.
free
(1) dan top
(1) menampilkan
informasi tentang sumber daya memori pada sistem yang sedang berjalan.
Berikut adalah contohnya.
# 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
Anda mungkin bertanya-tanya "dmesg memberi tahu saya bebas 990 MB, dan free -k mengatakan 320 MB bebas. Lebih dari 600 MB hilang …".
Jangan khawatir tentang ukuran besar "digunakan
" dan
ukuran kecil "bebas
" dalam baris
"Mem:
", tetapi baca yang di bawahnya (675404 dan 321780
dalam contoh di atas) dan rileks.
Untuk MacBook saya dengan DRAM 1GB=1048576k (sistem video mencuri sebagian dari ini), saya melihat yang berikut.
Tabel 9.17. Daftar ukuran memori yang dilaporkan
laporan | ukuran |
---|---|
Ukuran total dalam dmesg | 1016784k = 1GB - 31792k |
Bebas di dmesg | 990528k |
Total di bawah shell | 997184k |
Bebas di bawah shell | 20256k (tetapi efektifnya 321780k) |
Pemeliharaan sistem yang buruk dapat mengekspos sistem Anda ke eksploitasi eksternal.
Untuk pemeriksaan keamanan dan integritas sistem, Anda harus mulai dengan yang berikut.
Paket debsums
, lihat debsum
(1) dan
Bagian 2.5.2, “Berkas "Release" tingkat puncak dan keaslian”.
Paket chkrootkit
, lihat chkrootkit
(1).
Keluarga paket clamav
, lihat
clamscan
(1) dan freshclam
(1).
Tabel 9.18. Daftar alat untuk pemeriksaan keamanan dan integritas sistem
paket | popcon | ukuran | deskripsi |
---|---|---|---|
logcheck
|
V:6, I:7 | 110 | daemon untuk mengirimkan anomali dalam berkas log sistem ke administrator |
debsums
|
V:5, I:35 | 98 | utilitas untuk memverifikasi berkas-berkas paket yang dipasang terhadap checksum MD5 |
chkrootkit
|
V:8, I:17 | 925 | detektor rootkit |
clamav
|
V:9, I:45 | 27455 | utilitas anti-virus untuk Unix - antarmuka baris perintah |
tiger
|
V:1, I:2 | 7800 | melaporkan kerentanan keamanan sistem |
tripwire
|
V:1, I:2 | 5016 | pemeriksa integritas berkas dan direktori |
john
|
V:1, I:9 | 471 | alat pemecah kata sandi aktif |
aide
|
V:1, I:1 | 293 | Advanced Intrusion Detection Environment - biner statis |
integrit
|
V:0, I:0 | 2659 | program verifikasi integritas berkas |
crack
|
V:0, I:1 | 149 | program menebak kata sandi |
Berikut adalah skrip sederhana untuk memeriksa salah izin berkas sehingga dapat ditulis oleh siapapun.
# find / -perm 777 -a \! -type s -a \! -type l -a \! \( -type d -a -perm 1777 \)
![]() |
Perhatian |
---|---|
Karena paket |
Mem-boot sistem Anda dengan CD live Linux atau CD debian-installer dalam mode penyelamatan memudahkan Anda untuk mengonfigurasi ulang penyimpanan data pada perangkat boot Anda.
Anda mungkin perlu umount
(8) beberapa perangkat secara
manual dari baris perintah sebelum beroperasi pada mereka jika mereka secara
otomatis dipasang oleh sistem desktop GUI.
Penggunaan ruang disk dapat dievaluasi oleh program yang disediakan oleh
paket mount
, coreutils
, dan
xdu
:
mount
(8) melaporkan semua sistem berkas yang dikait (=
disk).
df
(1) melaporkan penggunaan ruang disk untuk sistem
berkas.
du
(1) melaporkan penggunaan ruang disk untuk pohon
direktori.
![]() |
Tip |
---|---|
Anda dapat mengumpan keluaran dari |
Untuk konfigurasi partisi disk,
meskipun fdisk
(8) telah dianggap standar,
parted
(8) layak mendapat perhatian. "Data partisi disk",
"tabel partisi", "peta partisi", dan "label disk" semuanya sinonim.
PC yang lebih tua menggunakan skema Master Boot Record (MBR) klasik untuk menyimpan data partisi disk di sektor pertama, yaitu, sektor LBA 0 (512 byte).
PC terbaru dengan Unified Extensible Firmware Interface (UEFI), termasuk Mac berbasis Intel, menggunakan skema GUID Partition Table (GPT) untuk menyimpan data partisi disk yang tidak terletak di sektor pertama.
Meskipun fdisk
(8) telah menjadi standar untuk alat
partisi disk, parted
(8) menggantikannya.
Tabel 9.19. Daftar paket manajemen partisi disk
paket | popcon | ukuran | deskripsi |
---|---|---|---|
util-linux
|
V:881, I:999 | 5283 | utilitas sistem lain-lain termasuk fdisk (8) dan
cfdisk (8) |
parted
|
V:417, I:568 | 122 | GNU Parted program pengubahan ukuran partisi disk |
gparted
|
V:15, I:102 | 2175 | GNOME penyunting partisi berdasarkan libparted |
gdisk
|
V:338, I:511 | 885 | penyunting partisi untuk disk hibrid GPT/MBR |
kpartx
|
V:22, I:33 | 77 | program untuk membuat pemetaan perangkat bagi partisi |
![]() |
Perhatian |
---|---|
Meskipun |
![]() |
Catatan |
---|---|
Untuk beralih antara GPT dan MBR, Anda perlu menghapus beberapa blok pertama isi disk
secara langsung (lihat Bagian 9.8.6, “Menghapus konten berkas”) dan
menggunakan " |
Meskipun konfigurasi ulang partisi atau urutan aktivasi media penyimpanan lepasan dapat menghasilkan nama yang berbeda untuk partisi, Anda dapat mengaksesnya secara konsisten. Ini juga membantu jika Anda memiliki beberapa disk dan BIOS/UEFI Anda tidak memberi mereka nama perangkat yang konsisten.
mount
(8) dengan opsi "-U
" dapat
mengait perangkat blok menggunakan UUID, bukan
menggunakan nama berkas seperti "/dev/sda3
".
"/etc/fstab
" (lihat fstab
(5)) dapat
menggunakan UUID.
Boot loader (Bagian 3.1.2, “Tahap 2: boot loader”) dapat menggunakan UUID juga.
![]() |
Tip |
---|---|
Anda dapat menjajaki UUID dari perangkat khusus
blok dengan You can also probe UUID and other information with " |
LVM2 adalah manajer volume logis untuk kernel Linux. Dengan LVM2, partisi disk dapat dibuat pada volume logis bukan harddisk fisik.
LVM membutuhkan hal-hal berikut.
dukungan device-mapper di kernel Linux (baku untuk kernel Debian)
pustaka dukungan device-mapper ruang pengguna (paket
libdevmapper*
)
perkakas LVM2 ruang pengguna (paket lvm2
)
Silakan mulai belajar LVM2 dari manpages berikut.
lvm
(8): Dasar-dasar mekanisme LVM2 (daftar semua perintah
LVM2)
lvm.conf
(5): Berkas konfigurasi untuk LVM2
lvs
(8): Melaporkan informasi tentang volume logis
vgs
(8): Melaporkan informasi tentang grup volume
pvs
(8): Melaporkan informasi tentang volume fisik
Untuk sistem berkas ext4, paket
e2fsprogs
menyediakan yang berikut.
mkfs.ext4
(8) untuk membuat sistem berkas ext4 baru
fsck.ext4
(8) untuk memeriksa dan memperbaiki sistem
berkas ext4 yang ada
tune2fs
(8) untuk mengkonfigurasi superblok dari sistem
berkas ext4
debugfs
(8) untuk debug sistem berkas ext4 interaktif. (Ini memiliki perintah
undel
untuk memulihkan berkas yang dihapus.)
Perintah mkfs
(8) dan fsck
(8)
disediakan oleh paket e2fsprogs
sebagai front-end untuk
berbagai program yang bergantung kepada sistem berkas
(mkfs.fstype
dan fsck.fstype
). Untuk
sistem berkas ext4, mereka adalah
mkfs.ext4
(8) dan fsck.ext4
(8) (mereka
di-symlinked mke2fs
(8) dan e2fsck
(8)).
Perintah serupa tersedia untuk setiap sistem berkas yang didukung oleh Linux.
Tabel 9.20. Daftar paket manajemen sistem berkas
paket | popcon | ukuran | deskripsi |
---|---|---|---|
e2fsprogs
|
V:767, I:999 | 1499 | utilitas untuk sistem berkas ext2/ext3/ext4 |
btrfs-progs
|
V:44, I:72 | 5078 | utilitas untuk sistem berkas Btrfs |
reiserfsprogs
|
V:12, I:25 | 473 | utilitas untuk sistem berkas Reiserfs |
zfsutils-linux
|
V:29, I:30 | 1762 | utilitas untuk sistem berkas OpenZFS |
dosfstools
|
V:196, I:541 | 315 | utilitas untuk sistem berkas FAT. (Microsoft: MS-DOS, Windows) |
exfatprogs
|
V:29, I:371 | 301 | utilitas untuk sistem berkas exFAT yang dikelola oleh Samsung. |
exfat-fuse
|
V:5, I:120 | 73 | driver sistem berkas exFAT (Microsoft) baca/tulis untuk FUSE. |
exfat-utils
|
V:4, I:106 | 231 | utilitas untuk sistem berkas exFAT yang dikelola oleh penulis exfat-fuse. |
xfsprogs
|
V:21, I:95 | 3476 | utilitas untuk sistem berkas XFS. (SGI: IRIX) |
ntfs-3g
|
V:197, I:513 | 1474 | baca/tulis sistem berkas NTFS (Microsoft: Windows NT, …) driver untuk FUSE. |
jfsutils
|
V:0, I:8 | 1577 | utilitas untuk sistem berkas JFS. (IBM: AIX, OS/2) |
reiser4progs
|
V:0, I:2 | 1367 | utilitas untuk sistem berkas Reiser4 |
hfsprogs
|
V:0, I:4 | 394 | utilitas untuk sistem berkas HFS dan HFS Plus. (Apple: Mac OS) |
zerofree
|
V:5, I:131 | 25 | program mengisi dengan nol blok bebas dari sistem berkas ext2/3/4 |
![]() |
Tip |
---|---|
Sistem berkas Ext4 adalah sistem berkas baku untuk sistem Linux dan sangat disarankan untuk menggunakannya kecuali Anda memiliki beberapa alasan khusus untuk tidak melakukannya. Status Btrfs dapat ditemukan di wiki Debian tentang btrfs dan wiki kernel.org tentang btrfs. Hal ini diharapkan menjadi sistem berkas baku berikutnya setelah sistem berkas ext4. Beberapa alat memungkinkan akses ke sistem berkas tanpa dukungan kernel Linux (lihat Bagian 9.8.2, “Memanipulasi berkas tanpa mengait disk”). |
Perintah mkfs
(8) membuat sistem berkas pada sistem
Linux. Perintah fsck
(8) menyediakan pemeriksaan
integritas dan perbaikan sistem berkas pada sistem Linux.
Debian sekarang membakukan untuk tidak ada fsck
periodik
setelah pembuatan sistem berkas.
![]() |
Perhatian |
---|---|
Umumnya tidak aman untuk menjalankan |
![]() |
Tip |
---|---|
Anda dapat menjalankan perintah Periksa berkas di " |
Konfigurasi sistem berkas statis dasar diberikan oleh
"/etc/fstab
". Misalnya,
«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
![]() |
Tip |
---|---|
UUID (lihat Bagian 9.6.3, “Mengakses partisi menggunakan UUID”) dapat digunakan untuk
mengidentifikasi perangkat blok alih-alih nama perangkat blok normal seperti
" |
Sejak Linux 2.6.30, baku kernel adalah perilaku yang disediakan oleh opsi
"relatime
".
Lihat fstab
(5) dan mount
(8).
Karakteristik sistem berkas dapat dioptimalkan melalui superblok menggunakan
perintah tune2fs
(8).
Eksekusi "sudo tune2fs -l /dev/hda1
" menampilkan isi
superblok sistem berkas pada "/dev/hda1
".
Eksekusi "sudo tune2fs -c 50 /dev/hda1
" mengubah
frekuensi pemeriksaan sistem bermas (eksekusifsck
selama
boot-up) ke setiap 50 boot pada "/dev/hda1
".
Eksekusi "sudo tune2fs -j /dev/hda1
" menambahkan
kemampuan jurnal ke sistem berkas, yaitu konversi sistem berkas dari ext2 ke ext3 pada
"/dev/hda1
". (Lakukan ini pada sistem berkas yang tidak
dikait.)
Eksekusi "sudo tune2fs -O extents,uninit_bg,dir_index /dev/hda1
&& fsck -pf /dev/hda1
" mengubahnya dari ext3 menjadi ext4 pada
"/dev/hda1
". (Lakukan ini pada sistem berkas yang tidak
dikait.)
![]() |
Awas |
---|---|
Silakan periksa perangkat keras Anda dan baca halaman man
|
Anda dapat menguji kecepatan akses disk dari hard disk, misalnya
"/dev/hda
", dengan "hdparm -tT
/dev/hda
". Untuk beberapa hard disk yang terhubung dengan (E)IDE,
Anda dapat mempercepatnya dengan "hdparm -q -c3 -d1 -u1 -m16
/dev/hda
" dengan mengaktifkan "(E)IDE 32-bit I/O support",
memfungsikan "using_dma flag", pengaturan "interrupt-unmask flag", dan
pengaturan "multiple 16 sector I/O" (berbahaya!).
Anda dapat menguji fitur singgahan tulis dari hard disk, misalnya
"/dev/sda
", dengan "hdparm -W
/dev/sda
". Anda dapat menonaktifkan fitur singgahan tulisnya
dengan "hdparm -W 0 /dev/sda
".
Anda mungkin dapat membaca CDROM yang dicetak dengan buruk pada drive CD-ROM
berkecepatan tinggi modern dengan memperlambatnya memakai "setcd -x
2
".
Solid state drive (SSD) terdeteksi secara otomatis sekarang.
Mengurangi akses disk yang tidak perlu untuk mencegah disk aus dengan
mengait "tmpfs
" pada path data volatil di
/etc/fstab
.
Anda dapat memantau dan mencatat hard disk Anda yang patuh ke SMART dengan daemon smartd
(8).
Instal paket smartmontools
.
Identifikasi hard disk drive Anda dengan menampilkan daftar mereka memakai
df
(1).
Mari kita asumsikan hard disk drive yang akan dipantau sebagai
"/dev/hda
".
Periksa keluaran "smartctl -a /dev/hda
" untuk melihat
apakah fitur SMART benar-benar diaktifkan.
Jika tidak, aktifkan dengan "smartctl -s on -a /dev/hda
".
Fungsikan daemon smartd
(8) agar berjalan dengan cara
berikut.
jadikan bukan komentar "start_smartd=yes
" dalam berkas
"/etc/default/smartmontools
".
jalankan ulang daemon smartd
(8) dengan "sudo
systemctl restart smartmontools
".
![]() |
Tip |
---|---|
Daemon |
Aplikasi biasanya membuat berkas sementara di bawah direktori penyimpanan
sementara "/tmp
". Jika "/tmp
" tidak
menyediakan ruang yang cukup, Anda dapat menentukan direktori penyimpanan
sementara tersebut melalui variabel $TMPDIR
untuk program
yang berperilaku baik.
Untuk partisi yang dibuat pada Logical Volume Manager (LVM) (fitur Linux) pada waktu instalasi, mereka dapat diubah ukurannya dengan mudah dengan menggabungkan extent ke mereka atau memotong extent dari mereka atas beberapa perangkat penyimpanan tanpa konfigurasi ulang sistem utama.
Jika Anda memiliki partisi kosong (misalnya, "/dev/sdx
"),
Anda dapat memformatnya dengan mkfs.ext4
(1) dan
mount
(8) ke direktori di mana Anda membutuhkan lebih
banyak ruang. (Anda perlu menyalin konten data asli.)
$ 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
![]() |
Tip |
---|---|
Anda dapat mengait berkas image disk kosong (lihat Bagian 9.7.5, “Membuat berkas image disk kosong”) sebagai perangkat loop (lihat Bagian 9.7.3, “Mengait berkas image disk”). Penggunaan disk yang sebenarnya tumbuh dengan data aktual yang disimpan. |
Jika Anda memiliki direktori kosong
(misalnya,"/path/ke/dir-kosong
") pada partisi lain dengan
ruang yang dapat digunakan, Anda dapat me-mount(8) itu dengan opsi
"--bind
" ke direktori (misalnya,
"dir-kerja
") di mana Anda membutuhkan lebih banyak ruang.
$ sudo mount --bind /path/to/emp-dir work-dir
Jika Anda memiliki ruang yang dapat digunakan di partisi lain (misalnya,
"/path/ke/kosong
" dan
"/path/ke/kerja
"), Anda dapat membuat direktori di
dalamnya dan menumpuknya ke direktori lama (misalnya,
"/path/ke/lama
") di mana Anda memerlukan ruang
menggunakan OverlayFS untuk kernel Linux
3.18 atau yang lebih baru (Debian Stretch 9.0 atau yang lebih baru).
$ sudo mount -t overlay overlay \ -olowerdir=/path/to/old-dir,upperdir=/path/to/empty,workdir=/path/to/work
Di sini, "/path/ke/kosong
" dan
"/path/ke/kerja
" harus berada di partisi yang mendukung
RW untuk menulis di "/path/ke/lama
".
![]() |
Perhatian |
---|---|
Ini adalah metode yang usang. Beberapa perangkat lunak mungkin tidak berfungsi dengan baik dengan "symlink ke direktori". Sebaliknya, gunakan pendekatan "mounting" yang dijelaskan di atas. |
Jika Anda memiliki direktori kosong (misalnya,
"/path/ke/dir-kosong
") di partisi lain dengan ruang yang
dapat digunakan, Anda dapat membuat symlink ke direktori dengan
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
![]() |
Awas |
---|---|
Jangan gunakan "symlink ke direktori" untuk direktori yang dikelola oleh
sistem seperti " |
Di sini, kita membahas manipulasi image disk.
Berkas image disk, "disk.img
", dari perangkat yang tidak
dikait, misalnya, SCSI kedua atau serial ATA drive
"/dev/sdb
", dapat dibuat menggunakan
cp
(1) atau dd
(1) dengan cara berikut.
# cp /dev/sdb disk.img # dd if=/dev/sdb of=disk.img
Image disk dari master boot record
(MBR) PC tradisional (lihat Bagian 9.6.2, “Konfigurasi partisi disk”) yang berada di sektor pertama
pada disk IDE utama dapat dibuat menggunakan dd
(1) dengan
yang berikut.
# dd if=/dev/hda of=mbr.img bs=512 count=1 # dd if=/dev/hda of=mbr-nopart.img bs=446 count=1 # dd if=/dev/hda of=mbr-part.img skip=446 bs=1 count=66
"mbr.img
": MBR dengan tabel partisi
"mbr-nopart.img
": MBR tanpa tabel partisi
"mbr-part.img
": Tabel partisi MBR saja
Jika Anda memiliki perangkat SCSO atau serial ATA sebagai boot disk, ganti
"/dev/hda
" dengan "/dev/sda
".
Jika Anda membuat image partisi disk dari disk asli, ganti
"/dev/hda
" dengan "/dev/hda1
" dll.
Berkas image disk, "disk.img
" dapat ditulis ke perangkat
yang dikait, misalnya, drive SCSI kedua "/dev/sdb
" dengan
ukuran yang cocok, dengan yang berikut ini.
# dd if=disk.img of=/dev/sdb
Demikian pula, berkas image partisi disk, "partition.img
"
dapat ditulis ke partisi yang tidak dikait, misalnya, partisi pertama dari
drive SCSI kedua "/dev/sdb1
" dengan ukuran yang cocok,
memakai yang berikut ini.
# dd if=partition.img of=/dev/sdb1
Image disk "partition.img
" yang berisi image partisi
tunggal dapat dikait dan dilepas kait dengan menggunakan perangkat loop sebagai berikut.
# 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
Ini dapat disederhanakan sebagai berikut.
# mkdir -p /mnt/loop0 # mount -t auto -o loop partition.img /mnt/loop0 ...hack...hack...hack # umount partition.img
Setiap partisi image disk "disk.img
" yang berisi beberapa
partisi dapat dikait dengan menggunakan perangkat
loop.
# 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
Atau, efek serupa dapat dilakukan dengan menggunakan device mapper yang dibuat oleh
kpartx
(8) dari paket kpartx
sebagai
berikut.
# 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
Sebuah berkas image disk, "disk.img
" dapat dibersihkan
dari semua berkas yang dihapus menjadi image sparse bersih
"new.img
" dengan berikut.
# 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
Jika "disk.img
" berada dalam ext2, ext3, atau ext4, Anda
juga dapat menggunakan zerofree
(8) dari paket
zerofree
sebagai berikut.
# losetup --show -f disk.img /dev/loop0 # zerofree /dev/loop0 # cp --sparse=always disk.img new.img # losetup -d /dev/loop0
Image disk kosong "disk.img
" yang dapat tumbuh hingga
5GiB dapat dibuat menggunakan dd
(1) sebagai berikut.
$ dd bs=1 count=0 if=/dev/zero of=disk.img seek=5G
Alih-alih menggunakan dd
(1),
fallocate
(8) yang khusus dapat digunakan di sini.
Anda dapat membuat sistem berkas ext4 pada image disk
"disk.img
" ini menggunakan perangkat loop sebagai berikut.
# 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
Untuk "disk.img
", ukuran berkasnya adalah 5,0 GiB dan
penggunaan disk yang sebenarnya hanya 83MiB. Perbedaan ini dimungkinkan
karena ext4 dapat menyimpan berkas sparse.
![]() |
Tip |
---|---|
Penggunaan disk sebenarnya dari berkas sparse tumbuh dengan data yang ditulis ke sana. |
Menggunakan operasi serupa pada perangkat yang dibuat oleh perangkat loop atau device mapper sebagai Bagian 9.7.3, “Mengait berkas image disk”, Anda dapat mempartisi image disk
"disk.img
" ini menggunakan parted
(8)
atau fdisk
(8), dan dapat membuat sistem berkas di atasnya
menggunakan mkfs.ext4
(8), mkswap
(8),
dll.
Berkas image ISO9660,
"cd.iso
", dari pohon direktori sumber di
"direktori_sumber
" dapat dibuat menggunakan
genisoimage
(1) yang disediakan oleh cdrkit dengan berikut.
# genisoimage -r -J -T -V volume_id -o cd.iso source_directory
Demikian pula, berkas image ISO9660 yang dapat di-boot,
"cdboot.iso
", dapat dibuat dari pohon direktori mirip
debian-installer
di "direktori_sumber
"
dengan berikut.
# 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
Di sini boot loader Isolinux (lihat Bagian 3.1.2, “Tahap 2: boot loader”) digunakan untuk boot.
Anda dapat menghitung nilai md5sum dan membuat image ISO9660 langsung dari perangkat CD-ROM sebagai berikut.
$ 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
![]() |
Awas |
---|---|
Anda harus hati-hati menghindari kutu read ahead sistem berkas ISO9660 Linux seperti di atas untuk mendapatkan hasil yang tepat. |
![]() |
Tip |
---|---|
DVD hanyalah suatu CD besar bagi |
Anda dapat menemukan perangkat yang dapat digunakan dengan berikut ini.
# wodim --devices
Kemudian CD-R kosong dimasukkan ke drive CD, dan berkas image ISO9660,
"cd.iso
" ditulis ke perangkat ini, misalnya,
"/dev/hda
", menggunakan wodim
(1)
dengan berikut ini.
# wodim -v -eject dev=/dev/hda cd.iso
Jika CD-RW digunakan alih-alih CD-R, lakukan ini sebagai gantinya dengan yang berikut ini.
# wodim -v -eject blank=fast dev=/dev/hda cd.iso
![]() |
Tip |
---|---|
Jika sistem desktop Anda mengait CD secara otomatis, lepas kaitnya dengan
" |
Jika "cd.iso
" berisi image ISO9660, maka berikut ini
secara manual mengaitnya ke "/cdrom
".
# mount -t iso9660 -o ro,loop cd.iso /cdrom
![]() |
Tip |
---|---|
Sistem desktop modern dapat mengait media lepasan seperti CD terformat ISO9660 secara otomatis (lihat Bagian 10.1.7, “Perangkat penyimpanan lepasan”). |
Di sini, kita membahas manipulasi langsung data biner pada media penyimpanan.
Metode tampilan data biner yang paling dasar adalah dengan menggunakan
perintah "od -t x1
".
Tabel 9.21. Daftar paket yang menampilkan dan menyunting data biner
paket | popcon | ukuran | deskripsi |
---|---|---|---|
coreutils
|
V:880, I:999 | 18307 | paket dasar yang memiliki od (1) untuk mencurah berkas
(HEX, ASCII, OCTAL, …) |
bsdmainutils
|
V:11, I:315 | 17 | paket utilitas yang memiliki hd (1) untuk mencurah berkas
(HEX, ASCII, OCTAL, …) |
hexedit
|
V:0, I:9 | 73 | editor dan penampil biner (HEKSA, ASCII) |
bless
|
V:0, I:2 | 924 | editor heksadesimal berfitur lengkap (GNOME) |
okteta
|
V:1, I:12 | 1585 | editor heksadesimal berfitur lengkap (KDE4) |
ncurses-hexedit
|
V:0, I:1 | 130 | editor dan penampil biner (HEKSA, ASCII, EBCDIC) |
beav
|
V:0, I:0 | 137 | editor dan penampil biner (HEKSA, ASCII, EBCDIC, OKTAL, …) |
![]() |
Tip |
---|---|
HEX digunakan sebagai akronim untuk format heksadesimal dengan basis 16. OCTAL adalah untuk format oktal dengan basis 8. ASCII adalah untuk American Standard Code for Information Interchange, yaitu kode teks bahasa Inggris normal. EBCDIC adalah untuk Extended Binary Coded Decimal Interchange Code yang digunakan pada sistem operasi mainframe IBM. |
Ada alat untuk membaca dan menulis berkas tanpa mengait disk.
Sistem RAID perangkat lunak yang ditawarkan oleh kernel Linux menyediakan redundansi data di tingkat sistem berkas kernel untuk mencapai tingkat keandalan penyimpanan yang tinggi.
Ada alat untuk menambahkan redundansi data ke berkas di tingkat program aplikasi untuk mencapai tingkat keandalan penyimpanan yang tinggi juga.
Ada alat untuk pemulihan berkas data dan analisis forensik.
Tabel 9.24. Daftar paket untuk pemulihan berkas data dan analisis forensik
paket | popcon | ukuran | deskripsi |
---|---|---|---|
testdisk
|
V:2, I:28 | 1413 | utilitas untuk pemindaian partisi dan pemulihan disk |
magicrescue
|
V:0, I:2 | 255 | utilitas untuk memulihkan berkas dengan mencari byte ajaib |
scalpel
|
V:0, I:3 | 89 | frugal, pemahat berkas berkinerja tinggi |
myrescue
|
V:0, I:2 | 83 | menyelamatkan data dari harddisk yang rusak |
extundelete
|
V:0, I:8 | 147 | utilitas untuk membatalkan penghapusan berkas pada sistem berkas ext3/4 |
ext4magic
|
V:0, I:4 | 233 | utilitas untuk membatalkan penghapusan berkas pada sistem berkas ext3/4 |
ext3grep
|
V:0, I:2 | 293 | alat untuk membantu memulihkan berkas yang dihapus pada sistem berkas ext3 |
scrounge-ntfs
|
V:0, I:2 | 50 | program pemulihan data untuk sistem berkas NTFS |
gzrt
|
V:0, I:0 | 33 | toolkit pemulihan gzip |
sleuthkit
|
V:3, I:24 | 1671 | alat untuk analisis forensik. (Sleuthkit) |
autopsy
|
V:0, I:1 | 1026 | antarmuka grafis ke SleuthKit |
foremost
|
V:0, I:5 | 102 | aplikasi forensik untuk memulihkan data |
guymager
|
V:0, I:0 | 1021 | alat pembuatan citra forensik berbasis Qt |
dcfldd
|
V:0, I:3 | 114 | versi dd yang disempurnakan untuk forensik dan keamanan |
![]() |
Tip |
---|---|
Anda dapat membatalkan penghapusan berkas pada sistem berkas ext2
menggunakan perintah |
Ketika data terlalu besar untuk dicadangkan sebagai satu berkas, Anda dapat membuat cadangan kontennya setelah membaginya menjadi, misalnya potongan 2000MiB dan menggabungkan potongan-potongan itu kembali ke berkas asli nanti.
$ split -b 2000m large_file $ cat x* >large_file
![]() |
Perhatian |
---|---|
Pastikan Anda tidak memiliki berkas yang dimulai dengan
" |
Untuk menghapus isi berkas seperti berkas log, jangan gunakan
rm
(1) untuk menghapus berkas dan kemudian membuat berkas
kosong baru, karena berkas mungkin masih diakses dalam interval antara
perintah. Berikut ini adalah cara yang aman untuk menghapus isi berkas.
$ :>file_to_be_cleared
Perintah berikut membuat berkas dummy atau kosong.
$ 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
Anda harus menemukan berkas berikut.
"5kb.file
" adalah nol sebanyak 5KB.
"7mb.file
" adalah 7MB data acak.
"zero.file
" mungkin suatu berkas 0 byte. Jika ada,
mtime
-nya diperbarui sedangkan konten dan panjangnya
dipertahankan.
"alwayszero.file
" selalu merupakan berkas 0 byte. Jika
ada, mtime
-nya diperbarui dan kontennya diatur ulang.
Ada beberapa cara untuk benar-benar menghapus data dari seluruh perangkat
seperti hard disk, misalnya, USB memory stick di
"/dev/sda
".
![]() |
Perhatian |
---|---|
Periksa lokasi memory stick USB Anda dengan |
Hapus semua konten disk dengan mengatur ulang data ke 0 dengan yang berikut ini.
# dd if=/dev/zero of=/dev/sda
Hapus semuanya dengan menimpa dengan data acak sebagai berikut.
# dd if=/dev/urandom of=/dev/sda
Hapus semuanya dengan menimpa dengan data acak dengan sangat efisien sebagai berikut.
# shred -v -n 1 /dev/sda
Anda dapat menggunakan badblocks
(8) dengan opsi
-t random
.
Karena dd
(1) tersedia dari shell dari banyak CD Linux
bootable seperti Debian installer CD, Anda dapat menghapus sistem terpasang
Anda sepenuhnya dengan menjalankan perintah menghapus dari media tersebut
pada sistem hard disk, misalnya, "/dev/hda
",
"/dev/sda
", dll.
Area yang tidak digunakan pada hard disk (atau usb memory stick), misalnya
"/dev/sdb1
" mungkin masih berisi data yang terhapus
karena mereka hanya diputus hubungannya dari sistem berkas. Ini dapat
dibersihkan dengan menimpa mereka.
# 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
![]() |
Awas |
---|---|
Biasanya cukup baik untuk memory stick USB Anda. Tapi ini tidak sempurna. Sebagian besar nama berkas yang terhapus dan atributnya mungkin disembunyikan dan tetap berada dalam sistem berkas. |
Bahkan jika Anda secara tidak sengaja menghapus suatu berkas, selama berkas itu masih digunakan oleh beberapa aplikasi (mode baca atau tulis), adalah mungkin untuk memulihkan berkas tersebut.
Misalnya, coba yang berikut ini
$ 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
Jalankan pada terminal lain (ketika Anda memiliki paket
lsof
) sebagai berikut.
$ 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
Berkas dengan hardlink dapat diidentifikasi dengan "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
Baik "baz
" dan "foo
" memiliki cacah
tautan "2" (>1) yang menunjukkan bahwa mereka memiliki hardlink. Nomor
inoda mereka adalah sama-sama "2738404". Ini
berarti mereka adalah berkas yang sama yang di-hardlink. Jika Anda tidak
kebetulan menemukan semua berkas yang di-hardlink secara kebetulan, Anda
dapat mencarinya dengan inode, misalnya,
"2738404" sebagai berikut.
# find /path/to/mount/point -xdev -inum 2738404
Dengan akses fisik ke PC Anda, siapa pun dapat dengan mudah mendapatkan hak istimewa root dan mengakses semua berkas di PC Anda (lihat Bagian 4.6.4, “Mengamankan kata sandi root”). Ini berarti bahwa sistem kata sandi masuk tidak dapat mengamankan data pribadi dan sensitif Anda terhadap kemungkinan pencurian PC Anda. Anda harus menerapkan teknologi enkripsi data untuk melakukannya. Meskipun GNU privacy guard (lihat Bagian 10.3, “Infrastruktur keamanan data”) dapat mengenkripsi berkas, dibutuhkan beberapa upaya pengguna.
Dm-crypt memfasilitasi enkripsi data otomatis melalui modul kernel Linux asli dengan upaya pengguna minimal menggunakan device-mapper.
Tabel 9.25. Daftar utilitas enkripsi data
paket | popcon | ukuran | deskripsi |
---|---|---|---|
cryptsetup
|
V:19, I:79 | 417 | utilitas untuk perangkat blok terenkripsi (dm-crypt / LUKS) |
cryptmount
|
V:2, I:3 | 231 | utilitas untuk perangkat blok terenkripsi (dm-crypt / LUKS) dengan fokus pada mount/unmount oleh pengguna normal |
fscrypt
|
V:0, I:1 | 5520 | utilitas untuk enkripsi sistem berkas Linux (fscrypt) |
libpam-fscrypt
|
V:0, I:0 | 5519 | Modul PAM untuk enkripsi sistem berkas Linux (fscrypt) |
![]() |
Perhatian |
---|---|
Enkripsi memakan waktu CPU dll. Data terenkripsi menjadi tidak dapat diakses jika kata sandinya hilang. Tolong pertimbangkan manfaat dan biayanya. |
![]() |
Catatan |
---|---|
Seluruh sistem Debian dapat dipasang pada disk terenkripsi oleh debian-installer (lenny atau yang lebih baru) menggunakan dm-crypt/LUKS dan initramfs. |
![]() |
Tip |
---|---|
Lihat Bagian 10.3, “Infrastruktur keamanan data” untuk utilitas enkripsi ruang pengguna: GNU Privacy Guard. |
Anda dapat mengenkripsi isi perangkat massa lepasan, misalnya USB memory
stick pada "/dev/sdx
", menggunakan dm-crypt/LUKS Anda
cukup memformatnya sebagai berikut.
# 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
Kemudian, dapat dikait seperti biasa pada
"/media/nama_pengguna/label_disk
",
kecuali untuk menanyakan kata sandi (lihat Bagian 10.1.7, “Perangkat penyimpanan lepasan” ) di bawah lingkungan desktop modern
menggunakan paket udisks2
. Perbedaannya adalah bahwa
setiap data yang ditulis padanya dienkripsi. Entri kata sandi dapat
diotomatisasi menggunakan keyring (lihat Bagian 10.3.6, “Ring kunci kata sandi”).
Anda dapat juga memformat media dalam sistem berkas yang berbeda, misalnya,
ext4 dengan "mkfs.ext4 /dev/mapper/sdx1
". Jika btrfs
digunakan sebagai gantinya, paket udisks2-btrfs
perlu
dipasang. Untuk sistem berkas ini, kepemilikan dan izin berkas mungkin
perlu dikonfigurasi.
Misalnya, partisi disk terenkripsi yang dibuat dengan dm-crypt/LUKS pada
"/dev/sdc5
" oleh Debian Installer dapat dikait ke
"/mnt
" sebagai berikut:
$ 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 mendistribusikan kernel Linux modular sebagai paket untuk arsitektur yang didukung.
Jika Anda membaca dokumentasi ini, Anda mungkin tidak perlu mengkompilasi kernel Linux sendiri.
Banyak fitur Linux dapat dikonfigurasi melalui parameter kernel sebagai berikut.
Parameter kernel yang diinisialisasi oleh bootloader (lihat Bagian 3.1.2, “Tahap 2: boot loader”)
Parameter kernel diubah oleh sysctl
(8) saat runtime untuk
yang dapat diakses melalui sysfs (lihat Bagian 1.2.12, “procfs dan sysfs”)
Parameter modul yang ditetapkan oleh argumen modprobe
(8)
ketika modul diaktifkan (lihat Bagian 9.7.3, “Mengait berkas image disk”)
Lihat "Panduan pengguna dan administrator kernel Linux » Parameter baris perintah kernel" untuk detailnya.
Sebagian besar program normal tidak
memerlukan header kernel dan pada kenyataannya dapat rusak jika Anda
menggunakannya secara langsung untuk kompilasi. Mereka harus dikompilasi
terhadap header di "/usr/include/linux
" dan
"/usr/include/asm
" yang disediakan oleh paket
libc6-dev
(dibuat dari paket sumber
glibc
) pada sistem Debian.
![]() |
Catatan |
---|---|
Untuk mengompail beberapa program kernel-spesifik seperti modul kernel dari
sumber eksternal dan daemon automounter ( |
Debian memiliki metode sendiri untuk mengompail kernel dan modul terkait.
Tabel 9.26. Daftar paket kunci yang akan dipasang untuk rekompilasi kernel pada sistem Debian
paket | popcon | ukuran | deskripsi |
---|---|---|---|
build-essential
|
I:480 | 17 | paket penting untuk membangun paket Debian: make ,
gcc , … |
bzip2
|
V:166, I:970 | 112 | utilitas kompresi dan dekompresi untuk berkas bz2 |
libncurses5-dev
|
I:71 | 6 | pustaka dan dokumen pengembang untuk ncurses |
git
|
V:351, I:549 | 46734 | git: sistem kontrol revisi terdistribusi yang digunakan oleh kernel Linux |
fakeroot
|
V:29, I:486 | 224 | menyediakan lingkungan fakeroot untuk membangun paket sebagai non-root |
initramfs-tools
|
V:430, I:989 | 113 | alat untuk membangun initramfs (spesifik Debian) |
dkms
|
V:74, I:162 | 196 | dynamic kernel module support (DKMS) (generik) |
module-assistant
|
V:0, I:19 | 406 | alat pembantu untuk membuat paket modul (spesifik Debian) |
devscripts
|
V:6, I:40 | 2658 | skrip pembantu untuk pengelola Paket Debian (spesifik Debian) |
Jika Anda menggunakan initrd
dalam Bagian 3.1.2, “Tahap 2: boot loader”, pastikan untuk membaca informasi
terkait dalam initramfs-tools
(8),
update-initramfs
(8), mkinitramfs
(8),
dan initramfs.conf
(5).
![]() |
Awas |
---|---|
Jangan menempatkan symlink ke direktori di pohon sumber (misalnya
" |
![]() |
Catatan |
---|---|
Ketika mengompail kernel Linux terbaru pada sistem dynamic kernel module support (DKMS) adalah kerangka kerja independen distribusi baru yang dirancang untuk memungkinkan modul kernel individu ditingkatkan tanpa mengubah seluruh kernel. Ini digunakan untuk pemeliharaan modul di luar pohon. Ini juga membuatnya sangat mudah untuk membangun kembali modul saat Anda meningkatkan kernel. |
Untuk membangun paket biner kernel ubahan dari sumber kernel hulu, Anda
mesti memakai target "deb-pkg
" yang disediakan olehnya.
$ 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
![]() |
Tip |
---|---|
Paket linux-source-versi menyediakan sumber kernel
Linux dengan patch Debian sebagai
" |
Untuk membangun paket biner tertentu dari paket sumber kernel Debian, Anda
harus menggunakan target
"binary-arch_arsitektur_featureset_flavour
"
dalam "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
Lihat informasi lebih lanjut:
Wiki Debian: KernelFAQ
Wiki Debian: DebianKernel
Buku Pegangan Kernel Debian Linux: https://kernel-handbook.debian.net
Driver perangkat keras adalah kode yang berjalan pada CPU utama dari sistem
target. Sebagian besar driver perangkat keras tersedia sebagai perangkat
lunak bebas sekarang dan termasuk dalam paket kernel Debian normal di area
main
.
Firmware adalah kode atau data yang dimuat pada perangkat yang melekat pada sistem target (misalnya, microcode CPU, kode rendering yang berjalan pada GPU, atau data FPGA / CPLD, …). Beberapa paket firmware tersedia sebagai perangkat lunak bebas tetapi banyak paket firmware tidak tersedia sebagai perangkat lunak bebas karena mengandung data biner tanpa sumber. Menginstal data firmware ini sangat penting bagi perangkat untuk berfungsi seperti yang diharapkan.
Paket data firmware yang berisi data yang dimuat ke memori volatile pada perangkat target.
firmware-linux-free (main
)
firmware-linux-nonfree (non-free-firmware
)
firmware-linux-* (non-free-firmware
)
*-firmware (non-free-firmware
)
intel-microcode (non-free-firmware
)
amd64-microcode (non-free-firmware
)
Paket program pembaruan firmware yang memperbarui data pada memori non-volatile pada perangkat target.
fwupd (main
): Daemon
pembaruan firmware yang mengunduh data firmware dari Linux Vendor Firmware Service.
gnome-firmware (main
): Front end GTK untuk fwupd
plasma-discover-backend-fwupd (main
): Front end Qt untuk
fwupd
Harap diperhatikan bahwa akses ke paket non-free-firmware
disediakan oleh media instalasi resmi untuk memberikan pengalaman instalasi
fungsional kepada pengguna sejak Debian 12 Bookworm. Area
non-free-firmware
dijelaskan di Bagian 2.1.5, “Dasar-dasar arsip Debian”.
Harap perhatikan juga bahwa data firmware yang diunduh oleh fwupd dari Linux Vendor Firmware Service dan
dimuat ke kernel Linux yang berjalan mungkin non-free
.
Penggunaan sistem tervirtualisasi memungkinkan kita untuk menjalankan beberapa instansi sistem secara simultan pada satu perangkat keras.
![]() |
Tip |
---|---|
Ada beberapa platform alat virtualisasi dan emulasi.
Paket emulasi perangkat keras lengkap seperti yang dipasang oleh metapackage game-emulator
Sebagian besar emulasi tingkat CPU dengan beberapa emulasi perangkat I/O seperti QEMU
Sebagian besar virtualisasi tingkat CPU dengan beberapa emulasi perangkat I/O seperti Kernel-based Virtual Machine (KVM)
Virtualisasi kontainer tingkat OS dengan dukungan tingkat kernel seperti
LXC (Linux Containers), Docker, systemd-nspawn
(1), ...
Virtualisasi akses sistem berkas tingkat OS dengan penimpaan pemanggilan pustaka sistem pada path berkas seperti chroot
Virtualisasi akses sistem berkas tingkat OS dengan penimpaan panggilan pustaka sistem pada kepemilikan berkas seperti fakeroot
Emulasi API OS seperti Wine
Virtualisasi tingkat interpreter dengan pilihan yang dapat dieksekusi dan penimpaan pustaka run-time seperti virtualenv dan venv untuk Python
The container virtualization uses Bagian 4.7.5, “Fitur keamanan Linux” and is the backend technology of Bagian 7.7, “Sandbox”.
Berikut adalah beberapa paket untuk membantu Anda menyiapkan sistem tervirtualisasi.
Tabel 9.27. Daftar alat virtualisasi
paket | popcon | ukuran | deskripsi |
---|---|---|---|
coreutils
|
V:880, I:999 | 18307 | GNU core utilities which contain chroot (8) |
systemd-container
|
V:53, I:61 | 1330 | perkakas container/nspawn systemd yang memuat
systemd-nspawn (1) |
schroot
|
V:5, I:7 | 2579 | alat khusus untuk mengeksekusi paket biner Debian di chroot |
sbuild
|
V:1, I:3 | 243 | alat untuk membangun paket biner Debian dari sumber Debian |
debootstrap
|
V:5, I:54 | 314 | mem-bootstrap sistem Debian dasar (ditulis dalam sh) |
cdebootstrap
|
V:0, I:1 | 115 | mem-bootstrap sistem Debian (ditulis dalam C) |
cloud-image-utils
|
V:1, I:17 | 66 | cloud image management utilities |
cloud-guest-utils
|
V:3, I:13 | 71 | cloud guest utilities |
virt-manager
|
V:11, I:44 | 2296 | Virtual Machine Manager: aplikasi desktop untuk mengelola mesin virtual |
libvirt-clients
|
V:46, I:65 | 1241 | program untuk pustaka libvirt |
incus
|
V:0, I:0 | 56209 | Incus: system container and virtual machine manager (for Debian 13 "Trixie") |
lxd
|
V:0, I:0 | 52119 | LXD: system container and virtual machine manager (for Debian 12 "Bookworm") |
podman
|
V:14, I:16 | 41948 | podman: engine to run OCI-based containers in Pods |
podman-docker
|
V:0, I:0 | 249 | engine to run OCI-based containers in Pods - wrapper for docker |
docker.io
|
V:41, I:43 | 150003 | docker: Linux container runtime |
games-emulator
|
I:0 | 21 | game-emulator: Emulator Debian untuk permainan |
bochs
|
V:0, I:0 | 6956 | Bochs: Emulator PC IA-32 |
qemu
|
I:14 | 97 | QEMU: emulator prosesor generik yang cepat |
qemu-system
|
I:22 | 66 | QEMU: biner emulasi sistem penuh |
qemu-user
|
V:1, I:6 | 93760 | QEMU: biner emulasi mode pengguna |
qemu-utils
|
V:12, I:106 | 10635 | QEMU: utilitas |
qemu-system-x86
|
V:33, I:91 | 58140 | KVM: virtualisasi penuh pada perangkat keras x86 dengan virtualisasi yang dibantu perangkat keras |
virtualbox
|
V:6, I:8 | 130868 | VirtualBox: solusi virtualisasi x86 pada i386 dan amd64 |
gnome-boxes
|
V:1, I:7 | 6691 | Boxes: Simple GNOME app to access virtual systems |
xen-tools
|
V:0, I:2 | 719 | alat untuk mengelola server virtual XEN Debian |
wine
|
V:13, I:60 | 132 | Wine: Implementasi API Windows (keluarga standar) |
dosbox
|
V:1, I:15 | 2696 | DOSBox: emulator x86 dengan grafis Tandy/Herc/CGA/EGA/VGA/SVGA, suara, dan DOS |
lxc
|
V:9, I:12 | 25890 | Linux containers user space tools |
python3-venv
|
I:88 | 6 | venv untuk membuat lingkungan python virtual (pustaka sistem) |
python3-virtualenv
|
V:9, I:50 | 356 | virtualenv untuk membuat lingkungan python virtual yang terisolasi |
pipx
|
V:3, I:19 | 3324 | pipx untuk memasang aplikasi python di lingkungan yang terisolasi |
Lihat artikel Wikipedia Perbandingan mesin virtual platform untuk perbandingan detail solusi virtualisasi platform yang berbeda.
![]() |
Catatan |
---|---|
Kernel Debian baku mendukung KVM sejak
|
Aliran kerja umum untuk virtualisasi melibatkan beberapa langkah.
Buat sistem berkas kosong (pohon berkas atau image disk).
Pohon berkas dapat dibuat oleh "mkdir -p
/path/ke/chroot
".
Berkas image disk mentah dapat dibuat dengan dd
(1) (lihat
Bagian 9.7.1, “Membuat berkas image disk” dan Bagian 9.7.5, “Membuat berkas image disk kosong”).
qemu-img
(1) dapat digunakan untuk membuat dan
mengkonversi berkas image disk yang didukung oleh QEMU.
Format berkas mentah dan VMDK dapat digunakan sebagai format umum di antara alat virtualisasi.
Mount image disk dengan mount
(8) ke sistem berkas
(opsional).
Untuk berkas image disk mentah, kait itu sebagai perangkat loop atau perangkat device mapper (lihat Bagian 9.7.3, “Mengait berkas image disk”).
Untuk image disk yang didukung oleh QEMU, kait mereka sebagai perangkat blok jaringan (lihat Bagian 9.11.3, “Mengait berkas image disk virtual”).
Mengisi sistem berkas target dengan data sistem yang diperlukan.
Penggunaan program seperti debootstrap
dan
cdebootstrap
membantu proses ini (lihat Bagian 9.11.4, “Sistem chroot”).
Gunakan installer OS di bawah emulasi sistem penuh.
Menjalankan program di bawah lingkungan yang tervirtualisasi.
chroot menyediakan lingkungan virtual dasar yang cukup untuk mengkompilasi program, menjalankan aplikasi konsol, dan menjalankan daemon di dalamnya.
QEMU menyediakan emulasi CPU lintas platform.
QEMU dengan KVM menyediakan emulasi sistem penuh dengan virtualisasi yang dibantu perangkat keras.
VirtualBox menyediakan emulasi sistem penuh pada i386 dan amd64 dengan atau tanpa virtualisasi yang dibantu perangkat keras.
Untuk berkas image disk mentah, lihat Bagian 9.7, “Image disk”.
Untuk berkas image disk virtual lainnya, Anda dapat menggunakan
qemu-nbd
(8) untuk mengekspornya menggunakan protokol
perangkat blok jaringan dan
memasangnya menggunakan modul kernel nbd
.
qemu-nbd
(8) mendukung format disk yang didukung oleh
QEMU: mentah, qcow2,
qcow, vmdk, vdi, bochs, cow (user-mode
Linux copy-on-write), parallels, dmg, cloop, vpc, vvfat (virtual VFAT), dan host_device.
Perangkat blok jaringan dapat
mendukung partisi dengan cara yang sama seperti perangkat loop (lihat Bagian 9.7.3, “Mengait berkas image disk”). Anda dapat mengait partisi
pertama dari "disk.img
" sebagai berikut.
# modprobe nbd max_part=16 # qemu-nbd -v -c /dev/nbd0 disk.img ... # mkdir /mnt/part1 # mount /dev/nbd0p1 /mnt/part1
![]() |
Tip |
---|---|
Anda dapat mengekspor hanya partisi pertama dari
" |
Jika Anda ingin mencoba lingkungan Debian baru dari konsol terminal, saya
sarankan Anda untuk menggunakan chroot. Hal
ini memungkinkan Anda untuk menjalankan aplikasi konsol Debian
unstable
dan testing
tanpa risiko yang
biasanya terkait dan tanpa reboot. chroot
(8) adalah cara
yang paling dasar.
![]() |
Perhatian |
---|---|
Contoh di bawah ini mengasumsikan sistem induk dan sistem chroot berbagi
arsitektur CPU |
Although you can manually create a chroot
(8) environment
using debootstrap
(1), this requires non-trivial efforts.
Paket sbuild untuk membangun paket Debian dari
sumber menggunakan lingkungan chroot yang dikelola oleh paket schroot. Ini datang dengan skrip pembantu
sbuild-createchroot
(1). Mari kita pelajari cara kerjanya
dengan menjalankannya sebagai berikut.
$ sudo mkdir -p /srv/chroot $ sudo sbuild-createchroot -v --include=eatmydata,ccache unstable /srv/chroot/unstable-amd64-sbuild http://deb.debian.org/debian ...
Anda melihat bagaimana debootstrap
(8) mengisi data sistem
untuk lingkungan unstable
di bawah
"/srv/chroot/unstable-amd64-sbuild
" untuk sistem build
minimal.
Anda dapat masuk ke lingkungan ini menggunakan
schroot
(1).
$ sudo schroot -v -c chroot:unstable-amd64-sbuild
Anda melihat bagaimana shell sistem berjalan di bawah lingkungan
unstable
dibuat.
![]() |
Catatan |
---|---|
Berkas " |
![]() |
Catatan |
---|---|
Beberapa program di bawah chroot mungkin memerlukan akses ke lebih banyak
berkas dari sistem induk untuk berfungsi daripada yang disediakan
|
![]() |
Tip |
---|---|
Paket |
![]() |
Tip |
---|---|
Perintah |
Jika Anda ingin mencoba lingkungan Desktop GUI baru dari OS apa pun, saya
sarankan Anda untuk menggunakan QEMU atau KVM pada suatu sistem Debian stable
untuk menjalankan beberapa sistem desktop dengan aman menggunakan virtualisasi. Ini memungkinkan Anda untuk
menjalankan aplikasi desktop apa pun termasuk Debian
unstable
dan testing
tanpa risiko
biasa yang terkait dengan mereka dan tanpa reboot.
Karena QEMU murni sangat lambat, disarankan untuk mempercepatnya dengan KVM ketika sistem host mendukungnya.
Virtual Machine Manager juga
dikenal sebagai virt-manager
adalah alat GUI yang nyaman
untuk mengelola mesin virtual KVM melalui libvirt.
Image disk virtual "virtdisk.qcow2
" yang berisi sistem
Debian untuk QEMU dapat dibuat menggunakan
debian-installer: CD kecil
sebagai berikut.
$ 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 ...
![]() |
Tip |
---|---|
Menjalankan distribusi GNU/Linux lainnya seperti Ubuntu dan Fedora di bawah virtualisasi adalah cara yang bagus untuk mempelajari tips konfigurasi. OS proprietari lainnya dapat dijalankan dengan baik di bawah virtualisasiGNU/Linux ini juga. |
Lihat tips lainnya di Wiki Debian: SystemVirtualization.
[2] Contoh penyesuaian yang lebih rumit: "Vim Galore", "sensible.vim", ...
[3] vim-pathogen populer.