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