Linux 命令查询在线工具:https://www.linuxcool.com/
《Linux就该这么学》在线书籍:https://www.linuxprobe.com/docs/LinuxProbe.pdf

服务基础命令

  1. # 重启服务
  2. systemctl restart 服务名称
  3. # 启动服务
  4. systemctl start 服务名称
  5. # 停止服务
  6. systemctl stop 服务名称
  7. # 加入到启动项
  8. systemctl enable 服务名称
  9. # 查看服务状态
  10. systemctl status 服务名

重置 Root 密码

重启 Linux 系统主机并出现引导界面时,按下键盘上的 e 键进入内核编辑界面
image.png
在 linux16 参数这行的最后面追加 rd.break 参数,然后按下 Ctrl + X 组合键来运行修改过的内核程序(如果看不到向下滚动界面)
依次输入以下命令,等待系统重启操作完毕,然后就可以使用新密码来登录 Linux 系统

mount -o remount,rw /sysroot
chroot /sysroot
passwd
touch / .autorelabel
exit
reboot

基础按键

按键 作用
空格键 向下翻一页
PaGe down 向下翻一页
PaGe up 向上翻一页
home 直接前往首页
end 直接前往尾页
/ 从上至下搜索某个关键词,如“/linux”
? 从下至上搜索某个关键词,如“?linux”
n 定位到下一个搜索到的关键词
N 定位到上一个搜索到的关键词
q 退出帮助文档

常用系统工作命令

echo命令

echo 命令用于在终端输出字符串或变量提取后的值
格式为: echo [字符串 | $变量]

date命令

date 命令用于显示及设置系统的时间或日期
格式为: date [选项] [+指定的格式]
在 date 命令后输入以“+”号开头的参数,即可按照指定格式来输出系统的时间或日期

参数    作用
%S    秒(00~59)
%M    分钟(00~59)
%H    小时(00~23)
%I    小时(00~12)
%m    月份(1~12)
%p    显示出AM或PM
%a    缩写的工作日名称(例如:Sun)
%A    完整的工作日名称(例如:Sunday)
%b    缩写的月份名称(例如:Jan)
%B    完整的月份名称(例如:January)
%q    季度(1~4)
%y    简写年份(例如:20)
%Y    完整年份(例如:2020)
%d    本月中的第几天
%j    今年中的第几天
%n    换行符(相当于按下回车键)
%t    跳格(相当于按下Tab键)

reboot 命令

reboot命令用于重启系统
格式为: reboot

poweroff 命令

poweroff 命令用于关闭系统
格式为: poweroff

wget 命令

wget命令用于在终端中下载网络文件
格式为: wget [参数] 下载地址

参数 作用
-b 后台下载模式
-P 下载到指定目录
-t 最大尝试次数
-c 断点续传
-p 下载页面内所有资源,包括图片、视频等
-r 递归下载

ps 命令

ps命令用于查看系统中的进程状态
格式为: ps [参数]

参数 作用
-a 显示所有进程(包括其他用户的进程)
-u 用户以及其他详细信息
-x 显示没有控制终端的进程

在Linux系统中,有5种常见的进程状态,分别为运行、中断、不可中断、僵死与停止,其各自含义如下所示:

  • R(运行):进程正在运行或在运行队列中等待。
  • S(中断):进程处于休眠中,当某个条件形成后或者接收到信号时,则脱离该 状态。
  • D(不可中断):进程不响应系统异步信号,即便用kill命令也不能将其中断。
  • Z(僵死):进程已经终止,但进程描述符依然存在, 直到父进程调用wait4()系统函数后将进程释放。
  • T(停止):进程收到停止信号后停止运行。

    top 命令

    top命令用于动态地监视进程活动与系统负载等信息
    格式为: top
    • 第1行:系统时间、运行时间、登录终端数、系统负载(三个数值分别为1分钟、5分钟、15分钟内的平均值,数值越小意味着负载越低)。
    • 第2行:进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数。
    • 第3行:用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲的资源百分比等。其中数据均为CPU数据并以百分比格式显示,例如“97.1 id”意味着有97.1%的CPU处理器资源处于空闲。
    • 第4行:物理内存总量、内存使用量、内存空闲量、作为内核缓存的内存量。
    • 第5行:虚拟内存总量、虚拟内存使用量、虚拟内存空闲量、已被提前加载的内存量。

