CentOS7找回root密码

实现过程

如何找回丢失的root密码,如果我们不小心忘记了root密码,怎么找回呢?

  1. 开机按esc,选择CentOS Linux (3.10.0-693…….) 按 e键

1610803414436.png

  1. 将光标一直移动到 LANG=en_US.UTF-8 后面,空格,再追加init=/bin/sh。这里特别注意,需要写在UTF-8后,保持在同一行,并注意空格。由于屏幕太小,会自动添加\换行,这个是正常的。

1610803414473.png

  1. 按 Ctrl+x,进入单用户模式。
  2. 挂载根目录 [mount -o remount ,rw /],(注意mount与-o之间和rw与/之间的有空格)
  3. 选择要修改密码的用户名,这里选择root用户进行修改,可以更换为你要修改的用户 passwd root,输入2次一样的新密码,注意输入密码的时候屏幕上不会有字符出现
  4. 输入touch /.autorelabel 更新系统信息
  5. 最后输入以下命令重启系统即可exec /sbin/init或者exec /sbin/reboot

1610803414515.png

重启过程慢,耐心等等,登录root用户时需要使用新密码进行登录。

注意细节

  如果想要找回root密码,不能远程操控找回,必须进入机房,直接操作机器,你都可以进入机房了,当然是你本人了,其他人没有得到允许是不可以进入机房的。

帮助指令

基本介绍

当我们对某个指令不熟悉,我们可以使用Linux提供的帮助指令来了解这个指令的使用方法。

man获取帮助信息

  • 基本语法
    man [命令或者配置文件]:获取帮助信息
  • 应用案例
    查看ls命令的帮助信息,在终端中输入[man ls]回车即可。

help指令

  • 基本语法
    help 命令(功能描述,获取shell内置命令的帮助信息)
  • 应用案例
    查看cd命令的帮助信息,在终端中输入[help cd]指令

1610803414556.png

百度帮助更直接

虽然上面两个都可以来获取指令帮助,但是需要英语功底,如果英语不太好,我还是推荐大家直接百度靠谱。

时间日期类指令

cal指令

  • 基本介绍
    查看日历的指令
  • 基本语法
    cal [选项]:不加选项,显示本月日历
  • 应用案例
  1. 显示当前日历,指令[cal]

1610803414589.png

  1. 显示2020年日历,指令[cal 2020]

1610803414628.png

date指令

查看日期

  • 基本介绍
    date指令用于显示当前日期
  • 基本语法
    1、[date]:显示当前时间
    2、[date +%Y]:显示当前年份
    3、[date +%m]:显示当前月份
    4、[date +%d]:显示当前是哪一天
    5、[date “+%Y-%m-%d %H:%M:%S”]:显示年月日时分秒,注意‘-’和‘:’可以换成其他的字符,比如汉字 年、月、日、时、分、秒。
  • 应用案例
  1. 显示当前时间信息,指令[date]

1610803414658.png

  1. 显示当前时间年月日,指令[date “+%Y年%m月%d日”]

1610803414706.png

  1. 显示当前时间年月日时分秒,指令[date “+%Y年%m月%d日 %H:%M:%S”]

1610803414736.png

设置日期

  • 基本语法
    [date -s 字符串时间]
  • 应用案例
  1. 设置系统当前时间,比如设置成2019年9月1日 8:42:0,指令[date -s “2019-9-1 8:52:0”]

1610803414770.png

搜索查找类指令

find指令

  • 基本介绍
    find指令将从指定的目录向下递归遍历其各个子目录,将满足条件的文件或者目录显示在终端上。
  • 基本语法
    find [搜索范围] [选项];搜索范围往往指的就是目录
  • 选项说明
    选项 功能
    -name<查询方式> 按照指定的文件名查找模式查找文件
    -user<用户名> 查找属于指定用户名的所有文件
    -size<文件大小> 按照指定的文件大小查找文件
  • 应用案例
  1. 按文件名,根据名称查找/home目录下的hello.txt文件,指令[find /home -name hello.txt]

1610803414803.png

  1. 按拥有者,查找/opt目录下,用户名称为root的文件,指令[find ../opt/ -user root]

1610803414830.png

  1. 查找整个linux系统下不大于20M的文件(+n 大于,-n小于,n等于),指令[find /home -size -20M],由于整个系统不大于20M文件太多,因此对于练习选择/home目录。

1610803414860.png

grep指令和管道符指令

  • 基本介绍
    grep过滤查找指令,管道符号 ‘|’,表示将前一个命令的处理结果输出传递给后面的命令处理。
  • 基本语法
    grep [选项] 查找内容 源文件
  • 常用选项
    -n:功能是显示匹配行及行号。
    -i;功能是忽略字母大小写。
  • 应用案例
  1. 请在hello.txt文件中,查找”yes”所在的行,区分大小写,并且显示行号,指令[cat hello.txt | grep -n yes]

1610803414898.png

  1. 请在hello.txt文件中,查找”yes”所在的行,不区分大小写,并且显示行号,指令[cat hello.txt | grep -ni yes]

1610803414928.png

locate指令

  • 基本介绍
    locate指令可以快速定位文件路径,locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。locate指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新locate时刻。
  • 基本语法
    locate 搜索文件
  • 特别说明
    由于locate指令基于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建locate数据库。
  • 应用案例
    请使用locate指令快速定位hello.txt文件所在目录。

1610803414967.png

文件目录类指令

cat指令

  • 基本介绍
    cat指令用于查看文件内容
  • 基本语法
    cat [选项] 要查看的文件
  • 常用选项
    -n:显示行号
  • 应用案例
  1. 查看/etc/profile文件内容,并显示行号,指令 [cat -n /etc/profile]

1610803415042.png

  • 细节说明
    cat只能浏览文件,不能修改文件,为了浏览方便,一般会带上管道命令 [| more],就是将比较长的文档进行分页显示,按下空格键到下一页。

1610803415097.png

1610803415146.png

cd指令

  1. 基本语法
    cd [参数] (功能描述,切换到指定目录)
  2. 常用参数
    cd ~或者cd,回到自己的家目录
    cd ..回到当前目录的上一级目录

绝对路径与相对路径

当  前工作目录是根目录下的root里,我们希望进入到home下,使用绝对路径下进入[/home],即从根目录下开始定位寻找,使用相对路径寻找home目录,相对路径[../home],从当前工作目录开始定位到需要的目录去, ..表示回到上一级目录。
[..]表示上一级目录。

应用案例

  1. 使用绝对路径切换到root目录,指令[cd /root]

1610803415174.png

  1. 使用相对路径切换到root目录,这里我们需要知道当前用户在哪个目录下,才能知道这个指令,假设用户在/usr/lib目录,回到root目录的指令 [cd ../../root]

1610803415208.png

  1. 表示回到当前目录的上一级目录,指令[cd ..]

1610803415242.png

  1. 回到家目录,指令 [cd 或者cd ~]

细节说明

相对路径与绝对路径的区别,相对路径前面不带/,绝对路径前面带有 /

cp指令

  • 基本说明
    cp指令用于拷贝文件到指定的目录
  • 基本语法
    cp [选项] source dest
  • 常用选项
    -r,递归复制整个文件夹
  • 应用案例
  1. 将/home/aaa.txt拷贝到/home/bbb目录下,指令 [cp aaa.txt bbb]

1610803415297.png

  1. 递归复制整个文件夹,将home/test整个目录拷贝拷贝到/home/sgy目录下,指令 [cp -r /home/test /home/sgy],路径可以使用相对路径,比如你现在在home目录下,则可以使用指令 [cp -r test sgy]

1610803415346.png

  • 细节说明
    强制覆盖不提示的方法是[\cp]
  1. \cp -rf zongguofeng linuxzgf

echo指令

  • 基本介绍
    echo输出内容到控制台
  • 基本语法
    echo [选项] [输出内容]
  • 应用案例
  1. 使用echo指令输出环境变量路径,指令[echo $PATH]

1610803415379.png

  1. 使用echo指令输出hello,world!

1610803415422.png

head指令

  • 基本介绍
    head用于显示文件的开头部分内容,默认情况下head指令显示文件的前10行内容
  • 基本语法
    head 文件:功能是查看文件头10行内容。
    head -n 5 文件:功能是查看文件头5行内容,5可以是任意数。
  • 应用案例
  1. 查看/etc/profile的前5行代码,指令[head -n 5 /etc/profile]

