This is
USER information for Linux/Unix operating systems. There is a separate web I maintain with tips for
ADMINISTERING Linux systems. That is located at
Linuxtips.
The advice in this web should apply equally well for Linux or Unix systems.
There are several inherent benefits in learning to use Unix systems. I've built a short summary in
UnixBenefits.
Things Everybody Must know.
Log Into Your Account
If you have an account on a Unix/Linux system, you can either sit down in front of the machine and log in by typing your name/password, or you must login remotely to the system.
If you have direct access to a Unix/Linux system, your job is easy. Log in. Then find a way to run one of the many "terminal emulation" programs. The classic, most famous, is "xterm", but most systems have others like "rxvt" or "gnome-terminal" or so forth. If your system has a graphical interface, you can get a terminal emulator in many ways. Look for a "run command" menu item and then type "xterm" or "rxvt".
There are plenty of programs ("clients") you can use for
RemoteLogin and they give you a "terminal emulation" as if you were actually sitting in front of the Unix/Linux system.
Type in some commands!
Suppose you log in for the first time. Try to follow along with some commands described in
FirstTime.
Absolutely Vital Things Everybody must know. There is a small set of frequently used commands discussed in
CommonCommands. Some things are so vital I've written more detailed info, such as
ListFiles and
FindFiles? . If you are on KU's lark system, you can use a special version of ls I have built in my account:
GNUlsOnLark.
The Shell
When you give commands in a Unix/Linux system, they are always interpreted inside a "shell", or a basic framework that allows some commands and understands them. Here are some
ShellBasics. All shells I know of offer some form of automatic
CommandCompletion, so that if you start typing some long filename, all you do is hit the magic button and the system will complete it for you.
File Formats
On Unix/Linux systems, files are often packed with tar and compressed with the GNU gzip program. See
TarAndGzip.
The Unix File System
Unlike Microsoft systems, where users and programs typically write files wherever the hell they want, the Unix/Linux system is organized and clean and limits the ability of users and programs to write to a few, well specified places. Read
UnixFilesystem for more info.
User Permissions
Just about the best thing about Unix/Linux is security. Your files are protected from other users, and the system's files are protected from you. MS Windows has been inching along toward this kind of protection, but they always seem to get it wrong. So the first thing you should do is learn about
FilePermissions and how to change them, and then overview the
UnixFilesystem.
What about Graphical Programs?
If you log into a Unix/Linux system, and you are in the "console"--the place where you type in commands, then you have access only to the "command line interface." You type stuff in, see the results in letters and numbers.
If you need more, you need an X-Server to display graphical information.An X-Server is a program that displays pretty pictures, boxes, menus, and such. If you are logged into a Unix/Linux system, and you run a program that requires graphics, it may fail unless you have an X-Server running.
You probably already have an X-Server running if you are logged into a Unix/Linux workstation. If you see pictures, icons, and stuff like that, you are seeing them on an X-Server's display, so that means you have an X-Server.
If you log into a remote Unix/Linux system with "ssh", and then you run a graphical program from that computer, its graphics will automatically get "projected" across the network onto the monitor that you are using. If you log in with telnet or some other client program, the graphics will not be automatically forwarded to your terminal, but it is pretty easy to set up. In case you ever need to do that, let me know, I'll draw you a little diagram.
If you are on a Windows System, you may need to learn more about
GettingAnXServer.
How Can You Edit Files on a Unix/Linux System
There are many good answers to this question. I am afraid to start giving too much information for fear it will make people think it is too bewildering. Nevertheless, check out
EditingFiles.
Networking that All Smart People Understand
There is lots of stuff about networks and the internet that people don't really need to know. But there are a few really vital ones. I find that knowing
CommandLineFTP is a good way to start. If you happen to be on a Unix/Linux system that does not have Netscape or Mozilla, there is usually a command line web browser called lynx. See
UseLynx.
ftp is an old fashioned and somewhat insecure format for web transfers. There is a new, more secure format which relies on ssh. Recall that ssh, short for "secure shell", is a
way to log into systems so that your password is protected from people who might be snooping on the line. The program "scp" is a secure file transfer program that uses ssh. In order to use it, you have to know where a file is, and then you get it with a command like
scp otherusername@othersystem:desired_file_name .
The "period" means "current directory". If you use the -r option with scp, it will copy recursively down through a directory structure.
Find Out More
Unix/Linux programs are supposed to be "self documenting". Many come with a manual page, and to read it you type
man program_name
Some newer programs from GNU want to use an alternative "info" format for these pages, and the program "info" can view them, although I admit they are hard to navigate unless you are in Emacs, which has a built in info viewer.
On the web, you can find tons of tutorials on the basis of interacting with
a Unix or Linux system from the command line. Although these systems have an increasing amount of graphical user interface, you will be embarrasses among knowledgable users if you can't handle the minimal things from the command line.
Here's one I thought was very clear (its free, but you have to give your name and email address):
http://www-106.ibm.com/developerworks/cmp/r-fmlpir21.html
For people who use Swarm, I compiled some common Unix tips:
http://www.ku.edu/~pauljohn/SwarmFaq/Memos/Swarm-Unix-FAQ.html
Benedikt Stefansson put together some help on the BASH shell:
http://www.ku.edu/~pauljohn/SwarmFaq/benediktBashHelp.html
"Getting to know BASH":
http://www.luv.asn.au/overheads/bash.html
And if you want to write programs to run in the shell, I learned the basics from a book called "Beginning Linux Programming" by Neil Matthew and Richard Stones and "Unix Power Tools" by Jerry Peek, Tim O'Reilly, and Mike Loukides. There is a good online page for wanna-be scritp writers:
http://www.shelldorado.com/
Search in the Usenet. Whever I need to answer a question, the first place I always go is
http://www.dejanews.com. This takes you to the same link as
http://groups.google.com.
Unixtips Web Utilities