Deleting, copying, moving and renaming files:
rm file – Remove file.
rm -r dir – Remove the directory and its contents recursively.
rm -f file – Force removal and never prompt for confirmation.
rm can be used against search patterns, so for example,
rm *s would delete all files starting with the character ‘s’.
cp source_file destination_file – Copy source_file to destination_file.
cp source_file [source_file1 ...] destination_directory – Copy source_files to destination_directory.
cp in interactive mode:
cp -i – Run in interactive mode.
cp -r source_directory destination_directory – Copy source_directory recursively to destination_directory.
diff file1 file2 – Check if there are differences between the files.
cp file1 file2 file3 dir – Copies file1, file2 and file3 from the current directory to dir.
tree dir – Show the folder hierarchy as a tree.
Move or rename files:
mv – Move or rename file or directory.
mv source destination – Rename source to destination.
mv -i source_file destination_directory – Move source_file to destination_directory.
sort -k F – Sort by key. F is the field number. For example
sort -k2 for field number 2.
sort -r – Sort in reverse order.
sort -u – Sort unique. Remove duplicate lines and only provides unique results.
Archive a collection of files:
tar [-] c|x|t f tarfile [pattern] - Create, extract or list contents of a tar archive using pattern, if supplied. Options do not need a'-'.
tar [-] c – Create a tar archive.
tar [-] x – Extract files from the archive.
tar [-] t – Display the table of contents (list).
tar [-] v – Be verbose.
tar [-] z – Use compression.
tar [-] f file – Use this file.
tar cf name_of_archive_to_be.tar name_of_dir_to_archive.
gzip – Compress files.
gunzip – Uncompress files.
gzcat – Concatenates compressed files.
zcat – Concatenates compress files.
du – Estimates file usage.
du -k – Display sizes in Kilobytes.
du -h – Display sizes in human readable format.
What is a wildcard?
1. A character or string used for pattern matching.
2. Globbing expands the wildcard pattern into a list of files and/or directories. (paths)
3. Wildcards can be used with most commands. (For example ls, rm, cp …)
* – matches zero or more characters.
? – matches exactly one character.
ls ?? – Show all files with a name consisting of exactly two characters.
 – A character class.
