Introduction to UNIX part 4

Wildcards, conventions, and manuals

Summary

Command Action
* match any number of characters
? match one character
man command read the online manual page for a command
whatis command brief description of a command
apropos keyword match commands with keyword in their man pages

## Wildcards

The * wildcard

The character * is called a wildcard, and will match against zero or more characters (a-z, 0-9, symbols, etc) in a file or directory name. For example, in your unixstuff directory, type:

% ls list*


This will list all files in the current directory which start with ‘list’ Now try typing:

% ls *list


This will list all files in the current directory which end with ‘list’

The ? wildcard

The character ? would match exactly one character (as opposed to the * from above, which matches zero or more). This means that ?ouse would match files like douse and louse, but not arouse. Try typing

% ls ?list


## Filename conventions

We should note here that a directory is merely a special type of file. So the rules and conventions for naming files apply also to directories.

In naming files, characters with special meanings such as / \ * & %, should be avoided. Also, avoid using spaces within names. The safest way to name a file is to use only alphanumeric characters, that is, letters and numbers, together with _ (underscore) and . (dot).

Good filenames Bad filenames
project.txt project
my_program.c my program.c
bob_and_tom.doc bob & tom.doc

File names conventionally start with a lower-case letter, and may end with a dot followed by an extension (a group of not more than three (3) letters indicating the contents of the file). For example, all files consisting of C code may be named with the ending .c, for example, prog1.c . Then in order to list all files containing C code in your home directory, you need only type ls *.c in that directory. Some other common examples of extensions are:

Extension Mapping
.pl Perl code
.py Python code
.rb Ruby code
.txt Plain text file
.jpg JPEG graphic
.pdf PDF document (Adobe)
.mp3 MPEG 3 format audio file

## Getting Help

Man Pages

There are manuals which provide detailed information about most UNIX commands. The man (manual) pages tell you which options a particular command can take, and how each option augments the behaviour of the particular command. Type man command to read the man page for a particular command.

For example, to find out more about the wc(1) - word count command, type

% man wc


You should see something that looks similar to this:

WC(1)                     BSD General Commands Manual                    WC(1)

NAME
wc -- word, line, character, and byte count

SYNOPSIS
wc [-clmw] [file ...]

DESCRIPTION
The wc utility displays the number of lines, words, and bytes contained
in each input file, or standard input (if no file is specified) to the
standard output.  A line is defined as a string of characters delimited
by a <newline> character.  Characters beyond the final <newline> charac-
ter will not be included in the line count.

A word is defined as a string of characters delimited by white space
characters.  White space characters are the set of characters for which
the iswspace(3) function returns true.  If more than one input file is
specified, a line of cumulative counts for all the files is displayed on
a separate line after the output for the last file.

The following options are available:

-c      The number of bytes in each input file is written to the standard
:


You may have noticed on the top line of the wc(1) man page, it lists the name of the command, followed by parentheses and a number. This number specifies which section of the manual the page belongs to. There are 8 sections of the manual

Section Description
1 General commands
2 System calls
3 Library functions, covering in particular the C standard library
4 Special files (usually devices, those found in /dev) and drivers
5 File formats and conventions
6 Games and screensavers
7 Miscellanea
8 System administration commands and daemons

Most of the time, simply typing man command will get you the information you are looking for. In some cases, there are overlapping entries and you will need to specify the section you wish to search. More information on this can be found (of course) in the man(1) man page.

whatis

whatis searches a set of database files containing short descriptions of system commands for keywords and displays the result on the standard output. Only complete word matches are displayed.

% whatis wc


Alternatively, Apropos

% apropos keyword


will give you the commands with keyword in their manual page header. For example, try typing

% apropos copy