2. Short Intro

This is what you absolutely need to know before logging in the first time. Relax, it's not much.

2.1. Files

Under VMS filenames are in the form filename.extension;version. Under Linux, the version number doesn't exist (big limitation, but see Section Section 10.2); the filename has normally a limit of 255 characters and can have as many dots as you like. Example of filename: This.is_a_FILEname.txt.

Linux distinguishes between upper case and lower case characters: FILENAME.txt and filename.txt are two different files; ls is a command, LS is not.

A filename starting with a dot is a `hidden' file (that is, it won't normally show up in dir listings), while filenames ending with a tilde '˜' represent backup files.

For other examples involving directories, see below; for details about protections, ownership, and advanced topics, see Section Section 8.

2.2. Directories

Within the same node and device, directories names under VMS are in the form [top.dir.subdir]; under Linux, /top/dir/subdir/. On the top of the directory tree lies the so--called `root directory' called /; underneath there are other directories like /bin, /usr, /tmp, /etc, and others.

The directory /home contains the so--called users' `home directories': e.g. /home/guido, /home/warner, and so on. When a user logs in, they start working in their home dir; it's the equivalent of SYS$LOGIN. There's a shortcut for the home directory: the tilde '˜'. So, cd ˜/tmp is the same as, say, cd /home/guido/tmp.

Directory names follow the same rules as file names. Furthermore, each directory has two special entries: one is . and refers to the directory itself (like []), and .. that refers to the parent directory (like [-]).

For protections, ownership, and advanced topics, see Section Section 8.

2.3. Programs

Commands, compiled programs, and shell scripts (VMS' `command files') don't have sort of mandatory extensions like .EXE or .COM and can be called whatever you like. Executable files are marked by an asterisk '*' when you issue ls -F.

To run an executable file, just type its name (no RUN PROGRAM.EXE or @COMMAND). Caveat: it's essential that the file be located in a directory included in the path of executables, which is a list of directories. Typically, the path includes dirs like /bin, /usr/bin, /usr/X11R6/bin, and others. If you write your own programs, put them in a directory you have included in the path (see how in Section Section 9). As an alternative, you may run a program specifying its complete path: e.g., /home/guido/data/myprog; or ./myprog, if the current directory isn't in the path.

Command switches are obtained with /OPTION= under VMS, and with -switch or --switch under Linux, where switch is a letter, more letters combined, or a word. In particular, the switch -R (recursive) of many Linux commands performs the same action as [...] under VMS;

You can issue several commands on the command line:

$ command1 ; command2 ; ... ; commandn

Most of the flexibility of Linux comes from two features awkwardly implemented or missing in VMS: I/O redirection and piping. (I have been told that recent versions of DCL support redirection and piping, but I don't have that version.) Redirection is a side feature under VMS (remember the switch /OUTPUT= of many commands), or a fastidious process, like:

$ DEFINE /USER SYS$OUTPUT OUT
$ DEFINE /USER SYS$INPUT IN
$ RUN PROG

which has the simple Linux (UNIX) equivalent:

$ prog < in > out

Piping is not readily available under VMS, but has a key role under UNIX. A typical example:

which means: the program myprog gets its input from the file datafile (via <), its output is piped (via |) to the program filter_1 that takes it as input and processes it, the resulting output is piped again to filter_2 for further processing, the final output is appended (via >>) to the file result.dat, and error messages are redirected (via 2>) onto the file errors.log. All this in background (& at the end of the command line). More about this in Section Section 11.

2.4. Quick Tour

Now you are ready to try Linux out. Enter your login name and password exactly as they are. For example, if your login name and password are john and My_PassWd, don't type John or my_passwd. Remember, UNIX distinguishes between capital and small letters.

Once you've logged in, you'll see a prompt; chances are it'll be something like machinename:$. If you want to change the prompt or make some programs start automatically, you'll have to edit a `hidden' file called .profile or .bash_profile (see example in Section Section 9). This is the equivalent of LOGIN.COM.

Pressing ALT--F1, ALT--F2, ... ALT--F6 switches between `virtual consoles'. When one VC is busy with a full--screen application, you can flip over to another and continue to work. Try and log in to another VC.

Now you may want to start X Window System (from now on, X). X is a graphic environment very similar to DECWindows---actually, the latter derives from the former. Type the command startx and wait a few seconds; most likely you'll see an open xterm or equivalent terminal emulator, and possibly a button bar. (It depends on how your sysadm configured your Linux box.) Click on the desktop (try both mouse buttons) to see a menu.

While in X, to access the text mode (`console') sessions press CTRL--ALT--F1 ... CTRL--ALT--F6. Try it. When in console, go back to X pressing ALT--F7. To quit X, follow the menu instructions or press CTRL--ALT--BS.

Type the following command to list your home dir contents, including the hidden files:

$ ls -al

Press SHIFT--PAG UP to back-scroll. Now get help about the ls command typing:

$ man ls

pressing 'q' to exit. To end the tour, type exit to quit your session. If now you want to turn off your PC, press CTRL--ALT--DEL and wait a few seconds (never switch off the PC while in Linux! You could damage the filesystem.)

If you think you're ready to work, go ahead, but if I were you I'd jump to Section Section 8.