pidof 命令

pidof命令用于查询某个指定服务进程的PID值
格式为: pidof [参数] [服务名称]

kill 命令

kill命令用于终止某个指定PID的服务进程
格式为: kill [参数] [进程PID]

killall 命令

killall命令用于终止某个指定名称的服务所对应的全部进程
格式为: killall [参数] [服务名称]

系统状态检测命令

ifconfig

ifconfig命令用于获取网卡配置与网络状态等信息。使用 ifconfig 命令来查看本机当前的网卡配置与网络状态等信息时,其实主要查看的就是网卡名称、inet参数后面的IP地址、ether 参数后面的网卡物理地址(又称为MAC地址),以及RX、TX的接收数据包与发送数据包的个数及累计流量(即下面加粗的信息内容)
格式为: ifconfig [网络设备] [参数]

uname

uname命令用于查看系统内核与系统版本等信息。在使用uname命令时,一般会固定搭配上-a参数来完整地查看当前系统的内核名称、主机名、内核发行版本、节点名、系统时间、硬件名称、硬件平台、处理器类型以及操作系统名称等信息。
格式为: uname [-a]

uptime

uptime用于查看系统的负载信息。uptime命令真的很棒,它可以显示当前系统时间、系统已运行时间、启用终端数量以及平均负载值等信息。平均负载值指的是系统在最近1分钟、5分钟、15分钟内的压力情况(下面加粗的信息部分);负载值越低越好,尽量不要长期超过1,在生产环境中不要超过5。
格式为: uptime

free

free用于显示当前系统中内存的使用量信息。为了保证Linux系统不会因资源耗尽而突然宕机,运维人员需要时刻关注内存的使用量。在使用free命令时,可以结合使用-h参数以更人性化的方式输出当前内存的实时使用量信息。
格式为: free [-h]

who

who用于查看当前登入主机的用户终端信息。
格式为: who [参数]

last

last命令用于查看所有系统的登录记录。使用 last 命令可以查看本机的登录记录。但是,由于这些信息都是以日志文件的形式保存在系统中,因此黑客可以很容易地对内容进行篡改。千万不要单纯以该命令的输出信息而判断系统有无被恶意入侵!
格式为: last [参数]

history

history命令用于显示历史执行过的命令。执行 history 命令能显示出当前用户在本地计算机中执行过的最近1000条命令记录。如果觉得1000不够用,还可以自定义/etc/profile文件中的HISTSIZE变量值。在使用history命令时,如果使用-c参数则会清空所有的命令历史记录。还可以使用“!编码数字”的方式来重复执行某一次的命令。
格式为: history [-c]
格式为: !num ,num 表示第num条history命令

sosreport

sosreport命令用于收集系统配置及架构信息并输出诊断文档。当Linux系统出现故障需要联系技术支持人员时,大多数时候都要先使用这个命令来简单收集系统的运行状态和服务配置信息。
格式为: sosreport

工作目录切换命令

pwd

pwd命令用于显示用户当前所处的工作目录。
格式为: pwd [选项]

cd

cd命令用于切换工作路径。
格式为: cd [目录名称]

  • cd - :返回到上一次所处的目录
  • cd .. :进入上级目录
  • cd ~ :切换到当前用户的家目录
  • cd ~username :切换到其他用户的家目录
  • cd 路径 :切换目录

    ls

    ls命令用于显示目录中的文件信息
    格式为: ls [选项] [文件]

  • ls -a :查看全部文件(包括隐藏文件)

  • ls -l :查看文件的属性、大小等详细信息

    文本文件编辑命令

    cat

    cat 命令用于查看内容较少的纯文本文件
    格式为: cat [选项] [文件]

    more

    more 命令用于查看内容较多的纯文本文件
    格式为: more [选项]文件

    head

    head命令用于查看纯文本文档的前N行
    格式为: head [选项] [文件]

    tail

    tail命令用于查看纯文本文档的后N行或持续刷新内容
    格式为: tail [选项] [文件]

    tr

    tr命令用于替换文本文件中的字符
    格式为: tr [原始字符] [目标字符]

    wc

    wc命令用于统计指定文本的行数、字数、字节数
    格式为: wc [参数] 文本

    stat

    stat 命令用于查看文件的具体存储信息和时间等信息。stat 命令可以用于查看文件的存储信息和时间等信息,命令stat anaconda-ks.cfg会显示出文件的三种时间状态(已加粗):Access、Modify、Change
    格式为: stat 文件名称

    cut

    cut命令用于按“列”提取文本字符
    格式为: cut [参数] 文本

    diff

    diff命令用于比较多个文本文件的差异。在使用diff命令时,不仅可以使用—brief参数来确认两个文件是否不同,还可以使用-c参数来详细比较出多个文件的差异之处,这绝对是判断文件是否被篡改的有力神器。
    格式为: diff [参数] 文件

    文件目录管理命令

    touch

    touch命令用于创建空白文件或设置文件的时间
    格式为: touch [选项] [文件]
