A command-line interface (CLI) processes commands to a computer program in the form of lines of text. The program which handles the interface is called a command-line interpreter or command-line processor. Operating systems implement a command-line interface in a shell for interactive access to operating system functions or services. Such access was primarily provided to users by computer terminals starting in the mid-1960s, and continued to be used throughout the 1970s and 1980s on VAX/VMS, Unix systems.
A command-line interpreter, or command language interpreter, is a blanket term for a certain class of programs designed to read lines of text entered by a user, thus implementing a command-line interface.
A shell is a user interface for access to an operating system's services. In general, operating system shells use either a command-line interface (CLI) or graphical user interface (GUI), depending on a computer's role and particular operation. It is named a shell because it is the outermost layer around the operating system.
Bourne shell (sh) - C shell (csh) - Bash (Unix shell) – KornShell (ksh)
Command: a command is an instruction given by a user telling a computer to do something, such a run a single program or a group of linked programs. Commands are generally issued by typing them in at the command line (i.e., the all-text display mode) and then pressing the ENTER key, which passes them to the shell.
Group: is an access control to specific data or command for defined users that only administrator able to mange them [/etc/group].
IEEE Std 1003.1-2008 Utilities
admin | SCCS | Create and administer SCCS files |
alias | Misc | Define or display aliases |
ar | Misc | Create and maintain library archives |
asa | Text processing | Interpret carriage-control characters |
at | Process management | Execute commands at a later time |
awk | Text processing | Pattern scanning and processing language |
basename | Filesystem | Return non-directory portion of a pathname; see also dirname |
batch | Process management | Schedule commands to be executed in a batch queue |
bc | Misc | Arbitrary-precision arithmetic language |
bg | Process management | Run jobs in the background |
cc/c99 | C programming | Compile standard C programs |
cal | Misc | Print a calendar |
cat | Filesystem | Concatenate and print files |
cd | Filesystem | Change the working directory |
cflow | C programming | Generate a C-language call graph |
chgrp | Filesystem | Change the file group ownership |
chmod | Filesystem | Change the file modes/attributes/permissions |
chown | Filesystem | Change the file ownership |
cksum | Filesystem | Write file checksums and sizes |
cmp | Filesystem | Compare two files; see also diff |
comm | Text processing | Select or reject lines common to two files |
command | Shell programming | Execute a simple command |
compress | Filesystem | Compress data |
cp | Filesystem | Copy files |
crontab | Misc | Schedule periodic background work |
csplit | Text processing | Split files based on context |
ctags | C programming | Create a tags file |
cut | Text processing | Cut out selected fields of each line of a file |
cxref | C programming | Generate a C-language program cross-reference table |
date | Misc | Display the date and time |
dd | Filesystem | Convert and copy a file |
delta | SCCS | Make a delta (change) to an SCCS file |
df | Filesystem | Report free disk space |
diff | Text processing | Compare two files; see also cmp |
dirname | Filesystem | Return the directory portion of a pathname; see also basename |
du | Filesystem | Estimate file space usage |
echo | Shell programming | Write arguments to standard output |
ed | Text processing | The standard text editor |
env | Misc | Set the environment for command invocation |
ex | Text processing | Text editor |
expand | Text processing | Convert tabs to spaces |
expr | Shell programming | Evaluate arguments as an expression |
false | Shell programming | Return false value |
fc | Misc | Process the command history list |
fg | Process management | Run jobs in the foreground |
file | Filesystem | Determine file type |
find | Filesystem | Find files |
fold | Text processing | Filter for folding lines |
fort77 | FORTRAN77 programming | FORTRAN compiler |
fuser | Process management | List process IDs of all processes that have one or more files open |
gencat | Misc | Generate a formatted message catalog |
get | SCCS | Get a version of an SCCS file |
getconf | Misc | Get configuration values |
getopts | Shell programming | Parse utility options |
grep | Misc | Search text for a pattern |
hash | Misc | Hash database access method |
head | Text processing | Copy the first part of files |
iconv | Text processing | Codeset conversion |
id | Misc | Return user identity |
ipcrm | Misc | Remove a message queue, semaphore set, or shared memory segment identifier |
ipcs | Misc | Report interprocess communication facilities status |
jobs | Process management | Display status of jobs in the current session |
join | Text processing | Merges two sorted text files based on the presence of a common field |
kill | Process management | Terminate or signal processes |
lex | C programming | Generate programs for lexical tasks |
link | Filesystem | Create a hard link to a file |
ln | Filesystem | Link files |
locale | Misc | Get locale-specific information |
localedef | Misc | Define locale environment |
logger | Shell programming | Log messages |
logname | Misc | Return the user's login name |
lp | Text processing | Send files to a printer |
ls | Filesystem | List directory contents |
m4 | Misc | Macro processor |
mailx | Misc | Process messages |
make | Programming | Maintain, update, and regenerate groups of programs |
man | Misc | Display system documentation |
mesg | Misc | Permit or deny messages |
mkdir | Filesystem | Make directories |
mkfifo | Filesystem | Make FIFO special files |
more | Text processing | Display files on a page-by-page basis |
mv | Filesystem | Move or rename files |
newgrp | Misc | Change to a new group |
nice | Process management | Invoke a utility with an altered nice value |
nl | Text processing | Line numbering filter |
nm | C programming | Write the name list of an object file |
nohup | Process management | Invoke a utility immune to hangups |
od | Misc | Dump files in various formats |
paste | Text processing | Merge corresponding or subsequent lines of files |
patch | Text processing | Apply changes to files |
pathchk | Filesystem | Check pathnames |
pax | Misc | Portable archive interchange |
pr | Text processing | Print files |
printf | Shell programming | Write formatted output |
prs | SCCS | Print an SCCS file |
ps | Process management | Report process status |
pwd | Filesystem | Print working directory |
qalter | Batch utilities | Alter batch job |
qdel | Batch utilities | Delete batch jobs |
qhold | Batch utilities | Hold batch jobs |
qmove | Batch utilities | Move batch jobs |
qmsg | Batch utilities | Send message to batch jobs |
qrerun | Batch utilities | Rerun batch jobs |
qrls | Batch utilities | Release batch jobs |
qselect | Batch utilities | Select batch jobs |
qsig | Batch utilities | Signal batch jobs |
qstat | Batch utilities | Show status of batch jobs |
qsub | Batch utilities | Submit a script |
read | Shell programming | Read a line from standard input |
renice | Process management | Set nice values of running processes |
rm | Filesystem | Remove directory entries |
rmdel | SCCS | Remove a delta from an SCCS file |
rmdir | Filesystem | Remove directories, if they are empty. |
sact | SCCS | Print current SCCS file-editing activity |
sccs | SCCS | Front end for the SCCS subsystem |
sed | Text processing | Stream editor |
sh | Shell programming | Shell, the standard command language interpreter |
sleep | Shell programming | Suspend execution for an interval |
sort | Text processing | Sort, merge, or sequence check text files |
split | Misc | Split files into pieces |
strings | C programming | Find printable strings in files |
strip | C programming | Remove unnecessary information from executable files |
stty | Misc | Set the options for a terminal |
tabs | Misc | Set terminal tabs |
tail | Text processing | Copy the last part of a file |
talk | Misc | Talk to another user |
tee | Shell programming | Duplicate the standard output |
test | Shell programming | Evaluate expression |
time | Process management | Time a simple command |
touch | Filesystem | Change file access and modification times |
tput | Misc | Change terminal characteristics |
tr | Text processing | Translate characters |
true | Shell programming | Return true value |
tsort | Text processing | Topological sort |
tty | Misc | Return user's terminal name |
type | Misc | Displays how a name would be interpreted if used as a command |
ulimit | Misc | Set or report file size limit |
umask | Misc | Get or set the file mode creation mask |
unalias | Misc | Remove alias definitions |
uname | Misc | Return system name |
uncompress | Misc | Expand compressed data |
unexpand | Text processing | Convert spaces to tabs |
unget | SCCS | Undo a previous get of an SCCS file |
uniq | Text processing | Report or filter out repeated lines in a file |
unlink | Filesystem | Call the unlink function |
uucp | Network | System-to-system copy |
uudecode | Network | Decode a binary file |
uuencode | Network | Encode a binary file |
uustat | Network | uucp status inquiry and job control |
uux | Process management | Remote command execution |
val | SCCS | Validate SCCS files |
vi | Text processing | Screen-oriented (visual) display editor |
wait | Process management | Await process completion |
wc | Text processing | Line, word and byte or character count |
what | SCCS | Identify SCCS files |
who | System administration | Display who is on the system |
write | Misc | Write to another user's terminal |
xargs | Shell programming | Construct argument lists and invoke utility |
yacc | C programming | Yet another compiler compiler |
zcat | Text processing | Expand and concatenate data |
Other Useful Commands
badblocks - search a device for bad blocks
bind - bind a name to a socket
chdir - change current working directory
chroot - run command or interactive shell with special root directory
clear - sweep terminal screen
column - columnate lists
cut - remove sections from each line of files
dig - DNS lookup utility
dmesg - display the system message buffer
dmidecode - DMI table decoder
eject - eject removable media
exit - cause normal process termination
factor - primes, factor a number, generate large primes
fdisk - Partition table manipulator
finger - user information lookup program
free - display amount of free and used memory in the system
fsck - file system consistency check and interactive repair
grep - print lines matching a pattern
groups - show group memberships
gzip - compression/decompression tool
help - display help information
history - GNU History Library
hostname - set or print name of current host system
htop - interactive process viewer
iostat - report I/O statistics
killall - kill processes by name
last - indicate last logins of users and ttys
locate - find filenames quickly
login - log into the computer
logout - log out the session
lsof - list open files
mktemp - create a temporary file or directory
mount - filesystem change name space
nano - editor, an enhanced free Pico clone
netstat - show network status and statistics
nmap - Network exploration tool and security / port scanner
read - read from a file descriptor
set - change the options and positional parameters
scp - secure copy (remote file copy program)
screen - screen manager with VT100/ANSI terminal emulation
stat - display file status
passwd - modify a user's password
ping - send ICMP ECHO_REQUEST packets to network hosts
reboot - stopping and restarting the system
rsync - a fast, versatile, remote (and local) file-copying tool
scrot - command line screen capture utility
shutdown - close down the system at a given time
ssh - OpenSSH SSH client (remote login program)
sudo - execute a command as another user
swapon, swapoff - enable/disable devices and files for paging and swapping
sync - force completion of pending disk writes (flush cache)
tar - manipulate tape archives
telnet - user interface to the TELNET protocol
tcpdump - dump traffic on a network
tree - list contents of directories in a tree-like format
uname - display information about the system
unset - remove variable or function names
uptime - show how long system has been running
rev - reverse lines of a file
whatis - search manual page databases
which - locate a program file in the user's path
whoami - display effective user id
whois - domain name and network number directory service
wipe - securely erase files from magnetic media
Linux Specific Commands
btrfs - control a btrfs filesystem
cryptsetup - setup cryptographic volumes for dm-crypt
fsarchiver - a disk cloning utility
grub - GRand Unified Bootloader command shell
hdparm - get/set SATA/IDE device parameters
nproc - print the number of processing units available
ifconfig - configure a network interface
iptables - administration tool for IPv4 packet filtering and NAT
iwlist - get more detailed wireless information from a wireless interface
kmod - Program to manage Linux Kernel modules
lsblk - list block devices
lscpu - display information about the CPU architecture
lshw - list hardware devices
lspci - list all PCI devices
lsusb - list USB devices
mkfs - build a Linux file system
modprobe - program to add and remove modules from the Linux Kernel
mpstat - Report processors related statistics
sysctl - configure kernel parameters at runtime
useradd - create a new user or update default new user information
userdel - delete a user account and related files
usermod - modify a user account
vmstat - Report virtual memory statistics
grub-install (install GRUB on your drive)
update-grub (program to generate GRUB's menu.lst file)
GRUB is the GRand Unified Bootloader, a very powerful newish BootLoader that can be used to boot most operating system
BSD Specific Commands
adduser - command for adding new users
boot0cfg - boot manager installation/configuration utility
bsdlabel - read and write BSD label
dump - rdump, file system backup
dumpfs - dump UFS file system information
gbde - operation and management utility for Geom Based Disk Encryption
geli - control utility for the cryptographic GEOM class
geom - universal control utility for GEOM classes
gjournal - control utility for journaled devices
gpart - control utility for the disk partitioning GEOM class
gptboot - GPT bootcode for UFS on BIOS-based computers
growfs - expand an existing UFS file system
gvinum - Logical Volume Manager control program
ipfw - administration tool for IPv4 packet filtering and NAT
jail, jail_get, jail_set, jail_remove, jail_attach - create and manage system jails
kldload - load a file into the kernel
kldunload - unload a file from the kernel
newfs - construct a new UFS1/UFS2 file system
pw - create, remove, modify & display system users and groups
restore - rrestore, restore files or file systems from backups made with dump
rmuser - remove users from the system
sysctl - get or set kernel state
tunefs - tune up an existing UFS file system
freebsd-update fetch
Based on the currently installed world and the configuration options set, fetch all available binary updates.
freebsd-update install
Install the most recently fetched updates or upgrade. Returns exit code 2 if there are no updates to install and the fetch command wasn't passed as an earlier argument in the same invo-cation.
freebsd-version -k
Print the version and patch level of the installed kernel. Unlike uname, if a new kernel has been installed but the system has not yet rebooted, freebsd-version will print the version and patch level of the new kernel.
freebsd-version -u
Print the version and patch level of the installed userland. These are hardcoded into freebsd-version during the build.