Home > Store

Ubuntu Unleashed 2016 Edition: Covering 15.10 and 16.04, 11th Edition

Ubuntu Unleashed 2016 Edition: Covering 15.10 and 16.04, 11th Edition

eBook (Watermarked)

  • Your Price: $35.19
  • List Price: $43.99
  • Includes EPUB, MOBI, and PDF
  • About eBook Formats
  • This eBook includes the following formats, accessible from your Account page after purchase:

    ePub EPUB The open industry format known for its reflowable content and usability on supported mobile devices.

    MOBI MOBI The eBook format compatible with the Amazon Kindle and Amazon Kindle applications.

    Adobe Reader PDF The popular standard, used most often with the free Adobe® Reader® software.

    This eBook requires no passwords or activation to read. We customize your eBook by discreetly watermarking it with your name, making it uniquely yours.

Also available in other formats.

Register your product to gain access to bonus material or receive a coupon.

Description

  • Copyright 2016
  • Dimensions: 7" x 9-1/8"
  • Pages: 816
  • Edition: 11th
  • eBook (Watermarked)
  • ISBN-10: 0-13-426932-2
  • ISBN-13: 978-0-13-426932-0

Ubuntu Unleashed 2016 Edition is filled with unique and advanced information for everyone who wants to make the most of the Linux-based Ubuntu operating system. This new edition has been thoroughly revised and updated by a long-time Ubuntu community leader to reflect the exciting new Ubuntu 15.10 while including tons of information that will continue to apply to future editions.

Former Ubuntu Forum administrator Matthew Helmke covers all you need to know about Ubuntu 15.10 installation, configuration, productivity, multimedia, development, system administration, server operations, networking, virtualization, security, DevOps, and more—including intermediate-to-advanced techniques you won’t find in any other book.

Helmke presents up-to-the-minute introductions to Ubuntu’s key productivity and Web development tools, programming languages, hardware support, and more. You’ll find new or improved coverage of Ubuntu’s Unity interface, various types of servers, software repositories, database options, virtualization and cloud services, development tools, monitoring, troubleshooting, Ubuntu’s push into mobile and other touch screen devices, and much 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 Ubuntu’s work toward usability on touchscreen and phone devices

Ubuntu 15.10 on DVD

DVD includes the full Ubuntu 15.10 distribution for 64 bit computers (most desktop and notebooks systems today) as well as the complete LibreOffice office suite and hundreds of additional programs and utilities.

Free Upgrade!

Purchase this book and receive a free Ubuntu 16.04 Kick Start chapter after Ubuntu 16.04 is released. See inside back cover for details.

Sample Content

Table of Contents

Introduction:    xxxi

Licensing    xxxii

Who This Book Is For    xxxiii

Those Wanting to Become Intermediate or Advanced Users    xxxiii

Sysadmins, Programmers, and DevOps    xxxiv

What This Book Contains    xxv

Conventions Used in This Book    xxv

Part I: Getting Started

1: Installing Ubuntu and Post-Installation Configuration    1

Before You Begin the Installation    1

Researching Your Hardware Specifications    2

Installation Options    2

32-Bit vs. 64-Bit Ubuntu    4

Planning Partition Strategies    5

The Boot Loader    5

Installing from DVD or USB Drive    6

Step-by-Step Installation    6

Installing    7

First Update    12

Shutting Down    12

Finding Programs and Files    13

Software Updater    14

The sudo Command    17

Configuring Software Repositories    18

System Settings    20

Detecting and Configuring a Printer    21

Configuring Power Management in Ubuntu    21

Setting the Time and Date    22

Configuring Wireless Networks    24

Troubleshooting Post-Installation Configuration Problems    25

References    26

2: Background Information and Resources    27

What Is Linux?    27

Why Use Linux?    29

What Is Ubuntu?    31

Ubuntu for Business    32

Ubuntu in Your Home    33

Getting the Most from Ubuntu and Linux Documentation    33

Ubuntu Developers and Documentation    35

Websites and Search Engines    35

Web Search Tips    35

Google Is Your Friend    36

Ubuntu Package Listings    36

Commercial Support    36

Documentation    37

Linux Guides    37

Ubuntu    38

Mailing Lists    39

Ubuntu Project Mailing Lists    39

Internet Relay Chat    40

Part II: Desktop Ubuntu

3: Working with Unity    41

