目录
第五章 vi 和 vim 编辑器
5.1 vi 和 vim 的基本介绍
- vi 是linux系统内置的文本编辑器 ,而 vim 可以看作是 vi 的一个升级版。
- vim 具有程序编辑的能力,可以看做是 Vi 的增强版本,可以主动的以字体颜色辨别语法的正确性,方便程序设计。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
- 这两款的快捷键和用法都差不多,我们这里主要就以 vim 来学习。
5.2 vi 和 vim 常用的三种模式
5.2.1 正常模式
以 vim 打开一个文档就直接进入正常模式了(这是默认的模式)。在这个模式中, 你可以使用『上下左右』按键来移动光标,你可以使用『删除字符』或『删除整行』来处理文档内容, 也可以使用『复制、粘贴』来处理你的文件数据。
5.2.2 插入模式 (编辑模式)
按下 i, I, o, O, a, A, r, R 等任何一个字母之后才会进入编辑模式, 一般来说按 i 即可.
5.2.3 命令行模式
敲击键盘左上角 esc, 然后再输入一个冒号 “ : ” 进入命令函模式。这个模式当中, 可以提供你相关指令,完成读取、存盘、替换、离开 vim 、显示行号等的动作则是在此模式中达成的!
5.2.4 快速入门案例
使用 vim 编写一个 Hello.java 程序,编写之后完成保存操作。
首先使用 Xshell 远程连接上Linux虚拟机,输入命令 vim Hello.java,敲击回车键。
vim Hello.java 这个命令的意思是:我们要用 vim 这款编辑工具,创建 并 编辑 一个文件名为Hello.java 文件。(如果这个文件不存在则创建并编辑,如果存在则直接编辑)
此时就进入到编辑器的正常模式, 这个时候输东西是没有任何反应的。 我们需要输入 i 或者 (I, o, O, a, A, r, R) 等任意一个字符进入 插入模式(编辑模式 )。
当我们输入 i 之后这里就显示为 插入模式(编辑模式 )。这个时候我们就可以开始写代码了。
现在我们在文件里写了几行简单的java代码,我们需要保存文件内容呢。
那么问题来了,我们要怎么保存文件内容呢。首先要从插入模式切换到命令函模式。
保存步骤:先切换到命令行模式,敲击键盘左上角 esc键,接着输入一个冒号 “ : ”
这样就切换到命令行模式。然后再输入 wq,敲击回车。这样就保存成功了。
这里的 wq 表示 保存 并 退出
:wq 表示 保存并推出
:q 表示 退出,不保存
:q! 表示 强制退出,不保存
此时此刻,在我们的目录这边就得到了Hello.java文件。
如果还想修改这个文件的话,再输入 vim Hello.java 去编辑这个文件。
这个时候再打开显示的内容就是原先我们保存的内容。
5.3 vi 和 vim 各种模式的相互切换
但我在命令行行输入 vim Hello.java (要编辑的文件名) 的时候, 就进入了一般模式(正常模式),如果我们要进入编辑模式,需要输入 i 或者 a。
如果要从编辑模式切换到一般模式,需要敲击键盘左上角 esc键。
如果要从一般模式切换到命令模式,需要输入冒号 “ : ” 或者 “ / ”。
如果要从命令模式切换到一般模式,需要敲击键盘左上角 esc键。
5.4 vi 和 vim 快捷键
5.4.1 vi 和 vim 快捷键使用练习
1) 拷贝当前行 yy , 拷贝当前行向下的 5 行 5yy,并粘贴(输入 p)。(一般模式下输入)
2) 删除当前行 dd , 删除当前行向下的 5 行 5dd (一般模式下输入)
3) 在文件中查找某个单词 [命令行下 /关键字 , 回车 查找 , 输入 n 就是查找下一个 ] (命令行模式下输入)
4) 设置文件的行号,取消文件的行号.[命令行下 : set nu 和 :set nonu] (命令行模式下输入)
5) 编辑 /etc/profile 文件,在一般模式下, 使用快捷键到该文档的最末行[G]和最首行[gg] (一般模式下输入)
6) 在一个文件中输入 "hello" ,在一般模式下, 然后又撤销这个动作 u (一般模式下输入)
7) 编辑 /etc/profile 文件,在一般模式下, 并将光标移动到 , 输入 20,再输入 shift+g (一般模式下输入)
1) 拷贝当前行 yy , 拷贝当前行向下的 5 行 5yy,并粘贴(输入 p)。(一般模式下输入)
先输入 yy 拷贝当前行,在输入 p 进行粘贴。
2) 删除当前行 dd , 删除当前行向下的 5 行 5dd (一般模式下输入)
连续敲击两次 d 键删除当前行。
3) 在文件中查找某个单词 [命令行下 /关键字 , 回车 查找 , 输入 n 就是查找下一个 ] (命令行模式下输入)
首先输入 “ / ” 进入到 命令行模式,然后输入要搜索的关键子,敲击回车键。
输入 n 查找下一个关键字,如果没有下一个关键字,就会回到第一个关键字。
如果想要重新输入关键字,再输入 “ / ” 即可,他会把原先的关键字给清掉。
当找到最后一个关键子,编辑器下方就会出现提示。
4) 设置文件的行号,取消文件的行号。[命令行下输入 :set nu 显示行号, :set nonu 取消行号] (命令行模式下输入)
输入 “ : ” 进入命令行模式,然后输入 set nu。显示行号。
输入 “ : ” 进入命令行模式,然后输入 set nonu。退出显示行号。
5) 编辑 /etc/profile 文件,在一般模式下, 使用快捷键到该文档的最末行[G]和最首行[gg] (一般模式下使用)
在命令行输入 vim /etc/profile 打开这个文件。
在一般模式下输入 大写的G 光标就会移动到文本的最后一行。
在一般模式下输入 gg 光标就会移动到文本的第一行。
6) 在一个文件中输入 "hello" ,在一般模式下, 输入 u 就可以进行撤销这个动作 (一般模式下使用)
这里的撤销就相当于windows编辑器的 ctrl + z
首先输入 vim hello.java 进入编辑器,输入 i 进入编辑模式。输入hello,ok。
此时如果你后悔了,首先切换到 一般模式,然后输入 u 键 进行撤销。
此时我们输入小写的u,刚才输入的hello,ok 就被撤销掉了
7) 编辑 /etc/profile 文件,在一般模式下, 并将光标移动到 , 输入 20,再输入 shift+g (一般模式下使用)
首先输入 vim /etc/profile 编辑文件。然后进入命令行模式,输入 :set nu 显示行号。
接着再回到一般模式,输入 20 ,在输入 shift + g
回到一般模式,输入 20 ,在输入 shift + g 。这个时候的光标就显示到20行了
5.5 vim 的其他快捷键
第六章 Linux开机、重启和用户登录注销
6.1 关机 & 重启命令
6.1.1 基本介绍
1) shutdown –h now
立该进行关机
2) shudown -h 1 "hello, 1 分钟后会关机了"
在一分钟后执行关机,并且像每个登录这台虚拟机的用户提示信息 “hello, 1 分钟后会关机了”
3) shutdown –r now
现在重新启动计算机
4) halt
立该进行关机,作用和上面一样。
5) reboot
现在重新启动计算机
6) sync
把内存的数据同步到磁盘.
6.1.2 注意细节
- 不管是重启系统还是关闭系统,首先要运行 sync 命令,把内存中的数据写到磁盘中
- 目前的 shutdown/reboot/halt 等命令均已经在关机前进行了 sync , 老韩提醒: 小心驶得万年船
6.1.3 命令演示
这里可使用 Xshell 远程连接Linux虚拟机,也可以直接使用Linux虚拟机自带的终端进行操纵。
这里就选者Linux自带的终端进行演示。
1、shutdown -h now
首先登录linux,打开终端,输入命令 shutdon -h now,敲击回车。
现在就关机了
2、reboot
首先登录linux,打开终端,输入命令 reboot ,敲击回车。
这个时候就马上重启了。
6.2 用户登录、注销
6.2.1 基本介绍
- 登录时尽量少用 root 帐号登录,因为它是系统管理员,最大的权限,避免操作失误。可以利用普通用户登录,登录后再用 “ su - 用户名 ”(需要输入root用户的密码) 命令来切换成系统管理员身份.
- 在提示符下输入 logout 即可注销用户,回到上一个用户。如果没有上一个用户直接退出连接
首先使用 tom 用户登录远程连接,输入用户民和密码。
此时没有上一个用户,直接退出远程连接。
6.2.2 使用细节
1、logout 注销指令在图形运行级别无效,在运行级别3(无界面的情况下) 下有效.
这里的 exit 退出的话也只是关闭我们的终端,而不是真正的退出系统。
2、运行级别这个概念,后面给大家介绍
第七章 用户管理
7.1 基本介绍
Linux 系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统
7.2 添加用户
7.2.1 基本语法
添加用户:useradd 用户名
7.2.2 应用案例
添加一个用户 milan
7.2.3细节说明
- 当创建用户成功后,会自动的创建和用户同名的家目录 。 默认该用户的家目录在 /home/milan,登录后默认会到这个目录下。
- 也可以通过 useradd -d 指定目录 新的用户名,给新创建的用户指定家目录。
7.3 指定/修改密码
7.3.1基本语法
设置用户密码:passwd 用户名
注意:如果没有写用户名,默认就是给当前用户修改密码。
7.3.2应用案例
给 milan 指定密码:passwd milan
补充,显示当前用户所在的目录:pwd
如果要修改用户密码,重新输入 passwd 用户名。(修改的时候,当前登录的账号必须是root 或 被修改的账号)
7.4 删除用户
7.4.1 基本语法
删除用户:userdel 用户名
7.4.2 应用案例
1、删除用户 milan,但是会保留家目录:userdel milan
登录milan账号,进入 /home 目录,输入命令:userdel milan。可以发现权限不足,这里删除不了milan用户的。自己是不能够删掉自己的,因为用户删除是一件大事情,如果普通用户都能删除那就麻烦了,当然你自己删除自己更不可能。此时我们就需要切换到root用户。
首先我们断开连接,使用 root 登录。
进入 /home 目录,使用 userdel milan 删除 milan 用户。使用这个命令删除用户之后,家目录时会保留的。
此时如果再共milan账号进行登录的话,就无法登录了。因为你这个用户都没有,来怎么登录呢。
2、删除用户以及用户主目录, 比如 tom: userdel -r tom
这步操作一定要慎重。
7.4.3 细节说明
是否保留家目录的讨论? 一般情况下,我们建议保留
7.5 查询用户信息指令
7.5.1基本语法
查询用户信息:id 用户名
7.5.2 应用实例
请查询 root 用户的信息 、请查询 king 用户的信息、请查询 milan 的用户信息。
7.5.3 细节说明
当用户不存在时,返回无此用户
7.6 切换用户
7.6.1 介绍
在操作 Linux 中,如果当前用户的权限不够,可以通过 su - 指令,切换到高权限用户,比如 root
7.6.2 基本语法
切换用户:su - 切换用户名
7.6.2 应用实例
创建一个用户 jack, ,指定密码,然后切换到 jack。
从 jack 用户切换到 root 用户
7.6.4 细节说明
1、从权限高的用户切换到权限低的用户,不需要输入密码,反之需要。
2、当需要返回到原来用户时,使用 exit/logout 指令
7.7 查看当前用户信息
7.7.1 基本语法
查看第一次登录时用户的信息:whoami/ who am i (这里加不加空格都可以)
当我们切换到 jack 用户的使用显示也是 root 用户的信息。
7.8 用户组
7.8.1 介绍
类似于角色,系统可以对有共性(相同权限)的多个用户进行统一的管理。
相当于权限的集合,一个用户组里面可以拥有多个权限。如果多个用户需要同时拥有相同的权限,就不需要每个用户赋予一个一个的权限。直接让用户属于这个 这个用户组里面就可以。
7.8.2 新增组
新增组 : groupadd 组名
如果没有任何提示,就代表 wudang组 添加成功了。
在 Linux 下面没有任何提示信息 一般来讲就代表添加成功了。如果有提示信息往往是错的。
在Linux有一句话(没有消息就是最好的消息)
7.8.3 删除组
删除组:groupdel 组名
7.8.4 增加用户时直接加上组
1、 指令(基本语法) : useradd –g 用户组 用户名
有些小伙伴肯能就有问题,前面加一个用户没有给他指定组,那默认是到那个组呢。
如果添加用户的时候没有指定组,则会默认生成一个跟这个用户名相同的组,并且把这个用户放到这个组里面去。
我们可以查看用户的信息,可以看到,king用户是属于 king组 里面的。
一般情况下,我们还是会在创建的时候给他指定一个组的。
2、案例演示
增加一个用户 zwj, 直接将他指定到 wudang
步骤一:首先添加一个 wudang 用户组
指令:groupadd wudang
步骤二:新增一个用户,同时把 zwj 放到 wudang 这个组。
指令:useradd -g wudang zwj
7.8.5 修改用户的组
1、指令(基本语法):usermod –g 用户组 用户名
2、案例演示
创建一个组 mojiao 把 zwj 放入到 mojiao
步骤一:创建用户组 mojiao
指令:groudadd mojiao
步骤二:修改 zwj用户 的组为 mojiao
指令:usermod -g mojiao zwj
此时zwj所在的组已经是 mojiao了,就不再是 wudang 的人了。就拥有了 mojiao 组的权限,就不再拥有 wudang 这个组的权限了。
7.9 用户和组相关文件
7.9.1 /etc/passwd 文件
用户(user)的配置文件,记录用户的各种信息
每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录 Shell
口令:一般是加密的,用x代替。
7.9.2 /etc/shadow 文件
口令的配置文件
每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
现在我们为 zwj 设置密码,再次打开 /etc/shadow文件。
7.9.3 /etc/group 文件
组(group)的配置文件,记录 Linux 包含的组的信息
每行含义:组名:口令:组标识号:组内用户列表