Terminal

Jump to: navigation, search
Icon-cleanup.png
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.