Foundations and the X Server    41

Basic X Concepts    42

Using X    43

Elements of the xorg.conf File    44

Starting X    49

Using a Display Manager    50

Changing Window Managers    50

Using Unity, a Primer    51

The Desktop    51

Customizing and Configuring Unity    56

Power Shortcuts    58

References    59

4: On the Internet    61

Getting Started with Firefox    61

Checking Out Google Chrome and Chromium    63

Choosing an Email Client    65

Mozilla Thunderbird    65

Evolution    66

Other Mail Clients    67

RSS Readers    67

Firefox    67

Liferea    68

Instant Messaging and Video Conferencing with Empathy    68

Internet Relay Chat    69

Usenet Newsgroups    72

References    73

5: Productivity Applications    75

Introducing LibreOffice    77

Other Office Suites for Ubuntu    79

Working with GNOME Office    79

Working with KOffice    80

Other Useful Productivity Software    81

Working with PDF    81

Working with XML and DocBook    81

Working with LaTeX    82

Productivity Applications Written for Microsoft Windows    83

References    84

6: Multimedia Applications    85

Sound and Music    85

Sound Cards    86

Adjusting Volume    87

Sound Formats    88

Listening to Music    89

Graphics Manipulation    91

The GNU Image Manipulation Program    93

Using Scanners in Ubuntu    94

Working with Graphics Formats    95

Capturing Screen Images    96

Other Graphics Manipulation Options    97

Using Digital Cameras with Ubuntu    97

Handheld Digital Cameras    98

Using Shotwell Photo Manager    98

Burning CDs and DVDs in Ubuntu    99

Creating CDs and DVDs with Brasero    99

Creating CDs from the Command Line    99

Creating DVDs from the Command Line    101

Viewing Video    103

TV and Video Hardware    104

Video Formats    105

Viewing Video in Linux    105

Personal Video Recorders    107

Video Editing    107

References    108

7: Other Ubuntu Interfaces    109

Desktop Environment    110

KDE and Kubuntu    111

Xfce and Xubuntu    112

LXDE and Lubuntu    113

GNOME3 and Ubuntu GNOME    114

MATE and Ubuntu MATE    115

Ubuntu Kylin    116

References    116

8: Games    119

Ubuntu Gaming    119

Installing Proprietary Video Drivers    120

Installing Games in Ubuntu    120

Warsow    121

Scorched 3D    121

Frozen Bubble    123

SuperTux    123

Battle for Wesnoth    124

Frets on Fire    124

FlightGear    126

Speed Dreams    126

Games for Kids    126

Commercial Games    126

Steam    127

Playing Windows Games    128

References    128

Part III: System Administration

9: Managing Software    131

Ubuntu Software Center    131

Using Synaptic for Software Management    132

Staying Up-to-Date    134

Working on the Command Line    135

Day-to-Day Usage    136

Finding Software    139

Compiling Software from Source    140

Compiling from a Tarball    140

Compiling from Source from the Ubuntu Repositories    141

Configuration Management    142

dotdee    143

OneConf    143

Snappy Ubuntu Core    143

References    144

10: Command-Line Quickstart    145

What Is the Command Line?    146

Accessing the Command Line    147

Text-Based Console Login    148

Logging Out    149

Logging In and Out from a Remote Computer    149

User Accounts    150

Reading Documentation    152

Using Man Pages    152

Using apropros    152

Using whereis    153

Understanding the Linux File System Hierarchy    153

Essential Commands in /bin and /sbin    154

Configuration Files in /etc    155

User Directories: /home    155

Using the Contents of the /proc Directory to Interact with the Kernel    156

Working with Shared Data in the /usr Directory    157

Temporary File Storage in the /tmp Directory    158

Accessing Variable Data Files in the /var Directory    158

Navigating the Linux File System    158

Listing the Contents of a Directory with ls    158

Changing Directories with cd    160

Finding Your Current Directory with pwd    161

Working with Permissions    161

Assigning Permissions    162

Directory Permissions    163

Altering File Permissions with chmod    164

File Permissions with chgrp    165

Changing File Permissions with chown    165

Understanding Set User ID and Set Group ID Permissions    165

Working with Files    167

Creating a File with touch    167

Creating a Directory with mkdir    167

Deleting a Directory with rmdir    168

Deleting a File or Directory with rm    169

Moving or Renaming a File with mv    169

