Technical Club

Linux Shortcuts and Commands:(Part II)

7.3 Basic operations

any_command –help |more
Display a brief help on a command (works with most commands). “–help” works similar to DOS “/h” switch. The “more” pipe is needed if the output is longer than one screen.

man topic
Display the contents of the system manual pages (help) on the topic. Try man man first. Press “q” to quit the viewer. The command info topic works similar and may contain more up-to-date information. Manual pages can be hard to read. Try any_command –help for short, easy to digest help on a command. If more info needed, have a look to the directory /usr/doc. To display manual page from a specific section, I may use something like in this example:  man 3 exit (this displays an info on the command exit from section 3 of the manual pages).

apropos topic
Give me the list of the commands that have something to to do with my topic.

help command
Display brief info on a bash (shell) build-in command.

List the content of the current directory. Under Linux, the command “dir” is an alias to ls. Many users have “ls” to be an alias to “ls –color”.

ls -al |more
List the content of the current directory, all files (also those starting with a dot), and in a long form. Pipe the output through the “more” command, so that the display pauses after each screenful.

cd directory
Change directory. Using “cd” without the directory name will take you to your home directory. “cd -” will take you to your previous directory and is a convenient way to toggle between two directories. “cd ..” will take you one directory up.

cp source destination
Copy files. E.g., cp /home/stan/existing_file_name .  will copy a file to my current working directory. Use the “-r” option (for recursive) to copy the contents of whole directories, e.g. , cp -r my_existing/dir/ ~  will copy a subdirectory under my current working directory to my home directory.

mcopy source destination
Copy a file from/to a DOS filesystem (no mounting necessary). E.g., mcopy a:\autoexec.bat ~/junk . See man mtools for related commands: mdir, mcd, mren, mmove, mdel, mmd, mrd, mformat ….

mv source destination
Move or rename files. The same command is used for moving and renaming files and directories.

ln source destination
Create a hard link called destination to the file called source. The link appears as a copy of the original files, but in reality only one copy of the file is kept, just two (or more) directory entries point to it. Any changes the file are automatically visible throughout. When one directory entry is removed, the other(s) stay(s) intact. The limitation of the hard links are: the files have to be on the same filesystem, hard links to directories or special files are impossible.

ln -s source destination
Create a symbolic (soft) link called “destination” to the file called “source”. The symbolic link just specifies a path where to look for the file. In contradistinction to hard links, the source and destination don’t not have to tbe on the same filesystem. In comparison to hard links, the drawback of symbolic links are: if the original file is removed, the link is “broken”, symbolic links can also create circular references (like circular references in spreadsheets or databases, e.g., “a” points to “b” and “b” points back to “a”).

rm files
Remove (delete) files. You must own the file in order to be able to remove it. On many systems, you will be asked or confirmation of deleation, if you don’t want this, use the “-f” (=force) option, e.g., rm -f *  will remove all files in my current working directory, no questions asked.

mkdir directory
Make a new directory.

rmdir directory
Remove an empty directory.

