前言
本人是互联网新人,自己整理了一些工作中经常用到的Linux常用命令;一是为了让自己更加清晰认识,再一个希望能帮助到大家和未来的新人;编辑实属不易,轻喷,都是一字字打出来的;后续会慢慢调整编写模式;
提示:以下是本篇文章正文内容,下面案例可供参考;只摘要部分命令选项,如需深入了解,可自行百度或AI查询;
linux系统常见及常用的命令操作(进程管理、网络通信篇)-CSDN博客
linux系统常见及常用的命令操作(包管理、文件和目录操作)-CSDN博客
一、系统管理
关于Linux系统相关命令操作与常用选项详细介绍,有需要对某个命令详细了解的,可进行百度或AI查询;
1. init:系统管理工具
负责系统的启动、关闭以及运行级别的管理;init 是系统启动过程中的第一个进程,负责启动系统中的所有其他进程;(如需详细了解,可百度或AI查询)
- init 是 Linux系统 的初始化进程,是所有进程的祖先;
- 它负责读取 /etc/inittab 文件,根据配置信息启动系统中的各个进程;
- 现代 Linux系统中,init 通常由 systemd、upstart 或其他初始化系统取代;了解传统 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
可自学的网站:
阿里云开发者社区-云计算社区-阿里云 (aliyun.com)
运维派-Linux运维技术社区,Linux教程,云计算学习平台,Devops工具下载站 (yunweipai.com)
以及各服务的官方网站文档
推荐一个持久更新的安全面试网站(看个人需求):面试鸭 - 程序员求职面试刷题神器,高频编程题目免费刷
标签:关机,10,hostname,系统,用户,常用命令,linux,root From: https://blog.csdn.net/m0_64473089/article/details/141032405