Copying a File with cp    170

Displaying the Contents of a File with cat    171

Displaying the Contents of a File with less    171

Using Wildcards and Regular Expressions    171

Working as Root    172

Understanding and Fixing sudo    172

Creating Users    175

Deleting Users    176

Shutting Down the System    176

Rebooting the System    177

Commonly Used Commands and Programs    178

References    178

11: Command-Line Master Class    179

Why Use the Command Line?    180

Using Basic Commands    181

Printing the Contents of a File with cat    183

Changing Directories with cd    183

Changing File Access Permissions with chmod    185

Copying Files with cp    186

Printing Disk Usage with du    186

Finding Files by Searching with find    187

Searches for a String in Input with grep    189

Paging Through Output with less    190

Creating Links Between Files with ln    192

Finding Files from an Index with locate    194

Listing Files in the Current Directory with ls    194

Reading Manual Pages with man    196

Making Directories with mkdir    197

Moving Files with mv    197

Deleting Files and Directories with rm    198

Sorting the Contents of a File with sort    198

Printing the Last Lines of a File with tail    200

Using echo    201

Printing the Location of a Command with which    202

Redirecting Output and Input    202

stdin, stdout, stderr, and Redirection    203

Comparing Files    204

Finding Differences in Files with diff    204

Finding Similarities in Files with comm    205

Limiting Resource Use and Job Control    205

Listing Processes with ps    206

Listing Jobs with jobs    207

Running One or More Tasks in the Background    207

Moving Jobs to the Background or Foreground with bg and fg    208

Printing Resource Usage with top    209

Setting Processes Priority with nice    211

Combining Commands    212

Pipes    212

Combining Commands with Boolean Operators    214

Running Separate Commands in Sequence    214

Using Environment Variables    215

Using Common Text Editors    218

Working with nano    219

Working with vi    220

Working with emacs    221

Working with sed and awk    222

Working with Compressed Files    224

Using Multiple Terminals with byobu    225

Polite System Reset Using REISUB    226

Tips and Tricks    227

Running the Previous Command    227

Running Any Previous Command    228

Running a Previous Command That Started with Specific Letters    228

Running the Same Thing You Just Ran with a Different First Word    228

Viewing Your History and More    228

Do Two or More Things    229

Shortcuts    229

Coreutils    229

References    230

12: Managing Users    231

User Accounts    231

The Super User/Root User    232

User IDs and Group IDs    234

File Permissions    234

Managing Groups    235

Group Listing    235

Group Management Tools    237

Managing Users    238

User Management Tools    238

Adding New Users    240

Monitoring User Activity on the System    242

Managing Passwords    243

System Password Policy    243

The Password File    243

Shadow Passwords    244

Managing Password Security for Users    247

Changing Passwords in a Batch    247

Granting System Administrator Privileges to Regular Users    247

Temporarily Changing User Identity with the su Command    248

Granting Root Privileges on Occasion: The sudo Command    250

Disk Quotas    253

Implementing Quotas    253

Manually Configuring Quotas    254

Related Ubuntu Commands    254

References    255

13: Automating Tasks and Shell Scripting    257

Scheduling Tasks    257

Using at and batch to Schedule Tasks for Later    257

Using cron to Run Jobs Repeatedly    260

Using rtcwake to Wake Your Computer from Sleep Automatically    262

Basic Shell Control    264

The Shell Command Line    265

Shell Pattern-Matching Support    266

Redirecting Input and Output    267

Piping Data    268

Background Processing    269

Writing and Executing a Shell Script    269

Running the New Shell Program    271

Storing Shell Scripts for System-Wide Access    272

Interpreting Shell Scripts Through Specific Shells    272

Using Variables in Shell Scripts    273

Assigning a Value to a Variable    274

Accessing Variable Values    274

Positional Parameters    275

A Simple Example of a Positional Parameter    275

Using Positional Parameters to Access and Retrieve Variables from the Command Line    276

Using a Simple Script to Automate Tasks    276

Built-In Variables    278

Special Characters    279

Using Double Quotes to Resolve Variables in Strings with Embedded Spaces    280

Using Single Quotes to Maintain Unexpanded Variables    281

Using the Backslash as an Escape Character    281

Using the Backtick to Replace a String with Output    282

Comparison of Expressions in pdksh and bash    282

Comparing Expressions with tcsh    287

