Linux实用指令
1. 指定运行级别
运行级别说明:
-
0:关机
-
1:单用户[找回丢失密码]
-
2:多用户状态[无网络服务]
-
3:多用户状态[有网络服务]
-
4:保留级别
-
5:图形界面
-
6:系统重启
2. 修改默认运行级别
开机后默认进入的运行级别
vim /etc/inittab
# 修改最后一行:
# id:5:initdefault:
# 设置为0或6需谨慎,如果设置了,开启画面出现前按Enter键阻止引导,e → e → 修改最后一行 → b(重新引导)
3. 切换运行级别
3.1 基本指令
init [012356] # 如 init 3 进入多用户状态
# 测试:
# 1.从图形化切到级别3
init 3
# 2.再切回图形化
init 5
# 3.切换到关机级别
init 5
3.2 面试题
如何找回 root 密码,如果我们不小心,忘记 root 密码,怎么找回。
思路: 进入到 单用户模式,然后修改 root 密码。因为进入单用户模式,root 不需要密码就可以登录。
动手:
开机->在引导时输入 回车键-> 看到一个界面输入 e -> 看到一个新的界面,选中第二行(编辑内核)在输入 e-> 在这行最后输入1 ,再输入 回车键->再次输入 b ,这时就会进入到单用户模式。
这时,我们就进入到单用户模式,使用 passwd 指令来修改 root 密码。
练习:
1.假设我们的 root 密码忘记了,请问如何找回密码
2.请设置我们的 运行级别,linux 运行后,直接进入到 命令行界面,即进入到 3 运行级别
4. 帮助指令
man 指令及配置文件
help shell内置指令
百度
Linux指令查询网址,如:https://wangchujiang.com/linux-command/
5. 文件目录指令
5.1 pwd指令
pwd # 显示当前所在的目录
5.2 ls指令
ls [选项] [目录或文件] # 查看文件信息
ls -a # 查看所有文件和目录,包括隐藏的
ls -l # 以列表的方式显示
ll # ls -l的缩写,在shell中谨慎使用
5.3 cd指令
cd 路径 # 进入指定文件夹
cd ~: # 回到家目录
cd ..: # 回到上一级目录
# 练习:
# 1.使用绝对路径,切换到root目录
cd /root
# 2.使用相对路径,切换到root目录,比如当前在/usr/lib
cd ../../root
# 3.回到上一级目录
cd ..
# 4.回到家目录
cd
cd ~ # 两种方式均可以
5.4 mkdir指令
mkdir [选项] 路径 # 创建文件夹
mkdir -p 路径 # 创建多级文件夹
5.5 rmdir指令
rmdir [选项] 路径 # 删除空文件夹
rmdir -r 路径 # 递归删除空文件夹
# 文件夹下有内容,则无法删除
5.6 touch 指令
touch 文件路径
# 可以一次创建多个文件
touch 文件路径1 文件路径2
5.7 cp指令
拷贝文件到目标路径
5.7.1 基本语法
cp [选项] 源路径 目标路径
cp 源路径 目标路径 # 拷贝单个文件
cp -r 源路径 目标路径 # 拷贝文件夹
# 小练习:
# 1./home下创建test1文件夹
touch /home/test1
# 2.test1文件夹中创建a.txt,b.txt,c.txt三个文件
cd test1
# 3.把test1中的a.txt复制到/home下
# 4.新建一个文件夹test2
# 5.拷贝整个test1到test2下
5.7.2 补充
当拷贝时发现相同文件,会提示[是否覆盖?]
\cp [选项] 源路径 目标路径 # 取消提示,强制复制
5.8 rm指令
删除目录或者文件
5.8.1基本语法
rm [选项] 目标路径
rm 文件路径 # 删除文件
rm -r 文件夹路径 # 删除文件夹
rm -f xxxx # 强制删除不提示
# 小练习:
# 1.删除test1中的a.txt文件
rm /home/test1/a.txt
# 2.删除test2整个文件夹
rm -r /home/test2
5.9 mv指令
移动文件或重命名
5.9.1 基本语法
mv 源路径 目标路径
# 小练习:
# 1.修改test1中的a.txt 为 d.txt
cd /home/test1
mv a.txt d.txt
# 2.把test1中的c.txt 移动 到/home下
mv /home/test1/c.txt /home/
5.10 cat指令
显示文件内容
5.10.1 基本语法
cat [选项] 文件路径
cat 文件路径 # 显示文件内容
cat -n 文件路径 # 显示文件内容,并显示行号
# 小练习:
# 1.用cat显示/etc/profile 的内容,并显示行号
cat -n /etc/profile
5.10.2 补充说明
正常情况为了方便阅读,我们会在cat指令最后加上管道符"
|",把内容传给more,分页显示
如:
cat -n /etc/profile | more
5.11 more指令
more指令是基于vi编辑器的文本过滤器,以全屏的方式按页显示文本内容
more指令中内置了很多快捷键,用起来很方便
5.11.1 基本语法
more 文件路径
5.11.2 快捷键
空格 向下翻一页
Enter 向下翻一行
q 立即离开
Ctrl+F 向下滚动一屏
Ctrl+B 向上滚动一屏
= 显示当前行号
:f 输出文件名和当前行号
5.12 less指令
比more更加强大,功能比more更过,这里只介绍部分
5.12.1 基本语法
less 文件路径
5.12.2 快捷键
空格 向下翻一页
pagedown 向下翻一页
pageup 向上翻一页
/字符串 向下查找[字符串],n下一个,N上一个
?字符串 向上查找[字符串],n下一个,N上一个
q 离开less
5.13 >指令/>>指令
5.13.1 基本说明
把前方语句的结果存进文件,若文件不存在会自动创建
>:输出重定向 会覆盖原来文件内容
>>:追加重定向 追加到文件末尾
5.13.2 示例
# 1.a.txt里写上任意内容
echo 'hello' > a.txt
# 2.把ll 查找的结果,用输出重定向写进a.txt
ll > a.txt
# 3.b.txt里写上任意内容
echo 'hello' > b.txt
# 4.把ll 查找的结果,用追加重定向写进b.txt
ll >> b.txt
# 小练习:
# 1.把/etc/profile 的内容 写进 /home/c.txt中
cat /etc/profile > /home/c.txt
5.14 echo指令
把内容输出到控制台
# 如下:
echo "我是杨家三少"
echo $PATH
# 小练习:
# 1.用echo输出'hello world'
echo 'hello world'
5.15 head指令
head
用于显示文件的开头部分内容,默认情况下
head 指令显示文件的前
10 行内容
5.15.1 基本语法
head 文件路径 # 查看文件前10行
head -n 5 文件路径 # 查看文件前5行
# 小练习:
# 1.查看/etc/profile 的前5行内容
head -n 5 /etc/profile
5.15 tail指令
tail
用于显示文件的结尾部分内容,默认情况下tail指令显示文件的后10行内容
5.15.1 基本语法
tail 文件路径 # 查看文件后10行
tail -n 5 文件路径 # 查看文件后5行
tail -f 文件路径 # 实时追踪文件所有的更新-----经常使用
# 小练习:
# 1.查看/etc/profile 的后5行内容
tail -n 5 /etc/profile
# 2.实时追踪/home/myinfo.txt,在虚拟机上更新myinfo.txt,看xshell的效果
tail -f /home/myinfo.txt
5.16 ln指令
软链接也叫符号链接,类似于 windows 里的快捷方式,主要存放了链接其他文件的路径
ln -s 源文件或源文件夹 软连接名
# 测试:
# 1. 在/home目录下创建/root的软链接,名字为linktoroot
ln -s /root /home/linktoroot
# 2. cd 到软链接,然后pwd,查看当前路径
cd /home/linktoroot
pwd # /home/linktoroot
# 3. 创建一个a.txt的文件
touch a.txt
# 4. cd 到 /root目录,查看是否有变化
cd /root
ll
# 5. 删除/home下的linktoroot
rm -r /home/linktoroot
5.17 history指令
查看已经执行过历史命令,也可以执行历史指令
history # 查看所有的历史指令
history 10 # 查看最近执行的10条指令
!100 # 执行编号为100的指令
所以,在服务器实际操作时,指令不要瞎逼乱输
6. 时间日期类
6.1 date 指令
6.1.1 基本语法
date # 显示当前日期
data +%Y # 显示当前年份
data +%m # 显示当前月份
data +%d # 显示当前天
data "+%Y-%m-%d %H:%M:%S" # 中间有空格,应该使用"",否则将认为是两个参数而报错
# 小练习:
# 1.显示当前时间信息
date
# 2.显示当前时间年月日
date +%Y-%m-%d
# 3.显示当前时间年月日时分秒
date "+%Y-%m-%d %H:%M:%S"
6.2 cal指令
查看日历
cal # 显示当前日历
cal 2020 # 显示2020年的日历
cal 1 2020 # 显示2020年1月的日历
6.3 find指令
find 指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件或者目录显示在终端
find [范围] [选项]
# 范围:指路径,不写默认从当前向下找,类似于windows的查找
# 选项:
-name 文件名 # 按文件名查找
-user 用户名 # 查找属于该用户的所有文件
-size # 按文件大小查找
# +20M
# -20M
# 20M
# 20K
# 备注:文件名还可以使用正则表达式匹配,正则表达式要放在""中
# 小练习:
# 1.根据名称查找/home 目录下的 a.txt 文件
find /home -name a.txt
# 2.查找/opt 目录下,用户名称为 lxx 的文件
find /opt -user lxx
# 3.查找整个 linux 系统下大于 20M 的文件
find / -size +20M
# 4.查询/ 目录下,所有.txt 的文件
find / -name "*.txt"
6.4 grep 指令 和 管道符号 |
管道符:"|",表示将前一个命令的处理结果输出传递给后面的命令处理
grep:过滤查找
grep [选项] 过滤内容
# 选项:
# -n 显示匹配行及行号
# -i 忽略字母大小写
# 例子:
# 1.创建文件,写上多行,包含'yes'和'YES'
# 2.查找'yes'所在行,并显示行号
grep -n 'yes'
# 3.忽略大小写,查找'yes'所在行
grep -ni 'yes'
7. 压缩和解压类
7.1 gzip/gunzip 指令
用于压缩和解压文件
gzip 文件路径
gunzip gz文件路径
说明:使用gzip压缩文件之后,不会保留原来的文件
# 例子:
# 1.将 /home 下的 1.txt 文件使用gzip压缩
gzip /home/1.txt
# 2.将 /home 下的 1.txt.gz 文件使用gunzip解压
gunzip /home/1.txt.gz
7.2 zip/unzip 指令
zip 用于压缩文件, unzip 用于解压的,这个在项目打包发布中很有用的
zip [选项] xxx.zip 被压缩内容 # 压缩文件或者目录
-r # 压缩目录
unzip [选项] xxx.zip # 解压文件
-d 目录 # 指定压缩后的存放目录
# 例子:
# 1.将 /home 下的 所有文件压缩成 mypackage.zip
zip -r mypackage.zip /home
# 2.讲mypackge.zip解压到/opt/tmp下
zip -d mypackage.zip /opt/tmp
7.3 tar指令
tar 指令 是打包指令,最后打包后的文件是
.tar.gz
的文件
压缩:
tar -zcvf xx.tar.gz 被压缩内容 # 压缩
tar -zxvf xx.tar.gz -C 目标路径 # 解压
# z:使用gzip格式压缩
# c:创建压缩包
# x:解压
# f:显示压缩解压过程
# 例子:
# 1.压缩多个文件,将 /home/a1.txt 和 /home/a2.txt 压缩成 a.tar.gz
cd /home
tar -zcvf a.tar.gz a1.txt a2.txt
# 2.将/home 的文件夹 压缩成 myhome.tar.gz
tar -zcvf myhome.tar.gz /home
# 3.将 a.tar.gz 解压到当前目录
tar -zxvf a.tar.gz
# 4.将 myhome.tar.gz 解压到 /opt/ 目录下
tar -zxvf myhome.tar.gz -C /opt/