Table of Contents

1. Administrative info

1.1. IATH Staff and hours
1.2. Hiring Staff
1.2.1. Payroll
1.2.2. Research assistants
1.2.3. Project managers
1.2.4. Salaries
1.2.5. Working with staff at other UVa centers
1.2.6. Machines for project staff
1.3. Budget
1.3.1. IATH money
1.3.2. Tracking and reporting expenses
1.3.3. Sharing with other institutions
1.4. CorporateTime
1.5. Majordomo lists

2. Getting started

2.1. Building an information architecture
2.2. Rights
2.2.1. IATH help
2.2.2. UVa and IATH copyright policies
2.2.3. Fair Use
2.3. Collaborators
2.4. Web site and home directory
2.4.1. Web site location
2.4.2. HTML
2.5. Before you start your web site
2.5.1. Branding
2.5.2. Basic information that every web site should have
2.5.3. Open source vs. proprietary software
2.5.4. Templates and prototypes
2.5.5. Stay inside the project scope and budget

3. Funding

4. Technical info

4.1. Machine names and passwords
4.2. Equipment
4.2.1. Legacy
4.2.2. New equipment
4.2.3. Available equipment in IATH
4.2.4. Library equipment
4.2.5. Restrictions on use of UVa equipment
4.3. Security
4.4. Back-ups
4.5. Training
4.6. Help desk info
4.6.1. ITC
4.6.2. Rules for use
4.6.3. After-hour emergencies
4.7. Getting help beyond help desk
4.7.1. Who knows what
4.7.2. ITC software and services
4.7.4. Central Mail Service (CMS)
4.7.3. Web Mail
4.8. Unix commands
4.8.1. Other Unix information
4.8.2. Syntax conventions
4.8.3. Terminology
4.8.4. Common commands
4.9. File naming
4.10. FTP
4.10.1. Command line
4.10.2. Windows
4.10.3. Mac

1. ADMINISTRATIVE INFO

1.1. IATH Staff and hours

The IATH staff currently consists of:

Click here to see PHP table

John Unsworth Director 4-3137 jmu2m@virginia.edu
Worthy Martin Technical Director 4-3004 martin@virginia.edu
Daniel Pitti Project Director 4-6594 dpitti@virginia.edu
Regina Carlson Development Officer 2-4570 rbc2z@virginia.edu
Joy Shifflette Administrative Procedures Specialist 4-4527 jbs9q@virginia.edu
Robbie Bingler Senior Programmer/Analyst 2-4556 rwb3y@virginia.edu
Chris Jesssee Media Designer 2-2710 cj8n@virginia.edu
Cindy Mazza Information Specialist 2-4547 clm6u@virginia.edu
Felicia Johnson Web Designer 2-4557 fmj4f@virginia.edu
Sarah Wells Technical Writer 4-4570 spw4s@virginia.edu

The IATH staff will provide full-time assistance for fellows during the two-year fellowship at IATH and assistance as needed afterwards.

