Product Cover Image

Ubuntu Unleashed 2014 Edition: Covering 13.10 and 14.04, CourseSmart eTextbook, 9th Edition

By Matthew Helmke

Published by Sams

Published Date: Nov 5, 2013

Description

For years, Ubuntu Unleashed has been a comprehensive and valuable book for Ubuntu power users of all kinds. Now, a prominent leader of the global Ubuntu community has systematically revised and updated this book to reflect the highly anticipated new Ubuntu 13.10 release. Ubuntu Forum admin Matthew Helmke includes extensive new material for intermediate-to-advanced Linux users, everything they need to know about installation, configuration, system administration, server operations, virtualization, and security. It includes information on topics like Devops, wireless networks, programming in PHP, Perl and others, and covers all of Ubuntu's default software packages, including up-to-date material on new applications, Web development, peripherals, and programming languages.

Table of Contents

Introduction    1

Licensing    2

Who This Book Is For    3

Those Wanting to Become Intermediate or Advanced Users    3

Sysadmins, Programmers, and DevOps    4

What This Book Contains    5

Conventions Used in This Book    6

Part I  Getting Started

1  Installing Ubuntu and Post-Installation Configuration    9

Before You Begin the Installation    9

Researching Your Hardware Specifications    10

Installation Options    10

32-Bit vs 64-Bit Ubuntu    12

Planning Partition Strategies    12

The Boot Loader    13

Installing from DVD or USB Drive    14

Step-by-Step Installation    14

Installing    15

First Update    19

Shutting Down    19

Finding Programs and Files    20

Software Updater    21

The sudo Command    24

Configuring Software Repositories    25

System Settings    27

Detecting and Configuring a Printer    28

Configuring Power Management in Ubuntu    29

Setting the Time and Date    29

Configuring Wireless Networks    31

Troubleshooting Post-Installation Configuration Problems    33

References    34

2  Background Information and Resources    35

What Is Linux?    35

Why Use Linux?    36

What Is Ubuntu?    38

Ubuntu for Business    39

Ubuntu in Your Home    40

Getting the Most from Ubuntu and Linux Documentation    40

Ubuntu Developers and Documentation    42

Websites and Search Engines    42

Web Search Tips    42

Google Is Your Friend    43

Ubuntu Package Listings    43

Commercial Support    44

Documentation    44

Linux Guides    44

Ubuntu    45

Mailing Lists    46

Ubuntu Project Mailing Lists    46

Internet Relay Chat    47

Part II  Desktop Ubuntu

3  Working with Unity    49

Foundations and the X Server    49

Basic X Concepts    50

Using X    51

Elements of the xorg.conf File    52

Starting X    57

Using a Display Manager    58

Changing Window Managers    58

Using Unity, a Primer    59

The Desktop    59

Customizing and Configuring Unity    65

Power Shortcuts    66

References    67

4  On the Internet    69

Getting Started with Firefox    70

Checking Out Google Chrome and Chromium    71

Choosing an Email Client    73

Mozilla Thunderbird    73

Evolution    74

Other Mail Clients    75

RSS Readers    76

Firefox    76

Liferea    76

Instant Messaging and Video Conferencing

with Empathy    77

Internet Relay Chat    78

Usenet Newsgroups    80

Ubuntu One Cloud Storage    82

References    82

5  Productivity Applications    83

Introducing LibreOffice    85

Other Office Suites for Ubuntu    87

Working with GNOME Office    87

Working with KOffice    88

Other Useful Productivity Software    89

Working with PDF    89

Working with XML and DocBook    89

Working with LaTeX    91

Productivity Applications Written for Microsoft Windows    91

References    92

6  Multimedia Applications    93

Sound and Music    93

Sound Cards    94

Adjusting Volume    95

Sound Formats    96

Listening to Music    97

Buying Music in the Ubuntu One Music Store    99

Graphics Manipulation    100

The GNU Image Manipulation Program    101

Using Scanners in Ubuntu    103

