Beginning the Linux Command Line--第1章 开始Linux命令行管理

第一次进行英文原版图书的学习,所以试着翻译这本图书,其实也不算是翻译,有些地方,个人觉得不是太重要就掠过没有翻译,确切的说应该是我学习这本书的学习笔记。在这篇译文中我尽量遵循了原书的风格,但也加入了一些个人的理解。书中的例子我都一一执行过,应该没有什么问题,如果在阅读时有什么问题,欢迎大家指正,希望能和广大网友多多交流,一起进步!这本书的原版章节目录如下:

Chapter1        Starting Linux Command-Line Administration

Chapter2        Performing Essential Command-Line Tasks

Chapter3        Administering the Linux File System

Chapter4        Working with Text Files

Chapter5        Managing Partitions and Logical Volumes

Chapter6        Managing Users and Groups

Chapter7        Managing Permissions

Chapter8        Managing Software

Chapter9        Process and System Management

Chapter10       System Logging

Chapter11       Configuring the Network

Chapter12       Configuring a File Server

Chapter13       Working with the kernel

Chapter14       Introduction to Bash Shell Scripting

有需要这本原版图书的,我稍后可以传到我的博客上,也可以和我联系!言归正传,我们开始今天的学习!

在这章中,我们将学习以下主题:

·Linux操作系统的历史。

·什么是开源?

·什么是发行版本?

·登录Linux

·命令行基础:命令,选项,参数。

·使用管道和重定向。

·使用helpman得到帮助。

·使用shell

Linux历史

自从1990年诞生到现在,由于LINUX具有开放源代码,完全免费,安全,稳定等诸多优势已经在各个信息技术行业开始了大面积采用。从国内的情况看,LINUX的行业应用更是如火如荼。展望未来LINUX有无限的发展空间。

Linux是一套免费使用和自由传播的类Unix操作系统,这个系统是由全世界各地的成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品。

Linux的出现,最早开始于一位名叫Linus Torvalds的计算机业余爱好者,当时他是芬兰赫尔辛基大学的学生。他的目的是想设计一个代替Unix的操作系统。Linux以高效性和灵活性著称。它能够在PC计算机上实现全部的Unix特性,具有多任务、多用户的能力。

Linux之所以受到广大计算机爱好者的喜爱,主要原因有两个,一是它属于自由软件,用户不用支付任何费用就可以获得它和它的源代码,并且可以根据自己的需要对它进行必要的修改。另一个原因是,它具有Unix的全部功能。

开源

开源(Open Source,开放源码)被非赢利软件组织(美国的Open Source Initiative协会)注册为认证标记,并对其进行了正式的定义,用于描述那些源码可以被公众使用的软件,并且此软件的使用、修改和发行也不受许可证的限制。

开放源码软件通常是有版权(copyright).它的许可证可能包含这样一些限制:着意地保护它的开放源码状态,著者身份的公告,或者开发的控制。实际上,开源软件同时涉及源码本身和开发过程,涵盖了三个方面的意义:免费分发的源代码、模块化的体系和集市式的开发--在这种开发方式中,任何地方的任何人都可以参与最终产品的制造,三个方面互相之间有密切的联系,集市式的开发过程给开源软件以强大的改错能力,因为它将程序中的错误公开给了数量巨大的观众,他们都是潜在的改错者。另一方面,任何人都可以复用和发行开源软件的代码这一事实又支持了公众利益,因为创新的观念被整个集市所共享。另外,"open source"这一术语还被延伸到其他智力团体中,指那些可通过公开手段获得的智力资源,比如报纸、教学课件等。

美国一些进步的评论家指出,在象网络这样的虚拟环境中,驱动系统的底层代码,尤其是广为人知的那些应用程序之间的通信协议,它们在某种意义上很象现实社会中的法规。换句话说,这些代码对网上的行为给出了一些规范,它鼓励某些行为,而限制其他行为,就像现实社会的法律一样。因此,开放源码带来了一个更民主的开发方式,在这种方式下,好的主意将被集体分享,而不是作为智力资本被个人秘藏着。在这种意义上,开放源码实质上成为一种政治哲学。

