There is a really handy way to make your time in bash in the terminal a little bit easier with some shortcuts. Anything you repeatedly have to type into the terminal can be made into a shortcut, and anything that saves time is generally a good idea!
Let's add a shortcut that would allow me to get to my DSI6 lessons folder from any other folder in my machine. For these to be useful in every folder, we will need to use the absolute path to the folder rather than the relative path.
My Lessons folder is at
/Users/Tim/Documents/DSI6/lessons so if I wanted to get there from any folder in my machine, I'd need to type:
cd /Users/Tim/Documents/DSI6/lessons but I am lazy, so I don't want to do that every time, I'll make a shortcut so I can type 'dsi6' and immediately get to that folder
To find & edit your bash profile
cd into the teminal. This will take you directly to your user folder
to check if you have a bash profile already set up, type
ls -a and look to see if you have a file named .bash_profile (no worries if you don't). When you installed Anaconda, it probably made one for you anyway.
to edit this file type
vim .bash_profile (this will create the file if it didn't exist before)
Within this file is where we will save some shortcuts
to get into insert mode, type 'i'
To add a commented line start the line with a '#' eg
# DSI SHORTCUTS
To make the shortcut type:
alias dsi6="cd /Users/Tim/Documents/DSI6/lessons"Remember that this is my path - not yours, so you'd need to replace the '/Users/Tim/Documents/DSI6/lessons' with the absolute path to your lessons directory
Once you have finished in vim, you'll need to hit escape, then type
:wq (for Write, Quit)
We have just one more step. Every time you make a change in the bash profile, you'll need to reload the profile which you could do by either closing terminal (killing every running terminal session) and restarting or by typing
source ~/.bash_profile in the terminal
An example block from my profile
alias gsu="git status -uno" alias ga="git add" alias gc="git commit -m " alias gps="git push" alias gpl="git pull" alias gplu="git pull upstream master"
You can also set a variable in the profile that you can access in any commands
I can then access this variable by using
$EC2 in any command
More Useful Terminal Commands
You can chain commands together within the shortcuts which is even better - less typing:
alias morning="cd /Users/Tim/Documents/DSI6/lessons && git pull upstream master"
this would allow me to type 'morning' into my terminal and immediately move to the lessons folder and pull today's lesson from the upstream repo
you can chain commands with either ';' or '&&'. if you use ';' the commands will all run regardless of any failure in previous commands wheras '&&' will only perform the next commands if the previous command did not cause an error.
You can run a command in the background by starting a daemon process. This is done by adding a space then
& at the end of your command this will mean the process will run in the background even if you close the terminal window.
Find which Processes are running
You can see what processes are running on your machine by typing
ps -ax you'll see that you get a huge list returned which is not super useful, so you can filter this output with grep.
ps -ax | grep jupyter will show only the services running which have jupyter in the name.
| character allows you to pass the output from one command to the next, in this case we are passing all the text output from
ps -ax to grep, which will filter only the rows that contain 'jupyter'
You can kill a process that is running by running the command
kill followed by the PID. The PID is the number that is the first number on the row alongside the service you have found using the
ps -ax command