
2.3 工作任务4——Linux基本命令
2.3.1 任务目的
新星公司决定搭建属于自己的服务器,信息中心决策层认识到,对于初次接触到服务器技术的管理员来说,必须要熟练掌握基础的Linux命令。因此决定开展一次Linux基础命令的培训,让管理员掌握基本的Linux操作技能。
2.3.2 任务规划
新星公司开展Linux基础命令的培训,培训的内容包括:定位及文件操作命令、浏览及查找命令、文件管理命令、vi编辑器的使用及IP地址设置方法等。
2.3.3 Linux命令格式
掌握在Linux的命令行模式下操作,对于学习Linux来说是非常重要的。虽然Linux系统的图形化界面也在不断发展,但界面模式不能代替命令行模式,命令行模式功能比图形界面功能要大得多。相比而言,命令行模式体现了如下几个优点:执行效率高、稳定性高、节省系统资源以及比图形界面更通用。
Red Hat Enterprise Linux6.4中命令的格式如下:
命令名 [选项] [参数1] [参数2]…
选项:是对命令的特别定义,以“-”开始,多个选项可用一个“-”,如ls-l,ls-al。
参数:命令的操作对象,可以是目录,也可以是文件,有些命令不带参数,有些命令带一个参数,有些命令带多个参数。
命令名、选项及各个参数都作为命令的输入,都是独立的项,它们之间必须用空格隔开,而且Linux的命令都是严格区分大小写的。
命令都是写在命令提示行的后面,命令提示行如下所示。
[root@localhost~]#
其中“root”表示当前登录用户名,“localhost”表示计算机名,计算机名后面表示的是当前目录,“~”表示当前登录用户的属主目录。“#”为命令提示符,若普通用户登录则命令提示符为“$”。
2.3.4 定位及文件操作命令
1.pwd命令
pwd命令:用于显示当前目录的绝对路径,例如:

2.cd命令
cd命令:用于改变当前工作目录,cd命令只带一个参数,其命令的语法格式为。
[root@localhost~]#cd 目录名
目录名表示目录的路径,可以是相对路径或绝对路径。例如:

除了写明目录的完整路径,还可采用以下常用的方式改变当前工作目录。
“cd”或“cd~”表示切换到当前用户的主目录。本地用户的主目录是/home目录下的同名目录,如bob用户的主目录是/home/bob。root用户的主目录是/root。
“cd..”表示切换到当前目录的上一层目录,例如当前目录为/home/bob,使用该命令可以将当前目录移到/home。
“cd /”表示返回到根目录,即返回到/。
“cd-”表示在最近工作过的两个目录间切换。
其中,绝对路径是从“/”目录开始的路径,例如:

相对路径是相对于当前目录的路径,例如:

3.touch命令
Linux系统提供touch命令来创建空文件,其命令格式如下:
touch 文件名 [文件名…]
不存在的文件名被当作空文件创建。已存在文件的时间标签会更新为当前的时间(默认方式),它们的数据将原封不动地保留下来。
(1)将当前的文件时间修改为系统的当前时间:

(2)新建文件:

若文件存在,则修改为系统的当前时间;若文件不存在,则生成一个当前时间的空文件。
4.mkdir命令
使用mkdir命令创建一个目录或多个目录,其命令的语法格式为:
mkdir [选项] 目录名 [目录名…]
-p选项:可同时创建目录和它的子目录,即:
mkdir-p 目录名/子目录名
(1)创建目录:

(2)若当前目录下无dir2目录,在当前目录创建dir2/Linux子目录:

从以上示例中可以看出,一次创建多层目录要加“-p”选项。
5.cp命令
使用cp命令可以做文件的备份,或者其他用户文件的个人备份。可以使用cp命令把一个源文件复制到一个目标文件,或者把一系列文件复制到一个目标目录中。命令格式如下:

在第一种语法格式中,源文件被复制到目标文件。如果目标文件是目录文件,则把源文件复制到这个目录中,而文件名保持不变;如果目标文件不是目录文件,则把源文件复制到该目标文件中,原目标文件将被破坏,但目标文件名不变。
在第二种语法格式中,所有的源文件都被复制到目标文件,该目标文件必须是目录文件,所有源文件的名字都不变。
(1)复制文件/etc/profile到当前目录:

(2)复制/etc/apt目录下所有的内容(包括所有子目录)到/tmp目录:

(3)使用通配符复制etc目录下mail开头的所有文件到/home下:

(4)复制文件/etc/profile到/root目录,保持文件名及文件属性不变:

6.mv命令
mv命令用来移动文件或对文件重命名,该命令的格式为:

在第一种用法中,源文件被移至目标文件后有两种不同的结果。如果目标文件是某一目录文件的路径,源文件会被移到此目录下,且文件名不变;如果目标文件不是目录文件,则源文件的内容将覆盖目标文件的内容,目标文件名不变。
在第二种用法中,所有的源文件都会被复制到目标文件,这里的目标文件必须是目录文件,所有移到目标目录下的文件都将保留以前的文件名。
如果源文件和目标文件在同一个目录下,mv的作用就是重命名文件,但给文件重命名,新文件名一般不采用同一目录下的其他文件名,格式如下:
(1)将当前目录下的test文件移动到/home目录:

(2)将text改名为text.bak:

7.rm命令
rm命令可删除文件和目录,该命令的格式为:
rm[选项] 文件名1 [文件名2…]
在删除文件之前,最好再看一下文件的内容,确定是否真正要删除。
-r选项:可以删除目录。当一个目录被删除时,所有文件和子目录都将被删除。这是一个非常危险的命令选项。
-f选项:可强制删除文件,删除时不会出现是否要删除的提示信息。
(1)删除文件主目录下的text文件:

(2)递归删除目录:

(3)强制递归删除目录:

不给提示直接删除dir2目录下的文件与dir2目录。
8.rmdir命令
rmdir用于删除子目录。与创建目录类似,加上-p参数表示如果删除一个目录后其父目录为空,则将其父目录一同删除。
(1)删除目录:

(2)删除当前目录下的dir2/Linux子目录,如果dir2目录为空,也删除该目录:

若dir2目录不为空则保留dir2目录。
2.3.5 浏览及查找命令
1.ls命令
ls命令用于浏览目录的内容,命令的语法格式为:
ls [选项] [目录]
ls命令有多个命令行选项:
-a:列出所有文件,包括那些以“.”开头的隐藏文件。
-l:使用长格式显示文件条目,包括连接数目、所有者、大小、最后修改时间、权限等。
-t:按文件修改时间进行排序,而不是使用文件名排序。
在ls命令中还可以使用通配符“*”、“?”,这样可以使用户很方便地查找特定形式的文件和目录。
例如:

普通文件在文本界面下用白色表示,目录文件用蓝色表示。

第一列的第一个字符表示文件的类型,“-”表示普通文件,“d”表示目录,其余9个字符表示文件或目录的权限。第二列表示连接数,文件默认为1,目录默认为2。第三列表示所有者,第四列表示文件所属的组,第五列表示文件大小,第六列、七列、八列表示文件创建时间,最后一列表示文件名。
2.cat命令
cat命令可以显示文件的内容,或者是将多个文件合并在一起显示。cat命令的格式为:
cat [选项] 文件名 [文件名…]
该命令运行后,指定文件的内容就在标准输出(通常是屏幕)上显示出来。如果文件的内容很长,在一个屏幕中显示不下,就会出现屏幕滚动,为了控制滚屏,可以按〈Ctrl+S〉组合键停止滚屏;按〈Ctrl+Q〉组合键可以恢复滚屏。
选项及其意义如下:
-v:用一种特殊形式显示控制字符,除去LFO与TAB。
-n:显示输出行的编号。
-b:显示非空输出行的编号。
例如:

3.more命令
more命令一般用于要显示的内容会超过一个屏幕的情况下。为了避免画面显示时瞬间就闪过去,可以使用more命令,让画面在显示满一页时暂停。其语法格式是:
more[选项] 文件名 [文件名]
可在每个屏幕的底部出现一个提示信息,给出至今已显示的该文件的百分比。可以用几种不同的方法对提示做出回答:按〈Space〉键,显示文本的下一屏内容;按〈Enter〉键,只显示文本的下一行内容;按斜线〈/〉键,接着输入一个模式,可以在文本中寻找下一个相匹配的模式;按〈H〉键,显示帮助屏,该屏上有相关的帮助信息;按〈B〉键,显示上一屏内容;按〈Q〉键,退出more命令。
例如:
1)显示/etc/profile文本文件的内容:
[root@~]#more/etc/profile
屏幕在显示满一屏时暂停,此时可按空格键继续显示下一屏,不像cat命令那样对不能一屏显示的就一闪而过到最后一屏。
2)当用ls命令查看文件列表时,如果文件太多,则可配合more命令使用:
[root@Localhost~]#lsal|more
以长格形式显示当前目录下的文件列表,显示满一屏便暂停,可按空格键继续显示下一屏内容,或按〈Q〉键跳离。
4.grep命令
grep命令用来在文本文件中查找指定模式的词或短语,并在标准输出上显示包括给定字符串的所有行。grep命令的语法为:
grep[选项] 查找模式 文件名 [文件名…]
默认情况下,grep在查找模式时是区分大小写的;如果不想区分大小写,可以用选项-i。
查找模式可能是唯一的参数,如果在模式中使用了shell元字符,通常要用单引号(’)把它括起来。
grep除了可以查找固定的字符串,还可以使用较为复杂的匹配模式。要实现复杂的匹配模式,需要使用如下的表达符号:“?”匹配字符串中的一个字符;“*”匹配任意字符;“\*”匹配“*”字符;“\?”匹配“?”字符;“\)”匹配“)”字符。
例如:搜索profile文件中包含字符串“then”的行并输出,命令行为:
[root@Localhost~]#grep then /etc/profile
2.3.6 文件管理命令
1.zip、unzip命令
使用zip来压缩文件,使用unzip来解压缩文件,当然也可用zip加参数-d来解压缩。
1)压缩单个文件:

上面的命令压缩yp.conf文件,生成压缩包yp.zip文件。
2)压缩多个文件与目录到同一个压缩文件:

上述命令把yp.conf和yp.zip压缩到yp-1.zip文件中。
2.gzip、gunzip命令
使用gzip命令压缩文件,使用gunzip命令解压缩文件。
与zip相比,gzip有以下特点:①zip命令具有将许多文件与目录压缩成一个文件的功能,但gzip却不能。②用gzip命令压缩后源文件会自动被删除,解压缩后压缩包自动被删除。
1)压缩单个文件:

使用lsl命令查看结果时,yp.conf没有了,但多了一个yp.conf.gz文件。
2)压缩多个文件:


对比发现gzip可以一次压缩多个文件,但不能压缩目录,也不能将多个文件与目录压缩成一个文件。
3.tar命令
tar是Linux常用的压缩与解压缩命令,利用tar命令可以压缩文件与目录。tar命令通过不同的选项实现压缩、解压缩及其他功能。例如:

生成的压缩包自行加上扩展名.tar。tar还可实现查看压缩包内的文件和解压缩。

4.rpm命令
在Linux系统中,通常用rpm命令对RPM软件包进行查询、安装和删除等操作。rpm指令的功能是通过不同的选项来实现的。
1)利用rpm命令来查询某软件是否已安装,其命令格式如下:
[root@localhost~]#rpm-q 软件名
2)查看系统中所有已经安装的包,要加-a参数:
[root@localhost~]#rpm-qa
3)安装软件包:
[root@localhost~]#rpm-ivh 软件包名.rpm
4)删除软件包:
[root@localhost~]#rpm-e 软件包名.rpm
例如查看是否安装gaim软件、安装vsftpd软件可以参考以下操作:

2.3.7 vi编辑器
文本编辑器是Linux操作系统中的重要工具,在Linux系统中配置服务器的时候,会经常用文本编辑器来编辑相关的配置文件。其中,vi是使用最广泛的文本编辑器。
启动vi打开一个特定的文件,如/root/new文件,可以键入如下命令:

按〈Enter〉键后,进入vi编辑器界面。顶部的方框代表光标位置,底部显示的是当前编辑文件的信息。中间的波浪号“~”是一些填充符,表示这些位置没有内容。
1.vi工作模式
vi有3种工作模式,分别是命令模式、编辑模式和末行模式。在命令提示符后输入“vi”和将要编辑的文件名,便可进入vi。或者只输入vi而不带文件名,也可以进入vi。
进入vi后,首先进入的就是命令模式,这时vi等待的是编辑命令输入而不是文本输入,也就是说这时输入的字母都将作为编辑命令来解释。如果输入“vi文件名”时,该文件已经存在,则屏幕上将显示该文件的内容,并且光标停在第一行的首位,末行将显示该文件的文件名、行数和字符数,如图2-1所示。

