Unix Shell
Updated: 23 December 2025
Searching
You can use grep to search in a file
1grep "hello" ./hello.txtOr recursively through a directory:
1grep -R "hello" ./helloAnd using a RegEx
1grep -R ^helloOr case inensitive with -i or for full words with -w
You can even search for something in the output of a command using a pipe (|)
1echo "hello world" | grep "world"Processes
List Processes
To kill a process you can first list running processes
1lsofTo get the PID of a process you can use lsof along with grep, e.g. find a node process:
1lsof | grep nodeFind A Process on a Current Port
E.g for a processs running on port 4001
1lsof -i:4001You can also just get the port by adding -t:
1lsof -t -t:4001Kill a Process by PID
You can kill a process using it’s PID using:
1kill 1234Or with -9 to force
1kill -9 1234Kill a Process by Port
You can kill a process that’s listening on a port by first getting the PID of the process with lsof -t -i:<PORT NUMBER> and pass it into the kill command, e.g. for port 4000
1kill $(lsof -t -i:4000)Jobs/Background Processes
Start a process, e.g. ping
1ping google.comThe use ctrl+z to suspend the task into the background
You can now use the terminal and start other jobs
Once jobs are running you can use jobs to view runnning jobs:
1jobs2
3## which outputs4[1] suspended ping google.com5[2] - suspended ping other.com6[3] + suspended ping hello.comJobs can be resumed using fg for the most recent job, or fg %<JOB NUMBER> to resume a specific job
For example, resuming the ping hello.com can be done with:
1fg %3Navigating
You can use cd to move to specific folders relatively
1cd ../other-folder/my-folderOr even from the user home directory by prefixing with ~
1cd ~/my-stuffAnd you can use - to just swap back to the last directory
1## before, in apps/stuff, now in apps/something-else2cd -3## after, now in apps/something-elseTail/Watch a file as it changes
You can get the tail of a file and watch it as it changes using:
1tail -f ./path/to/fileCopy to Clipboard
To copy contents to the clipboard you can simlpy pipe it to pbcopy like so:
1cat hello.txt | pbcopy