“ leads the willing and drags along the reluctant “ -maybe Seneca Shell Nowadays, working with a shell is an inherent part of the everyday life of a software engineer, therefore, I would dare to say that any “trick” that can improve the general speed or knowledge regarding this matter is rather important. Without further ado, I will share a compilation of different commands which has helped me greatly. 10 Bash Commands to Improve Speed Go Back to the Previous Directory Going back to the previous directory (based on $OLDPWD internal variable) - especially useful when navigating through long paths: cd - 2. Execute Your Last Command Execute last command - useful for rerunning the previous command: !! 3. Check the Return Code of Your Last Command Check the return code of the last command - useful when checking various return codes (in Unix and Linux, every command returns a numeric code between 0-255): echo $? 4. Get the Process ID Get the Process ID of this shell itself - is not always defined by the bash shell: SHELL # echo $SHELL ps -p $(echo $$) PID TTY TIME CMD 26719 pts/0 00:00:01 bash 5. Execute the Emulating Tree Command Emulating command - on minimal distros, command may not exists, therefore the following alias provides the much needed recursive directory listing: tree tree alias tree='function tree(){ find ${1:-.} | sed -e "s/[^-][^\/]*\// |/g" -e "s/|\([^ ]\)/|-\1/"; unset -f tree;}; tree' 6. Ad-hoc YAML Linter Ad-hoc YAML linter as alias - not a proper linter but useful for quick check of various YAML files: alias ymllint='python -c "import sys,yaml as y;y.safe_load(open(sys.argv[1]))"' 7. Ad-hoc JSON Linter Ad-hoc JSON linter as alias - based on JSON processor: jq alias jsonl='jq "." >/dev/null <' 8. Set the Sell Set the sell to work in either or mode - no debate is needed: vi emacs # echo $SHELLOPTS to check set -o vi set - o emacs 9. Globbing “searching for files using wildcard expansion”-list files that start with the letter : globbing a # * matches any sequence of characters ls a* 10. Create a Nested Structure Creating a nested structure of directories: mkdir -p provisioning/{datasources,notifiers,dashboards/backup} # will create . └── provisioning ├── dashboards │ └── backup ├── datasources └── notifiers 11. Reverse search Want to re-run a lengthier and complicated command and reverse-search (CTRL+R) is not enough, just use to list the previously used commands and then history !<line_no> to re-run command or to print the command without running it: !<line_no>:p " alone is eternal, perpetual, immortal" - maybe Schopenhauer Shell