vim和vi的基本介绍
所有的 Linux 系统都会内建 vi 文本编辑器。 Vim 具有程序编辑的能力,可以看做是Vi的增强版本,可以主动的以字体颜色辨别 语法的正确性,方便程序设计。代码补完、编译及错误跳转等方便编程的功能特别 丰富,在程序员中被广泛使用。
vim和vi的常用的三种模式
正常模式:
- 以 vim 打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中, 你可以使用 『上下左右』按键来移动光标,你可以使用『删除字符』或『删除整行』来处理档案内容, 也可以使用『复制、贴上』来处理你的文件数据。
插入模式:
- 按下i, I, o, O, a, A, r, R等任何一个字母之后才会进入编辑模式, 一般来说按i即可
命令行模式:
- 在这个模式当中, 可以提供你相关指令,完成读取、存盘、替换、离开 vim 、显示行号等的 动作则是在此模式中达成的!
vi和vim的基本使用
使用vim Hello.java 对Hello.java进行编辑
vim和vi模式的相互切换
vim和vi快捷键的使用
快捷键练习使用:
-
- 拷贝当前行 yy , 拷贝当前行向下的5行 5yy,并粘贴。
-
- **删除**当前行 dd , 删除当前行向下的5行 5dd *
-
- 在文件中查找某个单词 [命令行下 /关键字 , 回车 查找 , 输入 n 就是查找下一个 ]
-
- 设置文件的行号,取消文件的行号.[命令行下 : set nu 和 :set nonu]
-
- 编辑 /etc/profile 文件,使用快捷键到底文档的最末行[G]和最首行[gg]
-
- 在一个文件中输入 “hello” ,然后又撤销这个动作 u
-
- 编辑 /etc/profile 文件,并将光标移动到 20行 shift+g
-
- 更多的看整理的文档
基本的指令
关机&重启命令
基本介绍
shutdown -h now 立即进行关机
shutdown -h 1 “hello,一分钟之后关机”
shutdown -r now 现在重启计算机
halt 关机,作用和上面一样
reboot 现在重新启动计算机
sync 把内存的数据同步到磁盘中
注意细节
不管是重启系统还是关闭系统,首先要运行sync命,把内存中的数据写到磁盘中
用户管理
基本介绍: 1) 登录时尽量少用root帐号登录,因为它是系统管理员,最大的权限,避免操作失误。可 以利用普通用户登录,登录后再用”su - 用户名’命令来切换成系统管理员身份. 2) 在提示符下输入 logout 即可注销用户
在命令行里注销用户
直接输入logout(使用细节:logout注销指令在图形界面运行级别无效,在运行级别3有效)
添加用户
基本语法
useradd [选项] 用户名
cd 表示change directory,是切换目录
应用案例
1)添加一个用户xiaoming
细节说明
1)当创建用户成功后,会自动的创建和用户同名的家目录
2)也可以通过useradd -d指定目录 新的用户名,给新创建的用户指定家目录
修改/指定密码(在工作中密码必须复杂)
指定密码
修改密码
删除用户
基本语法
userdel 用户名
引用案例
1)删除用户xm,但是要保留家目录
2)删除用户xh以及用户主目录
细节:在删除用户时,我们一般不删除家目录
查询用户信息
基本语法
id 用户名
应用示例:查询root用户信息
如果用户不存在,则返回无此用户
切换用户
su - 切换用户名
应用实例
1)创建一个用户zf,指定密码,然后切换到zf
从普通用户切换回root用户两种方式
1)
2)
细节说明
1)从权限高的用户切换到权限低的用户,不需要输入密码,繁殖需要。
2)当需要返回到用户时,使用exit指令
查看当前用户/登录用户
- 基本语法
whoami / who am I
用户组
介绍:类似于角色,系统可以对共性的多个用户进行统一的管理。
增加组
groupadd 组名
案例演示(创建一个组)
删除组
指令(基本语法)
groupdel 组名
案例演示
增加用户时直接加上组
-
指令(基本语法)
useradd -g 用户组 用户名
案例演示
增加一个用户zwj,直接将zwj指定到wudang
步骤如下演示
修改用户组
指令(基本语法)
usermod -g 用户组(新的用户组) 用户名
案例演示
创建一个shaolin组,将zwj修改到shaolin
Linux实操篇 实用指令
指定运行级别(七个级别)
运行级别的示意图
切换到指定运行级别的指令
基本语法
init[0123456]
应用实例
案例1:通过init来切换不同的运行级别,比如从5----->3,然后关机
init 3
init 5
init 0
指定运行级别
- 面试题
如何找回root密码,如果不小心忘记了root密码,怎么找回?
思路:进入到单用户模式,然后修改root密码。因为进入单用户模式,root不需要密码就可以登录。
演示
开机 —>在引导时输入 回车键 ----->看到一个界面输入 e ---->看到一个新的界面,选中第二行(编辑内核)
再输入 e ---->在这一行的最后输入 1 ,再输入回车键 ----->再次输入b,这时就进入了单用户模式 再用paswd root进行更改密码(上面的图片没有截完整)
2)请设置我们的运行级别,Linux运行后,直接进入到命令行界面,即进入到3运行级别vim /etc/inittab
将id:initdefault:这一行中的数字,5这个数改成3即可
帮助指令
介绍
当我们对某个指令不熟悉时,我们可以使用Linux提供的帮助指令来了解指令的使用方法。
man基本语法
- man[命令或配置文件](功能描述:获得帮助信息)
应用实例
案例:查看ls命令的帮助信息
help指令
-
基本语法
-
help 命令(功能描述,获得shell内置命令的帮助信息)
-
应用实例
案例:查看cd命令的帮助信息
文件目录类
目录结构的基本介绍
pwd指令
基本语法
pwd(功能描述:显示当前工作目录的绝对路径)
应用案例
- 案例:显示当前工作目录的绝对路径
ls指令
基本语法
ls [选项] [目录或是文件]
常用选项
-a :显示当前目录所有的文件和目录,包括隐藏的。
-l :以列表的方式显示信息
应用实例
案例:查看当前目录所有内容信息
cd指令
基本语法
- cd [参数] (功能描述:切换到指定目录)
常用参数
- 绝对和相对路径
重点是脑海中要有一个目录树
cd ~ 或者cd: 回到自己的家目录(home目录)
cd ..回到当前目录的上一级目录
思考题:
1)当前工作目录是/root,我们希望进入到/home下
绝对路径:/home,即从根目录开始定位。
相对路径:. ./home(. .代表回到上级目录,然后再去找到home目录,从当前工作目录开始定位到需要的目录去)
应用实例
案例1:使用绝对路径切换到root目录
cd /root
案例2:使用相对路径切换到/root目录
这里我们要知道该用户目前在哪个目录下,才能写出这个指令,假设在/usr/lib
cd ../../root
非常重要:. .代表的是上级目录(在相对路径中)
cd ../home
案例3:表示回到当前目录的上一级目录
cd ..
案例4:回到家目录
cd
cd ~
mkdir指令
- mkdir指令用于创建目录(make directory)
基本语法
mkdir [选项] 要创建的目录
案例
一次性创建单个目录
在home目录下创建pig目录
一次性创建多级目录
在home目录下同时创建animal,同时创建tiger,记住创建多级目录要带上-p这个选项
rmdir指令
介绍
rmdir 指令删除空目录
应用实例
- 案例一:删除一个目录 /home/pig
使用细节
rmdir删除的是空目录,如果目录下有内容时无法删除。
提示:如果需要删除的非空目录,如要使用rm -rf要删除的目录
touch指令
介绍
- touch指令创建空文件
基本语法
touch 文件名称(后面可以接多个文件名,用于创建多个文件)
应用实例
- 案例一:创建一个空的hello.txt
- 案例二:创建多个文件夹
cp指令(重要)
介绍
- cp指令拷贝文件到指定目录(cp就是copy)
基本语法
cp [选项] source dest (source就是源文件的位置,dest就是要拷贝的目标文件的位置)
常用选项
-r:递归复制整个文件夹
应用实例
-
案例一:将/home/aaa.txt拷贝到/home/bbb目录下面
-
案例二:递归复制整个文件夹,举例
将/home/test整个目录拷贝到/home/zwj目录(用-r表示递归复制)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oGTdqVtO-1622193023842)(…/…/…/AppData/Roaming/Typora/typora-user-images/image-20210525171619686.png)]
使用细节
- 强制复制不提示方法:\cp
技术小技巧
可以通过 上下箭头键,调出原来使用过的指令。
rm指令
基本介绍
rm指令移除文件或目录
基本语法
rm [选项] 要删除的文件或目录
常用选项
-r:递归删除整个文件夹
-f:强制删除不提示
应用实例
案例一:将/home/aaa.txt删除
案例二:递归删除整个文件夹/home/bbb
- 使用细节
强制删除不提示的方法:带上-f参数即可
mv指令
基本介绍
mv移动文件与目录或重命名(move)
基本语法
mv oldNameFile newNameFile (功能描述:重命名)可以理解为,把当前文件夹下的oldNameFile,移动到当前目录下面,发现已经有了,就是重名了
mv/temp/movefile/targetFolder (功能描述,移动文件)
应用实例
案例一:将 /home/aaa.txt文件 重新命名为pig.txt
案例二:将/home/pig.txt文件移动到 /root目录下
cat指令
基本介绍
cat 查看文件内容,是以只读的方式打开
基本语法
cat [选项] 要查看的文件
常用选项
-n : 显示行号
应用实例
案例一:/etc /profile 文件内容,并显示行号
使用细节
cat只能浏览文件,而不能修改文件,为了浏览方便,一般会带上 管道命令 | more
cat 文件名 | more[分页浏览]
more指令
基本介绍
more指令是一个基于VI编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。
more指令中内置了若干快捷键,详见操作说明。
基本语法
more 要查看的文件
操作说明
操作 | 功能说明 |
---|---|
空白键(space) | 代表向下翻页 |
Enter | 代表向下翻[一行] |
q | 代表立刻离开more,不再显示文件内容 |
Ctrl+F | 向下滚动一屏 |
Ctrl+B | 返回上一屏 |
= | 输出当前的行号 |
:f | 输出文件名和当前行的行号 |
less指令
基本介绍
less指令用来分屏查看文件的内容,它的功能与more指令类似。但是比more指令更加强大,支持各种显示终端。less指令在显示文件内容时,并不是将整个文件加载之后才显示,而是根据现实需要加载内容,对于显示大型文件具有较高的效率。
基本语法
less要查看的文件
操作说明
操作 | 功能说明 |
---|---|
空白键 | 向下翻动一页 |
[pagedown] | 向下翻的一页 |
[pageup] | 向上翻动一页 |
/字串 | 向下搜寻[字串]的功能:n:向下查找 N:向上查找 |
?字串 | 向上搜寻[字串]的功能:n:向上查找 N:向下查找 |
q | 离开less这个程序 |
应用实例
案例:采用less查看一个大文件文件/opt/金庸-射雕英雄传txt精校本.txt
>指令和>>指令
基本介绍
>输出重定向 和>>追加(追加到文件末尾)
输出重定向:会将原来的文件内容覆盖
追加:不会覆盖原来的文件的内容而是追加到文件的尾部
基本语法
1)ls -l > 文件 (功能描述:列表内容写入到文件a.txt中(覆盖写))
- ls -al >> 文件 (功能描述:列表内容追加入到文件a.txt末尾)
说明:ls -l > a.txt,将ls -l显示的内容覆盖写入到a.txt文件中,如果该文件不存在则创建该文件,反之,则覆盖
- cat 文件1> 文件2 (功能描述:将文件1内容覆盖到文件2)
4)echo “内容” >> 文件
应用实例
案例一:将/home目录下的文件列表写入到/home/info.txt中
案例二:将当前日历信息追加到/home/mycal文件中[提示cal]
echo指令
基本内容
echo输出内容到控制台
基本语法
echo [选项] [输出内容]
应用实例
案例:使用echo指令输出环境变量 ,输出当前的环境的路径。
案例:使用echo指令输出hello,world!
head指令
基本说明
head用于显示文件的开头部分,默认情况下head显示文件的前10行内容
基本语法
head 文件 (功能描述:查看文件的头10行内容)
head -n 5 文件 (功能描述:查看文件的头5行内容,5可以是任意数)
应用实例
案例:查看 /etc/profile的前面5行代码
tail指令
基本介绍
tail用于输出文件中末尾的内容,默认情况下tail显示文件的后10行内容。
基本语法
tail 文件 (功能描述:查看文件后10行内容)
tail -n 5 文件 (功能描述:查看文件的后5行内容,5可以是任意数)
tail -f 文件 (功能描述:实时追踪该文档的所有更新)(工作中经常使用)
Ctrl+c退出追踪
使用示例
案例一:查看/etc/profile最后5行的代码
案例二:实时监控mydate.txt,看看到文件有变化时,是否会看到,实时的追加日期
ln指令(了解)
基本介绍
软链接也叫符号链接,类似于windows里面的快捷方式,主要是存放了链接其他文件的路径
基本语法
ln -s [源文件或目录] [软链接名] (功能描述:给源文件创建一个软连接)
应用实例
案例1:在/home目录下创建一个软链接linkToRoot,连接到/root目录
案例2:删除软链接linkToRoot
细节说明
当我们使用pwd指令查看目录时,仍然看到的是软链接所在目录。
history指令
基本介绍
查看已经执行过的命令,也可以执行历史指令
基本语法
history (功能描述:查看已经执行过的历史命令)
histroy number (显示最近number条指令)
!number (执行第number条指令)
应用实例
案例一:显示所有的历史命令
案例二:显示最近使用的10个命令
案例三:执行历史编号为5的指令
时间日期类相关的指令
date指令-显示当前日期
基本语法
date (功能描述:显示当前时间)
date +%Y (功能描述:显示当前年份)
date +%m (功能描述:显示当前月份)
date +%d (功能描述:显示当前是哪一天)
tex
ln -s [源文件或目录] [软链接名] (功能描述:给源文件创建一个软连接)
### 应用实例
案例1:在/home目录下创建一个软链接linkToRoot,连接到/root目录
[外链图片转存中...(img-ketkkQ2H-1622193023874)]
案例2:删除软链接linkToRoot
[外链图片转存中...(img-V8L1xP5J-1622193023876)]
### 细节说明
当我们使用<font color='red'>pwd指令查看</font>目录时,仍然看到的是软链接所在目录。
## history指令
### 基本介绍
查看已经执行过的命令,也可以执行历史指令
### 基本语法
```tex
history (功能描述:查看已经执行过的历史命令)
histroy number (显示最近number条指令)
!number (执行第number条指令)
应用实例
案例一:显示所有的历史命令
[外链图片转存中…(img-m5UljAFV-1622193023878)]
案例二:显示最近使用的10个命令
[外链图片转存中…(img-iJDQWFDT-1622193023879)]
案例三:执行历史编号为5的指令
[外链图片转存中…(img-shaEgGVs-1622193023881)]
时间日期类相关的指令
date指令-显示当前日期
基本语法
date (功能描述:显示当前时间)
date +%Y (功能描述:显示当前年份)
date +%m (功能描述:显示当前月份)
date +%d (功能描述:显示当前是哪一天)