history指令

  • 基本介绍
    查看已经执行过的历史命令,也可以执行历史指令
  • 基本语法
    history:功能是查看已经执行过的历史命令。
  • 应用案例
  1. 显示所有的历史命令,指令[history]

1610803415456.png

  1. 显示最近使用过的10个指令,指令[history 10]

1610803415494.png

  1. 执行历史编号为212的指令,指令[!212]

1610803415541.png

less指令

  • 基本介绍
    对于生产环境、测试环境中的日志文件,我们可以通过less指令来进行查看并通过关键字进行查找。less命令的含义是:分屏查看文件内容。
    它要比more命令更加强大,less在显示文件内容时,并不是一次将整个文件加载之后才显示,而是按需加载,对于显示大文件具有较高的效率。
  • 基本语法
    less [参数] 要查看的文件
  • 常用操作命令

/字符串 :向下搜索“字符串” ?字符串 :向上搜索“字符串” n :重复前一个搜索 N :反向重复前一个搜索 b :向后翻一页 空格键:滚动一页 回车:滚动一行 pageDown:向下翻一页 pageUp:向上翻一页 G:移动到最后一行 g:移动到第一行 :q:退出

  • 应用案例
  1. 采用less查看一个大文件,/opt/大文件test.txt

1610803415566.png

  • 细节说明
      查询有两种:/字符串,代表向下查询所有;?字符串,代表向前查询所有。可以配合n 顺向搜索一个,N逆向搜索一个,再配合g 移动到第一行;G移动到最后一行。

ln指令

  • 基本介绍
    ln指令是一个软链接指令也叫符号链接指令,类似windows里的快捷方式,主要存放了链接其他文件的路径。
  • 基本语法
    ln -s [源文件或目录] [软链接名]:功能是给源文件创建一个软链接。
  • 应用案例
  1. 在/home 目录下创建一个软链接 linkToRoot,链接到 /root目录下,指令[ln -s /root linkToRoot]

1610803415623.png

  1. 删除软链接linkToRoot,指令[rm -rf linkToRoot]

1610803415673.png

  • 细节说明
      删除软链接时,linkToRoot后面不能带/ ,即[rm -rf linkToRoot/],否则会提示资源忙,导致删除不了软链接,要去掉 / 才可以正确删除软链接,正确的指令为 [rm -rf linkToRoot]。

当我们使用pwd指令查看目录时,依然看到的是软链接所在的目录。

ls指令

  1. 基本语法
    ls [选项] [目录或者文件]
  2. 常用选项
    -a:显示当前目录所有的文件和目录,包括隐藏的;
    -l:以列表的方式显示信息
    -h:以M为单位显示文件的大小
  3. 应用案例
    案例1:查看当前目录的所有内容信息并且以列表的方式显示信息

1610803415837.png

案例2:列出/opt目录下“大文件test.txt”文件的详细信息,指令[ls -l /opt/大文件test.txt]。

1610803415872.png

案例3:列出/opt目录下“大文件test.txt”文件的详细信息并且显示文件的大小单位为M,指令[ls -lh /opt/大文件test.txt]。

1610803415914.png

mkdir指令

  • 基本介绍
    mkdir指令用于创建目录
  • 基本语法
    mkdir [选项] 要创建的目录
  • 常用选项
    -p , 创建多级目录
  • 应用案例
  1. 创建一个目录 /home/dog,指令 [mkdir /home/dog]

1610803415955.png

  1. 创建多级目录 /home/animal/tiger,指令[mkdir -p /home/animal/tiger]

1610803415984.png

more指令

  • 基本介绍
    more指令是一个基于VI编辑器的文本过滤器,它以全屏的方式按页显示文本内容。
  • 基本语法
    move 要查看的文件
  • 常用操作命令

Enter 向下n行,需要定义。默认为1行 Ctrl+F 向下滚动一屏 空格键 向下滚动一屏 Ctrl+B 返回上一屏 = 输出当前行的行号 :f 输出文件名和当前行的行号 V 调用vi编辑器 !命令 调用Shell,并执行命令 q 退出more

  • 应用实例
  1. 采用more查看文件/etc/profile