Working with Graphics Formats    103

Capturing Screen Images    105

Other Graphics Manipulation Options    106

Using Digital Cameras with Ubuntu    106

Handheld Digital Cameras    106

Using Shotwell Photo Manager    107

Burning CDs and DVDs in Ubuntu    107

Creating CDs and DVDs with Brasero    108

Creating CDs from the Command Line    109

Creating DVDs from the Command Line    110

Viewing Video    112

TV and Video Hardware    112

Video Formats    114

Viewing Video in Linux    114

Personal Video Recorders    116

Video Editing    116

References    117

7  Other Ubuntu Interfaces    119

Desktop Environment    120

KDE and Kubuntu    121

Xfce and Xubuntu    122

LXDE and Lubuntu    123

GNOME 3 and Ubuntu GNOME    124

Ubuntu Kylin    125

References    126

8  Games    127

Ubuntu Gaming    127

Installing Proprietary Video Drivers    128

Installing Games in Ubuntu    129

Warsow    130

Scorched 3D    130

Frozen Bubble    131

SuperTux    132

Battle for Wesnoth    132

Frets on Fire    134

FlightGear    134

Speed Dreams    134

Games for Kids    134

Commercial Games    135

Playing Windows Games    136

References    136

Part III  System Administration

9  Managing Software    139

Ubuntu Software Center    139

Using Synaptic for Software Management    140

Staying Up-to-Date    142

Working on the Command Line    143

Day-to-Day Usage    144

Finding Software    147

Compiling Software from Source    148

Compiling from a Tarball    148

Compiling from Source from the Ubuntu Repositories    149

Configuration Management    150

dotdee    150

OneConf    151

References    151

10  Command-Line Quickstart    153

What Is the Command Line?    154

Accessing the Command Line    155

Text-Based Console Login    156

Logging Out    157

Logging In and Out from a Remote Computer    157

User Accounts    158

Reading Documentation    160

Using Man Pages    160

Using apropros    160

Using whereis    161

Understanding the Linux File System Hierarchy    161

Essential Commands in /bin and /sbin    162

Configuration Files in /etc    163

User Directories: /home    163

Using the Contents of the /proc Directory to

Interact with the Kernel    164

Working with Shared Data in the /usr Directory    165

Temporary File Storage in the /tmp Directory    166

Accessing Variable Data Files in the /var Directory    166

Navigating the Linux File System    166

Listing the Contents of a Directory with ls    166

Changing Directories with cd    168

Finding Your Current Directory with pwd    169

Working with Permissions    169

Assigning Permissions    170

Directory Permissions    171

Altering File Permissions with chmod    172

File Permissions with chgrp    173

Changing File Permissions with chown    173

Understanding Set User ID and Set Group ID Permissions    173

Working with Files    175

Creating a File with touch    175

Creating a Directory with mkdir    175

Deleting a Directory with rmdir    176

Deleting a File or Directory with rm    177

Moving or Renaming a File with mv    177

Copying a File with cp    178

Displaying the Contents of a File with cat    179

Displaying the Contents of a File with less    179

Using Wildcards and Regular Expressions    179

Working as Root    180

Understanding and Fixing sudo    180

Creating Users    183

Deleting Users    184

Shutting Down the System    184

Rebooting the System    185

Commonly Used Commands and Programs    185

References    186

11  Command-Line Master Class    187

Why Use the Command Line?    188

Using Basic Commands    189

Printing the Contents of a File with cat    190

Changing Directories with cd    191

Changing File Access Permissions with chmod    193

Copying Files with cp    193

Printing Disk Usage with du    194

Finding Files by Searching with find    195

Searches for a String in Input with grep    197

Paging Through Output with less    198

Creating Links Between Files with ln    200

Finding Files from an Index with locate    202

Listing Files in the Current Directory with ls    202

Reading Manual Pages with man    204

Making Directories with mkdir    205

Moving Files with mv    205

Listing Processes with ps    206

Deleting Files and Directories with rm    206

