Since the start of my career, Linux has been my bread and butter. The terminal screen keeps me busy most of the time. I enjoy customizing my work environment by writing aliases, functions and shell scripts that offloads most of my tasks. Also a few Open source tools came to my rescue, believe me they increased my productivity to a whole new level!

Let me share you with some of my personal favorites!!!

  • StarShip : If you want to customize your shell prompt, then you might need to check Starship. Starship is blazingly fast, infinitely customizable shell prompt. I have been using it since long and this helps me a lot while navigating the file system. The prompt keeps me informed about my language environment of current directory, its tracked with git and much more……!
  • fzf : Fuzzy finder is my must have tool. You can quickly find files, folders and even commands in history with fzf. It is highly customizable and you are gonna fall in love with this tool!! This tool even integrates with tmux which makes it very powerfull. If you learn by watching videos, then check out this screencast!
  • transfer.sh : You might encounter a situation when you have to quickly share log files, snippets or even small shell scripts. transfer.sh is an easy way to file sharing from the command line. Just type transfer.sh followed by the name of the file you want to share and it will upload your file and return you a shareable link. You can upload upto 10GB of files, encrypt them, customize Max Downloads, Max Days to keep and much more!

Keep it handy by placing this function in your .bashrc file.

#TRANSFER.SH FOR TRANSFERING FILES (SUPPORTS MAX UPLOAD OF 10GB AND FILES STORED FOR 14 DAYS) Github:
transfer() {
	if [ $# -eq 0 ];
	then echo -e "No arguments specified. Usage:\necho transfer /tmp/test.md\ncat /tmp/test.md | transfer test.md";
	     return 1;
        fi
	tmpfile=$( mktemp -t transferXXX );
	if tty -s; then basefile=$(basename "$1" | sed -e 's/[^a-zA-Z0-9._-]/-/g');
		curl --progress-bar --upload-file "$1" "https://transfer.sh/$basefile" >> $tmpfile;
	else
		curl --progress-bar --upload-file "-" "https://transfer.sh/$1" >> $tmpfile ;
	fi;
		cat $tmpfile && echo "";
		rm -f $tmpfile;
       }
  • Tmux : Working with multiple shell tabs is hectic and confusing sometimes. You have to keep a tap of what is running under what tab and this gets cumbersome by the time. Tmux is a terminal mutiplexer that can be of a great help! It enables a number of terminals to be created, accessed, and controlled from a single screen.


  • fd : fd is a blazingly fast, user-friendly alternative to find command on linux. It is relatively similar to find in purpose. I would like to call it as find on steriods!

Demo

Hope this give you a glimpse of how you can customize your shell environment. The list is not complete, there are still plethora of tools out there! Share me with your favourites! :)