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...
Main Authors: | , |
---|---|
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