图解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 快捷键使用练习

  1. 拷贝当前行yy,拷贝当前行向下的5行5yy, 并粘贴(输入p)
    (一般模式下输入)

  2. 正常模式下删除当前行 dd, 删除当前行向下的5行 5dd

  3. 在文件中查找某个单词[命令行下/关键字,回车 查找,输入n就是查找下一个]

  4. 设置文件的行号, 取消文件的行号[命令行下:set nu 和:set nonu]

  5. 编辑/etc/profile 文件,在一般模式下, 使用快捷键到该文档的最末行[G]和最首行[gg]


  1. 在一个文件中输入"hello" ,在一般模式下,然后又撤销这个动作u。

  2. 编辑
    /etc/profile文件,在一般模式下,并将光标移动到,输入 20,再输入shift+g


  1. 更多的看整理的文档
  2. 快捷键的键盘对应图

6.6 vi和vim课堂练习

  1. 看使用vim/vi编写一个Hello.java
  2. 把老师课堂讲的各种快捷键自己玩一把即可

第7章Linux实操篇-开机、重启和用户登录注销

7.1 关机&重启命令

7.1.1基本介绍

  1. shutdown -h now 立该进行关机
  2. shudown -h 1 “hello, 1分钟后会关机了”
  3. shutdown -r now 现在重新启动计算机
  4. halt 关机,作用和上面一样.
  5. reboot 现在重新启动计算机
  6. sync 把内存的数据同步到磁盘.

7.1.2 注意细节

  1. 不管是重启系统还是关闭系统,首先要运行sync命令,把内存中的数据写到磁盘中。
  2. 目前的shutdown/reboot/halt 等命令均已经在关机前进行了sync ,老韩提醒: 小心驶得万年船。

7.2 用户登录和注销

7.2.1基本介绍

  1. 登录时尽量少用root帐号登录,因为它是系统管理员,最大的权限,避免操作失误。可以利用普通用户登录,
    登录后再用”su - 用户名’命令来切换成系统管理员身份。(在XShell中操作)

su只能获得root的执行权限,不能获得环境变量
su -是切换到root并获得root的环境变量及执行权限。

  1. 在提示符下输入logout即可注销用户。
    su指令,再logout无法注销。

    su - 指令,再logout可以注销。

    在上面的基础上再logout就退出系统了。

7.2.2使用细节

  1. logout 注销指令在图形运行级别无效(Linux的命令行中logout指令无效),在运行级别3下有效。
  2. 运行级别这个概念, 后面给大家介绍。

第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细节说明

  1. 当创建用户成功后,会自动的创建和用户同名的家目录。
    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应用案例

  1. 删除用户milan, 但是要保留家目录,userdel milan

    想用milan登录,就不允许登录了

  2. 删除用户以及用户主目录,比如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细节说明

  1. 从权限高的用户切换到权限低的用户,不需要输入密码,反之需要。

  2. 当需要返回到原来用户时,使用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增加用户时直接加上组

  1. 增加用户时直接加上组
  2. 指令(基本语法): useradd - g用户组用户名
  3. 增加一个用户zwj,直接将他指定到wudang
  4. groupadd wudang
  5. 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课堂练习

课堂练习:

  1. 假设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行内容。

  • 基本语法
  1. tail 文件 (功能描述:查看文件尾10行内容)
  2. tail -n5 文件(功能描述:查看文件尾5行内容,5可以是任意行数)
  3. 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 >指令和>>指令

输出重定向和>>追加

  • 基本语法
  1. ls -l>文件
    (功能描述:列表的内容入文件a.txt中(覆盖写) )
  2. Is -al>>文件
    (功能描述:列表的内容追加到文件aa.txt的末尾)
  3. cat 文件1>文件2
    (功能描述:将文件1的内容覆盖到文件2)
  4. 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 指令-显示当前日期

  • 基本语法
  1. date ( 功能描述:显示当前时间)
  2. date +%Y (功能描述:显示当前年份)
  3. date +%m (功能描述:显示当前月份)
  4. date +%d (功能描述:显示当前是哪一:天)
  5. 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 韩顺平老师 自学笔记(二)