Hi readers, it’s been a long time since my last blog. I’m not used to blogging regularly, but anyways, I’m trying to keep up. So today I’ll share some shell tips and tricks that I discoverd/read/picked-up-from-the-internet/learned-from-my-friends so that you can make your life easier too.
1. Copy text from your shell to your clipboard.
Hate to select text manually from the terminal ? I feel you, here’s how you can do it.
1# Echo stuff and pipe it into your cliboard
2echo "Hello" | xsel -ib
4# Or you can cat a file and copy it to your clip-board
5cat /etc/passwd | xsel -ib
1sudo apt install xsel
2. Pipe text straight to vim to edit
So I used to usually pipe the out put to a file first and then
vim it , but turns out you can directly pass stuff to it
1curl <some-website> | grep <some regex> | vim -
Now you can edit your output and then save it to any file by going to command mode and
3. Split terminals
For doing this I used
tmux , and properly using tmux requires it’s own blog , or multiple blogs tbh, so i’ll just share the basics.
1sudo apt install tmux
Use my dotfile for tmux, that would make it really easy for you to use
1git clone https://github.com/ev1lm0rty/DotFiles
2mv ~/.tmux.conf ~/.tmux.conf.bak
3cp DotFiles/tmux.conf ~/.tmux.conf
Now open your terminal and start tmux by simply typing
It would look something like this :
Now to split terminal
- Vertically -
Ctrl + b v
- Horizontally -
Ctrl + b h
To move between terminals
Alt + Up/Down/Left/Right
To exit tmux
Ctrl + d or simply type
4. Find files easily
This a tool that I discovered recently, and it has changed my whole work flow. fzf or fuzzy finder dynamically find files as you type. Obviously we can use it for so many different things, but for context of this blog, I’ll just show you how to find files using fzf.
1sudo apt install fzf
To exit, simply press
You can pipe fzf to some other tool for example
Now you might be wondering, why the output from my last command
cat looks so beautiful ? for that, let’s go to our next tip
5. Turn your boring cat to a beautiful cat
1sudo apt install bat
3# or you can add an alias to your .bashrc/zshrc file to run batcat when cat is run
4## like this: alias cat='batcat'
5## Restart your shell and then batcat will run whenever you will type cat
This will beautify and print your file as per it’s format and it will also work like
6. Do you often forget command syntax ? Me too
And I found the best tool for it
1go get -u github.com/cheat/cheat/cmd/cheat
or download it from their releases
Then just run it for any command you’re forgetting, for example -
and it will output
Pretty cool right ?
7. Want to send file from your laptop to your phone quickly ?
Say, both your phone and laptop are on the same network We can use a python module to create a webserver quickly and then we can download the file on our moblie phones using any browser
- Step 1
3python3 -m http.server
5## Find the ip of your laptop
- Step 2
On your phone, open up a browser and head to
it will look something like
Just click on it and it will download it on your phone. Sweet isn’t it ?
8. Open temporary editor to run command
We have all faced this problem when writing long one-liners in bash. So here’s what I do,
Ctrl+X Ctrl+E and this opens an editor, then you can type your commands here and exit the editor, this will run your command as soon as you exit.
Now you can type bash programs, without worrying to make a mistake
9. Remove bloated directories and clean clutter
We all have some bloated directories, that are taking up too much space, we can clear them out with this tool
1sudo apt install ncdu
Now you can choose your directory (let’s say Work) and then run this command, this will show your the space that is being taken by each directory and you can delete files from inside this interactive command
5# the '.' specifies current directory
It will open up an interactive environment like this:
You can move in and out of directories by using arrow keys and then you can delete the files by pressing the key
Be careful !! Don’t delete any important files
More options are also available
10. Now wrapping up with some one-liners that I use
1# Useful one-liners
3## Find your public ip from the command line
7## View contents while simultaneously writing it to a file
9bash some-script-that-will-give-output.sh | tee file-to-write.txt
11## Run previous command by using two exclaimation marks in the next line
13echo "I want to print this twice"
15!! # This will rerun the last command
So these were (a few of so many) shell tips and tricks I used in my day to day work flow. I will try to make a part two for some advance shell/linux tips and tricks in the future. If you find these helpful you can buy me a beer ;)