rm -r files
(recursive remove) Remove files, directories, and their subdirectories. Careful with this command as root–you can easily remove all files on the system with such a command executed on the top of your directory tree, and there is no undelete in Linux (yet). But if you really wanted to do it (reconsider), here is how (as root): rm -rf /*

cat filename | more
View the content of a text file called “filename”, one page a time. The “|” is the “pipe” symbol (on many American keyboards it shares the key with “\”) The pipe makes the output stop after each screenful. For long files, it is sometimes convenient to use the commands head and tail that display just the beginning and the end of the file. If you happened to use “cat” a binary file and your terminal displays funny characters afterwards, you can restore it with the command “reset”.

less filename
Scroll through a content of a text file. Press q when done. “Less” is roughly equivalent to “more” , the command you know from DOS, although very often “less” is more convenient than “more”.

pico filename
Edit a text file using the simple and standard text editor called pico.

pico -w filename
Edit a text file, while disabling the long line wrap. Handy for editing configuration files, e.g. /etc/fstab.

find / -name “filename
Find the file called “filename” on your filesystem starting the search from the root directory “/”. The “filename” may contain wildcards (*,?).

locate filename
Find the file name of which contains the string “filename”. Easier and faster than the previous command but depends on a database that normally rebuilds at night.

Run an executable in the current directory, which is not on your PATH.

touch filename
Change the date/time stamp of the file filename to the current time. Create an empty file if the file does not exist.

Start a barebone X-windows server (without a windows manager).

Start an X-windows server and the default windows manager. Works like typing “win” under DOS with Win3.1

startx — :1
Start another X-windows session on the display 1 (the default is opened on display 0). You can have several GUI terminals running concurrently. Switch between them using <Ctrl><Alt><F7>, <Ctrl><Alt><F8>, etc.

(in X terminal) Run a simple X-windows terminal.  Typing exit will close it.  There are other, more advanced “virtual” terminals for X-windows. I like the popular ones: konsole and kvt (both come with kde) and gnome-terminal (comes with gnome).  If you need something really fancy-looking, try Eterm.

(in X terminal). Very nice, old-fashioned game. Many small games/programs are probably installed on your system. I also like xboard (chess).

shutdown -h now
(as root) Shut down the system to a halt. Mostly used for a remote shutdown. Use <Ctrl><Alt><Del> for a shutdown at the console (which can be done by any user).

(as root, two commands) Halt or reboot the machine. Used for remote shutdown, simpler to type than the previous command.

Network apps

(in X terminal) Run netscape (requires a separate Netscape installation). The current versions of Netscape (4.x) are known to be big and buggy. They occasionally crash by vanishing (no other harm done). Also, when not connected to the network , Netscape likes to refuse to do anything (looks like it hanged)-it revives when you connect.

netscape -display host:0.0
(in X terminal) Run netscape on the current machine and direct the output to machine named “host” display 0 screen 0. Your current machine must have a permission to display on the machine “host” (typically given by executing the command xhost current_machine_name in the xterminal of the machine host. Other X-windows program can be run remotely the same way.

lynx file.html
View an html file or browse the net from the text mode.

A good text-mode mail reader. Another good and standard one is elm. Your Netscape mail will read the mail from your Internet account. pine will let you read the “local” mail, e.g. the mail your son or a cron process sends to you from a computer on your home network. The command mail could also be used for reading/composing mail, but it would be inconvenient–it is meant to be used in scripts for automation.

A good tex-mode mail reader. See the previous command.

A really basic but extremally useful and fast mail reader.

A basic operating system tool for e-mail. Look at the previous commands for a better e-mail reader. mail is good if you wanted to send an e-mail from a shell script.

(in X term) An icq “instant messaging” client. Another good one is kxicq. Older distributions don’t have an icq client installed, you have to do download one and install it.

talk username1
Talk to another user currently logged on your machine (or use “talk username1@machinename” to talk to a user on a different computer) . To accept the invitation to the conversation, type the command “talk username2“. If somebody is trying to talk to you and it disrupts your work, your may use the command “mesg n” to refuse accepting messages. You may want to use “who” or “rwho” to determine the users who are currently logged-in.

Launch the “Midnight Commander” file manager (looks like “Norton Commander” for Linux).

telnet server
Connect to another machine using the TELNET protocol. Use a remote machine name or IP address. You will be prompted for your login name and password–you must have an account on the remote machine to login. Telnet will connect you to another machine and let you operate on it as if you were sitting at its keyboard (almost). Telnet is not very secure–everything you type goes in open text, even your password!

rlogin server
(=remote login) Connect to another machine. The login name/password from your current session is used; if it fails you are prompted for a password.

rsh server
(=remote shell) Yet another way to connect to a remote machine. The login name/password from your current session is used; if it fails you are prompted for a password.

ftp server
Ftp another machine. (There is also ncftp which adds extra features and gftp for GUI .) Ftp is good for copying files to/from a remote machine. Try user “anonymous” if you don’t have an account on the remote server. After connection, use “?” to see the list of available ftp commands.  The essential ftp command are: ls (see the files on the remote system), ASCII, binary (set the file transfer mode to either text or binary, important that you select the proper one ), get (copy a file from the remote system to the local system), mget (get many files at once), put (copy a file from the local system to the remote system), mput (put many files at once), bye (disconnect). For automation in a script, you may want to use ncftpput and ncftpget, for example:
ncftpput -u my_user_name -p my_password -a remote_dir *local.html

Minicom program (looks like “Procomm for Linux”).

File (de)compression

tar -zxvf filename.tar.gz
(=tape archiver) Untar a tarred and compressed tarball (*.tar.gz or *.tgz) that you downloaded from the Internet.

tar -xvf filename.tar
Untar a tarred but uncompressed tarball (*.tar).

gunzip filename.gz
Decompress a zipped file (*.gz” or *.z). Use gzip (also zip or compress) if you wanted to compress files to this file format.

bunzip2 filename.bz2
(=big unzip) Decompress a file (*.bz2) zipped with bzip2 compression utility. Used for big files.

Decompress a file (*.zip) zipped with a compression utility compatible with PKZIP for DOS.

unarj e filename.arj
Extract the content of an *.arj archive.

uudecode -o outputfile filename
Decode a file encoded with uuencode.  uu-encoded files are typically used for transfer of non-text files in e-mail (uuencode transforms any file into an ASCII file).

7.4 Process control

(=print status) Display the list of currently running processes with their process IDs (PID) numbers. Use ps axu to see all processes currently running on your system (also those of other users or without a controlling terminal), each with the name of the owner. Use “top” to keep listing the processes currently running.

fg PID
Bring a background or stopped process to the foreground.

bg PID
Send the process to the background. Opposite to fg. The same can be accomplished with <Ctrl>z.  If you have stopped jobs, you have to type exit twice in row to log out.

Run any command in the background (the symbol “&” means “run the proceeding command in the background”).

batch any_command
Run any command (usually one that is going to take more time) when the system load is low. I can logout, and the process will keep running.

at 17:00
Execute a command at a specified time.  You will be prompted for the command(s) to run, until you press <Ctrl>d.

kill PID
Force a process shutdown. First determine the PID of the process to kill using ps.

killall program_name
Kill program(s) by name.

(in an xwindow terminal) Kill a GUI-based program with mouse. (Point with your mouse cursor at the window of the process you want to kill and click.)

(as root) Check and control the printer(s). Type “?” to see the list of available commands.

Show the content of the printer queue. Under KDE (X-Windows), you may use GUI-based “Printer Queue” available from “K”menu-Utilities.

lprm job_number
Remove a printing job “job_number” from the queue.

nice program_name
Run program_name adjusting its priority. Since the priority is not specified in this example, it will be adjusted by 10 (the process will run slower), from the default value (usually 0). The lower the number (of “niceness” to other users on the system), the higher the priority. The priority value may be in the range -20 to 19. Only root may specify negative values. Use “top” to display the priorities of the running processes.

renice -1 PID
(as root) Change the priority of a running process to -1. Normal users can only adjust processes they own, and only up from the current value (make them run slower).

<Ctrl>c, <Ctrl>z, <Ctrl>s, and <Ctrl>q also belong to this chapter but they were described previously. In short they mean: stop the current command, send the current command to the background, stop the data transfer, resume the data transfer.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: