1. 切换终端的命令
- 在安装 Linux 的时候安装了图形化界面
f1 # 图形化界面
f2 - f7 # 命令行终端
- 在安装 Linux 的时候没有安装图形化界面
f1-f6 # 命令行终端
2. 通配符
- *
rm -i test* # 删除所有以 test 开头的文件
3. ; 符号
- 用 ; 号隔开每个命令,每个命令按照从左到右的顺序,顺序执行,彼此之间不关心是否失败,所有命令都会执行
- 命令: 命令A ; 命令B ; 命令C ; ...
ls /opt/test ; cd /opt/test
4. & 符号
- 在后台运行指定命令所启动的进程(即: 不占用命令行,可以继续输入其他命令执行)
- 命令: 命令 &
python manage.py runserver &
5. && 符号
- 当第一条命令执行完且没有报错,就会执行下一条命令以此类推
- 命令: 命令A && 命令B && 命令C && ...
ls /opt/test && cd /opt/test
6.|管道命令
- Linux 提供的管道符 “|” 将两条命令隔开,管道符左边命令的输出会作为管道符右边命令的输入

- 命令: 命令A | 命令B | 命令C | ...
- 检查python程序是否启动
ps -ef|grep "python"
- 找到/tmp目录下所有txt文件
ls /tmp|grep '.txt'
- 检查nginx的端口是否存活
netstat -tunlp|grep nginx
7. || 符号
- || 和 python 中的用法类似,只有左边的命令执行失败后才会执行右边的命令
- 命令: 命令A || 命令B || 命令C || ...
ls /opt/test || cd /opt/test
8. tab键补全
- 双击tab键可以对命令或路径进行补全
- 例如: 输入 rm 然后双击 tab 键即可查看效果(路径同理)
9. 帮助手册
- 命令: man 指令 -> 在帮助手册中查看当前指令的参数和使用方式
- 帮助手册的使用方式:
- 按键: q : 退出帮助手册
- 按键: ↑ ↓ ← →: 查看帮助手册
man rm
- 命令: 指令 --help -> 查看当前指定的使用方式(即: 简易版的帮助手册)
rm --help
10. tty 命令 -> 查看终端信息的命令
tty
11. 修改主机名的命令
- 命令: hostnamectl set-hostname 主机名 -> 只有在下一次登陆后才能生效
hostnamectl set-hostname Kevin_Linux
12. logout 命令 -> 注销当前用户(即: 登出)
logout
13. exit 命令 -> 退出控制台
exit
14. reboot命令 -> 重启 Linux 命令
reboot
15. poweroff 命令 -> Linux 关机命令
poweroff
16. 定义变量
- 命令: 变量名=值 -> 注意: 空格的左右两边不能有空格
- 注意: Linux 变量配置一次,退出登录后就会失效(即: 下次再登录进来就没有该变量了),解决办法就是配置全局变量环境
abc='值'
17. 定义全局环境变量
- 当每一次登录 Linux 的时候都会执行一边全局环境变量文件
- 作用: 实现变量的永久性,因为当每一次登录 Linux 的时候都会执行一边全局环境变量文件,那么你所定义的变量就会重新写入Linux中
- 进入全局环境变量文件
vim /etc/profile
- 在全局环境变量文件的底部写入你要定义的变量
abc='值'

- 重新执行全局环境变量文件,使其修改的内容生效
source /etc/profile
18. echo 命令 -> 打印
- 命令: echo xxx -> 打印你想打印的内容
echo '内容'
- 命令: echo $变量名 -> 打印变量值
echo $abc
echo $PATH
19. grep 命令 -> 筛选文本内容
- 命令: grep [参数] [--color=auto] [字符串(即: 需要筛选的内容)] 文件
- 参数:
- -i : 忽略大小写
- -n : 输出行号
- -v : 反向选择(即: 筛选出不包含【筛选内容】的内容)
- --color = auto : 给关键词部分添加颜色
grep -i -n 'kswapd0' psinfo.txt
- 例题
- 找出/etc/passwd下root用户所在行,以及行号,显示颜色
cat /etc/passwd | grep '^root' --color=auto -n
- 找出/etc/passwd所有不允许登录的用户
grep /sbin/nologin /etc/passwd
- 找到/etc/passwd的所有与mysql有关行,行号
cat /etc/passwd | grep 'mysql' -n
- 找到/etc/profile的除了注释行以外的所有内容
grep -v '^#' /etc/profile
- 找到/etc/profile的除了空白行以外的所有内容
grep -v '^$' /etc/profile
- 找到/etc/profile的除了注释行和空白行以外的所有内容
grep -v '^#' /etc/profile | grep -v '^$'
20. alias 命令 -> 设置命令的别名
- alias 命令的作用就是当你设置了命令的别名,在执行该条命令的时候,实际上是执行了另一条命令
- 使用场景: 一般都会给 rm(删除) cp(覆盖) mv(移动) 等命令设置别名,防止新手误操作
- 查看系统的命令别名
alias
# 结果
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
- 给命令设置别名
- 命令: alias 命令名称='命令'
alias rm='echo 请不要使用rm命令'
- 删除别名
- 命令: unalias 命令名称
unalias rm
21. which 命令 -> 查找指定命令的绝对路径
- 介绍:
- which命令用于查找并显示指定命令的绝对路径,环境变量PATH中保存了查找命令时需要遍历的目录
- which指令会在环境变量$PATH设置的目录里查找符合条件的文件。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令
- 使用场景: 查看某个系统命令是否存在,以及执行的到底是哪一个位置的命令
- 命令: which 命令名称
which python
# 结果
/usr/bin/python