IATH’s normal working hours are 8am to 5pm Monday through Friday, but fellows can get a key to the office during library hours. This key does not open the library’s outside doors, either to get in or get out. Once the library has closed you will be locked in, so you should pay attention to the library’s posted hours (on-line at http://www.lib.virginia.edu/hours/libhoursnf.html). There is no signal to alert you when the doors are about to be locked.

1.2. Hiring Staff

You should start planning what kind of staff your project will require. Each project is different: some are just one faculty member working alone (“Uncle Tom’s Cabin”) some are several faculty collaborating and several students (Blake). If you want a large staff, build it up slowly.

1.2.1. Payroll

If you have negotiated a cost-sharing arrangement with your department, Joy and your department secretary will handle the paperwork.

1.2.2. Research assistants

Fellows can hire undergraduate and graduate students as research assistants. We encourage you to hire from inside your department, since those students are more likely to understand the particular scholarly issues in your project. We will help you recruit students in other departments if you cannot find appropriate candidates. Note that while we do provide some technical training, you should consider a student’s technical experience and comfort level when hiring. It will save time and frustration if your staff starts out with good technical skills. Anyone being added to the IATH payroll needs to talk to the appropriate IATH staffer.

Human resources’ policies on student employment are on-line at http://www.hrs.virginia.edu/Policies/payroll/studemp.html.

You may need to hire or pay research assistants at other universities, if you are involved in a collaborative effort. You will need to discuss this with Joy, to be sure that the paperwork is handled correctly.

If absolutely necessary you can hire research assistants who are not students, but it is extremely difficult to do and will cost you more. We recommend that you avoid this if possible.

1.2.3. Project managers

Each project has a designated project manager. The project manager coordinates the day-to-day work flow for the fellow, watches the project’s current budget status, and acts as a point person for interactions within the institute and the larger environment of the library and other electronic centers. He or she manages the creation of text and image files and may also be responsible for maintaining the project’s file structure and integrity, producing documentation, and other tasks, depending on the project.

1.2.4. Salaries

You can set a wage for your staff within your budgetary limits and University guidelines, but we can recommend a standard starting wage, depending on the student’s technical skills. We can adjust the wage to match the rate paid by individual departments, if necessary.

weekly hours???[***Joy/John***]

1.2.5. Working with staff at other UVa centers

The UVa Library has several electronic centers, including the Electronic Text Center and Robertson Media Center. There is information about the electronic centers on the Library’s web site at http://www.lib.virginia.edu/ecenters.html. The IATH staff will help you take best advantage of these resources.

1.2.6. Machines for project staff

Your project staff may require computers, scanners, software, etc. IATH has equipment for public use, which you and your staff can reserve for your use. You can also use your IATH money to buy new equipment.

(click here to see PHP database of IATH equipment)

1.3. Budget

1.3.1. IATH money

Each fellow gets up to $10,000/year from IATH. This money can be spent as you wish, on students, equipment, services (scanning, photographic services, permission fees, etc.), software, supplies, travel, and so on. Generally, fellows spend about half of this money on student wages.

1.3.2. Tracking and reporting expenses

Joy is responsible for the day-to-day management of IATH’s budget. Talk to her about adding students to your payroll, getting matching departmental funds for payroll, and processing travel and equipment costs.

1.3.3. Sharing with other institutions

If you are collaborating with other institutions, you may need to coordinate your budget with other faculty members. This has been done in the past but it can be complicated. You should consult Joy about the best way to do this.

1.4. CorporateTime

Corporate Time is a free scheduling software application that the University provides for all faculty and students. We don’t require that fellows use it, but we strongly suggest it to help coordinate meetings with your staff and with IATH people. Information about downloading and using it is at http://www.itc.virginia.edu/desktop/ctime/.

1.5. Majordomo lists

Most IATH projects have at least one majordomo list for archiving discussions and decisions. We strongly suggest that you start and use a majordomo list so that your project’s development history is preserved. For help setting up majordomo lists, please send a note to helpdesk@jefferson.village.virginia.edu.


2. GETTING STARTED

2.1. Building an information architecture

The first part of an IATH fellowship involves regular meetings with the IATH directors to discuss an information architecture. IATH projects are not just web sites, but structures that can be repackaged and recycled as current technologies become obsolete and new technologies put unexpected demands on archived material. Web sites that are currently cutting edge may be unreadable or may rely on proprietary software that is no longer supported in the future. Rather than building a web site to hold your information, your goal should be to design a structure that can support, archive, and distribute your information over the next ten to twenty years.

Before you can start to construct this structure, though, you will need to identify the assumptions you will be using, such as common base of knowledge, scholarship, and technical ability you will assume your average user to possess. You need to know what scholarly conventions you need to observe, what research objectives the project will fulfill, how the data needs to be presented (e.g., how your users are accustomed to using it), etc. You cannot please everyone, but we will help you determine reasonable parameters that will guide the rest of your project.

From a technical point of view, you should also determine what kind of data you will be distributing. What formats will you need? It is important to separate questions of data capture (putting the data into a usable format) from presentation (how the data is distributed).

This takes time to do properly, and may be frustrating. It may require some up-front labor to get solid, stable data. Each project will have its own particular pace and technical challenges. It is important to avoid getting bogged down and losing sight of your long-term goals and the long-term survival of your data. You do need to find a good project manager with appropriate computer skills, take care of your training and equipment needs, build your staff up as necessary, etc., but you must address the abstract issues first (such as data types, scholarly conventions and taxonomies, research objectives and purposes). Your final product isn't a product at all, but an information structure that can be repackaged over and over again as new technologies emerge and users develop new expectations for web sites. We will help you with these questions, however, and will work with you throughout your fellowship to be sure that you are making good decisions.

2.2. Rights

Depending on your project and subject materials, copyrights may be of extreme importance. If you have not already investigated this subject, you must know what materials you are thinking of using, where they are located, who owns them, and what rights or permissions you need to obtain. You must investigate and start to handle any rights issues in the first year of your fellowship, or you will have problems later on when you are trying to secure funding or publish your work on your site.

2.2.1. IATH help

IATH has helped other projects with copyright permissions and access issues in the past and can provide templates, advice, and information as needed.

2.2.2. UVa and IATH copyright policies

Note that your work will be subject to UVa copyright policies. The official UVA Copyright Statement (http://www.virginia.edu/copyright.html) does not apply to IATH project. The IATH copyright statement declares that:

Unless otherwise noted, items published by the Institute for Advanced Technology in the Humanities are copyrighted by the authors and may be shared in accordance with the Fair Use provisions of U.S. copyright law. Redistribution or republication on other terms, in any medium, requires express written consent from the author(s) and advance notification of the publisher.

For information about UVA’s copyright and intellectual ownership policies, please see http://www.virginia.edu/~polproc/pol/xve1.html.

2.2.3. Fair Use

Fair Use policy is a provision to the US copyright laws allowing for exemptions to laws. It allows you to reproduce other authors’ works for scholarly and pedogogical purposes. For more information about Fair Use and international copyright laws see http://www.lib.virginia.edu/acquisitions/copyright/, http://fairuse.stanford.edu/ and http://www.loc.gov/copyright/.

2.3. Collaborators

Depending on the project, some fellows have worked with collaborators at UVA and other academic institutions or with independent researchers. There are pros and cons to having collaborators. A good partnership or editorial board can make a project more efficient, give it greater depth, and improve its quality control. A poorly organized coordination can, on the other hand, cause administrative, financial, and philosophical headaches. If you do decide to collaborate, we would suggest a maximum of three or four partners or co-editors (or whatever title you choose). Also, we would suggest that large collaborative efforts are better served by starting off slowly, with fewer people, and then gradually growing to the final size.

2.4. Web site and home directory

You will be given a starter web site and a home directory on the jefferson server. Depending on your equipment and needs, you may want to do much of your work on your laptop or PC and use jefferson to store files. If so, please contact the appropriate IATH staffer to be sure that your machine is being backed up. [***need info on available space on jefferson?***]

2.4.1. Web site location

If you don’t already have a web site for your project, the IATH staffer in charge of web design will make you a placeholder home page on jefferson. The URL will be something like

http://jefferson.village.virginia.edu/<project_name>/

The files are located on the jefferson server in the public_html directory of your home directory (e.g., /home/project/public_html).

2.4.2. HTML

If you have not worked with HTML before, you should learn it. You may not be actually tagging in HTML but you should understand how an HTML document is put together and how browsers display it. There are many books and web sites that can help teach HTML, such as http://hotwired.lycos.com/webmonkey/authoring/html_basics/ and http://www.htmlhelp.com/links/tutorials.htm. The library also has short courses for faculty, staff, and students on the web, Photoshop, Flash, image processing, etc. The catalog is on-line at http://www.lib.virginia.edu/usered/catalog.html.

2.5. Before you start your web site

Building and implementing your web site will (and should) occupy a great deal of time and energy over the next few years, but before you start tagging, coding, and compiling you should take time to plan, outline, and design the site.

IATH strongly believe that IATH projects should place a premium on the long-term survival of their data, and that should be at the forefront of your mind while working through the issues discussed in this section.

Another thing you should think about it avoiding letting any one part of the project take up a disproportionate amount of time. You should identify and tackle the more difficult or ambitious aspects of the project in the first year so that when start looking for outside funding you can show solid (or at least plausible) solutions. However, you don’t want to overlook basic work on prototyping the site design and long-term planning. The first year is a difficult balancing act between long- and short-term planning, design, and prototyping and you may need to be vigilent about covering all your bases.

  • Long term survival of data. This should include planning for future users, who may be using different interfaces or software to use your site. The basic components should be persistent.
  • Practical, realistic planning for your two-year residency.
  • Finding the right scope for your project, to fit technical possibilities, audience needs, and expected uses.
  • Everything on the site should be relevant to your larger purpose and to your scholarship.
    • Is it relevant and necessary to the project?
    • Why is the information important and for whom?
    • What kind of scholarship will it support?
    • How much will it cost (in money & time) and is it worth that price?
  • Practical planning so that your staff doesn’t have to re-engineer the site for unexpected detours and late-breaking ideas.
  • Build a logical and clear structure for content that will be added later (i.e., two, three, or four years later).
  • Avoid letting a particular part of the project take over at the expense of other parts.
  • As the opportunities arise, continue your technical training.
  • Planning for whatever technical support various parts of your site will require (databases, stylesheets, etc.) and have a system for identifying and handling problems.

2.5.1. Branding

It is a good idea to design and stick to some kind of visual coherency, especially with a large site. Branding involves a recognizable look and feel which gives a web site an identity. This can be as simple as an icon which appears at the top left corner of each page or identical layouts on each page or as subtle as a unifying system of colors and design factors. This not only lets visitors know that they are still in your site, it also gives the site a clear visual identity. For help deciding what might work best, please consult the appropriate IATH staff member.

2.5.2. Basic information that every web site should have

This information should either be on the home page or within a few mouseclicks from the home page. Note that you need to be wary of putting too much information on one page but instead aim for a site that lets users quickly and independently find whatever they are looking for.

  • table of contents
  • site map
  • staff list
  • copyright
  • contact information
  • introductory text about this site
  • introductory text about the subject matter
  • FAQs
  • special instructions for using the site and links to any plug-ins
  • history of the project
  • IATH logo and standard IATH text
  • links to other related sites

2.5.3. Open source vs. proprietary software

Open source software is software that is freely distributed to anyone (usually over the internet), with no royalties attached; allows its source code to be freely distributed, altered, and redistributed; amd has a nonrestrictive license. In other words, it is free and its source code is free. Proprietary software is owned and distributed by an individual, institution, or corporation. It may not cost anything to get and use the software, but its source code is restricted and may not be altered. While proprietary software is often well-written, useful, and supported it is attached to the fortunes of its owner. If its owner someday decides to stop supporting it or radically redesigns it, previous releases of the software may become unusable and data which was distributed with those versions may disappear. We therefore suggest that you use open source software at every reasonable opportunity. If you have questions about the best piece of software for a given task, talk to the appropriate staff member.

2.5.4. Templates and prototypes

Templates and prototypes are very useful tools and we strong recommend that you use them. They will save time and effort, add quality control, and maintain graphic coherence.

Prototypes, using small sections of content put in proof-of-concept pages to test software and interface ideas, are crucial and should be used while designing the site. They should work with representative samples of all data types that you will use. Be sure to keep in mind the expected audience for your site, and be aware of what the average user will want from your site and how he or she will expect to use it.

2.5.5. Stay inside the project scope and budget

This may seem obvious, but you should consider limitations of time, staff, and funds when designing the site. Unexpected circumstances may create a surplus or lack of these factors, but you should try to plan something that you can reasonably finish.


3. FUNDING

The goal of much of the work of the first year is to prepare for asking for funding during the second year. It can take 18-24 months to get a large grant. However, there is no point in asking someone to fund a threadbare or disorganized project. Prospective funders will expect you to clearly explain why they should give you money and what you will do with it. You should therefore spend most of your first year building an interesting demo site or prototype that clearly demonstrates what you want to accomplish and what your project contributes to the scholarship in your field.

One of our major funding sources is NEH, but you should think creatively and consider government grants, foundations, alumni, and corporations. Regina will work closely with you to consider what kind of money you will need and for what and to come up with a calendar for preparing proposals. Each project is different and each one has different opportunities and restrictions.


4. TECHNICAL INFO

4.1. Machine names and passwords

We will give you a list of the basic passwords and machine names that you need to know.

4.2. Equipment

4.2.1. Legacy

If you have legacy machines or data that you wish to use at IATH, please talk to John about it. Depending on the equipment you now have, IATH’s current machines and software, and the nature of your project, it may be difficult or impossible to use legacy materials.

4.2.2. New equipment

IATH will help you select and purchase any new hardware and software that you need.

4.2.3. Available equipment in IATH

(click here to see PHP database of IATH equipment)

IATH has two public machines, a PC and Mac, that can be used by fellows and research assistants. There is a notebook for reserving time on the PC on the table next to the machine, but otherwise both machines are available on a first come, first served basis. We also have two scanners, one of which is for slides, and two printers, one color and one black and white. You can reserve one of the IATH laptops (one PC and one Mac) and a portable video projector for remote presentations.

The IATH conference table can be reserved for meetings and such via Corporate Time. The table has a Corportate Time account as "IATH-319 table" and can be "invited" to meetings as if it were a person or signed up as a resource. The table should be included when setting up "group agendas" for meetings here at IATH to avoid conflicts.

4.2.4. Library equipment

The UVa library and electronic centers have computer equipment, services, and technical support available for UVa faculty, students, and staff. The following may prove useful:

  • The Electronic Text Center (aka E-Text) home page is http://etext.lib.virginia.edu/. Click on “Services” for information about their resources.
  • The Geospacial and Statistical Data Center (aka Geostat) has a home page at http://fisher.lib.virginia.edu/. Click on “Staff and Services” to see a list of software and services.
  • The Digital Media Lab in the Robertson Media Center has several resources related to digital media and digital collections as well as help finding outside resources. The home page is http://www.lib.virginia.edu/clemons/RMC/dml.html.

If you need to use any of these resources, we can advise you as to who you should contact.

4.2.5. Restrictions on use of UVa equipment

Please note that all IATH equipment is subject to UVa restrictions of equipment use (see http://www.virginia.edu/~polproc/pol/xvg2.html). Equipment that you purchase with money from IATH or grants is UVa property and therefore subject to these restrictions.

4.3. Security

There are some basic security precautions that everyone should observe, such as guarding your equipment against theft, using strong passwords, maintaining up-to-date virus protection software, and backing-up data. The ITC web site has information on current security alerts and guidelines for safe computing at http://www.itc.virginia.edu/pubs/docs/RespComp/. If you think that your computer has been hacked or that you have a virus on your machine, please contact the IATH system staff as soon as possible. ITC also has a page on current virus alerts and fixes at http://www.itc.virginia.edu/desktop/virus/.

We will give you Norton anti-virus software and back-up your hard drives, but we encourage you and your staff to take reasonable steps to protect your data, such as not opening unknown attachments and not downloading suspect files.

4.4. Back-ups

All IATH machines are backed-up nightly. We cannot back up machines that you have at home, but we schedule weekly back-up sessions for laptops. The IATH servers are backed up nightly by ITC. If you have questions about back-ups, please talk to an IATH staff member.

4.5. Training

IATH will provide training or help finding appropriate classes for you and your reseach assistants either through ITC and library short courses or with outside companies. Depending on your project, you may need to work on Unix, Windows, and/or Mac operating systems. Training may also cover basic Unix commands, imaging and scanning, SGML, and so on.

The library offers a series of short courses that cover web basics, Photoshop, Flash, image processing, and so forth. The catalog of courses is on-line at http://www.lib.virginia.edu/usered/catalog.html. ITC also has training courses, listed at http://www.itc.virginia.edu/training/. UVa has a contract with three outside training agencies to provide Microsoft and Novell training (see http://www.itc.virginia.edu/training/techtrain/index.htm for more information). A list of other training opportunities is on the library’s web site at http://www.lib.virginia.edu/usered/programs.html.

4.6. Help desk info

IATH uses an on-line request system to assign and track help desk queries. We strongly encourage fellows and their employees to use the help desk for all technical problems and questions. Information about help desk is on the IATH web site at http://www.iath.virginia.edu/helpdesk.html. Joy receives all queries and passes them on to the appropriate staff member within an hour of receiving them (during regular business hours). This system is designed to manage the help desk demands on the staff, so that one person is not swamped with requests for help and advice. If you have a problem or question for help desk, please either send an e-mail to helpdesk@jefferson.village.virginia.edu or call the main IATH number (924-4527)

4.6.1. ITC

Those with problems requiring technical support should consider whether the problem is appropriate for the IATH helpdesk system or is instead an ITC helpdesk problem or a longer term IATH project. IATH helpdesk problems include malfunctioning IATH hardware or software, installation of new IATH hardware or software, resuscitation of IATH systems, and problems with IATH networking. Problems that are like any of the foregoing but involve software or hardware owned, distributed, or supported by ITC should be referred to the ITC helpdesk (call 924-3731 or see "Getting Help" from ITC, at http://www.itc.virginia.edu/help.html).

4.6.2. Rules for use

If you have an IATH helpdesk problem, or if you're not sure whether it's an ITC or an IATH problem, send email to the IATH helpdesk. If what you have is a longer term project, it should be scheduled through the Project Director, and not by going directly to staff members. If you have submitted a helpdesk problem by email, and you don't get a speedy and cheerful response with a thorough and effective follow-through, please mention the problem to John.

4.6.3. After-hour emergencies

If you run into an emergency situation that demands instant attention after regular business hours, call John at home (434) 296-3451 or on his mobile phone (434) 825-2969.

4.7. Getting help beyond help desk

If you have a problem that doesn’t require help desk, you should of course ask for help. The IATH staff does its best to help fellows as quickly and efficiently as possible, so if we don’t immediately know the answer to your question, we will help you find out. However, it will save you (and us) much frustration if you know who is most likely to have the information you want. In some cases, you may be better served by someone outside IATH.

Please note that a staff member may be preoccupied by another problem and may not be able to give you immediate attention. If this happens, please be patient!

4.7.1. Who knows what

A reminder: you should submit all technical problems and questions to the help desk).

[***This will eventually be a PHP database***]
John Unsworth General IATH policy issues; general funding and budget questions; selecting and purchasing equipment; planning and getting technical training; resolving problems with IATH staff; finding and training student employees; guidance with project development; questions about IATH server usage and Windows system administration; majordomo; PHP; legal issues; Unix system administration; Perl
Worthy Martin Implementation questions; general programming questions; help with technical development; imaging
Daniel Pitti Project management issues; XML, XSL, and DTD help and development
Regina Carlson Fundraising; help preparing budgets and proposals; guiding proposals through the UVa machine; negotiating awards, and consulting on post-award administration and reporting
Joy Shifflette Financial issues; tracking and submitting expenses; running projects; coordinating work and finances with other UVa and non-UVa groups; using help desk; payroll; finding John
Robbie Bingler Selecting and developing specialized software for projects; Java; CGI; networking issues; Unix; Perl
Chris Jessee Imaging and design work; mapping software; modeling and animation; Flash; CD and DVD burning; Mac applications and Mac system administration
Cindy Mazza XML and XSL; Unix; back-up for laptops, Macs, and PCs; DynaWeb; Perl
Felicia Johnson Web design; Dreamweaver; Mac applications
Sarah Wells Technical writing; copy-editing; SDS
ITC Jefferson system administration
E-Text Generating electronic text

4.7.2. ITC software and services

ITC has PC and Mac software available for downloading either for free or for a reduced price. You can find information about various operating systems, documentation, and pointers to free software at http://www.itc.virginia.edu/desktop/central/.

4.7.4. Central Mail Service (CMS)

CMS is the University's e-mail server. You are not required to have an e-mail account on CMS, but it is a good idea. You are automatically given an e-mail account on jefferson (the main IATH server) when your fellowship begins, and you can use that account for e-mail. However, CMS is probably more reliable and has the added advantage of Web Mail (below). All UVA faculty, staff, and students are entitled to a CMS account. To get an account, go to http://www.itc.virginia.edu/helpdesk/accounts/createacct.html and click "Central Mail Service" (note that an account on Blue Unix is not the same as a CMS account: Blue Unix is for files and CMS is for e-mail).

4.7.3. Web Mail

Web Mail is a browser-based e-mail reader for CMS account holders. If you have a CMS mail account, you can read and send mail from that account from any web browser. Note that jefferson accounts are separate from CMS accounts and that you can only use a CMS account in Web Mail. For instructions for getting a CMS account and using Web Mail, please go to http://www.mail.virginia.edu/.

4.8. Unix commands

In all likelihood, you will be doing some file management work from the command line, copying, moving, and deleting files. There are some basic Unix commands that will make your life easier. Please note that Unix commands can vary from one platform to another and that system administrators sometimes set up short cuts so that a certain command will always run in a certain way (for example, when you delete a set of files you may have to confirm that you want to delete each file one by one). The instructions in this section are intended as a general introduction and should not be treated as universally true. If you aren’t sure about a command, ask for help.

4.8.1. Other Unix information

Basic Unix information is available on the web in several guises, such as UNIXHelp (http://www.geek-girl.com/Unixhelp/), Webmonkey (http://hotwired.lycos.com/webmonkey/reference/unix_guide/) and in Unix man pages. To see a man page, enter the command “man” plus the command name. E.g.,

$ man cp

You can often get information with a -help or --help flag. The output will vary from one command to another, since it depends on what kind of documentation the individual programmer provided. You may get no more than an brief line of syntax or a longer explanation of the command's options and some helpful usage suggestions. For example:

$ rm --help
Usage: rm [OPTION]... FILE...
Remove (unlink) the FILE(s).

  -d, --directory       unlink directory, even if non-empty (super-user only)
  -f, --force           ignore nonexistent files, never prompt
  -i, --interactive     prompt before any removal
  -r, -R, --recursive   remove the contents of directories recursively
  -v, --verbose         explain what is being done
      --help            display this help and exit
      --version         output version information and exit

To remove a file whose name starts with a `-', for example `-foo',
use one of these commands:
  rm -- -foo

  rm ./-foo

Note that if you use rm to remove a file, it is usually possible to recover
the contents of that file.  If you want more assurance that the contents are
truly unrecoverable, consider using shred.

Report bugs to <bug-fileutils@gnu.org>.

Finally, you can also look in the O’Reilly Unix in a Nutshell reference guide in the IATH reference library (aka the shelves above the public machines: if it isn’t there it’s probably sitting on someone’s desk, so ask around).

4.8.2. Syntax conventions

There are certain conventions used when documenting command syntax that are used in this section. Anything between [ ] is optional and anything between { } is required. When a series of arguments are separated by the “|” character it means that you can use only one of the arguments. For example:

$ command [-xy] {-z | -a} <file name> 

This means that the –x and -y arguments are optional (you can use one, both, or neither) but you must use either –z or -a (but not both) when running the command. You must also include the file name (but not the actual string “file name”).

4.8.3. Terminology

This section contains a few technical definitions that you should know. There are other terms, of course, that you will run across so we suggest that you find and use some of the technical and computer dictionaries on-line, such as FOLDOC (http://foldoc.doc.ic.ac.uk/foldoc/index.html).

  • argument: Supplemental information provided on the command line when running a program. Arguments can specify how a command should behave; where it should find its input and put output; when, where, and how long it should run; etc. Unix commands often have a bewildering array of possible arguments, which can vary depending on which platform you are working on.
  • execute: Supplemental information provided on the command line when running a program. Arguments can specify how a command should behave; where it should find its input and put output; when, where, and how long it should run; etc. Unix commands often have a bewildering array of possible arguments, which can vary depending on which platform you are working on.
  • input: Supplemental information provided on the command line when running a program. Arguments can specify how a command should behave; where it should find its input and put output; when, where, and how long it should run; etc. Unix commands often have a bewildering array of possible arguments, which can vary depending on which platform you are working on.
  • output: Supplemental information provided on the command line when running a program. Arguments can specify how a command should behave; where it should find its input and put output; when, where, and how long it should run; etc. Unix commands often have a bewildering array of possible arguments, which can vary depending on which platform you are working on.
  • process: Supplemental information provided on the command line when running a program. Arguments can specify how a command should behave; where it should find its input and put output; when, where, and how long it should run; etc. Unix commands often have a bewildering array of possible arguments, which can vary depending on which platform you are working on.
  • regular expression: Supplemental information provided on the command line when running a program. Arguments can specify how a command should behave; where it should find its input and put output; when, where, and how long it should run; etc. Unix commands often have a bewildering array of possible arguments, which can vary depending on which platform you are working on.
  • script: Supplemental information provided on the command line when running a program. Arguments can specify how a command should behave; where it should find its input and put output; when, where, and how long it should run; etc. Unix commands often have a bewildering array of possible arguments, which can vary depending on which platform you are working on.
  • server: Supplemental information provided on the command line when running a program. Arguments can specify how a command should behave; where it should find its input and put output; when, where, and how long it should run; etc. Unix commands often have a bewildering array of possible arguments, which can vary depending on which platform you are working on.
  • shell: Supplemental information provided on the command line when running a program. Arguments can specify how a command should behave; where it should find its input and put output; when, where, and how long it should run; etc. Unix commands often have a bewildering array of possible arguments, which can vary depending on which platform you are working on.
  • text file: Supplemental information provided on the command line when running a program. Arguments can specify how a command should behave; where it should find its input and put output; when, where, and how long it should run; etc. Unix commands often have a bewildering array of possible arguments, which can vary depending on which platform you are working on.
  • user id: Supplemental information provided on the command line when running a program. Arguments can specify how a command should behave; where it should find its input and put output; when, where, and how long it should run; etc. Unix commands often have a bewildering array of possible arguments, which can vary depending on which platform you are working on.

4.8.4. Common commands

The commands in this section are:

cat | cd | chmod | chown | cp | diff | emacs | find | grep | groups | id | kill | less | ln | lpr | ls | mkdir | more | mv | passwd | pico | ps | rm | sed | ssh | su | tar | whatis | whois

Command Definition
cat Short for “concatenate,” cat lets you read multiple files. It reads each file in sequence and prints them out to the screen. For example:
$ cat file1.txt file2.txt 
This is file file1.txt 
This is file file2.txt 
You see the contents of the two files on your screen. You can also use the “>” character to copy the contents of files into a file. For example, if you enter:
$ cat file1.txt file2.txt > file3.txt
The cat command will copy the contents of file1.txt and file2.txt into a new files called file3.txt (however, if a file3.txt already exists in the working directory, it will overwrite it).
cd Use to move to another directory.
$ cd mydirectory/stuff
You can go back up a level by using “…”
$ cd ../anotherdirectory
To return to the previous directory, use “-“.
$ cd -
If you aren’t sure which directory you are currently in use the ls command.
chmod Change access permissions for a file, group of files, or a directory. Access permissions consists of read (r), write (w), and execute (x) permissions for the file owner, a group of users, and all others.You can see the current settings for a file or directory with ls –l (figure 1).

Figure 1

To change this file’s permissions, you use chmod with arguments indicating which permissions you want to change. You can do this two ways: in absolute mode or symbolic mode. Absolute mode is more efficient but potentially confusing (see the Webmonkey site or the chmod man page for more information). Symbolic mode uses a “+” or “-“ to add or remove permissions from the user (u), group (g), other (o), or to all (a). The syntax looks like this:

chmod [u, g, o, or a]{+ | -}{a | w | x} <file name>

For example, to give write permissions for the foo.txt file to anyone you would enter:
$ chmod a+w foo.txt
Notice that there are no spaces in the “g+w” argument. To remove write permissions from all, you would simply change the “+” to a “-“:
$ chmod a-w foo.txt
If you want to change permissions on every file in a directory, you can use the –R flag. For example, to give everyone permission to read all files in mydirectory you would enter:
$ chmod –R a+r mydirectory
chown Change the owner of one or more files or directories. You can use ls –l to see who currently owns the file (see figure 1, above, for a full explanation of the output). You must be logged in as the file’s current owner or as root before you can change a file or directory’s owner. The syntax is

chown <new owner> [: <new group>] <file name>

The <new owner> name is the new owner’s user id (e.g., jmu2m). You can assign a new group as well (e.g., staff).

As with chmod, you can use the –R flag to change every file in a directory. You can also use the –h flag to change the ownership of a symbolic link: if you don’t use it, the ownership of the referenced file is changed (see ln for more information about symbolic links).

cp Copy a file or directory.
$ cp file1.txt file2.txt 
Note that, in this example, if a file called file2.txt already existed in the current directory it will be overwritten.

You can also use this to copy a file into a different directory:

$ cp file1.txt /some/directory/somewhere/
This puts a copy of file1.txt in the /some/directory/somewhere/ directory.
diff Compares two files, line by line, and reports where there are differences. The syntax is

diff <file name1> <file name2>

So, suppose that you have two files, foo.txt:
This is file foo.txt 
It's a nice file
and bar.txt:
This is file bar.txt 
It's a nice file
but it has 3 lines of text.
If you run diff on these files you’ll get the following results:
$ diff foo.txt bar.txt 
1c1 
< This is file foo.txt 
---
> This is file bar.txt 
2a3
> but it has 3 lines of text.
The first piece of output, 1c1, tells you that that line 1 in the two files is not the same. It then shows the two lines. The second piece, 2a3, tells you that the bar.txt has an extra line of text. If the files were identical, there would be no output.

This can be very useful for debugging and comparing small text files and scripts but the results can be confusing.

emacs Emacs is a word processing program that can be run from the command line. It is an excellent tool for working with text-based files but it may take some time to learn how to use it. It has a tutorial and help feature, which you may want to investigate. The tutorial is quite tborough and a good starting point. To start an emacs session, type
$ emacs

You can include a file name if you want to open an existing file. E.g.,

$ emacs foo.txt

You can get help with Ctrl-h (hold the Ctrl and "h" keys at the same time)and see the tutorial with Ctrl-h t (hit Ctrl-h, then hit "t"). If you have trouble, send a note to helpdesk@jefferson.village.virginia.edu.

While emacs is a good tool, there are other command-line word processing applications that you may find better suited to some jobs. For simple jobs involving only a few files, pico or WordPad (on Windows machines) may be more efficient. We do not recommend jove because of the line length restrictions. Desktop word processors such as Word and Frame are helpful for writing documents, although we don't recommend them for writing HTML pages or code.

find Use this to find particular groups of files and directories. This is a useful command to know. The syntax is

find <path name(s)> <condition(s)>

You have to provide at least one <path name> (i.e., a directory path) and <condition>. You can specify several path names to look in multiple directories. The <condition> argument defines the terms of the search. There are several possible conditions, and you should look in Unix in a Nutshell or the find man page for a full discussion. The more useful conditions are –name, -newer, and –user.
-name <pattern> Find files whose name matches <pattern>.
-newer <file> Find files that have been modified after the file named in <file>. You must provide a full path for the file (i.e., if the file is not in your current directory you have to say where it is).
-user <user id> Find files belonging to the specified user id.
For example, to find all .jpg files in /mydirectory, you would enter this:
$ find /mydirectory –name *jpg
grep Search one or more file for a pattern (called a regular expression). The command returns the names of all files that have contents matching the regular expression, along with the line(s) which matches the pattern. The syntax is

grep <regular expression> [<directory or full or partial file name>]

You can use the “*” character to look for file names matching a certain pattern as well. It may take a bit of practice to learn to finetune your searches, since you may get matches that you didn’t intend (searches for the word “red” for instance, will yield “retired”, “adored”, and “reduction”).
* A wildcard that matches zero or more characters. For example, “foo*bar” matches “foobar”, “foofbar”, “fooBARbar”, etc. If you wanted to look in all .txt files, for example, you could use “*.txt”:
$ grep foo *txt
You can also just use a “*” to indicate that you want to look in all files in the current directory.
$ grep foo *
. A wildcard that matches any one character. For example,
$ grep f.le *txt
matches "file" and "filename" but not "fooled."
[ ] Use to indicate a possible range of characters, such as the numbers 1 through 9. For example:
$ grep foo[1234]bar 
foo1bar
foo2bar
foo3bar
You can search for the “*” and “.” characters by escaping them with a “\”. So:
$ grep foo[1234\*]bar 
foo*bar
foo1bar
foo2bar
foo3bar
groups Use to find out which group you or a specific user id belongs to. For example:
$ groups spw4s 
users staff samba
id This command is used for user identification. The syntax is

id [<user id>] [-a]

Used by itself, it returns the your current user id and the first group that you belong to.
$ id
uid=23304(spw4s) gid=100(users)
If you run it with an -a flag, it will show all groups that your user id belongs to.
$ id -a 
uid=23304(spw4s) gid=100(users) groups=100(users),10(staff),518(samba)
You can run it with another user id to see which groups that id belongs to. E.g.,
$ id jmu2m
uid=21953(jmu2m) gid=254(systems)
kill Kill a process. The syntax is:

kill [-9] <one or more PIDs>

The -9 is an optional signal which essentially tells the command to kill the process no matter what.

To run this command, you need to know the targeted process’s ID (PID). Run ps to see a list of which processes are currently running and their PIDs. For example,

$ ps
   PID TTY      TIME CMD
  2227 pts/37   0:00 emacs
  2605 pts/37   0:00 emacs
 21385 pts/37   0:00 ksh
$ kill -9 2227 2605
$ ps
   PID TTY      TIME CMD
 21385 pts/37   0:00 ksh
[1] + Killed                   emacs &
[2] + Killed                   emacs &

In this example, we first run ps and see that there are two emacs processes running. We don't want these processes anymore, so we run kill on both. Notice that there is no output to indicate whether or not the command succeeded, so we finally run ps again to see that the two processes did indeed die.

Note that you can only kill your own processes.

less This lets you browse through one or more files. It is very similar to the more command, except that you can move backwards and forwards. To see a single file, enter less with the name of a file:
$ less foo.txt
Hit the space bar or the down arrow to move forward through the file and the up arrow to move backwards.

To see several files, you can enter the files names in sequence or use a regular expression to describe a pattern (such as *.txt to look at all .txt files).

$ less foo.txt bar.txt

When you get to end of the first file in the list, type :n to see the next file. At any point you can type :p to see the previous file or q to quit and get back to the command line.

ln Make links to remote files. There are two different kinds of links: hard and symbolic. A hard link is a pointer to a file which is actually located in a different directory and is indistinguishable from the orginal file. A symbolic link is an indirect pointer that only contains the file path of the original file. You can call that name to access the remote file. The syntax is

ln [-s]<file path> <link name>

The –s flag makes a symbolic link. For example:
$ ln –s /stuff/myfile.txt foobar.txt
Note that the link name foobar.txt is treated as a normal file, which may cause problems if you already have a file named foobar.txt (that is, you will lose your previous file). However, you can easily identify symbolic links when you run ls, since they have a “@” character next to their names:
$ ls  
foo.txt
foobar.txt@
bar.txt
Use ls –l to see where the link points to:
$ ls -l foobar.txt 
lrwxrwxrwx  1  spw4s users  13 Jul 26 12:02  foobar.txt -> stuff/myfile.txt
lpr Use this to print a file from the command line. You may need to provide a printer name. The syntax is

lpr [-P<printer name>] <file name>

Note that there is no space between the -P and the printer name. The standard printer on jefferson is the black and white HP laser jet near the IATH conference table. Its name is av_l1, so to send a printing job there you would enter
$ lpr -Pav_l1 foobar.txt
If you do not specify a printer, the job will be sent to the default printer (which is probably av_l1).

You can check the status of print jobs from the command line with the lpq and lpstat tools. The first checks the queue status of

ls Lists the contents of the directory. There are several options available with this tool, but the more useful ones are –l and –a. The –l option displays the files in long format, meaning that it shows each file’s permissions, owner, date last modified, and byte size (please see figure 1 for an example). The –a option lists every file in the directory, including those whose name begins with a dot (those are called dot files and are normally not listed). The syntax is:

ls [-l] [-a] <file or directory name>

mkdir This will create a new directory. For example,
$ mkdir newdirectory
This creates a directory called “newdirectory” in the current directory. Note that the default permissions settings in a new directory give everyone permission to read the contents of the directory but only the owner (you) has permission to write to the directory. You can use chmod to change permissions.
more This is very similar to the less command, except that it only lets you move forward through a file. To use, enter more along with the name of the file.
$ more foo.txt
Hit the space bar to move forward through the file.
mv Use to move files and directories. For example:
$ mv foo.txt /mydirectory
This moves foo.txt from the current directory to mydirectory. You could also move an entire directory:
$ mv /mydirectory /stuff/newdirectory
Note that mydirectory will no longer exist, but that all of its files will now be in newdirectory.

Be careful when moving multiple files, since the new files will overwrite existing files of the same name. The default setting of this command on jefferson will post a warning message if you are about to overwrite a file. You can use the –f flag to override this setting.

passwd Create or change your jefferson password. To use, just type in passwd. You will be prompted for your current password and then asked to type in the new one. Please note that this will not change your Windows NT server password.

The command will check your password to see if it can be guessed or is too close to your old password, so you may want to have a couple of possibilities in mind.

You can cancel this command midway through by hitting Ctrl-q.

pico Pico is a simple text editor and is very useful for simple editing or for small text files. If you are working with large files you would be better advised to use another text editing program, such as emacs or vi. We do not recommend jove as a text editor. The syntax is

pico [<file path>]

You can type in a new or existing file name: if you type a new name or no name pico will create a new file. A new file looks something like figure 2:

Figure 2

Type in the text as you would in any basic word processing application (such as Notepad). ou can use any of the commands listed in the footer by hitting the Ctrl key (displayed here as a "^" caret character) plus the specified letter. Hit Ctrl-a to move the cursor to the beginning of the line and Ctrl-e to move to the end of the line. Use Ctrl-d to delete characters. To cut and paste, use Ctrl-k to cut a line (hold down the Ctrl key and hit "k" multiple times to cut more than one line) and Ctrl-u to paste. To save to a file without closing the window, hit Ctrl-o then type in the file name. To insert a text file into the current window, hit Ctrl-r then type the file's path. To exit, hit Ctrl-x. If you haven't saved your work, you will be asked if you want to save.

Note that there is no man page for pico, but get to the pico help screen with Ctrl-g.

ps List information about processes currently running. You will see a list of processes that you own.
$ ps 
  PID TTY       TIME CMD 
20903 pts/62   0:00 emacs
20318 pts/62   0:00 ksh
This output shows that two processes are running. The PID column gives you each process’s id (PIDs can be useful for tracking and killing individual processes), the TTY column identifies the terminal where the command’s output is being displayed, the TIME column shows how long the process has been executing (if it is actively executing), and the CMD column tells you that name of the command.

There are several flags that you can use to change this list. The -f flags shows a full listing of all information about each process:

$ ps -f
  UID   PID  PPID  C    STIME TTY      TIME CMD
spw4s 20903 20318  0 10:42:05 pts/62   0:00 emacs
spw4s 20318 20283  0 10:37:49 pts/62   0:00 -ksh

The UID column is the user id of whoever owns the process (that is, whoever started it). You can ignore the PPID and C columns. STIME shows when you started the process.

You can use -a to see a longer list of programs currently running. If you use it with -f, you'll get a more complete picture.

$ ps -af
     UID   PID  PPID  C    STIME TTY      TIME CMD
    root 21967   670  0                   0:00 <defunct>
     sag 16344 16147  0   Aug 20 pts/15   0:00 /bin/sh -c dtfile -noview
    yy8b 21594 21571  0 10:50:48 pts/9    0:02 /usr/dt/bin/dtsession
 patrick 25013 24998  0 11:35:23 pts/39   0:00 /bin/bash
   sjm8k 21952 21941  0 10:56:17 pts/64   0:00 pine
   jjm2f  3863 11467  0                   0:42 <defunct>
    root 22279 20340  0 11:00:55 pts/63   0:00 -ksh
   mfr2v 24749 24733  0 11:31:38 pts/59   0:00 pine
   spw4s 20903 20318  0 10:42:05 pts/62   0:00 emacs
   spw4s 13069 13060  0 09:02:56 pts/34   0:01 pine
    root 25024 20318  0 11:35:27 pts/62   0:00 ps -af
    root  9022   670  0                   0:00 <defunct>
   kat2n 15143 15058  0   Aug 20 pts/30   0:01 pine
   jjm2f  7589  4884  0                   0:00 <defunct>
   kat2n 15015     1  0   Aug 20 pts/36   0:00 /usr/dt/bin/ttsession
     pmc 17384 16264  0 10:20:37 pts/2    0:00 pico cubukcu_f.editors
     pmc 15561 15543  0 09:51:27 pts/6    0:06 pine
    oa2m 16562 16543  0 10:03:21 pts/18   0:00 /usr/dt/bin/dtsession
    yy8b 21593     1  0 10:50:48 pts/9    0:00 /usr/dt/bin/ttsession
   jjm2f  7035 11467  0                   0:45 <defunct>
   jjm2f 25582 11467  0   Jul 26 pts/4    0:00 jove 9-1879.s162.raw.sgml
   kat2n 15016 14993  0   Aug 20 pts/36   0:01 /usr/dt/bin/dtsession
     sag 16345 16344  0   Aug 20 pts/15   0:01 dtfile -noview
     sag 16147     1  0   Aug 20 pts/15   0:00 /usr/dt/bin/ttsession
    yy8b 22121 22120  0                   0:00 <defunct>
    yy8b 21647 21631  0 10:51:11 pts/61   0:00 tcsh
    oa2m 16561     1  0 10:03:21 pts/18   0:00 /usr/dt/bin/ttsession
     sag 16361 16345  0   Aug 20 pts/15   0:00 dtfile -noview
    root 16148 16130  0   Aug 20 pts/15   0:01 /usr/dt/bin/dtsession

Finally, you can use -A or -e to see the absolutely complete list of all processes currently running. This list includes processes that are not associated with a terminal (such as daemons).

rm The rm command can be used interchangeably with the rmdir command. This removes files and directories. Usage is:

rm <file/directory name(s)>

If you are removing multiple files or a directory you will be asked to confirm each file. E.g.,
$ rm foo*txt 
rm: remove `foo.txt'? y 
rm: remove `foobar.txt'? y 
Enter “y” for yes and “n” for no. This is intended to prevent accidental deletions, but it can be irritating and time-consuming if you are trying to delete several files. You can use the –f flag to remove all files without prompting.

You must have write permissions to the file(s) you are trying to remove.

sed This is an editing utility: the name is an abbreviation of "stream editor." It reads one or more text files and edits them according to your instructions. This is useful if you need to make a global change to several documents (such as a search and replace). The command looks at each line of the input files, copies it to an internal buffer (called a "pattern space"), applies the editing commands to the line (if appropriate), and prints the output to either the command line or to a file. Note that the output does not overwrite the original input files since sed is working in the pattern space.

You can give the editing instructions on the command line or in a separate script. You can tell it to search for lines with particular patterns. For example, you can look for all lines containing the word "automobile" and then replacing that word with the "car." Or to print all lines that between the words "START" and "END".

Unix in a Nutshell has a chapter devoted to sed and is reasonable place to start. If you want to start writing serious scripts you can also look at IATH's copy of sed & awk (another O'Reilly book), which also has some useful information about using regular expressions (part of pattern matching).

ssh Open a secure shell to another server. To use it, type ssh plus the name of the server. You will be asked for a password. To exit shell, type exit.
su Change user ids without having to log out. Your user id is the name you are logged in as. You might need to change to another user if you want to work with files that you don’t have permission to use. You’ll be asked for a password for the new id.
tar Copy files and directories to a single file, called a “tarfile”. (Tar originally meant “tape archive” and was used to archive files.) You use the same command to open a tarfile. If you are tarring a directory with subdirectories, the file structure will be preserved in the tarfile. Note that when you open the file it will copy the structure into the file space where the tarfile is located.

The tar command has several options, which are described in full in the man page and the Unix in a Nutshell book. it is frequently used with the zip command, which compresses the file to a more manageable size. For best results, use the following syntax to create a tarfile:

$ tar -cvf <filename>.tar <file/directory name>
This creates a file called <filename>.tar. It does not delete the original file or directory. You now have a tarfile, but it is probably rather large (especially if you tarred an entire directory). You can use zip to compress the tarfile:
$ zip <filename>.tgz <tarfile name>
The .tgz suffix indicates that this a tarred and zipped file. To unzip and untar the file, use this syntax:
$ unzip <filename>.tgz 
$ tar -xvf <tarfile name>
This will extract and copy the contents of the tarfile. It will retain its same naming structure. The .tgz and .tar files are not deleted, but must removed by hand.

Tarfiles are a convenient form for moving directories and large sets of files via ftp, Fetch, etc. You can open them on Windows and Mac machines with the proper applications (e.g., WinZip).

whatis The whatis command displays a one-line summary of any documented Unix command (i.e., any command that has a man page). For example,
$ whatis ls 
cp     cp (1)   -   copy files
whois This is a UVa directory service for getting information about UVa users. If you enter a user id it will print out information from the UVa database. For example:
$ whois spw4s 
Name:                    Sarah P. Wells 
Mailid/Handle:           spw4s
Unix Uid:                23304 
Classification:          Staff 
Department:              Rs-Inst Adv Tech Humanities
Department Address:      P.O. Box 400115, Alderman Library 
                         Charlottesville, VA 22904-4115 
Office Phone:            (434) 924-4527 
Registered E-Mail Addr:  spw4s@Virginia.EDU 
                         spw4s@jefferson.village.virginia.edu
If you don’t know the person’s user id you can provide part of the name:
$ whois jessee 
Jessee, Andrea L.       (alj3e)  Undergrad   UVa College at Wise 
Jessee, Christopher D.  (cj8n)   Staff       Rs-Inst Adv Tech Humanities
Jessee, Danny Ray, jr.  (drj5y)  Undergrad   School Of Engineering 
Jessee, Hazel H.        (hhj8d)  Faculty     Cp-Hampton Rds Ctr 
Jessee, Sheena Lynn     (slj4b)  Undergrad   UVa College at Wise

4.9. File naming

Windows and Mac operating systems allow a great deal of flexibility in naming files. Users are allowed to use very long filenames with characters such as “!” and “#”, and to have files without a suffix that identifies the file’s type (i.e., “.txt” or “.jpg”). While this may seem convenient, it is not a good idea and can cause you to lose data. If you move files with Fetch or FTP, the applications may balk at non-alphanumeric characters and may corrupt the file. Unix operating systems do not like file name with spaces in them (although they allow files names of up to 250 characters). Applications often don’t recognize files that don’t have the proper suffix, even if the file is in fact the proper type.

To make your life easier, please observe good practice and name your files in the following form. Use a name of less than 20 alphanumeric characters and a suffix of 3 characters that indicate the file’s type.

Note that in some cases (with CD-burning software, for example) you may need to change your filenames to fit a format of no more than 8 character name with a 3 character suffix.

If you need to work with a file with spaces in its name in Unix and you don’t want to rename it, you can enclose the file name in double quotation marks:

$ ls –l “my file about stuff.doc”
It is a VERY good idea to avoid random naming patterns, such as “n_12453_48287634.gif”. Not only is this kind of name awkward to work with, it reveals nothing about the file. You will be much better off using a descriptive name like “menu_mainheader.gif” or “sonnets_1850.xml”.

4.10. FTP

File Transfer Protocal (FTP) is a common method of transferring files between your host server and another client host server. You will probably be using it regularly to upload and download files so you should consider the various methods available. First, you open a connection to the client host (such as jefferson). Then you can use the get and put commands to move files between the two servers.

4.10.1. Command line

You can start an FTP session from a DOS or Unix command line with the ftp command. The usage is:

ftp <server name> [port number]

You be asked for a user id and password. When you have successfully connected you will see “ftp>” at the command line. It might look something like this:
$ ftp jefferson.village.virginia.edu 
Connected to jefferson.village.virginia.edu. FTP server 
(Version wu-2.6.0(1) Wed Oct 20 09:55:43 EDT 1999) ready. 
Name (jefferson.village.virginia.edu<none>): jmu2m 
331 Password required for jmu2m. Password: xxxxxx 
230 User jmu2m logged in. 
ftp>

There are several commands that you can run in an ftp session. To see them all, type help after you have started a session. Note that a session may time-out after a given period of time, in which case you need to type quit and then start a new session.

The most important commands are put and get (Figure 3):

  • The put command copies files from your local server onto the client host.
  • The get command copies files from the client host onto your local server.

Figure 3

To use either one of these command, you’ll need to know the name of the file(s) you want to put or get. You’ll also need to know whether or not the file is a binary or ascIV file. Binary files include image files and .exe files, and your session must be set to binary mode. AscIV files are text-based files, such as .txt or .pl files, and your session must be set to ascIV mode. A new session is set to ascIV mode. To change over to binary mode, type bi or binary. To go back to ascIV, type ascIV. Now you can run get or put to move your file:

 ftp> put foo.txt 

You can get and put multiple files with the mput and mget commands. For example, to copy all .txt files to the client host, you would type:

ftp> mput *.txt

A session starts in the home directory of the user id you used in the client host and the current directory of your local host. Type pwd (present working directory) to see the full path of the remote directory. To see the contents of the remote directory in the client host, type ls. To see the full contents of the remote directory type dir (it’s the equivalent of ls –l). To move to a different remote directory, use cd:

ftp> cd /mydirectory/stuff

To change your local directory, use lcd instead of cd. You can also use mkdir to create a new directory on the remote host:

ftp> mkdir newdirectory

And rmdir to remove a directory:

ftp> rmdir newdirectory
To exit an ftp session, type quit.

4.10.2. Windows

There are several Windows-based FTP applications available, all of which have their own interfaces. WS_FTP comes with the Windows installation, and is reasonably acceptable (and free) so you should feel free to use it. You can download it and get documentation from ITC's web site. WS_FTP uses the same commands as the command-line version but in a graphical user interface, so if you have never used FTP before, you may want to read through the description of the command-line version, above, to become familiar with it.

4.10.3. Mac

The predominant Mac FTP application is Fetch. It also has its own documentation and user help. You can download Fetch for free and get information about using it on the ITC web site. Please note that if you configure it yourself you should set it to a secure connection. If you have any questions, please talk to an IATH staff member.


© 2002 IATH at the University of Virginia. All rights reserved.