UNIX/Linux basic commands

  • Introduction
  • bash and tcsh shells
  • Working with directories
  • Environment variables
  • View/Kill processes
  • File permissions
  • Editing text files
  • Other Web tutorials



Spending a few hours to learn UNIX will greatly benefit you in the long term and save your time.

Ce ne sono un sacco in giro per il Web, ma qui raccolgo SOLO il minimo indispensabile per lavorare, niente di superfluo!

only the bare minimum!

Familiarity with Linux is necessary

If you are not familiar with using Unix/GNU Linux this page is intended to provide a description of basic linux commands and references to more information.

When working in Linux, you will activate a terminal and inside the terminal shell will be running, i.e. a program interpreting your commands. Commands are typed inside this shell, and you press ENTER to issue them. For most commands, additional arguments can be issued by using minus signs (where \ signs are used in Windows), e.g. command -a - b -c or command -abc. To find out what options are available for a given command, and what those options do, type command –help, which works in most cases, or try to have a more detailed information with the man command.

An exhaustive list of many other UNIX tutorials which can be found on the Web has been collected here.

A little bit of history

Find what kind of shell is running

echo $SHELL

You may see:

How to install csh/tcsh

For C shell:

$ sudo apt-get install csh

For TC shell:

$ sudo apt-get install tcsh

If you are using Redhat/Fedora/CentOS Linux, write:

# yum install tcsh
How to change the login shell

You can change your login shell with:



Changing the login shell for serena
Enter the new value, or press ENTER for the default
	Login Shell [/bin/tcsh]: 

and there you can write the path of another installed shell

Changing the login shell for serena
Enter the new value, or press ENTER for the default
	Login Shell [/bin/tcsh]: /bin/bash

An A-Z Index of the Bash command line for Linux

[Commands list via ss64.com]

Commands marked • are bash built-ins.
Many commands particularly the Core Utils are also available under alternate shells (C shell, Korn shell etc).

[ a ] [ b ] [ c ] [ d ] [ e ] [ f ] [ g ] [ h ] [ i ] [ j ] [ k ] [ l ] [ m ] [ n ] [ o ] [ p ] [ q ] [ r ] [ s ] [ t ] [ u ] [ v ] [ w ] [ x ] [ y ] [ z ]

