linux系统常见及常用命令(超详细:系统篇)

        关于Linux系统相关命令操作与常用选项详细介绍,有需要对某个命令详细了解的,可进行百度或AI查询;

1. init:系统管理工具

        负责系统的启动、关闭以及运行级别的管理;init 是系统启动过程中的第一个进程,负责启动系统中的所有其他进程;(如需详细了解,可百度或AI查询)

  • init 是 Linux系统 的初始化进程,是所有进程的祖先;
  • 它负责读取 /etc/inittab 文件,根据配置信息启动系统中的各个进程;
  • 现代 Linux系统中,init 通常由 systemdupstart 或其他初始化系统取代;了解传统 init 命令仍然有帮助。

格式:init  < runlevel >  红色为常用
常用命令操作:选项:

  • 0:关机
  • 1:单用户模式(维护模式)
  • 2:多用户模式,没有网络服务
  • 3:多用户模式,有网络服务
  • 4:用户定义(通常未使用)
  • 5:多用户模式,启动图形界面
  • 6:重启系统
例如:
init 0 :关机
init 6 :重启

注意事项:

  • 现代 Linux 发行版多使用 systemd,其命令和配置方法与传统 init 略有不同。
  • 切换运行级别可能会影响系统的稳定性,因此需要谨慎操作。
  •  init 3 此命令将系统切换到多用户模式但不启动图形界面。

2.  hostname:显示或设置系统的主机名

  • /etc/hostname:配置文件;永久设置主机名的文件。在这里可以直接编辑主机名并重启系统应用更改。

  • 命令操作:

# 显示当前系统的主机名
[root@hostname ~]# hostname


# 临时设置主机名;系统重启后不会保存
[root@hostname ~]# hostname <new_hostname>


# 在使用 systemd 的系统上设置主机名并使其永久保存。
[root@hostname ~]# hostnamectl set-hostname <new_hostname>

3. uname:显示系统的基本信息

为了快速查看系统的详细信息,通常用 -a 选项

  • 命令操作:

    # 显示所有可用的系统信息,包括内核名称、网络节点主机名、内核版本、操作系统类型等。下列所展示的就是此命令的输出:每隔 | 分开为查看段(如果不懂可以百度)
    [root@hostname ~]#  uname -a
    |Linux| hostname| 3.10.0-1160.el7.x86_64| #1| SMP| Mon Oct 19 16:18:59 UTC 2020| x86_64 |x86_64| x86_64| GNU/Linux

4.  uptime:显示系统运行的时间及负载信息

  • 命令操作:

    # 显示当前时间、系统已运行时间、用户数和负载平均值(1分、5分、15分钟平均值)
    [root@hostname ~]#  uptime
    23:38:02| up  1:58, | 3 users, | load average: 0.00, 0.01, 0.05