开放源码的精神在于使用者可以使用、复制、散布、研究、改进软件。最早可以 回朔到1960年代。当时,售卖大型计算机的厂商如IBM,把一些软件及原始码一并送给客户,让客户能够因不同需求而自行更改软件。在 1991-1992 年期间,住在芬兰的 Linus Torvald制造了第一版的 Linux 操作系统。在一群热心的程序人员努力下,把 Linux 操作系统以及外围的应用程序逐一打造。

出名的作品除了趋于成熟的Linux 操作系统外,还有 Apache网页服务器、Perl 程序语言、MySQL 数据库、Mozilla 浏览器、OpenOffice等等。近来,在政府的推动及各软件大厂(如 IBMRedhatApple 等)的推动下,预料这股旋风将会掀起新的软件革命。

Linux发行版本

我们通常所说的Linux,指的是GNU/Linux ,即采用Linux内核的GNU操作系统。GNU代表GNU’s Not Unix。它既是一个操作系统,也是一种规范。在Linus Torvalds编写Linux之前,Richard Stallman创建了Free Software FoundationFSF)组织以及GNU项目,并不断的编写创建GNU程序(程序的许可方式均为GPLGeneral Public License)。在不断的有程序员和开发者加入到GNU组织中后,变造就了今天我们所看到的Linux

Linux是一个内核。然而一个完整的操作系统不仅仅是内核而已。所以许多个人、组织和企业开发了基于GNU/LinuxLinux发行版。今天有不计其数的发行版可供人们选择使用,虽然不够统一的标准给不同版本的使用者在技术上的相互沟通带来了一定的麻烦,但归根结底自由、开源、团结互助的理念是Linux爱好者们共同的向往。

目前我们常见的Linux发行版本有以下几种:

URL

版本

redhat.com

Red Hat Linux

fedoraproject.org

Fedora Linux

centos.org

Centos Linux

opensuse.com

openSUSE Linux

debian.org

Debian Linux

ubuntu.com

Ubuntu Linux

mepis.org

Mepis Linux

gentoo.org

Gentoo Linux

turbolinux.com

Turbo Linux

knoppix.org

Knoppix Linux

linuxiso.com

CD-ROM ISO images of Linux distributions

distrowatch.com

Detailed information about Linux distributions

kernel.org

Linux Kernel

小提示:这本书主要以Red HatSUSEUbuntu Linux作为讲解对象。但是,你会发觉这本书中98%的命令和配置文件也适用于其他发行版本的Linux,这意味着你不需要关心你使用那种Linux的发行版本。

登录Linux

Linux提供了两种不同的登录方式,图形环境和Shell环境。如果你使用桌面环境办公,那么你可能选择图形环境登录。相反,如果你的工作环境是维护服务器,那么你可能会选择Shell环境登录。

我们可以本机登录Linux,也可以远程登录Linux。在使用远程登录的时候,我们可以使用一些远程登录软件,比如:SecureCRTPuTTyXMingSshClient等,它们的使用方法可以查询相关文档,在此我们就不再详述。当然,如果有需要可以联系我,我们可以一起学习!

在每一个Linux计算机上,都有一个名叫root的用户,这个用户没有任何的限制。如果你是系统管理员,可以使用root用户登录。但是,如果你是普通用户,你最好不要养成使用root登录的习惯。当你使用普通用户登录后,如果需要可以使用su或者sudo变更用户身份,在第二章我们将学习如何使用su或者sudo命令。

命令行基础

命令行是非常重要的,因为一个系统管理员可以使用它做任何事情。Linux有很多命令,远比我们了解的多,并且还不断有新的命令产生。当我们打开一个命令行时,我们会看到以下字符:

[root@cuiyb ~]#

