SlideShare a Scribd company logo
Unix Beginners QuickSheet                                                    stdin Standard in. This is the stream of data that a program recieves       Quirks of the shell
Version: 0.10.0                                                                     from the command line. Not to be confused with command line          • When you type a command in Unix the shell will set about finding
Date: 2/23/7                                                                        arguments that are specified when the program is run this is          it. If you do not specify a path (such as /usr/bin/ls) but instead call
                                                                                    data that is recieved from user input or other commands while        the command without a path (such as ls) the shell is responsible for
                                                                                    the program is running. Input can be sent from program to pro-       finding it. To do this the shell uses a list of directories that it stores
This document is written for those who find themselves new to the Unix               gram by piping it between the two using ones stdin and anothers      in the $PATH variable. If the command you are trying to run is not in
command line (shell). Each Unix version has local variations in terms               stdout.                                                              these directories it will not be found, even if it is in the directory you
of availible shells, commands, and directory layout. This is intended as                                                                                 are in. (It is considered bad practice to put the current directory (a ’.’)
a general guide only, verify these commands exist and are compatible         stdout Standard out. This is the stream of data that (command line)         in your $PATH to change this behavior.)
by refering to your local man page.                                                programs print to the user interface. This output can be cap-         • The shell has internal and external commands. Internal commands
Unix is a popular operating system that is built some of the most mature           tured via a pipe or a redirect and sent to another program or         are implemented by the shell itself. External commands are imple-
developments in operating system design. Many of the basic concepts                file. stdout is know as file descriptor “1”.                            mented by other programs that exist as seperate programs (executa-
that are used today (and are covered in this guide) were designed over                                                                                   bles) on the system. Commands like ls are external. In the case of ls
30 years ago. An knowledge investment in Unix skills is likely to be         environment This is the collection of variables and settings that a
                                                                                    program runs within. Each environment is inherited from the          this command tends to be in /bin/ls. The cd command is an internal
a rewarding investment for a significant ammount of time. This gives                                                                                      shell command that is not found in the system but is interpreted by
the Unix user the oppurtunity to develop a deeper and more profound                 process that started it. Changes in your environment (such as
                                                                                    setting a variable) may be inherited by processes you start, but     the shell itself as a request to change the current directory that it is
knowledge of their tool over the OS user who must re-learn the interface                                                                                 working in.
every major release.                                                                will not have an effect on processes that are allready running.
                                                                                    This is a key componet of a multi-user environment.                  • When a shell starts a command the relationship is called parent-child.
                                                                                                                                                         The naming is appropriate because the children inherit the environ-
Definitions                                                                                                                                               ment of the parent (shell). This means that any variables or settings
                                                                             The shell                                                                   that were set in the shell environment become the settings for the child.
alias A command that is really another command or series of com-             • The Unix shell is the primary method that users interact with the         Changes made while in the child process do not change the environ-
       mands. The command ll is frequently an alias for ls -l.               system. It is the essence of the command line interface experience with     ment of the parent. Variables that have been exported in the parent
       Whenever you type an alias (such as ll) the shell substitutes         the system. In the context of this paper, the shell is the essence of the   are visible in the child. For this reason some programs will require that
       the actual command ls -l.                                             Unix experience. It is responsible for interpreting user requests entered   a list of variables be set and exported prior to them running.
argument This is an additional parameter that follows the command            on the command line and linking groups of commands together.                • When a command is run from the shell it runs in the foreground.
       on the command line that tells the command how you expect it          • The shell is the interactive interface to the system that is utilized     This means that all input and output are used for that command. If a
       to behave. The parameter -l to the command ls tells ls that           when running locally or when connecting remotely over a telnet or ssh       command is backgrounded it will run in the background and you can
       you want a long listing of directory items instead of the standard    connection.                                                                 continue to run additional commands in the foreground. A command
       shortend list that you would get using only ls by itself.             • The most common shells are bourne (sh), korn (ksh), C (csh), and          can be backgrounded by calling it followed with a & character. Com-
                                                                             bourne-again (bash). This document deals primarily with bourne and          mands that require input should not be backgrounded.
daemon This is a program that runs in the background and handles             its descendents (ksh and bash).
       tasks and requests made to the system. Names of daemon pro-           • Unix is case sensitive. The file wfavorite.txt is not the same as WFa-
       cesses frequently end in the letter “d” by convention. One ex-
                                                                                                                                                         Understanding file attributes
                                                                             vorite.txt. Unix views these as two different items.                         • All files belong to someone, and have descriptions of what kind of
       ample of this is the httpd process that handles http requests.
                                                                                                                                                         files they are and how they can be used. This data is viewable with the
       (The httpd daemon is more comonly known as a web server.)             Shell shortcuts - file globbing                                              ls command. Below is a sample listing created by running ls -l:
internal (command) Some commands are processed by the shell and              • File globbing allows you list multiple files by expressing all the files    -rw-rw-r-- 1 wfavorite devlopers 62896 Oct 4 08:26 hw.c
       not by the local system. One such example is the cd command.          as a pattern. The examples below use the echo to simply repeat the          -rwxrwxr-x 1 wfavorite devlopers 4679 Oct 16 08:21 hw
       If cd were a binary it would launch in its own environment,           expanded glob.                                                              drwxrwxr-x 11 wfavorite devlopers 4096 Oct 15 08:15 work
       change the directory and exit back to the original environment        • The * character can match any number of characters. By itself the *       From this we can determine that hw.c:
       with the original directory. For this reason, commands that effect     will match everything. The number of matches can be limited by using         -rw-rw-r-- is a file
       the environment, must be internal to the shell. These are also        other characters with it. The ? character matches any single character.      -rw-rw-r-- the owner can read, write, but not execute it
       sometimes called builtins. These commands can be determined           The ? by itself will match any single letter name.                           -rw-rw-r-- the group can read, write, but not execute it
       with the type shell internal command.                                 Print all files in the current directory that end in txt                      -rw-rw-r-- all others can only read it
link A link is a pointer to a file. It is frequently used to give a file       echo *txt                                                                   hw:
       or directory multiple names. Links are either symbolic or hard.       Print all files in the current directory that begin with “important”          -rwxrwxr-x is also a file
       Symbolic links are actually files that point to other files. Sym-       echo important*                                                              -rwxrwxr-x both the user and group have read, write and execute
       bolic links can refer to directories, work across filesystems, or      Print all files in the current directory that have four characters            -rwxrwxr-x others can only read, and execute it
       refer to files that currently do not exist. Hard links are when a      echo ????                                                                   work:
       file has multiple different names. Use ln to create links.              Print all files in the /usr/bin directory that begin with X                   drwxrwxr-x is a directory
                                                                             echo /usr/bin/X*                                                             drwxrwxr-x shares the same permisssions as hw. Because a directory
pipe This is represented by the | character. When a pipe is placed be-
                                                                                                                                                                       cannot be executed the execute permission means that
       tween two commands it connects the output (stdout/stderr )of          Shell advanced shortcuts                                                                  users can enter the directory and view its contents.
       the first command to the input (stdin) of the second command.          • shell history is the ability to call upon and reuse previously run
       This is the primary method of creating larger functionality by                                                                                    All of the above entries:
                                                                             commands in the shell. The history can be viewed with the history
       joining multiple smaller commands.                                                                                                                 are owned by user wfavorite and group devlopers.
                                                                             shell command, or can be reused with one of the command line key
                                                                                                                                                         • File permissions are modified using the chmod command
process A program that has been read from disk and is running is called      sequences. The previous command is typically available by using the
                                                                                                                                                         • File ownership is modified using the chown and chrgp commands
       a process. Each process has a process identifier called a pid. A       up arrow key. If this does not work      -p (emacs mode) or     -k (vi
       list of processes and pids can be viewed with the ps command.         mode) will recall the previous command.                                     Useful Unix pointers
stderr Standard error. This is the stream of data that programs create       • Most shells allow for a concept called command completion. This is        • Don’t use spaces or strange characters in filenames. Because you
       strictly for error messages. Frequently this is mixed with stdout     often implemented as a      (in bash shell),     (korn emacs mode),         have to refer to files on the command line it is best to not use spaces in
       data and may seem identical. For most purposes stdout and             or      (korn vi mode) key sequence. Simply type the first string           the file name. If you do use spaces it will be necessary to “quote” the
       stedrr are identical, but the key difference is when used in long      of characters in a filename and then hit the command completion              name so that it does not appear as two different files when specified on
       connections of commands the stderr can be isolated and sent to        sequence, the shell will complete the file name from the possibilites it     the command line.
       a different location if necessary. stderr is known as file descriptor   finds.
       “2”.