The for Statement    291

The while Statement    293

The until Statement    295

The repeat Statement (tcsh)    295

The select Statement (pdksh)    296

The shift Statement    296

The if Statement    297

The case Statement    298

The break and exit Statements    300

Using Functions in Shell Scripts    300

References    301

14: The Boot Process    303

Running Services at Boot    303

Beginning the Boot Loading Process    304

Loading the Linux Kernel    306

System Services and Runlevels    306

Runlevel Definitions    306

Booting into the Default Runlevel    307

Understanding init Scripts and the Final Stage of Initialization    308

Controlling Services at Boot with Administrative Tools    309

Changing Runlevels    309

Troubleshooting Runlevel Problems    310

Starting and Stopping Services Manually    310

Using Upstart    311

systemd    312

Boot Repair    313

References    313

15: System-Monitoring Tools    315

Console-Based Monitoring    315

Using the kill Command to Control Processes    317

Using Priority Scheduling and Control    318

Displaying Free and Used Memory with free    319

Disk Space    320

Disk Quotas    321

Checking Log Files    321

Rotating Log Files    323

Graphical Process and System Management Tools    325

System Monitor    326

Conky    327

Other    332

KDE Process- and System-Monitoring Tools    332

Enterprise Server Monitoring    333

Landscape    333

Other    333

References    333

16: Backing Up    335

Choosing a Backup Strategy    335

Why Data Loss Occurs    336

Assessing Your Backup Needs and Resources    337

Evaluating Backup Strategies    339

Making the Choice    342

Choosing Backup Hardware and Media    342

Removable Storage Media    342

CD-RW and DVD+RW/-RW Drives    343

Network Storage    343

Tape Drive Backup    343

Cloud Storage    344

Using Backup Software    344

tar: The Most Basic Backup Tool    345

The GNOME File Roller    347

The KDE ark Archiving Tool    347

Déjà Dup    348

Back In Time    350

Unison    352

Using the Amanda Backup Application    352

Alternative Backup Software    353

Copying Files    354

Copying Files Using tar    354

Compressing, Encrypting, and Sending tar Streams    355

Copying Files Using cp    355

Copying Files Using mc    356

Using rsync    356

Version Control for Configuration Files    358

System Rescue    360

The Ubuntu Rescue Disc    361

Restoring the GRUB2 Boot Loader    361

Saving Files from a Nonbooting Hard Drive    362

References    362

17: Networking    363

Laying the Foundation: The localhost Interface    364

Checking for the Availability of the Loopback Interface    364

Configuring the Loopback Interface Manually    364

Checking Connections with ping, traceroute, and mtr    366

Networking with TCP/IP    368

TCP/IP Addressing    369

Using IP Masquerading in Ubuntu    371

Ports    372

IPv6 Basics    372

Network Organization    375

Subnetting    375

Subnet Masks    376

Broadcast, Unicast, and Multicast Addressing    376

Hardware Devices for Networking    377

Network Interface Cards    377

Network Cable    379

Hubs and Switches    380

Routers and Bridges    381

Initializing New Network Hardware    381

Using Network Configuration Tools    384

Command-Line Network Interface Configuration    384

Network Configuration Files    389

Using Graphical Configuration Tools    391

Dynamic Host Configuration Protocol    393

How DHCP Works    393

Activating DHCP at Installation and Boot Time    394

DHCP Software Installation and Configuration    395

Using DHCP to Configure Network Hosts    397

Other Uses for DHCP    399

Wireless Networking    399

Support for Wireless Networking in Ubuntu    399

Advantages of Wireless Networking    401

Choosing from Among Available Wireless Protocols    401

Beyond the Network and onto the Internet    402

Common Configuration Information    402

Configuring Digital Subscriber Line Access    404

Understanding PPP over Ethernet    404

Configuring a PPPoE Connection Manually    405

Configuring Dial-Up Internet Access    406

Troubleshooting Connection Problems    407

References    408

18: Remote Access with SSH, Telnet, and VNC    409

Setting Up a Telnet Server    409

Telnet Versus SSH    411

Setting Up an SSH Server    411

SSH Tools    411

Using scp to Copy Individual Files Between Machines    412

Using sftp to Copy Many Files Between Machines    413

Using ssh-keygen to Enable Key-Based Logins    413

Virtual Network Computing    415

References    417