Printing the Last Lines of a File with tail    207

Printing Resource Usage with top    207

Using echo    209

Printing the Location of a Command with which    210

Redirecting Output and Input    210

stdin, stdout, sdterr, and Redirection    211

Comparing Files    212

Finding Differences in Files with diff    213

Finding Similarities in Files with comm    213

Combining Commands    214

Pipes    214

Running One or More Tasks in the Background    216

Combining Commands with Boolean Operators    216

Running Separate Commands in Sequence    217

Using Environment Variables    217

Using Common Text Editors    220

Working with nano    222

Working with vi    222

Working with emacs    223

Working with sed and awk    225

Working with Compressed Files    227

Using Multiple Terminals with byobu    227

Polite System Reset using REISUB    229

Limiting Resource Use    230

References    231

12  Managing Users    233

User Accounts    233

The Super User/Root User    234

User IDs and Group IDs    236

File Permissions    236

Managing Groups    237

Group Listing    237

Group Management Tools    238

Managing Users    240

User Management Tools    240

Adding New Users    242

Monitoring User Activity on the System    246

Managing Passwords    246

System Password Policy    246

The Password File    247

Shadow Passwords    248

Managing Password Security for Users    250

Changing Passwords in a Batch    251

Granting System Administrator Privileges to

Regular Users    251

Temporarily Changing User Identity with the su Command    251

Granting Root Privileges on Occasion: The sudo Command    253

Disk Quotas    256

Implementing Quotas    257

Manually Configuring Quotas    257

Related Ubuntu Commands    258

References    259

13  Automating Tasks and Shell Scripting    261

Scheduling Tasks    261

Using at and batch to Schedule Tasks for Later    261

Using cron to Run Jobs Repeatedly    264

Using rtcwake to Wake Your Computer from

Sleep Automatically    266

Basic Shell Control    268

The Shell Command Line    269

Shell Pattern-Matching Support    270

Redirecting Input and Output    271

Piping Data    272

Background Processing    272

Writing and Executing a Shell Script    273

Running the New Shell Program    274

Storing Shell Scripts for System-wide Access    275

Interpreting Shell Scripts Through Specific Shells    276

Using Variables in Shell Scripts    277

Assigning a Value to a Variable    278

Accessing Variable Values    278

Positional Parameters    278

A Simple Example of a Positional Parameter    279

Using Positional Parameters to Access and Retrieve Variables

from the Command Line    280

Using a Simple Script to Automate Tasks    280

Built-In Variables    282

Special Characters    283

Using Double Quotes to Resolve Variables in Strings

with Embedded Spaces    284

Using Single Quotes to Maintain Unexpanded Variables    284

Using the Backslash as an Escape Character    285

Using the Backtick to Replace a String with Output    286

Comparison of Expressions in pdksh and bash    286

Comparing Expressions with tcsh    291

The for Statement    295

The while Statement    297

The until Statement    298

The repeat Statement (tcsh)    299

The select Statement (pdksh)    299

The shift Statement    300

The if Statement    300

The case Statement    302

The break and exit Statements    304

Using Functions in Shell Scripts    304

References    305

14  The Boot Process    307

Running Services at Boot    307

Beginning the Boot Loading Process    308

Loading the Linux Kernel    309

System Services and Runlevels    310

Runlevel Definitions    310

Booting into the Default Runlevel    311

Understanding init Scripts and the Final Stage of Initialization    311

Controlling Services at Boot with Administrative Tools    312

Changing Runlevels    312

Troubleshooting Runlevel Problems    313

Starting and Stopping Services Manually    314

Using Upstart    315

References    316

15  System-Monitoring Tools    317

Console-Based Monitoring    317

Using the kill Command to Control Processes    319

Using Priority Scheduling and Control    320

Displaying Free and Used Memory with free    323

Disk Space    323

Disk Quotas    324

Checking Log Files    324

Graphical Process and System Management Tools    326

System Monitor    326

Conky    328

