بیشک یکی از بهترین سیستم عامل ها و مادر کالی لینوکس سیستم عامل Debian میباشد که برای کار در این حوزه و همچنین برای حرفه ای تر شدن در حوزه امنیت سایبری، نیاز است که در سیستم عامل Debian حرفه ای باشید. از این رو کتاب Debian Reference نسخه 2021 را برای شما مهیا کردهام تا در این راه با سرعت بیشتری پیش بروید. این کتاب معتبر، کتاب آموزش رسمی سایت Debian میباشد.
نکته: این کتاب به صورت PDF میباشد.
مشخصات کتاب:
زبان: انگلیسی
تعداد صفحات: 302
نویسندگان: Osamu Aoki
فرمت فایل دانلودی: PDF
جهت دانلود کتاب میتوانید از لینک زیر اقدام نمایید:
1 GNU/Linux tutorials 1
1.1 Console basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.1 The shell prompt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.2 The shell prompt under X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.3 The root account . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.4 The root shell prompt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.5 GUI system administration tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.6 Virtual consoles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.7 How to leave the command prompt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.8 How to shutdown the system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1.9 Recovering a sane console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1.10 Additional package suggestions for the newbie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1.11 An extra user account . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.1.12 sudo configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.1.13 Play time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2 Unix-like filesystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2.1 Unix file basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2.2 Filesystem internals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2.3 Filesystem permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2.4 Control of permissions for newly created files: umask . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.2.5 Permissions for groups of users (group) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.2.6 Timestamps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.2.7 Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.2.8 Named pipes (FIFOs) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.2.9 Sockets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.2.10 Device files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.2.11 Special device files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.2.12 procfs and sysfs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.2.13 tmpfs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.3 Midnight Commander (MC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.3.1 Customization of MC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.3.2 Starting MC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.3.3 File manager in MC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.3.4 Command-line tricks in MC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.3.5 The internal editor in MC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.3.6 The internal viewer in MC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.3.7 Auto-start features of MC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.3.8 FTP virtual filesystem of MC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.4 The basic Unix-like work environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.4.1 The login shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.4.2 Customizing bash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.4.3 Special key strokes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.4.4 Unix style mouse operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.4.5 The pager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.4.6 The text editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.4.7 Setting a default text editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.4.8 Customizing vim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.4.9 Recording the shell activities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.4.10 Basic Unix commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.5 The simple shell command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.5.1 Command execution and environment variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.5.2 The ”$LANG” variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.5.3 The ”$PATH” variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
1.5.4 The ”$HOME” variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
1.5.5 Command line options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
1.5.6 Shell glob . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
1.5.7 Return value of the command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
1.5.8 Typical command sequences and shell redirection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
1.5.9 Command alias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
1.6 Unix-like text processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
1.6.1 Unix text tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
1.6.2 Regular expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
1.6.3 Replacement expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
1.6.4 Global substitution with regular expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
1.6.5 Extracting data from text file table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
1.6.6 Script snippets for piping commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2 Debian package management 37
2.1 Debian package management prerequisites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.1.1 Package configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.1.2 Basic precautions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.1.3 Life with eternal upgrades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.1.4 Debian archive basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.1.5 Debian is 100% free software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.1.6 Package dependencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2.1.7 The event flow of the package management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.1.8 First response to package management troubles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.2 Basic package management operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.2.1 apt vs. apt-get / apt-cache vs. aptitude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.2.2 Basic package management operations with the commandline . . . . . . . . . . . . . . . . . . . . . . . 47
2.2.3 Interactive use of aptitude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
2.2.4 Key bindings of aptitude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
2.2.5 Package views under aptitude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
2.2.6 Search method options with aptitude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.2.7 The aptitude regex formula . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
2.2.8 Dependency resolution of aptitude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
2.2.9 Package activity logs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
2.3 Examples of aptitude operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
2.3.1 Listing packages with regex matching on package names . . . . . . . . . . . . . . . . . . . . . . . . . . 54
2.3.2 Browsing with the regex matching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
2.3.3 Purging removed packages for good . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
2.3.4 Tidying auto/manual install status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
2.3.5 System wide upgrade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
2.4 Advanced package management operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
2.4.1 Advanced package management operations with commandline . . . . . . . . . . . . . . . . . . . . . . . 56
2.4.2 Verification of installed package files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
2.4.3 Safeguarding for package problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
2.4.4 Searching on the package meta data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
2.5 Debian package management internals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
2.5.1 Archive meta data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
2.5.2 Top level ”Release” file and authenticity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
2.5.3 Archive level ”Release” files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
2.5.4 Fetching of the meta data for the package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
2.5.5 The package state for APT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
2.5.6 The package state for aptitude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
2.5.7 Local copies of the fetched packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
2.5.8 Debian package file names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
2.5.9 The dpkg command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
2.5.10 The update-alternatives command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
2.5.11 The dpkg-statoverride command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
2.5.12 The dpkg-divert command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
2.6 Recovery from a broken system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
2.6.1 Incompatibility with old user configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
2.6.2 Different packages with overlapped files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
2.6.3 Fixing broken package script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
2.6.4 Rescue with the dpkg command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
2.6.5 Recovering package selection data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
2.7 Tips for the package management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
2.7.1 How to pick Debian packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
2.7.2 Packages from mixed source of archives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
2.7.3 Tweaking candidate version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
2.7.4 Updates and Backports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
2.7.5 Blocking packages installed by ”Recommends” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
2.7.6 Tracking testing with some packages from unstable . . . . . . . . . . . . . . . . . . . . . . . . . 70
2.7.7 Tracking unstable with some packages from experimental . . . . . . . . . . . . . . . . . . . . . 71
2.7.8 Automatic download and upgrade of packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
2.7.9 Limiting download bandwidth for APT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
2.7.10 Emergency downgrading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
2.7.11 Who uploaded the package? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
2.7.12 The equivs package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
2.7.13 Porting a package to the stable system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
2.7.14 Proxy server for APT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
2.7.15 Small public package archive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
2.7.16 Recording and copying system configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
2.7.17 Converting or installing an alien binary package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
2.7.18 Extracting package without dpkg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
2.7.19 More readings for the package management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
3 The system initialization 78
3.1 An overview of the boot strap process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
3.1.1 Stage 1: the BIOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
3.1.2 Stage 2: the boot loader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
3.1.3 Stage 3: the mini-Debian system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
3.1.4 Stage 4: the normal Debian system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
3.2 Systemd init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
3.2.1 The hostname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
3.2.2 The filesystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
3.2.3 Network interface initialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
3.2.4 The kernel message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
3.2.5 The system message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
3.2.6 System management under systemd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
3.2.7 Customizing systemd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
3.3 The udev system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
3.3.1 The kernel module initialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
4 Authentication 89
4.1 Normal Unix authentication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
4.2 Managing account and password information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
4.3 Good password . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
4.4 Creating encrypted password . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
4.5 PAM and NSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
4.5.1 Configuration files accessed by PAM and NSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
4.5.2 The modern centralized system management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
4.5.3 ”Why GNU su does not support the wheel group” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
4.5.4 Stricter password rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
4.6 Other access controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
4.6.1 sudo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
4.6.2 PolicyKit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
4.6.3 SELinux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
4.6.4 Restricting access to some server services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
4.7 Security of authentication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
4.7.1 Secure password on the Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
4.7.2 Secure Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
4.7.3 Extra security measures for the Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
4.7.4 Securing the root password . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
5 Network setup 98
5.1 The basic network infrastructure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
5.1.1 The hostname resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
5.1.2 The network interface name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
5.1.3 The network address range for the LAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
5.1.4 The network device support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
5.2 The modern network configuration for desktop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
5.2.1 GUI network configuration tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
5.3 The modern network configuration without GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
5.4 The legacy network connection and configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
5.5 The network connection method (legacy) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
5.5.1 The DHCP connection with the Ethernet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
5.5.2 The static IP connection with the Ethernet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
5.5.3 The PPP connection with pppconfig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
5.5.4 The alternative PPP connection with wvdialconf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
5.5.5 The PPPoE connection with pppoeconf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
5.6 The basic network configuration with ifupdown (legacy) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
5.6.1 The command syntax simplified . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
5.6.2 The basic syntax of ”/etc/network/interfaces” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
5.6.3 The loopback network interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
5.6.4 The network interface served by the DHCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
5.6.5 The network interface with the static IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
5.6.6 The basics of wireless LAN interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
5.6.7 The wireless LAN interface with WPA/WPA2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
5.6.8 The wireless LAN interface with WEP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
5.6.9 The PPP connection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
5.6.10 The alternative PPP connection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
5.6.11 The PPPoE connection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
5.6.12 The network configuration state of ifupdown . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
5.6.13 The basic network reconfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
5.6.14 The ifupdown-extra package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
5.7 The advanced network configuration with ifupdown (legacy) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
5.7.1 The ifplugd package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
5.7.2 The ifmetric package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
5.7.3 The virtual interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
5.7.4 The advanced command syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
5.7.5 The mapping stanza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
5.7.6 The manually switchable network configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
5.7.7 Scripting with the ifupdown system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
5.7.8 Mapping with guessnet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
5.8 The low level network configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
5.8.1 Iproute2 commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
5.8.2 Safe low level network operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
5.9 Network optimization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
5.9.1 Finding optimal MTU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
5.9.2 Setting MTU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
5.9.3 WAN TCP optimization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
5.10 Netfilter infrastructure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
6 Network applications 124
6.1 Web browsers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
6.1.1 Browser configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
6.2 The mail system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
6.2.1 Email basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
6.2.2 Modern mail service basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
6.2.3 The mail configuration strategy for workstation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
6.3 Mail transport agent (MTA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
6.3.1 The configuration of exim4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
6.3.2 The configuration of postfix with SASL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
6.3.3 The mail address configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
6.3.4 Basic MTA operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
6.4 Mail user agent (MUA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
6.4.1 Basic MUA —Mutt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
6.4.2 Advanced MUA —Mutt + msmtp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
6.5 The remote mail retrieval and forward utility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
6.5.1 getmail configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
6.5.2 fetchmail configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
6.6 Mail delivery agent (MDA) with filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
6.6.1 maildrop configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
6.6.2 procmail configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
6.6.3 Redeliver mbox contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
6.7 POP3/IMAP4 server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
6.8 The print server and utilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
6.9 The remote access server and utilities (SSH) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
6.9.1 Basics of SSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
6.9.2 Port forwarding for SMTP/POP3 tunneling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
6.9.3 Connecting without remote passwords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
6.9.4 Dealing with alien SSH clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
6.9.5 Setting up ssh-agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
6.9.6 How to shutdown the remote system on SSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
6.9.7 Troubleshooting SSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
6.10 Other network application servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
6.11 Other network application clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
6.12 The diagnosis of the system daemons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
7 The X Window System 147
7.1 Key packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
7.2 Setting up desktop environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
7.2.1 Debian menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
7.2.2 Freedesktop.org menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
7.2.3 Debian menu from Freedesktop.org menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
7.3 The server/client relationship . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
7.4 The X server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
7.4.1 The (re)configuration of the X server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
7.4.2 The connection methods to the X server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
7.5 Starting the X Window System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
7.5.1 Starting X session with gdm3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
7.5.2 Customizing the X session (classic method) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
7.5.3 Customizing the X session (new method) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
7.5.4 Connecting a remote X client via SSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
7.5.5 Secure X terminal via the Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
7.6 Fonts in the X Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
7.6.1 Basic fonts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
7.6.2 Additional fonts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
7.6.3 CJK fonts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
7.7 X applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
7.7.1 X office applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
7.7.2 X utility applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
7.8 The X trivia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
7.8.1 Clipboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
7.8.2 Keymaps and pointer button mappings in X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
7.8.3 Classic X clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
7.8.4 The X terminal emulator —xterm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
7.8.5 Running X clients as root . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
8 I18N and L10N 159
8.1 The keyboard input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
8.1.1 The input method support with IBus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
8.1.2 An example for Japanese . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
8.1.3 Disabling the input method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
8.2 The display output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
8.3 East Asian Ambiguous Character Width Characters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
8.4 The locale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
8.4.1 Basics of encoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
8.4.2 Rationale for UTF-8 locale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
8.4.3 The reconfiguration of the locale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
8.4.4 The value of the ”$LANG” environment variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
8.4.5 Specific locale only under X Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
8.4.6 Filename encoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
8.4.7 Localized messages and translated documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
8.4.8 Effects of the locale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
9 System tips 166
9.1 The screen program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
9.1.1 The use scenario for screen(1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
9.1.2 Key bindings for the screen command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
9.2 Data recording and presentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
9.2.1 The log daemon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
9.2.2 Log analyzer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
9.2.3 Recording the shell activities cleanly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
9.2.4 Customized display of text data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
9.2.5 Customized display of time and date . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
9.2.6 Colorized shell echo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
9.2.7 Colorized commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
9.2.8 Recording the editor activities for complex repeats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
9.2.9 Recording the graphic image of an X application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
9.2.10 Recording changes in configuration files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
9.3 Monitoring, controlling, and starting program activities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
9.3.1 Timing a process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
9.3.2 The scheduling priority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
9.3.3 The ps command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
9.3.4 The top command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
9.3.5 Listing files opened by a process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
9.3.6 Tracing program activities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
9.3.7 Identification of processes using files or sockets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
9.3.8 Repeating a command with a constant interval . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
9.3.9 Repeating a command looping over files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
9.3.10 Starting a program from GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
9.3.11 Customizing program to be started . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
9.3.12 Killing a process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
9.3.13 Scheduling tasks once . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
9.3.14 Scheduling tasks regularly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
9.3.15 Alt-SysRq key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
9.4 System maintenance tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
9.4.1 Who is on the system? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
9.4.2 Warning everyone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
9.4.3 Hardware identification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
9.4.4 Hardware configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
9.4.5 System and hardware time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
9.4.6 The terminal configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
9.4.7 The sound infrastructure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
9.4.8 Disabling the screen saver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
9.4.9 Disabling beep sounds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
9.4.10 Memory usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
9.4.11 System security and integrity check . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
9.5 Data storage tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
9.5.1 Disk space usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
9.5.2 Disk partition configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
9.5.3 Accessing partition using UUID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
9.5.4 LVM2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
9.5.5 Filesystem configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
9.5.6 Filesystem creation and integrity check . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
9.5.7 Optimization of filesystem by mount options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
9.5.8 Optimization of filesystem via superblock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
9.5.9 Optimization of hard disk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
9.5.10 Optimization of solid state drive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
9.5.11 Using SMART to predict hard disk failure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
9.5.12 Specify temporary storage directory via $TMPDIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
9.5.13 Expansion of usable storage space via LVM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
9.5.14 Expansion of usable storage space by mounting another partition . . . . . . . . . . . . . . . . . . . . . . 188
9.5.15 Expansion of usable storage space by bind-mounting another directory . . . . . . . . . . . . . . . . . . 188
9.5.16 Expansion of usable storage space by overlay-mounting another directory . . . . . . . . . . . . . . . . . 188
9.5.17 Expansion of usable storage space using symlink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
9.6 The disk image . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
9.6.1 Making the disk image file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
9.6.2 Writing directly to the disk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
9.6.3 Mounting the disk image file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
9.6.4 Cleaning a disk image file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
9.6.5 Making the empty disk image file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
9.6.6 Making the ISO9660 image file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
9.6.7 Writing directly to the CD/DVD-R/RW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
9.6.8 Mounting the ISO9660 image file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
9.7 The binary data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
9.7.1 Viewing and editing binary data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
9.7.2 Manipulating files without mounting disk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
9.7.3 Data redundancy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
9.7.4 Data file recovery and forensic analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
9.7.5 Splitting a large file into small files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
9.7.6 Clearing file contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
9.7.7 Dummy files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
9.7.8 Erasing an entire hard disk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
9.7.9 Erasing unused area of an hard disk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
9.7.10 Undeleting deleted but still open files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
9.7.11 Searching all hardlinks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
9.7.12 Invisible disk space consumption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
9.8 Data encryption tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
9.8.1 Removable disk encryption with dm-crypt/LUKS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
9.8.2 Encrypted swap partition with dm-crypt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
9.8.3 Mounting encrypted disk with dm-crypt/LUKS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
9.8.4 Automatically encrypting files with eCryptfs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
9.8.5 Automatically mounting eCryptfs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
9.9 The kernel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
9.9.1 Linux kernel 2.6/3.x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
9.9.2 Kernel parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
9.9.3 Kernel headers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
9.9.4 Compiling the kernel and related modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
9.9.5 Compiling the kernel source: Debian Kernel Team recommendation . . . . . . . . . . . . . . . . . . . . 202
9.9.6 Hardware drivers and firmware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
9.10 Virtualized system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
9.10.1 Virtualization tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
9.10.2 Virtualization work flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
9.10.3 Mounting the virtual disk image file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
9.10.4 Chroot system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
9.10.5 Multiple desktop systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
10 Data management 207
10.1 Sharing, copying, and archiving . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
10.1.1 Archive and compression tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
10.1.2 Copy and synchronization tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
10.1.3 Idioms for the archive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
10.1.4 Idioms for the copy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
10.1.5 Idioms for the selection of files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
10.1.6 Archive media . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
10.1.7 Removable storage device . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
10.1.8 Filesystem choice for sharing data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
10.1.9 Sharing data via network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
10.2 Backup and recovery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
10.2.1 Backup utility suites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
10.2.2 An example script for the system backup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
10.2.3 A copy script for the data backup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
10.3 Data security infrastructure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
10.3.1 Key management for GnuPG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
10.3.2 Using GnuPG on files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
10.3.3 Using GnuPG with Mutt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
10.3.4 Using GnuPG with Vim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
10.3.5 The MD5 sum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
10.4 Source code merge tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
10.4.1 Extracting differences for source files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
10.4.2 Merging updates for source files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
10.4.3 Updating via 3-way-merge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
10.5 Version control systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
10.5.1 Comparison of VCS commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
10.6 Git . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
10.6.1 Configuration of Git client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
10.6.2 Git references . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
10.6.3 Git commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
10.6.4 Git for the Subversion repository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
10.6.5 Git for recording configuration history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
10.7 CVS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
10.7.1 Configuration of CVS repository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
10.7.2 Local access to CVS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
10.7.3 Remote access to CVS with pserver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
10.7.4 Remote access to CVS with ssh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
10.7.5 Importing a new source to CVS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
10.7.6 File permissions in CVS repository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
10.7.7 Work flow of CVS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
10.7.8 Latest files from CVS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
10.7.9 Administration of CVS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
10.7.10 Execution bit for CVS checkout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
10.8 Subversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
10.8.1 Configuration of Subversion repository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
10.8.2 Access to Subversion via Apache2 server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
10.8.3 Local access to Subversion by group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
10.8.4 Remote access to Subversion via SSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
10.8.5 Subversion directory structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
10.8.6 Importing a new source to Subversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
10.8.7 Work flow of Subversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
11 Data conversion 240
11.1 Text data conversion tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
11.1.1 Converting a text file with iconv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
11.1.2 Checking file to be UTF-8 with iconv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
11.1.3 Converting file names with iconv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
11.1.4 EOL conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
11.1.5 TAB conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
11.1.6 Editors with auto-conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
11.1.7 Plain text extraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
11.1.8 Highlighting and formatting plain text data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
11.2 XML data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
11.2.1 Basic hints for XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
11.2.2 XML processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
11.2.3 The XML data extraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
11.3 Type setting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
11.3.1 roff typesetting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
11.3.2 TeX/LaTeX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
11.3.3 Pretty print a manual page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
11.3.4 Creating a manual page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
11.4 Printable data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
11.4.1 Ghostscript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
11.4.2 Merge two PS or PDF files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
11.4.3 Printable data utilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
11.4.4 Printing with CUPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
11.5 The mail data conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
11.5.1 Mail data basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
11.6 Graphic data tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
11.7 Miscellaneous data conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
12 Programming 255
12.1 The shell script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
12.1.1 POSIX shell compatibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
12.1.2 Shell parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
12.1.3 Shell conditionals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
12.1.4 Shell loops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
12.1.5 The shell command-line processing sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
12.1.6 Utility programs for shell script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
12.1.7 Shell script dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
12.1.8 Shell script example with zenity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
12.2 Make . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
12.3 C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
12.3.1 Simple C program (gcc) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
12.4 Debug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
12.4.1 Basic gdb execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
12.4.2 Debugging the Debian package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
12.4.3 Obtaining backtrace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
12.4.4 Advanced gdb commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
12.4.5 Debugging X Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
12.4.6 Check dependency on libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
12.4.7 Memory leak detection tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
12.4.8 Static code analysis tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
12.4.9 Disassemble binary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
12.5 Flex —a better Lex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
12.6 Bison —a better Yacc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
12.7 Autoconf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
12.7.1 Compile and install a program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
12.7.2 Uninstall program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
12.8 Perl short script madness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
12.9 Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
12.10The source code translation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
12.11Making Debian package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
A.1 The Debian maze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
A.2 Copyright history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
A.3 Document format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
نقد و بررسیها
هیچ دیدگاهی برای این محصول نوشته نشده است.