ca[nt]*, would show “can”, “cat”, “candy”, “catch”, …
[!] – Matches any of the characters NOT included between the brackets. Matches exactly one character.
[!aeiou]*, would show “baseball”, “cricket”, …
[a-g]* – Matches the range between ‘a’ and ‘g’.
[[:alpha:]] – Alphabetic letters.
[[:alnum:]] – Alphanumeric characters, matches alpha and digits.
[[:digit:]] – Numbers from 0 to 9.
[[:lower:]] – Lower case.
[[:space:]] – Characters such as spaces, tabs or new line characters.
[[:upper:]] – Only upper case characters.
\ – Escape character. Use if you want to match a wildcard character.
clear – Clear the console.
Input, output, and redirection:
Abbreviation – I/O Name – File Descriptor
stdin – Standard Input – 0
stdout – Standard Ouput – 1
stderr – Standard Error – 2
> – Redirects standard output to a file. Overwrites (truncating) existing contents.
>> – Redirects standard output to a file. Appends to any existing contents.
< – Redirects input from a file to a command.
& – Used with redirection to signal that a file descriptor is being used.
2>&1 – Combines stderr and standard output.
2>file – Redirect standard error to a file.
>/dev/null – Redirect output to nowhere.
Let’s redirect this output to a file like this:
ls -l > file.txt
To check the content of file.txt, type:
ls >> file.txt – Appending to file.txt.
sort < file.txt – Take the content of file.txt and redirect it to
A combination of input and output from the command to file and the other way around:
sort sorted_file.txt – Sort the the content of files.txt and save the result into sorted_file.txt.
To direct an error message to a file:
ls file.txt not-here 2> out.err
cat out.err will display something like:
ls: cannot access not-here: No such file or directory.
Comparing the contents of files:
diff file1 file2 – Compare two files.
sdiff file1 file2 – Side-by-side comparison.
vimdiff file1 file2 – Highlight differences in vim.
Ctrl-w w – Go to next window.
:q – Quit (close current window).
:qa – Quit all (close both files).
:qa! – Force quit all.
echo new last line >> file.txt – Append “new last line” to the file.txt.
Seach contents of files:
grep – Display lines matching a pattern.
grep pattern file
-i – Perform a search, ignoring case.
-c – Count the number of occurrences in a file.
-n – Precede output with line numbers.
-v – Invert match. Print lines that don’t match.
strings – Display printable strings.
What are pipes?
Vertical bar ‘|’ is a pipe.
cat file | grep pattern is the same as
grep pattern file.
cat track.mp3 – Shows the original text in the file track.mp3.
strings track.mp3 – Shows the human-readable text in the file track.mp3.
And then use
strings track.mp3 | grep -i john to search for “john” in the human-readable text of the track.mp3 file.
strings track.mp3 | grep -i john | head -1 – Display the first line of human-readable “john” search output.
grep bob /etc/password | cut -d: -f1,5 – Cut field 1 to 5 of the passwords.
grep bob /etc/password | cut -d: -f1,5 | sort – Cut field 1 to 5 of the passwords and sort the output.
grep bob /etc/password | cut -d: -f1,5 | sort | tr ":" " " – Cut field 1 to 5 of the passwords and sort the output, but not with a ‘:’ seperator, just with a space seperator ‘ ‘.
grep bob /etc/password | cut -d: -f1,5 | sort | tr ":" " " | columnn -t – Cut field 1 to 5 of the passwords and sort the output, but not with a ‘:’ seperator, just with a space seperator ‘ ‘, in a table format.
Piping output to a pager:
cat /etc/password | less – Show content of a file, but not exceed the console.
Copy files over the network:
Command line clients:
SCP – Secure copy.
SFTP – SSH file transfer protocol.
PuTTY Secure Copy client – pscp.exe
PuTTY Secure File Transfer client – psftp.exe
Graphical SCP/SFTP clients:
scp/sftp command line utilities:
scp source destination – Copy source to destination.
sftp host – Start a secure file transfer session with host.
ftp host – Start a file transfer session with host.
For security reasons, if given the choice use
An example session could look like this:
pwd – To show in which directory we are (should be home directory).
ls – Will show the files on the server.
lpwd – Show local working directory.
lls – Shows files that are on the local box.
put z.txt – Put z.txt onto the remote server.
rm z.txt – Remove z.txt from the remote server.
To do this with the
command, file, server name, directory on server
scp z.txt linunxsrv:/tmp/
As a different user:
scp z.txt adminuser@linuxsvr:/home/adminuser/
In FileZilla, a graphical interface:
Drag and drop z.txt from local to the remote server.
Customize shell prompt (bash):
\d – Date in “Weekday Month Date” format “Tue May 26”.
\h – Hostname up to the first period.
\H – Hostname.
\n – Newline.
\t – Current time in 24-hour HH:MM:SS format.
\T – Current time in 12-hour HH:MM:SS format.
\@ – Current time in 12-hour am/pm format.
\A – Current time in 24-hour HH:MM format.
\u – Username of the current user.
\W – Basename of the current working directory.
\$ – If the effective UID is 0, a#, otherwise a $.
For a complete listing of all the formatting options see the bash man page.
echo 'export PS1="[\u@\h \w]\$ "' >> ~/.bash_profile – Append to the bash_profile.
echo $PS1 – Display current prompt string. Some destributions use prompt instead of PS1.
PS1="\$ " – Add time to the prompt.
To keep those changes between logins:
vi .bash_profile – Edit .bash_profile.
#My custom prompt
export PS1="[persist \u@\h \w]\$ "
Confirm and save file with
A multi-line prompt example: PS1=”\t\n[\h \w]\$ “
The prompt will look something like this:
What are aliases? – Shortcuts.
Use for long commands.
Use for commands you type often.
alias – Display list of current aliases set.
alias [name[=value]] – To create an alias.
unalias name – Remove the “name” alias.
unalias -a – Remove all aliases.
Make Linux behave like another OS:
alias cls='clear' – In windows cls clears the screen.
Add aliases to your personal initialization files, for example .bash_profile, like done with prompt customizations.
For example, make an alias called “ll” to be the same as the command
ls -l like this:
alias ll='ls -l'