Other    333

KDE Process- and System-Monitoring Tools    333

Enterprise Server Monitoring    333

Landscape    334

Other    334

References    334

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    348

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    383

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 and Telnet    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    473

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

Testing Samba with the testparm Command    477

Starting, Stopping, and Restarting the smbd Daemon    478

Mounting Samba Shares    479

Configuring Samba Using SWAT    480

Network and Remote Printing with Ubuntu    483

Creating Network Printers    484

Using the Common UNIX Printing System GUI    486

Avoiding Printer Support Problems    488

References    489

23  Apache Web Server Management    491

About the Apache Web Server    491

Installing the Apache Server    492

Installing from the Ubuntu Repositories    493

Building the Source Yourself    494

Starting and Stopping Apache    497

Starting the Apache Server Manually    497

Using /etc/init.d/apache2    498

Runtime Server Configuration Settings    499

Runtime Configuration Directives    500

Editing apache2.conf    500

Apache Multiprocessing Modules    503

Using .htaccess Configuration Files    503

File System Authentication and Access Control    505

Restricting Access with allow and deny    506

Authentication    507

Final Words on Access Control    509

Apache Modules    510

mod_access    510

mod_alias    511

mod_asis    511

mod_auth    511

mod_auth_anon    512

mod_auth_dbm    512

mod_auth_digest    512

mod_autoindex    512

mod_cgi    512

mod_dir and mod_env    512

mod_expires    513

mod_headers    513

mod_include    513

mod_info and mod_log_config    513

mod_mime and mod_mime_magic    513

mod_negotiation    513

mod_proxy    514

mod_rewrite    514

mod_setenvif    514

mod_speling    514

mod_status    514

mod_ssl    514

mod_unique_id    515

mod_userdir    515

mod_usertrack    515

mod_vhost_alias    515

Virtual Hosting    515

Address-Based Virtual Hosts    515

Name-Based Virtual Hosts    516

Logging    517

References    519

24  Nginx Web Server Management    521

About the Nginx Web Server    521

Installing the Nginx Server    523

Installing from the Ubuntu Repositories    523

Building the Source Yourself    524

Configuring the Nginx Server    524

Virtual Hosting    527

Setting Up PHP    528

Adding and Configuring Modules    530

References    530

25  Other HTTP Servers    531

lighttpd    531

Yaws    532

Cherokee    533

Jetty    533

thttpd    534

Apache Tomcat    534

References    534

26  Remote File Serving with FTP    535

Choosing an FTP Server    535

Choosing an Authenticated or Anonymous Server    536

Ubuntu FTP Server Packages    536

Other FTP Servers    536

Installing FTP Software    537

The FTP User    538

Configuring the Very Secure FTP Server    540

Controlling Anonymous Access    541

Other vsftpd Server Configuration Files    542

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

References    544

27  Handling Email    545

How Email Is Sent and Received    545

The Mail Transport Agent    546

Choosing an MTA    548

The Mail Delivery Agent    548

The Mail User Agent    549

Basic Postfix Configuration and Operation    550

Configuring Masquerading    552

Using Smart Hosts    553

Setting Message Delivery Intervals    553

Mail Relaying    554

Forwarding Email with Aliases    554

Using Fetchmail to Retrieve Mail    555

Installing Fetchmail    555

Configuring Fetchmail    555

Choosing a Mail Delivery Agent    559

Procmail    559

Spamassassin    559

Squirrelmail    560

Virus Scanners    560

Autoresponders    560

Alternatives to Microsoft Exchange Server    560

Microsoft Exchange Server/Outlook Client    561

CommuniGate Pro    561

Oracle Beehive    562

Bynari    562

Open-Xchange    562

phpgroupware    562

PHProjekt    562

Horde    562

References    563

28  Proxying, Reverse Proxying, and Virtual Private Networks (VPN)    565

What Is a Proxy Server?    565

Installing Squid    566

Configuring Clients    566

Access Control Lists    567