5. date:显示或设置系统时间与日期

  • 格式:

    • %Y:四位年份(例如 2024

    • %m:两位月份(例如 08

    • %d:两位日期(例如 09

    • %H:24小时制的小时(例如 14

    • %M:分钟(例如 32

    • %S:秒(例如 15

    • %F:完整的日期格式(等同于 %Y-%m-%d

    • %T:时间(等同于 %H:%M:%S

  • 命令操作:(还有更多选项,可百度;通常用以下命令)

# 显示当前的日期和时间
[root@hostname ~]#  date

# 自定义设置系统日期和时间(绿色处可自定义时间,如:2024-08-01 08:00:00)
[root@hostname ~]#  date -s "YYYY-mm-dd HH:MM:SS"

# 显示当前日期
[root@hostname ~]#  date +"%Y-%m-%d"

# 显示当前时间
[root@hostname ~]#  date +"%H:%M:%S"

6. free:显示系统内存的使用情况,包括物理内存、交换空间(swap)和缓存

  • 命令操作:

# 以人类可读的格式显示系统内存使用情况的基本信息
[root@hostname ~]#  free -h
        total    used     free     shared  buff/cache   available
Mem:    7.8G     1.2G     6.2G     23M        1.2G        6.2G
Swap:   2.0G     121M     1.8G

# 输出字段解析:
1. total: 总内存或交换空间的总量
2. used: 当前使用中的内存或交换空间量。对于内存来说,这包括正在使用的内存和缓存的内存
3. free: 当前未被使用的内存或交换空间量,即空闲的内存或交换空间
4. shared: 当前被多个进程共享的内存量(只对内存有效)
5. buff/cache: 用于缓冲和缓存的内存量。包括内核缓冲区和文件系统缓存
6. available: 当前可用的内存量,适用于新的应用程序或进程,不包括缓存的内存(仅对内存有效)


# 以 MB 为单位显示内存信息
[root@hostname ~]# free -m

# 以 GB 为单位显示内存信息
[root@hostname ~]# free -g

# 每隔一段时间自动更新显示每秒的内存使用情况
[root@hostname ~]#  watch free -h

7. df:显示磁盘空间使用情况

        用于显示文件系统的磁盘空间使用情况,它提供了每个挂载点的总容量、已用容量、可用容量和挂载点信息;

  • 常用命令操作:
# 显示当前文件系统的磁盘空间使用情况
[root@hostname ~]#  df

# -h: 以人类可读的格式显示磁盘空间(例如 KB, MB, GB)
[root@hostname ~]# df -h
Filesystem    Size  Used  Avail  Use% Mounted on
/dev/sda1     9.8G  4.8G  3.8G   55% /
tmpfs         2.0G  100M  1.9G   5% /run

# 输出字段解析
1. Filesystem: 文件系统的名称或设备名称,例如 /dev/sda1、tmpfs 等。
2. Size:文件系统的总容量
3. Used:已用空间的大小
4. Avail :可用空间的大小
5. Use% Mounted on:已用空间占总空间的百分比 和 文件系统挂载的目录路径

# -T: 显示文件系统的类型
[root@hostname ~]#  df -T
Filesystem     Type     1K-blocks    Used Available Use% Mounted on
/dev/sda1      ext4     10240000 5000000  4000000  55% /
tmpfs          tmpfs    2048000   100000  1948000   5% /run

8. du:显示文件和目录的磁盘使用情况

        用于显示文件和目录的磁盘空间使用情况。它可以递归地列出目录中的所有文件和子目录的磁盘使用情况

  • 常用命令操作:
# du: 显示当前目录及其所有子目录的磁盘使用情况,默认以 1K 块为单位
# 查看特定目录的磁盘使用情况:
[root@hostname ~]# du /etc/yum.repos.d

# -a: 显示 所有文件 和 目录的磁盘 使用情况,包括文件本身
# 统计所有文件和目录的磁盘使用情况,包括隐藏文件
[root@hostname ~]# du -ah 

# -h: 以人类可读的格式显示(例如 KB, MB, GB)
[root@hostname ~]# du -h 

# -s: 仅显示每个参数(文件或目录)的总磁盘使用情况,而不列出子目录的详细信息。
# 查看某个目录的总磁盘使用情况
[root@hostname ~]# du -sh /etc/yum.repos.d

9. w:显示当前登录的用户及他们正在执行的进程

        用于显示当前登录系统的用户及其活动情况。它提供有关系统活动的实时信息,包括用户的登录时间、终端、远程主机、当前正在运行的命令等;

  • 常用命令操作:
# 显示当前登录用户的活动信息
[root@hostname ~]#  w
17:18:57 up 11:03,  2 users,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     :0       :0               六19   ?xdm?   2:21   0.14s /usr/libexec/gnome-ses
root     pts/1    :0               六19    1.00s  0.08s  0.00s w

1. 当前时间(例如 17:18:57)
2. 系统运行时间(例如 up 10 days, 2:38 表示系统已经运行了 10 天 2 小时 38 分钟)
3. 用户数量(例如 2 users 表示当前有 2 个用户登录)
4. 负载平均值(例如 load average: 0.00, 0.01, 0.05 是 1 分钟、5 分钟、15 分钟的平均负载)

# 输出字段说明
1. USER: 用户名。
2. TTY: 用户登录的终端(例如 tty7, pts/0)。
3. FROM: 用户的来源地址或主机名(如果适用)。
4. LOGIN@: 用户登录的时间。
5. IDLE: 用户空闲时间(即用户最后一次活动后经过的时间)。
6. JCPU: 当前会话的 CPU 时间总和(包括所有进程)。
7. PCPU: 当前正在运行的进程的 CPU 时间。
8. WHAT: 用户正在执行的命令或进程。

# 其他选项示例:可自行验证操作输出
# 查看系统负载及用户信息但不显示详细的空闲时间和 CPU 时间:
[root@hostname ~]# w -s
# 仅显示简要用户列表,不包含详细的终端、来源地址和活动信息:
[root@hostname ~]#  w -h

10. who:显示当前登录系统的用户信息

        用于显示当前登录到系统的用户信息。它提供了每个用户的登录终端、登录时间和来源信息;

  • 常用命令操作:
# 显示当前登录的所有用户的信息
[root@hostname ~]#  who
root     :0           2024-08-10 19:49 (:0)
root     pts/1        2024-08-10 19:49 (192.168.1.10)

# 输出字段说明:
1. 用户名(例如 root)
2. 终端(例如 pts/1)
3. 登录时间(例如 2024-08-10 19:49)
4. 来源(例如 (:0) 表示本地登录,(192.168.1.10) 表示远程登录)

# 其他常用选项命令:
# -a: 显示所有信息,包括每个用户的相关信息,如系统的运行时间
[root@hostname ~]# who -a

11. whoami:显示当前用户的用户名

        用于显示当前登录用户的用户名。它是 who am i 命令的简化形式,主要用于确认正在执行命令的用户身份

  • 用途:
    • 身份确认: 确认当前用户身份,特别是在脚本或自动化任务中。
    • 权限检查: 检查正在执行命令的用户是否具有必要的权限。
  • 常用命令操作:
# 显示当前登录用户的用户名
[root@hostname ~]# whoami

12. last:显示用户最后登录的信息

        用于显示系统的登录记录和用户活动信息。这些信息通常来自 /var/log/wtmp 文件,它记录了系统启动、关机和用户登录/注销的事件。

  • 常用命令操作:
# 显示登录记录
[root@hostname ~]# last
root     pts/1        :0               Sat Aug 10 19:49   still logged in   
root     :0           :0               Sat Aug 10 19:49   still logged in   
root     tty1                          Sat Aug 10 19:45 - 19:45  (00:00)    
root     pts/1        :0               Sat Aug 10 19:45 - 19:45  (00:00)    

1. 用户名: 登录的用户。
2. 终端: 用户登录的终端(如 tty1、pts/1)。
3. 登录时间: 用户登录的时间。
4. 注销时间: 用户注销的时间,若 still logged in 则表示用户仍在登录中。
5. 会话时长: 用户的会话持续时间。
6. 系统启动: reboot 行表示系统启动的时间。

# 其他常用选项操作:
# -a: 显示所有信息,包括系统重启记录
[root@hostname ~]# last -a

13. crontab:设置定时任务

        用于管理用户的定时任务,这些任务会在指定的时间和日期自动运行;

  • 常用命令操作:
f1  f2   f3   f4   f5   program
1. 其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执行的程序。
2. 当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程序,其馀类推
3. 当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其馀类推
4. 当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其馀类推
5. 当 f1 为 a, b, c,... 时表示第 a, b, c,... 分钟要执行,f2 为 a, b, c,... 时表示第 a, b, c...个小时要执行,其馀类推

*    *    *    *    *
-    -    -    -    -
|    |    |    |    |
|    |    |    |    +----- 星期中星期几 (0 - 6) (星期天 为0)
|    |    |    +---------- 月份 (1 - 12) 
|    |    +--------------- 一个月中的第几天 (1 - 31)
|    +-------------------- 小时 (0 - 23)
+------------------------- 分钟 (0 - 59)

# 编辑当前用户的 cron 表文件。在文件中定义定时任务的时间和执行命令;
[root@hostname ~]# crontab -e
0 0 * * *    /home/user/backup.sh  # 每天午夜执行备份脚本
0 8-17 * * * /home/user/backup.sh  # 每天的上午 8 点到下午 5 点每小时执行一次
0 0 1,15 * * /home/user/backup.sh  # 每个月的第 1 和第 15 天午夜(0 点)执行一次
0 6-12/3 * 12 * /usr/bin/backup   # 在 12 月内, 每天的早上 6 点到 12 点,每隔 3 个小时 0 分钟执行一次 /usr/bin/backup
20 0-23/2 * * * echo "haha"   # 每月每天的午夜 0 点 20 分, 2 点 20 分, 4 点 20 分....执行 echo "haha"

# 列出当前用户的所有定时任务
[root@hostname ~]# crontab -l

# 删除当前用户的所有定时任务
[root@hostname ~]# crontab -r


# 特殊字符串应用:
# 系统启动时执行任务
[root@hostname ~]# @reboot /home/user/startup.sh

# 每天执行一次(等同于 0 0 * * *)
[root@hostname ~]# @daily /home/user/daily_task.sh

# 每小时执行一次(等同于 0 * * * *)
[root@hostname ~]# @hourly /home/user/hourly_task.sh

# 每周执行一次(等同于 0 0 * * 0)
[root@hostname ~]# @weekly /home/user/weekly_task.sh

# 每月执行一次(等同于 0 0 1 * *)
[root@hostname ~]# @monthly /home/user/monthly_task.sh

# 每年执行一次(等同于 0 0 1 1 *)
[root@hostname ~]# @yearly /home/user/annual_task.sh

14. history:显示用户命令历史

        用于显示用户在命令行上执行过的命令历史。它对于查看过去输入的命令、重复使用命令以及进行故障排查非常有用;

  • 常用命令操作:
格式: history  [选项]  [参数]
# -c: 清除历史记录。执行这个命令后,history 文件中的所有历史记录将被删除,但不会影响当前 shell 会话中的命令历史。
[root@hostname ~]# history -c

# 查看最近 10 条命令
[root@hostname ~]# history 10

# 执行最近一次以 ls 开头的命令
[root@hostname ~]# !ls

15. dd:读取、转换并输出数据

        用于低级别复制和转换数据的命令行工具。它非常强大,能够对文件和设备进行精细的控制。dd 可以用来备份磁盘、恢复数据、创建启动盘、生成大文件等。

  • 常见命令操作:
格式: dd if=input_file of=output_file [选项]
· if=:指定输入文件或设备。如果不指定,默认为标准输入(stdin)。
· of=:指定输出文件或设备。如果不指定,默认为标准输出(stdout)。

# 常见选项:
· bs=:设置读取和写入的块大小(block size)。例如,bs=1M 表示每次操作 1 兆字节的数据。dd 会使用此块大小进行数据传输,从而影响性能。

· count=:指定要复制的块数。与 bs 选项结合使用。例如,count=10 和 bs=1M 表示复制 10 兆字节的数据。

· skip=:在开始复制之前跳过输入文件的前面几个块。skip=10 表示跳过前 10 个块(块大小由 bs 确定)。

· seek=:在开始写入之前跳过输出文件的前面几个块。seek=10 表示在输出文件中跳过前 10 个块。

· conv=:指定转换选项。常用选项包括:
    · noerror:继续复制即使遇到读取错误。
    · sync:用零填充每个块,以确保每个块都有相同的大小。
    · notrunc:不截断输出文件。
    · ucase / lcase:将数据转换为大写或小写。

· status=:设置显示信息的级别。常见选项包括:
    · none:不显示任何进度信息。
    · noxfer:不显示传输统计信息。
    · progress:显示进度信息。


使用示例:
# 将一个磁盘的内容备份到一个镜像文件中
    dd if=/dev/sda of=/path/to/backup.img bs=4M
这将 /dev/sda(磁盘设备)的内容备份到 /path/to/backup.img 文件中,每次操作 4 兆字节的数据。


# 从备份镜像恢复数据到一个磁盘
    dd if=/path/to/backup.img of=/dev/sda bs=4M
这将 /path/to/backup.img 的内容恢复到 /dev/sda 设备中,每次操作 4 兆字节的数据。

# 创建一个大小为 1 GB 的文件
    dd if=/dev/zero of=file.bin bs=1M count=1024
这将使用 /dev/zero 生成一个大小为 1 GB 的文件 file.bin。/dev/zero 是一个特殊的设备,输出无限的零。

注意事项:
1. 数据覆盖风险:dd 命令非常强大,但也很危险。不正确的使用可能会导致数据丢失或系统破坏,特别是在指定设备时。始终确认 if 和 of 的正确性。

2. 性能考量:适当设置 bs 参数可以提高性能。使用较大的块大小通常比使用默认值更高效,但也取决于系统和任务。

3. 数据一致性:对于某些操作,如制作磁盘镜像,确保目标设备为空或已备份重要数据。
 

16. shutdown:关闭系统

        用于关机、重启或关闭系统的命令。它允许系统管理员在指定时间或条件下安全地关闭系统。

  • 常用命令操作:
格式: shutdown [选项] [时间] [消息]
· 选项:用于指定不同的操作和行为。
· 时间:指定何时执行关机操作。
· 消息:可选,用于向登录用户发送通知。
  • 常用选项和参数:
    • -h 或 --halt:立即关闭系统并停止所有操作,通常会断电。它会尝试以干净的方式关闭系统,但不是所有系统都会真正断电。
    • -r 或 --reboot:重启系统。系统将会在关闭所有进程后自动重启。
    • -P 或 --poweroff:关机并断电(如果系统支持),通常与 -h 选项效果相同,但有时更明确地指示断电。
    • -c 或 --cancel:取消已经调度的关机操作。这在关机或重启命令被调度后但还没有执行时很有用。
    • -t:指定从调用 shutdown 命令到实际关机之间的延迟时间(以秒为单位)。例如,-t 60 将会在 60 秒后关机。
    • -k:发送关机警告,但不实际执行关机操作。用于通知用户系统将要关机,但实际不会关机。
    • -h:表示系统将会关机并停止所有服务。这是 shutdown 的默认操作,具体效果取决于系统。
  • 时间参数:

        时间参数可以指定精确的时间或相对时间:

  • 立即:使用 now 或 0。例如,shutdown -h now 立即关机。
  • 延迟:指定延迟时间。例如,shutdown -h +10 表示在 10 分钟后关机。
  • 具体时间:指定具体的时间。例如,shutdown -h 22:00 表示在晚上 10 点关机。
# 消息参数 : 用于向所有登录用户显示一条通知,告知他们系统将会关机。例如:
[root@hostname ~]# shutdown -kh +5 "系统将在 5 分钟后关机,请保存您的工作。"
这将会在 5 分钟后关机,并向所有用户发送“系统将在 5 分钟后关机,请保存您的工作。”的通知。

# 使用案例:
1. 立即关机:
[root@hostname ~]# shutdown 

2. 计划关机:30 分钟后关机
[root@hostname ~]# shutdown -h +30

3. 计划重启:在晚上 11 点重启系统
[root@hostname ~]# shutdown -r 23:00

17. reboot:重启

        用于重启系统的命令。它会关闭所有进程和服务,然后重新启动系统

  • 常用命令操作:
格式: reboot [选项]
# 常用选项和参数
1. 无选项:通常直接执行 reboot 命令会立即重启系统。例如,reboot 会立即重启计算机。

2. -f 或 --force:强制重启系统,绕过正常的关机流程,直接重启。这通常用于系统无法正常关机时。

3. -w 或 --wakeup:恢复系统的正常运行(部分系统支持),通常用于从挂起状态恢复。

4. -p 或 --poweroff:与重启类似,但有时更明确地表示重启后关闭电源(如果系统支持)。不过在大多数系统上,它与 reboot 效果相同。

# 使用示例:
# 立即重启
[root@hostname ~]# reboot

# 强制重启
[root@hostname ~]# reboot -f

可自学的网站:

Linux 教程 | 菜鸟教程 (runoob.com)

鳥哥私房菜 - 鳥哥的首頁 (vbird.org)

阿里云开发者社区-云计算社区-阿里云 (aliyun.com)

运维派-Linux运维技术社区,Linux教程,云计算学习平台,Devops工具下载站 (yunweipai.com)

以及各服务的官方网站文档

 推荐一个持久更新的安全面试网站(看个人需求):面试鸭 - 程序员求职面试刷题神器,高频编程题目免费刷

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

重见之日

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值