19: Securing Your Machines    419

Understanding Computer Attacks    419

Assessing Your Vulnerability    421

Protecting Your Machine    422

Securing a Wireless Network    423

Passwords and Physical Security    423

Configuring and Using Tripwire    424

Devices    425

Viruses    425

Configuring Your Firewall    426

AppArmor    430

Forming a Disaster Recovery Plan    432

References    433

20: Performance Tuning    435

Hard Disk    435

Using the BIOS and Kernel to Tune the Disk Drives    436

The hdparm Command    437

File System Tuning    438

The tune2fs Command    438

The e2fsck Command    439

The badblocks Command    439

Disabling File Access Time    439

Kernel    440

Apache    441

MySQL    442

Measuring Key Buffer Usage    442

Using the Query Cache    444

Miscellaneous Tweaks    445

Query Optimization    446

References    446

21: Kernel and Module Management    447

The Linux Kernel    448

The Linux Source Tree    449

Types of Kernels    451

Managing Modules    452

When to Recompile    454

Kernel Versions    455

Obtaining the Kernel Sources    456

Patching the Kernel    457

Compiling the Kernel    458

Using xconfig to Configure the Kernel    461

Creating an Initial RAM Disk Image    464

When Something Goes Wrong    465

Errors During Compile    465

Runtime Errors, Boot Loader Problems, and Kernel Oops    466

References    466

Part IV: Ubuntu as a Server

22: Sharing Files and Printers    469

Using the Network File System    470

Installing and Starting or Stopping NFS    470

NFS Server Configuration    470

NFS Client Configuration    472

Putting Samba to Work    472

Manually Configuring Samba with /etc/samba/smb.conf    474

Testing Samba with the testparm Command    477

Starting, Stopping, and Restarting the smbd Daemon    477

Mounting Samba Shares    479

Network and Remote Printing with Ubuntu    479

Creating Network Printers    479

Using the Common UNIX Printing System GUI    481

Avoiding Printer Support Problems    483

References    484

23: Apache Web Server Management    485

About the Apache Web Server    485

Installing the Apache Server    486

Installing from the Ubuntu Repositories    486

Building the Source Yourself    488

Starting and Stopping Apache    490

Starting the Apache Server Manually    490

Using /etc/init.d/apache2    492

Runtime Server Configuration Settings    493

Runtime Configuration Directives    493

Editing apache2.conf    494

Apache Multiprocessing Modules    497

Using .htaccess Configuration Files    497

File System Authentication and Access Control    499

Restricting Access with allow and deny    500

Authentication    501

Final Words on Access Control    503

Apache Modules    504

mod_dir and mod_env    506

mod_info and mod_log_config    507

mod_mime and mod_mime_magic    507

Virtual Hosting    509

Address-Based Virtual Hosts    509

Name-Based Virtual Hosts    510

Logging    511

HTTPS    513

References    515

24: Nginx Web Server Management    517

About the Nginx Web Server    517

Installing the Nginx Server    519

Installing from the Ubuntu Repositories    519

Building the Source Yourself    519

Configuring the Nginx Server    520

Virtual Hosting    523

Setting Up PHP    524

Adding and Configuring Modules    525

HTTPS    526

References    528

25: Other HTTP Servers    529

lighttpd    529

Yaws    530

Cherokee    531

Jetty    531

thttpd    532

Apache Tomcat    532

References    532

26: Remote File Serving with FTP    533

Choosing an FTP Server    533

Choosing an Authenticated or Anonymous Server    534

Ubuntu FTP Server Packages    534

Other FTP Servers    534

Installing FTP Software    535

The FTP User    536

Configuring the Very Secure FTP Server    538

Controlling Anonymous Access    539

Other vsftpd Server Configuration Files    539

Using the ftphosts File to Allow or Deny FTP Server Connection    541

References    542

27: Handling Email    543

How Email Is Sent and Received    543

The Mail Transport Agent    544

Choosing an MTA    546

The Mail Delivery Agent    546

The Mail User Agent    547

Basic Postfix Configuration and Operation    548

Configuring Masquerading    550

Using Smart Hosts    551

Setting Message Delivery Intervals    551

Mail Relaying    552

Forwarding Email with Aliases    552

Using Fetchmail to Retrieve Mail    553

Installing Fetchmail    553

Configuring Fetchmail    553

Choosing a Mail Delivery Agent    557