Specifying Client IP Addresses    571

Sample Configurations    572

Virtual Private Networks (VPN)    574

Setting Up a VPN Client    575

Setting Up a VPN Server    577

References    579

29  Administering Relational Database Services    581

A Brief Review of Database Basics    582

How Relational Databases Work    584

Understanding SQL Basics    586

Creating Tables    586

Inserting Data into Tables    587

Retrieving Data from a Database    588

Choosing a Database: MySQL Versus PostgreSQL    590

Speed    590

Data Locking    591

ACID Compliance in Transaction Processing to

Protect Data Integrity    591

SQL Subqueries    592

Procedural Languages and Triggers    592

Configuring MySQL    593

Setting a Password for the MySQL Root User    594

Creating a Database in MySQL    594

Configuring PostgreSQL    596

Initializing the Data Directory in PostgreSQL    596

Creating a Database in PostgreSQL    597

Creating Database Users in PostgreSQL    598

Deleting Database Users in PostgreSQL    598

Granting and Revoking Privileges in PostgreSQL    599

Database Clients    599

SSH Access to a Database    600

Local GUI Client Access to a Database    601

Web Access to a Database    602

The MySQL Command-Line Client    603

The PostgreSQL Command-Line Client    604

Graphical Clients    605

References    605

30  NoSQL Databases    607

Key/Value Stores    610

Berkeley DB    610

Cassandra    611

Memcached and MemcacheDB    611

Redis    612

Riak    612

Document Stores    612

CouchDB    613

MongoDB    614

BaseX    614

Wide Column Stores    615

BigTable    615

HBase    615

Graph Stores    616

Neo4j    616

OrientDB    616

HyperGraphDB    616

FlockDB    617

References    617

31  Lightweight Directory Access Protocol (LDAP)    619

Configuring the Server    620

Creating Your Schema    620

Populating Your Directory    622

Configuring Clients    624

Evolution    624

Thunderbird    625

Administration    625

References    626

32  Linux Terminal Server Project (LTSP)    627

Requirements    628

Installation    631

Using LTSP    632

References    633

33  Virtualization on Ubuntu    635

KVM    637

VirtualBox    641

VMware    643

Xen    643

References    643

34  Ubuntu in the Cloud    645

Why a Cloud?    646

Software as a Service (SaaS)    647

Platform as a Service (PaaS)    647

Infrastructure as a Service (IaaS)    647

Metal as a Service (MaaS)    647

Before You Do Anything    648

Ubuntu Cloud and Eucalyptus    648

Deploy/Install Basics: Public or Private?    650

Public    650

Private    651

A euca2ools Primer    654

Ubuntu Cloud and OpenStack    656

Compute Infrastructure (Nova)    656

Storage Infrastructure (Swift)    657

Imaging Service (Glance)    657

Installation    657

Creating an Image    667

Instance Management    670

Storage Management    671

Network Management    671

An OpenStack Commands Primer    672

Learning More    672

Juju    672

Getting Started    673

Charms    676

The Juju GUI    677

Juju on Mac OS X    678

Ubuntu Metal as a Service (MaaS)    678

Landscape    679

References    679

35  Managing Sets of Servers    681

Juju    681

Puppet    682

Chef    682

CFEngine    683

Ansible    683

Landscape    683

References    683

36  Name Serving with the Domain Name System (DNS)    685

Understanding Domain Names    687

DNS Servers    687

DNS Records    688

Setting Up a DNS Server with BIND    691

References    693

Part V  Programming Linux

37  Opportunistic Development    695

Version Control Systems    696

Managing Software Projects with Subversion    696

Managing Software Projects with Bazaar    697

Managing Software Projects with Mercurial    698

Managing Software Projects with Git    699

Introduction to Opportunistic Development    700

Launchpad    701

Quickly    703

Ground Control    707

Bikeshed and Other Tools    711

References    713

38  Helping with Ubuntu Development    715

Introduction to Ubuntu Development    716

Setting Up Your Development System    717