它们代表的意思是:root是当前用户名;cuiyb是你当前工作的计算机名;符号“~”是一个目录名,指向我们的家目录,所谓家目录就是用户能够存储他或她的个人文件;提示符“#”指出当前用户是root,即系统管理员,如果你看到的是不是提示符“#”,那么当前用户就是普通用户。普通用户只要普通权限,一些命令是禁止普通用户使用的,比如,在Linux中,普通用户不能格式化硬盘。

命令解释程序

当工作在命令行时,作为一个管理员,你会与Shell打交道。Shell是命令解释程序,它在你登录Linux时自动启动服务,不管你是直接登录Linux还是远程登录Linux。有两种Shell十分常用:BashDashBashSUSERed HatCentos作为默认ShellDashUbuntu的的默认Shell。不过,作为初学者不必太关心到底使用的是那种Shell

命令、选项和参数

一般情况下Linux命令包括三个部分:命令本身,命令选项和它的参数。例如,下面的例子显示了一条Linux命令:

# useradd –m –G sales Linda

这个例子包括三部分,命令“useradd”;两个命令选项“-m“和“-G sales”;一般参数“Linda”。

选项

大多数命令都带有选项,使用这些选项,你可以更改命令的行为。例如,命令“ls”显示当前文件夹的文件名,我们在命令提示符下输入“ls”,然后回车,可以看到以下内容:

[root@cuiyb ~]# ls

anaconda-ks.cfg  Desktop  install.log  install.log.syslog  scsrun.log

如果你想查看详细信息,比如文件大小、对它设置的权限以及创建日期,你可以加上“-l”选项。输入后可以看到以下内容:

[root@cuiyb ~]# ls -l

总计 80

-rw------- 1 root root  1266 06-05 08:16 anaconda-ks.cfg

drwxr-xr-x 2 root root  4096 06-05 00:23 Desktop

-rw-r--r-- 1 root root 37890 06-05 08:14 install.log

-rw-r--r-- 1 root root  5106 06-05 08:09 install.log.syslog

-rw-r--r-- 1 root root   209 06-05 00:23 scsrun.log

命令选项是定义在命令代码中的,也就是说作为一个用户或者管理员我们不能添加自己的选项,如果要添加选项,唯一的方法就是改名命令的源码。命令选项根据不同的命令而不同,一些命令没有任何选项,而一些命令的选项能够超过50个。命令“man”可以列出所有可用的命令选项。

对于选项,许多命令提供两种不同的工作方法:短选项和长选项。短选项前面带有符号“-”,长选项前面带有“--”。例如:你可以使用命令“ls –l -h”也可以写成“ls –lh”,它将用KB,MB,GB显示文件的大小和详细信息,我们输入命令“ls –l –h”后,可以看到以下内容:

[root@cuiyb ~]# ls –l -h

总计 80K

-rw------- 1 root root 1.3K 06-05 08:16 anaconda-ks.cfg

drwxr-xr-x 2 root root 4.0K 06-05 00:23 Desktop

-rw-r--r-- 1 root root  38K 06-05 08:14 install.log

-rw-r--r-- 1 root root 5.0K 06-05 08:09 install.log.syslog

-rw-r--r-- 1 root root  209 06-05 00:23 scsrun.log

上面的命令短选项-h,也可以使用长选项--human-readable来代替,比如输入“ls –l –-human-readable”后,我们可以看到和上面一样的内容。

当我们在长选项前面使用符号“-”时,它将不能正常工作,比如,我们如果将“ls –-human-readable”写成“ls –human-readable”时,解释程序Shell将会理解为“ls –h –u –m –a –n -- -r –e-a –d –a –b –l -e”。

参数

除了命令选项,许多Linux命令还带有参数。这些添加的参数可以准确的告诉命令要做些什么,这些参数不是在命令源码中定义的。参看以下命令及执行结果:

[root@cuiyb ~]# ls -l /etc/hosts

-rw-r--r-- 2 root root 216 06-05 22:35 /etc/hosts

在这个例子中,“/etc/hosts”是个参数,当然,你可以使用其他任何的文件名字来替代“/etc/hosts”,参数不是固定的,你可以使用任何你喜欢的参数,只要它和命令内容相符。

不仅命令带有参数,命令选项也可以带有参数。例如,下面的命令:

[root@cuiyb ~]# mail –s hello root

这个命令包括四个不同的部分:

·mail:命令本身

·–s:命令选项

·hello:命令选项“- s”的参数

·root:命令“mail”的参数

作为规则,在命令结尾的参数通常是命令参数,选项参数位于选项的右侧。现在你可能会迷惑,该如何分辨命令参数和命令选项参数,这个问题我们将在本章“获得帮助”小节讲解,到时你会十分容易地区分这两种参数类型。

管道和重定向

为了最大发挥Linux命令的作用,你可以使用管道和重定向。使用管道,你可以把一条命令的执行结果发送给另一条命令。使用重定向,你可以决定命令执行结果的输出地方。

管道

Linux下,管道能够为你提供很大的帮助,它用符号“|”来表示。使用管道能够联合两条或两条以上的命令,组成一条能够提供更大功能的命令。对于一个高级Linux管理员,对于以下形式的命令是十分熟悉的(当你阅读完这本书,你也能明白这条命令是什么意思):

[root@cuiyb ~]# kill 'ps aux | grep y2 | grep -v grep | awk '{ print $2 }''

作为一名Linux管理员,你绝对需要了解管道,所以让我们从一个简单的例子开始。如果你试着输入命令“ls –R /”,你会看到在屏幕中滚动输出很多内容。在Linux系统中,有一个名叫“less”的命令,这是一个非常有用的命令,可以浏览文本文件的内容。例如,试着输入命令“less /etc/hosts”,它会打开hosts文件,并显示文件的内容。

命令“less”在管道中也十分有用。在使用管道时,你将会把第一条命令的执行结果发送给第二条命令。比如你使用命令行“ls –R / | less”,命令“ls –R /”会把它的执行结果发送给“less”命令。“less”命令的作用就是将第一条命令的执行结果一屏一屏的输出,按“空格”键可以查看下一屏的输出,按“B”健可以查看上一屏的输出,按“Q”健可以退出输出。该条命令的执行结果我们就不演示了,大家可以亲自试试看。

重定向

Linux命令行中,另外一个很有用处的操作就是重定向,分为输出重定向和输入重定向。

默认情况下,一条命令会将它的执行结果输出到计算机的显示器上,而使用重定向,你可以把执行结果输出到任何地方。

让我们用上面讲到的命令“ls –l”作为例子,如果你仅仅键入这个命令,你将看到输出结果会输出到显示器上。然而,如果你键入命令“ls –l > cyb.txt”,那么该条命令会把执行结果送入当前目录的cyb.txt文件中。如果文件cyb.txt不存在,那么这条命令将创建文件cyb.txt。如果文件已经存在,那么这条命令将会覆盖文件cyb.txt中的内容。假如你想把输出结果追加到(而不是覆盖)已存在的文件中,你可以使用命令“ls –l >> cyb.txt”,如果文件不存在,这条命令也会创建文件cyb.txt。因此,如果你不想因为意外操作而覆盖已存在的文件,请一直使用“>>”来替代“>”。

一些命令除了给出输出信息外,还列出一些错误信息。好消息是,你也可以重定向错误信息,使用方法就是用“2>”替代“>”。比如我们使用下列命令“ls -7 > errors”,很明显没有“7”这个选项,因此该命令会提示错误,但这个错误只是输出到显示器上,并没有输出到文件“errors”中。如果我们想让错误信息输出到一个文件中,我们可以使用下列命令“ls -7 2> errors”将会吧错误信息输出到文件“errors”中。我们也可以这样使用这两个重定向命令:

[root@cuiyb ~]# ls -7 > output 2> errors    #注意:该条命令是错误的

