Linux Bash Shell

CS50 IDE is currently using Ubuntu 18 LTS

$ cat /etc/*release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.3 LTS"

Terminal Shortcuts

Key/Command

Description

ctrl-a

Go to the beginning of the line you are currently typing on.

ctrl-c

Kill whatever you are running. Also clears everything on current line

ctrl-e

Go to the end of the line you are currently typing on.

ctrl-l

Clear the terminal

ctrl-r

Reverse search history

ctrl-w

Delete word on the left

ctrl-y

Paste

ctrl-z

Puts whatever you are running into a suspended background process. fg restores it

tab

auto completion of file or command

!!

repeat last command

Terminal Navigation

Key/Command

Description

ls -a

list all files and folders

ls <foldername>

list files in folder

ls -lh

Detailed list, human readable

ls -l *.jpg

list jpeg files only

ls -lh <filename>

Result for file only

cd <foldername>

change direcxtory

cd /

goto root directory

cd ..

go up one folder

pwd

print working directory

man <command>

shows manual

Pipe

Key/Command

Description

[command-a] | [command-b]

Run command A and then pass the result to command B e.g ps auxwww | grep google

File Manipulation

tail

Key/Command

Description

tail <filename>

output the last part of files

tail -f <filename>

output appended data as the file grows

Key/Command

Description

head <filename>

output the first part of files

head -n <filename>

print the first NUM lines instead of the first 10

cp

Key/Command

Description

cp image.jpg newimage.jpg

copy and rename a file

cp image.jpg <foldername>

copy to a folder

cp -R stuff otherstuff

copy and rename a folder

cp *.txt stuff

copy all *.txt to stuff folder

cat

Key/Command

Description

cat <filename>

concatenate files and print on the standard output

mkdir

Key/Command

Description

mkdir <foldername>

create a directory

redirect

Key/Command

Description

[command] > [file]

Push output to file, keep in mind it will get overwritten

[command] >> [file]

Append output to existing file

[command] < [file]

Tell command to read content from a file

touch

Key/Command

Description

touch <filename>

change file timestamps

Last updated