Book Image

The Software Developer's Guide to Linux

By : David Cohen, Christian Sturm
5 (2)
Book Image

The Software Developer's Guide to Linux

5 (2)
By: David Cohen, Christian Sturm

Overview of this book

Developers are always looking to raise their game to the next level, yet most are completely lost when it comes to the Linux command line. This book is the bridge that will take you to the next level in your software development career. Most of the skills in the book can be immediately put to work to make you a more efficient developer. It’s written specifically for software engineers, not Linux system administrators, so each chapter will equip you with just enough theory to understand what you’re doing before diving into practical commands that you can use in your day-to-day work as a software developer. As you work through the book, you’ll quickly absorb the basics of how Linux works while you get comfortable moving around the command line. Once you’ve got the core skills, you’ll see how to apply them in different contexts that you’ll come across as a software developer: building and working with Docker images, automating boring build tasks with shell scripts, and troubleshooting issues in production environments. By the end of the book, you’ll be able to use Linux and the command line comfortably and apply your newfound skills in your day-to-day work to save time, troubleshoot issues, and be the command-line wizard that your team turns to.
Table of Contents (20 chapters)
18
Other Books You May Enjoy
19
Index

Practical commands for working with Linux processes

Here are some of the commands you’ll use most often:

  • ps – Shows processes on the system; you saw an example of this command earlier in the chapter. Flags modify which process attributes are displayed as columns. This command is usually used with filters to control how much output you get, for example, (ps aux | head –n 10) to cut your output down to just the top 10 lines. A few more useful tricks:
    • ps –eLf shows thread information for processes
    • ps -ejH is useful for seeing the relationships between parent and child processes visually (children are indented under their parents)

    Figure 2.2: Examples of outputs of the ps command with flags

  • pgrep – Find process IDs by name. Can use regular expressions.

Figure 2.3: Examples of outputs of the pgrep command with flags

  • top – An interactive program that polls all processes (once a second, by default) and outputs a sorted list of resource usage (you can configure what it sorts by). Also displays total system resource usage. Press Q or use Ctrl + C to quit. You’ll see an example of this command’s output later in this chapter.
  • iotop – Like top, but for disk IO. Extremely useful for finding IO-hungry processes. Not installed on all systems by default, but available via most package managers.

Figure 2.4: Example of output of the iotop command

  • nethogs – Like top, but for network IO. Groups network usage by process, which is incredibly convenient. Available via most package managers.
Figure 2.5: Example of output of the nethogs command
  • kill – Allows users to send signals to processes, usually to stop them or make them re-read their configuration files. We’ll explain signals and kill command usage later in this chapter.