1 指定运行级别
1.1 基本介绍
运行级别说明:
- 0:关机
- 1:单用户【找回丢失密码】
- 2:多用户状态没有网络服务
- 3:多用户状态有网络服务
- 4:系统未使用保留给用户
- 5:图形界面
- 6:系统重启
常用运行级别是 3 和 5 ,也可以指定默认运行级别
1.2 应用实例
- 需求说明
命令:init[0123456]
应用案例:通过 init 来切换不同的运行级别,比如 5 => 3 ,然后关机
- 实现图解
1.3 CentOS7 后运行级别说明
在 CentOS7 以前,在 /etc/inittab 文件中进行设置默认的运行级别, CentOS7 以后进行了简化,如下:
- 简化指令如下:
multi-user.target
: analogous to runlevel 3
graphical.target
: analogous to runlevel 5
- 查看当前运行级别:
systemctl get-default
- 设置默认运行级别:
systemctl set-default TARGET.target
- 演示
2 找回 root 密码【面试题】
-
面试题:如何找回root密码?? 韩老师视频演示
-
温馨提示:操作前最好设置一个快照,就算操作失误,也有后悔药吃!
-
下面是正式的操作演示
-
首先,启动系统,进入开机界面 (鼠标点击一下就可以进行选择了),在界面中按 “e” ,进入编辑界面,如图
-
进入编辑界面,使用键盘上的上下键把光标往下移动,找到以 “Linux16” 开头内容所在的行数,在行的最后面输入:
init=/bin/sh
,如图
-
接着,输入完成后,直接按快捷键:ctrl + x ,进入单用户模式
-
然后,在光标闪烁的位置输入:
mount -o remount,rw /
(注意:各个单词之间有空格) ,输入完成后按键盘的回车键 (enter) ,如图
-
在新的一行最后面输入:
passwd
,完成后按键盘的回车键。输入密码,然后再次确认密码即可 (特别提示:密码长度最好 8 位以上,但不是必须的) ,密码修改成功后,会显示 passwd…的样式,说明密码修改成功
-
接着,在鼠标闪烁的位置 (最后一行中) 输入:
touch /.autorelabel
(注意:touch 与 / 之间有一个空格) ,完成后按键盘的回车键
-
继续在光标闪烁的位置中,输入:
exec /sbin/init
(注意:exec 与 / 之间有一个空格) ,完成后按键盘的回车键,等待系统自动修改密码 (特别提示:这个过程时间可能有点长,耐心等待一下) ,完成后,系统会自动重启,新的密码就生效了
-
3 帮助指令
3.1 man 获得帮助信息
- 基本语法:
man [命令或配置文件]
(功能描述:获得帮助信息) - 补充:在 Linux下,隐藏文件是以
.
开头的 - 案例演示:查看
ls
命令的帮助信息
3.2 help 指令
- 基本语法:
help 命令
(功能描述:获得shell内置命令的帮助信息) - 应用实例:查看
cd
命令的帮助信息
4 文件目录类
4.1 pwd 指令
- 基本语法:
pwd
(功能描述:显示当前工作目录的绝对路径) - 应用实例:案例:显示当前工作目录的绝对路径
4.2 ls 指令
-
基本语法:
ls [选项] [目录或是文件]
-
常用选项:
-a
:显示当前目录所有的文件和目录,包括隐藏的-l
:以列表的方式显示信息
-
应用案例:前面刚刚学过
4.3 cd 指令
-
基本语法:
cd [参数]
(功能描述:切换到指定目录) -
理解:绝对路径和相对路径
-
cd ~
或者cd
:表示回到自己的家目录 -
cd..
:表示回到目录的上一级目录
-
应用实例:
- 案例1:使用绝对路径切换到root目录,
cd/root
- 案例2:使用相对路径到root目录,比如在 /home/tom ,
cd ../../root
- 案例3:表示回到当前目录的上一级目录
cd ..
- 案例4:回到家目录
cd ~
或cd
- 案例1:使用绝对路径切换到root目录,
4.4 mkdir 指令
- mkdir 指令用于创建目录
- 基本语法:
mkdir [选项] 要创建的目录
- 常用选项:
-p
:表示创建多级目录
- 应用实例:
- 案例1:创建一个目录 /home/dog
- 案例2:创建多级目录 /home/animal/tiger
4.5 rmdir 指令
-
rmdir 指令删除空目录
-
基本语法:
rmdir [选项] 要删除的目录
-
应用实例:
- 案例1:删除一个目录 /home/dog
- 案例2:删除非空目录 /home/animal
-
使用细节
- rmdir 删除的是空目录,如果目录下有内容是无法删除的
- 提示:如果要删除非空目录,需要使用
rm - rf 要删除的目录
4.6 touch 指令
- touch 指令创建空文件
- 基本语法:
touch 文件名称
- 应用实例:在/home目录下创建一个空文件 hello.txt
4.7 cp 指令
-
cp 指令 拷贝文件到指定目录
-
基本语法:
cp [选项] source dest
-
常用选项:
-r
:递归复制整个文件夹
-
应用实例:
-
案例1:将 /home/hello.txt 拷贝到 /home/bbb 目录下
-
案例2:递归复制整个文件夹,比如将 /home/bbb 整个目录,拷贝到 /opt 目录下
cp -r /home/bbb/ /opt/
-
-
使用细节
- 强制覆盖不提示的方法:\cp,比如
\cp -r /home/bbb/ /opt/
- 强制覆盖不提示的方法:\cp,比如
4.8 rm 指令
-
说明:
rm
指令移除文件或目录 -
基本语法:
re [选项] 要删除的文件或目录
-
常用选项:
-r
:递归删除整个文件夹-f
:强制删除不提示
-
应用实例
-
案例1:将 /home/hello.txt 删除,
rm /home/hello.txt
-
案例2:递归删除整个文件夹 /home/bbb
rm -rf /home/bbb
[删除整个文件夹不提示]
-
-
使用细节
- 强制删除不提示的方法:带上
-f
参数即可
- 强制删除不提示的方法:带上
4.9 mv 指令
- 说明:mv 移动文件或目录或重命名
- 基本语法:
mv oldNameFile newNameFile
(功能描述:重命名)mv /temp/movefile /targetFolder
(功能描述:移动文件)
- 应用实例:
-
案例1:将 /home/cat.txt 文件 重命名为 pig.txt
-
案例2:将 /home/pig.txt 文件 移动到 /root 目录下
-
案例3:移动整个目录,比如将 /opt/bbb 移动到 /home下 =>
mv /opt/bbb /home/
-
4.10 cat 指令
-
说明:cat 查看文件内容
-
基本语法:
cat [选项] 要查看的文件
-
常用选项:
-n
:显示行号
-
应用实例
- 案例1:
/etc/profile
文件内容,并显示行号
- 案例1:
-
使用细节:
- cat 只能浏览文件,不能修改文件,为了浏览方便,一般会带上 管道命令
| more
cat -n /etc/profile | more
[进行交互] ,输入 Enter键 切换的下一行,输入空格键 切换到下一页
- cat 只能浏览文件,不能修改文件,为了浏览方便,一般会带上 管道命令
4.11 more 指令
-
说明:
more 指令是一个基于 VI编辑器 的文件过滤器,它以全屏幕的方式按页显示文本文件的内容,more指令中内置若干快捷键(交互的指令),详见操作说明 -
基本语法:
more 要查看的文件
-
操作说明:
-
应用实例:采用 more查看文件 /etc/profile
4.12 less 指令
-
说明:
less指令用来分屏查看文件内容,它的功能与more指令类似,但是,比more指令更加强大,支持各种显示终端。less指令在显示文件内容时,并不是一次性将整个文件加载之后才显示,而是根据需要加载内容,对于显示大型文件具有较高的效率 -
基本语法:
less 要查看的文件
-
操作说明,如下图所示:
-
应用实例:采用less查看一个大文件 /opt/杂文.txt
4.13 echo 指令
-
说明:echo 输出内容到控制台
-
基本语法:
echo [选项] [输出内容]
-
应用实例:
-
案例1:使用 echo 指令输出环境变量,比如输出 $PATH , $HOSTNAME
-
案例2:使用 echo 指令输出 hello, world!
-
4.14 head 指令
-
说明:head 用于显示文件的开头部分内容,默认情况下 head指令显示文件的前10行内容
-
基本语法:
head 文件
(功能描述:查看文件头10行内容)head -n 5 文件
(功能描述:查看文件头5行内容,5可以是任意行数)
-
应用实例:查看 /etc/profile 的前面5行代码
==>head -n 5 /etc/profile
4.15 tail 指令
-
说明:tail 指令用于输出文件中尾部的内容,默认情况下,tail指令显示文件的后10行内容
-
基本语法
tail 文件
(功能描述:查看文件尾10行内容)tail -n 5 文件
(功能描述:查看文件尾5行内容,5可以是任意行数)tail -f 文件
(功能描述:实时追踪该文档的所有更新)
-
应用实例
-
案例1:查看 etc/profile 最后5行的代码
-
案例2:实时监控 mydate.txt,看看当文件有变化时,是否看到,实时追加 hello,world
-
4.16 > 指令 和 >> 指令
-
说明:> 输出重定向 ,>> 追加
-
基本语法:
ls -l > 文件
(功能描述:列表的内容写入到文件 a.txt 中 (覆盖写) )ls -al >> 文件
(功能描述:列表的内容追加到文件 a.txt 的末尾)cat 文件1 > 文件2
(功能描述:将文件1的内容覆盖到文件2)echo "内容" >> 文件
(功能描述:“内容” 追加到文件末尾)
-
应用实例
-
案例1:将 /home 目录下的文件列表覆盖写入到 /home/info.txt 中
=>ls -l /home > /home/info.txt
[如果 info.txt 文件不存在,会自动创建]
-
案例2:将当前日历信息追加到 /home/mycal 文件中
-
4.17 ln 指令
-
说明:
软链接也称为符号链接,类似于 Windows里的快捷方式,主要存放了链接其他文件的路径 -
基本语法
ln -s [原文件或目录] [软链接名]
(功能描述:给原文件一个软链接) -
应用实例
-
案例1:在 /home 目录下创建一个软链接 myroot,连接到 /root 目录
=>ln -s /root /home/myroot
-
案例2:删除软链接 myroot
=>rm /home/myroot
-
-
细节说明
当我们使用 pwd指令查看目录时,仍然看到的是软链接所在的目录
4.18 history 指令
-
说明:查看已经执行过的历史命令,也可以执行历史指令
-
基本语法:
history
(功能描述:查看已经执行过的历史命令) -
应用实例:
- 案例1:显示所有的历史命令
history
- 案例2:显示最近使用过的10个指令
history 10
- 案例3:执行历史编号为5的指令
!5
- 案例1:显示所有的历史命令
5 时间日期类
5.1 date 指令 - 显示当前日期
-
基本语法
date
(功能描述:显示当前时间)date + %Y
(功能描述:显示当前年份)date + %m
(功能描述:显示当前月份)date + %d
(功能描述:显示当前是哪一天)date "+%Y-%m-%d %H:%M:%S"
(功能描述:显示当前年月日时分秒)
-
应用实例
- 案例1:显示当前时间信息
date
- 案例2:显示当前时间年月日
date "+%Y-%m-%d"
- 案例3:显示当前时间年月日时分秒
- 案例1:显示当前时间信息
5.2 date 指令 - 设置日期
- 基本语法:
date -s 字符串时间
- 应用案例
- 案例1:设置系统当前时间,比如设置成 2022-22-22 22:22:22
=>date -s "2022-22-22 22:22:22"
- 案例1:设置系统当前时间,比如设置成 2022-22-22 22:22:22
5.3 cal 指令
-
说明:查看日历指令
-
基本语法:
cal [选项]
(功能描述:不加选项,显示本月日历) -
应用实例:
-
案例1:显示当前日历
cal
-
案例2:显示2022年日历
cal 2022
-
6 搜索查找类
6.1 find 指令
-
基本说明:
find 指令将从指定目录向下递归地遍历其各个子目录,将满足的文件或者目录显示在终端 -
基本语法:
find [搜索范围] [选项]
-
选项说明:
-
应用实例:
-
案例1:按文件名:根据名称查找 /home 目录下的 hello.txt 文件
=>find /home -name hello.txt
-
案例2:按拥有者:查找 /opt 目录下,用户名称为 nobody 的文件
=>find /opt -user nobody
-
案例3:查找整个 Linux系统下大于200M 的文件 (+n 大于 -n小于 n等于),单位有 k ,M,G
=>find / -size +200M
-
6.2 locate 指令
-
介绍:
locate指令可以快速定位文件路径,locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。locate指令无需遍历整个文件系统,查询速度较快,为了保证查询结果的准确度,管理员必须定期更新locate时刻 -
基本语法:
locate 搜索文件
-
特别说明:
由于 locate指令 基于数据库进行查询,所以第一次运行前,必须使用updatedb
指令创建 locate数据库 -
应用实例:
- 案例1:请求使用 locate指令 快速定位 hello.txt 文件所在目录
- 案例1:请求使用 locate指令 快速定位 hello.txt 文件所在目录
6.3 which 指令
- 基本介绍:which指令,可以查看某个指令在哪个目录下
- 案例演示:查看
ls
指令,在哪个目录下
=>which ls
6.4 grep 指令 和 管道符号 |
-
说明:
grep
过滤查找,管道符 “|” ,表示将前一个命令的处理结果输出传递给后面的命令处理 -
基本语法:
grep [选项] [源文件]
-
常用选项:
-
应用实例:
- 案例1:请在 hello.txt 文件中,查找 “yes” 所在行,并且显示行号
写法1 =>cat /home.hello.txt | grep "yes"
写法2 =>grep -n "yes" /home/hello.txt
- 案例1:请在 hello.txt 文件中,查找 “yes” 所在行,并且显示行号
7 压缩和解压类
7.1 gzip / gunzip 指令
-
说明:gzip 用户压缩文件,gunzip 用于解压
-
基本语法
gzip 文件
(功能描述:压缩文件,只能将文件压缩为 *.gz文件)gunzip 文件
(功能描述:解压缩文件命令)
-
应用实例
- 案例1:将 /home 下的 hello.txt 文件进行压缩
=>gzip /home/hello.txt
- 案例2:将 /home下的 hello.txt 文件进行解压缩
=>gunzip /home/hello.txt.gz
- 案例1:将 /home 下的 hello.txt 文件进行压缩
7.2 zip / unzip 指令
-
介绍:
zip 用于压缩文件,unzip 用于解压缩,这个在项目打包发布中很有用 -
基本语法:
zip [选项] XXX.zip
将要压缩的内容 (功能描述:压缩文件和目录的命令)unzip [选项] XXX.zip
(功能描述:解压缩文件)
-
zip 常用选项:
-r
:递归压缩,及压缩目录
-
unzip 的常用选项:
-d<目录>
:指定解压后文件的存放目录
-
应用实例:
-
案例1:将 /home 下的 所有文件/文件夹 进行压缩成 myhome.zip
=>zip -r myhome.zip /home/
[将home目录及其包含的文件和子文件夹都压缩]
-
案例2:将 myhome.zip 解压到 /opt/tmp 目录下
=>unzip -d/opt/tmp /home/myhome.zip
-
7.3 tar 指令
-
说明:
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
-