很漂亮的小站!
[...]blog:locate 命令:文件查找命令 - 灵魂信息 (soulio.top)[...]
首页
留言
统计
友链
归档
关于
Search
1
typecho博客-SEO优化-永久链接设置-伪静态
229 阅读
2
qm 命令:管理PVE虚拟机
152 阅读
3
搭建网站的三种方式:家庭服务器、云服务器、serv00免费服务器
146 阅读
4
用脚本查看serv00主机(FreeBSD系统)配置
115 阅读
5
smartctl 命令:查看硬盘健康状态
111 阅读
网站搭建
Linux命令详解
登录
Search
标签搜索
Linux命令
serv00
Linux
网站搭建
typecho
Excel
正则表达式
PVE
mdx
docusaurus
在线知识库
soulio
累计撰写
147
篇文章
累计收到
5
条评论
今日撰写
0
篇文章
首页
栏目
网站搭建
Linux命令详解
页面
留言
统计
友链
归档
关于
用户登录
登录
搜索到
147
篇与
的结果
2024-09-29
timedatectl命令:告别时间烦恼,一键同步系统时间
一、命令简介timedatectl 命令用于查看和设置系统的时间和日期,以及配置时区和 NTP(Network Time Protocol)设置。相关命令:cal 显示日历、 date 查看、设置日期二、命令参数格式:timedatectl [选项] 选项: status:显示当前系统时间、时区和 NTP 设置的状态。 set-time:手动设置系统时间。 set-timezone:设置系统时区。 set-ntp:启用或禁用 NTP 自动同步。 三、命令示例查看当前系统时间和日期信息timedatectl 查看系统时区信息timedatectl | grep 'Time zone' 设置系统时区sudo timedatectl set-timezone <时区>,例如:sudo timedatectl set-timezone Asia/Shanghai 执行成功则没有输出。如果不清除有哪些时区可以使用,以下命令查看查看时区timedatectl list-timezones 将会列出所有时区。不过这时区太多了,挑花眼,可以搭配 grep 筛选一下更推荐使用 tzselect 命令,交互式选择时区,先选择亚洲,再选择中国,再选择一个中国的城市。不用默写时区。手动设置系统时间sudo timedatectl set-time 'YYYY-MM-DD HH:MM:SS',例如:sudo timedatectl set-time '2024-03-11 16:30:00' 将系统时钟设置为本地时间或 UTC 时间sudo timedatectl set-local-rtc 1 # 设置为本地时间 sudo timedatectl set-local-rtc 0 # 设置为 UTC 时间 三系统时间不同步问题:如果你在电脑上安装过双系统、三系统,那你可能感受过从 Linux 切换到 Windows 的时候,时间误差 8 小时。原因是 Linux 和 macOS 使用的 UTC 时间,会在主机上存储 0 区时间,而系统时间显示为 0 区 +8 小时时区时间,它是正确的。但是回到 Windows 时,Windows 使用本地时间,系统时间显示为主机时间,不加时区,所以就误差 8 小时。也跟 Windows 启动时不会自动与网络同步时间有关。多种解决方式: 三种系统设置为同一时钟格式 打开 Windows 时钟同步服务。这样三个系统都会在开机时自动同步时间。 启用/禁用网络时间同步(NTP)sudo timedatectl set-ntp true # 启用 NTP sudo timedatectl set-ntp false # 禁用 NTP 注意事项 使用 timedatectl 命令需要管理员权限(通常需要使用 sudo)。 可以通过该命令轻松地调整系统的时间、日期和时区设置,确保系统运行在正确的时间环境下,并且可以选择是否启用自动时间同步功能。 视频学习:一分钟学会:使用timedatectl修改系统时间_哔哩哔哩_bilibili
2024年09月29日
55 阅读
0 评论
0 点赞
2024-09-29
time命令:轻松测量Linux命令执行时间!
一、命令简介 用途: 用于测量 Linux 命令执行的时间,包括实际时间、用户 CPU 时间和系统 CPU 时间。刚开始以为是用来“看现在几点钟”的 🥲。 标签: 实用工具,性能分析。 二、命令参数2.1 命令格式time [选项] [命令] [参数] 2.2 选项和参数选项: -o FILE :指定输出文件。 -a:搭配 -o 选项,将资源使用信息附加到输出文件。sudo time -v -a -o time.log ls -f FORMAT:自定义输出格式,使用各种占位符来表示不同的时间度量。 -v:使用内置的详细格式。 --quiet:即使程序的退出状态非零,也不报告程序的状态。 -V:打印 time 的版本号并退出。 三、命令示例3.1基本语法使用 time 命令通常很简单,只需在其后跟上你想测量的命令即可,例如:#示例1 time ls #示例2 time updatedb 输出结果: real:命令实际执行的总时间,从开始到结束。 user:命令在用户态(非内核态)执行所花费的时间。 sys:命令在系统态(内核态)执行所花费的时间。 3.2详细输出使用 -v 选项获取更详细的输出信息,可能要使用 sudo 权限,不然显示【未知命令】sudo time -v tar -czf new.tar.gz /bin/* 输出3.3脚本中使用脚本#!/bin/bash { time updatedb; } 2>&1 | tee time.txt 执行其他内置命令与外部命令:在某些 shell 中,time 既可以是一个内置命令也可以是一个外部命令。通常,可以通过 type time 来查看是哪种类型。精确度:time 命令提供的是一种相对粗略的测量方法,如果需要更精确的时间测量,可以考虑使用其他工具,如 gettimeofday 或 clock_gettime。注意事项 time 命令可以帮助您评估命令或脚本的性能,对于性能分析和调试非常有用。
2024年09月29日
21 阅读
0 评论
0 点赞
2024-09-29
tee命令:轻松同步输出到屏幕与文件
一、命令简介tee 命令在 Linux 和 Unix 系统中用于读取标准输入的数据,并将其同时输出到标准输出和文件中。简单来说,tee 命令可以用来分割数据流,使其既能够被输出到屏幕,也能够被写入到文件中。二、命令参数基本用法:tee [选项] [文件] 选项: -a, --append:追加写入文件而不是覆盖。 -i, --ignore-interrupts:忽略中断信号。 -p:将输出传递给标准输出,而不是文件。 文件:要写入数据的一个或多个文件。三、命令示例 将命令的输出保存到文件并同时显示在终端上: ls -l | tee output.txt 这将列出当前目录的文件和目录列表,并将输出保存到 output.txt 文件中,同时也在终端上显示。 追加输出到文件: echo "Hello, World!" | tee -a greetings.txt 这将在 greetings.txt 文件中追加写入 "Hello, World!",而不会覆盖文件中已有的内容。 将输出同时传递给多个文件: ls -l | tee file1.txt file2.txt 这将列出当前目录的文件和目录列表,并将输出同时写入 file1.txt 和 file2.txt 两个文件中。tee 命令在需要同时保存输出到文件和终端的情况下非常有用,可以帮助您方便地管理和处理命令的输出数据。
2024年09月29日
22 阅读
0 评论
1 点赞
2024-09-28
tar命令:压缩、解压的好工具
一、命令简介 用途: tar 命令用于创建归档文件(tarball),以及从归档文件中提取文件。 标签: 文件管理,归档。 特点: 归档文件可以保留原始文件和目录的层次结构,通常使用 .tar 或 .tar.gz 作为文件扩展名。 对打包文件进行压缩以节省空间或传输带宽。 二、命令参数2.1命令格式tar [选项] [归档文件] [文件或目录] 2.2选项和参数 选项: -c:创建归档文件(Create) -x:从归档文件中提取文件(eXtract) -v:显示详细信息(Verbose) -f:指定归档文件的名称(File) -z:使用 gzip 压缩或解压缩(gzip) -j:使用 bzip2 压缩或解压缩(bzip2) -r:向归档文件中追加文件(append) -t:列出归档文件的内容(List) 参数: 归档文件:要创建或操作的归档文件的名称。 文件或目录:要添加到归档文件中或从中提取的文件或目录。 三、命令示例3.1创建归档文件简单的示例:通过以下命令将文件 file1 和 file2 ,文件夹 catalog 打包到 archive.tartar -cvf archive.tar file1 file2 catalog/ 压缩:通常,使用 -z 选项压缩 tar 包的体积。接下来我们将/bin 目录下所有内容打包。#仅打包,不压缩 sudo tar -cvf archive.tar /bin/* #打包且压缩 sudo tar -czvf archive.tar.gz /bin/* 对比:不压缩为 500MB+,压缩为 200MB+,可见 gz 压缩效果还是很明显的。优点:节省的硬盘体积,减少了网络传输时的流量和时间。缺点(代价):原本打包、解包可以秒完成。使用压缩后,需要消耗额外的算力和时间来完成压缩、解压过程。即便如此,多数时候,依然选择使用压缩。3.2列出归档文件有时我们希望看看 tar 包里面有些什么东西,而不是直接解开它,可以使用以下命令:tar -tvf archive.tar 例如刚才打包的 tar 包,使用-tvf 就可以看到 tar 包中的文件列表:3.3解压缩归档文件解包到当前目录 tar -xvf archive.tar # tar.gz tar -czvf archive.tar.gz 解包到指定目录tar -xvf archive.tar -C /path/to/target/directory 例如,将刚才打包的文件解包到 ./dir-test 目录,目录必须先创建。mkdir dir-test tar -xvf archive.tar -C dir-test 如果不想看解包过程,就不要使用-v 选项。3.4测试不同压缩选项只是片面的测试,不是综合测试。3.4.1测试 -z 选项(已学):使用 gzip 压缩、解压 -j 选项:使用 bzip2 压缩、解压 用法是类似的,-z 换成 -j 即可,如下(顺便瞧瞧两种压缩方式的效率,time 命令统计执行时间)# 打包 ## 不压缩 time tar -cf new.tar /bin/* ## gzip压缩 time tar -czf new.tar.gz /bin/* ## bzip2压缩 time tar -cjf new.tar.bz2 /bin/* # 创建文件夹,用来装解压文件 mkdir 文件夹 文件夹1-gz 文件夹2-bz2 # 解包 ## 不压缩 time tar -xf new.tar -C 文件夹 ## gzip压缩 time tar -xzf new.tar.gz -C 文件夹1-gz ## bzip2压缩 time tar -xjf new.tar.bz2 -C 文件夹2-bz2 3.4.2测试结果压缩耗时: gzip:28 秒 bz2:51 秒 不压缩:1 秒 文件大小: gzip:213 MB bz2:197 MB 不压缩:590 MB 解压耗时: gzip:5 秒 bz2:23 秒 不压缩:1 秒 3.4.3选择压缩选项 gzip压缩可以满足大多数情况:既可以压缩体积,也不用等待太久。 不压缩可以秒打包、解包。 bzip2可以最大压缩体积。 3.5规范后缀规范的后缀 .tar、.tar.gz、.tar.bz2 可以让人一眼分辨出应该使用哪个命令去解压缩包。Linux 系统不以后缀名来决定文件类型,而是通过文件的 inode 信息来确定。inode 包含了文件的元数据,如文件的大小、创建时间、最后修改时间、权限等,以及一个指向文件数据块的指针。3.6结语tar 命令是在 Linux 系统中非常常用的工具,用于管理文件和目录的归档和解压缩。通过掌握 tar 命令的基本用法,您可以方便地打包和解压文件,进行文件备份和迁移等操作。
2024年09月28日
20 阅读
0 评论
0 点赞
2024-09-28
systemd-analyze
一、命令简介 用途: systemd-analyze 命令用于分析系统引导过程的时间性能。 标签: 系统管理,性能分析。 相关命令: systemd-bootchart, systemd-cgtop, systemd-resolve. 二、命令参数命令格式systemd-analyze [OPTIONS...] COMMAND ... 选项和参数systemd-analyze [OPTIONS...] COMMAND ... 系统分析,显示单元依赖关系,检查单元文件。 命令: [time] 打印启动系统所需的时间 blame 按初始化时间排序打印正在运行的单元列表 critical-chain [UNIT...] 打印单元的关键时间链的树形结构 plot 输出显示服务初始化的SVG图形 dot [UNIT...] 输出dot(1)格式的依赖图 dump 输出服务管理器的状态序列化 cat-config 显示配置文件和补充配置 unit-files 列出单元的文件和符号链接 unit-paths 列出单元的加载目录 exit-status [STATUS...] 列出退出状态的定义 capability [CAP...] 列出能力的定义 syscall-filter [NAME...] 打印seccomp过滤器中的系统调用列表 condition CONDITION... 评估条件和断言 verify FILE... 检查单元文件的正确性 calendar SPEC... 验证重复的日历时间事件 timestamp TIMESTAMP... 验证时间戳 timespan SPAN... 验证时间跨度 security [UNIT...] 分析单元的安全性 选项: -h --help 显示此帮助信息 --version 显示软件包版本 --no-pager 不要将输出传送到分页器 --system 在系统 systemd 实例上操作 --user 在用户 systemd 实例上操作 --global 在全局用户配置上操作 -H --host=[USER@]HOST 在远程主机上操作 -M --machine=CONTAINER 在本地容器上操作 --order 仅在图中显示顺序 --require 仅在图中显示需求 --from-pattern=GLOB 仅在图中显示源 --to-pattern=GLOB 仅在图中显示目标 --fuzz=SECONDS 还打印比分支中最新完成时间早SECONDS的服务 --man[=BOOL] 是否检查man页面的存在 --generators[=BOOL] 是否运行单元生成器(需要权限) --iterations=N 显示指定数量的迭代次数 --base-time=TIMESTAMP 相对于指定时间计算日历时间 详细信息请参阅 systemd-analyze(1) man 页面。 三、命令示例1 系统启动耗时-概览systemd-analyze 总时间=内核时间 + 用户时间2 系统启动耗时-详细systemd-analyze blame 这个命令会按服务打印出启动所花费的时间,并按照每个服务启动所花费的时间从大到小排序,帮助你识别启动过程中的瓶颈。可使用 tac 命令,让结果升序排列。systemd-analyze blame | tac 这样你就可以看到系统启动时,服务启动的顺序了。 27us blk-availability.service 6ms update-notifier-motd.service 6ms snapd.socket 7ms user-runtime-dir@1000.service 9ms systemd-update-utmp-runlevel.service 10ms ufw.service 10ms plymouth-quit-wait.service 10ms proc-sys-fs-binfmt_misc.mount 10ms sys-kernel-config.mount 11ms sys-fs-fuse-connections.mount 12ms docker.socket ... 6.588s fwupd-refresh.service 10.580s apt-daily-upgrade.service 12.108s apt-daily.service 3 特定服务的启动耗时systemd-analyze critical-chain [unit] 这个命令会显示服务启动的"关键链",你可以指定一个服务单元来查看它的详细启动耗时和依赖关系。 第一个依赖在系统启动后 343ms 启动,最后一个依赖在系统启动后 4.449s 启动。 启动 ssh.service 耗时 21ms 4 系统启动耗时-图表systemd-analyze plot > boot-up.svg 这个命令会生成一个 SVG 图表,显示启动过程中各个服务单元的启动时间和依赖关系。有没有觉得更直观了。5 系统启动日志-等级设置systemd-analyze log-level 这个命令可以查看系统启动过程中的日志级别设置。输出 info 表示 systemd 当前的日志级别设置为 info。这意味着 systemd 将记录有关单元、服务和其他系统组件状态变化的信息性消息。以下是 systemd 支持的不同日志级别的简要概述: emerg:系统无法使用。 alert:必须立即采取行动。 crit:临界条件。 err:错误条件。 warning:警告条件。 notice:正常但重要的条件。 info:信息性消息。 debug:调试级别的消息。 如果你想更改日志级别,可以将上述级别之一作为参数传递给命令。例如,要将日志级别设置为 debug 以获取更详细的日志进行故障排除,你可以使用:systemd-analyze log-level debug 请注意,将日志级别更改为更详细的设置(如 debug)可能会生成大量日志数据,这可能会影响系统性能并迅速填满日志文件。一旦完成故障排除,请务必将日志级别设置回不那么详细的设置,如 info 或 notice。查看系统启动日志可以使用以下任一命令查看系统启动日志 sudo dmesg sudo journalctl -b -0 6 服务的依赖关系systemd-analyze dot [unit] > /path/to/graph.dot 这个命令可以生成一个服务的依赖关系图,如果你指定了一个服务单元,它将仅生成该服务的依赖关系图。 sudo systemd-analyze dot > /path/to/graph.dot # 或者,只为特定的服务生成依赖关系图 sudo systemd-analyze dot sshd.service > /path/to/dbus_graph.dot 在这个例子中,/path/to/graph.dot 是你希望保存生成的点格式文件的路径。如果你想要生成特定 systemd 单元的依赖关系图,你可以像第二个命令那样指定该单元的名称(例如 dbus.service)。一旦你有了这个 .dot 文件,你可以使用 Graphviz 工具集来将其转换为可视化的图形格式,比如 PNG 或 SVG。下面是如何使用 dot 命令(来自 Graphviz)来转换 .dot 文件为 PNG 图片的示例:# 安装 Graphviz(如果尚未安装) sudo apt-get install graphviz # 将 dot 文件转换为 PNG 图片 dot -Tpng /path/to/graph.dot > /path/to/graph.png 这里,/path/to/graph.dot 是你之前创建的 dot 文件,/path/to/graph.png 是你希望保存生成的 PNG 图片的路径。最终生成的图像 黑色(black) :表示 “Requires” 关系,即一个服务单元启动需要依赖的其他服务单元。 深蓝色(dark blue) :表示 “Requisite” 关系,这种依赖比 “Requires” 更强,它要求依赖的服务单元必须已经启动成功。 深灰色(dark grey) :表示 “Wants” 关系,这是一个比较弱的依赖关系,表示一个服务单元希望某个其他服务单元也启动,但不是必需的。 红色(red) :表示 “Conflicts” 关系,即一个服务单元与另一个服务单元有冲突,不能同时运行。 绿色(green) :表示 “After” 关系,即一个服务单元需要在另一个服务单元之后启动。 7 查看特定服务的状态systemd-analyze unit-paths 这个命令显示 systemd 单元文件的路径。这些目录中的单元文件定义了 systemd 如何管理服务和系统资源。通过在这些目录中放置或修改单元文件,系统管理员可以定制和控制系统的行为。8 安全性检查systemd-analyze security [unit] 这个命令对指定的服务执行安全性检查,并提供一个关于该服务安全配置的详细报告。所有单元总览浏览指定单元systemd-analyze security [unit] 是一个用于分析和调试 systemd 系统管理器的命令,它特别关注于服务的安全性和沙箱设置。这个命令可以帮助您检查和改善 systemd 服务的安全性。以下是关于这个命令的一些详细信息和使用方法: 命令功能: 这个命令用于分析指定的服务单元([unit])的安全和沙箱设置。 如果没有指定服务单元,它将分析所有服务单元。 对于每个指定的服务单元,命令将检查其安全设置并提供详细的报告。 输出内容: 输出包括每个服务单元的安全暴露评分,评分范围从 0 到 10。分数越低,表示服务越安全。 输出还会显示每个服务的安全状态,例如“不安全”或“暴露”。 使用示例: 基本使用方式是 systemd-analyze security [unit],其中 [unit] 是您想要分析的服务单元名称。 例如,systemd-analyze security sshd.service 将分析 sshd 服务的安全性。 安全强化: 这个命令可以帮助识别服务的潜在安全漏洞或弱点。 根据命令的输出,您可以采取适当的措施来加强服务的安全性。 版本要求: 这个安全审查工具是在 systemd 的版本 240 中添加的,发布于 2018 年 12 月。您需要运行这个版本或更高版本的 systemd 才能使用这个命令。 分析 nginx 服务的安全问题 PrivateNetwork= - 服务可以访问主机的网络。这可能会增加安全风险,因为它可能允许服务与不受信任的网络进行通信。 User=/DynamicUser= - 服务以 root 用户身份运行。这是不推荐的做法,因为它会给服务过多的权限。 CapabilityBoundingSet=~CAP_SET(UID|GID|PCAP) - 服务可以更改 UID/GID 身份或捕获网络流量。 CapabilityBoundingSet=~CAP_SYS_ADMIN - 服务具有管理员权限,这是一个非常高的权限级别,可能会带来严重的安全风险。 CapabilityBoundingSet=~CAP_SYS_PTRACE - 服务具有调试能力,可以跟踪其他进程。 列表继续列出了服务所具有的各种权限和能力,每个权限旁边都有一个分数,表示它的安全暴露程度。这些权限包括但不限于网络配置、文件系统访问、系统调用权限等。以下是一些关键点: ✗ 表示服务缺少推荐的安全设置。 ✓ 表示服务已经实施了推荐的安全设置。 最后,命令给出了 nginx.service 的总体暴露级别为 9.6 UNSAFE 😨,这意味着服务存在多个安全问题,需要立即关注和解决。为了提高服务的安全性,您应该考虑以下步骤: 限制网络访问:如果服务不需要访问外部网络,应该设置 PrivateNetwork=yes。 运行非 root 用户:使用 User= 和 DynamicUser= 指令以非 root 用户身份运行服务。 限制能力集:使用 CapabilityBoundingSet= 来限制服务可以执行的系统调用。 应用沙箱设置:使用 ProtectSystem=, ProtectHome=, PrivateTmp= 等指令来增加服务的隔离性。 限制地址族:使用 RestrictAddressFamilies= 来限制服务可以使用的网络协议。 请根据服务的具体需求和安全要求来调整这些设置。在更改任何配置之前,请确保备份原始文件,并在安全的环境中测试更改。
2024年09月28日
35 阅读
0 评论
0 点赞
1
...
5
6
7
...
30