CompTIA Linux+ Powered by Linux Professional Institute Study Guide. Richard Blum
Чтение книги онлайн.
Читать онлайн книгу CompTIA Linux+ Powered by Linux Professional Institute Study Guide - Richard Blum страница 15
Be aware that there are two types of default shells. The default interactive shell is the shell program a user uses to enter commands, run programs from the command line, run shell scripts, and so on. The other default shell type is a default system shell. The default system shell is used by the Linux system to run system shell scripts, typically at startup.
The file /bin/sh
is a pointer to the system's default system shell – normally /bin/bash
for Linux. However, be aware that, on some distributions, the /bin/sh
points to a different shell. For example, on Ubuntu, /bin/sh
points to the dash shell, /bin/dash
.
Using a Shell
Linux shell use is fairly straightforward for anybody who's used a text-mode OS before: You type a command, possibly including options to it, and the computer executes the command. For the most part, Linux commands are external – that is, they're programs that are separate from the shell.
A few commands are internal to the shell, though, and knowing the distinction can be important. You should also know some of the tricks that can make using the command shell easier – how to have the computer complete a long command or filename, retrieve a command you've recently run, or edit a command you've recently used (or haven't yet fully entered).
Starting a Shell
If you log into Linux using a text-mode login screen, you have logged into a virtual console terminal and, most likely, you'll be dropped directly into your default shell. The shell program is what presents the prompt and accepts subsequent commands.
If you log into Linux using a graphical user interface (GUI) login screen, you'll have to start a terminal emulator manually in order to reach your default shell. Some GUIs provide a menu option, such as xterm
or terminal
, to start a terminal emulator program. These programs enable you to run text-mode programs within Linux, and by default they come up running your shell. If you can't find such a menu option, look for a menu option that enables you to run an arbitrary command. Select it, and type xterm or konsole as the command name. This will launch a terminal emulator program that will run a shell.
Once you start a terminal or log into a virtual console terminal, the shell will provide you with a prompt for entering commands. Remember that the shell is a program providing you with an interface to the Linux system.
A good first command to try, uname
, will show what operating system is being run:
That's not too interesting. You can find out additional information by tacking on the -a
option to the command. Be sure to include the necessary space between the command and the option:
The uname – a
command provides a lot more information, including the current Linux kernel being used (2.6.32
) as well as the system's hostname (server01.class.com
). The uname
command is an external command. The shell also provides internal commands. It's important to know the difference between the two command types, as explained in the next section.
Using Internal and External Commands
Internal commands are, as you might expect, built into the shell program. Thus they are also called built-in commands. Most shells offer a similar set of internal commands, but shell-to-shell differences do exist. Internal commands that you're likely to use enable you to perform some common tasks:
Change the Working Directory
Whenever you're running a shell, you're working in a specific directory. The cd
command changes the current working directory. For instance, typing cd /home/sally changes the current working directory to the /home/sally
directory.
You can use shortcut characters with the cd
command as well. The tilde (∼
) character is a useful shortcut; it stands for your home directory. Thus typing cd ∼ will have the same effect as typing cd /home/sally if your home directory is /home/sally
.
Display the Working Directory
The pwd
command displays (“prints” to the screen) the current working directory. This command is helpful, especially after you have changed your working directory, to ensure you ended up in the right place.
Display a Line of Text
The echo
command displays the text you enter. For instance, typing echo Hello causes the system to display the string Hello
. This may seem pointless, but it's useful in scripts (described in Chapter 9, “Writing Scripts, Configuring Email, and Using Databases”), and it can also be a good way to review the contents of environment variables (described later in this chapter, in the section “Using Environment Variables”).
Time an Operation
The time
command times how long subsequent commands take to execute. For instance, typing time pwd tells you how long the system took to execute the pwd
command. The time is displayed after the full command terminates. Three times are displayed: total execution time (aka real time), user CPU time, and system CPU time. The final two values tell you about CPU time consumed, which is likely to be much less than the total execution time.
Set Options
In its most basic form, the set
command displays a wide variety of options relating to bash
shell operation. These options are formatted much like environment variables, but they aren't the same things. You can pass various options to set
to have it affect a wide range of shell operations.
Terminate the Shell
The exit
and logout
commands both terminate the shell. The exit
command terminates any shell, but the logout
command terminates only login shells. Login shells are shell programs that are launched automatically when you initiate a text-mode login as opposed to those that run in xterm
windows or other terminal emulators.
The preceding list isn't complete. Later sections of this chapter and later chapters describe some additional internal commands. Consult your shell's documentation for a complete list of its internal commands.
You can quickly determine if a command is a built-in command by using the type
command. Just enter the command type
before the name of the command you wish to check:
Some of these internal commands are duplicated by external commands that do the same thing. But those external commands aren't always installed on all systems. You can see if there are internal commands with installed duplicate external commands by using the -a
option on the type
command:
You can see that on this