Get acquainted with the command line
Unix Cheat Sheet
Unix commands are useful to get familiar with in order to use software with command line interfaces. Many computers have a terminal program through which users may use an operating system. These commands can also be used on Unix-like systems, such as Mac OS, and a wide variety of Linux distributions, including Debian and Ubuntu. In a Unix shell session, a user can "pipe" commands, use wildcards, and write scripts that automate a wide variety of tasks.
General commands
pwd
Print working directory - show where you are as full path. Useful if you're lost or exploring
man {command}
Shows the manual. For example, type man rm
to read the manual for the rm
command
whoami
Shows which user account is being used in a current session
whatis {command}
Give short description of command
List a directory
ls
shows the contents of a directory. It can be used with many options and attributes to show particular settings given to files, including file permissions.
It's ok to combine attributes, e.g. ls -laF
gets a long listing of all files with types.
ls {path}
List the contents of the path
ls {path_1} {path_2}
List both {path_1} and {path_2}
ls -l {path}
Long listing, with date, size and permissions
ls -a {path}
Show all files, including important .dot files that don't otherwise show
ls -F {path}
Show type of each file. "/" = directory, "*" = executable
ls -R {path}
Recursive listing, with all sub-directories
Change to directory
cd
is to change directory.
cd {dirname}
There must be a space between the command and the {dirname}
cd ~
Go back to home directory, useful if you're lost
cd ..
Go back one directory
Make a new directory
mkdir {dirname}
Make a directory and name it
Remove a directory
rmdir {dirname}
Only works if the directory is empty
rm -r {dirname}
Remove all files and sub-directories. Careful!
Copy a file or directory
cp {file1} {file2}
Copy file1 and call it file2
cp -r {dir1} {dir2}
Recursive, copy directory and all subdirectories
cat {newfile} >> {oldfile}
Append newfile to end of oldfile
Move (or rename) a file
mv {file1} folder2/{file1}
Move file1 to a subdirectory called folder2
mv {oldname} {newname}
In UNIX, moving a file and renaming it are the same thing, much like moving or renaming pages on a wiki
Delete a file
Warning: Be very careful when using the rm
command. Anything removed with it will be gone forever - there is no undo!
rm {file1}
Removes the file named file1
View a text file
more {filename}
View file one screen at a time
less {filename}
Like more, with extra features
cat {filename}
View file, but it scrolls
cat {filename} | more
View file one screen at a time
Edit a text file
nano {filename}
Basic text editor for Unix-like systems, including Mac
gedit {filename}
A text editor included with GNOME systems
Create a text file.
touch {filename}
Create a file and save it. It will remain empty until you edit it
cat > {filename}
Enter your text (multiple lines with enter are ok) and press control-d to save
nano {filename}
Create some text and save it in a file
Compare two files
diff {file1} {file2}
Show the differences
sdiff {file1} {file2}
Show files side by side
Other text commands
grep '{pattern}' {file}
Find regular expression in file
spell {file}
Display misspelled words
wc {file}
Count words in file
wc -l {file}
Count the number of lines in a file
Make an Alias
alias {name}='{command}'
Put the command in 'single quotes'. More useful in your .bashrc file
Wildcards and Shortcuts
*
Match any string of characters, eg page* gets page1, page10, and page.txt
?
Match any single character, eg page? gets page1 and page2, but not page10
[...]
Match any characters in a range, eg page[1-3] gets page1, page2, and page3
~
Short for your home directory, e.g. cd ~
will take you home, and rm -r ~
will destroy it
.
The current directory
..
The parent directory, e.g. cd ..
to go one directory up the tree
Pipes and Redirection
You pipe a command to another command, and redirect it to a file. The pipe symbol is |
.
{command} > {file}
Redirect output to a file, e.g. ls > list.txt
writes directory to file
{command} >> {file}
Append output to an existing file, e.g. cat update >> archive
adds update to end of archive
{command} < {file}
Get input from a file, e.g. sort < file.txt
{command} < {file1} > {file2}
Get input from file1, and write to file2, e.g. sort < old.txt > new.txt
sorts old.txt
and saves as new.txt
{command} | {command}
Pipe one command to another, e.g. ls | more
gets directory and sends it to more to show it one page at a time
System info
date
Show date and time
df
Check system disk capacity
du
Check your disk usage and show bytes in each directory
du -h
Check your disk usage in a human readable format
printenv
Show all environmental variables
uptime
Find out system load
w
Who's online and what are they doing?
top
Real time processor and memory usage
For fun
If you are sharing a computer with other users who are also logged in at the same time, write a message using the wall
command:
wall {message}