这条命令将创建两个文件(如果这两个文件不存在的话,如果存在就覆盖这两个文件):outputerrors,前者会被写入正确的输出结果,后者被写入错误信息。

除了把命令执行结果重定向到文件,你也可以把它重定向到一些Linux的特殊设备中,在Linux中,每一个硬件设备都可以看作文件。例如,在/dev/目录下有一个设备文件“null”,它被用作数字垃圾箱。你送到“/dev/null”中的任何信息都会立即消失的无影无踪。因此,如果你不想看到一丁点的错误信息的话,你可以把错误信息重定向到“/dev/null”中,例如:

[root@cuiyb ~]# ls -7 2> /dev/null      #注意:该条命令是错误的

这条命令执行之后,你将不会看到任何错误信息,即使使用命令“cat”查看文件“null”,也不会看到任何信息。

除了重定向输出,你也可以重定向输入,我们以命令“mail”为例:

[root@cuiyb ~]# mail -s Hello root

Hi root, how are you.

.

Cc:

在不使用输入重定向时,我们发邮件时会让我们输入邮件的正文“Hi root,how are you.”,新起一行输入符号“.”结束正文输入,出现Cc:直接回车就可以,具体意思我们以后章节将详细讲解。

而使用输入重定向,则会不同,例如下列:

[root@cuiyb ~]# mail -s Hello root < /etc/hosts

在这个例子中,“/etc/hosts”文件将被当作这封邮件的正文,而不用我们再键入邮件正文。

获取帮助

Linux提供了许多方法来获取帮助,让我们先有个概览:

·命令“man”可以提供你系统可用的大多数命令的帮助文档。

·大多数命令接受“--help”选项。使用它可显示对该命令的短小描述。

·和每一种Shell一样,Bash Shell也有内部命令。这些内部命令不能够作为程序文件在磁盘上找到,但是它们在Bash Shell加载时,在内存中被创建,随之变得可用。你可以使用命令“help”得到这些内部命令的更多信息。例如,使用“help for”得到Bash内部命令“for”的更多信息:

[root@cuiyb ~]# help for for

小提示:如果想要知道某一个命令是否是内部命令,可以使用“type”。例如:

[root@cuiyb ~]# type cd

cd is a shell builtin

这个结果告诉你命令“cd”是Bash内部命令。

使用“man”获得帮助

在你的Linux系统中,“man”是很重要的一个获取其他命令信息的命令,它相当于一个短小的系统程序员手册。使用命令“man”的基本结构是在man后紧跟你想了解的命令。例如:

[root@cuiyb ~]# man passwd

输入以上命令可以显示出“passwd”的详细信息。你将会看到不止一页的信息,按“空格”键显示下一页,按“B”键显示上一页,按“Q”键可以随时退出。

man Sections

在早期Unix操作系统中,man有九种不同的文档手册。这种结构仍然出现在“man”命令中。下表列出了不同的部分和类型。

section

topic

description

0

Header files

There are files that are typically in /usr/include and contain generic code that can be used by your programs.

1

Executable programs or shell commands

For the user, this is the most important section because it normally documents all commands that can be used.

2

System calls

As an administrator, you will not use this section on a frequent basis. The system calls are functions that are provided by the kernel. It is all very interesting if you are a kernel debugger, but normal administrators will not need this information.

3

Library calls

A library is a piece of shared code that can be used by several different programs. Typically, man pages that are documented in section 3 are relevant for programmers, not so much for Linux users and system administrators.

4

Special files

In here, the device files in the directory /dev are documented. These files are needed to access devices in a computer. This section can be useful for learning more about the workings of specific devices and how to address them using device files.

5

Configuration files

Here you will find the proper format you can use for most configuration files on your server. If, for example, you want to know more about the way /etc/passwd is organized, use the entry for passwd in this section by issuing the command man 5 passwd.

6

Games

On a modern Linux system, this section contains hardly any information.

7

Miscellaneous

This section contains some information on macro packages used on your server.

8

System administration commands

This section does contain important information about the commands you will use on a frequent basis to change settings on your Linux machine.

