My Linux Book

Urs Lindegger


Table of Contents

1. Introduction
Why again an other Linux Book
About myself
Some terms
TUX
root
Daemon
Zombie
N00b
Gnu
SoHo
CamelCase
Foo, bar and foobar
rc and init.d
shebang
Help
Using the manual pages
Man pages on the web
Info pages
Using documentation from the packages
Writing your own man pages
2. Copyright
3. Working in the Console
The Console
Console login
Terminals
Screen Manager
Working with bash
Special characters
Wild cards
Strings in Bash
Calculations
Command substitution
Bash scripts
Bash processes
Bash variables
The [ program
Bracket overview
Debug of bash scripts
Bash configuration
Working with Windows
Commands
Midnight commander
Text Web browser Links
cat
cd
cp
cut
dd
find
grep
ls
more or less
mv
rm and rmdir
strings
tail
Time
uname
watch
Sed
Filtering certain lines
Sed Commands
Sed Options
Regular expressions
Character description
Examples
Ranges of characters
Localization
4. System
Character encoding
ASCII
ASCII Table
UTF-8
beep
Hexadecimal
Booting
BIOS
BIOS update
UEFI
Secure Boot
Bootloader
Booting the Kernel
SysVinit
systemd
Start up messages
Linux 32 bit and 64 bit
Loading Libraries
Processes
Interprocess Communication IPC
Kernel
Hardware compatibility
Having the hardware and looking for drivers
Hints about kernel compiling
Kernel compilation
Kernel internals
Kernel modules
loading modules
Working with the modules
Firmware
D-Bus
Devicekit
udisks
Log files
Config files
Files that will be customized
Files usually not to be customized
CPU
Memory
Endians
Memory usage
Swap
Memory Management Unit (MMU)
System Time
UTC
NTP
RTC chip on the motherboard
Gateways and Routers
Cron
Vixie-cron
Other crons
Frontends
Clone a system
Turn off a Linux computer
Posix
Install Packages
Redhat/Suse
Debian
Gentoo
Flatpack
From Source
5. Hardware
Graphic Cards
Nvidia
ATI Graphics Cards Radeon
Monitors
ddccontrol
read-edid
Keyboard
Mouse
Joystick
Hardware Random Number Generator
Fingerprint sensor
Parallel Port
PCI
Power
ACPI
Batteries
Frequency scaling of the cpu
Hard disks
Impact of the software
6. Graphical User Interface
Xorg, the X server
Install the X server under Gentoo Linux
The configuration files
Wayland
weston
sway
Desktop environments
LXQT
Xfce
KDE
Gnome
LXDE
Window Managers
Openbox customization
Compiz
Display Manager
Start, stop and login
Slim
Lightdm
SDDM
LXDM
Gui Terminals
Desktop files
Font
Setting up fonts
Asian fonts
Font warnings in Xorg.log
Screen capture
Screensaver and Screen blanking
Running a GUI application on an other computer
X11 forwarding
xdg utils
QT
7. Authentication
Ownership
User account
User definition
Group definition
Resetting Linux passwords
Resetting Windows Passwords
Working with different computers
Commands and behavior
Backup files
Administrator
Sudo
Login
PAM
PAM applications
PAM modules
PAM configuration files
How it fits together
PAM Examples
Password Hash
Gnupg
Keys
Key servers
Getting public keys
Produce your keys
Modifying keys
Cryptographic signature
Encryption and decryption
Gui tools
Gpg Agent
Network Information Service
8. Filesystem
FHS (Filesystem Hierarchy Standardization)
Permissions
Linux file systems
Copy filesystems
ISO file systems
Rock Ridge and Joilet
Mount a ISO image
Write ISO file system to a memory device
Microsoft File Systems
FAT
NTFS
Fix permissions
Encrypted File Systems
Encfs
Other encryption methods
Network filesystems
NFS
Links
Symbolic links
Static links
Pipes and FIFO
Device files
Mount and umount
bind mount
fstab
AutoFs
Mount removable media
Autorun
udev
udev rules
Advanced udev rules
Proc
Sys
Hard disk
DMA (Direct Memory Access)
Partitions
Defragmemt
Test programs
SMART (Self-Monitoring Analysis and Reporting Technology)
CD and DVD
RAM disks
Floppy disks
Format
Mount
Floppy image files
Files containing file systems
Putting file systems onto SDcards
Checksum
MD5 Message-Digest algorithm 5
SHA-1 and SHA-2
MD160
Integrity of CD/DVD's
File indexing
Duplicate files
File Differences
Logical Volume Manager
Device Mapper
Filelight
Zip files
atool
bzip2
gzip and gunzip
Tar
unrar
Zcat
Zip
Unison
Unison on the command line
Unison with Microsoft file systems
9. Networking
Base64
Ethernet
Network Interface names
TCPIP
TCP/IP packets
Setting up the TCP/IP connection
IP addresses and DHCP
DNS
Dynamic DNS
OpenNIC
DNS name server
Network tools
Networkmanager
Wicd
nftables
Routing
Server configuration
Sockets
URL and URI
Wireless
Device drivers
Wireless implementation under Linux
Tools to work with wireless connections
regulatory db
Telnet
Telnet client
Telnet server
SSL TLS
Symmetric encryption
Asymmetric encryption
Encryption
Authentication
SSH
SSH Concept
SSH Server
SSH Client
SSH troubles
SSH and Windows
VPN
Wireguard
IPsec
FTP
Ftp servers
Ftp clients
Rsync
Rsync in the console
Rsync daemon
Mail
ssmtp
Kmail, the KDE e-mail program
Evolution
Simple mail programs
MIME
Instant Messenger
Internet relay chat
RSS
eD2k
Webserver
Apache
Lighttp
Ngnix
Web Statistics
Copy a webservers content
LAMP
PHP
CGI
FCGI and SCGI
Wsgi
SSI
Ajax
Access counters
htdig
Wireshark
Xinetd
Samba
Samba users
Samba Linux clients
Samba Windows clients
WebDAV
I2C
Different implementations
Linux implementations
lm_sensors
USB
Installing USB
USB protocol
Descriptors
10. Office
Documents
Pdf
Emacs
LibreOffice
Latex
Lyx
Wiki
Dokuwiki
Contacts
Calculators
Printer
Line printer
Cups
PDF printers
Printing from the command line
Printer troubleshooting
CUPS Errors
Spell Checkers
SQL
SQLite
MySQL
Korganizer
11. Graphics
Dot
Gnuplot
Imagemagick
Gimp
Daily work with Gimp
Animated Gifs with Gimp
Icons with Gimp
Image maps for web pages
Troubles
Inkscape
Synfig 2D animation
Modeling 3D
File formats 3D
OpenScad
Splitting into different files
OpenScad libraries
OpenScad Hints
Extruding 2D to 3D
Variables
Customizer
Animation
Blender
The Blender windows
Video sequence editor
Node Editor
Movie clip editor
Coordinate system
Blender game engine
Simulate physics
Scripting Blender
Povray
CAD
qcad
Freemat
Scanner
Sane Backend
Sane Frontend
OCR
tesseract and gImageReader
ocrad
gocr
Sphere cameras
12. XML
Introduction to XML
XML tags
Adding special characters to xml
XML Namespaces
Doctype
DTD
XML Schema
RELAX NG
Working with XML
XmlStarlet
xmldiff
Html-xml-utils
XML2
Validate xml
Docbook
Docbook syntax
Docbook editing
Converting Docbook via Sgml utils
Converting Docbook via XSLT
XML as HTML evolution
XHTML
MathML
Xpath
Absolute path
Relative path
Wildchards
Publishing XML Documents
XSL processing
Debugging XSLT
XSL Stylesheets
Formatting Object
Jade
Cleanup XML
Other tools
Checks for having user friendly documents
Stylesheets
Cascading Style Sheets
DSSSL
Processing Instructions
Processing XML in Python
ElementTree
lxml
SOAP
XML alternatives
JSON
YAML
World Wide Web
Browser
HTTP
HTML
Making html nicer
The meta tags
Working with HTML
Web analyzing tools
Making money with the web site
Search robots
Privacy
Cookie
13. Multimedia
Image formats
PPM
GIF
JPEG
SVG
Sound formats
ALSA
Setting up ALSA
ALSA Mixer
Command line sound tools
Capture audio
Jack
Gui sound tools
Pulseaudio
Pulseaudio Configuration
Troubleshoot pulseaudio
Audio CD
Internet radio
Speech
Festival
mbrola
Speech device
KDE speech tools
Speech to mp3
Music synthesizer
MIDI
Sound Hardware
Video
Container formats
Video codecs
Video tools
avinfo
kdenlive
Openshot
kino
Compression techniques
Setting up the hardware
Video compression
Video DVD
Rip a video DVD
Bluray
Camera
Webcam
QuickCam 3000 Pro
Thyphoon EasyCam
Webcam applications
IR cameras
motion
Digital TV
Hauppauge WinTV Nova T USB
Configuring digital terrestrial tv
Measuring signal
Record compressed video
DVB-T Antennas
Analog TV
No auto detected TV cards
Analog cards
TV Applications
EPG
Nxtvepg
XMLTV
Frontends for XMLTV
Internet TV
Media player
Mplayer
mpv
kaffeine
Xine
Gstreamer
VLC
Media Server
Mediatomb
The client
Home theater
Mythtv
VDR
Oxine
Geebox
Mediasystem
Dreambox
Connection to the TV
14. Outdoor and fun
Mobile phones
G2
G3
G4
Connections using xG phones
Bluetooth
Bluetooth headsets
Bluetooth connection to the phone
Gnome bluetooth
Kdebluetooth
Other bluetooth software
GPS
GPS devices
The gps daemon gpsd
The maps
Gpsbabel
Navit
gpsdrive
Google earth
QR codes
Vcard
Anki Flash Cards
eBook
EPUB
Sigil
Calibre
fbreader
Ebook-tools
Games
Privateer
Gog
15. Gentoo Linux
Gentoo fundamentals
Installing Gentoo
Some rules when working with Gentoo Linux
The world file
System packages
The package data base
Emerge
Elogs
Virtual packages
Slotted packages
Package sets
Finding what has been installed
Portage
Portage tools
Use flags
eselect
Licenses
Mirrors
Profiles
Handling of Config Files
etc-update
dispatch-conf
cfg-update
Overlays
Repositories
Local overlay directories
Layman
Overlays in GitHub
Eix search in not installed overlays
Ebuilds
Ebuilds in Portage
Working with different version of an ebuild
Creating an ebuild
Installing ebuilds
Install an ebuild using the command ebuild
Debugging emerge and ebuilds
Record of the installation
GLSA
Gentoo internals
List of repetitive tasks
Keep computer updated
Cleanup tasks
Backup data
Check disk space
Checking dependencies
Check unused useflags
Advanced checks
Check log files
Check the disk health
Check dangling symlinks
Check init scripts
Check old files
Check user accounts
Clean user account
Using Portage tools
Troubleshoot
Program crashes or does not start
Boot errors
Emerge update failures
Emerge wants to emerge stuff that you don't want
Emerging groups of ebuilds
No keyboard and mouse in X after update
Problems with after a gcc update
Python version conflicts
No Internet connection after update
Dependency troubles
Having done stupid things
16. Programming
gcc
C programming
The hello wold program
Hello world split in two files
Interacting with the parent process
Integrated development Environments (IDE)
Makefiles and make
Debugging
Execution from the text console
Libraries
Clang
Python
Python2 and Python3
How python finds its packages
Python documentation
Python IDEs
Embedded python debugging
Python Programming
Installing python packages
Documenting Python
Testing Python code
Python in virtual environments
Python on Gentoo Linux
Python on Windows
Distribute python code
Accessing C code
Python byte code
Java
Java hello world program
Java hello world applet
Netbeans
A deeper look inside java
Javascript
node js
php
Pascal
Free Pascal
Gnu Pascal
Eclipse Pascal
Debugging Pascal
TCL TK
Csharp
Basic
Perl
Ruby
slibvga
Matlab
Scilab
Octave
Beautifiers
Patches
Creating a patch
Applying a patch
Sphinx
Doxygen
Doxygen with python
Create the documentation
Doxygen Syntax
Graphic support
Build tools
Autotools
Scons
cmake
pkg-config
Waf
Code analysis tools
Version control
Git
CVS ( Concurrent Version System)
Other version control systems
Logging
Eclipse
Installing eclipse
Installing eclipse plug-ins
Working with eclipse
Eclipse internals
Plugin development
17. Emulation
DOS
DosBox
DosEmu
FreeDOS
Old software
VirtualBox
Guest additions
Run a ISO CD image
Back to the past
Shared folders
USB devices
Using Serial port
Running FreeDos
Snapshots
Audio
Import and export VM
Mounting Virtual Harddisks
Virtual Box Networking
Docker
Bochs
Wine the Microsoft Windows API for Linux
HP41 Calculator
Remove applications

List of Figures

1.1. Me
1.2. Root
1.3. Tux
1.4. Zombie
1.5. GNU
3.1. Bash debugger
4.1. firmware blobs
5.1. Firmware blobs
5.2. Fingerprint
5.3. Smart Batteries
6.1. KDE cube
6.2. Compiz cube
6.3. Compiz screens
8.1. Filelight
8.2. Unison
9.1. USB
9.2. Access counter
10.1. Latex
10.2. Nonpareil
10.3. Cupspdf
11.1. DOT
11.2. gnuplot
11.3. Oven
11.4. OpenScad
11.5. 3D cube
11.6. 3D manipulator
11.7. Object
11.8. Putting boxes and cylinders together
11.9. blender units
11.10. Measure Add on
11.11. Mesh display
11.12. Node Editor
11.13. Anaglyph stereo
11.14. Logic Editor
11.15. Sensor
11.16. Povray
11.17. Povray
11.18. Multipage scanning
11.19. Two circles
11.20. Sphere
11.21. VLC and sphere videos
12.1. Vex
12.2. Conglomerate
12.3. Serna-free
12.4. xslt debugging with eclipse
13.1. Playback
13.2. Sound connectors
13.3. DVB antenna
13.4. PCTV
13.5. SAA3134
13.6. Tvtime
13.7. Aletv
13.8. Nextview
13.9. Mediatomb
13.10. Home theater
13.11. Vdr
13.12. Geebox
14.1. Bluetooth daemon
14.2. Navilock
14.3. Griess glacier
14.4. Navit gtk
14.5. Navit Internal gui
14.6. Navit menu
14.7. Gpsdrive
14.8. Google earth
14.9. QR-code pointing to www.linurs.org
14.10. Privateer
14.11. Privateer
15.1. Cascading profiles
16.1. idle
16.2. Windows Environmental Variables
16.3. scilab
16.4. Eclipse Marketplace
16.5. Eclipse Install Software
17.1. Sokoban
17.2. Sokoban
17.3. Keen
17.4. Virtualbox and compiz is running Ubuntu and XP
17.5. HP41

List of Tables

3.1. grep
4.1. Unicode to UTF-8
4.2. Signals
8.1. Permissions
11.1. Basic viewing commands
12.1. Special characters
12.2. xpath
16.1. gdb
16.2. String methods

List of Examples

3.1. Test script
4.1. Boot memdisk
4.2. system call
4.3. fork
6.1. Custom screen resolution
8.1. Permission
8.2. umask
8.3. GUI mount NTFS
8.4. udev rule
9.1. Access Counter
11.1. Dot
12.1. XML
12.2. DTD
12.3. DTD in XML
12.4. Split docbook
12.5. Docbook
12.6. XHTML
12.7. xsl stylesheet
12.8. CSS in head tag
12.9. CSS link to file
12.10. CSS classes and ids
13.1. mplayer command
13.2. mplayer video example
15.1. License blockage example
15.2. ebuild variables
16.1. hello.c
16.2. hello.c splitted
16.3. hello c function
16.4. Dynamic library
17.1. Mount vdi

Linurs startpage