Muutke küpsiste eelistusi

Ubuntu Unleashed 2017 Edition (Includes Content Update Program): Covering 16.10, 17.04, 17.10 12th edition [Multiple-component retail product]

  • Formaat: Multiple-component retail product, 832 pages, kõrgus x laius x paksus: 229x178x44 mm, kaal: 1320 g, Contains 1 Paperback / softback and 1 DVD-ROM
  • Ilmumisaeg: 08-Nov-2016
  • Kirjastus: Sams Publishing
  • ISBN-10: 0134511182
  • ISBN-13: 9780134511184
Teised raamatud teemal:
  • Multiple-component retail product
  • Hind: 63,57 €*
  • * saadame teile pakkumise kasutatud raamatule, mille hind võib erineda kodulehel olevast hinnast
  • See raamat on trükist otsas, kuid me saadame teile pakkumise kasutatud raamatule.
  • Kogus:
  • Lisa ostukorvi
  • Tasuta tarne
  • Lisa soovinimekirja
  • Formaat: Multiple-component retail product, 832 pages, kõrgus x laius x paksus: 229x178x44 mm, kaal: 1320 g, Contains 1 Paperback / softback and 1 DVD-ROM
  • Ilmumisaeg: 08-Nov-2016
  • Kirjastus: Sams Publishing
  • ISBN-10: 0134511182
  • ISBN-13: 9780134511184
Teised raamatud teemal:
Book + Content Update Program

Ubuntu Unleashed 2017 Edition is filled with unique and advanced information for everyone who wants to make the most of the Ubuntu Linux operating system. This new edition has been thoroughly updated by a long-time Ubuntu community leader to reflect the exciting new Ubuntu 16.04 LTS release with forthcoming online updates for 16.10, 17.04, and 17.10 when they are released.

Former Ubuntu Forum administrator Matthew Helmke covers all you need to know about Ubuntu 16.04 installation, configuration, productivity, multimedia, development, system administration, server operations, networking, virtualization, security, DevOps, and moreincluding intermediate-to-advanced techniques you wont find in any other book.

Helmke presents up-to-the-minute introductions to Ubuntus key productivity and Web development tools, programming languages, hardware support, and more. Youll find new or improved coverage of navigation via Unity Dash, wireless networking, VPNs, software repositories, new NoSQL database options, virtualization and cloud services, new programming languages and development tools, monitoring, troubleshooting, and more.









Configure and customize the Unity desktop Get started with multimedia and productivity applications, including LibreOffice Manage Linux services, users, and software packages Administer and run Ubuntu from the command line Automate tasks and use shell scripting Provide secure remote access and configure a secure VPN Manage kernels and modules Administer file, print, email, proxy, LDAP, DNS, and HTTP servers (Apache, Nginx, or alternatives) Learn about new options for managing large numbers of servers Work with databases (both SQL and the newest NoSQL alternatives) Get started with virtualization Build a private cloud with Juju and Charms Learn the basics about popular programming languages including Python, PHP, Perl, and new alternatives such as Go and Rust Learn about Ubuntus work toward usability on touchscreen and phone devices



In addition, this book is part of InformITs exciting Content Update Program, which provides content updates for major technology improvements! As significant updates are made to Docker and Azure, sections of this book will be updated or new sections will be added to match the updates to the technologies. As updates become available, they will be delivered to you via a free Web Edition of this book, which can be accessed with any Internet connection. To learn more, visit informit.com/cup.