Install Basic Packages and Configure    717

Create a Launchpad Account    718

Set Up Your Environment to Work with Launchpad    718

Fixing Bugs and Packaging    720

Finding Bugs to Fix with Harvest    723

Masters of the Universe    723

References    723

39  Helping with Ubuntu Testing and QA    725

Community Teams    725

Ubuntu Testing Team    726

QA Team    726

Bug Squad    727

Test Drive    727

References    730

40  Using Perl    731

Using Perl with Linux    731

Perl Versions    732

A Simple Perl Program    732

Perl Variables and Data Structures    734

Perl Variable Types    735

Special Variables    735

Operators    736

Comparison Operators    736

Compound Operators    737

Arithmetic Operators    737

Other Operators    738

Special String Constants    738

Conditional Statements: if/else and unless    739

if    739

unless    740

Looping    740

for    740

foreach    741

while    741

until    742

last and next    742

do    while and do    until    742

Regular Expressions    743

Access to the Shell    744

Modules and CPAN    745

Code Examples    745

Sending Mail    745

Purging Logs    747

Posting to Usenet    748

One-Liners    749

Command-Line Processing    750

References    750

41  Using Python    753

Python on Linux    754

The Basics of Python    755

Numbers    755

More on Strings    757

Lists    760

Dictionaries    762

Conditionals and Looping    763

Functions    765

Object Orientation    766

Class and Object Variables    767

Constructors and Destructors    768

Class Inheritance    769

The Standard Library and the Python Package Index    771

References    771

42  Using PHP    773

Introduction to PHP    774

Entering and Exiting PHP Mode    774

Variables    774

Arrays    776

Constants    778

References    778

Comments    779

Escape Sequences    779

Variable Substitution    780

Operators    781

Conditional Statements    783

Special Operators    784

Switching    785

Loops    787

Including Other Files    789

Basic Functions    790

Strings    790

Arrays    793

Files    795

Miscellaneous    797

Handling HTML Forms    801

Databases    801

References    804

43  C/C++ Programming Tools for Ubuntu    805

Programming in C with Linux    806

Using the C Programming Project Management

Tools Provided with Ubuntu    807

Building Programs with make    807

Using Makefiles    807

Using the autoconf Utility to Configure Code    809

Debugging Tools    810

Using the GNU C Compiler    811

Graphical Development Tools    812

Using the KDevelop Client    812

The Glade Client for Developing in GNOME    813

References    814

Part VI  Appendices

44  Using Other Popular Programming Languages    817

Ada    818

Clojure    819

COBOL    819

D    820

Erlang    820

Forth    821

Go    821

Fortran    822

Groovy    822

Haskell    822

Java    823

JavaScript    823

Lisp    824

Lua    824

Mono    825

Ruby    825

Rust    826

Scala    826

Scratch    826

Vala    827

References    827

45  Beginning Mobile Development for Android    829

Introduction to Android    830

Hardware    830

Linux Kernel    830

Libraries    830

Android Runtime    830

Application Framework    830

Applications    831

Installing the Android SDK    831

Install Java    831

Install Eclipse    831

Install the SDK    831

Install the ADT Eclipse Plug-In    832

Install Other Components    832

Install Virtual Devices    833

Create Your First Application    834

References    835

46  Developing for Ubuntu Mobile/Touch    837

Install the SDK    838

Create Your First Application    838

Learn About Ubuntu Design    839

Study the User Interface Toolkit    839

References    840

Index    841

Purchase Info ?

With CourseSmart eTextbooks and eResources, you save up to 60% off the price of new print textbooks, and can switch between studying online or offline to suit your needs.

Once you have purchased your eTextbooks and added them to your CourseSmart bookshelf, you can access them anytime, anywhere.

Buy Access

Ubuntu Unleashed 2014 Edition: Covering 13.10 and 14.04, CourseSmart eTextbook, 9th Edition
Format: Safari Book

$24.99 | ISBN-13: 978-0-13-347570-8