O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Linux for Developers: Jumpstart Your Linux Programming Skills

Book Description

Linux for Developers shows you how to start writing great code for Linux, whether you’re a Linux user with little or no coding experience, or an experienced Windows programmer.

Leading IT trainer/author William “Bo” Rothwell begins with a clear and up-to-date review of modern open source software, including the licensing arrangements and tradeoffs all developers need to understand. He presents essential skills for both Linux command line and GUI environments, introducing text editors and other tools for efficient coding.

Building on this knowledge, Rothwell introduces scripting tools such as Bash, Python, and Perl, as well as traditional object-oriented programming languages such as Java, C++, and C. Finally, he presents a full section on the powerful Git version control system, teaching skills you can use in Linux and many other environments.

  • Access Linux systems, use GUIs, and work at the command line

  • Learn how Linux organizes files and navigate its filesystem

  • Use basic developer commands such as gzip and grep

  • Edit programs with vi and vim, and explore alternative editors

  • Perform basic sysadmin tasks that developers often need to handle

  • Compare Linux languages to choose the best one for each task

  • Write Bash scripts that interact with users or other shell features

  • Program with Python and Perl: flow control, variables, and more

  • Understand Linux features related to building C, C++, and Java programs

  • Stay on top of complex projects with GIT revision control

  • Work in GIT: staging, committing, branches, diffs, merges, and patches

  • Manage local and remote GIT repositories

  • This guide’s modular coverage helps you quickly access whatever information you need right now.

    Table of Contents

    1. About This E-Book
    2. Title Page
    3. Copyright Page
    4. Dedication Page
    5. Contents at a Glance
    6. Contents
    7. Preface
    8. I: Open Source Software
      1. 1 Introduction to Open Source Software
        1. Defining Source Code
          1. Closed Source
          2. Open Source
          3. “Free” Software
        2. Choosing Open Source Licensing
          1. Options
          2. Key Terms
          3. Examples
          4. Useful Links
        3. Summary
    9. II: Linux Essentials
      1. 2 Introduction to Linux
        1. Accessing a Linux System
          1. Choosing the Right Distribution
          2. Logging In
        2. Using the GUI
        3. Basic Command-Line Execution
          1. Command-Line Structure
          2. Getting Help
        4. Summary
      2. 3 The Filesystem
        1. Understanding the Filesystem
          1. Learning the Most Used Directories
          2. Naming Considerations
        2. Navigating the Filesystem
        3. Managing the Filesystem
          1. Managing Directories
          2. Managing Files
        4. Summary
      3. 4 Essential Commands
        1. Command-Line Tools
          1. Viewing Files
          2. Finding Files
          3. Comparing Files
          4. Shell Features
          5. Permissions
        2. Developer Tools
          1. File Compression Commands
          2. The grep Command
        3. Summary
      4. 5 Text Editors
        1. The vi Editor
          1. Why Learn vi?
          2. What Is vim?
          3. Essential vi Commands
        2. Additional Editors
          1. Emacs
          2. gedit and kwrite
          3. nano and joe
          4. lime and bluefish
        3. Summary
      5. 6 System Administration
        1. Essential Tasks
          1. Gaining Access to the Root Account
          2. Displaying Disk Usage
        2. Managing Software
          1. Listing and Finding Software
          2. Installing Software
        3. User Accounts
          1. Adding User Accounts
          2. Modifying User Accounts
          3. Deleting User Accounts
          4. Understanding Groups
          5. Managing Groups
        4. Summary
    10. III: Linux Programming Languages
      1. 7 Overview of Linux Programming Languages
        1. Scripting Languages
          1. BASH Shell Scripting
          2. Perl Scripting
          3. Python Scripting
          4. Additional Scripting Languages
        2. Compiled Languages
          1. C Programming Basics
          2. C++ Programming Basics
          3. Java Programming Basics
        3. IDEs
        4. Summary
      2. 8 BASH Shell Scripting
        1. Basics of BASH Scripting
        2. Conditional Expressions
          1. Integer Comparisons
          2. File Test Comparisons
        3. Flow Control Statements
          1. The while loop
          2. The for Loop
          3. The case Statement
        4. User Interaction
        5. Additional Information
        6. Summary
      3. 9 Perl Scripting
        1. Basics of Perl Scripting
          1. Executing Perl Code
          2. Additional Perl Documentation
          3. Variables and Values
        2. Flow Control
        3. Conditions
        4. Additional Features
        5. Summary
      4. 10 Python Scripting
        1. Basics of Python Scripting
          1. Executing Python Code
          2. Additional Documentation
          3. Variables and Values
        2. Flow Control
        3. Conditions
        4. Additional Features
        5. Summary
      5. 11 C, C++, and Java
        1. Understanding System Libraries
          1. Managing Shared Library Files
          2. Viewing Shared Library Files
        2. Building Packages
          1. Building RPM Packages
          2. Building Debian Packages
        3. Exploring Java Installation and Basics
        4. Summary
    11. IV: Using Git
      1. 12 Git Essentials
        1. Version Control Concepts
          1. The First Generation
          2. The Second Generation
          3. The Third Generation
        2. Installing Git
        3. Git Concepts and Features
          1. Git Stages
          2. Choosing Your Git Repository Host
          3. Configuring Git
        4. Summary
      2. 13 Manage Files with Git
        1. Basic Configuration
        2. git status
          1. Handling a Multiple Location Situation
          2. Telling Git to Ignore a File
        3. Removing Files
        4. Handling Branches
        5. Pushing Branches
        6. Summary
      3. 14 Manage Differences in Files
        1. Executing Diffs
          1. Dealing with White Space
          2. Comparing Branches
        2. Merging Files
        3. Summary
      4. 15 Advanced Git Features
        1. Managing Repositories
          1. Getting Content from the Remote Server
          2. Connecting via SSH
        2. Patching
        3. Summary
    12. Index
    13. Code Snippets