This article is in need of attention because it does not follow our
wiki guidelines.
If you want to contribute, please read the rules for this wiki and if you have any questions, don't hesitate to
contact the wiki team, we are more then willing to help you! :-)
A terminal is a text-only user interface.
It offers low-level access to the machine, and can be an extremely helpful and powerful tool.
You can, for example:
- Make deep and substantial changes to the system
- Gather additional messages from programs
- Speed up repetitive tasks by running scripts
- Use machines not supporting a Graphical user interface
The principal disadvantage of the terminal is that it is difficult (but not impossible!) to learn.
It can be accessed either through a virtual terminal, or through a graphical program called
a terminal emulator.
Terminal Emulators
Shells
When using a terminal, you enter commands to a shell. There are various flavors of shells ranging from very basic ones to more complex ones. The main difference is the amount of built-in functionality. One of the most widely used shells is bash, which is the default in openSUSE.
Other well-known shells include Korn Shell (ksh), zsh, C Shell (csh), tcsh and Bourne Shell (sh).
About Shell Prompts
When a shell is invoked, a prompt is the first thing displayed on every line. A user prompt looks something like this:
A user shell prompt usually ends with a $
user@computername:~$
A root shell prompt always ends with a #
.
root@computername:~#
Help Utilities
The primary command-line help utility is man. To find a command by keyword:
$ man -k keyword
To read a man page on a specific command:
$ man commandname
info is another documentation utility. Some programs might be listed in an info page.
Built-in Commands (bash)
These are built-in commands of the shell. Note that these commands may differ slightly in shells other than bash.
alias
|
Create an alias
|
|
break
|
Exit from a loop
|
|
builtin
|
Run a shell builtin
|
case
|
Conditionally perform a command
|
|
cd
|
Change Directory
|
|
clear
|
Clear terminal screen
|
command
|
Run a command - ignoring shell functions
|
|
continue
|
Resume the next iteration of a loop
|
|
declare
|
Declare variables and give them attributes
|
dirs
|
Display list of remembered directories
|
|
echo
|
Display message on screen
|
|
enable
|
Enable and disable builtin shell commands
|
env
|
Environment variables
|
|
eval
|
Evaluate several commands/arguments
|
|
exit
|
Exit the shell
|
exec
|
Execute a command
|
|
export
|
Set an environment variable
|
|
false
|
Do nothing, unsuccessfully
|
for
|
Expand words, and execute commands
|
|
function
|
Define Function Macros
|
|
getopts
|
Parse positional parameters
|
hash
|
Remember the full pathname of a name argument
|
|
history
|
Command History
|
|
if
|
Conditionally perform a command
|
let
|
Perform arithmetic on shell variables
|
|
local
|
Create variables
|
|
logout
|
Exit a login shell
|
pushd
|
Save and then change the current directory
|
|
readonly
|
Mark variables/functions as readonly
|
|
read
|
read a line from standard input
|
return
|
Exit a shell function
|
|
select
|
Accept keyboard input
|
|
set
|
Manipulate shell variables and functions
|
shift
|
Shift positional parameters
|
|
shopt
|
Shell Options
|
|
source
|
Run commands from a file `.'
|
times
|
User and system times
|
|
trap
|
Run a command when a signal is set(bourne)
|
|
true
|
Do nothing, successfully
|
type
|
Describe a command
|
|
umask
|
Users file creation mask
|
|
umount
|
Unmount a device
|
unalias
|
Remove an alias
|
|
unset
|
Remove variable or function names
|
|
until
|
Execute commands (until error)
|
while
|
Execute commands
|
|
Common terminal applications
These applications are quite common and can be found in most Linux distributions. Most of them are included in the default (base) install of the distribution.
A
apropos
|
Search Help manual pages (man -k)
|
|
awk
|
Find and Replace text, database sort/validate/index (preferably use perl instead)
|
|
|
|
B
bzip2
|
Compress or decompress named file(s)
|
|
|
|
|
|
|
C
cal/gcal
|
Display a calendar
|
|
cat
|
Display the contents of a file
|
|
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
|
|
cksum
|
Print CRC checksum and byte counts
|
|
cmp
|
Compare two files
|
comm
|
Compare two sorted files line by line
|
|
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
|
D
date
|
Display or change the date & time
|
|
dc
|
Desk Calculator
|
|
dd
|
Data Dump - Convert and copy a file
|
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
|
|
du
|
Estimate file space usage
|
|
|
|
E
egrep
|
Search file(s) for lines that match an extended expression
|
|
eject
|
Eject removable media
|
|
ethtool
|
Ethernet card settings
|
|
expand
|
Convert tabs to spaces
|
expr
|
Evaluate expressions
|
|
F
fdformat
|
Low-level format a floppy disk
|
|
fdisk
|
Partition table manipulator for Linux
|
|
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
|
|
format
|
Format disks or tapes
|
free
|
Display memory usage
|
|
fsck
|
File system consistency check and repair
|
|
ftp
|
File Transfer Protocol
|
G
gawk
|
Find and Replace text within file(s)
|
|
grep
|
Search file(s) for lines that match a given pattern
|
|
groups
|
Print group names a user is in
|
gzip
|
Compress or decompress named file(s)
|
H
head
|
Output the first part of file(s)
|
|
hostname
|
Print or set system name
|
I
id
|
Print user and group id's
|
|
ip
|
Configure a network interface
|
|
import
|
Capture an X server screen and save the image to file
|
install
|
Copy files and set attributes
|
J
join
|
Join lines on a common field
|
K
kill
|
Stop a process from running
|
L
less
|
Display output one screen at a time
|
|
ln
|
Make links between files
|
|
locate
|
Find files
|
logname
|
Print current login name
|
|
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
|
M
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
|
mv
|
Move or rename files or directories
|
N
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 (setsid is preferred)
|
|
nslookup
|
Query Internet name servers interactively
|
P
passwd
|
Modify a user password
|
|
paste
|
Merge lines of files
|
|
pathchk
|
Check file name portability
|
ping
|
Test a network connection
|
|
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
|
|
pwd
|
Print Working Directory
|
Q
quota
|
Display disk usage and limits
|
|
quotacheck
|
Scan a file system for disk usage
|
|
quotactl
|
Set disk quotas
|
R
ram
|
ram disk device
|
|
rcp
|
Copy files between two machines
|
|
remsync
|
Synchronize remote files via email
|
rm
|
Remove files
|
|
rmdir
|
Remove folder(s)
|
|
rsync
|
Remote file copy (Synchronize file trees)
|
S
screen
|
Terminal window manager
|
|
scp
|
Secure copy (remote file copy)
|
|
sdiff
|
Merge two files interactively
|
sed
|
Stream Editor (preferably use perl instead)
|
|
seq
|
Print numeric sequences
|
|
sftp
|
Secure File Transfer Program
|
shutdown
|
Shutdown or restart linux
|
|
sleep
|
Delay for a specified time
|
|
sort
|
Sort text files
|
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
|
|
sum
|
Print a checksum for a file
|
|
symlink
|
Make a new name for a file
|
sync
|
Synchronize data on disk with memory
|
T
tail
|
Output the last part of files
|
|
tar
|
Tape ARchiver
|
|
tee
|
Redirect output to multiple files
|
test
|
Evaluate a conditional expression
|
|
time
|
Measure Program running time
|
|
touch
|
Change file timestamps
|
top
|
List processes running on the system
|
|
traceroute
|
Trace Route to Host
|
|
tr
|
Translate, squeeze, and/or delete characters
|
tsort
|
Topological sort
|
|
tty
|
Print filename of terminal on stdin
|
U
ulimit
|
Limit user resources
|
|
uname
|
Print system information
|
|
unexpand
|
Convert spaces to tabs
|
uniq
|
Uniquify files
|
|
units
|
Convert units from one scale to another
|
|
unshar
|
Unpack shell archive scripts
|
useradd
|
Create new 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
v
|
Verbosely list directory contents (`ls -l -b')
|
|
vdir
|
Verbosely list directory contents (`ls -l -b')
|
|
vi
|
Text Editor
|
W
watch
|
Execute/display a program periodically
|
|
wc
|
Print byte, word, and line counts
|
|
whereis
|
Report all known instances of a command
|
which
|
Locate a program file in the user's path
|
|
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
|
X
xargs
|
Execute utility, passing constructed argument list(s)
|
Y
yes
|
Print a string until interrupted
|
.period Run commands from a file
As you can see, the list is quite extensive, however many of these commands may never be needed. The ls command is among the most used commands, and is one of the simplest.
Conclusion
By default in openSUSE, the terminal will start the bash shell. Use of commands are vital in circumstances when an installed desktop has limited capabilities or is not available.