How to access the Web Edition: Follow the instructions inside to learn how to register your book to access the FREE Web Edition.
Introduction xxxiii
Licensing
xxxiv
Who This Book Is For
xxxv
Those Wanting to Become Intermediate or Advanced Users
xxxv
Sysadmins, Programmers, and DevOps
xxxvi
What This Book Contains
xxxvii
Conventions Used in This Book
xxxviii
Part I Getting Started
1 Installing Ubuntu and Post-Installation Configuration
1(28)
Before You Begin the Installation
1(5)
Researching Your Hardware Specifications
2(1)
Installation Options
2(2)
32-Bit vs 64-Bit Ubuntu
4(1)
Planning Partition Strategies
5(1)
The Boot Loader.
5(1)
Installing from DVD or USB Drive
6(1)
Step-by-Step Installation
6(7)
Installing
7(6)
First Update
13(1)
Shutting Down
13(1)
Finding Programs and Files
14(1)
Software Updater
15(3)
The sudo Command
18(1)
Configuring Software Repositories
19(2)
System Settings
21(3)
Detecting and Configuring a Printer
22(1)
Configuring Power Management in Ubuntu
22(1)
Setting the Time and Date
23(1)
Configuring Wireless Networks
24(2)
Troubleshooting Post-Installation Configuration Problems
26(1)
References
27(2)
2 Background Information and Resources
29(14)
What Is Linux?
29(2)
Why Use Linux?
31(2)
What Is Ubuntu?
33(1)
Ubuntu for Business
33(2)
Ubuntu in Your Home
35(1)
Getting the Most from Ubuntu and Linux Documentation
35(1)
Ubuntu Developers and Documentation
36(1)
Websites and Search Engines
37(3)
Web Search Tips
37(1)
Google Is Your Friend
37(1)
Ubuntu Package Listings
38(1)
Commercial Support
38(1)
Documentation
39(1)
Linux Guides
39(1)
Ubuntu
40(1)
Mailing Lists
40(2)
Ubuntu Project Mailing Lists
41(1)
Internet Relay Chat
42(1)
Part II Desktop Ubuntu
3 Working with Unity
43(20)
Foundations and the X Server
43(9)
Basic X Concepts
44(1)
Using X
45(1)
Elements of the xorg.conf File
46(5)
Starting X
51(1)
Using a Display Manager
51(1)
Changing Window Managers
52(1)
Using Unity, a Primer
52(8)
The Desktop
53(5)
Customizing and Configuring Unity
58(2)
Power Shortcuts
60(1)
References
61(2)
4 On the Internet
63(12)
Getting Started with Firefox
63(2)
Checking Out Google Chrome and Chromium
65(1)
Choosing an Email Client
66(3)
Mozilla Thunderbird
66(1)
Evolution
67(1)
Other Mail Clients
68(1)
RSS Readers
69(1)
Firefox
69(1)
Liferea
69(1)
Internet Relay Chat
70(2)
Usenet Newsgroups
72(2)
References
74(1)
5 Productivity Applications
75(10)
Introducing LibreOffice
76(2)
Other Office Suites for Ubuntu
78(2)
Working with GNOME Office
78(2)
Working with KOffice
80(1)
Other Useful Productivity Software
80(3)
Working with PDF
80(1)
Working with XML and DocBook
81(1)
Working with LaTeX
82(1)
Productivity Applications Written for Microsoft Windows
83(1)
References
83(2)
6 Multimedia Applications
85(26)
Sound and Music
85(7)
Sound Cards
86(1)
Adjusting Volume
87(1)
Sound Formats
88(1)
Listening to Music
89(3)
Graphics Manipulation
92(6)
The GNU Image Manipulation Program
93(1)
Using Scanners in Ubuntu
94(1)
Working with Graphics Formats
95(2)
Capturing Screen Images
97(1)
Other Graphics Manipulation Options
97(1)
Using Digital Cameras with Ubuntu
98(1)
Handheld Digital Cameras
98(1)
Using Shotwell Photo Manager
98(1)
Burning CDs and DVDs in Ubuntu
99(5)
Creating CDs and DVDs with Brasero
99(1)
Creating CDs from the Command Line
100(2)
Creating DVDs from the Command Line
102(2)
Viewing Video
104(5)
TV and Video Hardware
104(1)
Video Formats
105(1)
Viewing Video in Linux
106(1)
Personal Video Recorders
107(1)
Video Editing
107(2)
References
109(2)
7 Other Ubuntu Interfaces
111(10)
Desktop Environment
112(1)
KDE and Kubuntu
113(1)
Xfce and Xubuntu
114(2)
LXDE and Lubuntu
115(1)
GNOME3 and Ubuntu GNOME
116(1)
MATE and Ubuntu MATE
117(1)
Ubuntu Kylin
118(1)
References
118(3)
8 Games
121(12)
Ubuntu Gaming
121(1)
Installing Proprietary Video Drivers
122(1)
Steam
123(1)
Installing Games in Ubuntu
123(7)
Warsow
124(1)
Scorched 3D
124(1)
Frozen Bubble
125(1)
SuperTux
126(1)
Battle for Wesnoth
126(1)
Frets on Fire
127(1)
FlightGear
128(1)
Speed Dreams
129(1)
Games for Kids
129(1)
Commercial Games
129(1)
Playing Windows Games
130(1)
References
130(3)
Part III System Administration
9 Managing Software
133(16)
Ubuntu Software
133(1)
Using Synaptic for Software Management
134(3)
Staying Up-to-Date
137(1)
Working on the Command Line
138(5)
Day-to-Day Usage
138(3)
Finding Software
141(1)
Using apt Instead of apt-get
142(1)
Compiling Software from Source
143(2)
Compiling from a Tarball
143(1)
Compiling from Source from the Ubuntu Repositories
144(1)
Configuration Management
145(1)
dotdee
145(1)
Snappy Ubuntu Core
146(1)
Using Snaps
146(1)
References
147(2)
10 Command-Line Beginner's Class
149(36)
What Is the Command Line?
150(1)
Accessing the Command Line
151(3)
Text-Based Console Login
152(1)
Logging Out
153(1)
Logging In and Out from a Remote Computer
153(1)
User Accounts
154(1)
Reading Documentation
155(2)
Using Man Pages
156(1)
Using apropros
156(1)
Using whereis
157(1)
Understanding the Linux File System Hierarchy
157(5)
Essential Commands in /bin and /shin
158(1)
Configuration Files in /etc
159(1)
User Directories: /home
159(1)
Using the Contents of the /pros Directory to Interact with the Kernel
160(1)
Working with Shared Data in the /usr Directory
161(1)
Temporary File Storage in the /tmp Directory
162(1)
Accessing Variable Data Files in the /var Directory
162(1)
Navigating the Linux File System
162(3)
Listing the Contents of a Directory with ls
162(2)
Changing Directories with cd
164(1)
Finding Your Current Directory with pwd
165(1)
Working with Permissions
165(8)
Assigning Permissions
166(1)
Directory Permissions
167(1)
Altering File Permissions with chmod
168(1)
File Permissions with umask
169(1)
File Permissions with chgrp
170(1)
Changing File Permissions with chown
170(1)
Understanding Set User ID, Set Group ID, and Sticky Bit Permissions
170(1)
Setting Permissions with Access Control Lists
171(2)
Working with Files
173(5)
Creating a File with touch
173(1)
Creating a Directory with mkdir
173(1)
Deleting a Directory with rmdir
174(1)
Deleting a File or Directory with rm
175(1)
Moving or Renaming a File with mv
175(1)
Copying a File with cp
176(1)
Displaying the Contents of a File with cat
177(1)
Displaying the Contents of a File with less
177(1)
Using Wildcards and Regular Expressions
177(1)
Working as Root
178(5)
Understanding and Fixing sudo
178(3)
Creating Users
181(1)
Deleting Users
182(1)
Shutting Down the System
182(1)
Rebooting the System
183(1)
Commonly Used Commands and Programs
183(1)
References
184(1)
11 Command-Line Master Class Part 1
185(24)
Why Use the Command Line?
186(1)
Using Basic Commands
187(21)
Printing the Contents of a File with cat
188(1)
Changing Directories with cd
189(2)
Changing File Access Permissions with chmod
191(1)
Copying Files with cp
191(1)
Printing Disk Usage with du
192(1)
Using echo
193(1)
Finding Files by Searching with find
193(3)
Searches for a String in Input with grep
196(1)
Paging Through Output with less
197(2)
Creating Links Between Files with in
199(1)
Finding Files from an Index with locate
200(1)
Listing Files in the Current Directory with ls
200(2)
Listing System Information with lsblk, lshw, lsmod, and lspci
202(1)
Reading Manual Pages with man
203(1)
Making Directories with mkdir
204(1)
Moving Files with mv
204(1)
Renaming Files with rename
204(1)
Deleting Files and Directories with rm
205(1)
Sorting the Contents of a File with sort
205(2)
Printing the Last Lines of a File with tail
207(1)
Printing the Location of a Command with which
207(1)
Download Files with wget
207(1)
References
208(1)
12 Command-line Master Class Part 2
209(32)
Redirecting Output and Input
209(2)
stdin, stdout, stderr, and Redirection
211(1)
Comparing Files
212(1)
Finding Differences in Files with diff
212(1)
Finding Similarities in Files with comm
212(1)
Limiting Resource Use and Job Control
213(6)
Listing Processes with ps
213(1)
Listing Jobs with jobs
214(1)
Running One or More Tasks in the Background
215(1)
Moving Jobs to the Background or Foreground with bg and fg
215(1)
Printing Resource Usage with top
216(2)
Setting Processes Priority with nice
218(1)
Combining Commands
219(3)
Pipes
219(2)
Combining Commands with Boolean Operators
221(1)
Running Separate Commands in Sequence
222(1)
Process Substitution
222(1)
Using Environment Variables
222(4)
Using Common Text Editors
226(6)
Working with nano
227(1)
Working with vi
227(2)
Working with emacs
229(1)
Working with sea and awk
230(2)
Working with Compressed Files
232(1)
Using Multiple Terminals with byobu
233(1)
Polite System Reset Using REISUB
234(1)
Fixing an Ubuntu System That Will Not Boot
235(1)
Checking BIOS
235(1)
Checking GRUB
235(1)
Reinstalling GRUB
235(1)
Using Recovery Mode
236(1)
Reinstalling Ubuntu
236(1)
Tips and Tricks
236(4)
Running the Previous Command
236(1)
Running Any Previous Command
237(1)
Running a Previous Command that Started with Specific Letters
237(1)
Running the Same Thing You Just Ran with a Different First Word
237(1)
Viewing Your History and More
237(1)
Doing Two or More Things
237(1)
Using Shortcuts
238(1)
Confining a Script to a Directory
238(1)
Using Coreutils
239(1)
Reading the Contents of the Kernel Ring Buffer with dmesg
239(1)
References
240(1)
13 Managing Users
241(24)
User Accounts
241(4)
The Super User/Root User
242(2)
User IDs and Group IDs
244(1)
File Permissions
244(1)
Managing Groups
245(3)
Group Listing
245(1)
Group Management Tools
246(2)
Managing Users
248(4)
User Management Tools
248(2)
Adding New Users
250(1)
Monitoring User Activity on the System
251(1)
Managing Passwords
252(5)
System Password Policy
252(1)
The Password File
253(1)
Shadow Passwords
254(2)
Managing Password Security for Users
256(1)
Changing Passwords in a Batch
256(1)
Granting System Administrator Privileges to Regular Users
257(5)
Temporarily Changing User Identity with the su Command
257(2)
Granting Root Privileges on Occasion: The sudo Command
259(3)
Disk Quotas
262(2)
Implementing Quotas
262(1)
Manually Configuring Quotas
263(1)
Related Ubuntu Commands
264(1)
References
264(1)
14 Automating Tasks and Shell Scripting
265(46)
Scheduling Tasks
265(7)
Using at and batch to Schedule Tasks for Later
265(3)
Using crop to Run Jobs Repeatedly
268(2)
Using rtcwake to Wake Your Computer from Sleep Automatically
270(2)
Basic Shell Control
272(5)
The Shell Command Line
273(1)
Shell Pattern-Matching Support
274(1)
Redirecting Input and Output
275(1)
Piping Data
276(1)
Background Processing
277(1)
Writing and Executing a Shell Script
277(31)
Running the New Shell Program
279(1)
Storing Shell Scripts for System-Wide Access
279(1)
Interpreting Shell Scripts Through Specific Shells
280(1)
Using Variables in Shell Scripts
281(1)
Assigning a Value to a Variable
282(1)
Accessing Variable Values
282(1)
Positional Parameters
282(1)
A Simple Example of a Positional Parameter
283(1)
Using Positional Parameters to Access and Retrieve Variables from the Command Line
284(1)
Using a Simple Script to Automate Tasks
284(2)
Built-In Variables
286(1)
Special Characters
287(1)
Using Double Quotes to Resolve Variables in Strings with Embedded Spaces
288(1)
Using Single Quotes to Maintain Unexpanded Variables
288(1)
Using the Backslash as an Escape Character
289(1)
Using the Backtick to Replace a String with Output
289(1)
Comparison of Expressions in pdksh and bash
290(5)
Comparing Expressions with tcsh
295(4)
The for Statement
299(1)
The while Statement
300(2)
The until Statement
302(1)
The repeat Statement (tcsh)
303(1)
The select Statement (pdksh)
303(1)
The shift Statement
304(1)
The if Statement
304(1)
The case Statement
305(2)
The break and exit Statements
307(1)
Using Functions in Shell Scripts
307(1)
References
308(3)
15 The Boot Process
311(12)
Running Services at Boot
311(1)
Beginning the Boot Loading Process
312(7)
Loading the Linux Kernel
314(1)
System Services and Runlevels
315(1)
Runlevel Definitions
315(1)
Booting into the Default Runlevel
316(1)
Understanding init Scripts and the Final Stage of Initialization
316(1)
Controlling Services at Boot with Administrative Tools
317(1)
Changing Runlevels
318(1)
Troubleshooting Runlevel Problems
319(1)
Starting and Stopping Services Manually
319(1)
Using Upstart
319(1)
systemd
320(2)
Boot Repair
322(1)
References
322(1)
16 System-Monitoring Tools
323(18)
Console-Based Monitoring
323(10)
Using the kill Command to Control Processes
325(1)
Using Priority Scheduling and Control
326(1)
Displaying Free and Used Memory with free
327(1)
Disk Space
328(1)
Disk Quotas
329(1)
Checking Log Files
329(2)
Rotating Log Files
331(2)
Graphical Process and System Management Tools
333(6)
System Monitor
334(1)
Conky
334(5)
Other
339(1)
KDE Process- and System-Monitoring Tools
339(1)
Enterprise Server Monitoring
340(1)
Landscape
340(1)
Other
340(1)
References
340(1)
17 Backing Up
341(28)
Choosing a Backup Strategy
341(7)
Why Data Loss Occurs
342(1)
Assessing Your Backup Needs and Resources
343(2)
Evaluating Backup Strategies
345(3)
Making the Choice
348(1)
Choosing Backup Hardware and Media
348(2)
Removable Storage Media
348(1)
CD-RW and DVD+RW/-RW Drives
349(1)
Network Storage
349(1)
Tape Drive Backup
349(1)
Cloud Storage
350(1)
Using Backup Software
350(10)
tar: The Most Basic Backup Tool
351(2)
The GNOME File Roller
353(1)
The KDE ark Archiving Tool
353(1)
Deja Dup
354(2)
Back In Time
356(2)
Unison
358(1)
Using the Amanda Backup Application
358(1)
Alternative Backup Software
359(1)
Copying Files
360(4)
Copying Files Using tar
360(1)
Compressing, Encrypting, and Sending tar Streams
361(1)
Copying Files Using cp
361(1)
Copying Files Using mc
362(1)
Using rsync
362(2)
Version Control for Configuration Files
364(2)
System Rescue
366(2)
The Ubuntu Rescue Disc
367(1)
Restoring the GRUB
B2
Boot Loader
367(1)
Saving Files from a Nonbooting Hard Drive
368(1)
References
368(1)
18 Networking
369(46)
Laying the Foundation: The localhost Interface
370(1)
Checking for the Availability of the Loopback Interface
370(1)
Configuring the Loopback Interface Manually
370(1)
Checking Connections with ping, traceroute, and mtr
371(3)
Networking with TCP/IP
374(4)
TCP/IP Addressing
374(2)
Using IP Masquerading in Ubuntu
376(1)
Ports
377(1)
IPv6 Basics
378(2)
Network Organization
380(2)
Subnetting
381(1)
Subnet Masks
381(1)
Broadcast, Unicast, and Multicast Addressing
382(1)
Hardware Devices for Networking
382(7)
Network Interface Cards
382(2)
Network Cable
384(1)
Hubs and Switches
385(1)
Routers and Bridges
386(1)
Initializing New Network Hardware
387(2)
Using Network Configuration Tools
389(10)
Command-Line Network Interface Configuration
389(5)
Network Configuration Files
394(3)
Using Graphical Configuration Tools
397(2)
Dynamic Host Configuration Protocol
399(6)
How DHCP Works
399(1)
Activating DHCP at Installation and Boot Time
400(1)
DHCP Software Installation and Configuration
401(2)
Using DHCP to Configure Network Hosts
403(2)
Other Uses for DHCP
405(1)
Wireless Networking
405(3)
Support for Wireless Networking in Ubuntu
405(2)
Advantages of Wireless Networking
407(1)
Choosing from Among Available Wireless Protocols
407(1)
Beyond the Network and onto the Internet
408(1)
Common Configuration Information
408(4)
Understanding PPP over Ethernet
410(1)
Configuring a PPPoE Connection Manually
411(1)
Configuring Dial-Up Internet Access
412(1)
Troubleshooting Connection Problems
413(1)
References
414(1)
19 Remote Access with SSH, Teinet, and VNC
415(10)
Setting Up a Telnet Server
415(2)
Telnet Versus SSH
417(1)
Setting Up an SSH Server
417(1)
SSH Tools
417(3)
Using scp to Copy Individual Files Between Machines
418(1)
Using sf tp to Copy Many Files Between Machines
418(1)
Using ssh-keygen to Enable Key-Based Logins
419(1)
Virtual Network Computing
420(3)
References
423(2)
20 Securing Your Machines
425(16)
Understanding Computer Attacks
425(2)
Assessing Your Vulnerability
427(1)
Protecting Your Machine
428(3)
Securing a Wireless Network
429(1)
Passwords and Physical Security
429(1)
Configuring and Using Tripwire
430(1)
Devices
431(1)
Viruses
431(1)
Configuring Your Firewall
432(3)
AppArmor
435(2)
Forming a Disaster Recovery Plan
437(2)
References
439(2)
21 Performance Tuning
441(12)
Hard Disk
441(4)
Using the BIOS and Kernel to Tune the Disk Drives
442(1)
The hdparm Command
443(1)
File System Tuning
444(1)
The tune2fs Command
444(1)
The e2f sck Command
445(1)
The badblocks Command
445(1)
Disabling File Access Time
445(1)
Kernel
445(1)
Apache
446(2)
MySQL
448(4)
Measuring Key Buffer Usage
448(1)
Using the Query Cache
449(2)
Miscellaneous Tweaks
451(1)
Query Optimization
451(1)
References
452(1)
22 Kernel and Module Management
453(20)
The Linux Kernel
454(4)
The Linux Source Tree
455(2)
Types of Kernels
457(1)
Managing Modules
458(2)
When to Recompile
460(1)
Kernel Versions
461(1)
Obtaining the Kernel Sources
462(1)
Patching the Kernel
463(1)
Compiling the Kernel
464(6)
Using xconfig to Configure the Kernel
467(3)
Creating an Initial RAM Disk Image
470(1)
When Something Goes Wrong
470(2)
Errors During Compile
471(1)
Runtime Errors, Boot Loader Problems, and Kernel Oops
472(1)
References
472(1)
Part IV Ubuntu as a Server
23 Sharing Files and Printers
473(16)
Using the Network File System
474(2)
Installing and Starting or Stopping NFS
474(1)
NFS Server Configuration
474(1)
NFS Client Configuration
475(1)
Putting Samba to Work
476(7)
Manually Configuring Samba with /etc/samba/smb.conf
478(3)
Testing Samba with the testparm Command
481(1)
Starting, Stopping, and Restarting the smbd Daemon
481(1)
Mounting Samba Shares
482(1)
Network and Remote Printing with Ubuntu
483(5)
Creating Network Printers
483(2)
Using the Common UNIX Printing System GUI
485(1)
Avoiding Printer Support Problems
486(2)
References
488(1)
24 Apache Web Server Management
489(26)
About the Apache Web Server
489(1)
Installing the Apache Server
490(2)
Starting and Stopping Apache
491(1)
Runtime Server Configuration Settings
492(6)
Runtime Configuration Directives
492(1)
Editing apache2.conf
493(2)
Apache Multiprocessing Modules
495(1)
Using .htaccess Configuration Files
496(2)
File System Authentication and Access Control
498(4)
Restricting Access with Require
498(1)
Authentication
499(2)
Final Words on Access Control
501(1)
Apache Modules
502(5)
mod_access
502(1)
mod_alias
502(1)
mod_asis
503(1)
mod_auth
503(1)
mod_auth_anon
503(1)
mod_auth_dbm
503(1)
mod_auth_digest
504(1)
mod_autoindex
504(1)
mod_cgi
504(1)
mod_dir and mod_env
504(1)
mod_expires
504(1)
mod_headers
504(1)
mod_include
505(1)
mod_info and mod_log_config
505(1)
mod_mime and mod_mime_magic
505(1)
mod_negotiation
505(1)
mod_proxy
505(1)
mod_rewrite
505(1)
mod_setenvif
506(1)
mod_speling
506(1)
mod_status
506(1)
mod_ssl
506(1)
mod_unique_id
506(1)
mod_userdir
506(1)
mod_usertrack
507(1)
mod_vhost_alias
507(1)
Virtual Hosting
507(2)
Address-Based Virtual Hosts
507(1)
Name-Based Virtual Hosts
508(1)
Logging
509(1)
HTTPS
510(3)
References
513(2)
25 Nginx Web Server Management
515(12)
About the Nginx Web Server
515(2)
Installing the Nginx Server
517(1)
Installing from the Ubuntu Repositories
517(1)
Building the Source Yourself
517(1)
Configuring the Nginx Server
518(3)
Virtual Hosting
521(1)
Setting Up PHP
522(1)
Adding and Configuring Modules
523(1)
HTTPS
524(2)
References
526(1)
26 Other HTTP Servers
527(4)
lighttpd
527(1)
Yaws
528(1)
Cherokee
528(1)
Jetty
529(1)
thttpd
529(1)
Apache Tomcat
530(1)
References
530(1)
27 Remote File Serving with FTP
531(10)
Choosing an FTP Server.
531(2)
Choosing an Authenticated or Anonymous Server
532(1)
Ubuntu FTP Server Packages
532(1)
Other FTP Servers
532(1)
Installing FTP Software
533(1)
The FTP User
534(2)
Configuring the Very Secure FTP Server
536(3)
Controlling Anonymous Access
537(1)
Other vsftpd Server Configuration Files
537(2)
Using the ftphosts File to Allow or Deny FTP Server Connection
539(1)
References
540(1)
28 Handling Email
541(20)
How Email Is Sent and Received
541(5)
The Mail Transport Agent
542(2)
Choosing an MTA
544(1)
The Mail Delivery Agent
544(1)
The Mail User Agent
545(1)
Basic Postfix Configuration and Operation
546(5)
Configuring Masquerading
548(1)
Using Smart Hosts
549(1)
Setting Message Delivery Intervals
549(1)
Mail Relaying
550(1)
Forwarding Email with Aliases
550(1)
Using Fetchmail to Retrieve Mail
551(4)
Installing Fetchmail
551(1)
Configuring Fetchmail
551(4)
Choosing a Mail Delivery Agent
555(1)
Procmail
555(1)
Spamassassin
555(1)
Squirrelmail
556(1)
Virus Scanners
556(1)
Autoresponders
556(1)
Alternatives to Microsoft Exchange Server
556(2)
Microsoft Exchange Server/Outlook Client
557(1)
CommuniGate Pro
557(1)
Oracle Beehive
557(1)
Bynari
558(1)
Open-Xchange
558(1)
Horde
558(1)
References
558(3)
29 Proxying, Reverse Proxying, and Virtual Private Networks (VPN)
561(16)
What Is a Proxy Server?
561(1)
Installing Squid
562(1)
Configuring Clients
562(1)
Access Control Lists
563(4)
Specifying Client IP Addresses
567(1)
Sample Configurations
568(2)
Virtual Private Networks (VPN)
570(5)
Setting Up a VPN Client
571(2)
Setting Up a VPN Server
573(2)
References
575(2)
30 Administering Relational Database Services
577(26)
A Brief Review of Database Basics
578(8)
How Relational Databases Work
580(2)
Understanding SQL Basics
582(1)
Creating Tables
582(1)
Inserting Data into Tables
583(1)
Retrieving Data from a Database
584(2)
Choosing a Database: MySQL Versus PostgreSQL
586(2)
Speed
586(1)
Data Locking
586(1)
ACID Compliance in Transaction Processing to Protect Data Integrity
587(1)
SQL Subqueries
588(1)
Procedural Languages and Triggers
588(1)
Configuring MySQL
588(4)
Setting a Password for the MySQL Root User
589(1)
Creating a Database in MySQL
590(2)
Configuring PostgreSQL
592(3)
Initializing the Data Directory in PostgreSQL
592(1)
Creating a Database in PostgreSQL
593(1)
Creating Database Users in PostgreSQL
593(1)
Deleting Database Users in PostgreSQL
594(1)
Granting and Revoking Privileges in PostgreSQL
594(1)
Database Clients
595(6)
SSH Access to a Database
595(2)
Local GUI Client Access to a Database
597(1)
Web Access to a Database
597(1)
The MySQL Command-Line Client
598(2)
The PostgreSQL Command-Line Client
600(1)
Graphical Clients
600(1)
References
601(2)
31 NoSQL Databases
603(12)
Key/Value Stores
606(2)
Berkeley DB
606(1)
Cassandra
607(1)
Memcached and MemcacheDB
607(1)
Redis
608(1)
Riak
608(1)
Document Stores
608(3)
CouchDB
609(1)
MongoDB
610(1)
BaseX
610(1)
Wide Column Stores
611(1)
BigTable
611(1)
HBase
611(1)
Graph Stores
612(1)
Neo4j
612(1)
OrientDB
612(1)
HyperGraphDB
612(1)
FlockDB
613(1)
References
613(2)
32 Lightweight Directory Access Protocol (LDAP)
615(8)
Configuring the Server
616(3)
Creating Your Schema
616(1)
Populating Your Directory
617(2)
Configuring Clients
619(2)
Evolution
620(1)
Thunderbird
621(1)
Administration
621(1)
References
622(1)
33 Linux Terminal Server Project (LTSP)
623(8)
Requirements
624(3)
Installation
627(1)
Using LTSP
628(1)
References
629(2)
34 VirtuallzatIon on Ubuntu
631(10)
KVM
633(4)
VirtualBox
637(2)
VMware
639(1)
Xen
639(1)
References
639(2)
35 Ubuntu In the Cloud
641(14)
Why a Cloud?
642(2)
Software as a Service (SaaS)
643(1)
Platform as a Service (PaaS)
643(1)
Infrastructure as a Service (IaaS)
643(1)
Metal as a Service (MaaS)
643(1)
Before You Do Anything
644(1)
Deploy/Install Basics: Public, Private, or Hybrid?
644(1)
Ubuntu Cloud and OpenStack
645(2)
Compute Infrastructure (Nova)
645(1)
Storage Infrastructure (Swift)
646(1)
Networking Service (Neutron)
646(1)
Identity Service (Keystone)
646(1)
Imaging Service (Glance)
647(1)
Dashboard (Horizon)
647(1)
Learning More
647(1)
Juju
647(6)
Getting Started
648(2)
Charms
650(2)
The Juju GUI
652(1)
Juju Quickstart
653(1)
Juju on Mac OS X and Windows
653(1)
Mojo: Continuous Delivery for Juju
653(1)
Snappy Ubuntu Core
653(1)
Ubuntu Metal as a Service (MaaS)
653(1)
Landscape
654(1)
References
654(1)
36 Managing Sets of Servers
655(4)
Juju
655(1)
Puppet
656(1)
Chef
656(1)
CFEngine
656(1)
Ansible
657(1)
Landscape
657(1)
References
657(2)
37 Name Serving with the Domain Name System (DNS)
659(10)
Understanding Domain Names
661(4)
DNS Servers
661(1)
DNS Records
662(3)
Setting Up a DNS Server with BIND
665(2)
References
667(2)
Part V Programming Linux
38 Using Programming Tools for Ubuntu
669(12)
Programming with Linux
670(1)
Using the C Programming Project Management Tools Provided with Ubuntu
671(4)
Building Programs with make
671(1)
Using Makefiles
671(2)
Using the autoconf Utility to Configure Code
673(1)
Debugging Tools
674(1)
Using the GNU C Compiler
675(1)
Graphical Development Tools
676(4)
Using the KDevelop Client
676(1)
The Glade Client for Developing in GNOME
677(1)
Use an IDE or SDK
678(2)
References
680(1)
39 Opportunistic Development
681(12)
Version Control Systems
681(5)
Managing Software Projects with Git
682(1)
Managing Software Projects with Bazaar
683(1)
Managing Software Projects with Subversion
684(1)
Managing Software Projects with Mercurial
685(1)
Introduction to Opportunistic Development
686(1)
Launchpad
687(1)
Ubuntu Make
688(1)
Creating Snap Packages
689(1)
Bikeshed and Other Tools
689(3)
References
692(1)
40 Helping with Ubuntu Development
693(10)
Introduction to Ubuntu Development
694(1)
Setting Up Your Development System
695(3)
Install Basic Packages and Configure
695(1)
Create a Launchpad Account
696(1)
Set Up Your Environment to Work with Launchpad
696(2)
Developing Apps and Scopes
698(1)
Fixing Bugs and Packaging
698(3)
Finding Bugs to Fix with Harvest
701(1)
Masters of the Universe
701(1)
References
702(1)
41 Helping with Ubuntu Testing and QA
703(6)
Community Teams
703(2)
Ubuntu Testing Team
704(1)
QA Team
705(1)
Bug Squad
705(1)
Test Drive
705(3)
References
708(1)
42 Using Popular Programming Languages
709(14)
Ada
710(1)
Clojure
710(1)
COBOL
711(1)
D
712(1)
Dart
712(1)
Elixir
713(1)
Erlang
713(1)
Forth
713(1)
Go
714(1)
Fortran
714(1)
Groovy
715(1)
Haskell
715(1)
Java
715(1)
JavaScript
716(1)
Lisp
716(1)
Lua
717(1)
Mono
717(1)
OCaml
718(1)
Perl
718(1)
PHP
719(1)
Python
719(1)
Ruby
719(1)
Rust
720(1)
Scala
720(1)
Scratch
720(1)
Vala
720(1)
References
721(2)
43 Beginning Mobile Development for Android
723(6)
Introduction to Android
724(1)
Hardware
724(1)
Linux Kernel
724(1)
Libraries
724(1)
Android Runtime
724(1)
Application Framework
725(1)
Applications
725(1)
Installing Android Studio
725(4)
Install Android Studio
725(1)
Install SDK Packages
725(2)
Create Your First Application
727(1)
References
728(1)
44 Developing for Ubuntu Mobile/Touch
729(4)
Install the SDK
730(1)
Create Your First Application
730(1)
References
731(2)
Index 733
Matthew Helmke is an active member of the Ubuntu community. He served from 2006 to 2011 on the Ubuntu Forum Council, providing leadership and oversight of the Ubuntu Forums (www.ubuntuforums.org), and spent two years on the Ubuntu regional membership approval board for Europe, the Middle East, and Africa. He has written about Ubuntu for several magazines and websites, is a lead author of The Official Ubuntu Book, and coauthored The VMware Cookbook. He works as a technical writer for Canonical, Inc., documenting cloud- and DevOps-related software. Matthew first used Unix in 1987 while studying LISP on a VAX at the university. He has run a business using only free- and open-source software, has consulted, and has a masters degree in Information Resources and Library Science from the University of Arizona. You can find out more about Matthew at matthewhelmke.com or drop him a line with errata or suggestions at matthew@matthewhelmke.com.

Andrew Hudson is a freelance journalist who specializes in writing about Linux. He has significant experience in Red Hat- and Debian-based Linux distributions and deployments and can often be found sitting at his keyboard tweaking various settings and config files just for the hell of it. He lives in Wiltshire, which is a county of England, along with his wife, Bernice, and their son, John. Andrew does not like Emacs. He can be reached at andy.hudson@gmail.com.

Paul Hudson is a recognized expert in open source technologies. He is a professional developer and full-time journalist for Future Publishing. His articles have appeared in MacFormat, PC Answers, PC Format, PC Plus, and Linux Format. Paul is passionate about free software in all its forms and uses a mix of Linux and BSD to power his desktops and servers. Paul likes Emacs. Paul can be contacted through http://hudzilla.org.