Linux Command Line Guide

For those who new to world of Linux, and overwhelmed by CLI. I have a Command Line "Cheat Sheet" that might be what you looking for.

Compression
tar cf file.tar files – create a tar named file.tar containing files
tar xf file.tar – extract the files from file.tar
tar cf file.tar.gz files – create a tar with Gzip compression
tar xf file.tar.gz – extract a tar using Gzip
tar cf file.tar.bz2 – create a tar with Bzip2 compression
tar xf file.tar.bz2 – extract a tar using Bzip2
gzip file – compresses file and renames it to file.gz
gzip -d file.gz – decompresses file.gz back to file

Disk Space
ls -lSr show files by size, largest last
df -h show free space on mounted filesystems
df -i show free inodes on mounted filesystems
fdisk -l show disks partitions sizes and types
> file truncate data of file or create an empty file

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 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/foo/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

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

Network
ping host – ping host and output results
whois domain – get whois information for domain
dig domain – get DNS information for domain
dig -x host – reverse lookup host
wget file – download file
wget -c file – continue a stopped download

Package Manipulation
apt-cache show foo – Show info about package foo
apt-cache showsrc – Displays information about a source package
apt-cache showpkg – Displays information about the packages listed on the command line
apt-cache depends foo – Show the depends of package foo
apt-cache rdepends – Shows reverse dependencies for a package
apt-cache search foo – Find packages that include "foo"
apt-cache search –names-only foo – Find packages which have "foo" in the filename
apt-cache pkgnames – Fast listing of every package in the system
apt-cache dump – Lists every package in the cache
apt-cache policy – Lists the repositories in which a package exists
dpkg -L package – List files in the package
dpkg -S foo – Find out which package installed foo
dpkg -c foo – Lists the contents of a binary package
dpkg -f foo – Shows the control file for a binary package
dpkg –get-selections > /path/selectionfile – Get a list of all packages installed
sudo dpkg –set-selections < /path/selectionfile && apt-get dselect-upgrade – Install packages from an exported list
dlocate foo – Determines which installed package owns foo
apt-file search foo – Determines which non-installed package owns foo
sudo aptitude install foo – Install package foo
sudo aptitude remove foo – Uninstall package foo
sudo aptitude purge foo – Uninstall package foo and all of its dependencies
sudo aptitude update – Update the package sources
sudo aptitude safe-upgrade – Update all installed packages to the newest versions
sudo aptitude dist-upgrade – Update the kernel to the newest version
sudo aptitude clean – Remove packages from the package cache

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
\ls – ignore alias ls
time command see how long a command takes to finish
which command display the full path of a command
(cd dir && command) go to dir, execute command and return to current dir

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 -type d -empty -exec rm -rf ‘{}’ \; – find and delete 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
man -t man | ps2pdf – > man.pdf – make a pdf of a man page

Shortcuts
Ctrl+A – move to the start of the line
Ctrl+E - move to the end of the line.
Ctrl+U – delete from the cursor to the beginning of the line.
Ctrl+K – delete from the cursor to the end of the line.
Ctrl+W – delete from the cursor to the start of the word.
Ctrl+Y – pastes text from the clipboard.
Ctrl+L – clear the screen leaving the current line at the top of the screen.
Ctrl+C – halts the current command
Ctrl+Z – stops the current command, resume with fg in the foreground or bg in the background
Ctrl+D – log out of current session, similar to exit
Ctrl+R – reverse search
^abc^xyz – replace first occurrence of abc with xyz in last command and execute it
!! – repeats the last command
sudo !! – repeats the last command with sudo privileges
exit – log out of current session

Software Installation
Install from source:
./configure – execute the configure script
make – compile the source
make install – install needed files
dpkg -i pkg.deb – install a deb package on .deb-based systems
rpm -Uvh pkg.rpm – install an rpm package on .rpm-based systems

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

System
date – show the current date and time
cal – show this month’s calendar
uptime – show current uptime
w – display who is online
whoami – who you are logged in as
finger user – display information about user
uname -a – show kernel information
cat /proc/cpuinfo – cpu information
cat /proc/meminfo – memory information
man command – show the manual for command
df – show disk usage
du – show directory space usage
free – show memory and swap usage
whereis app – show possible locations of app
which app – show which app will be run by default
lshw -html > hardware.html – create an overview of hardware
lsb_release -a – show information about the distro
tr : ‘\n’ <<<$PATH – show directories in the PATH, one per line
sed ’s/:/\n/g’ <<<$PATH – show directories in the PATH, one per line with sed
mount – list currently mounted file systems
mount -o loop cdrom.iso /mnt/dir – mount cdrom image at /mnt/dir
lspci – list all PCI devices
lsusb – list al USB devices
who – list users currently logged in
which command – show the full path of command
time command – see how long command takes to complete

Text Manipulation
sed ’s/string1/string2/g’ replace string1 with string2
sed ’s/\(.*\)1/\12/g’ modify anystring1 to anystring2
sed ‘/ *#/d; /^ *$/d’ remove comments and blank lines
sed ’s/[ \t]*$//’ remove trailing spaces from lines
echo ‘Test’ | tr ‘[:lower:]‘ ‘[:upper:]‘ case conversion
history | wc -l count lines

Related entries:

  1. Linux Tips : Setting Java programming environment in Ubuntu Linux
  2. Some Example Common DOS commands
  3. What is a command prompt?
  4. Linux Tips : Automatically find Fastest Repository Server in Ubuntu

2 comments to Linux Command Line Guide

Leave a Reply

 

 

 

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>