参数 作用
-a 仅修改“读取时间”(atime)
-m 仅修改“修改时间”(mtime)
-d 同时修改atime与mtime

mkdir

mkdir命令用于创建空白的目录。-p 参数来递归创建
格式为: mkdir [选项] 目录

cp

cp命令用于复制文件或目录
格式为: cp [选项] 源文件 目标文件

  • 如果目标文件是目录,则会把源文件复制到该目录中;
  • 如果目标文件也是普通文件,则会询问是否要覆盖它;
  • 如果目标文件不存在,则执行正常的复制操作。 | 参数 | 作用 | | :—- | :—- | | -p | 保留原始文件的属性 | | -d | 若对象为“链接文件”,则保留该“链接文件”的属性 | | -r | 递归持续复制(用于目录) | | -i | 若目标文件存在则询问是否覆盖 | | -a | 相当于-pdr(p、d、r为上述参数) |

mv

mv命令用于剪切文件或将文件重命名
格式为: mv [选项] 源文件 [目标路径|目标文件名]

rm

rm 命令用于删除文件或目录。如果不想总是看到这种反复的确认信息,可在rm命令后跟上 -f 参数来强制删除。另外,想要删除一个目录,需要在rm命令后面加一个-r参数才可以,否则删除不掉。
格式为: rm [选项] 文件

dd

dd 命令用于按照指定大小和个数的数据块来复制文件或转换文件
格式为: dd [参数]

参数 作用
if 输入的文件名称
of 输出的文件名称
bs 设置每个“块”的大小
count 设置要复制“块”的个数

file

file命令用于查看文件的类型
格式为: file 文件名

打包压缩与搜索命令

tar

tar命令用于对文件进行打包压缩或解压
格式为: tar [选项] [文件]

参数 作用
-c 创建压缩文件
-x 解开压缩文件
-t 查看压缩包内有哪些文件
-z 用Gzip压缩或解压
-j 用bzip2压缩或解压
-v 显示压缩或解压的过程
-f 目标文件名
-p 保留原始的权限与属性
-P 使用绝对路径来压缩
-C 指定解压到的目录

grep

grep命令用于在文本中执行关键词搜索,并显示匹配的结果。
格式为: grep [选项] [文件]

参数 作用
-b 将可执行文件(binary)当作文本文件(text)来搜索
-c 仅显示找到的行数
-i 忽略大小写
-n 显示行号
-v 反向选择——仅列出没有“关键词”的行。

find

find命令用于按照指定条件来查找文件
格式为: find [查找路径] 寻找条件 操作

参数 作用
-name 匹配名称
-perm 匹配权限(mode为完全匹配,-mode为包含即可)
-user 匹配所有者
-group 匹配所有组
-mtime -n +n 匹配修改内容的时间(-n指n天以内,+n指n天以前)
-atime -n +n 匹配访问文件的时间(-n指n天以内,+n指n天以前)
-ctime -n +n 匹配修改文件权限的时间(-n指n天以内,+n指n天以前)
-nouser 匹配无所有者的文件
-nogroup 匹配无所有组的文件
-newer f1 !f2 匹配比文件f1新但比f2旧的文件
—type b/d/c/p/l/f 匹配文件类型(后面的字幕字母依次表示块设备、目录、字符设备、管道、链接文件、文本文件)
-size 匹配文件的大小(+50KB为查找超过50KB的文件,而-50KB为查找小于50KB的文件)
-prune 忽略某个目录
-exec …… {}\; 后面可跟用于进一步处理搜索结果的命令(下文会有演示)