Procmail    557

Spamassassin    557

Squirrelmail    558

Virus Scanners    558

Autoresponders    558

Alternatives to Microsoft Exchange Server    558

Microsoft Exchange Server/Outlook Client    559

CommuniGate Pro    559

Oracle Beehive    560

Bynari    560

Open-Xchange    560

Horde    560

References    560

28: Proxying, Reverse Proxying, and Virtual Private Networks (VPN)    563

What Is a Proxy Server?    563

Installing Squid    564

Configuring Clients    564

Access Control Lists    564

Specifying Client IP Addresses    569

Sample Configurations    570

Virtual Private Networks (VPN)    572

Setting Up a VPN Client    574

Setting Up a VPN Server    575

References    577

29: Administering Relational Database Services    579

A Brief Review of Database Basics    580

How Relational Databases Work    582

Understanding SQL Basics    584

Creating Tables    584

Inserting Data into Tables    585

Retrieving Data from a Database    586

Choosing a Database: MySQL Versus PostgreSQL    588

Speed    588

Data Locking    589

ACID Compliance in Transaction Processing to Protect Data Integrity    589

SQL Subqueries    590

Procedural Languages and Triggers    590

Configuring MySQL    591

Setting a Password for the MySQL Root User    592

Creating a Database in MySQL    592

Configuring PostgreSQL    594

Initializing the Data Directory in PostgreSQL    594

Creating a Database in PostgreSQL    595

Creating Database Users in PostgreSQL    596

Deleting Database Users in PostgreSQL    596

Granting and Revoking Privileges in PostgreSQL    597

Database Clients    597

SSH Access to a Database    598

Local GUI Client Access to a Database    599

Web Access to a Database    600

The MySQL Command-Line Client    601

The PostgreSQL Command-Line Client    602

Graphical Clients    602

References    603

30: NoSQL Databases    605

Key/Value Stores    608

Berkeley DB    608

Cassandra    609

Memcached and MemcacheDB    609

Redis    610

Riak    610

Document Stores    610

CouchDB    611

MongoDB    612

BaseX    612

Wide Column Stores    613

BigTable    613

HBase    613

Graph Stores    614

Neo4j    614

OrientDB    614

HyperGraphDB    615

FlockDB    615

References    615

31: Lightweight Directory Access Protocol (LDAP)    617

Configuring the Server    618

Creating Your Schema    618

Populating Your Directory    620

Configuring Clients    622

Evolution    622

Thunderbird    623

Administration    623

References    624

32: Linux Terminal Server Project (LTSP)    625

Requirements    626

Installation    629

Using LTSP    630

References    631

33: Virtualization on Ubuntu    633

KVM    635

VirtualBox    639

VMware    641

Xen    641

References    641

34: Ubuntu in the Cloud    643

Why a Cloud?    644

Software as a Service (SaaS)    645

Platform as a Service (PaaS)    645

Infrastructure as a Service (IaaS)    645

Metal as a Service (MaaS)    645

Before You Do Anything    646

Deploy/Install Basics: Public, Private, or Hybrid?    646

Ubuntu Cloud and OpenStack    647

Compute Infrastructure (Nova)    648

Storage Infrastructure (Swift)    648

Networking Service (Neutron)    648

Identity Service (Keystone)    649

Imaging Service (Glance)    649

Dashboard (Horizon)    649

Learning More    649

Juju    649

Getting Started    650

Charms    652

The Juju GUI    654

Juju Quickstart    654

Juju on Mac OS X and Windows    655

Mojo: Continuous Delivery for Juju    655

Snappy Ubuntu    655

Ubuntu Metal as a Service (MaaS)    655

Landscape    656

References    656

35: Managing Sets of Servers    657

Juju    657

Puppet    658

Chef    658

CFEngine    658

Ansible    659

Landscape    659

References    659

36: Name Serving with the Domain Name System (DNS)    661

Understanding Domain Names    663

DNS Servers    663

DNS Records    664

Setting Up a DNS Server with BIND    667

References    669

Part V: Programming Linux

37: Using Programming Tools for Ubuntu    671

Programming with Linux    672

Using the C Programming Project Management Tools Provided with Ubuntu    673

Building Programs with make    673

Using Makefiles    673

Using the autoconf Utility to Configure Code    675

Debugging Tools    676

Using the GNU C Compiler    677

