本文章最初发布在 XJHui’s Blog,未经允许,任何人禁止转载!
注意:最新修改版本已发布在 这里,点击前往查看!
运行级别
级别概述
-
系统运行级别示意图:
-
运行级别介绍:
- 0关机
- 1单用户【找回root密码】
- 2多用户状态【无网络服务】
- 3多用户状态,有网络服务【常用】
- 4保留
- 5图形界面【常用】
- 6重启
-
查看当前系统运行级别:
vim /etc/inittab
运行结果:
切换运行级别
-
语法:
init [0,6] # 不要使用4,因为4未被指定
-
实例:
运行结果:
切换为图形化界面:
运行结果:
-
特殊级别:
-
级别0:关机
init 0
运行结果:
-
级别6:重启
init 6
运行结果:
-
-
两种修改方式的区别:
vim /etc/inittable # 在该文件中将系统运行级别修改为3,系统每次重启后运行级别均为3
init 3 # 命令行中执行init3,系统重启后运行级别与/etc/inittable中一致,未必是3
注意:如果编辑/etc/inittable将系统运行级别设置为0,系统会无限重启!如何解决?看完下面的面试题就知道了
## 面试题
> 如何找回丢失的root密码?
1. 原理:进入单用户模式(系统运行级别为1),修改root密码(进入单用户模式不需要输入root密码)
2. 操作:
- 服务器启动时,按下enter键,输入e,上下移动光标选中第二行,再输入e:
<img src="https://cdn.jsdelivr.net/gh/xingjiahui/CDN@latest/2020/09/24/3f4c878dc981bf7cee98de474c48bb59.png" width="70%"/>
- 下图命令行中输入 `空格1`,按下回车,输入b:
<img src="https://cdn.jsdelivr.net/gh/xingjiahui/CDN@latest/2020/09/24/4e3928c2246059f685b4ac4ab34b097e.png" width="70%"/>
- 成功进入系统(无需root密码):
<img src="https://cdn.jsdelivr.net/gh/xingjiahui/CDN@latest/2020/09/24/6c89232f77dcd7c9fce53b46b3287256.png" width="70%"/>
- 使用passwd命令修改密码:
<img src="https://cdn.jsdelivr.net/gh/xingjiahui/CDN@latest/2020/09/24/7e6e92a15ab5757764a2fd907cdf163c.png" width="70%"/>
3. 安全:该方法只能在服务器操作(不可远程)且一般的人也接触不到服务器,所以足够安全。个人电脑,安全??
# 帮助指令
## 介绍
当对某个命令不熟悉时,可以使用linux提供的帮助指令来了解这个命令的使用方法。
## man指令
1. 语法:
```shell
man [命令或配置文件] # 获取该命令的使用方法以及其它信息
-
案例:查看ls命令的帮助信息
man ls
运行结果:
注意:按q退出man指令
help指令
-
语法:
help 命令 # 获取该命令的使用方法以及其它信息
-
实例:查看cd目录作用
help cd
运行结果:
文件目录类
pwd
-
语法:
pwd # 显示当前工作目录的绝对路径
-
案例:显示当前工作目录
ls
-
语法:
ls # 显示当前目录下所有文件和文件夹 ls -l # 显示文件和文件夹的详细信息,可简写为ll ls -lh # 显示文件和文件夹的详细信息,大小非字节 ls -al # 显示所有文件(含隐藏文件)的详细信息
-
案例:查看当前路径下所有文件详细信息:
ls -al
运行结果:
cd
-
语法:
cd 目录 # 切换到指定路径
-
绝对路径和相对路径:当前所在路径为/root要求切换到/home路径下
- 绝对路径:/home
- 相对路径:…/home(…代表返回上一级目录)
-
案例:
-
使用绝对路径切换到root目录
cd /root
-
回到上一级
cd ..
-
回到家目录
cd ~
-
mkdir
-
语法:
mkdir -p[可选,创建多级目录] 目录名 # 创建文件夹
-
案例:
-
/home目录下创建dog目录
mkdir /home/dog
-
/home目录下创建/animal/tiger
mkdir -p /animal/tiger
-
rmdir
-
语法:
rmdir 目录名 # 只能删除空目录
-
案例:
-
删除空目录tiger:
rmdir tiger/
-
删除非空目录animal:
rm -rf animal/
注意:rmdir不能删除非空目录,可以使用rm -rf命令代替
-
touch
-
语法:
touch 文件名 # 创建空文件
-
案例:
-
创建一个空文件hello.txt
touch hello.txt
运行结果:
-
一次创建多个文件 hello1.txt hello2.txt
touch hello1.txt hello1.txt
-
cp
-
语法:
cp -r[递归复制] source dest # 将source拷贝到dest路径中
-
案例:
-
将aaa.txt移动到/root/test/中:
mv aaa.txt /root/test/
-
将/root/test目录拷贝到/home中:
cp -r /root/test /home # 递归复制
运行结果:
-
再次执行上个案例的拷贝命令:
cp -r /root/test /home # 递归复制
运行结果: <img src="https://cdn.jsdelivr.net/gh/xingjiahui/CDN@latest/2020/09/24/4c9beb97ad3b9de5561da90015918b8e.png" width="70%"/> 如何跳过询问,强制覆盖?使用\cp命令 ```shell \cp -r /root/test/ home/
运行结果:
-
rm
-
语法:
rm -r[可选,递归删除] f[可选,强制删除不提示] 文件名/目录 # 移除文件或目录
-
案例:
-
删除/root/linux.txt文件:
rm linux.txt
运行结果:
-
删除/root/windows.txt文件:
rm -f windows.txt # 不提示,强制删除
运行结果:
注意:和上一个案例区分,加上-f则不再询问是否删除
-
删除/root/bbb(非空)目录:
rm -rf /root/bbb # 强制递归删除非空目录
运行结果:
-
mv
-
语法:
mv 文件名 文件名 # 重命名 mv 文件名 路径 # 移动文件
-
案例:
-
将文件hello.cpp重命名为nihao.cpp:
mv hello.cpp nihao.cpp
-
将文件nihao.txt移动到/home/animal目录下:
mv nihao.cpp /home/animal/
-
cat
-
语法:
cat -n[可选,显示行号] 文件名 # 查看文件内容
-
案例:查看/etx/profile文件内容,并显示行号
cat -n /etc/profile
运行结果:
注意:执行cat命令后,文件内容会被一次显示,使用管道符|可分页显示
cat -n /etc/profile | more
运行结果:
注意:按空格键可向下翻页,此方法不支持向上翻页,按q退出more指令
more
-
语法:
more 文件名 # 全屏方式按页显示文本文件内容
-
案例:采用more指令查看文件 /etc/profile
more /etc/profile
运行结果:
快捷键:
- 下翻一行:enter
- 下翻页:空格、ctrl+f
- 上翻页:b、ctrl+b
- 退出more:q
less
-
语法:
less 文件名 # 按需加载,适合大文件的查看
-
案例:使用less命令查看/etc/profile的内容
less /etc/profile
快捷键与more基本相同,使用
/字符串
实现查询功能,n向下查询,N向上查询
>和>>
-
含义:
- > (输出重定向):会将文件原来的内容覆盖
- >>(追加写):不覆盖而是追加到文件的尾部
-
案例:
-
将ls -l指令显示的内容写入到a.txt文件中:
ls -l > a.txt
运行结果:
-
将ls 指令显示的内容追加写到a.txt文件中:
ls >> a.txt
运行结果:
-
将/etc/profile的内容写入到b.txt文件中:
cat /etc/profile > b.txt # 与cat|more|less等命令搭配使用
运行结果:
-
将
hello world
覆盖写入到a.txt文件中:echo "hello world" > a.txt
运行结果:
-
请在当前目录(/home)打印/root的文件列表:
ls -l /root # 打印其他路径下的文件目录,可以不cd到该路径下
运行结果:
-
echo
-
语法:
echo 变量/文本 # 输出环境变量、文本
-
案例:输入linux的path路径
echo $PATH # $PATH与windows下的path环境变量类似
运行结果:
head
-
语法:
head -n 5[可选,显示指定行数] 文件名 # 显示文件开头内容,默认显示前10行
-
案例
-
使用head命令显示/etc/profile文件的内容:
head /etc/profile # 默认显示前10行
运行结果:
-
使用head命令显示/etc/profile文件的前5行:
head -n 5 /etc/profile # 显示具体行数要加参数-n
运行结果:
-
tail
-
语法:
tail 文件 # 默认显示文件后10行内容 tail -n x 文件 # 与head类似也可以使用参数-n来显示具体后n行内容 tail -f 文件 # 实时追踪该文档的所有更新,工作中很常用
-
案例:
-
显示/etc/profile后5行:
tail -n 5 /etc/profile
运行结果:
-
实时追踪c.txt文件的变化:
# 在虚拟机中向c.txt文件追加写入内容,并在xshell中使用tail -f监控文件变化
运行结果:
注意:使用快捷键ctrl+c退出追踪
-
ln
-
语法:
ln -s [原文件或目录] [软链接] # 给原文件创建一个软链接(类似windows中个快捷方式)
-
案例:
-
/root目录下创建一个软链接,链接到/root目录:
ln -s /root linkToRoot
运行结果:
软链接的使用:
cd linkToRoot/
运行结果:
-
软链接的删除:
rm -rf linkToRoot # 注意:删除软链接时最后不要添加/
-
history
-
语法:
history # 显示所有历史指令 history 5 # 显示最近执行的5条指令 !123 # 执行history中第123条指令
-
案例:
-
显示最近执行的6条指令:
history 6
运行结果:
-
执行第286行指令:
!286
运行结果:
-
不足之处,欢迎留言,会及时回复,及时更正!
创作不易,感谢支持!