Unix command line cheat sheet
File Commands
ls - directory listing
ls -a - directory listing with hidden files
ls -al - formatted directory listing with hidden files
cd dir - change directory to dir
cd - change to home
cd - - change back to previous directory
pwd - show current directory
mkdir dir - create a directory dir
rm file - delete file
rmdir dir - delete empty directory dir
rm -r dir - recursively delete directory dir (use with caution)
rm -f file - force remove file; no error output if file doesn't exist
rm -rf dir - recursively force remove directory dir (use with caution)
cp file1 file2 - copy file1 to file2
cp file1 file2 file3 dir - copy file1, file2 and file3 to dir
cp -r dir1 dir2 - recursively copy dir1 to dir2; create dir2 if it doesn't exist
mv file1 file2 - move file1 to file2 if file2 is an existing directory, moves file1 into directory file2
ln -s file link - create symbolic link link to file
>file - create file (use with caution, doing this on an existing file will overwrite the content)
touch file - create or update file
cat > file - places standard input into file
cat file1 > file2 - overwrites the content of file2 with the content of file1
cat file1 >> file2 - appends the content of file1 to file2
echo "Hello World" > file - overwrites file's content with Hellow World
echo "Hello World" >> file - appends Hello World to the end of file
less file - output the contents of file
more file - output the contents of file
head file - output the first 10 lines of file
tail file - output the last 10 lines of file
tail -f file - output the contents of file as it grows, starting with the last 10 lines
sed 's/foo/bar/g' file - replaces all occurrences of foo with bar in file
sed -i.backup 's/food/bar/g' file - replaces all occurrences of foo with bar in file after backing up file as file.backup
rm {m,M}yfile - remove files according to a pattern
Example:
$ ls
$ touch myfile Myfile myfile1 Myfile1
$ ls
myfile Myfile myfile1 Myfile1
$ rm {m,M}yfile
$ ls
myfile1 Myfile1
Process Management
ps - display your currently active processes
top - display all running processes
kill pid - kill process id pid
killall proc - kill all processes named proc * file
bg - lists stopped or background jobs; resume a stopped job in the background
fg - brings the most recent job to foreground
fg n - brings job n to the foreground
File Permissions
chmod octal file - change the permissions of file to octal, which can be found separately for user, group, and world by adding:
* 4 – read (r)
* 2 – write (w)
* 1 – execute (x)
Examples:
chmod 777 - rwx for all
chmod 755 - rwx for owner, rx for group and world. For more options, see man chmod
SSH
ssh user@host - connect to host as user
ssh -p port user@host - connect to host on port port as user
ssh-copy-id user@host - add your key to host for user to enable a keyed or password-less login
Searching
grep pattern files - search for pattern in files
grep -r pattern dir - search recursively for pattern in dir
command | grep pattern - search for pattern in the output of command
updatedb - updates the slocate database; see next item
locate file - find all instances of file; may need to run updatedb first
find $HOME -user root - find files owned by root in $HOME
find /path -depth -type d -empty - find empty directories
find /path -depth -type f -empty - find empty files
find /path -name [name_of_file] - find a file with a specific name
find /path -name "*.[given_extension]" - find a file with a specific extension
find /path -name '*.txt' -perm 644 - find .txt files with specific permissions
find /path -perm -[permission_bits] - find files with some given permissions
find /path -name '[given_name].*' - find files with a given name and any extension
System Info
date - show the current date and time
cal - show this month's calendar
uptime - show current uptime
w