《linux操作系统安全 V2.pdf》由会员分享,可在线阅读,更多相关《linux操作系统安全 V2.pdf(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、实验二实验二 Linux 操作系统安全操作系统安全 一、实验目的一、实验目的 通过实验熟悉 Linux 环境下的用户管理和文件管理的相关操作命令,掌握 Linux 操作系统中的相关系统安全配置的方法。二、实验原理二、实验原理 1 用户管理用户管理 Linux 系统支持以命令行或窗口方式管理用户和用户组。它提供了安全的用户名和口令文件保护以及强大的口令设置规则,并对用户和用户组的权限进行细粒度的划分。Linux 系统的用户和用户组的信息分别保存在/etc/shadow、/etc/passwd、etc/group 和/etc/gshadow 等几个文件中,为这些文件设置较高的安全权限是完全必要的。
2、在较高安全要求的系统中,可以将这些文件设置为不可更改。Linux 系统中也带有一些常用的口令字典,以便在用户设置的口令不太安全时及时的提醒用户。表 2-1 列出了与用户管理有关的命令及其简单的使用规则和参数。如果希望进一步了解这些命令,可以在 Linux 操作系统中通过使用 man 命令查看。表 2-1 用户管理常用命令及参数 命令 格式 用途 常用参数 Useradd Useradd参数及对应内容账户名 按照设置添加用户 无参数 直接建立-d 设置用户主目录-G 设置用户附属组-p 设置用户密码 Passwd Passwd参数及对应内容账户名 为用户添加密码或其它相关操作 无参数 设置用户密
3、码-l 锁定账户-u 解除锁定-S 查看用户状态 Finger Finger参数账户名 查看用户的相关信息 Usermod Usermod参数及对应内容账户名 用户建立后修改用户的相关属性-d-G-p 同 useradd-l 更改用户名 Userdel Userdel参数账户名 删除用户 无参数直接删除-r 将其目录删除 Groupadd Groupadd参数及对应内容组名 添加用户组 无参数:直接建立并使用默认 id-g 设置组 id Gpasswd Gpasswd参数账户名 对组用户进行操作-a 把用户加入组-d 把用户从组中删除-A 对组指派管理员 Groupdel Groupdel 组
4、名 删除用户组 无 Su Su 账户名 A 将当前用户切换为用户 A 无 Chage Chage参数及对应内容账户名 设置用户管理规则-m 密码被更改前须等待的天数-M 一个密码最长的有效期限-E 账号将过期的时间-W 提前警告密码将过期的天数 Chattr Chattr+/-参数文件名称 限制/解除某文件的特殊设置 I 不可以更改 其中,在对系统有较高安全需求时,可以限制只有部分用户有权使用用于切换用户的 su 命令。Linux 系统中提供了用于限定该命令使用权限的 wheel 用户组,只有该组的用户才有权使用 su 命令,将准许使用 su 命令的用户添加到该组中,即可限制其它用户对该命令的
5、使用。2 文件管理文件管理 在 Linux 操作系统中,文件和目录的权限根据其所属的用户或用户组来划分:(1)文件所属的用户,即文件的创建者。(2)文件所属用户组的用户,即文件创建者所在的用户组中的其它用户。(3)其它用户,即文件所属用户组之外的其它用户。每个文件或者目录的拥有者以及管理员 root 用户,可以为上述 3 种用户或用户组设置读、写或可执行的权限。用户也可以通过改变文件所属的用户和组改变 3 类用户的权限。对文件夹设置 SGID 权限,任何在该目录中创建的文件和子目录都将与其父目录属于同样的用户组。这种管理有时是必要的,有时会带来一定的安全问题,因此在建立文件时要特别小心文件夹的
6、 SGID 权限位。另一个容易带来安全问题的文件是/home/*/.basheshistory(*表示某用户名)。为了便于重复输入很长的命令,该文件保存了此用户曾经使用的一定数目(系统默认为 500 或 1000)的命令。这样就暴露了一些重要信息,例如文件的路径,一些与用户身份有关的密码等,为攻击的黑客留下了可乘之机。可以通过设置/etc/profile 文件中的参数设置,减少保留的命令数目。表 2-2 中列出了用于文件管理和安全的一些相关命令及其参数。表 2-2 文件和权限管理的命令及其参数 命令 格式 用途 常用参数 mkdir mkdir参数及选项文件夹名 建立文件夹及子文件夹-p 直接
7、建立带有子文件夹的文件夹 rmdir rmdir 路径及文件夹名 删除文件夹 touch touch 路径及文件名 新建文件夹 vi vi 路径及文件名 编辑文件 cat cat 路径及文件名 查看文件内容 rm rm 路径及文件名 删除文件 ls-l ls-l 路径及文件名或文件夹名 查看文件的权限等详细信息或将文件夹中的文件信息列表 chmod chmod 数字或字符 路径及文件名或文件夹名 为文件或文件夹设置读、写、可执行权限 chown chown 用户 A 文件 将文件或文件夹的所属用户更改为用户 A chgrp chgrp 用户组 A 文件 将文件或文件夹的所属用户组更改为用户组
8、A tar tar 参数 包文件名(.tar)打包文件 1,文件 2 将一个或几个文件打包或解除打包-cvf 将文件打包-xvf 将包文件解包 gzip gzip 参数 包文件名 将一个包文件进行压缩-l 查看打包文件的详细信息 gunzip gunzip 参数 压缩包名(.tar.gz)将一个压缩包解压 附:chmod 命令有以下两种格式:命令有以下两种格式:格式格式 1:命令样例:chmod ugoa rwxs 文件名 最左面的一组参数,u 表示所属用户(user),g 表示所属用户组(group),o 表示其它用户(o ther),a 表示所有用户(all)等,表示对这些用户或用户组的权
9、限进行变更。中间一组参数表示要进行的操作,其中,+”表示增加权限,“”表示减少权限,“=”表示分配权限,同时将其它权限删除。最右面的一组参数表示要分配的权限,其中 r 表示允许读取,w 表示允许写入,x 表示允许执行,s 为 uid 和 gid。例如:root localhost child#chmod o-rx newfile 表示将其它用户对 newfile 的可读 r 与可执行 x 权限删除。关于各用户组对当前文件的权限,可以用 ls-l 命令进行查看:root localhost child#ls-l newfile -rwxr-xr-x 1 root root 19 12 月 13
10、10:58 newfile 其中第 1 位的-表示文件(d 表示文件夹),后面的每 3 位为一组,分别表示所属用户、用户组和其它用户的权限,每组的 3 位又分别表示该类用户的可读、可写和可执行权限。例如-rwxr-xr-x 表示用户 root 对 newfile 文件具有可读、可写、可执行的权限;root 所在的用户组 root 中的用户对 newfile 文件具有可读、可执行权限,不具有可写权限;其它用户对 newfile 文件具有可读、可执行权限,不具有可写权限。格式格式 2:命令样例:chmod nxyz 文件名 用这种形式也可以设置相关权限。其中 n 位 2 时表示设置 SGID,也可
11、以不设置;x、y、z 这 3 个数字分别表示所属用户、所属用户组以及其它用户的权限。各数字实际上是把读、写和执行 3 个权限位分别用二进制数表示,0 表示没有该权限,1 表示有该权限。这样一个二进制数 111 表示读写和执行权限都有,转换成十进制数就是 7。同理,5(即 101)便表示有读和执行的权限而没有写权限。例如:root localhost child#chmod 755 newfile 然后用 ls-l 命令查看文件权限:root localhost child#ls-l newfile -rwxr-xr-x 1 root root 19 12 月 13 11:02 newfile
12、3set uid,set gid,sticky bit 详解详解 setuid:设置使文件在执行阶段具有文件所有者的权限.典型的文件是/usr/bin/passwd.如果一般用户执行该文件,则在执行过程中,该文件可以获得root权限,从而可以更改用户的密码.(运行 passwd 时会去写/etc/passwd 和/etc/shadow,仅有 root 有写权限)。setgid:该权限只对目录有效.目录被设置该位后,任何用户在此目录下创建的文件都具有和该目录所属的组相同的组。sticky bit:该位可以理解为防删除位.一个文件是否可以被某用户删除,主要取决于该文件所属的组是否对该用户具有写权限
13、.如果没有写权限,则这个目录下的所有文件都不能被删除,同时也不能添加新的文件.如果希望用户能够添加文件但同时不能删除文件,则可以对文件使用 sticky bit 位.设置该位后,就算用户对目录具有写权限,也不能删除该文件。操作这些标志与操作文件权限的命令是一样的,都是 chmod。有两种方法来操作:1)chmod u+s temp-为 temp 文件加上 setuid 标志.(setuid 只对文件有效)chmod g+s tempdir-为 tempdir 目录加上 setgid 标志(setgid 只对目录有效)chmod o+t temp-为 temp 文件加上 sticky 标志(st
14、icky 只对文件有效)2)采用八进制方式.对一般文件通过三组八进制数字来置标志,如 666,777,644 等.如果设置这些特殊标志,则在这组数字之外外加一组八进制数字.如 4666,2777 等。用数值设定特殊权限,需要 4 位 8 进制数,第一个表示特殊权限,后三位表示基本权限。特殊权限这一组八进制数字三位的意义如下,abc a-setuid 位,如果该位为 1,则表示设置 setuid b-setgid 位,如果该位为 1,则表示设置 setgid c-sticky 位,如果该位为 1,则表示设置 sticky 设置完这些标志后,可以用 ls-l 来查看.如果有这些标志,则会在原来的执
15、行标志位置上显示.如 rwsrw-r-表示有 setuid 标志 rwxrwsrw-表示有 setgid 标志 rwxrw-rwt 表示有 sticky 标志 那么原来的执行标志 x 到哪里去了呢?系统是这样规定的,如果本来在该位上有 x,则这些特殊标志显示为小写字母(s,s,t).否则,显示为大写字母(S,S,T)。三、实验环境三、实验环境 安装了 Linux 内核操作系统的计算机。四、实验内容四、实验内容 任务一 账户和口令安全 1.查看和添加账户(1)在 X-Windows 窗口中单击鼠标右键,选择“新建终端”,输入下面的命令:rootlocalhost root#useradd myl
16、ist 利用 useradd 命令新建名为 mylist 的新账户。(2)输入命令行:rootlocalhost root#cat/etc/shadow 利用 cat 可以查看系统中的账户列表。用 su 命令切换到新建的 mylist 账户,重复步骤(2),检查 shadow 文件的权限设置是否安全。rootlocalhost root#su mylist mylist localhost root#cat/etc/shadow 问题问题 1:设置安全时,普通用户 mylist 应没有查看该系统文件的权限。在终端中出现的提示是:()2.添加和更改密码(1)在终端中输入:rootlocalhos
17、t root#passwd mylist 为新建账户添加密码。注意,系统管理员无需输入原来密码即可以利用 passwd 命令添加或改变任意用户的密码;但普通用户只可以改变自己的密码。问题问题 2:输入后在终端中出现的提示是:()输入密码时,Linux 系统不会将输入显示出来。3.设置账户管理 在终端中输入:rootlocalhost root#chage m 0-M 90 E 0-W 10 mylist 上述命令强制用户 mylist 首次登录时更改口令,同时还强制该用户以后每 90 天更改一次口令,并提前 10 天提示。4.账户的禁用与恢复(1)输入下列命令行,以管理员身份锁定新建的 myl
18、ist 账户,这样 mylist 用户将无权更改其密码:root localhost root#passwd-l mylist 问题问题 3:用 su 命令转入 mylist 账户时,root localhost root#su mylist mylistlocalhost root$passwd 系统将出现的提示是:()问题问题 4:输入下列命令行,检查用户 mylist 的当前状态:root localhost root#passwd-S mylist 系统将出现的提示是:()问题问题 5:输入下列命令行,将锁定账户解锁:root localhost root#passwd-u mylis
19、t 系统将出现的提示是:()5.建立用户组,将指定用户添加到用户组中(1)在终端中输入以下命令:root localhost root#groupadd mygroup 建立名为 mygroup 的用户组。(2)输入:root localhost root#groupmod-n mygroup1 mygroup 将新建的用户组更名为 mygroup1。Groupmod 还有其它功能,读者可自己尝试使用。(3)输入下列命令行,将新建用户 mylist 加入到新建的组 mygroup1 中 root localhost rootl#gpasswd-a mylist mygroup1 问题问题 6:
20、系统将出现的提示是:()(4)用下面的命令将 mylist 设置为该用户组的管理员:root localhost root#gpasswd A mylist mygroup1 (5)用 su 命令转换到 mylist 用户下,并将系统中的一个普通用户(test1)加入到 mygroup1 中(需新建用户 test1):root localhost root#su mylist mylist localhost root$gpasswd-a test1 mygroup1 问题问题 7:此时系统将出现的提示是:()注意:被设置为管理员组的用户可以将其它用户加入该组中,普通用户则没有此权限。6.为账
21、户和组相关系统文件加上不可更改属性,防止非授权用户获得权限。(1)在终端中输入下面的命令行(注意空格):root localhost/#chattr+i/etc/passwd 问题问题 8:系统出现下列提示()则证明已经为账户密码文件加上不可更改属性。(2)再次建立新用户 friend,root localhostl#useradd friend 问题问题 9:系统将出现以下提示:()问题问题 10:用同样的方法锁定/etc/shadow(用户口令加密文件)、/etc/group(用户组名列表)、/etc/gshadow(组密码文件),并观察此后建立用户和用户组时出现的状况,给出系统的提示:(
22、)(3)最后,输入下面的命令行去除掉上述文件夹的不可更改属性:root localhost/#chattr i/etc/passwd root localhost/#chattr i/etc/shadow root localhost/#chattr i/etc/group root localhost/#chattr i/etc/gshadow 7删除用户和用户组(1)输入下面的命令行,删除新建的用户:root localhost/#userdel test1 (2)输入下面的命令行,删除新建的用户组:root localhost/#groupdel mygroup1 部分用户和用户组的管理
23、也可以在 X-windows 下完成。任务二任务二 文件系统管理及安全文件系统管理及安全 1.新建文件夹和文件(1)在终端输入下面的命令行:root localhost root#mkdir myfolder 将在 root 目录下新建名为 myfolder 的文件夹。(2)用 mkdir 命令在 myfolder 文件夹下建立一个名为 child 的子文件夹:root localhost root#mkdir myfolder/child (3)用 cd 命令进入 child 文件夹下,并新建一个名为 newfile 的文件:root localhost root#cd myfolder/c
24、hild root localhost child#touch newfile 2 编辑文件(1)用 vi 命令编辑 newfile 文件,root localhost child#vi newfile 先按一下字母“i”进入“插入模式”,在“插入模式”下输入:This is a new file.(2)输入“:wq”,保存退出。3 查看文件内容和相关信息(1)在终端中输入下面的命令行,用 cat 命令查看文件内容:root localhost child#cat newfile 问题问题 11:屏幕上将显示出的内容是:()(2)用 ls-l 命令查看相关的文件信息,输入如下:ro ot lo
25、calhost child#ls-l newfile 问题问题 12:系统将出现的提示是:()4 设置文件的所属用户、用户组和权限设置文件的所属用户、用户组和权限(1)用 chmod 命令将 newfile 文件的访问权限设置为所属用户有读、写和执行的权限,用户组有读、执行的权限,其它用户没有任何权限。命令行如下:root localhost child#chmod 750 newfile 再次查看并记录用户权限:root localhost child#ls-l newfile 问题问题 13:系统将出现的提示是:()(2)新建用户 lcy1,并将用户 lcy1 加入 root 组。分别切换
26、到 lcy1 和 mylist 用户,尝试读、写操作并记录实验结果。步骤如下:lcy1 用户 root localhost child#su lcy1 lcy1 localhost child$cat newfile 问题问题 14:系统将出现的提示是:()lcy1 localhost child$vi newfile 问题问题 15:系统将出现的提示是:()mylist 用户 root localhost child#su mylist mylist localhost child$cat newfile 问题问题 16:系统将出现的提示是:()(3)将当前目录转到/home/mylist
27、下,并用 su 命令将当前用户改为 mylist。新建文件,命名为file,内容为 This is a file。并将其权限设置为 700,即所属用户有完全权限,其它用户则没有任何权限。(4)分别以 root 用户和 lcy1 用户访问并编辑该文件,记录结果。对于 root 用户 root localhost mylist#cat file 问题问题 17:系统将出现的提示是:()问题问题 18:root 用户可以用 Vi 编辑该文件吗?对于 lcy1 用户 root localhost mylistl#su lcy1 Icyl localhostlnylistl$cat file 问题问题
28、19:系统将出现的提示是:()(5)将目录切换到 root/myfolder/child 目录,输入下面的命令行,用 chown 命令将 newfile 的用户和用户组改为 lcy1:root localhost child#chown lcy1:lcy1 newfile 问题问题 20:再次用 ls-l 命令查看文件信息,root tocalhost child#ls-l newfile 系统将出现的提示是:()5 文件的打包备份和压缩文件的打包备份和压缩(1)在 child 文件夹中新建文件 newfile2。(2)用 tar 命令将 newfile 和 newfile2 打包为 bag.
29、tar。命令行如下:root localhost child#tar-cvf bag.tar newfile newfile2 用 ls-l 命令查看当前 child 文件夹中的文件列表,如下:root localhost child#ls-l 问题问题 21:系统将显示的结果是:()(3)用 gzip 命令将 bag.tar 压缩,再次查看 child 文件夹文件列表。root localhost child#gzip bag.tar root localhost child#ls-l 问题问题 22:系统将显示的结果是:()(4)用带有 l 参数的 gzip 命令查看压缩比例及压缩包的详细
30、信息,命令行及结果如下:root localhostchild#gzip-l bag.tar.gz 问题问题 23:系统将显示的结果是:()(5)用 mv 命令将压缩备份移动到 child 的父文件夹,即/root/myfolder:root localhost child#mv bag.tar.gz/root/myfolder(6)用 gunzip 命令解压缩,命令行及结果如下:root localhost myfolder#gunzip bag.tar.gz Lroot localhost myfolder#ls-l (7)用带有参数 xvf 的 tar 命令将文件包打开,命令行如下:ro
31、ot localhost myfolder#tar-xvf bag.tar 6 设置应用于目录和文件的设置应用于目录和文件的 SGID 和和 SUID 权限位权限位(1)切换到用户 mylist,并转入/home/mylist。(2)建立文件夹 test,并将其权限设置位分别设置为 2777,即带有 gid 位且所有用户都有读、写和执行权限。命令行如下:mylist localhost mylist$mkdir test mylist localhost mylistl$chmod 2777 test (3)进入 test 文件夹并切换到 root 用户,新建名为 file1 的文件:root
32、 localhost test$touch file1 (4)查看 file1 文件的相关信息,注意该文件的所属组:root localhost test#ls-l file1 问题问题 24:系统将显示的结果是:()对文件夹设置了 SGID 权限后,任何在该目录中创建的文件和子目录都将与其父目录属于同样的用户组。问题问题 25:file1 文件所属的组是()(5)当一个具有执行权限的文件设置 SUID 权限后,用户执行这个文件时将以文件所有者的身份执行。问题问题 26:在/home/mylis/test 目录下新建文件 test2。然后对该文件设置 SUID 权限位,并设置为文件所有者拥有所
33、有权限,同组和其他用户只有读和执行的权限。设置好后用 ls-l 命令查看文件 test2 的属性。将所需的所有命令和输出结果记录下来:()7 减少可重复命令的个数减少可重复命令的个数(1)查看/home/lcy1/.bash_history 文件。该文件保存了该账户近期内一定数量使用过的命令。如下:root localhost myfolder#cat/home/lcy1/.bash_history 问题问题 27:系统将显示的结果是:()可以看出,该文件显示了关于用户的大量信息,例如其组管理员身份以及某些文件的路径等。因此,保留太多使用过的命令是不安全的。(2)编辑文件/etc/profil
34、e,将文件 HOSTNAME=/bin/hostname HISTSIZE=1000 部分中的数字 1000 改为 5,即对所有用户只保留当前时刻之前曾经使用过的 5 个命令。(3)切换到用户 lcy1,然后输入命令 history-c 和 history-w。(4)重复步骤(1),比较结果。五、实验报告要求五、实验报告要求 根据上面介绍的 Linux 操作系统的各项安全性实验要求,回答提出的各个问题。实验报告命名要求:实验报告命名要求:请统一以“实验实验 X+学号学号+姓名姓名”命名。文件格式最好是 PDF 格式或者 WORD 格式,请不要发送压缩包。实验报告于下周四前发送到 。邮件的主题也
35、请统一以“实验实验 X+学号学号+姓名姓名”命名。附录:附录:vi 常用命令总结常用命令总结 vi编辑器是任何Unix及Linux系统下标准的编辑器,他的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下他的用法和一小部分指令。由于对 Unix 及 Linux 系统的任何版本,vi编辑器是完全相同的,因此您能够在其他任何介绍 vi 的地方进一步了解他。Vi 也是 Linux 中最基本的文本编辑器,学会他后,您将在 Linux 的世界里畅行无阻。1、vi 的基本概念 基本上vi能够分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(las
36、t line mode),各模式的功能区分如下:1)命令行模式 command mode)控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入 Insert mode 下,或到 last line mode。2)插入模式(Insert mode)只有在 Insert mode 下,才能够做文字输入,按ESC键可回到命令行模式。3)底行模式(last line mode)将文档保存或退出 vi,也能够配置编辑环境,如寻找字符串、列出行号等。但是一般我们在使用时把 vi 简化成两个模式,就是将底行模式(last line mode)也算入命令行模式 command mode)。2、vi 的
37、基本操作 a)进入 vi 在系统提示符号输入 vi 及文档名称后,就进入 vi 全屏幕编辑画面:$vi myfile 但是有一点要特别注意,就是您进入 vi 之后,是处于 命令行模式(command mode),您要转换到插入模式(Insert mode)才能够输入文字。初次使用 vi 的人都会想先用上下左右键移动光标,结果电脑一直哔哔叫,把自己气个半死,所以进入 vi 后,先不要乱动,转换到插入模式(Insert mode)再说吧!b)转换至插入模式(Insert mode)编辑文档 在命令行模式(command mode)下按一下字母i就能够进入插入模式(Insert mode),这时候您
38、就能够开始输入文字了。c)Insert 的转换 您现在处于 插入模式(Insert mode),您就只能一直输入文字,假如您发现输错了字!想用光标键往回移动,将该字删除,就要先按一下ESC键转到命令行模式(command mode)再删除文字。d)退出 vi 及保存文档 在命令行模式(command mode)下,按一下:冒号键进入Last line mode,例如::w filename(输入 w filename将文章以指定的文档名 filename 保存):wq(输入wq,存盘并退出 vi):q!(输入 q!,不存盘强制退出 vi)3、命令行模式(command mode)功能键 1).
39、插入模式 按i转换进入插入模式insert mode,按i进入插入模式后是从光标当前位置开始输入文档;按a进入插入模式后,是从现在光标所在位置的下一个位置开始输入文字;按o进入插入模式后,是插入新的一行,从行首开始输入文字。2).从插入模式转换为命令行模式 按ESC键。3).移动光标 vi 能够直接用键盘上的光标来上下左右移动,但正规的 vi 是用小写英文字母h、j、k、l,分别控制光标左、下、上、右移一格。按ctrl+b:屏幕往后移动一页。按ctrl+f:屏幕往前移动一页。按ctrl+u:屏幕往后移动半页。按ctrl+d:屏幕往前移动半页。按数字0:光标移动到本行起始处。按:移动到光标所在行
40、的行首 按$:移动到光标所在行的行尾。按H:光标移动到屏幕最上方那一行 按M:光标移动到屏幕中央那一行 按L:光标移动到屏幕最下方那一行 按G:光标移动到屏幕最后一行 按w:光标跳到下个字的开头 按e:光标跳到下个字的字尾 按b:光标回到上个字的开头 按#l:光标移到该行的第#个位置,如:5l,56l。4).删除文字 x:每按一次,删除光标所在位置的后面一个字符。#x:例如,6x表示删除光标所在位置的后面6 个字符。X:大写的 X,每按一次,删除光标所在位置的前面一个字符。#X:例如,20X表示删除光标所在位置的前面20 个字符。dd:删除光标所在行。#dd:从光标所在行开始删除#行 d1G:
41、删除光标到第 1 行的所有内容 dG:删除光标到最后一行的所有内容 5).复制 yw:将光标所在之处到字尾的字符复制到缓冲区中。#yw:复制#个字到缓冲区 yy:复制光标所在行到缓冲区。#yy:例如,6yy表示拷贝从光标所在的该行往下数6 行文字。y1G:复制光标到第 1 行的所有内容 yG:复制光标到最后一行的所有内容 p:将缓冲区内的字符贴到光标所在位置。注意:任何和y有关的复制命令都必须和p配合才能完成复制和粘贴功能,小写 p 为将复制或剪切的内容粘贴在光标下一行,大写 P 为粘贴在上一行。6).替换 r:替换光标所在处的字符。R:替换光标所到之处的字符,直到按下ESC键为止。7).回复
42、上一次操作 u:假如您误执行一个命令,能够马上按下u,回到上一个操作。按多次u能够执行多次回复。8).更改 cw:更改光标所在处的字到字尾处 c#w:例如,c3w表示更改 3 个字 9).跳至指定的行 ctrl+g列出光标所在行的行号。#G:例如,15G,表示移动光标至文章的第 15 行行首。4、Last line mode 下命令简介 在使用last line mode之前,请记住先按ESC键确定您已处于command mode下后,再按:冒号即可进入last line mode。A)列出行号 set nu:输入set nu后,会在文档中的每一行前面列出行号。set nonu:取消行号 B)
43、跳到文档中的某一行#:#号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字 15,再回车,就会跳到文章的第 15 行。C)查找字符 /关键字:先按/键,再输入您想寻找的字符,假如第一次找的关键字不是您想要的,能够一直按n会往后寻找到您要的关键字为止。?关键字:先按?键,再输入您想寻找的字符,假如第一次找的关键字不是您想要的,能够一直按n会往前寻找到您要的关键字为止。D)保存文档 w:在冒号输入字母w就能够将文档保存起来。w!:强制保存 w:文件名 另存为.n1,n2 w:文件名 将第 n1 行与第 n2 行之间的内容另存为.E)离开 vi q:按q就是退出,假如无法离开 vi,能够在q后跟一个!强制离开 vi。qw:一般建议离开时,搭配w一起使用,这样在退出的时候还能够保存文档。e!:撤消所有编辑 ZZ:保存并退出 r:文件名 读取另一个文档的内容,内容追加到光标所在行之后 !:命令 暂时离开 vi 编辑器,并在 shell 中执行命令