Unix
Unix
when invoked without any arguments, lists the files in the current working directory. A directory
that is not the current working directory can be specified and ls will list the files there. The user
also may specify any list of files and directories. In this case, all files and all contents of specified
directories will be listed.
Files whose names start with "." are not listed, unless the -a flag is specified or the files are
specified explicitly.
Without options, ls display files in a bare format. This bare format however makes it difficult to
establish the type, permissions, and size of the files. The most common options to reveal this
information or change the list of files are:
-l long format, displaying Unix file type, permissions, number of hard links, owner, group,
size, date, and filename
-F appends a character revealing the nature of a file, for example, * for an executable, or / for
a directory. Regular files have no suffix.
-a lists all files in the given directory, including those whose names start with "." By default,
these files are excluded from the list.
-R recursively lists subdirectories. The command ls -R / would therefore list all files.
cd
Is a command line command used to change the current working directory in the Unix and DOS
operating systems. It is also available for use in Unix shell scripts or DOS batch files. cd is
frequently included built into certain shells such as the Bourne shell, tcsh, bash (where it calls
the chdir() POSIX C function) and in DOS's COMMAND.COM.
A directory is a logical section of a filesystem used to hold files. Directories may also contain
other directories. The cd command can be used to change into a subdirectory, move back into
the parent directory, move all the way back to the root (/ in UNIX, \ in DOS) or move to any
given directory.
pwd
command (print working directory) is used to print the name of current working directory from
a computer's command-line interface. If the shell prompt does not already show this, the user
can use this command to find their place in the directory tree. This command is found in the
Unix family of operating systems and other flavors as well. The DOS equivalent is " CD" with no
arguments.
It is a command which is sometimes included built into certain shells such as sh, and bash. It can
be implemented easily with the POSIX C functions getcwd() and/or getwd().
Example: $ pwd
mkdir
command in the Unix operating system is used to make a new Directory. Normal usage is as
straightforward as follows:
mkdir name_of_directory
Where name_of_directory is the name of the directory one wants to create. When typed as
above (ie. normal usage), the new directory would be created within the current directory.
is a Unix command used to delete files from a filesystem. Common options that rm accepts
include:
-f, which ignores non-existent files and overrides any confirmation prompts ("force")
rm is often aliased to "rm -i" so as to avoid accidental deletion of files. If a user still wishes to
delete a large number of files without confirmation, they can manually cancel out the -i
argument by adding the -f option.
"rm -rf" (variously, "rm -rf /", "rm -rf *", and others) is frequently used in jokes and anecdotes
about Unix disasters. The "rm -rf /" variant of the command, if run by an administrator, would
cause the contents of every mounted disk on the computer to be deleted.
rmdir
rmdir name_of_directory
Where name_of_directory corresponds with the name of the directory one wishes to delete.
There are options to this command such as -p which removes parent directories if they are also
empty.
For example:
rmdir –p foo/bar/baz
Will first remove baz/, then bar/ and finally foo/ thus removing the entire directory tree
specified in the command argument.
Often rmdir will not remove a directory if there is still files present in the directory. To force the
removal of the directory even if files are present usually the -rf flag can be used. For example:
cp
is the command entered in a Unix shell to copy a file from one place to another, possibly on a
different filesystem. The original file remains unchanged, and the new file may have the same or
a different name.
cp [ -f ] [ -h ] [ -i ] [ -p ][ -- ] SourceFile TargetFile
-f (force) – specifies removal of the target file if it cannot be opened for write operations. The
removal precedes any copying performed by the cp command.
-h – makes the cp command copy symbolic links. The default is to follow symbolic links, that is,
to copy files to which symbolic links point.
-i (interactive) – prompts you with the name of a file to be overwritten. This occurs if the
TargetDirectory or TargetFile parameter contains a file with the same name as a file specified in
the SourceFile or SourceDirectory parameter. If you enter y or the locale's equivalent of y, the cp
command continues. Any other answer prevents the cp command from overwriting the file.
Examples
cp prog.c prog.bak
This copies prog.c to prog.bak. If the prog.bak file does not already exist, the cp command
creates it. If it does exist, the cp command replaces it with a copy of the prog.c file.
To copy a file in your current directory into another directory, enter:
cp jones /home/nick/clients
To copy a file to a new file and preserve the modification date, time, and access control list
associated with the source file, enter:
cp -p smith smith.jr
This copies the smith file to the smith.jr file. Instead of creating the file with the current date
and time stamp, the system gives the smith.jr file the same date and time as the smith file. The
smith.jr file also inherits the smith file's access control protection.
cp /home/janet/clients/* /home/nick/customers
This copies only the files in the clients directory to the customers directory.
To copy a directory, including all its files and subdirectories, to another directory, enter:
cp -R /home/nick/clients /home/nick/customers
This copies the clients directory, including all its files, subdirectories, and the files in those
subdirectories, to the customers/clients directory.
This copies the jones, lewis, and smith files in your current working directory to the
/home/nick/clients directory.
cp programs/*.c .
This copies the files in the programs directory that end with .c to the current directory, signified
by the single . (dot). You must type a space between the c and the final dot.
find
program is a search utility, mostly found on Unix-like platforms. It searches through a directory
tree of a filesystem, locating files based on some user-specified criteria. By default, find returns
all files below the current working directory. Further, find allows the user to specify an action
to be taken on each matched file. Thus, it is an extremely powerful program for applying actions
to many files. It also supports regexp matching.
Examples
This searches in the current directory (represented by a period) and below it, for files and
directories with names starting with my. The backslash before the star is needed to avoid the
shell expansion. Without the backslash, the shell would replace my* with the list of files whose
names begin with my in the current directory. An alternative is to enclose the the arguments in
quotes: find . -name "my*"
Files only
This limits the results of the above search to only regular files, therefore excluding directories,
special files, pipes, symbolic links, etc. my* is enclosed in quotes as otherwise the shell would
replace it with the list of files in the current directory starting with my
Commands
The previous examples created listings of results because, by default, find executes the '-print'
action. (Note that early versions of the find command had no default action at all; therefore
the resulting list of files would be discarded, to the bewilderment of naïve users.)
This searches every file on the computer for a file with the name myfile. It is generally not a
good idea to look for data files this way. This can take a considerable amount of time, so it is
best to specify the directory more precisely.
Specify a directory
This searches for files named myfile in the /home/brian directory, which is the home directory
for the user brian. You should always specify the directory to the deepest level you can
remember.
This prints extended information on any file whose name ends with either 'jsp' or 'java'. Note
that the parentheses are required. Also note that the operator "or" can be abbreviated as "o".
The "and" operator is assumed where no operator is given. In many shells the parentheses must
be escaped with a backslash, "\(" and "\)", to prevent them from being interpreted as special
shell characters.
touch
is a program on Unix and Unix-like systems used to change a file's date- and time-stamp. It can
also be used to create an empty file. The command-syntax is:
If the file exists, its access and modification time-stamps are set to the system's current date
and time, as if the file had been changed. To touch a file simulates a change to the file. If the file
does not exist, an empty file of that name is created with its access and modification time-
stamps set to the system's current date and time. If no file path is specified, the current
directory is assumed.
touch can be invoked with options to change its behaviour, which may vary from one Unix to
another. One option makes it possible to set the file's time-stamp to something other than the
current system date and time, but this action is normally restricted to the owner of the file or
the system's superuser.
echo
is a command in Unix (and by extension, its descendants, such as Linux) and MS-DOS that places
a string on the terminal. It is typically used in shell scripts and batch programs to output status
text to the screen or a file.
This is a test.
$ cat ./test.txt
This is a test.
cat
program concatenates the contents of files, reading from a list of files and/or standard input in
sequence and writing their contents in order to standard output. cat takes the list of files as
arguments but also interprets the argument "-" as standard input.
who
The Unix command who displays a list of users who are currently logged into a computer. The
command accepts various options that vary by system to further specify the information that is
returned, such as the length of time a particular user has been connected or what pseudo-
teletype a user is connected to. The who command is related to the command w, which provides
the same information but also displays additional data and statistics.
Example output
is a Unix computer program to display the amount of disk space used under a particular
directory or files on a file system.
du counts the disk space by walking the directory tree. As such, the amount of space on a file
system shown by du may vary from that shown by df if files have been deleted but their blocks
not yet freed.
Example
The -k flag will show the sizes in 1K blocks, rather than the default of 512 byte blocks.
$du -k /seclog
4 /seclog/lost+found
132 /seclog/backup/aix7
136 /seclog/backup
44044 /seclog/temp
439264 /seclog