Linux Development Tips
Est. read time: 2 minutes | Last updated: August 29, 2024 by John Gentile
Contents
Development Tools
- bytehound: memory profiler for Linux.
Navigation & Searching
- sed: a stream editor
- ranger: console file manager with VI key bindings
- The Tao of tmux
- Facebook PathPicker is a useful Python/shell parser that, when piped in some input (i.e. output of git commands, grep results, searches, etc.), provides a simple UI that allows you to choose certain files to open in your preferred editor.
- The Silver Searcher: very, very fast code searching tool similar to
ack
andgrep
. Used like$ ag my_code ./my_dir
- xclip reads from stdin, or from one or more files, and makes data selection available for use in X applications. Also allows current X clipboard to be used in terminal for pasting.
pushd/popd for faster Terminal Navigation
Instead of using the basic cd
commands to switch around directories, using the directory stack to push ($ pushd /my/dir/
) and pop ($ popd
) directories can be a faster method for navigating a filesystem, especially if directory accesses are commonly used in a FIFO like manner. Running $ dirs -v
can show the current directory stack and allows bringing certain directories to the front of the stack (i.e. $ pushd +2
brings the 3rd directory on the stack to the front of the 0-based FIFO). Assigning aliases in your .bashrc to pushd/popd/dirs further increases the speed of operation.
Vi(m) Key Bindings for GNU Readline (Bash & others)
If the default Emacs key bindings for your terminal are boring, or you’re a fan of Vi key navigation and editing, you can set GNU readline (the process feeding things like the bash terminal, SQL prompts, etc.) to have Vi keybindings by making some changes to your ~/.inputrc
config file. For example, take a look at my .inputrc.
A valuable cheatsheet for this mode can be found here.
Session Sharing
- asciinema FOSS solution that provides a lightweight, text-based approach to recording and sharing terminal sessions.
- Floobits real-time collaborative editing for terminals and other IDEs that support the plugin. Also can integrate video chats with Google+ Hangouts
Networking
Routing
- Manually map an alias/hostname to an IP address by adding to
/etc/hosts
file, like:192.168.56.4 mylinuxbox
File Management
File/Directory Removal
rm -r dir/
removes the directory (and all files and subdirectories within)dir
rm -r dir/*
removes all files and subdirectories indir