mv指令

  • 基本介绍
    移动文件与目录或者重命名
  • 基本语法
  1. mv oldNameFile newNameFile (功能描述:重命名)
  2. mv /temp/movefile /targetFolder (功能描述:移动文件)
  • 应用案例
  1. 将/home/aaa.txt 文件重新命名为pig.txt,指令 [mv /home/aaa.txt /home/pig.txt]

1610803416016.png

  1. 将/home/pig.txt文件移动到/root目录下

1610803416052.png

  • 细节说明
      路径使用相对路径和绝对路径都是可以的,比如使用绝对路径 [mv /home/aaa.txt /home/pig.txt];如果用户在、home,则使用绝对路径时的指令为 [mv aaa.txt pig.txt]

pwd指令

  • 基本语法
    pwd (功能描述,显示当前工作目录的绝对路径)
  • 应用实例
    显示当前工作目录的绝对路径

1610803416086.png

rmdir指令

  • 基本介绍
    rmdir指令用于删除空目录
  • 基本语法
    rmdir [选项] 要删除的空目录
  • 应用案例
    删除一个目录 /home/dog

1610803416124.png

  • 细节说明
    rmdir删除的是空目录,如果目录下有内容是无法删除的。
    提示,如果删除的是非空目录,需要使用 [rm – rf 目录] 指令删除目录。

rm指令

  • 基本介绍
    rm指令用于删除文件或者目录。
  • 基本语法
    rm [选项] 要删除的文件或者目录
  • 常用选项
    -r:递归删除整个文件夹
    -f:强制删除不提示
  • 应用实例
  1. 删除/root目录下的hello.txt文件,指令[rm -f /root/hello.txt]

1610803416162.png

  1. 删除root中用于新建的多个文件hello1.txt,hello2.txt,指令 [rm -f hello1.txt hello2.txt]

1610803416196.png

  1. 递归强制删除整个文件夹/home/test,指令 [rm -rf /home/test或者rm -r -f /home/test];使用递归非强制删除/home/bbb文件夹,指令 [rm -r /home/bbb]

1610803416248.png

  • 细节说明
    强制删除不提示的方法,带上-f参数即可,如果需要递归删除可以将两个选项结合在一起,即-rf。

1610803416375.png

指定的路径可以使用绝对路径或者相对路径。

tail指令

  • 基本说明
    tail用于输出文件尾部的内容,默认情况下tail指令显示文件的后10行内容。
  • 基本语法
  1. tail 文件:功能是查看文件后10行内容。
  2. tail -n 5文件:功能是查看文件后5行内容,5可以是任意数字。
  3. tail -f 文件:功能是实时追踪该文档的所有更新,实际中非常有用。
  • 应用案例
  1. 查看/etc/profile最后5行的代码,指令[tail -n 5 /etc/profile]

1610803416451.png

  1. 实时监控mydata.txt,看看,如果文件有变化时,是否可以监控到这个变化,实时的追加日期,指令[tail -f mydata.txt],在Xshell中输入该指令后,在虚拟机中的Centos终端中使用[>>]指令追加一个内容到mydata.txt中,观察Xshell中是否输出追加的内容和日期。
    在CentOS中终端输入的指令如下

1610803416480.png

在XShell中相应的显示

1610803416537.png

touch指令

  • 基本说明
    touch用于创建空文件
  • 基本语法
    [touch 文件名称],文件名称要带有后缀
  • 应用案例
  1. 创建一个空文件hello.txt,指令 [touch hello.txt]

1610803416578.png

  1. 同时创建多个空文件hello1.txt, hello2.txt,指令 [touch hello1.txt hello2.txt]

1610803416626.png

重定向和追加指令

  • 基本说明
    [ > ]是输出重定向指令,这样会将原来文件的内容覆盖
    [ >> ]追加指令,不会覆盖文件的内容,而是追加到文件的尾部。
  • 基本语法
  1. ls -l > 文件:功能是将列表的内容写入文件a.txt(覆盖写)

1610803416674.png

说明:ls -l > a.txt,将ls -l的显示内容覆盖写入到a.txt文件中,如果该文件不存在,就创建该文件。

  1. ls -al >>文件 :功能是将列表的内容最加到文件aa.txt末尾。