9

Kernel routines

This is documentation that is not even included as part of the standard install and optionally contains information about kernel routines.

作为一名系统管理员,你需要了解的是man1man5man8。大多数时,你可以不需要了解其他部分。有些时候,一个输入会在几个部分都存在信息,比如,passwdman1man5都有信息。但如果你仅仅键入“man passwd”,你只会看到man1中对“passwd”的描述,而不会看到man5中对“passwd”的描述。如果你想要明确显示所有的信息,可以使用“man –a passwd”。如果你想指定看哪一部分的描述,比如看man5中对”passwd“的描述,可以使用“man 5 passwd”。

如果你忘记了某一个命令的拼写,你会喜欢“man –k”,选项“-k”可以根据关键字列出含有关键字的所有命令,例如:我们只记得命令“passwd”的“passw”部分,我们可以使用如下命令来搜查所有含有“passw”的命令:

[root@cuiyb ~]# man -k passw

小提示:可以使用命令“apropos”来替代“man –k”,它能够做同样的事情。

man –k”经常会列出所有man部分的相关命令,但大多数情况下,我们不需要列出全部信息,对于系统管理员我们仅仅关注部分man1man5man8中的相关命令,因此我们可以使用管道和命令“grep”。例如:

[root@cuiyb ~]# man -k time | grep 1

执行之后,只会列出man1中含有“time”的描述。

使用命令选项“--help

命令选项“--help”相当简单明了,很多命令都接受这个选项。尽管不是所有的命令都接受这个选项,但是,如果某一个命令不接受这个选项,它会给出一个简短的摘要,告诉你如何使用这个命令。有时候我们使用“--help”时会列出超出一屏的信息,这时管道和“less”命令会很有用处,例如:

[root@cuiyb ~]# ls --help | less

它会先显示一屏的信息,当你按“空格”键后才显示下一屏的信息,按“Q”键可以随时退出。

在安装包中获取信息

我们可以在目录/usr/share/doc/中获取我们安装的软件的一些信息。这些信息不是默认安装在所有的发行版本中的,如果需要你可以下载Documentation软件包并安装。在多数情况下,存储在/usr/share/doc中的信息是压缩格式,它的扩展名是.gz。我们可以使用命令“zcat”结合管道和命令“less”来阅读这种文件。例如我们阅读文件changelog.gz,可以使用下列命令:

[root@cuiyb ~]# zcat changelog.gz | less

在一些情况下,也会存在HTML格式的文件,该文件只能用浏览器来阅读。但是,在这种情况下,我们不需要进入图形环境来阅读HTML文件的内容,因为Linux提供了w3m浏览器,它被设计运行在非图形环境中,在w3m中你可以使用箭头来浏览超级链接,使用命令“q”退出w3m

使用Shell

Linux使用内核来进行寻址和控制机器硬件,内核可以看作是Linux操作系统的心脏。在内核的上部,是Shell层,它是Linux提供给用户的接口,告诉内核和运行在它上面的服务需要做些什么。Shell接口解释用户输入的命令并将它们转换成机器代码。它们之间的层次结构如下:

Command Shell Kernel Hardware

有好几个可用的Shell。最早的Shell1970年为Unix创建的,名叫“Bourne Shell”,不过现在在Linux中它仍然可用,它的程序文件目录是/bin/sh。另一个流行的ShellBashshort for the Bourne Again Shell)。Bash Shell与最初的Bourne Shell完全兼容,但它有很大的提高。在大多数Linux的发行版本中,Bash是作为默认Shell提供给所以用户的。SUSERed Hat使用Bash,而Ubuntu使用另一种Shell,名叫“Dash”。对于常规服务管理任务,它们之间没有太大的区别。也有其他一些Shell,我们就不再讨论,有兴趣的,可用查阅其他资料。

使用文件和目录

Shell下工作,我们会经常操作文件和目录。目录就是存储相关文件的文件夹,例如,在目录/bin中,你会发现一些二进制文件。一些目录是被默认创建的,然而你也可用创建自己的目录。例如:

[root@cuiyb ~]# mkdir /groups

就会在更目录root下,创建一个名叫“groups”的目录。

在一些目录中,你会发现一些文件,有些是文本配置文件,有些是程序文件和文档。当然你可用使用命令“touch”创建一个文件。例如:

[root@cuiyb ~]# touch cuiyh

这条命令在当前目录下创建了一个空的文本文件。

这儿,我们就简单地介绍了文件和目录,我们会在第二章详细介绍相关内容。

使用自动完成功能

使用这个功能仅仅就是按“Tab”键。例如,命令“cat”可用来显示ASCII文本文件的内容,在当前目录下存在一个名叫“This-is-a-file”的文件,打开这个文件可以键入“cat Thi”,然后按“Tab”键,系统会自动完成后面的输入。如果这个目录中还有其他以“Thi”开头的文件,Bash会尽可能地匹配文件名。例如,目录中还有另外一个文件“This-is-a-text-file”,当我们键入“cat Thi”后,再按“Tab”键,Bash只会自动完成“cat This-is-a-”。如果我们想接着得到可能的文件名,我们可以再按两次“Tab”键,这时会给出所有以“This-is-a-”开头的文件名。

小提示:如果你只记得某个命令前面几个字母,而忘记了后面的字母,也可以使用“Tab”键。例如,键入“lv”后按“Tab”键,Bash会列出所有以“lv”开头的命令。

使用变量

Shell经常使用一些变量,许多系统变量在系统启动时就变得可用,不过我们也可以设置我们自己的变量。例如,我们可以使用命令“SWEET=good”定义一个临时变量。我们在编写Shell脚本时会经常使用变量,我们会在第12章详细描述。

系统变量存储在用户环境中,并且帮助Shell很好地工作。变量“PATH”就是一个很好的例子,它的值是一个目录列表,当用户输入一个命令时,会在这些目录中进行搜索。在变量前面加上符号“$”就可以访问变量的值。例如:

[root@cuiyb ~]# echo $PATH

这个命令会显示Bash的当前搜索路径。

使用命令“env”可以显示你的Shell环境定义的所有变量。使用方法如下:

[root@cuiyb ~]# env

Bash在用户登录时,会从以下四个文件中读取环境设定:

全局设置文件(针对所有用户的设置):

/etc/profile

/etc/bashrc

用户设置文件(针对单个用户的设置):

~/.bashrc

~/.bash_profile

使用Bash history

Bash Shell另外一个有用的特性就是history,它可以让你重用你最近使用过的命令。大多数Linux发行版本可以存储用户最近使用的1000个命令,当然这个数值可以更改,它被定义为一个全局变量“HISTSIZE”。在每一个用户的家目录中都有一个文件“.bash_history”,这个文件存储了用户最近使用的命令,他能存储的命令数是由环境变量“HISTSIZE”指定的。你可以输入命令“history”来查看这些历史命令,例如:

[root@cuiyb ~]# history

会显示所有使用过的命令。

[root@cuiyb ~]# history 10

会显示最近使用的10个命令。

[root@cuiyb ~]# !!

重复执行上一条命令。

[root@cuiyb ~]# !a

重复执行最近使用过的以“a”开头的命令。

[root@cuiyb ~]# !25

重复执行在history表中记录号码为25的命令。

[root@cuiyb ~]# !-25

重复执行前第25条命令。

快捷键

Ctrl+C:当一个命令没有应答或者需要很长时间才能完成,我们可以使用这个快捷键强行退出。

Ctrl+D:退出Shell

Ctrl+R:从历史命令中查找命令。

Ctrl+Z:命令运行时,使用该快捷键将强制当前进程转为后台,并使之停止,但没有终止。详细用法将在第7章讲述,目前只需记住,如果你想停止一个命令不要使用这个快捷键。

    好了,第一章的内容就是这些,我们下次见!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值