Commands (grouped by task)                                                  ls                                                                         Editors - Using vi
Commands to modify file attributes                                           List names and attributes of files                                          • More user friendly editors exist for Unix systems, but the vi editor
chmod chown                                                                 ls -l                                                                      can be found on virtually every Unix system you may ever encounter.
Commands to show info about files                                          man View the online manual                                                   • vi has a command mode and an insert mode. Command mode is for
file ls                                                                      View the manual page for the ls command                                    telling vi things you want to do, such as open, save, edit a file, or quit.
Move, copy, or rename files                                                  man ls                                                                     Insert mode is when you are actually typing text into the file.
mv cp ln cpio                                                             mkdir Create a directory                                                     • Some essential command mode commands:
Show contents of a text file                                                 Create a directory called mydir in the current working directory             :w      - Write the file
more cat head tail                                                          mkdir mydir                                                                  :q     - Quit the editor
Show what processes are running on a system                               more List the contents of a file (or stream of data) a bit at a time            :q!     - Quit the editor without saving changes you may have made
ps top                                                                      Display the contents of a file called “largefile”                              i - Begin inserting text where the cursor is in the file
                                                                            more largefile                                                               x - Delete the character under the cursor
Remote access                                                               Display the results of the ps command a page at a time                       dd - Delete entire line
• Remote access to Unix systems is typically gained in one of the fol-      ps | more                                                                    p - Paste previously deleted line
lowing ways: remote shell, file transfer, application access, or remote    mv Move a file to a new location or name                                            - (While in insert mode) will return you to command mode
console / X.                                                                Move “myfile” into the directory called “mydir”                             • The commands for vi and other editors are very rich. The full set of
• Remote shell is achived primarily by telnet or now, using the more        mv myfile mydir                                                            commands is beyond the scope of this QuickSheet.
secure method, ssh.                                                         Rename “myfile” to “ourfile”
• Files are transfered individually by using ftp and rcp or the secure      mv myfile ourfile                                                          Moving around the system - directories
equivelants sftp and scp.                                                 passwd Change your password on the system                                    Directories are delimited with a / character.
                                                                          ps List running proceses                                                     . referes to the current directory
Commands listed with examples                                               List processes that you have running                                       .. refers to the parent directory
cat concatenate and print files                                              ps                                                                         cd .. will move you to the parent directory
Dump /etc/hosts file to stdout                                               List processes that belong to all users                                    cd - will change to the previous directory
  cat /etc/hosts                                                            ps ax (for OS X) ps -ef (for Linux, Solaris)                               pwd will print the current directory
  Write everything typed (until      -d is entered) to the file “newfile”   pwd Print the current working directory
  cat >> newfile                                                          rm Remove a file or directory                                                 Troubleshooting
cd Change (working) directories                                             Remove a file called “myfile”                                                • What shell am I running?
  Change to the /usr/bin directory                                          rm myfile                                                                  echo $0 (echo $SHELL is not necessarily the one you are running )
  cd /usr/bin                                                               Remove a direcotry called “mydir”                                          • Why does my Backspace key print funny chars (like ^H)?
  Change to your home directory                                             rm -r mydir                                                                stty erase ^H       (“stty erase ” then backspace key to define the
  cd                                                                      su Become another user                                                       backspace key)
  Change back to the directory you were previously in                       Simply become the user fred (gain fred’s permissions)                      • Why does it say “file not found” when I run ./ls?
  cd -                                                                      su fred                                                                    Because you said to run the copy of ls in the current directory and it