1610803416734.png

  1. cat 文件1 > 文件2:功能是将文件1的内容覆盖到文件2。

1610803416772.png

  1. echo “内容” >> 文件:功能是将“内容”写入到文件的末尾。

1610803416815.png

  • 应用实例
  1. 将/home目录下的文件列表写入到home/info.txt中,指令 [ls -l /home/ > /home/info.txt]

1610803416861.png

  1. 将当前日历信息追加到 /home/mycal文件中 , 指令cal >> /home/mycal
  • 细节说明

和>>指令后面指定的文件,如果没有就会自动创建该文件,否则直接将相应的内容写入到文件中。 在Linux中创建的文件可以不加后缀。

系统管理命令

命令 说明
stat 显示指定文件的相关信息,比ls命令显示的内容更多
who 显示在线登录用户
hostname 显示主机名字
uname 显示系统信息
top 显示当前系统汇总耗费资源更多的进程
ps 显示瞬间的进程状态
du 显示指定的文件或者目录已经使用的磁盘空间总量
df 显示文件系统磁盘空间的额使用情况,df -h
free 显示当前内存和交换空间的使用情况,free -h
ifconfig 显示网络接口信息
netstat 显示网络状态信息
ping 测试网络的连通性
clear 清屏
kill 杀死一个进程,kill -9 进程号

压缩和解压类指令

gzip&gunzip指令

  • 基本说明
    gzip用于压缩文件,gunzip用于解压的
  • 基本语法
    gzip 文件:功能是压缩文件,只能将文件压缩为*.gz文件。
    gunzip 文件.gz:功能是解压文件。
  • 应用案例
  1. gzip压缩,将/home下的hello.txt文件进行压缩,指令[gzip hello.txt]

1610803416893.png

  1. unzip解压,将/home下的hello.txt.gz文件进行解压缩,指令[gunzip hello.txt.gz]

1610803416927.png

  • 细节说明
    当我们使用gzip指令进行压缩后,原来的文件不会被保留。

tar指令

  • 基本介绍
    tar是打包指令,最后打包后的文件是.tar.gz的文件。
  • 基本语法
    tar [选项] XXX.tar.gz 打包的内容:打包目录,压缩后的文件格式.tar.gz。
  • 选项说明
    -c:产生.tar打包文件。
    -v:显示详细信息。
    -f:指定压缩后的文件名。
    -z:打包同时压缩。
    -x:解压.tar文件
  • 应用实例
  1. 压缩多个文件,将/home/a1.txt和/home/a2.txt压缩成a.tar.gz,指令[tar -zcvf a.tar.gz a1.txt a2.txt]。

1610803416963.png

  1. 将/home的文件夹压缩成myhome.tar.gz,指令[tar -zcvf myhome.tar.gz /home/]

1610803417002.png

1610803417063.png

  1. 将a.tar.gz解压到当前目录,指令[tar -zxvf a.tar.gz]。

1610803417092.png

  1. 将myhome.tar.gz解压到/opt/tmp2/目录下,指令[tar -zxvf myhome.tar.gz -C /opt/tmp2]

1610803417128.png

  • 细节说明
    指定解压的目录事先要存在该目录,而且要加-C选项,如案例2,否则会报错。

zip&unzip指令

  • 基本介绍
    zip用于压缩文件,unzip用于解压的,这个在项目打包中很有用。
  • 基本语法
    zip [选项] XXX.zip 将要压缩的内容:压缩文件和目录的命令。
    unzip [选项] XXX.zip :解压缩文件。
  • zip常用选项
    -r:递归压缩,即压缩目录。
  • unzip常用选项
    -d<目录>:指定压缩后的存放目录。
  • 应用实例
  1. 将/home下的所有文件进行压缩成mypackage.zip,指令[zip -r mypackage.zip /home]。

1610803417167.png

1610803417196.png

  1. 将mypackage.zip解压到/opt/tmp目录下,指令[unzip -d /opt/tmp/ mypackage.zip]。

1610803417233.png

1610803417270.png

  • 细节说明
    解压时所指定的目录事先可以没有,会自动创建指定目录。