The software developer's guide to Linux a practical, no-nonsense guide to using the Linux command line and utilities as a software developer

A must-read for software developers lacking command-line skills, focusing on Linux. It provides transferable command-line proficiency for use in Mac OS, Unix, and Windows with WSL Key Features A practical, no-nonsense guide specifically written for developers (not sysadmins) who need to quickly lear...

Full description

Bibliographic Details
Main Authors: Cohen, David, Sturm, Christian (Author)
Format: eBook
Language:English
Published: Birmingham, UK Packt Publishing Ltd. 2024
Series:Expert insight
Subjects:
Online Access:
Collection: O'Reilly - Collection details see MPG.ReNa
Table of Contents:
  • Step 3: Copy the public key to your server
  • Step 4: Test it out!
  • Converting SSH2 keys to the OpenSSH format
  • What we are trying to achieve
  • How to convert the SSH2-formatted key to OpenSSH
  • The other direction: Converting SSH2 keys to the OpenSSH format
  • SSH-agent
  • Common SSH errors and the -v (verbose) argument
  • File transfer
  • SFTP
  • SCP
  • Clever examples
  • Without SFTP or SCP
  • Directory upload and .tar.gz compression
  • Tunnels
  • Local forwarding
  • Proxying
  • The configuration file
  • Conclusion
  • Chapter 14: Version Control with Git
  • Some background on Git
  • What is a distributed version control system?
  • Git basics
  • First-time setup
  • Initialize a new Git repository
  • Make and see changes
  • Stage and commit changes
  • Optional: add a remote Git repository
  • Pushing and pulling
  • Cloning a repository
  • Terms you might come across
  • Repository
  • Bare repository
  • Branch
  • Main/master branch
  • HEAD
  • Tag
  • Shallow
  • Merging
  • Merge commit
  • Merge conflict
  • Stash
  • Pull request
  • Cherry-picking
  • Bisecting
  • Rebasing
  • Best practices for commit messages
  • Good commit messages
  • GUIs
  • Useful shell aliases
  • Poor man's GitHub
  • Considerations
  • 1. Connect to your server
  • 2. Install Git
  • 3. Initialize a repository
  • 4. Clone the repository
  • 5. Edit the project and push your changes
  • Conclusion
  • Chapter 15: Containerizing Applications with Docker
  • How containers work as packages
  • Prerequisite: Docker install
  • Docker crash course
  • Creating images with a Dockerfile
  • Container commands
  • docker run
  • docker image list
  • docker ps
  • docker exec
  • docker stop
  • Docker project: Python/Flask application container
  • 1. Set up the application
  • 2. Create the Docker image
  • 3. Start a container from your image
  • Containers vs. virtual machines
  • Exceptions
  • Executing previous commands with !
  • Re-running a command with the same arguments
  • Prepending a command to something in your history
  • Jumping to the beginning or end of the current line
  • Conclusion
  • Chapter 5: Introducing Files
  • Files on Linux: the absolute basics
  • Plaintext files
  • What is a binary file?
  • Line endings
  • The filesystem tree
  • Basic filesystem operations
  • ls
  • pwd
  • cd
  • touch
  • less
  • tail
  • mv
  • Moving
  • Renaming
  • cp
  • mkdir
  • rm
  • Editing files
  • File types
  • Symbolic links
  • Hard links
  • The file command
  • Advanced file operations
  • Searching file content with grep
  • Finding files with find
  • Copying files between local and remote hosts with rsync
  • Combining find, grep, and rsync
  • Advanced filesystem knowledge for the real world
  • FUSE: Even more fun with Unix filesystems
  • Conclusion
  • Chapter 6: Editing Files on the Command Line
  • Nano
  • Installing nano
  • Nano cheat sheet
  • File handling
  • Editing
  • Search and replace
  • Vi(m)
  • Vi/vim commands
  • Modes
  • Command mode
  • Normal mode
  • Tips for learning vi(m)
  • Use vimtutor
  • Think in terms of mnemonics
  • Avoid using arrow keys
  • Avoid using the mouse
  • Don't use gvim
  • Avoid starting with extensive configuration or plugins
  • Vim bindings in other software
  • Editing a file you don't have permissions for
  • Setting your preferred editor
  • Conclusion
  • Chapter 7: Users and Groups
  • What is a user?
  • Root versus everybody else
  • sudo
  • What is a group?
  • Mini project: user and group management
  • Creating a user
  • Create a group
  • Modifying a Linux user
  • Adding a Linux user to a group
  • Removing a user from a group
  • Removing a Linux user
  • Remove a Linux group
  • Advanced: what is a user, really?
  • User metadata / attributes
  • A note on scriptability
  • Conclusion
  • Cover
  • Copyright
  • Contributors
  • Table of Contents
  • Preface
  • Chapter 1: How the Command Line Works
  • In the beginning...was the REPL
  • Command-line syntax (read)
  • Command line vs. shell
  • How does the shell know what to run? (evaluate)
  • A quick definition of POSIX
  • Basic command-line skills
  • Unix filesystem basics
  • Absolute vs. relative file paths
  • Absolute vs. relative pathname review
  • Opening a terminal
  • Looking around
  • command-line navigation
  • pwd
  • print working directory
  • ls
  • list
  • Moving around
  • cd
  • change directory
  • find
  • find files
  • Reading files
  • less
  • page through a file
  • Making changes
  • touch
  • create an empty file, or update modification time for an existing one
  • mkdir
  • create a directory
  • rmdir
  • remove empty directories
  • rm
  • remove files and directories
  • mv
  • move or rename files and directories
  • Getting help
  • Shell autocompletion
  • Conclusion
  • Chapter 2: Working with Processes
  • Process basics
  • What is a Linux process made of?
  • Process ID (PID)
  • Effective User ID (EUID) and Effective Group ID (EGID)
  • Environment variables
  • Working directory
  • Practical commands for working with Linux processes
  • Advanced process concepts and tools
  • Signals
  • Practical uses of signals
  • Trapping
  • The kill command
  • lsof
  • show file handles that a process has open
  • Inheritance
  • Review
  • example troubleshooting session
  • Conclusion
  • Chapter 3: Service Management with systemd
  • The basics
  • init
  • Processes and services
  • systemctl commands
  • Checking the status of a service
  • Starting a service
  • Stopping a service
  • Restarting a service
  • Reloading a service
  • Enable and disable
  • A note on Docker
  • Conclusion
  • Chapter 4: Using Shell History
  • Shell history
  • Shell configuration files
  • History files
  • Searching through shell history