cp Copy a file or directory                                                  Become the user fred and run the login profile for that user                does not exist there. Try: ls (If it does not work, you most likely have
  Copy “myfile” to “myfile.backup”                                            su - fred                                                                  a problem with your PATH.
  cp myfile myfile.backup                                                   Become the root user and run the profile (user environment) for root        • Why can I only create a file 1 (or 2) gig in size?
  Copy the directory “mydir” to “mydir.backup”                              su -                                                                       Your account may have limits set. Check your ulimit for files using the
  cp -r mydir mydir.backup                                                sudo Run a command as another user (typically root)                          ulimit command.
cpio Copy a file or directory                                                Edit the system hosts file
  Note: Options to copi vary by system, check your local options.           sudo vi /etc/hosts
  Copy “sourcedir” to “destdir”                                             Run the id command as root (worthless, but demonstrates sudo)              Special files
  cd sourcedir; find . -print -depth | cpio -pdm destdir                    sudo id                                                                    • Some “files” on the system have special purposes. These files are
date Print the current date and time                                      tail Print the last part of a file                                            used by scripts and programs to generate or remove data. Some exam-
exit Log out from the current session                                       Print the last (by default) 10 lines of “myfile.txt”                        ples are:
      -d also works for this purpose                                        tail myfile.txt                                                            /dev/null - Anything written to this file will disappear
file Determine what kind of file a target is                                top List the top (CPU) processes on a system                                 /dev/zero - Anything read from this file will be all (binary) zeros
  Determine what kind of file “myfile” is                                   type Determine what a string / label is                                      /dev/random - Anything read from this file will be random data
  file myfile                                                               Determine if cd is a binary, alias, or internal command.
  Determine what kind of file the (special) file “/dev/zero” is               type cd (cd is an internal command / shell builtin)                        Additional help
  file /dev/zero                                                          which Search your path for a binary                                          Find all instances of “system” in the man files
find Locate a file in the system                                              Show the full path to the ls command                                       whatis system -or- apropos system
  Find a file “myfile” in your home directory, print all matching names       which ls                                                                   Access the man(ual) page for the man browser
  find ~/ -name myfile -print                                                                                                                          man man
grep Search through the contents of a file (or stream) for a pattern       Piping and redirection
  Look for a line with the word needle in the file called haystack.txt     • Piping is typically done between programs while redirection is typically
  grep needle haystack.txt                                                done to or from files. Some examples are listed here.                         About this QuickSheet
  Look for a line that contains only needle in haystack.txt               To pipe the stdout and stderr of ls to sort                                  Created by: William Favorite (wfavorite@tablespace.net)
  grep "^needle$" haystack.txt                                            ls | sort                                                                    Updates at: http://www.tablespace.net
  Look for the string “emacs” (a running process) in the output of ps     Send the stdout of ls to sort and the stderr to the file /dev/null            Disclaimer: This document is a guide and it includes no express war-
  ps | grep emacs                                                         ls 2> /dev/null | sort                                                       ranties to the suitability, relevance, or compatibility of its contents with
head Print the first part of a file                                         Send both the stdout and stderr of ls to the file /dev/null                   any specific system. Research any and all commands that you inflict
  Print the first (by default) 10 lines of “myfile.txt”                     ls > /dev/null 2>&1                                                          upon your command line.
  head myfile.txt                                                         Overwrite the contents of file.txt with the output of ls                     Distribution: The PDF version is free to redistribute as long as credit
id Display current user and group membership                              ls > file.txt                                                                to the author and tablespace.net is retained in the printed and viewable
ls List all files in a directory                                           Append the output of ls to the end of file.txt                                           A
                                                                                                                                                       versions. LTEXsource not distributed at this time.
  List file names                                                          ls >> file.txt

More Related Content

PDF
Linux unix-commands
PPTX
Linux Administrator - The Linux Course on Eduonix
PPT
Linux
PPTX
Linux automated tasks
PDF
Unix practical file
PDF
Quick guide of the most common linux commands
PPTX
Unix OS & Commands
PDF
Operating system lab manual
Linux unix-commands
Linux Administrator - The Linux Course on Eduonix
Linux
Linux automated tasks
Unix practical file
Quick guide of the most common linux commands
Unix OS & Commands
Operating system lab manual

What's hot (19)

PDF
VTU 3RD SEM UNIX AND SHELL PROGRAMMING SOLVED PAPERS
PPT
Spsl by sasidhar 3 unit
PPTX
Lecture 4 FreeBSD Security + FreeBSD Jails + MAC Security Framework
PPS
QSpiders - Unix Operating Systems and Commands
PDF
Os lab manual
PPT
Linux Interview Questions Quiz
PDF
Linuxbasiccommands
PPT
Linux commands
PDF
LINUX Admin Quick Reference
PPT
Operating system (remuel)
PPTX
Linux remote
ODP
Linux commands
PDF
Comenzi unix
PPT
Host security
PDF
50 most frequently used unix linux commands (with examples)
PDF
Lecture1 Introduction
PDF
PPT
Linuxnishustud
TXT
An a z index of the bash commands
VTU 3RD SEM UNIX AND SHELL PROGRAMMING SOLVED PAPERS
Spsl by sasidhar 3 unit
Lecture 4 FreeBSD Security + FreeBSD Jails + MAC Security Framework
QSpiders - Unix Operating Systems and Commands
Os lab manual
Linux Interview Questions Quiz
Linuxbasiccommands
Linux commands
LINUX Admin Quick Reference
Operating system (remuel)
Linux remote
Linux commands
Comenzi unix
Host security
50 most frequently used unix linux commands (with examples)
Lecture1 Introduction
Linuxnishustud
An a z index of the bash commands
Ad

Viewers also liked (7)

DOC
20 C programs
PDF
Unix Shell Script
PPTX
Unix Operating System
PPT
UNIX and Linux - an introduction by Mathias Homann
PPT
Basic Unix
PPT
Basic command ppt
20 C programs
Unix Shell Script
Unix Operating System
UNIX and Linux - an introduction by Mathias Homann
Basic Unix
Basic command ppt
Ad

Similar to Unix quicksheet (20)

PDF
Unix Shell Scripting
PPTX
Shell Scripting and Programming.pptx
PPTX
Shell Scripting and Programming.pptx
PPT
Using Unix
PDF
Linux: A Getting Started Presentation
PPTX
Unix/Linux
PDF
L lpic1-v3-103-1-pdf
DOCX
lec4.docx
PPTX
unit_1_foss_2.pptxbfhfdhfgsdgtsdegtsdtetg
DOCX
Unix_commands_theory
PDF
21bUc8YeDzZpE
PDF
21bUc8YeDzZpE
PDF
(Ebook) linux shell scripting tutorial
PDF
21bUc8YeDzZpE
PPT
intro unix/linux 08
PPT
Shell_Scripting.ppt
PPT
intro unix/linux 03
PPTX
Presentation for RHCE in linux
PDF
2.1.using the shell
Unix Shell Scripting
Shell Scripting and Programming.pptx
Shell Scripting and Programming.pptx
Using Unix
Linux: A Getting Started Presentation
Unix/Linux
L lpic1-v3-103-1-pdf
lec4.docx
unit_1_foss_2.pptxbfhfdhfgsdgtsdegtsdtetg
Unix_commands_theory
21bUc8YeDzZpE
21bUc8YeDzZpE
(Ebook) linux shell scripting tutorial
21bUc8YeDzZpE
intro unix/linux 08
Shell_Scripting.ppt
intro unix/linux 03
Presentation for RHCE in linux
2.1.using the shell

Recently uploaded (20)

PDF
Emailing DDDX-MBCaEiB.pdf DDD_Europe_2022_Intro_to_Context_Mapping_pdf-165590...
PPTX
Wisp Textiles: Where Comfort Meets Everyday Style
PPTX
Special finishes, classification and types, explanation
PDF
BRANDBOOK-Presidential Award Scheme-Kenya-2023
PPTX
12. Community Pharmacy and How to organize it
PDF
Urban Design Final Project-Site Analysis
PPTX
areprosthodontics and orthodonticsa text.pptx
PPTX
BSCS lesson 3.pptxnbbjbb mnbkjbkbbkbbkjb
PDF
Benefits_of_Cast_Aluminium_Doors_Presentation.pdf
PDF
UNIT 1 Introduction fnfbbfhfhfbdhdbdto Java.pptx.pdf
DOCX
The story of the first moon landing.docx
PDF
Wio LTE JP Version v1.3b- 4G, Cat.1, Espruino Compatible\202001935, PCBA;Wio ...
PDF
GREEN BUILDING MATERIALS FOR SUISTAINABLE ARCHITECTURE AND BUILDING STUDY
PDF
Africa 2025 - Prospects and Challenges first edition.pdf
PDF
SEVA- Fashion designing-Presentation.pdf
PPT
UNIT I- Yarn, types, explanation, process
PPT
Package Design Design Kit 20100009 PWM IC by Bee Technologies
PPTX
ANATOMY OF ANTERIOR CHAMBER ANGLE AND GONIOSCOPY.pptx
PDF
High-frequency high-voltage transformer outline drawing
PPTX
AC-Unit1.pptx CRYPTOGRAPHIC NNNNFOR ALL
Emailing DDDX-MBCaEiB.pdf DDD_Europe_2022_Intro_to_Context_Mapping_pdf-165590...
Wisp Textiles: Where Comfort Meets Everyday Style
Special finishes, classification and types, explanation
BRANDBOOK-Presidential Award Scheme-Kenya-2023
12. Community Pharmacy and How to organize it
Urban Design Final Project-Site Analysis
areprosthodontics and orthodonticsa text.pptx
BSCS lesson 3.pptxnbbjbb mnbkjbkbbkbbkjb
Benefits_of_Cast_Aluminium_Doors_Presentation.pdf
UNIT 1 Introduction fnfbbfhfhfbdhdbdto Java.pptx.pdf
The story of the first moon landing.docx
Wio LTE JP Version v1.3b- 4G, Cat.1, Espruino Compatible\202001935, PCBA;Wio ...
GREEN BUILDING MATERIALS FOR SUISTAINABLE ARCHITECTURE AND BUILDING STUDY
Africa 2025 - Prospects and Challenges first edition.pdf
SEVA- Fashion designing-Presentation.pdf
UNIT I- Yarn, types, explanation, process
Package Design Design Kit 20100009 PWM IC by Bee Technologies
ANATOMY OF ANTERIOR CHAMBER ANGLE AND GONIOSCOPY.pptx
High-frequency high-voltage transformer outline drawing
AC-Unit1.pptx CRYPTOGRAPHIC NNNNFOR ALL

Unix quicksheet

  • 1. Unix Beginners QuickSheet stdin Standard in. This is the stream of data that a program recieves Quirks of the shell Version: 0.10.0 from the command line. Not to be confused with command line • When you type a command in Unix the shell will set about finding Date: 2/23/7 arguments that are specified when the program is run this is it. If you do not specify a path (such as /usr/bin/ls) but instead call data that is recieved from user input or other commands while the command without a path (such as ls) the shell is responsible for the program is running. Input can be sent from program to pro- finding it. To do this the shell uses a list of directories that it stores This document is written for those who find themselves new to the Unix gram by piping it between the two using ones stdin and anothers in the $PATH variable. If the command you are trying to run is not in command line (shell). Each Unix version has local variations in terms stdout. these directories it will not be found, even if it is in the directory you of availible shells, commands, and directory layout. This is intended as are in. (It is considered bad practice to put the current directory (a ’.’) a general guide only, verify these commands exist and are compatible stdout Standard out. This is the stream of data that (command line) in your $PATH to change this behavior.) by refering to your local man page. programs print to the user interface. This output can be cap- • The shell has internal and external commands. Internal commands Unix is a popular operating system that is built some of the most mature tured via a pipe or a redirect and sent to another program or are implemented by the shell itself. External commands are imple- developments in operating system design. Many of the basic concepts file. stdout is know as file descriptor “1”. mented by other programs that exist as seperate programs (executa- that are used today (and are covered in this guide) were designed over bles) on the system. Commands like ls are external. In the case of ls 30 years ago. An knowledge investment in Unix skills is likely to be environment This is the collection of variables and settings that a program runs within. Each environment is inherited from the this command tends to be in /bin/ls. The cd command is an internal a rewarding investment for a significant ammount of time. This gives shell command that is not found in the system but is interpreted by the Unix user the oppurtunity to develop a deeper and more profound process that started it. Changes in your environment (such as setting a variable) may be inherited by processes you start, but the shell itself as a request to change the current directory that it is knowledge of their tool over the OS user who must re-learn the interface working in. every major release. will not have an effect on processes that are allready running. This is a key componet of a multi-user environment. • When a shell starts a command the relationship is called parent-child. The naming is appropriate because the children inherit the environ- Definitions ment of the parent (shell). This means that any variables or settings The shell that were set in the shell environment become the settings for the child. alias A command that is really another command or series of com- • The Unix shell is the primary method that users interact with the Changes made while in the child process do not change the environ- mands. The command ll is frequently an alias for ls -l. system. It is the essence of the command line interface experience with ment of the parent. Variables that have been exported in the parent Whenever you type an alias (such as ll) the shell substitutes the system. In the context of this paper, the shell is the essence of the are visible in the child. For this reason some programs will require that the actual command ls -l. Unix experience. It is responsible for interpreting user requests entered a list of variables be set and exported prior to them running. argument This is an additional parameter that follows the command on the command line and linking groups of commands together. • When a command is run from the shell it runs in the foreground. on the command line that tells the command how you expect it • The shell is the interactive interface to the system that is utilized This means that all input and output are used for that command. If a to behave. The parameter -l to the command ls tells ls that when running locally or when connecting remotely over a telnet or ssh command is backgrounded it will run in the background and you can you want a long listing of directory items instead of the standard connection. continue to run additional commands in the foreground. A command shortend list that you would get using only ls by itself. • The most common shells are bourne (sh), korn (ksh), C (csh), and can be backgrounded by calling it followed with a & character. Com- bourne-again (bash). This document deals primarily with bourne and mands that require input should not be backgrounded. daemon This is a program that runs in the background and handles its descendents (ksh and bash). tasks and requests made to the system. Names of daemon pro- • Unix is case sensitive. The file wfavorite.txt is not the same as WFa- cesses frequently end in the letter “d” by convention. One ex- Understanding file attributes vorite.txt. Unix views these as two different items. • All files belong to someone, and have descriptions of what kind of ample of this is the httpd process that handles http requests. files they are and how they can be used. This data is viewable with the (The httpd daemon is more comonly known as a web server.) Shell shortcuts - file globbing ls command. Below is a sample listing created by running ls -l: internal (command) Some commands are processed by the shell and • File globbing allows you list multiple files by expressing all the files -rw-rw-r-- 1 wfavorite devlopers 62896 Oct 4 08:26 hw.c not by the local system. One such example is the cd command. as a pattern. The examples below use the echo to simply repeat the -rwxrwxr-x 1 wfavorite devlopers 4679 Oct 16 08:21 hw If cd were a binary it would launch in its own environment, expanded glob. drwxrwxr-x 11 wfavorite devlopers 4096 Oct 15 08:15 work change the directory and exit back to the original environment • The * character can match any number of characters. By itself the * From this we can determine that hw.c: with the original directory. For this reason, commands that effect will match everything. The number of matches can be limited by using -rw-rw-r-- is a file the environment, must be internal to the shell. These are also other characters with it. The ? character matches any single character. -rw-rw-r-- the owner can read, write, but not execute it sometimes called builtins. These commands can be determined The ? by itself will match any single letter name. -rw-rw-r-- the group can read, write, but not execute it with the type shell internal command. Print all files in the current directory that end in txt -rw-rw-r-- all others can only read it link A link is a pointer to a file. It is frequently used to give a file echo *txt hw: or directory multiple names. Links are either symbolic or hard. Print all files in the current directory that begin with “important” -rwxrwxr-x is also a file Symbolic links are actually files that point to other files. Sym- echo important* -rwxrwxr-x both the user and group have read, write and execute bolic links can refer to directories, work across filesystems, or Print all files in the current directory that have four characters -rwxrwxr-x others can only read, and execute it refer to files that currently do not exist. Hard links are when a echo ???? work: file has multiple different names. Use ln to create links. Print all files in the /usr/bin directory that begin with X drwxrwxr-x is a directory echo /usr/bin/X* drwxrwxr-x shares the same permisssions as hw. Because a directory pipe This is represented by the | character. When a pipe is placed be- cannot be executed the execute permission means that tween two commands it connects the output (stdout/stderr )of Shell advanced shortcuts users can enter the directory and view its contents. the first command to the input (stdin) of the second command. • shell history is the ability to call upon and reuse previously run This is the primary method of creating larger functionality by All of the above entries: commands in the shell. The history can be viewed with the history joining multiple smaller commands. are owned by user wfavorite and group devlopers. shell command, or can be reused with one of the command line key • File permissions are modified using the chmod command process A program that has been read from disk and is running is called sequences. The previous command is typically available by using the • File ownership is modified using the chown and chrgp commands a process. Each process has a process identifier called a pid. A up arrow key. If this does not work -p (emacs mode) or -k (vi list of processes and pids can be viewed with the ps command. mode) will recall the previous command. Useful Unix pointers stderr Standard error. This is the stream of data that programs create • Most shells allow for a concept called command completion. This is • Don’t use spaces or strange characters in filenames. Because you strictly for error messages. Frequently this is mixed with stdout often implemented as a (in bash shell), (korn emacs mode), have to refer to files on the command line it is best to not use spaces in data and may seem identical. For most purposes stdout and or (korn vi mode) key sequence. Simply type the first string the file name. If you do use spaces it will be necessary to “quote” the stedrr are identical, but the key difference is when used in long of characters in a filename and then hit the command completion name so that it does not appear as two different files when specified on connections of commands the stderr can be isolated and sent to sequence, the shell will complete the file name from the possibilites it the command line. a different location if necessary. stderr is known as file descriptor finds. “2”.
  • 2. Commands (grouped by task) ls Editors - Using vi Commands to modify file attributes List names and attributes of files • More user friendly editors exist for Unix systems, but the vi editor chmod chown ls -l can be found on virtually every Unix system you may ever encounter. Commands to show info about files man View the online manual • vi has a command mode and an insert mode. Command mode is for file ls View the manual page for the ls command telling vi things you want to do, such as open, save, edit a file, or quit. Move, copy, or rename files man ls Insert mode is when you are actually typing text into the file. mv cp ln cpio mkdir Create a directory • Some essential command mode commands: Show contents of a text file Create a directory called mydir in the current working directory :w - Write the file more cat head tail mkdir mydir :q - Quit the editor Show what processes are running on a system more List the contents of a file (or stream of data) a bit at a time :q! - Quit the editor without saving changes you may have made ps top Display the contents of a file called “largefile” i - Begin inserting text where the cursor is in the file more largefile x - Delete the character under the cursor Remote access Display the results of the ps command a page at a time dd - Delete entire line • Remote access to Unix systems is typically gained in one of the fol- ps | more p - Paste previously deleted line lowing ways: remote shell, file transfer, application access, or remote mv Move a file to a new location or name - (While in insert mode) will return you to command mode console / X. Move “myfile” into the directory called “mydir” • The commands for vi and other editors are very rich. The full set of • Remote shell is achived primarily by telnet or now, using the more mv myfile mydir commands is beyond the scope of this QuickSheet. secure method, ssh. Rename “myfile” to “ourfile” • Files are transfered individually by using ftp and rcp or the secure mv myfile ourfile Moving around the system - directories equivelants sftp and scp. passwd Change your password on the system Directories are delimited with a / character. ps List running proceses . referes to the current directory Commands listed with examples List processes that you have running .. refers to the parent directory cat concatenate and print files ps cd .. will move you to the parent directory Dump /etc/hosts file to stdout List processes that belong to all users cd - will change to the previous directory cat /etc/hosts ps ax (for OS X) ps -ef (for Linux, Solaris) pwd will print the current directory Write everything typed (until -d is entered) to the file “newfile” pwd Print the current working directory cat >> newfile rm Remove a file or directory Troubleshooting cd Change (working) directories Remove a file called “myfile” • What shell am I running? Change to the /usr/bin directory rm myfile echo $0 (echo $SHELL is not necessarily the one you are running ) cd /usr/bin Remove a direcotry called “mydir” • Why does my Backspace key print funny chars (like ^H)? Change to your home directory rm -r mydir stty erase ^H (“stty erase ” then backspace key to define the cd su Become another user backspace key) Change back to the directory you were previously in Simply become the user fred (gain fred’s permissions) • Why does it say “file not found” when I run ./ls? cd - su fred Because you said to run the copy of ls in the current directory and it cp Copy a file or directory Become the user fred and run the login profile for that user does not exist there. Try: ls (If it does not work, you most likely have Copy “myfile” to “myfile.backup” su - fred a problem with your PATH. cp myfile myfile.backup Become the root user and run the profile (user environment) for root • Why can I only create a file 1 (or 2) gig in size? Copy the directory “mydir” to “mydir.backup” su - Your account may have limits set. Check your ulimit for files using the cp -r mydir mydir.backup sudo Run a command as another user (typically root) ulimit command. cpio Copy a file or directory Edit the system hosts file Note: Options to copi vary by system, check your local options. sudo vi /etc/hosts Copy “sourcedir” to “destdir” Run the id command as root (worthless, but demonstrates sudo) Special files cd sourcedir; find . -print -depth | cpio -pdm destdir sudo id • Some “files” on the system have special purposes. These files are date Print the current date and time tail Print the last part of a file used by scripts and programs to generate or remove data. Some exam- exit Log out from the current session Print the last (by default) 10 lines of “myfile.txt” ples are: -d also works for this purpose tail myfile.txt /dev/null - Anything written to this file will disappear file Determine what kind of file a target is top List the top (CPU) processes on a system /dev/zero - Anything read from this file will be all (binary) zeros Determine what kind of file “myfile” is type Determine what a string / label is /dev/random - Anything read from this file will be random data file myfile Determine if cd is a binary, alias, or internal command. Determine what kind of file the (special) file “/dev/zero” is type cd (cd is an internal command / shell builtin) Additional help file /dev/zero which Search your path for a binary Find all instances of “system” in the man files find Locate a file in the system Show the full path to the ls command whatis system -or- apropos system Find a file “myfile” in your home directory, print all matching names which ls Access the man(ual) page for the man browser find ~/ -name myfile -print man man grep Search through the contents of a file (or stream) for a pattern Piping and redirection Look for a line with the word needle in the file called haystack.txt • Piping is typically done between programs while redirection is typically grep needle haystack.txt done to or from files. Some examples are listed here. About this QuickSheet Look for a line that contains only needle in haystack.txt To pipe the stdout and stderr of ls to sort Created by: William Favorite ([email protected]) grep "^needle$" haystack.txt ls | sort Updates at: http://www.tablespace.net Look for the string “emacs” (a running process) in the output of ps Send the stdout of ls to sort and the stderr to the file /dev/null Disclaimer: This document is a guide and it includes no express war- ps | grep emacs ls 2> /dev/null | sort ranties to the suitability, relevance, or compatibility of its contents with head Print the first part of a file Send both the stdout and stderr of ls to the file /dev/null any specific system. Research any and all commands that you inflict Print the first (by default) 10 lines of “myfile.txt” ls > /dev/null 2>&1 upon your command line. head myfile.txt Overwrite the contents of file.txt with the output of ls Distribution: The PDF version is free to redistribute as long as credit id Display current user and group membership ls > file.txt to the author and tablespace.net is retained in the printed and viewable ls List all files in a directory Append the output of ls to the end of file.txt A versions. LTEXsource not distributed at this time. List file names ls >> file.txt