22. scp 命令 -> 用于Linux之间复制文件或文件夹
- 介绍: scp 是 secure copy 的缩写,scp 是 Linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令
- 参数:
- -r : 递归复制整个目录
- -v : 显示传递过程
- -q : 不显示传输进度条
- -C : 允许压缩
- 将自己Linux下的文件或文件夹复制到别人的Linux下的指定路径中
- 命令: scp 本地文件的路径 远程用户名@远程ip:远程文件夹的绝对路径/ -> 将自己Linux下的文件复制到别人的Linux下的指定路径中
- 注意: 需要输入对方的Linux密码才能进行复制
scp /tmp/chaoge.py root@192.168.1.155:/home/
- 命令: scp 本地文件的路径 远程用户名@远程ip:远程文件夹的绝对路径/文件名.后缀名 -> 将自己Linux下的文件复制到别人的Linux下的指定路径中,并且将该文件该为指定的文件名
- 注意: 需要输入对方的Linux密码才能进行复制
scp /tmp/chaoge.py root@192.168.1.155:/home/chaoge_python.py
- 命令: scp -r 本地文件夹的路径 远程用户名@远程ip:远程文件夹的绝对路径/ -> 将自己Linux下的文件夹复制到别人的Linux下的指定路径中
- 注意: 需要输入对方的Linux密码才能进行复制
scp -r /tmp/oldboy root@192.168.1.155:/home/
- 将别Linux下的文件或文件夹复制到自己的Linux下的指定路径中
- 命令: scp 远程用户名@远程ip:远程文件的绝对路径/ 本地文件夹的路径 -> 将别人Linux下的文件复制到自己的Linux下的指定路径中
- 注意: 需要输入对方的Linux密码才能进行复制
scp root@192.168.1.155:/home/oldboy.txt /tmp/
- 命令: scp 远程用户名@远程ip:远程文件的绝对路径/ 本地文件夹的路径 -> 将别人Linux下的文件复制到自己的Linux下的指定路径中,并且将该文件该为指定的文件名
- 注意: 需要输入对方的Linux密码才能进行复制
scp root@192.168.1.155:/home/oldboy.txt /tmp/oldboy_new.txt
- 命令: scp -r 远程用户名@远程ip:远程文件夹的绝对路径/ 本地文件夹的路径 -> 将别人Linux下的文件夹复制到自己的Linux下的指定路径中
- 注意: 需要输入对方的Linux密码才能进行复制
scp -r root@192.168.1.155:/home/oldboy /home/
23. du 命令 -> 查看文件或文件夹大小
- 参数:
- -s : 显示当前或指定文件夹的总大小
- -h : 以k,M,G为单位显示,可读性强
- 列出当前文件夹中每个文件或文件夹的大小
- 命令: du -> 以字节为单位显示
du # 以字节为单位显示大小
- 命令: du -h -> 以k,M,G为单位显示大小
du -h # 以k,M,G为单位显示大小
- 查看当前文件夹的大小
- 命令: du -s -> 以字节为单位显示
du -s # 以字节为单位显示大小
- 命令: du -sh -> 以k,M,G为单位显示大小
du -sh # 以k,M,G为单位显示大小
- 查看当前目录下的指定文件的大小
- 命令: du 文件名.后缀名 -> 以字节为单位显示
du test.py # 以字节为单位显示大小
- 命令: du -h 文件名.后缀名 -> 以k,M,G为单位显示大小
du -h test.py # 以k,M,G为单位显示大小
- 查看指定路径下的指定文件的大小
- 命令: du 路径/文件名.后缀名 -> 以字节为单位显示
du movie/a.py # 以字节为单位显示大小
- 命令: du -h 路径/文件名.后缀名 -> 以k,M,G为单位显示大小
du -h movie/a.py # 以k,M,G为单位显示大小
- 查看指定路径下的指定文件夹中每个文件或文件夹的大小
- 命令: du 路径/文件夹名 -> 以字节为单位显示
du movie/DC # 以字节为单位显示大小
- 命令: du -h 路径/文件夹名 -> 以k,M,G为单位显示大小
du -h movie/DC # 以k,M,G为单位显示大小
- 查看指定路径下的指定文件夹的大小
- 命令: du -s 路径/文件夹名 -> 以字节为单位显示
du -s movie/DC # 以字节为单位显示大小
- 命令: du -sh 路径/文件夹名 -> 以k,M,G为单位显示大小
du -sh movie/DC # 以k,M,G为单位显示大小
24. top 命令 -> 实时监视进程活动与系统负载等信息
- top 命令的介绍:
- 一般用于动态地监视进程活动与系统负载等信息
- 涵盖了许多 Linux 负载查看命令的一个集合
- 按键: q : 退出实时监控
top