alias    Create an alias •
apropos  Search Help manual pages (man -k)
apt-get  Search for and install software packages (Debian/Ubuntu)
aptitude Search for and install software packages (Debian/Ubuntu)
aspell   Spell Checker
awk      Find and Replace text, database sort/validate/index
basename Strip directory and suffix from filenames
bash     GNU Bourne-Again SHell 
bc       Arbitrary precision calculator language 
bg       Send to background
break    Exit from a loop •
builtin  Run a shell builtin
bzip2    Compress or decompress named file(s)
cal      Display a calendar
case     Conditionally perform a command
cat      Concatenate and print (display) the content of files
cd       Change Directory
cfdisk   Partition table manipulator for Linux
chgrp    Change group ownership
chmod    Change access permissions
chown    Change file owner and group
chroot   Run a command with a different root directory
chkconfig System services (runlevel)
cksum    Print CRC checksum and byte counts
clear    Clear terminal screen
cmp      Compare two files
comm     Compare two sorted files line by line
command  Run a command - ignoring shell functions •
continue Resume the next iteration of a loop •
cp       Copy one or more files to another location
cron     Daemon to execute scheduled commands
crontab  Schedule a command to run at a later time
csplit   Split a file into context-determined pieces
cut      Divide a file into several parts
date     Display or change the date & time
dc       Desk Calculator
dd       Convert and copy a file, write disk headers, boot records
ddrescue Data recovery tool
declare  Declare variables and give them attributes •
df       Display free disk space
diff     Display the differences between two files
diff3    Show differences among three files
dig      DNS lookup
dir      Briefly list directory contents
dircolors Colour setup for `ls'
dirname  Convert a full pathname to just a path
dirs     Display list of remembered directories
dmesg    Print kernel & driver messages 
du       Estimate file space usage
echo     Display message on screen •
egrep    Search file(s) for lines that match an extended expression
eject    Eject removable media
enable   Enable and disable builtin shell commands •
env      Environment variables
ethtool  Ethernet card settings
eval     Evaluate several commands/arguments
exec     Execute a command
exit     Exit the shell
expect   Automate arbitrary applications accessed over a terminal
expand   Convert tabs to spaces
export   Set an environment variable
expr     Evaluate expressions
false    Do nothing, unsuccessfully
fdformat Low-level format a floppy disk
fdisk    Partition table manipulator for Linux
fg       Send job to foreground 
fgrep    Search file(s) for lines that match a fixed string
file     Determine file type
find     Search for files that meet a desired criteria
fmt      Reformat paragraph text
fold     Wrap text to fit a specified width.
for      Expand words, and execute commands
format   Format disks or tapes
free     Display memory usage
fsck     File system consistency check and repair
ftp      File Transfer Protocol
function Define Function Macros
fuser    Identify/kill the process that is accessing a file
gawk     Find and Replace text within file(s)
getopts  Parse positional parameters
grep     Search file(s) for lines that match a given pattern
groupadd Add a user security group
groupdel Delete a group
groupmod Modify a group
groups   Print group names a user is in
gzip     Compress or decompress named file(s)
hash     Remember the full pathname of a name argument
head     Output the first part of file(s)
help     Display help for a built-in command •
history  Command History
hostname Print or set system name
iconv    Convert the character set of a file
id       Print user and group id's
if       Conditionally perform a command
ifconfig Configure a network interface
ifdown   Stop a network interface 
ifup     Start a network interface up
import   Capture an X server screen and save the image to file
install  Copy files and set attributes
jobs     List active jobs •
join     Join lines on a common field
kill     Stop a process from running
killall  Kill processes by name
less     Display output one screen at a time
let      Perform arithmetic on shell variables •
link     Create a link to a file 
ln       Create a symbolic link to a file
local    Create variables •
locate   Find files
logname  Print current login name
logout   Exit a login shell •
look     Display lines beginning with a given string
lpc      Line printer control program
lpr      Off line print
lprint   Print a file
lprintd  Abort a print job
lprintq  List the print queue
lprm     Remove jobs from the print queue
ls       List information about file(s)
lsof     List open files
make     Recompile a group of programs
man      Help manual
mkdir    Create new folder(s)
mkfifo   Make FIFOs (named pipes)
mkisofs  Create an hybrid ISO9660/JOLIET/HFS filesystem
mknod    Make block or character special files
more     Display output one screen at a time
mount    Mount a file system
mtools   Manipulate MS-DOS files
mtr      Network diagnostics (traceroute/ping)
mv       Move or rename files or directories
mmv      Mass Move and rename (files)
netstat  Networking information
nice     Set the priority of a command or job
nl       Number lines and write files
nohup    Run a command immune to hangups
notify-send  Send desktop notifications
nslookup Query Internet name servers interactively
open     Open a file in its default application
op       Operator access 
passwd   Modify a user password
paste    Merge lines of files
pathchk  Check file name portability
ping     Test a network connection
pkill    Stop processes from running
popd     Restore the previous value of the current directory
pr       Prepare files for printing
printcap Printer capability database
printenv Print environment variables
printf   Format and print data •
ps       Process status
pushd    Save and then change the current directory
pwd      Print Working Directory
quota    Display disk usage and limits
quotacheck Scan a file system for disk usage
quotactl Set disk quotas
ram      ram disk device
rcp      Copy files between two machines
read     Read a line from standard input •
readarray Read from stdin into an array variable •
readonly Mark variables/functions as readonly
reboot   Reboot the system
rename   Rename files
renice   Alter priority of running processes 
remsync  Synchronize remote files via email
return   Exit a shell function
rev      Reverse lines of a file
rm       Remove files
rmdir    Remove folder(s)
rsync    Remote file copy (Synchronize file trees)
screen   Multiplex terminal, run remote shells via ssh
scp      Secure copy (remote file copy)
sdiff    Merge two files interactively
sed      Stream Editor
select   Accept keyboard input
seq      Print numeric sequences
set      Manipulate shell variables and functions
sftp     Secure File Transfer Program
shift    Shift positional parameters
shopt    Shell Options
shutdown Shutdown or restart linux
sleep    Delay for a specified time
slocate  Find files
sort     Sort text files
source   Run commands from a file '.'
split    Split a file into fixed-size pieces
ssh      Secure Shell client (remote login program)
strace   Trace system calls and signals
su       Substitute user identity
sudo     Execute a command as another user
sum      Print a checksum for a file
suspend  Suspend execution of this shell •
sync     Synchronize data on disk with memory
tail     Output the last part of file
tar      Tape ARchiver
tee      Redirect output to multiple files
test     Evaluate a conditional expression
time     Measure Program running time
timeout  Run a command with a time limit
times    User and system times
touch    Change file timestamps
top      List processes running on the system
traceroute Trace Route to Host
trap     Run a command when a signal is set(bourne)
tr       Translate, squeeze, and/or delete characters
true     Do nothing, successfully
tsort    Topological sort
tty      Print filename of terminal on stdin
type     Describe a command •
ulimit   Limit user resources •
umask    Users file creation mask
umount   Unmount a device
unalias  Remove an alias •
uname    Print system information
unexpand Convert spaces to tabs
uniq     Uniquify files
units    Convert units from one scale to another
unset    Remove variable or function names
unshar   Unpack shell archive scripts
until    Execute commands (until error)
uptime   Show uptime
useradd  Create new user account
userdel  Delete a user account
usermod  Modify user account
users    List users currently logged in
uuencode Encode a binary file 
uudecode Decode a file created by uuencode
v        Verbosely list directory contents (`ls -l -b')
vdir     Verbosely list directory contents (`ls -l -b')
vi       Text Editor
vmstat   Report virtual memory statistics
wait     Wait for a process to complete •
watch    Execute/display a program periodically
wc       Print byte, word, and line counts
whereis  Search the user's $path, man pages and source files for a program
which    Search the user's $path for a program file
while    Execute commands
who      Print all usernames currently logged in
whoami   Print the current user id and name (`id -un')
wget     Retrieve web pages or files via HTTP, HTTPS or FTP
write    Send a message to another user 
xargs    Execute utility, passing constructed argument list(s)
xdg-open Open a file or URL in the user's preferred application.
yes      Print a string until interrupted
.        Run a command script in the current shell
!!       Run the last command again
###      Comment / Remark
w        Provides a quick summary of every user
who      Get the information on currently logged in users
who -b   Get the time of last system boot
who -l   Get information on system login processes
who -m   Get the hostname and user associated with stdin
who -r   Get the current run level
who -u   Get the list of user logged in
who -q   Get number of users logged-in and their user names
who -a   Get all the information
Command Description
man <command>
cd <dirName>
cd /path/to/directory
cd ..
cd .
cd -
mkdir <dirName>
ls -l
ls -althr
ls <dirName>
ls /path/to/dirName
mv <oldName> <newName>
mv <fileName> /path/to/newName
cp bla bla bla
rm <fileName>
acroread fileName.pdf
evince fileName.pdf

Set alias in ~/.cshrc file

alias ll 'ls -ahl'

or in a ~/.bashrc

alias ll='ls ahl'

Environment variables

export VarName=value     # sh and sh-like shells (e.g. bash)
setenv varName value     # csh and csh-like shells (e.g. tcsh)
set varName=value

NOTA! variabili settate con set sono viste solo dalla shell, con setenv/export anche dai programmi!

Change your password

yppasswd [user]

Viewing/Killing processes

File permissions

Find files

which <command>


which cdsterm
find /path/to/start/directory -name fileName

grep looks for text within files; in the following example:

grep "chewbecca" *.txt

the word “chewbecca” is searched in all the files with a .txt extension.

whereis is used for finding the location of executables (binaries), source code, and manuals for a specific program:

whereis firefox

locate is very similar to find with the difference that it doesn't manually search the file system, but rather a database list of files that is maintained by the system:

locate -i file_name

(the -i option is used for case-insensitive searches).

Find differences between two files/two directories

diff [options] file_1 file_2 

diff also allows to compare the contents of two directories by using the usual -r option (recursive):

diff -r dir_1 dir_2 

See also:

Text editors

nano, vi, gedit, nedit


emacs -nw <fileName>

Create a zipped file:

zip fileName.zip fileName

Extract a zipped file:

unzip fileName.zip

Create a gzipped file:

gzip fileName

Extract a gzipped file:

gunzip fileName.gz     [gzip -d fileName.gz]

Create a .tar.gz archive:

tar -czvf fileName.tar.gz /path/to/directory

Extract a .tar.gz archive:

tar -xzvf fileName.tar.gz

Create a .tar.bz2 archive:

tar -cjvf fileName.tar.bz2 /path/to/directory

Extract a .tar.bz2 archive:

tar -xjvf fileName.tar.bz2

Extract a .rar file:

unrar fileName.rar

See also


usare nautilus

nautilus --browser

If you need to view any image but you can only use the terminal, use the Eye of GNOME image viewer, which is the official image viewer for the GNOME Desktop environment and available on all Scientific Linux dictributions.

Use the eog command,

which eog 

To open an image,

cd /path/to/image
eog fileName.png

See also

Basic CVS commands

Official documentation:



Basic syntax of a cvs command:

cvs [cvs options] command [command options] <filename>
setenv CVSROOT /path/to/project/cvs/top/directory


setenv CVSROOT /export/elt156xl/disk0/.cvsroot/kits/tsmc 

check-out a project or part of a project:

cvs checkout project


cvs co project/subdir

In order to use disk space efficiently, it is recommend that you check out only the directories you need at the time.

Adding and removing files to CVS repository

cvs add <filename>
cvs remove <filename>

add and remove commands just schedule the operation! The file will be actually added/removed to the repository with a commit statement,

cvs commit -m "Text message"
cvs commit -m "Text message" <filename>
cvs log <filename>

Last update: Serena Panati - Nov 10, 2013