图2-1 显示该文件的文件名、行数和字符数
在命令模式下,输入插入命令“i”或按〈insert〉键,或输入命令“a”和命令“o”等都可以进入编辑模式。在编辑模式下,用户输入的任何字符都会被vi当作文件内容保存起来,并将其显示在屏幕上。在输入过程中,要想回到命令模式,按〈Esc〉键即可返回命令模式。
在命令模式下,按〈:〉键即可进入末行模式,此时在显示窗口的最后一行显示一个“:”作为命令模式的提示符,等待用户输入命令。末行模式下,按〈Esc〉键即可返回命令模式。
3种工作模式之间的转换方式如图2-2所示。

图2-23 种工作模式之间的转换方式
2.常见的vi命令
vi命令非常多,以下分几类进行简要介绍。
(1)命令模式下的命令
vi编辑器除了可以用上下左右箭头移动光标外,还提供了其他快速定位光标的常用命令及其他常用命令。vi编辑器在命令模式下常用的命令及其含义如表2-2所示。
表2-2 命令模式下常用的命令及其含义

(2)末行模式下的命令
末行模式下的常用命令及其含义如表2-3所示。
表2-3 末行模式下的常用命令及其含义

2.3.8 IP地址设置
1.ifconfig命令
ifconfig命令可以实现IP地址的配置,此命令通常用来做临时的测试用,计算机重新启动后,IP地址的配置将自动失效。具体用法如下:
ifconfig ethx ipadd [netmask] [x.x.x.x]
其中ethx中的x代表第几块以太网卡,默认第一块为0。ipadd代表IP地址。x.x.x..x为子网掩码。例如:

2.修改配置文件
Linux系统中,配置文件大都多在/etc目录下,/etc/sysconfig/network-scripts/ifcfg-eth0是和网卡eth0的IP地址相关的配置文件。
使用vi编辑器修改配置文件:

重启网卡,使配置生效:

使用ifconfig命令查看eth0的网络配置信息:

在RHEL6中新增了一个NetworkManager模块,称为网络管理器,是用来设定、配置和管理各种网络连接类型的桌面工具。如果网卡配置文件中NM_CONTROLLED=yes表示设备eth0是由Network Manager图形管理工具托管的,NM_CONTROLLED的值改为no时,IP地址配置与RHEL6之前版本系统的IP配置没有区别。
2.3.9 拓展与提高
1.使用vi编辑器修改系统启动级别
/etc/inittab文件是设定Linux启动级别的配置文件,Linux系统的启动级别有以下7种:
0表示系统关机,所以不要把该级别设置为默认模式,否则系统每次启动以后就会自动停止,无法进入;1表示单用户模式,只允许一个用户从本地计算机上登录;2表示多用户模式,但没有网络服务;3表示有网络服务的多用户模式,直接进入命令行界面;4系统未使用该级别;5表示多用户的图形界面,如进入GNOME桌面;6表示系统重启,因此不要将系统设置为这个级别。
使用vi编辑器打开/etc/inittab配置文件:
[root@localhost~]#vim /etc/inittab
Linux配置文件中,行首有“#”或“;”符号的行是注释行,起到注释作用,但对配置功能没有任何影响。/etc/inittab文件中只有如下一行:
Id:5:initdefault:
键入“i”由命令模式进入编辑模式,将光标移动到该行,将“5”修改为“3”,其他保持不变:
Id:3:initdefault:
按〈Esc〉键退回到命令模式,键入“:”进入末行模式,输入“wq”,然后按〈Enter〉键保存退出。这时就将系统的启动级别由多用户的图形化界面5级别,修改为带网络连接的多用户命令行3级别。
使用reboot命令重启操作系统。
[root@localhost~]#reboot
系统重启之后,进入命令行模式。
2.给一块网卡配置两个IP地址
服务器技术中,会经常遇到给一块网卡配置多个IP地址的情况。RHEL6.4中,可以通过修改/etc/sysconfig/network-scripts/ifcfg-eth0网卡配置文件来实现。这与RHEL6之前的各版本有很大不同。
使用vi编辑器修改/etc/sysconfig/network-scripts/ifcfg-eht0文件:

重启网卡,使配置生效。
[root@localhost~]#service network restart重启网卡后,网络中的其他计算机使用ping命令可以ping通第二个IP地址了。
2.3.10 任务小结
通过本任务,可以掌握Linux基础命令,如定位及文件操作命令、浏览及查找命令、文件管理命令等;掌握如何正确使用vi编辑器修改Linux配置文件;掌握配置Linux系统IP地址的技能。