- 分析图片的信息
第一行 (uptime)
系统时间 主机运行时间 用户连接数(who) 系统1,5,15分钟的平均负载
第二行:进程信息
进程总数 正在运行的进程数 睡眠的进程数 停止的进程数 僵尸进程数
第三行:cpu信息
1.5 us:用户空间所占CPU百分比
0.9 sy:内核空间占用CPU百分比
0.0 ni:用户进程空间内改变过优先级的进程占用CPU百分比
97.5 id:空闲CPU百分比
0.2 wa:等待输入输出的CPU时间百分比
0.0 hi:硬件CPU中断占用百分比
0.0 si:软中断占用百分比
0.0 st:虚拟机占用百分比
第四行:内存信息(与第五行的信息类似与free命令)
8053444 total:物理内存总量
7779224 used:已使用的内存总量
274220 free:空闲的内存总量(free+used=total)
359212 buffers:用作内核缓存的内存量
第五行:swap信息
8265724 total:交换分区总量
33840 used:已使用的交换分区总量
8231884 free:空闲交换区总量
4358088 cached Mem:缓冲的交换区总量,内存中的内容被换出到交换区,然后又被换入到内存,但是使用过的交换区没有被覆盖,交换区的这些内容已存在于内存中的交换区的大小,相应的内存再次被换出时可不必再对交换区写入。
25. free 命令 -> 查看内存状态(即: 查看内存大小)
- 介绍:
- free 命令一般用于显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等
- free 命令如果不使用单位参数,默认以字节为单位显示
- 参数:
- -b : 以Byte为单位显示内存使用情况
- -k : 以KB为单位显示内存使用情况
- -m : 以MB为单位显示内存使用情况
- -h : 以合适的单位显示内存使用情况,最大为三位数,自动计算对应的单位值。单位有:
- B = bytes
- K = kilos
- M = megas
- G = gigas
- T = teras
- -o : 不显示缓冲区调节列。
- -s<间隔秒数> : 持续观察内存使用状况。
- -t : 显示内存总和列。
- -V : 显示版本信息
free # 以字节为单位显示
free -h # 以k,M,G为单位显示大小
26. chattr 命令 -> 改变文件或文件夹的属性
- 相关属性:
- a : 让文件只能写入数据,无法删除文件。
- b : 不更新文件或目录的最后存取时间。
- c : 将文件或目录压缩后存放。
- d : 将文件或目录排除在倾倒操作之外。
- i : 不得任意更动文件或目录。
- s : 保密性删除文件或目录。
- S : 即时更新文件或目录。
- u : 预防意外删除。
- 参数:
- +属性 : 给文件或文件夹添加属性
- -属性 : 关闭文件或文件夹的属性
- =属性 : 指定文件或目录的项属性
- -v 版本号 : 设置文件或文件夹的版本
- 添加属性
- 命令: chattr +a 文件名.后缀名 -> 给当前目录下的指定文件添加属性
chattr +a test.py
- 命令: chattr +a 路径/文件名.后缀名 -> 给指定路径下的指定文件添加属性
chattr +a movie/a.py
- 命令: chattr +a 文件夹名 -> 给当前目录下的指定文件夹添加属性
chattr +a movie
- 命令: chattr +a 路径/文件夹名 -> 给指定路径下的指定文件夹添加属性
chattr +a movie/DC
- 关闭属性
- 命令: chattr -a 文件名.后缀名 -> 关闭当前目录下的指定文件的属性
chattr -a test.py
- 命令: chattr -a 路径/文件名.后缀名 -> 关闭指定路径下的指定文件的属性
chattr -a movie/a.py
- 命令: chattr -a 文件夹名 -> 关闭当前目录下的指定文件夹的属性
chattr -a movie
- 命令: chattr -a 路径/文件夹名 -> 关闭指定路径下的指定文件夹的属性
chattr -a movie/DC
27. lsattr 命令 -> 查看文件或文件夹的隐藏属性
- 介绍: 查看文件或文件夹的隐藏属性
- 参数:
- -a : 显示所有文件和文件夹,包括以"."为名称开头字符的额外内建,现行目录"."与上层目录".." 的隐藏属性
- -d : 显示文件夹的隐藏属性。
- -v : 显示文件或文件夹的版本。
- -V : 显示版本信息
- 命令: lsattr -> 显示当前目录下的每个文件或文件夹的隐藏属性
lsattr
- 命令: lsattr -a -> 显示当前目录下的每个文件或文件夹的隐藏属性(包括以"."为名称开头字符的额外内建,现行目录"."与上层目录".." 的隐藏属性)
lsattr -a
- 命令: lsattr -d -> 显示当前目录的隐藏属性
lsattr -d
- 命令: lsattr 文件名.后缀名 -> 显示当前目录下的指定文件的隐藏属性
lsattr test.py
- 命令: lsattr 路径/文件名.后缀名 -> 显示指定路径下的指定文件的隐藏属性
lsattr movie/a.py
- 命令: lsattr 文件夹名 -> 显示当前目录下的指定文件夹中每个文件或文件夹的隐藏属性
lsattr movie
- 命令: lsattr 路径/文件夹名 -> 显示指定路径下的指定文件夹中每个文件或文件夹的隐藏属性
lsattr movie/DC
- 命令: lsattr -a 文件夹名 -> 显示当前目录下的指定文件夹中每个文件或文件夹的隐藏属性(包括以"."为名称开头字符的额外内建,现行目录"."与上层目录".." 的隐藏属性)
lsattr -a movie
- 命令: lsattr -a 路径/文件夹名 -> 显示指定路径下的指定文件夹中每个文件或文件夹的隐藏属性(包括以"."为名称开头字符的额外内建,现行目录"."与上层目录".." 的隐藏属性)
lsattr -a movie/DC
- 命令: lsattr -d 文件夹名 -> 显示当前目录下的指定文件夹的隐藏属性
lsattr -d movie
- 命令: lsattr -d 路径/文件夹名 -> 显示指定路径下的指定文件夹的隐藏属性
lsattr -d movie/DC
28. 时间的同步
- Linux 时间的介绍:
- 在Linux下系统时间和硬件时间不会自动同步,在Linux运行过程中,系统时间和硬件时间以异步的方式运行,互不干扰
- 硬件时间的运行,是靠Bios电池来运行,而系统时间是用CPU tick来维持的。
- 在系统开机时候,会从Bios中获取硬件时间,设置为系统时间
- date 命令 -> 查看系统时间
date
- hwclock -> 查看硬件时间
hwclock
- 以系统时间为基准,修改硬件时间
hwclock -w
- 以硬件时间为基准,修改系统时间
hwclock -s
- 如果系统和硬件的时候都不准,我们可以使用 ntpdate 命令同步网络服务器时间
- 下载 ntpdate
yum install ntpdate -y
- 使用 ntpdate 第三方命令同步阿里云网络服务器时间
ntpdate -u ntp.aliyun.com
29. wget 命令 -> 用于下载网络上的资源
- 下载 wget 命令
yum install wget -y
- 命令: wget 参数 下载地址
- 下载一张图片
wget https://imgs.gamersky.com/pic/2019/20191211_zcq_252_03.jpg
- 下载一个网站
wget -r -p http://www.luffycity.com # 递归下载路飞所有资源,保存到 www.luffycity.com 文件中
30. history 命令 -> 查看所有执行过的命令
history

31. ! -> 执行 history 查询结果中的某条命令
- 命令: !历史id -> 执行指定历史id所对应的命令
!959

- 命令: !xxx -> 执行 history 查询结果中以 xxx 开头的第一条命令
!ps
