图解Linux 韩顺平老师 自学笔记 二
- 第6章Linux实操篇-Vi和Vim编辑器
- 6.1 vi和vim的基本介绍
- 6.2 vi和常用的三种模式
- 6.2.1正常模式
- 6.2.2 插入模式
- 6.2.3命令行模式
- 6.3 vi和vim基本使用
- 6.4各种模式的相互切换
- 6.5 vi和vim快捷键
- 6.5.1 快捷键使用练习
- 6.6 vi和vim课堂练习
- 第7章Linux实操篇-开机、重启和用户登录注销
- 7.1 关机&重启命令
- 7.1.1基本介绍
- 7.1.2 注意细节
- 7.2 用户登录和注销
- 7.2.1基本介绍
- 7.2.2使用细节
- 第8章Linux实操篇-用户管理
- 8.1基本介绍
- 8.2添加用户
- 8.2.1基本语法
- 8.2.2应用案例
- 8.2.3细节说明
- 8.3指定/修改密码
- 8.3.1基本语法
- 8.3.2应用案例
- 8.4删除用户
- 8.4.1基本语法
- 8.4.2应用案例
- 8.4.3细节说明
- 8.5 查询用户信息指令
- 8.5.1基本语法
- 8.5.2应用实例
- 8.5.3细节说明
- 8.6切换用户
- 8.6.1介绍
- 8.6.2基本语法
- 8.6.3应用实例
- 8.6.4细节说明
- 8.7 查看当前用户/登录用户
- 8.7.1基本语法
- 8.8用户组
- 8.8.1介绍
- 8.8.2新增组
- 8.8.3删除组
- 8.8.4增加用户时直接加上组
- 8.8.5修改用户的组
- 8.9用户和组相关文件
- 8.9.1/etc/passwd文件
- 8.9.2/etc/shadow文件
- 8.9.3/etc/group文件
- 第9章Linux实操篇-实用指令
- 9.1 指定运行级别
- 9.1.1基本介绍
- 9.1.2应用实例
- 9.1.3CentOS7 后运行级别说明
- 9.2找回root密码
- 9.2.1面试题
- 9.2.2课堂练习
- 9.3帮助指令
- 9.3.1 man获得帮助信息
- 9.3.2help指令
- 9.3.3应用实例
- 9.3.4百度帮助更直接
- 9.4 文件目录类
- 9.4.1 pwd指令
- 9.4.2 ls指令
- 9.4.3 cd指令
- 9.4.4 mkdir指令
- 9.4.5rmdir指令
- 9.4.6touch指令
- 9.4.7 cp指令
- 9.4.8 rm指令
- 9.4.9 mv指令
- 9.4.10 cat指令
- 9.4.11 more指令
- 9.4.12 less指令
- 9.4.13 echo指令
- 9.4.14 head指令
- 9.4.15 tail指令
- 9.4.16 >指令和>>指令
- 9.4.17 ln指令
- 9.4.18 history指令
- 9.5 实践日期类
- 9.5.1date 指令-显示当前日期
- 9.5.2 date指令-设置日期
- 9.5.3 cal指令
- 9.6 搜索查找类
- 9.6.1 find指令
- 9.6.2 locate指令
- 9.6.3 grep 指令和管道符号|
- 9.7压缩和解压类
- 9.7.1 gzip/gunzip 指令
- 9.7.2 zip/unzip指令
- 9.7.3tar指令
第6章Linux实操篇-Vi和Vim编辑器
6.1 vi和vim的基本介绍
Linux系统会内置vi文本编辑器
Vim具有程序编辑的能力,可以看做是Vi的增强版本,可以主动的以字体颜色辨别语法的正确性,方便程序设计。
代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
6.2 vi和常用的三种模式
6.2.1正常模式
以vim打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中, 你可以使用「. 上下左右」按键来
移动光标,你可以使用[删除字符」或「删除整行」来处理档案内容,也可以使用 [复制、粘贴」来处理你的文件数
6.2.2 插入模式
按下i,I,o,O,a, A, r,R等任何一个字母之后才会进入编辑模式,一般来说按i即可。
6.2.3命令行模式
输入esc再输入:在这个模式当中,可 以提供你相关指令,完成读取、存盘、替换、离开vim、显示行号等的动作则是在此模式中达成的!
6.3 vi和vim基本使用
使用vim 开发一个Hello.java程序,保存.步骤说明和演示
在XShell中操作,输入
vim Hello.java
回车后进入正常模式
输入i进入插入模式
在插入模式中输入java语句
先输入esc,退出插入模式,再输入冒号进入命令行模式
先输入: 切换到命令行,接着输入wq保存并退出
此时已经存储了Hello.java文件
我们再次编辑的话,直接输入
vim H[Tab键自动补全]
进入后,输入i进入插入模式,结尾加感叹号
按Esc退出插入模式
最后按Caps lock(大写) ZZ
也可以实现保存并且退出。
再看看Linux中,该文件出现了
6.4各种模式的相互切换
6.5 vi和vim快捷键
6.5.1 快捷键使用练习
-
拷贝当前行yy,拷贝当前行向下的5行5yy, 并粘贴(输入p)
(一般模式下输入)
-
在正常模式下删除当前行 dd, 删除当前行向下的5行 5dd
-
在文件中查找某个单词[命令行下/关键字,回车 查找,输入n就是查找下一个]
-
设置文件的行号, 取消文件的行号[命令行下:set nu 和:set nonu]
-
编辑/etc/profile 文件,在一般模式下, 使用快捷键到该文档的最末行[G]和最首行[gg]
-
在一个文件中输入"hello" ,在一般模式下,然后又撤销这个动作u。
-
编辑
/etc/profile文件,在一般模式下,并将光标移动到,输入 20,再输入shift+g
- 更多的看整理的文档
- 快捷键的键盘对应图
6.6 vi和vim课堂练习
- 看使用vim/vi编写一个Hello.java
- 把老师课堂讲的各种快捷键自己玩一把即可
第7章Linux实操篇-开机、重启和用户登录注销
7.1 关机&重启命令
7.1.1基本介绍
- shutdown -h now 立该进行关机
- shudown -h 1 “hello, 1分钟后会关机了”
- shutdown -r now 现在重新启动计算机
- halt 关机,作用和上面一样.
- reboot 现在重新启动计算机
- sync 把内存的数据同步到磁盘.
7.1.2 注意细节
- 不管是重启系统还是关闭系统,首先要运行sync命令,把内存中的数据写到磁盘中。
- 目前的shutdown/reboot/halt 等命令均已经在关机前进行了sync ,老韩提醒: 小心驶得万年船。
7.2 用户登录和注销
7.2.1基本介绍
- 登录时尽量少用root帐号登录,因为它是系统管理员,最大的权限,避免操作失误。可以利用普通用户登录,
登录后再用”su - 用户名’命令来切换成系统管理员身份。(在XShell中操作)
su只能获得root的执行权限,不能获得环境变量。
su -是切换到root并获得root的环境变量及执行权限。
- 在提示符下输入logout即可注销用户。
su指令,再logout无法注销。
su - 指令,再logout可以注销。
在上面的基础上再logout就退出系统了。
7.2.2使用细节
- logout 注销指令在图形运行级别无效(Linux的命令行中logout指令无效),在运行级别3下有效。
- 运行级别这个概念, 后面给大家介绍。
第8章Linux实操篇-用户管理
8.1基本介绍
Linux系统是-一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
查看所有用户
cd /home
8.2添加用户
8.2.1基本语法
useradd 用户名
添加一个用户米兰
useradd milan
多了一个用户
8.2.2应用案例
案例1:添加一个用户milan, 默认该用户的家目录在/home/milan
8.2.3细节说明
- 当创建用户成功后,会自动的创建和用户同名的家目录。
2)也可以通过 useradd -d 指定目录新的用户名, 给新创建的用户指定家目录。
比如在home/test目录下,创建用户king,并且指定家目录
useradd -d/home test king
8.3指定/修改密码
8.3.1基本语法
passwd 用户名
8.3.2应用案例
给milan指定密码 passwd milan
比如给milan设置的密码也是milan,实际工作中建议密码设置的复杂一些。
passwd milan milan
尝试用新改的密码登录milan,发现成功了
补充,显示当前用户所在的目录pwd。
pwd
8.4删除用户
8.4.1基本语法
userdel 用户名
8.4.2应用案例
-
删除用户milan, 但是要保留家目录,userdel milan
想用milan登录,就不允许登录了 -
删除用户以及用户主目录,比如tom, userdel -r tom
创建一个新用户lucy,然后删除lucy
userdel -r lucy
想用lucy登录,就不允许登录了
8.4.3细节说明
是否保留家目录的讨论?一般情况下, 我们建议保留。
8.5 查询用户信息指令
8.5.1基本语法
id 用户名
8.5.2应用实例
案例:请查询root信息
#id root
8.5.3细节说明
当用户不存在时,返回无此用户
8.6切换用户
8.6.1介绍
在操作Linux 中,如果当前用户的权限不够,可以通过su - 指令,切换到高权限用户,比如root。
8.6.2基本语法
su - 切换用户名
8.6.3应用实例
创建一个用户jack,,指定密码,然后切换到jack
8.6.4细节说明
-
从权限高的用户切换到权限低的用户,不需要输入密码,反之需要。
-
当需要返回到原来用户时,使用exit、logout指令。
8.7 查看当前用户/登录用户
8.7.1基本语法
whoami/who am I
注意:该指令只显示你登录的用户,如果中途切换用户,也是显示登录的用户而不是切换后的用户
8.8用户组
8.8.1介绍
类似于角色,系统可以对有共性/权限的多个用户进行统一的管理。
8.8.2新增组
指令:
groupadd组名
案例演示
注意clear指令可以清理指令
clear
如果创建用户没有指定组名称,会自动创建组,组名和用户名相同,比如刚才新建的用户king
8.8.3删除组
指令(基本语法): groupdel 组名
案例演示
8.8.4增加用户时直接加上组
- 增加用户时直接加上组
- 指令(基本语法): useradd - g用户组用户名
- 增加一个用户zwj,直接将他指定到wudang
- groupadd wudang
- useradd -g wudang zwj
8.8.5修改用户的组
指令(基本语法): usermod -g 用户组 用户名
- 案例演示
创建一个组mojiao
把zwj放入到 mojiao
指令: usermod -g mojiao zwj
8.9用户和组相关文件
8.9.1/etc/passwd文件
用户(user) 的配置文件,记录用户的各种信息。
每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell。
查询不同种类的shell
切换目录bin
查询以sh结尾的文件
cd /bin
ls -l *sh
用vim打开
vim /etc/passwd
8.9.2/etc/shadow文件
口令的配置文件
每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志。
vim /etc/shadow
给zwj加上密码后再看看,产生了加密方式
8.9.3/etc/group文件
组(group)的配置文件,记录Linux包含的组的信息
每行含义:组名:口令:组标识号:组内用户列表。
vim /etc/group
第9章Linux实操篇-实用指令
9.1 指定运行级别
9.1.1基本介绍
运行级别说明:
0:关机
1:单用户[找回丢失密码]
2:多用户状态没有网络服务
3:多用户状态有网络服务
4:系统未使用保留给用户
5:图形界面
6:系统重启
常用运行级别是3和5,也可以指定默认运行级别,后面演示
9.1.2应用实例
命令: init [0123456]应用案例:通过 init来切换不同的运行级别,比如从5切换到3 ,然后关机。
比如目前的级别是5,图形界面,在Linux命令终端中输入
init 3
而输入init 6 就是重启了
init 6
重启相当于reboot指令
9.1.3CentOS7 后运行级别说明
在centos7以前,/etc/inittab 文件中
进行了简化,如下:
multi-user.target: analogous to runlevel 3
graphical.target: analogous to runlevel 5
#To view current default target, run:
systemctl get-default
#To set a default target, run:
systemctl set-default TARGET.target
输入指令,查看当前系统的运行级别(XShell)
systemctl get -default
现在想切换成运行级别3
systemctl set-default mult-usr.target
如下:
之后再查看一下当前运行级别
这时候如果输入reboot指令重启的话,再开机就会进入运行级别3
9.2找回root密码
9.2.1面试题
如何找回root密码
9.2.2课堂练习
课堂练习:
- 假设root密码忘记了,请问如何找回密码(CentOS7之后的)首先,启动系统,进入开机界面,在界面中按e进入编辑界面,如图
输入e后进入编辑模式
进入编辑界面后,实用键盘上的上下键把光标往下移动,找到以“Linux16”开头内容所在的行数如图,在行的最后输入:
init=/bin/sh
接着输入完成后,直接按快捷键 ctrl+x进入单用户模式
接着,在光标闪烁的位置中输入
mount -o remount,rw /
注意,各个单词间都有空格,完成后按键盘的回车键(Enter)如图
在新的一行最后面输入passwd,完成后按键盘的回车键(Enter)。输入密码,然后再次确认密码即可密码修改成功后,会显示passwd的样式,说明密码修改成功。
接着,在光标闪烁的位置中(最后一行)输入
touch /.autorelabel
注意touch与/之间有一个空格,完成后按键盘的回车(Enter)
继续在光标闪烁的位置中,输入
exec /sbin/init
注意:exec与/之间有一个空格,完成后按键盘的回车键(Enter),等待系统自动修改密码(这个过程很长,耐心等待)完成后,系统会自动重启,新的密码生效了
之后用新的密码登录即可。
课堂练习:
2) 设置运行级别,linux 运行后,直接进入到命令行终端
见上述操作
9.3帮助指令
9.3.1 man获得帮助信息
基本语法: man [命令或配置文件] (功能描述:获得帮助信息)
案例:查看ls命令的帮助信息 man ls
输入(XShell)
man ls
未展示完的页按空格即可。
在linux下,隐藏文件是以.开头
我们看到文档中-a是展示隐藏文件,那么我们操作一下。首先按q退出帮助文档,在命令行中输入如下指令:
ls -a
我们再看一下帮助信息中-l指的是单列输出,我们再尝试一下。
首先输入q退出帮助文档,然后在命令行中输入
ls -l
帮助文档中,选项可以组合使用
比如ls -al, 比如 Is -al /root
我们实验一下输入
ls -al
输入
ls -al /root
以单列形式展示root目录下的文件
帮助指令的顺序可以修改,比如上面的指令
ls -al /root
可以修改成
ls -la /root
9.3.2help指令
基本语法:help命令(功能描述:获得shell内置命令的帮助信息)
9.3.3应用实例
案例:查看cd命令的帮助信息
help cd
9.3.4百度帮助更直接
如果英语不太好的,也可以直接百度靠谱。
9.4 文件目录类
9.4.1 pwd指令
基本语法: pwd (功能描述:显示当前工作目录的绝对路径)
应用实例:案例:显示当前工作目录的绝对路径
模拟:访问a.txt,当前路径是/home
我们新建用户tom
useradd tom
切换目录,使当前目录到home/tom
cd /home/tom
用vim打开a.txt,输入
Hello,Tom
此时退出vim之后,在命令行中输入
pwd
显示如下:
可见pwd是显示当前工作目录的绝对路径
9.4.2 ls指令
基本语法: ls [选项] [目录或是文件]
- 常用选项
-a: 显示当前目录所有的文件和目录,包括隐藏的。
-l:.以列表的方式显示信息。 - 应用实例
案例:查看当前目录的所有内容信息
9.4.3 cd指令
- 基本语法: cd [参数] (功能描述: 切换到指定目录)
理解:绝对路径和相对路径
cd ~ 或者cd : 回到自己的家目录,
比如你是root,cd ~ 就会回到 /root 目录
cd… :回到当前目录的上一级目录
- 应用实例
案例1:使用绝对路径切换到root目录,cd /root
cd /root
案例2:使用相对路径到/root目录,比如在/home/tom,
解析:当前目录结构:
/→root→home→tom→a.txt
现在在tom的位置,往上2层就到了/的位置,想去root,那么还需要再进入root,综上,命令行如下:
cd ../../root
案例3:表示回到当前目录的上一级目录,cd …
cd..
案例4:回到家目录,cd ~
cd ~
9.4.4 mkdir指令
➢mkdir 指令用于创建目录
基本语法: mkdir [选项] 要创建的目录
➢常用选项
-p :创建多级目录
➢应用实例
案例1:创建一个目录/home/dog(相当于创建了1个文件夹)
mkdir /home/dog
案例2:创建多级目录/home/animal/tiger(相当于创建了2个文件夹)
mkdir -p /home/animal/tiger
rmdir指令
9.4.5rmdir指令
➢基本语法
rmdir[选项]要删除的空目录
➢应用实例
案例:删除一个目录/home/dog
rmdir /home/dog
➢使用细节rmdir删除的是空目录,如果目录下有内容时无法删除的。
提示:如果需要删除非空目录,需要使用rm-rf 要删除的目录比如:
删除的时候要谨慎
rm - rf /home/animal
9.4.6touch指令
➢touch指令创建空文件
➢基本语法
touch文件名称
➢应用实例 .
案例:在/home目录下,创建一个空文件hello.txt
9.4.7 cp指令
cp指令拷贝文件到指定目录
➢基本语法
cp [选项] source dest
➢常用选项
-r :递归复制整个文件夹
➢应用实例
案例1:将/home/hello.txt拷贝到/home/bbb 目录下
cp hello.txt bbb/
案例2:递归复制整个文件夹,举例,比如将home/bbb 整个目录,拷贝到/opt
cp -r /home/bbb /opt
➢使用细节
强制覆盖不提示的方法: \cp, \cp -r /home/bbb /opt
9.4.8 rm指令
说明: rm指令移除文件或目录
- 基本语法
rm[选项]要 删除的文件或目录 - 常用选项
-r :递归删除整个文件夹
-f: 强制删除不提示 - 应用实例
案例1:将/home/hello.txt删除, rm /home/hello.txt
rm /home/hello.txt
案例2:递归删除整个文件夹/home/bbb,rm -rf /home/bb [删除整个文件夹,不提示]
rm -rf /home/bb
- 使用细节
强制删除不提示的方法:带上-f 参数即可
9.4.9 mv指令
mv
移动文件与目录或重命名
- 基本语法
mv oldNameFile newNameFile (功能描述:重命名)
mv /temp/movefile /targetFolder (功能描述:移动文件) - 应用实例
案例1:将/home/cat.txt 文件重命名为pig.txt
mv /home/cat.txt /home/pig.txt
案例2:将/home/pig.txt文件移动(剪切)到/root 目录下
mv /home/pig.txt /root/
案例3:移动整个目录,比如将/opt/bbb 移动到/home目录下试试
mv /opt/bbb /home/
案例4:移动并重命名,将/root/bbb/hello2.txt移动到/root目录下,并且重命名为hello3.txt
mv hello2.txt /root/hello3.txt
9.4.10 cat指令
cat 查看文件内容,更加安全(不能修改)
- 基本语法
cat [选项] 要查看的文件 - 常用选项
-n :显示行号 - 应用实例
案例1: /etc/profile 文件内容, 并显示行号
cat -n /etc/profile
- 使用细节
cat只能浏览文件,而不能修改文件,为了浏览方便,一般会带上管道命令| more
cat -n /etc/profile | more [进行交互]
cat /etc/profile|more
输入管道命令,相当于和系统有个交互
空格:下一页
回车:下一行
9.4.11 more指令
more指令是一个基于VI编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。more 指令中内置了若干快捷键(交互的指令),详见操作说明
-
基本语法
more要查看的文件 -
操作说明,如图
- 应用实例
案例:采用more查看文件 /etc/profile
more /etc/profile
9.4.12 less指令
less指令用来分屏查看文件内容,它的功能与more指令类似,但是比more指令更加强大,支持各种显示终端。less
指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有
较高的效率。
- 基本语法 .
less要查看的文件
操作说明
下面表格中,空白键 = 空格键
- 应用实例
案例:采用less查看一个大文件,文件/opt/杂文.txt
less /opt/杂文.txt
less /etc/profile
9.4.13 echo指令
echo输出内容到控制台
- 基本语法
echo [选项] [输出内容] - 应用实例
案例:使用echo指令输出环境变量,比如输出$PATH $HOSTNAME,
echo $PATH
echo $HOSTNAME
案例:使用echo指令输出hello ,world!
echo "hello ,world"
9.4.14 head指令
head用于显示文件的开头部分内容,默认情况下head指令显示文件的前10行内容
- 基本语法 .
head文件(功能描述: 查看文件头10行内容)
head -n 5文件
(功能描述:查看文件头5行内容,5可以是任意行数) - 应用实例
案例:查看/etc/profile的前面5行代码
head -n 5 /etc/profile
不写 -n 数字默认是前10行
head /etc/profile
9.4.15 tail指令
tail用于输出文件中尾部的内容,默认情况下tail 指令显示文件的后10行内容。
- 基本语法
- tail 文件 (功能描述:查看文件尾10行内容)
- tail -n5 文件(功能描述:查看文件尾5行内容,5可以是任意行数)
- tail -f 文件 (功能描述:实时追踪该文档的所有更新)
- 应用实例
案例1:查看/etc/profile最后5行的代码
tail -n 5 /etc/profile
案例2:实时监控mydate.txt, 看看到文件有变化时,是否看到,实时的追加hello,world
在XShell中执行如下命令
tail -f /home/mydate.txt
这里想要退出监控的话,实用指令Ctrl+c
登录Linux中,用命令行追加
echo "hello" > /home/mydate.txt
9.4.16 >指令和>>指令
输出重定向和>>追加
- 基本语法
- ls -l>文件
(功能描述:列表的内容入文件a.txt中(覆盖写) ) - Is -al>>文件
(功能描述:列表的内容追加到文件aa.txt的末尾) - cat 文件1>文件2
(功能描述:将文件1的内容覆盖到文件2) - echo “内容”>>文件(追加)
- 应用实例
案例1:将/home目录下的文件列表写入到/home/info.txt 中,覆盖写入。
ls -l /home > /home/info.txt [如果 info.txt没有,则会创建]
ls -l /home > /home/info.txt
那如果我们再追加一段指令会发生什么呢?
echo "hello">info.txt
因为是覆盖写,所以会被hello覆盖
案例2:将当前日历信息追加到/home/mycal 文件中
指令为:
cal >> /home/mycal
那如果我们继续执行下一个指令会发生什么呢
cal >> /home/mycal
因为>>是追加,所以会再生成一个日历
9.4.17 ln指令
软链接也称为符号链接,类似于windows里的快捷方式,主要存放了链接其他文件的路径
- 基本语法
In -s [原文件或目录] [软链接名] (功能描述: 给原文件创建一个软链接) - 应用实例
案例1:在/home目录下创建一个软连接myroot, 连接到/root 目录 ln -s /root /home/myroot
输入指令
cd myroot/
展示当前列表
ll
发现myroot中就是root的内容,那下面如果我不想要这个软连接了呢?
案例2:删除软连接myroot
rm /home/myroot
- 细节说明
当我们使用pwd指令查看目录时,仍然看到的是软链接所在目录。
9.4.18 history指令
查看已经执行过历史命令,也可以执行历史指令
- 基本语法 .
history ( 功能描述:查看已经执行过历史命令) - 应用实例
案例1:显示所有的历史命令
history
案例2:显示最近使用过的10个指令。
history 10
案例3:执行历史编号为5的指令
!5
9.5 实践日期类
9.5.1date 指令-显示当前日期
- 基本语法
- date ( 功能描述:显示当前时间)
- date +%Y (功能描述:显示当前年份)
- date +%m (功能描述:显示当前月份)
- date +%d (功能描述:显示当前是哪一:天)
- date “+%Y- %m- %d %H:%M:%S” (功能描述:显示年月日时分秒)
- 应用实例
案例1:显示当前时间信息
date
案例2:显示当前时间年月日
date "+%Y- %m-%d"
案例3:显示当前时间年月日时分秒
date "+%Y-%m-%d %H:%M:%S"
9.5.2 date指令-设置日期
- 基本语法
date -s 字符串时间 - 应用实例
案例1:设置系统当前时间,比 如设置成2020-11-03 20:02:10
date -s “2020-11-03 20:02:10”
9.5.3 cal指令
查看日历指令cal
- 基本语法
cal [选项] (功能描述: 不加选项,显示本月日历) - 应用实例
案例1:显示当前日历cal
cal
案例2:显示2020年日历: cal 2020
cal 2020
9.6 搜索查找类
9.6.1 find指令
find指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件或者目录显示在终端。
- 基本语法
find [搜索 范围] [选 项] - 选项说明
- 应用实例
案例1:按文件名:根据名称查找/home目录下的hello3.txt文件
find /home -name hello3.txt
案例2:按拥有者:查找/opt目录下,用户名称为nobody 的文件
find /opt -user nobody
案例3:查找整个linux系统下大于200M的文件
+n 大于
-n 小于
n 等于
单位有 k,M,G
find / -size +200M
我们验证一下是否有200M多的文件
cd /run/media/root/CentOS\ 7\ x86_64/LiveOS/
展示文件详细信息
ls -l
展示文件详细信息,以直观数据展示
ls -lh
9.6.2 locate指令
locate指令可以快速定位文件路径。locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。Locate指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新locate时刻。
- 基本语法
locate搜索文件 - 特别说明
由于locate指令基于数据库进行查询,所以第一次运行前, 必须使用updatedb指令创建locate 数据库。 - 应用实例
案例1:请使用locate指令快速定位hello.txt 文件所在目录
先执行
updatedb
再定位
locate hello3.txt
which指令,可以查看某个指令在哪个目录下,比如ls 指令在哪个目录
which ls
9.6.3 grep 指令和管道符号|
grep过滤查找,管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理。
比如以上示意图就是,检索hello3.txt中“hello”的段落
cat hello3.txt |grep "hello"
- 基本语法
grep [选项] 查找内容源文件 - 常用选项
- 应用实例
案例1:请在hello.txt文件中,查找"yes" 所在行, 并且显示行号
写法1:
cat /root/hello.txt| grep -n "yes"
写法2:
grep -n "yes" /root/hello.txt
9.7压缩和解压类
9.7.1 gzip/gunzip 指令
gzip用于压缩文件,gunzip用于解压的,这个在项目打包发布中很有用。
- 基本语法
gzip文件 (功能描述: 压缩文件,只能将文件压缩为* .gz文件)
gunzip文件gz (功能描述: 解压缩文件命令) - 应用实例
案例1: gzip压缩,将/home下的hello.txt 文件进行压缩
gzip /home/hello.txt
案例2: gunzip压缩, 将/home下的hello.txt.gz 文件进行解压缩
gunzip /home/hello.txt.gz
9.7.2 zip/unzip指令
zip用于压缩文件,unzip 用于解压的,这个在项目打包发布中很有用的
V基本语法
zip [选项] XXX.zip将要 压缩的内容(功能描述:压缩文件和目录的命令)
unzip [选项] XXX.zip ( 功能描述:解压缩文件)
- zip常用选项
-r: 递归压缩,即压缩目录 - unzip的常用选项
-d<目录> :指定解压后文件的存放目录 - 应用实例
案例1:将/home下的所有文件/文件夹进行压缩成myhome.zip
zip-r myhome.zip/home/
案例2:将myhome.zip 解压到/opt/tmp 目录下
mkdir /opt/tmp
unzip -d /opt/tmp /home/myhome.zip
9.7.3tar指令
tar指令是打包指令,最后打包后的文件是.tar.gz 的文件。
- 基本语法
tar [选项] XXX.tar.gz 打包的内容
(功能描述:打包目录,压缩后的文件格式tar.gz) - 选项说明
- 应用实例
案例1:压缩多个文件, 将/home/pig.txt和/home/cat.txt 压缩成 pc.tar.gz
tar -zcvf pc.tar.gz /home/pig.txt /home/cat.txt
案例2:将/home 的文件夹压缩成myhome.tar.gz
tar -zcvf myhome.tar.gz /home/
案例3:将 pc.tar.gz解压到当前目录
tar -zxvf pc.tar.gz
查看解压情况
案例4:将myhome.tar.gz解压到/opt/tmp2 目录下
(1) mkdir /opt/tmp2
(2) tar -zxvf /home/myhome.tar.gz -C /opt/tmp2
更多推荐
图解Linux 韩顺平老师 自学笔记(二)
发布评论