
2.3 工作任务4——Linux基本命令

工作任务4
2.3.1 任务目的
新星公司决定搭建属于自己的服务器。信息中心决策层认识到,对于初次接触服务器技术的管理员来说,必须熟练掌握基本的Linux命令。因此公司决定开展一次Linux基本命令的培训,让管理员掌握基本的Linux操作技能。
2.3.2 任务规划
新星公司开展Linux基本命令的培训,培训内容包括定位及文件操作命令、浏览及查找命令、vi编辑器的使用及IP地址设置方法等。
2.3.3 Linux命令格式
掌握在Linux的命令行模式下操作,对于学习Linux来说是非常重要的。虽然Linux系统的图形化界面也在不断发展,但图形化界面的操作模式不能代替命令行模式,因为命令行模式具有如下优点:执行效率高、稳定性高、节省系统资源以及比图形化界面更通用。Linux命令格式如下。

选项:对命令的特别定义,以“-”开始,多个选项可用一个“-”,如ls-l、ls-al。
参数:命令的操作对象,可以是目录,也可以是文件,有些命令不带参数,有些命令带一个参数,有些命令带多个参数。
命令名、选项、参数都作为命令的输入,都是独立的项,它们之间必须用空格隔开,而且Linux的命令严格区分大小写。命令格式中的[]代表可选项,即有些命令不写选项或参数也能执行。
命令都写在命令提示行的后面,命令提示行如下。

其中,“root”表示当前登录用户名;“localhost”表示计算机名,计算机名后面的是当前目录,“~”表示当前登录用户的属主目录;“#”为命令提示符,若以普通用户登录,则命令提示符为“$”。
2.3.4 定位及文件操作命令
1.pwd命令
pwd命令用于显示当前目录的绝对路径。例如:

2.cd命令
cd命令用于改变当前工作目录。cd命令只带一个参数。其命令格式如下。

1)目录名表示目录的路径,可以是相对路径或绝对路径。相对路径是相对于当前工作目录的路径,例如:

2)绝对路径是从根目录“/”开始的路径,例如:

3)除了写明目录的完整路径,还可采用以下常用的方式改变当前工作目录。

本地用户的主目录是/home目录下的同名目录,如bob用户的主目录是/home/bob,root用户的主目录是/root。
3.touch命令
Linux系统提供touch命令来创建空文件或修改文件的时间属性。其命令格式如下。

若文件存在,则修改文件的时间属性为系统的当前时间;若文件不存在,则生成一个空文件。

4.mkdir命令
使用mkdir命令创建一个目录或多个目录。其命令格式如下。

mkdir命令有以下选项。
-p:可同时创建目录和它的子目录。

1)创建目录。

2)若当前工作目录下无dir2目录,则在当前工作目录下创建dir2/Linux子目录。

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

在第一种格式中,源文件被复制到目标文件。如果目标文件是目录文件,那么把源文件复制到这个目录中,且文件名保持不变;如果目标文件不是目录文件,那么源文件就复制到该目标文件中,原有目标文件将被破坏,但目标文件名不变。
在第二种格式中,所有的源文件都被复制到目标文件,该目标文件必须是目录文件,所有源文件的名称都不变。
1)复制当前工作目录下名为text的文件到/home目录下。

2)复制/etc/yum.repos.d/目录下所有的内容(包括所有子目录)到/tmp目录下。

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

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

6.mv命令
mv命令用来移动文件或对文件重命名。其命令格式如下。

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

2)将text改名为text.bak。

7.rm命令
rm命令可删除文件和目录。其命令格式如下。

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

2)递归删除目录。

3)强制递归删除目录。

2.3.5 浏览及查找命令
1.ls命令
ls命令用于浏览目录的内容。其命令格式如下。

ls命令有以下选项。
-a:列出所有文件,包括那些以“.”开头的隐藏文件。
-l:使用长格式显示文件条目,包括连接数目、所有者、大小、最后修改时间、权限等。
在ls命令中还可以使用通配符“*”“?”,这样可以使用户很方便地查找特定形式的文件和目录。
1)直接使用ls命令。例如:

普通文件在文本界面下用白色表示,目录文件用蓝色表示。
2)-l选项的使用。

第一列的第一个字符表示文件的类型,“-”表示普通文件,“d”表示目录,其余9个字符标识文件或目录的权限。第二列表示连接数,文件默认为1,目录默认为2。第三列表示所有者。第四列表示文件所属的组。第五列表示文件大小。第六列、第七列和第八列表示文件创建时间。最后一列表示文件名。
2.cat命令
cat命令可以显示文件的内容,或者将多个文件合并在一起显示。其命令格式如下。

该命令运行后,指定文件的内容就会在标准输出(通常是屏幕)上显示出来。如果文件的内容很长,在一个屏幕中显示不下,就会出现屏幕滚动,为了控制滚屏,可以按〈Ctrl〉+〈S〉组合键停止滚屏;而按〈Ctrl〉+〈Q〉组合键可以恢复滚屏。
例如:

3.more命令
more命令一般用于要显示的内容会超过一个屏幕的情况。为了避免画面显示时瞬间就闪过去,可以使用more命令。其命令格式如下。

可在每个屏幕的底部出现一个提示信息,给出至今已显示的该文件的百分比。用户可以用几种不同的方法对提示做出回答:按〈Space〉键,显示文本的下一屏内容;按〈Enter〉键,只显示文本的下一行内容;按〈/〉键,接着输入一个模式,可以在文本中寻找下一个匹配的模式;按〈H〉键,显示帮助屏,该屏上有相关的帮助信息;按〈B〉键,显示上一屏内容;按〈Q〉键,退出more命令。
例如,显示/proc/cpuinfo文本文件的内容。

屏幕在显示满一屏时暂停,此时可按〈Space〉键继续显示下一屏,不像cat命令那样对不能一屏显示的就一闪而过到最后一屏。
4.grep命令
grep命令用来在文本文件中查找指定模式的词或短语,并在标准输出上显示包括给定字符串的所有行。其命令格式如下。

默认情况下,grep命令在查找模式时是区分大小写的;如果不想区分大小写,则可以用-i选项。
grep命令除了可以查找固定的字符串,还可以使用较为复杂的匹配模式。要实现复杂的匹配模式,需要使用如下的符号:“?”匹配字符串中的一个字符;“*”匹配任意字符;“\*”匹配“*”字符;“\?”匹配“?”字符;“\)”匹配“)”字符。
例如,搜索/proc/cpuinfo文件中包含字符串name的行并输出,命令行如下。

2.3.6 vim编辑器
文本编辑器是Linux操作系统中的重要工具,在Linux系统中配置服务器的时候,会经常用文本编辑器来编辑相关的配置文件。其中,vim是使用最广泛的文本编辑器。
使用vim编辑器打开一个文件,如果文件存在,则显示文件内容。如果文件不存在,则显示空白。要使用vim编辑器打开一个文件,如/root/config文件,可以输入以下命令。

在屏幕中,顶部的方框代表光标位置;底部显示的是当前编辑文件的信息;中间的波浪号“~”是一些填充符,表示这些位置没有内容。
vim编辑器有3种工作模式,分别是命令模式、编辑模式和末行模式。在命令提示符后输入“vim”和将要编辑的文件名,便可进入vim编辑器;或者只输入“vim”而不带文件名,也可以进入vim编辑器。
1)进入vim编辑器后,首先进入的就是命令模式,这时vim编辑器等待的是编辑命令输入,而不是文本输入。也就是说,这时输入的文本都将作为编辑命令来解释。vim编辑器除了可以用方向键移动光标外,还提供了其他快速定位光标的常用命令及其他常用命令。vim编辑器在命令模式下常用的命令及其含义如表2-2所示。
表2-2 命令模式下常用的命令及其含义

2)在命令模式下,执行插入命令“i”或按〈Insert〉键,或执行命令“a”和命令“o”等都可以进入编辑模式。在编辑模式下,用户输入的任何字符都会被vim编辑器当作文件内容保存起来,并将其显示在屏幕上。在输入过程中,要想返回命令模式,按〈Esc〉键即可。
3)在命令模式下,按〈:〉键即可进入末行模式,此时在显示窗口的最后一行显示一个“:”作为命令模式的提示符,等待用户输入命令。在末行模式下,按〈Esc〉键即可返回命令模式。末行模式下常用的命令及其含义如表2-3所示。
表2-3 末行模式下常用的命令及其含义

3种工作模式之间的转换方法如图2-1所示。

图2-1 3种工作模式之间的转换
2.3.7 IP地址设置
Linux系统中,配置文件大都存放在/etc目录下。例如,/etc/sysconfig/network-scripts/ifcfg-ens33是网卡ens33的配置文件。
1)使用vim编辑器修改配置文件。


2)重启网卡,使配置生效。

3)使用ip addr命令查看ens33的网络配置信息。

2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000

2.3.8 拓展与提高

工作任务4拓展与提高
1.修改系统启动级别
Linux系统的启动级别有以下7种:0表示系统关机,所以不要把该级别设置为默认模式,否则系统每次启动以后就会自动停止,无法进入;1表示单用户模式,只允许一个用户从本地计算机上登录;2表示多用户模式,但没有网络服务;3表示有网络服务的多用户模式,直接进入命令行界面;4是系统未使用的级别;5表示多用户的图形界面,如进入GNOME桌面;6表示系统重启,因此不要将系统设置为这个级别。
CentOS 7中采用target概念来定义启动级别,常用的是级别3、级别5。级别3为多用户文本(multi-user.target),级别5为图形界面(graphical.target)。

使用reboot命令重启操作系统。

系统重启之后,进入命令行模式。
2.给一块网卡配置两个IP地址
服务器技术中,会经常遇到给一块网卡配置多个IP地址的情况。CentOS 7中,可以通过修改/etc/sysconfig/network-scripts/ifcfg-ens33网卡配置文件来实现。
1)在配置文件末尾追加以下两行。

2)重启网卡,使配置生效。

3)重启网卡后,使用ip addr命令测试。

2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