Graphical Development Tools    678

Using the KDevelop Client    678

The Glade Client for Developing in GNOME    679

Use an IDE or SDK    680

References    682

38: Opportunistic Development    683

Version Control Systems    683

Managing Software Projects with Subversion    684

Managing Software Projects with Bazaar    685

Managing Software Projects with Mercurial    686

Managing Software Projects with Git    687

Introduction to Opportunistic Development    688

Launchpad    689

Quickly    691

Bikeshed and Other Tools    695

References    697

39: Helping with Ubuntu Development    699

Introduction to Ubuntu Development    700

Setting Up Your Development System    701

Install Basic Packages and Configure    701

Create a Launchpad Account    702

Set Up Your Environment to Work with Launchpad    702

Developing Apps and Scopes    704

Fixing Bugs and Packaging    704

Finding Bugs to Fix with Harvest    707

Masters of the Universe    707

References    708

40: Helping with Ubuntu Testing and QA    709

Community Teams    709

Ubuntu Testing Team    710

QA Team    711

Bug Squad    711

Test Drive    711

References    714

41: Using Popular Programming Languages    715

Ada    716

Clojure    717

COBOL    717

D    718

Dart    718

Elixir    719

Erlang    719

Forth    720

Fortran    720

Go    720

Groovy    721

Haskell    721

Java    721

JavaScript    722

Lisp    723

Lua    723

Mono    723

OCaml    724

Perl    724

PHP    725

Python    725

Ruby    725

Rust    726

Scala    726

Scratch    726

Vala    727

References    727

42: Beginning Mobile Development for Android    729

Introduction to Android    730

Hardware    730

Linux Kernel    730

Libraries    730

Android Runtime    730

Application Framework    731

Applications    731

Installing Android Studio    731

Install Android Studio    731

Install SDK Packages    731

Create Your First Application    733

References    734

43: Developing for Ubuntu Mobile/Touch    735

Install the SDK    736

Create Your First Application    736

References    737

Index:    739

NOTE

Chapters 44–46 can be accessed online at informit.com/title/9780134268118.

Bonus Chapters

44: Using Perl    Web:1

Using Perl with Linux    Web:1

Perl Versions    Web:2

A Simple Perl Program    Web:2

Perl Variables and Data Structures    Web:4

Perl Variable Types    Web:5

Special Variables    Web:5

Operators    Web:6

Comparison Operators    Web:6

Compound Operators    Web:7

Arithmetic Operators    Web:7

Other Operators    Web:8

Special String Constants    Web:9

Conditional Statements: if/else and unless    Web:9

if    Web:9

unless    Web:10

Looping    Web:10

for    Web:11

foreach    Web:11

while    Web:12

until    Web:12

last and next    Web:12

do ... while and do ... until    Web:13

Regular Expressions    Web:13

Access to the Shell    Web:14

Modules and CPAN    Web:15

Code Examples    Web:16

Sending Mail    Web:16

Purging Logs    Web:18

Posting to Usenet    Web:19

One-Liners    Web:20

Command-Line Processing    Web:20

References    Web:21

45: Using Python    Web:23

Python on Linux    Web:24

The Basics of Python    Web:25

Numbers    Web:25

More on Strings    Web:27

Lists    Web:30

Dictionaries    Web:32

Conditionals and Looping    Web:33

Functions    Web:35

Object Orientation    Web:36

Class and Object Variables    Web:37

Constructors and Destructors    Web:38

Class Inheritance    Web:39

The Standard Library and the Python Package Index    Web:41

References    Web:41

46: Using PHP    Web:43

Introduction to PHP    Web:44

Entering and Exiting PHP Mode    Web:44

Variables    Web: 44

Arrays    Web: 46

Constants    Web: 48

References    Web: 48

Comments    Web: 49

Escape Sequences    Web: 49

Variable Substitution    Web: 50

Operators    Web: 51

Conditional Statements    Web: 53

Special Operators    Web: 55

Switching    Web: 55

Loops    Web: 57

Including Other Files    Web: 59

Basic Functions    Web: 60

Strings    Web: 60

Arrays    Web: 64

Files    Web: 65

Miscellaneous    Web: 68

Handling HTML Forms    Web: 71

Databases    Web: 72

References    Web: 74

Updates

Submit Errata

More Information

Unlimited one-month access with your purchase
Free Safari Membership