0%

简介

  • lsmod命令

linux lsmod命令 详解

lsmod 命令用于列出当前加载在 Linux 内核中的模块(也称为内核模块或驱动程序)。以下是关于 lsmod 命令的详细说明:

基本用法:

1
lsmod

参数说明:

  • 无参数: 默认情况下,lsmod 将列出所有已加载的内核模块及其相关信息。

输出信息的列说明:

  1. Module: 内核模块的名称。
  2. Size: 内核模块占用的内存大小(以字节为单位)。
  3. Used by: 使用该模块的其他模块或进程的计数。
  4. References: 内核模块的引用计数,表示有多少个内核对象正在使用该模块。

示例:

1
2
3
4
5
6
7
$ lsmod
Module Size Used by
nls_utf8 16384 1
isofs 49152 1
udf 98304 0
crc_itu_t 16384 1 udf
...

详细解释:

  • Module: 列出已加载模块的名称。
  • Size: 显示每个模块占用内存的大小。
  • Used by: 显示使用该模块的其他模块或进程的计数。
  • References: 显示模块的引用计数,表示有多少个内核对象正在使用该模块。

常用选项:

  • -h, –help: 显示帮助信息。
  • -V, –version: 显示命令版本信息。

使用示例:

  1. 显示模块详细信息:

    1
    lsmod | grep <module_name>

    使用 grep 过滤特定模块的详细信息。

  2. 按模块大小排序:

    1
    lsmod | sort -k2 -n

    使用 sort 命令按模块大小排序。

  3. 只显示已使用的模块:

    1
    lsmod | grep -v "^$" | tail -n +2

    使用 greptail 过滤并排除无效行,只显示已使用的模块。

lsmod 命令对于了解系统当前加载的内核模块非常有用,可以在排查硬件或软件问题时提供有关系统状态的重要信息。

lsmod

lsmod 是 Linux 系统上的一个命令行工具,用于列出当前加载的内核模块(驱动程序)。它可以显示系统中已加载的内核模块及其关联的信息。下面是对 lsmod 命令的详细解释:

  1. lsmod:直接运行 lsmod 命令将列出当前加载的所有内核模块。

  2. lsmod | less:通过管道将 lsmod 的输出传递给 less 命令,以便在一页一页地浏览模块列表。

  3. lsmod | grep <pattern>:使用 grep 命令可以在模块列表中搜索特定模块或模块名称的模式匹配。例如,lsmod | grep snd 将显示与 “snd” 相关的内核模块。

  4. lsmod -t:使用 -t 选项可以按模块的使用计数对模块进行排序,并将最常使用的模块显示在前面。

  5. lsmod -r:使用 -r 选项可以反向排序模块列表,以显示使用计数最低的模块。

  6. lsmod -v:使用 -v 选项可以显示更详细的模块信息,包括模块的大小、依赖关系和状态等。

  7. lsmod -hlsmod --help:显示 lsmod 命令的帮助信息,包括可用选项和用法示例。

通过 lsmod 命令,你可以获取有关当前加载的内核模块的信息。这对于了解系统上使用的驱动程序、模块之间的依赖关系以及进行故障排除和性能优化等操作非常有用。请注意,你可能需要以超级用户权限(root 或使用 sudo 命令)运行 lsmod 命令,以便查看完整的模块列表。

简介

  • rename命令

linux rename 批量删除文件名中的中文

在 Linux 系统中,如果你想批量删除文件名中的中文,可以使用 rename 命令搭配正则表达式进行操作。以下是一个示例:

1. 安装 rename 工具:

在某些系统中,rename 可能并不是默认安装的工具,你可以通过以下命令安装:

1
2
sudo apt-get install rename   # 对于 Debian/Ubuntu
sudo yum install prename # 对于 CentOS/RHEL

2. 使用 rename 进行批量删除中文:

1
rename 's/[\x{4e00}-\x{9fa5}]//g' *

这个命令使用正则表达式,将文件名中的所有中文字符删除。解释一下正则表达式中的部分:

  • [\x{4e00}-\x{9fa5}]:表示中文字符的 Unicode 范围。这个范围覆盖了常见的中文汉字。
  • //g:表示全局替换。

请注意,在执行这个命令之前,建议先在一个测试目录中运行,并确保它符合你的预期。不小心删除文件名可能导致文件不可用,谨慎操作。

linux rename 批量删除文件名中的指定中文 例如命令

如果你想删除文件名中指定的中文字符,可以使用 rename 命令结合正则表达式来实现。以下是一个示例,假设你想删除文件名中所有的“中”字:

示例命令:

1
rename 's/中//g' *

这个命令使用正则表达式,将文件名中的所有“中”字删除。解释一下这个命令的正则表达式部分:

  • :这是你想要删除的中文字符。你可以根据需要修改这部分来匹配不同的中文字符。

  • //g:表示全局替换。

注意:

  • 在执行这个命令之前,请在一个测试目录中运行并确保它符合你的预期。不小心删除文件名可能导致文件不可用,所以请谨慎操作。
  • 请注意 rename 命令的实现可能因系统而异。在某些系统上,rename 可能实际上是 rename,而在其他系统上可能是 prename。在使用时请根据你的系统调整命令。

linux rename命令 详解

在 Linux 系统中,rename 命令用于批量重命名文件。它允许用户使用正则表达式对文件名进行模式匹配,并在匹配的文件名上执行重命名操作。请注意,rename 命令在不同的 Linux 发行版中可能有不同的实现,以下是常见的两种版本:

1. Perl 版本 (prename 或者 rename.ul)

基本用法:

1
rename [options] 's/old_pattern/new_pattern/' files

参数说明:

  • old_pattern: 要被替换的旧模式(可以是正则表达式)。
  • new_pattern: 用于替换的新模式。

常用选项:

  • -n, –no-act: 不执行实际的重命名操作,而是显示将要发生的更改。
  • -v, –verbose: 显示详细的操作信息。

示例:

  1. 将所有文件名中的 .txt 替换为 .md

    1
    rename 's/\.txt$/.md/' *.txt
  2. 在所有文件名前面添加前缀:

    1
    rename 's/^/prefix_/' *

2. util-linux 版本

基本用法:

1
rename old_pattern new_pattern files

参数说明:

  • old_pattern: 要被替换的旧模式(可以是字符串,不支持正则表达式)。
  • new_pattern: 用于替换的新模式。

常用选项:

  • -n, –dry-run: 显示将要发生的更改,但不执行实际的重命名操作。
  • -v, –verbose: 显示详细的操作信息。

示例:

  1. 将所有文件名中的 txt 替换为 md

    1
    rename txt md *
  2. 在所有文件名前面添加前缀:

    1
    rename prefix_ * 

在使用 rename 命令时,特别注意所使用的版本(Perl 版本或 util-linux 版本)和相应版本的选项。这样可以确保你能够正确理解和使用该命令。

linux rename命令 常用技巧

以下是一些在使用 rename 命令时的常用技巧:

  1. 使用正则表达式进行模式匹配:

    1
    rename 's/old_pattern/new_pattern/' files

    使用正则表达式模式匹配,可以更灵活地选择要替换的文件名部分。

  2. 批量删除文件名中的特定字符:

    1
    rename 's/\s+//g' *.txt

    使用正则表达式移除文件名中的空格。

  3. 递归重命名子目录中的文件:

    1
    find /path/to/directory -type f -exec rename 's/old_pattern/new_pattern/' {} +

    使用 find 结合 rename 对目录下所有文件进行递归重命名。

  4. 根据文件名中的数字排序:

    1
    rename 's/file(\d+)/new_file$1/' file*.txt

    将文件名中的数字提取出来,并进行排序后再替换。

  5. 预览操作而不实际执行:

    1
    rename -n 's/old_pattern/new_pattern/' files

    使用 -n 选项可以预览将要发生的更改,而不执行实际的重命名操作。

  6. 添加前缀或后缀:

    1
    rename 's/^/prefix_/' *.txt

    在文件名前面添加前缀。

    1
    rename 's/$/_suffix/' *.txt

    在文件名后面添加后缀。

  7. 限制重命名的文件类型:

    1
    rename 's/old_pattern/new_pattern/' *.jpg

    可以只选择特定文件类型进行重命名。

  8. 指定文件名的范围:

    1
    rename 's/old_pattern/new_pattern/' file{1..5}.txt

    可以使用花括号扩展来指定一定范围的文件名。

  9. 将文件名中的大写字母转换为小写:

    1
    rename 'y/A-Z/a-z/' *

    使用 y 命令将文件名中的大写字母转换为小写。

这些技巧可以帮助你更灵活地使用 rename 命令,根据实际需求对文件名进行批量重命名操作。记住在执行实际操作之前,可以使用 -n 选项进行预览,确保操作符合预期。

rename

在Linux中,rename命令用于批量重命名文件或目录。它可以根据指定的规则来修改文件或目录的名称。下面是rename命令的详解:

1
rename [选项] '原始模式' '目标模式' 文件...
  • 选项:rename命令的可选参数包括:

    • -v:显示详细的操作信息,输出每个重命名操作的结果。
    • -n:不执行实际的重命名操作,只显示将要执行的操作,用于进行测试和预览。
  • ‘原始模式’:指定要匹配的原始文件或目录的模式。可以使用通配符、正则表达式或简单的字符串匹配模式。

  • ‘目标模式’:指定要替换原始模式的目标模式。可以使用变量和通配符来构建新的名称。

  • 文件…:要进行重命名操作的文件或目录列表。

下面是一些示例,演示rename命令的用法:

  1. 将扩展名从.txt改为.md:

    1
    rename 's/\.txt$/.md/' *.txt
  2. 将文件名中的空格替换为下划线:

    1
    rename 's/ /_/g' *
  3. 在文件名前面添加前缀:

    1
    rename 's/^/prefix_/' *
  4. 删除文件名中的特定字符:

    1
    rename 's/[aeiou]//g' *
  5. 使用计数器对文件进行编号:

    1
    rename '$_ = sprintf("file%03d", ++$count)' *

这些示例只是rename命令的一些常见用法,您可以根据需要使用更复杂的模式和规则来执行重命名操作。rename命令非常强大,并且可以根据您的需求进行灵活的批量重命名操作。在使用rename命令时,请谨慎操作,确保在执行实际的重命名操作之前进行测试和验证。

简介

  • find命令

linux find命令 详解

find 命令是在 Linux 系统中用于在文件系统中查找文件和目录的强大工具。find 可以根据不同的条件搜索文件,如文件名、文件类型、大小、权限等。以下是关于 find 命令的详细说明:

基本用法:

1
find [path...] [expression]
  • path: 要开始搜索的路径。
  • expression: 定义搜索条件的表达式。

常用表达式:

  1. 按文件名搜索:

    1
    find /path/to/search -name "filename"

    通过文件名进行搜索。

  2. 按文件类型搜索:

    1
    find /path/to/search -type f

    通过文件类型进行搜索,其中 -type f 表示文件,-type d 表示目录。

  3. 按文件大小搜索:

    1
    find /path/to/search -size +10M

    搜索大于10兆字节的文件,也可以使用 -size -10M 来搜索小于10兆字节的文件。

  4. 按文件权限搜索:

    1
    find /path/to/search -perm 644

    搜索文件权限为644的文件。

  5. 按时间戳搜索:

    1
    find /path/to/search -mtime -7

    搜索过去7天内修改过的文件。使用 -atime-ctime 选项可以分别按访问时间和变化时间搜索。

  6. 按用户和组搜索:

    1
    find /path/to/search -user username -group groupname

    搜索属于特定用户和组的文件。

  7. 按多个条件组合搜索:

    1
    find /path/to/search -name "*.txt" -type f -size +1M

    可以组合多个条件,以便更精确地搜索文件。

示例:

  1. 查找并删除所有 .log 文件:

    1
    find /path/to/search -name "*.log" -delete

    查找并删除所有后缀为 .log 的文件。

  2. 查找所有文件并将结果输出到文件:

    1
    find /path/to/search > results.txt

    将所有搜索结果输出到 results.txt 文件。

  3. 查找所有 .jpg 文件并将它们移动到另一个目录:

    1
    find /path/to/search -name "*.jpg" -exec mv {} /path/to/destination \;

    将所有后缀为 .jpg 的文件移动到另一个目录。

  4. 查找所有空文件或目录:

    1
    find /path/to/search -empty

    查找并显示所有空文件或目录。

  5. 查找并压缩所有 .txt 文件:

    1
    find /path/to/search -name "*.txt" -exec gzip {} \;

    查找并使用 gzip 命令压缩所有后缀为 .txt 的文件。

find 命令非常强大,可以根据各种条件在文件系统中进行灵活的搜索。请注意,在使用 find 命令时要小心,确保你了解你的搜索条件以及其潜在的影响。

linux find命令 常用技巧

以下是一些在使用 find 命令时的常用技巧,可以帮助你更灵活地进行文件搜索和操作:

  1. 使用 -exec 执行操作:

    1
    find /path/to/search -name "*.txt" -exec rm {} \;

    使用 -exec 选项可以在找到的每个文件上执行特定的操作,这里是删除所有后缀为 .txt 的文件。

  2. 使用 -exec 执行复杂命令:

    1
    find /path/to/search -name "*.log" -exec sh -c 'mv {} $(dirname {})/archive/' \;

    使用 -exec 时,可以执行更复杂的命令,这里将所有后缀为 .log 的文件移动到它们所在目录下的 archive 子目录。

  3. 使用 -iname 进行不区分大小写的搜索:

    1
    find /path/to/search -iname "*.jpg"

    使用 -iname 可以进行不区分大小写的文件名搜索。

  4. 查找特定类型的文件:

    1
    find /path/to/search -type f -name "*.txt"

    使用 -type 选项可以限制搜索结果为文件,而不是目录。

  5. 查找符号链接文件:

    1
    find /path/to/search -type l

    使用 -type l 可以查找符号链接文件。

  6. 查找并显示文件详细信息:

    1
    find /path/to/search -name "*.txt" -ls

    使用 -ls 可以显示详细的文件信息,包括权限、大小、时间戳等。

  7. 查找文件并排除特定目录:

    1
    find /path/to/search -name "*.txt" -not -path "/path/to/exclude/*"

    使用 -not -path 可以排除特定目录下的文件。

  8. 查找文件并按修改时间排序:

    1
    find /path/to/search -name "*.txt" -exec stat --format="%Y %n" {} \; | sort -n

    使用 -exec 结合 stat 命令和 sort 命令,可以按修改时间对搜索结果进行排序。

  9. 查找空文件和空目录:

    1
    find /path/to/search -empty

    使用 -empty 可以查找空文件和空目录。

  10. 使用 -maxdepth 限制搜索深度:

    1
    find /path/to/search -name "*.txt" -maxdepth 2

    使用 -maxdepth 可以限制搜索的深度,防止过度搜索。

这些技巧可以帮助你更灵活地使用 find 命令,根据具体需求进行文件搜索和操作。请确保在使用复杂的命令时仔细测试,以避免不必要的文件操作。

linux find命令 高级技巧

以下是一些高级技巧,可以帮助你更有效地使用 find 命令进行文件搜索和操作:

  1. 使用 -regex 进行正则表达式搜索:

    1
    find /path/to/search -regex ".*\.txt"

    使用 -regex 可以进行正则表达式匹配,这对于复杂的文件名模式非常有用。

  2. 使用 -newer 按时间戳搜索新文件:

    1
    find /path/to/search -newer /path/to/reference_file

    使用 -newer 可以搜索比参考文件更新的文件。

  3. 使用 -delete 直接删除匹配的文件:

    1
    find /path/to/search -name "*.tmp" -delete

    使用 -delete 可以直接删除匹配的文件,而无需使用 -exec rm

  4. 使用 -execdir 在文件所在目录执行命令:

    1
    find /path/to/search -name "*.txt" -execdir mv {} /path/to/destination \;

    使用 -execdir 可以在匹配的文件所在目录执行命令,避免可能的路径问题。

  5. 使用 -printf 格式化输出信息:

    1
    find /path/to/search -name "*.txt" -printf "%p\t%s\n"

    使用 -printf 可以自定义输出信息的格式,这对于生成报告非常有用。

  6. -exec 中使用 + 提高效率:

    1
    find /path/to/search -name "*.log" -exec cat {} +

    -exec 中使用 + 可以将多个文件一次性传递给命令,提高效率。

  7. 查找包含特定文本的文件:

    1
    grep -rl "search_text" /path/to/search

    如果你要查找包含特定文本的文件,可能更适合使用 grep 命令。

  8. 在搜索结果中排除特定目录:

    1
    find /path/to/search -name "*.txt" -not -path "/path/to/exclude/*"

    使用 -not -path 可以排除特定目录下的文件。

  9. 使用 -exec sh -c 执行复杂的命令:

    1
    find /path/to/search -name "*.txt" -exec sh -c 'mv {} $(dirname {})/archive/' \;

    使用 -exec sh -c 可以执行包含变量和子命令的复杂命令。

  10. 通过 -print0xargs -0 处理包含空格的文件名:

    1
    find /path/to/search -name "*.txt" -print0 | xargs -0 command

    使用 -print0xargs -0 可以处理文件名中包含空格等特殊字符的情况。

这些高级技巧可以帮助你更灵活地使用 find 命令,根据具体需求进行文件搜索和操作。要牢记在使用复杂命令时小心,确保它们符合你的预期。

find

在Linux中,find命令用于在文件系统中查找符合指定条件的文件和目录。它提供了强大的搜索功能,可以根据不同的搜索标准来定位文件和目录。

find命令的基本语法如下:

1
find [路径] [表达式]

其中,路径指定要搜索的起始目录路径,表达式用于指定搜索条件和操作。

以下是一些常见的用法示例:

  1. 搜索指定目录下的所有文件:

    1
    find /path/to/directory
  2. 搜索指定目录下的特定文件类型(例如,所有的文本文件):

    1
    find /path/to/directory -type f -name "*.txt"
  3. 搜索指定目录及其子目录下的所有文件:

    1
    find /path/to/directory -type f
  4. 搜索指定目录下最近修改的文件:

    1
    find /path/to/directory -type f -mtime -7

    上述命令将搜索在最近7天内被修改的文件。

  5. 搜索指定目录下的文件并执行操作(如打印文件名或删除文件):

    1
    2
    find /path/to/directory -type f -exec echo {} \;
    find /path/to/directory -type f -exec rm {} \;

需要注意以下几点:

  • find命令默认会递归地搜索指定目录及其子目录下的文件和目录。
  • -type选项用于指定要搜索的文件类型,例如f表示普通文件,d表示目录。
  • -name选项用于指定文件名的模式匹配。
  • -mtime选项用于指定文件的修改时间,例如-mtime -7表示最近7天内修改的文件。
  • -exec选项用于在找到的文件上执行特定的命令。

find命令还支持许多其他选项和表达式,用于更精确地控制搜索条件和操作。你可以使用man find命令查阅find命令的详细文档,以了解更多关于其用法和选项的信息。


find -exec选项

在Linux中,-execfind命令的一个选项,用于在找到的文件上执行指定的命令。-exec选项允许你对找到的文件执行各种自定义操作。

-exec选项的语法如下:

1
-exec command {} \;

解释如下:

  • command:要执行的命令,可以是任何合法的Linux命令。命令必须以空格或分号结尾,并用单引号或双引号括起来。
  • {}:是一个占位符,表示find命令找到的每个文件。{}会被实际的文件名替换。
  • \;:表示-exec选项的结束,必须使用反斜杠转义字符进行转义。

以下是一些常见的用法示例:

  1. 打印找到的文件名:

    1
    find /path/to/directory -type f -exec echo {} \;
  2. 复制找到的文件到目标目录:

    1
    find /path/to/directory -type f -exec cp {} /path/to/destination/ \;
  3. 删除所有找到的文件:

    1
    find /path/to/directory -type f -exec rm {} \;

需要注意以下几点:

  • 如果在command中使用{},确保在命令中引用文件名之前进行适当的转义或引号处理,以避免解释错误。
  • 如果要对多个文件执行命令,可以使用+代替\;作为结束符。这样会将多个文件一次传递给命令,从而提高效率。

总而言之,-exec选项使得find命令具有强大的功能,可以在找到的文件上执行自定义的命令和操作。这对于批量处理文件或执行复杂的操作非常有用。

简介

  • init命令

linux init命令 详解

init 命令在 Linux 系统中用于启动系统初始化进程,是系统引导过程中的第一个用户空间进程。init 进程的主要任务是启动系统中的各种服务和进程,初始化系统环境,然后将控制权转交给其他运行级别(runlevel)对应的程序。以下是对 init 命令的详细说明:

基本用法:

1
init [runlevel]
  • runlevel: 可选参数,指定要切换到的运行级别。如果省略该参数,则 init 将默认切换到运行级别 3。

运行级别(Runlevel):

运行级别是一种系统状态,代表了一组运行的服务和进程。不同的运行级别支持不同的功能和服务。在传统的 System V 初始化系统中,常见的运行级别包括:

  • 0: 关机(系统停机)。
  • 1: 单用户模式(单用户维护模式)。
  • 2: 多用户模式,没有网络服务。
  • 3: 多用户模式,带有网络服务。
  • 4: 未分配。
  • 5: 图形用户界面(带有图形登录界面)。
  • 6: 重新启动系统。

示例:

  1. 切换到单用户模式(维护模式):

    1
    init 1

    切换到单用户模式,通常用于系统维护。

  2. 切换到多用户模式,带有网络服务:

    1
    init 3

    切换到多用户模式,包含网络服务。

  3. 切换到图形用户界面:

    1
    init 5

    切换到图形用户界面,如果系统配置了图形登录界面。

注意事项:

  • init 命令在现代 Linux 系统中可能已经被其他初始化系统(如 systemd)替代,因此在一些系统上可能不再使用。
  • 如果使用 System V 初始化系统,init 进程的配置文件通常是 /etc/inittab
  • 在某些系统上,可以使用 telinit 命令代替 init 来切换运行级别,例如 telinit 3

init 命令主要在传统的 System V 初始化系统中使用,现代 Linux 系统中可能使用更先进的初始化系统。如果你的系统使用 systemd,那么 systemctl 命令可能是更常见的用于管理服务和运行级别的工具。

init

  • 简介:

    • 在Linux中,init 是系统引导过程中的第一个用户级进程,它是系统的第一个进程,负责初始化系统并启动其他进程。但是在最新的Linux发行版中,init 进程已经被更现代化的 systemd 替代
    • init 进程的主要任务是根据系统的运行级别(runlevel)来启动相应的服务和进程。运行级别定义了系统的状态或功能模式,例如单用户模式、多用户图形界面模式等。不同的运行级别对应着不同的系统配置和服务启动状态。
    • 在传统的系统中,可以使用 init 命令来切换运行级别
  • 语法:

    1
    init <运行级别>
  • 常见的运行级别:

    • 0:关机
    • 1:单用户模式
    • 2:多用户模式(没有NFS服务)
    • 3:完全的多用户模式
    • 4:保留给用户自定义
    • 5:图形界面模式
    • 6:重新启动
  • 示例:

    1
    init 5
  • 注:

    • 需要注意的是,init 命令需要超级用户权限才能执行,因此通常需要使用 sudo 或以 root 用户身份运行
    • 虽然在现代的Linux发行版中,init 进程已被 systemd 取代,但了解 init 的基本概念仍然有助于理解系统的引导过程和运行级别的概念

简介

  • md5sum命令

linux md5sum命令 详解

md5sum 是一个用于计算和验证文件 MD5 摘要的 Linux 命令。MD5(Message Digest Algorithm 5)是一种广泛使用的哈希函数,用于产生固定长度的散列值,通常用作文件的校验和。以下是关于 md5sum 命令的详细解释:

语法:

1
md5sum [选项] [文件]

常用选项:

  • -b, –binary: 以二进制模式处理文件。

  • -c, –check: 从文件中读取 MD5 摘要并验证文件。

  • -t, –text: 以文本模式处理文件。

  • -w, –warn: 在检查模式时,显示警告信息。

示例:

  1. 计算文件的 MD5 摘要:

    1
    md5sum filename
  2. 计算多个文件的 MD5 摘要:

    1
    md5sum file1 file2 file3
  3. 将 MD5 摘要保存到文件:

    1
    md5sum file1 > checksums.md5
  4. 检查文件是否与给定的 MD5 摘要匹配:

    1
    md5sum -c checksums.md5

示例解释:

  • 输出格式: MD5值 文件名

  • 计算 MD5 摘要: md5sum filename 将计算指定文件的 MD5 摘要。

  • 验证文件: md5sum -c checksums.md5 将读取 checksums.md5 文件中的 MD5 摘要,并检查每个文件是否与摘要匹配。如果匹配,输出文件名,否则显示警告。

  • 保存 MD5 摘要到文件: md5sum file1 > checksums.md5 将计算 file1 的 MD5 摘要并将其保存到 checksums.md5 文件中。

  • 二进制模式和文本模式: 使用 -b-t 选项来指定处理文件的模式。默认情况下,md5sum 以二进制模式处理文件。

安全性注意事项:

MD5 算法在安全性上存在问题,因为它容易受到碰撞攻击。因此,在对文件进行重要安全性验证时,建议使用更安全的哈希算法,如SHA-256或SHA-3,而不是MD5。

linux md5sum命令 常用技巧

md5sum 命令在 Linux 中是一个用于计算和验证文件 MD5 摘要的常用工具。以下是一些常用的技巧和技术:

  1. 计算单个文件的 MD5 摘要:

    1
    md5sum filename
  2. 计算多个文件的 MD5 摘要:

    1
    md5sum file1 file2 file3
  3. 计算文件夹中所有文件的 MD5 摘要:

    1
    md5sum *.*
  4. 递归计算文件夹中所有文件的 MD5 摘要:

    1
    find /path/to/directory -type f -exec md5sum {} \;
  5. 将 MD5 摘要保存到文件:

    1
    md5sum file1 > checksums.md5
  6. 将多个文件的 MD5 摘要保存到文件:

    1
    md5sum file1 file2 file3 > checksums.md5
  7. 检查文件是否与给定的 MD5 摘要匹配:

    1
    md5sum -c checksums.md5
  8. 使用管道计算文件内容的 MD5 摘要:

    1
    cat filename | md5sum
  9. 将 MD5 摘要输出显示为只有哈希值,不显示文件名:

    1
    md5sum -b filename
  10. 验证文件时忽略警告信息:

    1
    md5sum -w -c checksums.md5
  11. 使用 awk 提取文件的 MD5 哈希值:

    1
    md5sum filename | awk '{print $1}'
  12. 使用 cut 提取文件的 MD5 哈希值:

    1
    md5sum filename | cut -d' ' -f1

这些技巧能够帮助你更灵活地使用 md5sum 命令来满足不同的需求,无论是计算文件的哈希值还是验证文件的完整性。

md5sum

md5sum 是一个常用的 Linux 命令,用于计算文件的 MD5 哈希值。它的基本语法如下:

1
md5sum [选项] 文件

其中,文件 参数是要计算哈希值的文件路径。

以下是一些常用的选项:

  • -b--binary:以二进制模式读取文件。
  • -c--check:校验 MD5 校验和文件。
  • -t--text:以文本模式读取文件。
  • -q--quiet:只显示校验结果,不显示详细信息。

使用示例:

  1. 计算单个文件的 MD5 哈希值:

    1
    md5sum file.txt
  2. 计算多个文件的 MD5 哈希值:

    1
    md5sum file1.txt file2.txt file3.txt
  3. 通过 MD5 校验和文件校验文件的完整性:

    1
    md5sum -c checksum.md5
  4. 只显示校验结果,不显示详细信息:

    1
    md5sum -q file.txt

请注意,md5sum 命令计算的是文件的 MD5 哈希值,而不是文件内容的加密哈希。它通常用于校验文件的完整性,确保文件在传输过程中没有被篡改。

简介

  • realelf命令

linux realelf命令 详解

在 Linux 中,readelf 命令用于显示 ELF(Executable and Linkable Format)文件的信息,包括可执行文件、共享库以及目标文件等。ELF 是一种用于描述二进制文件结构的标准格式,常见于 Linux 和许多类 Unix 操作系统中。以下是关于 readelf 命令的详细解释:

语法:

1
readelf [选项] 文件

常用选项:

  • -a, –all: 显示所有信息。

  • -h, –file-header: 显示 ELF 文件头部信息。

  • -l, –program-headers: 显示程序头部表信息。

  • -S, –section-headers: 显示节头部表信息。

  • -e, –headers: 等同于 -h -l -S,显示所有头部信息。

  • -s, –symbols: 显示符号表。

  • -d, –dynamic: 显示动态节信息。

  • -A, –arch-specific: 显示体系结构特定标记。

  • -x <number or name>, –hex-dump=<number or name>: 以十六进制格式显示指定节的内容。

  • -w[lLiaprmfFsoRtUu], –debug-dump[=option]: 显示调试节的详细信息。

  • -p <string>, –string-dump=<string>: 显示指定节的字符串表。

  • –version: 显示 readelf 版本信息。

示例:

  1. 显示 ELF 文件头信息:

    1
    readelf -h executable_file
  2. 显示程序头表信息:

    1
    readelf -l executable_file
  3. 显示节头表信息:

    1
    readelf -S executable_file
  4. 显示符号表信息:

    1
    readelf -s executable_file
  5. 显示动态节信息:

    1
    readelf -d executable_file
  6. 以十六进制格式显示指定节的内容:

    1
    readelf -x .text executable_file
  7. 显示调试信息:

    1
    readelf -w executable_file

示例解释:

  • ELF 文件头信息: 使用 -h 选项显示 ELF 文件的头部信息,包括文件类型、入口点地址、程序头部表偏移、节头部表偏移等。

  • 程序头表和节头表信息: 使用 -l-S 选项分别显示程序头表和节头表的详细信息。

  • 符号表信息: 使用 -s 选项显示 ELF 文件的符号表,包括函数、变量等。

  • 动态节信息: 使用 -d 选项显示 ELF 文件的动态节信息,这对于共享库和动态链接很有用。

  • 以十六进制格式显示指定节的内容: 使用 -x 选项可以查看指定节的内容,例如 .text 节包含可执行代码。

  • 调试信息: 使用 -w 选项显示 ELF 文件的调试信息,包括源代码、调试符号等。

linux realelf命令 常用技巧

在 Linux 中,readelf 命令是一个强大的工具,可以用于分析和查看 ELF(Executable and Linkable Format)文件的结构和信息。以下是一些常用的 readelf 命令技巧和用法:

  1. 查看 ELF 文件头信息:

    1
    readelf -h executable_file

    通过 -h 选项,可以查看 ELF 文件的头部信息,包括文件类型、入口点地址、程序头部表偏移、节头部表偏移等。

  2. 查看程序头表信息:

    1
    readelf -l executable_file

    使用 -l 选项,可以查看 ELF 文件的程序头表信息,包括每个程序头条目的详细信息。

  3. 查看节头表信息:

    1
    readelf -S executable_file

    通过 -S 选项,可以查看 ELF 文件的节头表信息,包括每个节的详细信息,如名称、大小、偏移等。

  4. 查看符号表信息:

    1
    readelf -s executable_file

    使用 -s 选项,可以查看 ELF 文件的符号表信息,包括函数、变量等的详细信息。

  5. 查看动态节信息:

    1
    readelf -d executable_file

    通过 -d 选项,可以查看 ELF 文件的动态节信息,包括共享库的动态链接信息。

  6. 以十六进制格式查看指定节的内容:

    1
    readelf -x .text executable_file

    使用 -x 选项,可以查看指定节(这里是 .text 节)的内容,以十六进制格式显示。

  7. 查看字符串表信息:

    1
    readelf -p .strtab executable_file

    通过 -p 选项,可以查看指定节(这里是 .strtab 节)的字符串表信息。

  8. 查看调试信息:

    1
    readelf -w executable_file

    使用 -w 选项,可以查看 ELF 文件的调试信息,包括源代码、调试符号等。

  9. 显示所有信息:

    1
    readelf -a executable_file

    通过 -a 选项,可以显示 ELF 文件的所有信息,包括头部、节头、程序头、符号表、动态节等。

这些技巧可以帮助你更全面地了解 ELF 文件的结构和内容,对于调试、性能优化以及软件逆向工程等方面都非常有用。

readelf

  • readelf 是一个命令行工具,用于显示 ELF(Executable and Linkable Format)格式的文件的信息。ELF 是一种常用的二进制文件格式,用于可执行文件、共享库和目标文件。

  • 使用 readelf 命令可以查看和分析 ELF 文件的各种属性和部分内容,包括符号表、节表、段表、动态链接、重定位信息等。它提供了对 ELF 文件结构的详细解析和显示。

  • 以下是一些常用的 readelf 命令示例:

  1. 查看 ELF 文件的头部信息:

    1
    readelf -h executable
  2. 查看 ELF 文件的节表信息:

    1
    readelf -S executable
  3. 查看 ELF 文件的符号表信息:

    1
    readelf -s executable
  4. 查看 ELF 文件的动态链接信息:

    1
    readelf -d executable
  5. 查看 ELF 文件的重定位信息:

    1
    readelf -r executable

安装readelf

  • readelf 是 binutils 软件包的一部分,它通常预装在大多数 Linux 发行版中。如果你无法使用 readelf 命令,你可以尝试安装 binutils 软件包,以确保 readelf 工具可用。

  • 对于基于 Debian/Ubuntu 的系统,可以使用以下命令安装 binutils:

    1
    sudo apt-get install binutils
  • 对于基于 Red Hat/CentOS 的系统,可以使用以下命令安装 binutils:

    1
    sudo yum install binutils
  • 安装完成后,你就可以使用 readelf 命令来查看和分析 ELF 文件的信息了。请注意,安装软件包可能需要管理员权限,因此在安装时可能需要使用 sudo 或 root 用户身份运行命令。

  • 如果你的系统已经安装了 binutils 软件包,但仍然无法使用 readelf 命令,可能是因为它不在系统的 PATH 环境变量中。在这种情况下,你可以尝试使用绝对路径来运行 readelf,例如:

    1
    /usr/bin/readelf -h executable

根据你的系统配置和安装方式,实际的 readelf 路径可能会有所不同。你可以使用 which readelf 命令来查找正确的路径。

这些命令示例只是 readelf 命令的一小部分功能演示,readelf 还提供了其他选项和功能,可以根据需要进行查看和分析 ELF 文件的更多细节。使用 readelf --help 命令可以查看 readelf 的完整选项列表和用法说明。

简介

  • watch命令

linux watch命令 详解

watch 是一个 Linux 命令,用于周期性地执行给定的命令,并在终端上显示输出结果。默认情况下,watch 每两秒钟刷新一次终端,并显示命令的最新输出。这对于监视实时进程、日志文件或其他动态数据非常有用。以下是 watch 命令的详细解释:

语法:

1
watch [选项] 命令

常用选项:

  • -n <秒数>, –interval=<秒数>: 指定刷新间隔时间,默认为两秒。

  • -d, –differences: 高亮显示命令输出中发生变化的部分。

  • -t, –no-title: 隐藏终端顶部的标题行。

  • -h, –help: 显示帮助信息。

示例:

  1. 基本用法:

    1
    watch ls -l

    这将每两秒运行一次 ls -l 命令并显示结果。

  2. 指定刷新间隔时间:

    1
    watch -n 5 df -h

    使用 -n 选项,指定刷新间隔为5秒,监视磁盘空间的变化。

  3. 高亮显示差异:

    1
    watch -d ls -l

    使用 -d 选项,高亮显示输出中发生变化的部分。

  4. 隐藏标题行:

    1
    watch -t du -sh

    使用 -t 选项,隐藏终端顶部的标题行。

  5. 查看进程实时信息:

    1
    watch -n 1 ps aux

    使用 -n 选项,每秒查看一次系统中运行的进程。

示例解释:

  • 刷新间隔: 默认情况下,watch 每两秒刷新一次。使用 -n 选项可以指定刷新间隔,以秒为单位。

  • 差异高亮显示: 使用 -d 选项,watch 会在输出中高亮显示发生变化的部分,便于识别变化。

  • 隐藏标题行: 使用 -t 选项,可以隐藏终端顶部的标题行,使界面更简洁。

  • 实时监视命令输出: watch 对于实时监视命令输出非常有用,例如查看磁盘空间、进程列表等。

  • 中断操作:watch 运行的终端中,可以使用 Ctrl+C 中断操作,停止 watch 命令的执行。

watch 是一个强大的实用工具,特别适用于需要持续监视输出的场景。

linux watch命令 常用技巧

watch 命令在 Linux 中常用于定期执行命令并显示输出。以下是一些常用的 watch 命令技巧:

  1. 定期查看日志文件:

    1
    watch -n 5 tail /var/log/syslog

    这将每5秒刷新一次 syslog 日志文件的末尾,以查看实时的系统日志。

  2. 监控文件变化:

    1
    watch -d ls -l

    使用 -d 选项,高亮显示输出中发生变化的部分,有助于监控文件变化。

  3. 监视实时网络连接:

    1
    watch -n 1 netstat -an

    使用 -n 选项,每秒显示一次网络连接信息,有助于监视实时网络活动。

  4. 查看磁盘使用情况:

    1
    watch -n 5 df -h

    使用 -n 选项,每5秒查看一次磁盘使用情况,以实时监控可用磁盘空间。

  5. 实时监视系统资源利用率:

    1
    watch -n 1 top

    使用 -n 选项,每秒刷新一次 top 命令,实时查看系统资源利用率。

  6. 定期执行自定义脚本:

    1
    watch -n 10 /path/to/custom/script.sh

    使用 -n 选项,每10秒执行一次自定义脚本并显示输出。

  7. 监控文件夹变化:

    1
    watch -d ls -l /path/to/directory

    使用 -d 选项,高亮显示输出中发生变化的部分,有助于监控文件夹内文件的变化。

  8. 查看系统时间变化:

    1
    watch -n 1 date

    使用 -n 选项,每秒显示一次当前系统时间,实时查看时间变化。

  9. 实时监控网络传输速率:

    1
    watch -n 1 ifconfig eth0

    使用 -n 选项,每秒显示一次网络接口信息,包括传输速率。

  10. 监视进程的 CPU 和内存使用情况:

    1
    watch -n 1 ps aux

    使用 -n 选项,每秒刷新一次正在运行的进程的 CPU 和内存使用情况。

这些技巧可以使 watch 命令更灵活,适应不同的监控和观察需求。根据具体的场景,调整刷新间隔和监控的命令,以获得所需的实时信息。

watch

  • 简介:

    • watch命令是在Linux环境下,以固定时间间隔观察用户自定义命令运行情况的工具
    • 它暂时清除所有终端内容,并显示所附命令的输出,以及当前系统的日期和时间。
    • 它默认为每2秒更新一次所附命令的输出,ctrl+c用于退出
    • 当你需要监控一个命令输出随时间的变化时,watch命令很有用。这包括磁盘使用率、系统正常运行时间或跟踪错误。
  • 语法:

    • watch [option] [command]
  • 参数:

    • [option] 添加一个选项可以改变观察命令的行为方式
      • -n, –interval 允许你指定输出更新的时间间隔。
      • -d, –differences 突出了输出更新之间的差异。
      • -g, –chgexit 当用户定义的命令的输出发生变化时,退出监视命令
      • -t, –no-title 移除显示时间间隔、命令和当前时间及日期的标题。
      • -b, –beep 如果命令退出时出现错误,则播放声音警报(哔哔声)
      • -p, –precise 试图在-interval选项定义的确切秒数之后运行命令。
      • -e, –errexit 出错时停止输出更新,在按下一个键后退出命令。
      • -c, –color 解释ANSI颜色和样式序列。
      • -x, –exec 将用户定义的命令传递给exec,减少对额外引号的需要。
      • -w, –no-linewrap 关掉换行,截断长行。
      • -h, –help 显示帮助文本并退出
      • -v, –version 显示版本信息并退出
  • 示例

    • watch -n 5 date

简介

  • ldd命令

linux ldd命令 详解

ldd 是 Linux 系统中的一个命令,用于显示可执行文件或共享库的动态链接依赖关系。它会列出程序运行时所需的共享库,并显示它们的完整路径。以下是关于 ldd 命令的详细解释:

语法:

1
ldd [选项] 可执行文件

常用选项:

  • -v, –verbose: 显示详细的信息,包括库的版本号和调试信息。

  • -u, –unused: 仅显示未使用的直接依赖项。

  • -d, –data-relocs: 显示数据的重定位信息。

  • -r, –function-relocs: 显示函数的重定位信息。

  • -s, –not-symbolic: 不解析符号链接,直接显示链接库的真实路径。

  • -f, –list-file: 将输出写入到指定的文件而不是标准输出。

示例:

  1. 显示可执行文件的动态链接依赖关系:

    1
    ldd /path/to/executable

    这将列出可执行文件所需的共享库以及它们的完整路径。

  2. 显示未使用的直接依赖项:

    1
    ldd -u /path/to/executable

    使用 -u 选项,仅显示未被程序使用的直接依赖项。

  3. 显示详细信息和版本号:

    1
    ldd -v /path/to/executable

    使用 -v 选项,可以显示详细的信息,包括库的版本号和调试信息。

  4. 显示数据的重定位信息:

    1
    ldd -d /path/to/executable

    使用 -d 选项,可以显示数据的重定位信息。

  5. 显示函数的重定位信息:

    1
    ldd -r /path/to/executable

    使用 -r 选项,可以显示函数的重定位信息。

  6. 不解析符号链接,直接显示链接库的真实路径:

    1
    ldd -s /path/to/executable

    使用 -s 选项,将不解析符号链接,直接显示链接库的真实路径。

  7. 将输出写入到文件:

    1
    ldd -f /path/to/executable > dependencies.txt

    使用 -f 选项,可以将输出写入到指定的文件而不是标准输出。

示例解释:

  • 动态链接依赖关系: ldd 命令会列出可执行文件所依赖的共享库,并显示它们的路径,以便操作系统在程序运行时能够正确加载这些库。

  • 未使用的依赖项: 使用 -u 选项,可以找出程序依赖的库中哪些没有被程序使用。

  • 详细信息和版本号: 使用 -v 选项,可以获取更详细的信息,包括库的版本号和调试信息,有助于排查问题。

  • 重定位信息: 使用 -d-r 选项,可以查看关于数据和函数的重定位信息,对于调试和分析程序行为很有帮助。

  • 不解析符号链接: 使用 -s 选项,可以显示链接库的真实路径,而不是解析符号链接。

  • 输出写入文件: 使用 -f 选项,可以将 ldd 命令的输出写入指定的文件,以便后续分析。

linux ldd命令 常用技巧

ldd 命令在 Linux 中用于查看可执行文件或共享库的动态链接依赖关系。以下是一些 ldd 命令的常用技巧:

  1. 查看可执行文件的动态链接库:

    1
    ldd /path/to/executable

    这会列出可执行文件所依赖的共享库以及它们的路径。

  2. 只显示缺失的动态链接库:

    1
    ldd -u /path/to/executable

    使用 -u 选项,可以仅显示未被程序使用的直接依赖项,即缺失的库。

  3. 显示详细信息:

    1
    ldd -v /path/to/executable

    使用 -v 选项,可以显示更详细的信息,包括库的版本号和调试信息。

  4. 查看共享库的依赖关系:

    1
    ldd /path/to/shared/library.so

    ldd 不仅可以用于可执行文件,也可以用于查看共享库的依赖关系。

  5. 将输出写入文件:

    1
    ldd /path/to/executable > dependencies.txt

    ldd 的输出写入文件,以便后续分析。

  6. 显示所有符号链接的真实路径:

    1
    ldd -s /path/to/executable

    使用 -s 选项,可以显示链接库的真实路径,而不是解析符号链接。

  7. 显示函数的重定位信息:

    1
    ldd -r /path/to/executable

    使用 -r 选项,可以显示函数的重定位信息,对于调试和分析程序行为很有帮助。

  8. 显示数据的重定位信息:

    1
    ldd -d /path/to/executable

    使用 -d 选项,可以显示数据的重定位信息。

  9. 递归查看所有依赖项:

    1
    find /path/to/executable -exec ldd {} \;

    使用 find 命令和 -exec 选项,递归查看所有依赖项。

这些技巧能够帮助你更深入地了解程序的依赖关系,有助于调试和解决运行时的问题。

ldd(list dynamic dependencies)

  • 简介:

    • ldd命令用于打印程序或者库文件所依赖的共享库列表。
  • 语法

    • ldd [参数] [文件]
  • 参数

    • -v 详细信息模式,打印所有相关信息
    • -u 打印未使用的直接依赖
    • -d 执行重定位和报告任何丢失的对象
    • -r 执行数据对象和函数的重定位,并且报告任何丢失的对象和函数
    • –help 显示帮助信息
  • 示例:

    1
    ldd /path/to/executable
  • 注:

    • 当你在终端中运行 ldd 命令并指定一个可执行文件的路径时,它会列出该可执行文件所依赖的共享库。对于每个共享库,它会显示库的路径和版本号。这些共享库是程序在运行时需要的动态链接库,它们提供了程序所需的函数和符号
    • ldd 命令对于诊断程序依赖性问题非常有用。通过查看程序的依赖库列表,你可以确定程序是否缺少某些依赖库或使用了不兼容的库版本
    • 需要注意的是,ldd 命令只能查看程序或共享库的直接依赖库,无法递归地列出所有依赖关系。如果你需要查看所有依赖库,可以使用工具如 readelf 或 objdump 结合脚本来实现

简介

  • unset命令

linux unset命令 详解

unset 是一个 Linux/Unix 命令,用于删除环境变量或取消变量的赋值。它的主要作用是将变量从 shell 的环境中移除。以下是关于 unset 命令的详细解释:

语法:

1
unset [选项] [变量名]

常用选项:

  • -f, –force: 强制删除函数定义,即使函数是只读的。

示例:

  1. 删除环境变量:

    1
    unset MY_VARIABLE

    这将删除名为 MY_VARIABLE 的环境变量。

  2. 删除多个环境变量:

    1
    unset VAR1 VAR2 VAR3

    可以一次删除多个环境变量。

  3. 删除数组中的元素:

    1
    unset my_array[2]

    可以从数组中删除指定索引处的元素。

  4. 删除函数定义:

    1
    unset -f my_function

    使用 -f 选项,可以删除名为 my_function 的函数定义。

示例解释:

  • 删除环境变量: unset 主要用于删除已定义的环境变量。这对于清理不再需要的变量或重置变量的值是有用的。

  • 删除多个环境变量: 通过在一条命令中列出多个变量名,可以同时删除多个环境变量。

  • 删除数组中的元素: 在 Bash 中,可以使用 unset 删除数组中的特定元素,通过指定数组名和元素索引。

  • 删除函数定义: 使用 -f 选项,可以强制删除已定义的函数,即使函数是只读的。

注意: unset 命令不仅可以删除环境变量,还可以删除函数定义。在使用时,应谨慎,确保不会删除关键变量或函数。

linux unset命令 常用技巧

unset 命令在 Linux 中通常用于删除环境变量或取消变量的赋值。以下是一些 unset 命令的常用技巧:

  1. 删除环境变量:

    1
    unset MY_VARIABLE

    这将删除名为 MY_VARIABLE 的环境变量。

  2. 删除数组元素:

    1
    2
    my_array=(1 2 3 4 5)
    unset my_array[2]

    在 Bash 中,可以使用 unset 删除数组中的特定元素,通过指定数组名和元素索引。

  3. 删除多个环境变量:

    1
    unset VAR1 VAR2 VAR3

    一次性删除多个环境变量。

  4. 删除所有环境变量:

    1
    unset $(env | grep -o '^[^=]\+=' | sed 's/=//')

    使用命令替换和管道,删除所有环境变量。这样做时要非常谨慎,以免删除系统关键变量。

  5. 在函数中使用 unset:

    1
    2
    3
    4
    my_function() {
    unset MY_VARIABLE
    # 函数的其他操作
    }

    在函数中使用 unset 可以清除特定的环境变量,确保函数内部不受其影响。

  6. 取消变量的赋值:

    1
    2
    my_variable="some_value"
    unset my_variable

    使用 unset 可以取消变量的赋值,将其还原为未定义状态。

  7. 强制删除只读变量:

    1
    2
    readonly_var="read-only"
    unset readonly_var

    尝试使用 unset 删除只读变量时会报错,但可以通过 unset 命令的 -f 选项强制删除。

  8. 删除函数定义:

    1
    unset -f my_function

    使用 -f 选项,可以删除已定义的函数。

这些技巧可以帮助你更灵活地使用 unset 命令,清理和管理环境变量,以及取消变量和函数的赋值。

unset

  • 简介:

    • Linux unset命令用于删除变量或函数
    • unset为shell内建指令,可删除变量或函数
  • 语法:

    • unset [-fv][变量或函数名称]
  • 参数:

    • -f 仅删除函数
    • -v 仅删除变量

简介

  • linux snap命令 详解

linux snap命令 详解

Snap是一种在Linux系统中用于安装、管理和运行应用程序的包管理系统。Snap包是一种打包了应用程序及其依赖项的独立软件包,具有自包含性和可移植性。Snap包可以在不同的Linux发行版上运行,而无需担心依赖关系和兼容性问题。以下是一些常用的Snap命令及其详解:

  1. 安装Snap:

    1
    sudo apt install snapd

    该命令用于安装Snap运行时环境。

  2. 查找Snap包:

    1
    snap find <package-name>

    用于查找Snap Store中特定应用程序的Snap包。

  3. 安装Snap包:

    1
    sudo snap install <package-name>

    用于安装指定的Snap包。

  4. 卸载Snap包:

    1
    sudo snap remove <package-name>

    用于卸载已安装的Snap包。

  5. 列出所有已安装的Snap包:

    1
    snap list

    该命令列出系统中所有已安装的Snap包。

  6. 更新所有已安装的Snap包:

    1
    sudo snap refresh

    用于更新系统中所有已安装的Snap包。

  7. 更新特定Snap包:

    1
    sudo snap refresh <package-name>

    用于更新指定的Snap包。

  8. 显示Snap包的详细信息:

    1
    snap info <package-name>

    用于显示特定Snap包的详细信息,包括版本、发布者等。

  9. 启动Snap应用程序:

    1
    snap run <package-name>

    用于启动已安装的Snap应用程序。

  10. 查看Snap应用程序的日志:

    1
    snap logs <package-name>

    用于查看Snap应用程序的运行日志。

  11. 管理Snap用户权限:

    1
    snap connections <package-name>

    用于显示Snap应用程序的接口连接信息,包括已授予和已拒绝的权限。

这些命令涵盖了常见的Snap操作,让你能够轻松安装、更新和管理Snap应用程序。注意,一些命令可能需要使用sudo来获取管理员权限。

linux snap命令 常用技巧

除了基本的Snap命令之外,以下是一些在使用Snap时常用的技巧:

  1. 查看系统中已安装的Snap包:

    1
    snap list

    使用这个命令可以快速查看系统中已安装的所有Snap包,以及它们的版本和发布者。

  2. 搜索Snap Store中的应用程序:

    1
    snap find <search-term>

    使用此命令可以在Snap Store中搜索应用程序。替换<search-term>为你要查找的应用程序名称或关键字。

  3. 禁用自动更新:
    默认情况下,Snap包会定期自动更新。如果你想禁用自动更新,可以使用如下命令:

    1
    sudo snap set core refresh.schedule=<time>

    <time>替换为一个未来的时间,例如”23:00”,表示在每天晚上11点进行更新检查。

  4. 强制更新所有Snap包:

    1
    sudo snap refresh --beta --devmode --edge <package-name>

    使用此命令可以强制更新指定Snap包到其最新的beta、devmode或edge版本。

  5. 回滚Snap包版本:

    1
    sudo snap revert <package-name>

    如果更新后出现问题,你可以使用此命令回滚Snap包到之前的版本。

  6. 设置Snap代理:
    如果你需要通过代理连接Snap Store,可以设置代理:

    1
    2
    sudo snap set system proxy.http="http://your-proxy-server:port"
    sudo snap set system proxy.https="http://your-proxy-server:port"
  7. 手动下载Snap包:
    如果你想手动下载Snap包而不是使用sudo snap install,可以使用以下命令:

    1
    snap download <package-name>
  8. 清理不再使用的Snap数据:

    1
    2
    sudo snap refresh --list
    sudo snap refresh --clean

    查看可用更新并清理不再需要的旧版本数据。

  9. 查看Snap应用程序的接口连接:

    1
    snap interfaces <package-name>

    查看Snap应用程序与系统接口的连接情况,以了解其权限和访问级别。

这些技巧可以帮助你更有效地使用Snap包管理系统,以及解决一些常见的使用场景和问题。

简介

  • ln命令

linux ln命令 详解

ln 命令用于在文件系统中创建链接。链接可以分为硬链接(hard link)和符号链接(symbolic link,也称为软链接)。硬链接是文件系统中同一索引节点(inode)上的多个文件名,它们共享相同的数据块。符号链接是一个指向另一个文件或目录的特殊文件,类似于 Windows 中的快捷方式。以下是关于 ln 命令的详细解释:

语法:

1
ln [选项] 源文件 目标文件

常用选项:

  • -s, –symbolic: 创建符号链接。

  • -b, –backup: 在覆盖目标文件之前创建备份。

  • -i, –interactive: 在覆盖目标文件之前进行交互式确认。

  • -v, –verbose: 显示详细的输出。

示例:

  1. 创建硬链接:

    1
    ln source_file hard_link

    这会在文件系统上创建一个硬链接。

  2. 创建符号链接:

    1
    ln -s source_file symbolic_link

    使用 -s 选项,创建一个符号链接。

  3. 创建符号链接到目录:

    1
    ln -s /path/to/directory symbolic_link_to_directory

    创建符号链接指向目录。

  4. 创建备份并覆盖目标文件:

    1
    ln -b source_file target_file

    使用 -b 选项,创建备份并覆盖目标文件。

  5. 交互式创建链接:

    1
    ln -i source_file target_file

    使用 -i 选项,进行交互式确认。

  6. 递归创建符号链接:

    1
    ln -sT /path/to/source_directory /path/to/symbolic_link_directory

    使用 -sT 选项,递归创建符号链接。

示例解释:

  • 硬链接和符号链接: ln 命令可以创建硬链接或符号链接。硬链接是文件系统中同一索引节点上的多个文件名,它们共享相同的数据块。符号链接是一个特殊类型的文件,指向另一个文件或目录。

  • 创建符号链接到目录: 通过 -s 选项,可以创建符号链接指向目录。

  • 创建备份并覆盖目标文件: 使用 -b 选项,ln 在覆盖目标文件之前会创建一个备份。

  • 交互式创建链接: 使用 -i 选项,ln 在覆盖目标文件之前会进行交互式确认,避免误操作。

  • 递归创建符号链接: 使用 -sT 选项,可以递归创建符号链接,通常在创建指向目录的链接时使用。

linux ln命令 常用技巧

ln 命令是在 Linux 中创建链接的强大工具,下面是一些 ln 命令的常用技巧:

  1. 创建硬链接:

    1
    ln source_file hard_link

    这会在文件系统上创建一个硬链接,硬链接与源文件共享相同的 inode 和数据块。

  2. 创建符号链接:

    1
    ln -s source_file symbolic_link

    使用 -s 选项创建符号链接,这是指向源文件的特殊文件。

  3. 创建符号链接到目录:

    1
    ln -s /path/to/directory symbolic_link_to_directory

    使用 -s 选项,创建符号链接指向目录。

  4. 创建链接时避免覆盖目标文件:

    1
    ln -b source_file target_file

    使用 -b 选项,在覆盖目标文件之前会创建备份。

  5. 递归创建符号链接:

    1
    ln -sT /path/to/source_directory /path/to/symbolic_link_directory

    使用 -sT 选项,递归创建符号链接,通常在创建指向目录的链接时使用。

  6. 创建链接时进行交互式确认:

    1
    ln -i source_file target_file

    使用 -i 选项,创建链接时进行交互式确认,以避免误操作。

  7. 使用相对路径创建符号链接:

    1
    ln -sT ../source_file /path/to/symbolic_link

    使用 -sT 选项和相对路径,可以创建指向父目录中文件的符号链接。

  8. 创建硬链接的数量统计:

    1
    find . -type f -links +1 -exec ls -l {} \;

    使用 find 命令和 -links 选项,可以列出硬链接数量大于1的文件。

  9. 创建硬链接并保留原始文件的权限和时间戳:

    1
    cp -p source_file hard_link

    使用 cp 命令的 -p 选项,创建硬链接并保留原始文件的权限和时间戳。

这些技巧能够帮助你更灵活地使用 ln 命令,创建不同类型的链接,并在需要时进行一些额外的操作。

ln

  • 简介:

    • 它的功能是为某一个文件在另外一个位置建立一个同步的链接
    • 当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。
  • 语法:

    • ln [参数][源文件或目录][目标文件或目录]
  • 参数的格式为:

    • [-bdfinsvF] [-S backup-suffix] [-V {numbered,existing,simple}]
    • [--help] [--version] [--]
  • 详解:

    • Linux文件系统中,有所谓的链接(link),我们可以将其视为档案的别名,而链接又可分为两种 : 硬链接(hard link)与软链接(symbolic link),硬链接的意思是一个档案可以有多个名称,而软链接的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬链接是存在同一个文件系统中,而软链接却可以跨越不同的文件系统。
    • 不论是硬链接或软链接都不会将原本的档案复制一份,只会占用非常少量的磁碟空间
    • 软链接:
      • 软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式
      • 软链接可以 跨文件系统 ,硬链接不可以
      • 软链接可以对一个不存在的文件名进行链接
      • 软链接可以对目录进行链接
    • 硬链接
      • 硬链接,以文件副本的形式存在。但不占用实际空间。
      • 不允许给目录创建硬链接
      • 硬链接只有在同一个文件系统中才能创建
  • 参数

    • 必要参数
      • --backup[=CONTROL] 备份已存在的目标文件
      • -b 类似 –backup ,但不接受参数
      • -d 允许超级用户制作目录的硬链接
      • -f 强制执行
      • -i 交互模式,文件存在则提示用户是否覆盖
      • -n 把符号链接视为一般目录
      • -s 软链接(符号链接)
      • -v 显示详细的处理过程
    • 选择参数
      • -S "-S<字尾备份字符串> ""--suffix=<字尾备份字符串>"
      • -V "-V<备份方式>""--version-control=<备份方式>"
      • --help 显示帮助信息
      • --version 显示版本信息

简介

  • iostat命令

linux iostat命令 详解

iostat 是一个用于监控系统输入/输出设备和CPU利用率的 Linux 命令。它提供了关于系统性能的实时和平均数据。iostatsysstat 工具包的一部分,因此在使用之前,你可能需要安装这个工具包。

安装 sysstat 工具包:

1
2
sudo apt-get install sysstat   # For Debian/Ubuntu
sudo yum install sysstat # For Red Hat/CentOS

iostat 基本用法:

1
iostat [options] [interval [count]]
  • options: 可选参数,包括:

    • -c:显示 CPU 使用情况。
    • -d:显示磁盘使用情况。
    • -k:以 KB/s 显示数据传输速率。
    • -m:以 MB/s 显示数据传输速率。
    • -t:显示时间戳。
  • interval: 两次输出之间的时间间隔(秒)。

  • count: 输出次数。

示例用法:

  1. 查看 CPU 使用情况:

    1
    iostat -c 2 5

    这将每隔 2 秒输出一次 CPU 使用情况,共输出 5 次。

  2. 查看磁盘使用情况:

    1
    iostat -d 2 5

    这将每隔 2 秒输出一次磁盘使用情况,共输出 5 次。

  3. 以 KB/s 显示磁盘传输速率:

    1
    iostat -d -k 2 5

    这将每隔 2 秒以 KB/s 显示磁盘传输速率,共输出 5 次。

  4. 显示时间戳:

    1
    iostat -t 2 5

    这将每隔 2 秒输出一次带有时间戳的系统统计信息,共输出 5 次。

输出解释:

  • CPU 部分:

    • %user:用户态 CPU 占用百分比。
    • %nice:优先级较高的用户态 CPU 占用百分比。
    • %system:内核态 CPU 占用百分比。
    • %iowait:等待磁盘 I/O 的 CPU 占用百分比。
    • %steal:被虚拟机监视程序(VM hypervisor)偷取的 CPU 占用百分比。
    • %idle:空闲 CPU 占用百分比。
  • 磁盘部分:

    • tps:每秒钟传输的块设备 I/O 事务数。
    • Blk_read/s:每秒读取的块数据量(KB/s)。
    • Blk_wrtn/s:每秒写入的块数据量(KB/s)。
    • Blk_read:总的读取块数。
    • Blk_wrtn:总的写入块数。

iostat 提供了对系统性能的快速概览,可以用于监测系统的负载、磁盘 I/O 和 CPU 使用情况。

linux iostat命令 常用技巧

在使用 iostat 命令时,以下是一些常用的技巧和选项,以更有效地监测系统的 I/O 性能:

  1. 监测特定磁盘的 I/O:

    1
    iostat -d <disk_name> 2 5

    <disk_name> 替换为要监测的磁盘的名称,这样可以针对特定磁盘进行 I/O 监测。

  2. 以 MB/s 显示数据传输速率:

    1
    iostat -d -m 2 5

    使用 -m 选项以 MB/s 显示磁盘传输速率,这对于更容易理解大量数据的流动速率很有帮助。

  3. 仅显示 CPU 信息:

    1
    iostat -c 2 5

    使用 -c 选项仅显示 CPU 相关的信息,有助于监测 CPU 利用率。

  4. 显示所有设备的详细信息:

    1
    iostat -x 2 5

    使用 -x 选项显示详细信息,包括每个设备的更多统计数据,如每个设备的平均负载、I/O 请求的等待时间等。

  5. 指定输出字段顺序:

    1
    iostat -d -m -k 2 5 -p sda sdb

    使用 -p 选项可以指定要显示的磁盘设备,这对于只关注特定设备很有帮助。

  6. 实时监测 I/O 活动:

    1
    iostat -xtc 2

    使用 -t 选项以及 -c-x 选项,可以实时监测 I/O 活动、CPU 使用率和扩展信息。

  7. 自定义输出字段:

    1
    iostat -d -m -k -N -o JSON 2 5

    使用 -o 选项以 JSON 格式输出信息,可以更容易地集成到脚本或其他工具中进行后续处理。

  8. 查看磁盘队列长度:

    1
    iostat -x 2 5 | grep avgqu-sz

    使用 -x 选项查看平均磁盘队列长度 (avgqu-sz),这是一个指标,用于评估磁盘 I/O 请求的排队情况。

这些技巧可以帮助你更灵活地使用 iostat 命令,以满足你的具体需求并更好地监测系统的 I/O 性能。

iostat

iostat是一个Linux命令,用于报告和存档系统磁盘IO活动的统计信息。它可以提供有关磁盘读写速度、IO等待时间、IO请求队列长度以及CPU利用率的信息。

以下是iostat命令的常用选项和用法:

1
iostat [options] [interval] [count]

常用选项:

  • -c:仅显示CPU利用率统计。
  • -d:仅显示磁盘IO统计。
  • -k:以KB为单位显示统计信息。
  • -m:以MB为单位显示统计信息。
  • -x:显示详细的磁盘IO统计,包括每个设备的读写速度、IO等待时间、IO请求队列长度等。
  • -t:在每一行的输出中显示时间戳。
  • -y:在每一行的输出中显示日期和时间。
  • -h:显示帮助信息。

示例用法:

  1. 显示磁盘IO统计信息:
1
iostat

上述命令将显示所有磁盘设备的读写速度、IO等待时间和IO请求队列长度。

  1. 以1秒的间隔连续显示磁盘IO统计信息,共显示5次:
1
iostat 1 5

上述命令将每秒显示一次磁盘IO统计信息,连续显示5次。

  1. 仅显示CPU利用率统计信息:
1
iostat -c

上述命令将仅显示CPU的利用率统计信息。

  1. 显示详细的磁盘IO统计信息:
1
iostat -x

上述命令将显示详细的磁盘IO统计信息,包括每个设备的读写速度、IO等待时间、IO请求队列长度等。

iostat命令还支持其他选项和用法,您可以通过man iostat命令查看完整的帮助文档和更多示例。

简介

  • dmesg命令

linux dmesg命令 详解

dmesg 命令用于显示 Linux 内核环缓冲区的信息,其中包含了内核启动和运行过程中的消息。这些消息通常包括硬件、驱动程序、系统错误等的信息。下面是 dmesg 命令的一些常用选项和用法:

基本用法:

  1. 查看所有的内核消息:

    1
    dmesg

    这会显示内核环缓冲区中的所有消息,包括启动信息、硬件检测、驱动程序加载等。

  2. 只显示最新的几条消息:

    1
    dmesg | tail

    使用 tail 命令可以只显示最新的几条消息,以便查看最近的系统活动。

  3. 实时监视内核消息:

    1
    dmesg -w

    使用 -w 选项可以实时监视内核消息,新的消息会实时显示在终端上。

选项和过滤:

  1. 过滤包含特定关键字的消息:

    1
    dmesg | grep "keyword"

    使用 grep 命令可以过滤只显示包含特定关键字的消息,方便查找特定信息。

  2. 显示特定设备的消息:

    1
    dmesg | grep "sda"

    可以使用 grep 过滤显示与特定设备相关的消息,例如硬盘 sda

  3. 显示特定级别的消息:

    1
    dmesg -l err

    使用 -l 选项可以指定消息的级别,例如 err 表示只显示错误级别的消息。可选的级别包括 emerg, alert, crit, err, warn, notice, info, 和 debug

  4. 显示时间戳:

    1
    dmesg -T

    使用 -T 选项可以显示人类可读的时间戳,而不是默认的秒数。

更多选项:

  1. 清除内核环缓冲区:

    1
    dmesg -c

    使用 -c 选项可以清除内核环缓冲区,将其重置为空。

  2. 将内核消息保存到文件:

    1
    dmesg > dmesg.log

    将内核消息保存到文件中,以便后续查看或分析。

  3. 查看内核消息的缓冲区大小:

    1
    dmesg -s

    使用 -s 选项可以查看当前内核消息缓冲区的大小。

dmesg 命令对于诊断系统问题、查看硬件信息以及了解系统启动和运行过程中的事件非常有用。根据具体的需求和问题,选择适当的选项和过滤方式,可以更方便地获取所需的信息。

dmesg

dmesg是一个Linux命令,用于显示内核环缓冲区的内容。它可以提供有关系统启动期间发生的事件、硬件故障、驱动程序加载和其他内核消息的详细信息。

以下是dmesg命令的常用选项和用法:

1
dmesg [options]

常用选项:

  • -c, --clear:清除内核环缓冲区的内容。
  • -s, --buffer-size=size:设置内核环缓冲区的大小。
  • -n, --console-level=level:设置在控制台上显示的内核消息的级别。
  • -r, --raw:以原始格式显示内核消息,不进行解析。
  • -T, --ctime:以人类可读的日期和时间格式显示内核消息的时间戳。
  • --color[=when]:设置输出中的颜色。
  • -h, --help:显示帮助信息。

示例用法:

  1. 显示内核环缓冲区的内容:
1
dmesg

上述命令将显示内核环缓冲区中的所有消息。

  1. 清除内核环缓冲区的内容:
1
dmesg -c

上述命令将清除内核环缓冲区的内容。

  1. 以人类可读的日期和时间格式显示内核消息:
1
dmesg -T

上述命令将以人类可读的日期和时间格式显示内核消息的时间戳。

  1. 设置内核消息的显示级别:
1
dmesg -n 4

上述命令将仅显示级别为4(警告级别)及以上的内核消息。

dmesg命令还支持其他选项和用法,您可以通过man dmesg命令查看完整的帮助文档和更多示例。

简介

  • ps命令

linux ps命令 详解

ps 命令用于显示系统中当前运行的进程信息。它提供了关于进程的详细信息,包括进程ID(PID)、CPU利用率、内存占用等。以下是一些常用的 ps 命令选项和用法:

基本用法:

  1. 显示当前用户的所有进程:

    1
    ps

    这将显示当前用户的所有进程的基本信息。

  2. 显示所有用户的所有进程:

    1
    ps aux

    使用 aux 选项可以显示所有用户的所有进程,包括系统进程。

选项和过滤:

  1. 显示详细信息:

    1
    ps -ef

    使用 -ef 选项可以显示更详细的信息,包括进程的父进程ID、启动时间等。

  2. 以树状结构显示进程:

    1
    ps auxf

    使用 auxf 选项以树状结构显示进程,显示进程之间的父子关系。

  3. 按内存使用排序:

    1
    ps aux --sort=-%mem

    使用 --sort=-%mem 选项可以按内存使用的百分比降序排序显示进程。

  4. 显示进程的线程信息:

    1
    ps -eLf

    使用 -L 选项可以显示进程的线程信息。

  5. 显示特定用户的进程:

    1
    ps -u username

    使用 -u 选项可以显示特定用户的进程。

  6. 按进程名过滤显示:

    1
    ps -C process_name

    使用 -C 选项可以按进程名过滤显示。

更多选项:

  1. 显示进程树:

    1
    pstree

    使用 pstree 命令可以以树状结构显示进程树。

  2. 以用户格式显示进程:

    1
    ps -eo user,pid,%cpu,%mem,cmd

    使用 -eo 选项可以以用户定义的格式显示进程信息,这里列出了用户、进程ID、CPU利用率、内存占用和命令。

  3. 查看进程的详细信息:

    1
    ps -p pid -o pid,ppid,uid,gid,cmd

    使用 -p 选项指定进程ID,并使用 -o 选项指定要显示的信息。

ps 命令提供了广泛的选项,使得你可以根据不同的需求查看和分析进程信息。根据实际情况选择合适的选项,可以更好地了解系统中运行的进程。

linux ps命令 常用技巧

以下是一些在使用 ps 命令时常用的技巧和选项,可以更灵活地查看和管理进程信息:

1. 查看指定用户的进程:

1
ps -u username

使用 -u 选项可以显示特定用户的进程。将 username 替换为要查看的用户名。

2. 按进程名过滤显示:

1
ps -C process_name

使用 -C 选项可以按进程名过滤显示,只显示指定进程名的进程。

3. 显示所有进程树:

1
pstree

使用 pstree 命令以树状结构显示所有进程的父子关系。

4. 按 CPU 利用率排序显示进程:

1
ps aux --sort=-%cpu

使用 --sort=-%cpu 选项可以按 CPU 利用率降序排序显示进程。

5. 以用户定义格式显示进程信息:

1
ps -eo user,pid,%cpu,%mem,cmd

使用 -eo 选项以用户定义的格式显示进程信息,列出了用户、进程ID、CPU利用率、内存占用和命令。

6. 显示线程信息:

1
ps -eLf

使用 -L 选项显示进程的线程信息。

7. 显示所有进程的详细信息:

1
ps -ef

使用 -ef 选项显示所有进程的详细信息,包括进程的父进程ID、启动时间等。

8. 显示所有进程的详细信息(BSD格式):

1
ps aux

使用 aux 选项以 BSD 格式显示所有进程的详细信息。

9. 显示进程的线程数:

1
ps -eT

使用 -T 选项显示进程的线程数。

10. 显示所有进程的信息(包括僵尸进程):

1
ps -e

使用 -e 选项显示所有进程的信息,包括僵尸进程。

11. 显示进程的状态信息:

1
ps -o pid,state,cmd

使用 -o 选项显示进程的状态信息,包括进程ID、状态和命令。

12. 显示所有进程的内存占用情况:

1
ps aux --sort=-%mem

使用 --sort=-%mem 选项按内存占用降序排序显示所有进程的信息。

这些技巧和选项可以帮助你更灵活地使用 ps 命令,根据具体的需求查看和管理进程信息。根据情况选择合适的选项,可以更方便地进行系统监控和故障排查。

ps

  • ps命令用于报告当前系统的进程状态,可以搭配kill指令随时中断,删除不必要的程序。
  • ps明星是最基本的同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态,进程是否结束,进程有没有僵死,哪些进程占用了过多的资源等等
  • 参数
    • a : 显示当前终端下的所有进程信息,包括其他用户的进程
    • u : 使用以用户为主的格式输出进程信息
    • x : 显示当前用户在所有终端下的进程
  • 字段解释
    • USER : 启动该进程的用户账号名称
    • PID : 该进程的ID号,在当前系统中是唯一的
    • %CPU : CPU占用的百分比
    • %MEM : 内存占用的百分比
    • VSZ : 占用虚拟内存(swap空间)的大小
    • RSS : 占用常驻内存(物理内存)的大小
    • TTY : 该进程在哪个终端上运行. "?"表示未知或不需要终端
    • STAT : 显示了进程当前的状态
      • S , interruptible sleep (waiting for an event to complete : 休眠
      • R , running or runnable (on run queue) : 运行
      • Z , defunct("zombie") process, terminated but not reaped by its parent : 僵死, 对于僵死状态的进程应该手动终止
      • < , high-priority (not nice to other users) : 高优先级
      • N , low-priority (nice to other users) : 低优先级
      • s , is a session leader : 父进程
      • + , is in the foreground process group : 前台进程
      • l , is multi-threaded(using CLONE_THREAD, like NPTL pthreads do):多线程
    • START: 启动该进程的时间
    • TIME : 该进程占用CPU的时间
    • COMMAND: 启动该进程的命令的名称
  • 参数
    • e : 显示系统内的所有进程信息
    • l : 使用长(long)格式显示进程信息
    • f : 使用完整的(full)格式显示进程信息

简介

  • pgrep命令

linux pgrep命令 详解

pgrep 命令用于通过进程名称查找并显示相应的进程ID(PID)。它允许你使用进程的名称而不是PID来查找进程。以下是 pgrep 命令的一些常用选项和用法:

基本用法:

  1. 通过进程名称查找进程ID:

    1
    pgrep process_name

    用实际的进程名称替换 process_name,该命令将显示匹配进程名称的进程ID。

  2. 查找多个进程:

    1
    pgrep -l "process_name"

    使用 -l 选项可以显示进程ID及其名称,方便查看多个匹配的进程。

选项和过滤:

  1. 忽略大小写进行匹配:

    1
    pgrep -i "Process_Name"

    使用 -i 选项可以忽略大小写进行匹配。

  2. 指定用户的进程:

    1
    pgrep -u username "process_name"

    使用 -u 选项可以指定查找特定用户运行的进程。

  3. 显示进程的完整命令行:

    1
    pgrep -a "process_name"

    使用 -a 选项可以显示进程的完整命令行,而不仅仅是进程名称。

  4. 查找父进程ID为指定值的进程:

    1
    pgrep -P parent_pid

    使用 -P 选项可以查找父进程ID为指定值的进程。

  5. 显示匹配进程的计数:

    1
    pgrep -c "process_name"

    使用 -c 选项可以显示匹配进程的数量,而不是显示进程ID。

更多选项:

  1. 显示进程的信号信息:

    1
    pkill -o -n -l -x "process_name"

    使用 -o-n-l-x 等选项可以显示与进程关联的信号信息。

  2. 以进程启动的时间作为过滤条件:

    1
    pgrep -o -n -l -x -t "process_name"

    使用 -t 选项可以以进程启动的时间作为过滤条件。

pgrep 是一个快速而方便的工具,可通过进程名称来查找并显示相应的进程ID。结合不同的选项,你可以根据各种条件查找进程,方便了解系统中运行的进程信息。

linux pgrep命令 常用技巧

以下是一些常用的 pgrep 命令技巧和选项,以更灵活地查找和管理进程:

1. 根据进程名查找进程ID:

1
pgrep process_name

这是 pgrep 命令的最基本用法,通过进程名称查找并显示相应的进程ID。

2. 查找并显示完整的命令行信息:

1
pgrep -a "process_name"

使用 -a 选项可以显示匹配进程的完整命令行信息,而不仅仅是进程名称。

3. 查找多个进程并显示信息:

1
pgrep -l "process_name"

使用 -l 选项可以显示匹配进程的进程ID及其名称,方便查看多个匹配的进程。

4. 忽略大小写进行匹配:

1
pgrep -i "Process_Name"

使用 -i 选项可以忽略大小写进行匹配,使匹配更加灵活。

5. 指定用户的进程:

1
pgrep -u username "process_name"

使用 -u 选项可以指定查找特定用户运行的进程。

6. 显示匹配进程的数量:

1
pgrep -c "process_name"

使用 -c 选项可以显示匹配进程的数量,而不是显示进程ID。

7. 根据父进程ID查找进程:

1
pgrep -P parent_pid

使用 -P 选项可以查找父进程ID为指定值的进程。

8. 查找并杀死进程:

1
pkill "process_name"

pkill 命令可以通过进程名称直接杀死匹配的进程,不需要先获取进程ID。

9. 显示与进程关联的信号信息:

1
pkill -o -n -l -x "process_name"

使用 -o-n-l-x 等选项可以显示与进程关联的信号信息。

10. 以进程启动的时间作为过滤条件:

1
pgrep -o -n -l -x -t "process_name"

使用 -t 选项可以以进程启动的时间作为过滤条件。

这些技巧使得 pgrep 命令更加强大和灵活,可以方便地根据不同的需求查找和操作进程。

pgrep

pgrep是一个在Linux系统中用于根据进程名或其他条件查找进程ID(PID)的命令。它可以根据给定的进程名、用户、进程组、终端等条件进行匹配,然后返回符合条件的进程ID。

以下是pgrep命令的常用选项和用法:

1
pgrep [options] pattern

常用选项:

  • -u, --euid euid:根据有效用户ID查找进程。
  • -U, --uid uid:根据实际用户ID查找进程。
  • -g, --gid gid:根据进程组ID查找进程。
  • -t, --terminal terminal:根据终端设备号查找进程。
  • -x, --exact:精确匹配进程名,不进行模糊匹配。
  • -f, --full:匹配进程的完整命令行。
  • -a, --list-full:显示完整的进程信息,包括进程名和命令行。
  • -l, --list-name:显示进程名和PID,类似于ps命令的输出。

示例用法:

  1. 根据进程名查找进程ID:
1
pgrep nginx

上述命令将返回所有进程名包含”nginx”的进程ID。

  1. 根据用户ID查找进程ID:
1
pgrep -u 1000

上述命令将返回用户ID为1000的所有进程ID。

  1. 显示完整的进程信息:
1
pgrep -a nginx

上述命令将显示所有进程名包含”nginx”的进程信息,包括进程名和命令行。

pgrep命令还支持其他选项和用法,可以通过man pgrep命令查看详细的帮助文档。

简介

  • top命令

linux top命令 详解

top 命令是一个用于实时查看系统资源使用情况的工具。它提供了一个交互式的实时界面,用于监控系统的进程、CPU利用率、内存使用情况等。以下是一些常用的 top 命令选项和用法:

1. 基本用法:

1
top

运行 top 命令后,会显示实时的系统状态信息,包括进程列表、CPU利用率、内存使用情况等。

2. 以特定的时间间隔刷新界面:

1
top -d interval

使用 -d 选项可以指定刷新界面的时间间隔,单位为秒。例如,top -d 5 表示每隔5秒刷新一次。

3. 按照 CPU 利用率排序:

1
top -o %CPU

使用 -o 选项可以指定按照某个字段排序,例如 %CPU 表示按照 CPU 利用率排序。

4. 显示特定用户的进程:

1
top -u username

使用 -u 选项可以指定只显示特定用户的进程,将 username 替换为相应的用户名。

5. 显示特定进程的信息:

1
top -p pid

使用 -p 选项可以指定只显示特定进程的信息,将 pid 替换为相应的进程ID。

6. 显示完整的命令行信息:

1
top -c

使用 -c 选项可以显示完整的命令行信息,包括命令行的参数。

7. 显示累积模式:

1
top -E

使用 -E 选项可以开启累积模式,显示所有进程的累积信息。

8. 显示关于内存的信息:

1
top -o %MEM

使用 -o 选项可以按照内存占用情况排序,例如 %MEM 表示按照内存占用率排序。

9. 显示关于磁盘的信息:

1
top -O res

使用 -O 选项可以显示关于磁盘 I/O 情况的信息。

10. 显示关于网络的信息:

1
top -N

使用 -N 选项可以显示关于网络的信息。

11. 查看帮助信息:

1
top -h

使用 -h 选项可以查看 top 命令的帮助信息,包括所有可用选项的说明。

12. 退出 top

按下 q 键可以退出 top

top 的交互式界面中,你可以使用不同的键来执行各种操作,例如按 k 键杀死进程,按 r 键重新调度进程等。

top 命令是一个非常强大的系统监控工具,通过实时交互界面提供了对系统性能的全面监控。根据不同的需求,你可以选择不同的选项来查看和分析系统资源使用情况。

linux top命令 常用技巧

以下是在使用 top 命令时的一些常用技巧和快捷键,以更灵活地查看和管理系统资源的使用情况:

1. 切换排序方式:

  • P 键:按照 CPU 利用率排序。
  • M 键:按照内存占用率排序。
  • T 键:按照运行时间排序。

2. 切换显示模式:

  • A 键:切换显示所有用户的进程或只显示当前用户的进程。
  • U 键:输入用户名,只显示该用户的进程。

3. 显示特定进程:

  • pid 键:输入进程ID,只显示特定进程的信息。

4. 切换显示字段:

  • f 键:进入字段管理界面,可以选择显示/隐藏不同的字段。

5. 切换累积/非累积模式:

  • e 键:切换累积/非累积模式,显示所有或仅显示当前瞬时数据。

6. 设置刷新间隔:

  • s 键:输入新的刷新间隔时间,单位为秒。

7. 查看帮助信息:

  • h 键:显示 top 命令的帮助信息。

8. 结束进程:

  • k 键:输入进程ID,可以杀死指定的进程。

9. 切换至安全模式:

  • H 键:切换至安全模式,只显示用户界面上可见的进程。

10. 切换至树状显示:

  • V 键:切换至树状显示,显示进程之间的父子关系。

11. 切换至紧凑模式:

  • c 键:切换至紧凑模式,只显示进程的命令行。

12. 切换至逆序排序:

  • < 键:切换至逆序排序。

13. 调整显示范围:

  • 使用方向键:可以在进程列表和统计信息之间切换。
  • 使用 Page UpPage Down 键:滚动显示。

这些快捷键和技巧使得在 top 命令的交互式界面中更加方便地查看和管理系统资源的使用情况。通过这些操作,你可以根据需要快速切换显示方式、排序方式,以及进行进程管理。

top

  • 简介:

    • top, 以全屏交互式的界面显示进程排名,及时跟踪包括CPU,内存等系统资源占用情况,默认情况下每三秒刷新一次,其作用基本类似于Windows系统中的任务管理器
    • top命令,是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,常用于服务端性能分析。
    • top命令,可以实时动态地查看系统的整体运行情况,是一个综合了多方信息监测系统性能和运行信息的实用工具。通过top命令所提供的互动式界面,用热键可以管理。
    • 在top命令中按f按可以查看显示的列信息,按对应字母来开启/关闭列,大写字母表示开启,小写字母表示关闭。带*号的是默认列。
  • 语法

    • top(选项)
  • 选项

    • -b:以批处理模式操作;
    • -c:显示完整的治命令;
    • -d:屏幕刷新间隔时间;
    • -I:忽略失效过程;
    • -s:保密模式;
    • -S:累积模式;
    • -i<时间>:设置间隔时间;
    • -u<用户名>:指定用户名;
    • -p<进程号>:指定进程;
    • -n<次数>:循环显示的次数。
  • top交互命令:在top命令执行过程中可以使用的一些交互命令。这些命令都是单字母的,如果在命令行中使用了-s选项, 其中一些命令可能会被屏蔽。

    • h:显示帮助画面,给出一些简短的命令总结说明;
    • k:终止一个进程;
    • i:忽略闲置和僵死进程,这是一个开关式命令;
    • q:退出程序;
    • r:重新安排一个进程的优先级别;
    • S:切换到累计模式;
    • s:改变两次刷新之间的延迟时间(单位为s),如果有小数,就换算成ms。输入0值则系统将不断刷新,默认值是5s;
    • f或者F:从当前显示中添加或者删除项目;
    • o或者O:改变显示项目的顺序;
    • l:切换显示平均负载和启动时间信息;
    • m:切换显示内存信息;
    • t:切换显示进程和CPU状态信息;
    • c:切换显示命令名称和完整命令行;
    • M:根据驻留内存大小进行排序;
    • P:根据CPU使用百分比大小进行排序;
    • T:根据时间/累计时间进行排序;
    • w:将当前设置写入~/.toprc文件中。
  • 实例

    1
    2
    3
    4
    5
    top - 09:44:56 up 16 days, 21:23,  1 user,  load average: 9.59, 4.75, 1.92
    Tasks: 145 total, 2 running, 143 sleeping, 0 stopped, 0 zombie
    Cpu(s): 99.8%us, 0.1%sy, 0.0%ni, 0.2%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
    Mem: 4147888k total, 2493092k used, 1654796k free, 158188k buffers
    Swap: 5144568k total, 56k used, 5144512k free, 2013180k cache
  • 解释

    • top - 09:44:56[当前系统时间],
    • 16 days[系统已经运行了16天],
    • 1 user[个用户当前登录],
    • load average: 9.59, 4.75, 1.92[系统负载,即任务队列的平均长度]
    • Tasks: 145 total[总进程数],
    • 2 running[正在运行的进程数],
    • 143 sleeping[睡眠的进程数],
    • 0 stopped[停止的进程数],
    • 0 zombie[冻结进程数],
    • Cpu(s): 99.8%us[用户空间占用CPU百分比],
    • 0.1%sy[内核空间占用CPU百分比],
    • 0.0%ni[用户进程空间内改变过优先级的进程占用CPU百分比],
    • 0.2%id[空闲CPU百分比], 0.0%wa[等待输入输出的CPU时间百分比],
    • 0.0%hi[],
    • 0.0%st[],
    • Mem: 4147888k total[物理内存总量],
    • 2493092k used[使用的物理内存总量],
    • 1654796k free[空闲内存总量],
    • 158188k buffers[用作内核缓存的内存量]
    • Swap: 5144568k total[交换区总量],
    • 56k used[使用的交换区总量],
    • 5144512k free[空闲交换区总量],
    • 2013180k cached[缓冲的交换区总量],
  • 字段解释:

    • Tasks : 系统任务信息
    • total : 总进程数
    • running : 正在运行的进程数
    • sleeping : 休眠的进程数
    • stopped : 终止的进程数
    • zombie : 僵死无响应的进程数
  • 常用命令

    • top 回车之后再输入c,会显示进程详细信息
    • top -p pid, 查看指定进程ID的动态资源
  • 在 top 命令中,你可以使用以下快捷键来修改显示的单位:

    • 按下 “e” 键:切换内存显示单位,可以在字节(Bytes)、千字节(KBytes)、兆字节(MBytes)和吉字节(GBytes)之间进行切换。
    • 按下 “E” 键:切换内存和交换空间显示单位,与 “e” 键类似,但同时会修改交换空间的显示单位。
    • 按下 “k” 键:切换 CPU 使用率的显示单位,可以在百分比(%)、千分比(m%)和百万分比(M%)之间进行切换。
    • 按下 “K” 键:切换 CPU 时间的显示单位,可以在秒(s)、毫秒(ms)和微秒(us)之间进行切换。
  • 在 top 命令中按下相应的键后,单位会相应地进行切换,并且在顶部的标题行中会显示当前的单位。你可以根据需要选择合适的单位来查看系统资源的使用情况。

简介

  • ss命令

linux ss命令安装

ss 命令是 Linux 系统中用来显示套接字统计信息的工具,通常预装在大多数现代 Linux 发行版中,尤其是在使用 iproute2 包的系统上。如果你的系统上没有 ss 命令,可以按照以下步骤安装。

在 Debian/Ubuntu 系统上:

1
2
sudo apt update
sudo apt install iproute2

在 CentOS/RHEL 系统上:

1
sudo yum install iproute

在 Fedora 系统上:

1
sudo dnf install iproute

在 Arch Linux 系统上:

ss 命令通常也包含在 iproute2 包中,所以可以使用:

1
sudo pacman -S iproute2

验证安装:

安装完成后,可以通过以下命令确认 ss 命令是否已成功安装:

1
ss --version

这会显示 ss 命令的版本信息,表示已安装成功。

linux ss命令 详解

ss 命令是一个用于查看 Linux 系统中套接字(socket)信息的工具。套接字是网络通信的一种抽象,ss 命令可以显示与网络连接相关的详细信息,包括网络连接状态、监听端口、TCP/UDP 连接等。以下是一些常用的 ss 命令选项和用法:

1. 显示所有套接字信息:

1
ss

这将显示系统中所有的套接字信息,包括 TCP、UDP 和 UNIX 套接字。

2. 显示 TCP 连接信息:

1
ss -t

使用 -t 选项可以仅显示 TCP 连接的信息。

3. 显示 UDP 连接信息:

1
ss -u

使用 -u 选项可以仅显示 UDP 连接的信息。

4. 显示监听端口信息:

1
ss -l

使用 -l 选项可以仅显示监听(被动打开)的套接字信息。

5. 显示所有连接信息(包括监听和非监听):

1
ss -a

使用 -a 选项可以显示所有的套接字连接信息。

6. 显示详细信息:

1
ss -e

使用 -e 选项可以显示更详细的信息,包括进程ID和用户。

7. 显示进程名:

1
ss -p

使用 -p 选项可以显示与套接字关联的进程信息。

8. 显示连接状态:

1
ss -s

使用 -s 选项可以显示连接状态的统计信息。

9. 显示特定端口的连接信息:

1
ss -t -p -o "sport = :<port_number>"

使用 -o 选项可以根据特定条件过滤显示套接字信息,这里以显示指定端口的 TCP 连接为例。

10. 显示 UNIX 套接字信息:

1
ss -x

使用 -x 选项可以仅显示 UNIX 套接字信息。

11. 显示显示进程名的详细信息:

1
ss -etp

使用 -etp 选项可以显示 TCP 连接的详细信息,包括进程名。

12. 显示特定用户的连接信息:

1
ss -t -p -u user_name

使用 -u 选项可以根据指定的用户过滤显示连接信息。

13. 显示 TCP 拓扑图:

1
ss -t -a

使用 -a 选项显示所有 TCP 连接,包括监听和非监听,并且以拓扑图形式显示。

ss 命令提供了强大的功能,可用于检查系统中的网络连接和套接字信息。根据不同的需求,你可以选择不同的选项来查看和分析网络连接状态。

linux ss命令 常用技巧

以下是一些在使用 ss 命令时的常用技巧和选项,以更灵活地查看和管理系统的套接字信息:

1. 显示所有套接字信息:

1
ss

显示所有套接字信息,包括 TCP、UDP 和 UNIX 套接字。

2. 显示监听端口信息:

1
ss -l

只显示监听(被动打开)的套接字信息。

3. 显示详细信息:

1
ss -e

显示更详细的信息,包括进程ID和用户。

4. 显示进程名:

1
ss -p

显示与套接字关联的进程信息。

5. 显示连接状态的统计信息:

1
ss -s

显示连接状态的统计信息,包括各种状态的套接字数量。

6. 显示 TCP 连接信息:

1
ss -t

只显示 TCP 连接的信息。

7. 显示 UDP 连接信息:

1
ss -u

只显示 UDP 连接的信息。

8. 显示特定端口的连接信息:

1
ss -t -o "sport = :<port_number>"

根据特定条件过滤显示套接字信息,这里以显示指定端口的 TCP 连接为例。

9. 显示 UNIX 套接字信息:

1
ss -x

只显示 UNIX 套接字信息。

10. 显示 TCP 连接的详细信息:

1
ss -etp

显示 TCP 连接的详细信息,包括进程名。

11. 显示特定用户的连接信息:

1
ss -u -p -a -Z user_name

根据指定的用户过滤显示连接信息。

12. 显示 TCP 拓扑图:

1
ss -t -a

显示所有 TCP 连接,并以拓扑图形式显示。

13. 以 JSON 格式输出:

1
ss -t -a -j

以 JSON 格式输出套接字信息,方便进一步处理和分析。

14. 显示进程的网络套接字信息:

1
ss -p -n

显示进程的网络套接字信息,而不解析服务名。

15. 显示网络接口信息:

1
ss -i

显示网络接口信息,包括接口状态、收发数据包等。

16. 显示 TCP 性能统计信息:

1
ss -t -i

显示 TCP 性能统计信息,包括传输速率、拥塞窗口等。

这些技巧和选项能够使得在使用 ss 命令时更加灵活,根据具体需求选择合适的选项,以便更方便地查看和分析系统中的套接字信息。

ss – 查看端口状态信息

  • 简介:

    • ss 是一个 Linux 下用于查看套接字统计信息的命令。它提供了比 netstat 更全面和高效的功能
  • 语法

    1
    ss [options]
  • 选项:

    • -t: 显示 TCP 套接字信息。
    • -u: 显示 UDP 套接字信息。
    • -w: 显示 RAW 套接字信息。
    • -a: 显示所有套接字信息,包括监听和非监听状态。
    • -s: 显示套接字统计信息,包括每个协议的统计数据。
    • -p: 显示与套接字关联的进程信息。
    • -n: 不进行服务名称解析,显示 IP 地址和端口号。
    • -r: 显示路由表信息。
    • -l: 仅显示监听状态的套接字。
    • -o: 显示计时器信息
  • 详解:

    • 使用 ss 命令时,可以结合不同的选项来获取特定类型的套接字信息。例如,ss -t 显示所有 TCP 套接字信息,ss -u 显示所有 UDP 套接字信息,ss -l 显示所有监听状态的套接字信息
    • ss 命令的输出包括以下列
      • State: 套接字的状态,如 ESTABLISHED(已建立)、LISTEN(监听)等。
      • Recv-Q: 接收队列的字节数。
      • Send-Q: 发送队列的字节数。
      • Local Address: 本地 IP 地址和端口号。
      • Peer Address: 对端 IP 地址和端口号。
      • Process(-p 选项时显示): 与套接字关联的进程信息
  • 注:

    • 通过 ss 命令,可以查看网络连接状态、套接字使用情况、进程与套接字的关联信息等。它在排查网络问题、监视网络连接和调试网络应用程序时非常有用
    • 安装 iproute2 软件包:ss 命令是 iproute2 软件包的一部分,因此需要安装该软件包

简介

  • egrep命令

linux egrep命令 详解

egrep 命令在 Linux 系统中用于执行扩展正则表达式的匹配操作。它在功能上与 grep -E 相同。正则表达式是一种用于模式匹配的强大工具,egrep 允许你使用更复杂的正则表达式语法。以下是一些 egrep 命令的常用选项和用法:

1. 基本用法:

1
egrep "pattern" file

这将在指定的文件中搜索匹配指定模式的行。

2. 使用多个模式:

1
egrep "pattern1|pattern2" file

使用 |(管道符)可以指定多个模式,表示匹配任意一个模式的行。

3. 忽略大小写:

1
egrep -i "pattern" file

使用 -i 选项可以忽略大小写进行匹配。

4. 显示匹配的行号:

1
egrep -n "pattern" file

使用 -n 选项可以显示匹配行的行号。

5. 显示不匹配的行:

1
egrep -v "pattern" file

使用 -v 选项可以显示不匹配指定模式的行。

6. 只显示匹配的文本:

1
egrep -o "pattern" file

使用 -o 选项可以只显示匹配的文本,而不显示整行。

7. 显示匹配的行及其前后若干行:

1
2
3
egrep -A num "pattern" file
egrep -B num "pattern" file
egrep -C num "pattern" file

使用 -A-B-C 选项可以分别显示匹配行及其后 num 行、前 num 行、前后各 num 行。

8. 递归搜索目录下的文件:

1
egrep -r "pattern" directory

使用 -r 选项可以递归搜索指定目录及其子目录下的文件。

9. 显示匹配的行数:

1
egrep -c "pattern" file

使用 -c 选项可以只显示匹配行的数量。

10. 使用反向引用(Backreference):

1
egrep '(pattern)\1' file

使用圆括号和 \1 可以引用之前的模式,实现反向引用。

11. 匹配行首或行尾:

1
2
egrep "^pattern" file
egrep "pattern$" file

^ 表示匹配行首,$ 表示匹配行尾。

12. 显示匹配模式的位置:

1
egrep -b -o "pattern" file

使用 -b 选项可以显示匹配模式的字节偏移位置。

13. 显示匹配模式的数量:

1
egrep -o "pattern" file | wc -l

使用管道结合 wc -l 命令可以显示匹配模式的数量。

这些是一些 egrep 命令的常用选项和用法,可以帮助你在文本文件中执行强大的正则表达式匹配操作。

linux egrep命令 常用技巧

egrep 命令是 grep 命令的扩展版本,支持使用扩展正则表达式进行文本搜索。在许多系统中,egrepgrep -E 是等效的。以下是一些常用的 egrep 命令技巧和选项:

1. 基本用法:

1
egrep "pattern" filename

egrep 命令用于在文件中搜索指定的正则表达式模式,并显示匹配的行。可以使用单引号或双引号括起正则表达式。

2. 显示匹配行及行号:

1
egrep -n "pattern" filename

使用 -n 选项可以显示匹配行的行号。

3. 显示不匹配的行:

1
egrep -v "pattern" filename

使用 -v 选项可以显示不匹配指定模式的行。

4. 显示匹配行前/后的内容:

1
2
3
egrep -A 2 "pattern" filename  # 显示匹配行及后两行的内容
egrep -B 2 "pattern" filename # 显示匹配行及前两行的内容
egrep -C 2 "pattern" filename # 显示匹配行及前后各两行的内容

使用 -A-B-C 选项可以显示匹配行前后的指定行数的内容。

5. 忽略大小写进行匹配:

1
egrep -i "pattern" filename

使用 -i 选项可以忽略大小写进行匹配。

6. 显示匹配的行数:

1
egrep -c "pattern" filename

使用 -c 选项可以显示匹配的行数而不是匹配的行内容。

7. 显示匹配的内容及模式:

1
egrep -o "pattern" filename

使用 -o 选项可以只显示匹配的内容而不是整行,并且仅显示匹配的模式。

8. 显示匹配模式的行数:

1
egrep -o -n "pattern" filename | wc -l

结合 wc -l 命令可以显示匹配模式的行数。

9. 显示行尾包含匹配模式的行:

1
egrep "pattern$" filename

在模式的末尾使用 $ 可以显示行尾包含匹配模式的行。

10. 使用多个模式进行匹配:

1
egrep "pattern1|pattern2" filename

使用 | 可以匹配多个模式之一的行。

11. 显示匹配模式的上下文:

1
egrep -C 2 "pattern" filename

使用 -C 选项可以显示匹配模式的上下文内容。

12. 递归搜索目录中的文件:

1
egrep -r "pattern" directory

使用 -r 选项可以递归搜索指定目录中的文件。

这些技巧和选项可以帮助你更灵活地使用 egrep 命令进行文本搜索,根据具体的需求选择合适的选项和正则表达式模式。

egrep 详解

egrep 命令是 Linux 系统中用于进行正则表达式搜索的工具之一。它是 grep 命令的一个变种,支持扩展的正则表达式语法。下面是关于 egrep 命令的详细解释:

基本语法

egrep 命令的基本语法如下:

1
egrep [选项] 模式 [文件...]
  • 选项:可以是一系列的命令行选项,用于控制 egrep 的行为。
  • 模式:是一个正则表达式,用于搜索匹配的文本。
  • 文件:可选参数,表示要在其中搜索模式的一个或多个文件。如果省略文件参数,则 egrep 将从标准输入中读取数据。

常用选项

以下是一些常用的 egrep 选项:

  • -i:忽略大小写,使搜索不区分大小写。
  • -v:反向匹配,只输出不匹配模式的行。
  • -r-R:递归搜索,用于在目录中搜索文件,而不仅仅是单个文件。
  • -n:显示匹配行的行号。
  • -c:仅显示匹配行的计数而不是行本身。
  • -l:只显示包含匹配的文件名,而不显示匹配的行。
  • -o:只输出匹配的部分,而不是整行。
  • -A-B-C:显示匹配行的上下文。

正则表达式语法

egrep 支持扩展的正则表达式语法,其中包括一些特殊字符和元字符,如 .(匹配任意字符)、*(匹配前一个字符的零个或多个实例)、+(匹配前一个字符的一个或多个实例)等。你可以使用这些元字符来构建强大的正则表达式模式,以匹配特定的文本模式。

示例

以下是一些 egrep 命令的示例:

  1. 在文件中查找包含 “error” 或 “warning” 的行,并显示行号:

    1
    egrep -n 'error|warning' filename.txt
  2. 在目录及其子目录中递归搜索包含 “pattern” 的文件:

    1
    egrep -r 'pattern' /path/to/directory
  3. 显示包含匹配的文件名:

    1
    egrep -l 'pattern' *.txt
  4. 使用反向匹配查找不包含 “success” 的行:

    1
    egrep -v 'success' filename.txt

这些示例只是 egrep 命令的一些用法,你可以根据需要构建更复杂的正则表达式模式和命令行选项来满足特定的搜索需求。要了解更多信息,可以使用 man egrep 命令查看 egrep 的手册页。

简介

  • date命令

linux date命令 详解

date 命令用于显示或设置系统的日期和时间。在 Linux 中,date 命令非常常用,可以用于获取当前日期时间、设置系统时间,以及格式化输出时间等。以下是一些常用的 date 命令选项和用法:

1. 显示当前日期时间:

1
date

默认情况下,date 命令会显示当前的日期和时间。

2. 显示指定格式的日期时间:

1
date +"%Y-%m-%d %H:%M:%S"

使用 + 后面跟着格式字符串,可以按指定格式显示日期和时间。上面的例子显示的格式是年-月-日 时:分:秒。

3. 显示日期时间及星期:

1
date +"%A, %B %d, %Y %H:%M:%S"

这个例子显示的格式包括星期、月份、日期、年份、时、分和秒。

4. 显示 UTC 时间:

1
date -u

使用 -u 选项可以显示当前的 UTC 时间。

5. 设置系统时间:

1
sudo date MMDDhhmm[[CC]YY][.ss]

通过 sudo date 命令可以设置系统的日期和时间。格式中 MM 代表月份,DD 代表日期,hh 代表小时,mm 代表分钟,CC 代表世纪,YY 代表年份的后两位,ss 代表秒。

6. 显示时间戳:

1
date +%s

使用 +%s 选项可以显示当前时间的时间戳(从 1970-01-01 00:00:00 UTC 到现在的秒数)。

7. 将时间戳转换为日期时间:

1
date -d "@timestamp" +"%Y-%m-%d %H:%M:%S"

将具体时间戳替换 timestamp,可以将时间戳转换为可读的日期时间格式。

8. 计算日期差值:

1
2
3
date1=$(date -d "2022-01-01" +%s)
date2=$(date -d "2022-02-01" +%s)
echo $(( (date2 - date1) / 86400 )) days

这个例子计算了从 2022 年 1 月 1 日到 2022 年 2 月 1 日的天数差值。

9. 将日期时间设为其他时区:

1
TZ="America/New_York" date

使用 TZ 环境变量可以将 date 命令显示的时间设为其他时区的时间。

10. 显示日历:

1
cal

cal 命令可以显示当前月的日历。

11. 显示某年某月的日历:

1
cal MM YYYY

将 MM 和 YYYY 替换为具体的月份和年份。

这些是一些常用的 date 命令选项和用法,可以帮助你在 Linux 系统中处理日期和时间相关的任务。根据实际需求,你可以选择不同的格式和选项来满足特定的日期时间操作。

linux date命令 常用技巧

以下是一些在使用 date 命令时的常用技巧和选项,以便更灵活地处理日期和时间:

1. 显示当前日期时间:

1
date

默认情况下,date 命令会显示当前的日期和时间。

2. 显示指定格式的日期时间:

1
date +"%Y-%m-%d %H:%M:%S"

使用 + 后面跟着格式字符串,可以按指定格式显示日期和时间。

3. 将日期时间设为其他时区:

1
TZ="America/New_York" date

使用 TZ 环境变量可以将 date 命令显示的时间设为其他时区的时间。

4. 显示 UTC 时间:

1
date -u

使用 -u 选项可以显示当前的 UTC 时间。

5. 显示时间戳:

1
date +%s

使用 +%s 选项可以显示当前时间的时间戳(从 1970-01-01 00:00:00 UTC 到现在的秒数)。

6. 将时间戳转换为日期时间:

1
date -d "@timestamp" +"%Y-%m-%d %H:%M:%S"

将具体时间戳替换 timestamp,可以将时间戳转换为可读的日期时间格式。

7. 计算日期差值:

1
2
3
date1=$(date -d "2022-01-01" +%s)
date2=$(date -d "2022-02-01" +%s)
echo $(( (date2 - date1) / 86400 )) days

这个例子计算了从 2022 年 1 月 1 日到 2022 年 2 月 1 日的天数差值。

8. 生成递增日期序列:

1
2
3
4
5
6
start_date="2022-01-01"
end_date="2022-01-10"
while [ "$start_date" != "$end_date" ]; do
echo $start_date
start_date=$(date -I -d "$start_date + 1 day")
done

这个例子生成了从 2022 年 1 月 1 日到 2022 年 1 月 10 日的日期序列。

9. 显示一周的开始和结束日期:

1
2
3
4
5
today=$(date +%u)
start_date=$(date -d "last sunday -$(($today - 1)) days" +"%Y-%m-%d")
end_date=$(date -d "next saturday -$(($today - 7)) days" +"%Y-%m-%d")
echo "Start Date: $start_date"
echo "End Date: $end_date"

这个例子显示当前日期所在周的开始和结束日期。

10. 格式化输出当前月的日历:

1
cal $(date +"%m %Y")

这个例子使用 cal 命令结合 date 命令,以格式化形式显示当前月的日历。

这些技巧可以帮助你更灵活地使用 date 命令,根据实际需求处理日期和时间相关的任务。

date

date是Linux系统中用于显示和设置系统日期和时间的命令。它还可以格式化日期和时间以满足特定的需求。

以下是date命令的常用选项和用法:

1
date [options] [+format]

常用选项:

  • -d, --date=STRING:使用指定的日期和时间字符串进行操作,而不是当前日期和时间。
  • -u, --utc, --universal:使用协调世界时(UTC)进行操作,而不是本地时间。
  • --rfc-3339=TIMESPEC:使用RFC 3339格式显示日期和时间。
  • --iso-8601[=TIMESPEC]:使用ISO 8601格式显示日期和时间。
  • -R, --rfc-2822:使用RFC 2822格式显示日期和时间。
  • --help:显示帮助信息。

格式化选项(常用的格式化选项):

  • %Y:四位数的年份(例如:2023)。
  • %y:两位数的年份(例如:23)。
  • %m:两位数的月份(例如:06)。
  • %d:两位数的日期(例如:09)。
  • %H:两位数的小时(24小时制)(例如:15)。
  • %M:两位数的分钟(例如:30)。
  • %S:两位数的秒钟(例如:45)。
  • %A:完整的星期几名称(例如:Sunday)。
  • %a:缩写的星期几名称(例如:Sun)。
  • %B:完整的月份名称(例如:June)。
  • %b:缩写的月份名称(例如:Jun)。
  • %Z:时区名称(例如:PST)。
  • %z:时区偏移量(例如:-0800)。

示例用法:

  1. 显示当前日期和时间:
1
date
  1. 显示当前日期(年、月、日):
1
date +%Y-%m-%d
  1. 显示当前时间(小时、分钟、秒):
1
date +%H:%M:%S
  1. 根据指定格式显示日期和时间:
1
date +"%Y-%m-%d %H:%M:%S"
  1. 显示当前时间的UNIX时间戳:
1
date +%s

date命令还支持其他选项和格式化标记,可以根据具体的需求进行调整。您可以通过man date命令查看date命令的完整帮助文档和更多用法示例。

简介

  • nc命令

linux nc命令 详解

nc(netcat)是一个用于网络通信的命令行工具。它可以用于创建 TCP 或 UDP 连接,进行端口扫描,以及在网络中传输数据。以下是一些 nc 命令的常见用法和选项:

1. 创建 TCP 连接:

1
nc host port

通过指定主机和端口,可以使用 nc 命令创建一个 TCP 连接。

2. 创建 UDP 连接:

1
nc -u host port

通过添加 -u 选项,可以使用 nc 命令创建一个 UDP 连接。

3. 监听端口:

1
nc -l -p port

通过添加 -l 选项,nc 可以作为服务器监听指定端口。-p 选项用于指定监听的端口。

4. 传输文件:

1
2
nc -l -p port > received_file  # 接收端
nc host port < local_file # 发送端

通过 nc 命令,可以在网络中传输文件。在接收端使用 > 将传输的内容保存到文件,而在发送端使用 < 将本地文件内容发送到目标主机。

5. 端口扫描:

1
nc -zv host start_port-end_port

通过添加 -z 选项,nc 可以用于进行端口扫描。-v 选项用于显示详细信息。

6. 使用反向连接:

1
nc -l -p port -e /bin/bash

在监听端使用 -e 选项可以在接收连接时执行指定的命令,例如在上面的例子中,接收到连接后会执行 /bin/bash

7. 获取 HTTP 响应头:

1
echo -e "HEAD / HTTP/1.1\r\n\r\n" | nc host port

通过发送 HTTP HEAD 请求,可以获取远程服务器的响应头信息。

8. 保持连接打开:

1
nc -k -l -p port

使用 -k 选项可以在每个连接断开后保持 nc 处于监听状态。

9. 限制传输速度:

1
nc -l -p port | pv -L 1k | tar xvf -

使用 pv 命令可以限制传输速度。在上面的例子中,nc 接收到的数据通过 pv 限制了传输速度,然后通过 tar 解压缩。

10. 显示帮助信息:

1
nc -h

使用 -h 选项可以显示 nc 命令的帮助信息,列出可用的选项和参数。

nc 命令非常强大且灵活,可以用于多种网络任务,如简单的网络通信、文件传输、端口扫描等。在使用 nc 命令时,请注意其强大的功能和潜在的安全风险,确保在安全环境中使用。

linux nc命令 常用技巧

以下是一些在使用 nc(netcat)命令时的常用技巧和选项,以便更灵活地进行网络通信和处理任务:

1. 创建 TCP 连接并发送数据:

1
echo "Hello, Server!" | nc host port

通过管道将数据发送到指定主机和端口。

2. 监听端口并显示接收的数据:

1
nc -l -p port

使用 -l 选项可以将 nc 设置为监听模式,并通过指定的端口接收数据。

3. 监听端口并将接收的数据保存到文件:

1
nc -l -p port > received_data.txt

通过重定向操作符 > 将接收到的数据保存到文件。

4. 使用 UDP 进行数据传输:

1
nc -u host port

通过添加 -u 选项,可以使用 nc 命令创建一个 UDP 连接。

5. 发送文件到远程主机:

1
tar czf - /path/to/local_dir | nc host port

使用 tar 和管道将本地目录压缩并发送到远程主机。

6. 接收文件并解压缩:

1
nc -l -p port | tar xzf -

在监听端使用 nc 接收数据,并通过管道将数据解压缩。

7. 端口扫描:

1
nc -zv host start_port-end_port

通过添加 -z 选项,nc 可以用于进行端口扫描。-v 选项用于显示详细信息。

8. 使用反向连接打开远程 Shell:

1
nc -l -p port -e /bin/bash

在监听端使用 -e 选项可以在接收连接时执行指定的命令,例如在上面的例子中,接收到连接后会执行 /bin/bash

9. 保持连接打开:

1
nc -k -l -p port

使用 -k 选项可以在每个连接断开后保持 nc 处于监听状态。

10. 限制传输速度:

1
nc -l -p port | pv -L 1k | tar xvf -

使用 pv 命令可以限制传输速度。在上面的例子中,nc 接收到的数据通过 pv 限制了传输速度,然后通过 tar 解压缩。

11. 测试 HTTP 服务器的响应:

1
echo -e "GET / HTTP/1.1\r\nHost: example.com\r\n\r\n" | nc example.com 80

通过发送 HTTP GET 请求,可以测试 HTTP 服务器的响应。

12. 显示帮助信息:

1
nc -h

使用 -h 选项可以显示 nc 命令的帮助信息,列出可用的选项和参数。

这些技巧可以帮助你更灵活地使用 nc 命令进行网络通信和处理任务。请注意,nc 是一个强大的工具,正确使用它并保障安全性非常重要。在网络上使用时,请确保你了解所有操作的后果,以避免潜在的安全风险。

nc 常用选项

nc(netcat)是一个功能强大的工具,具有许多选项,以适应各种网络连接和数据传输需求。以下是一些常用的 nc 命令选项:

  1. 基本选项:

    • -l:监听模式,使 nc 成为服务器并等待连接。
    • -p <port>:指定要监听或连接的端口号。
    • -u:使用 UDP 协议而不是默认的 TCP 协议。
    • -v:显示详细的输出,使操作更可见。
  2. 数据传输选项:

    • -e <command>:在连接上运行指定的命令。仅在监听模式时可用,用于创建反向 shell 或执行其他操作。
    • -c <command>:在连接上运行指定的命令。仅在监听模式时可用,类似于 -e 选项,但更通用。
  3. 连接选项:

    • -w <timeout>:设置超时时间,如果在指定的时间内没有连接,则关闭。
    • -z:进行端口扫描,但不发送数据,仅测试连接可达性。
    • -s <source_ip>:设置源 IP 地址,用于伪装连接的源。
  4. 其他选项:

    • -k:保持监听状态,即使有一个连接断开。
    • -n:禁用 DNS 解析,使用 IP 地址而不是域名。
    • -q <seconds>:设置间隔时间,用于在数据传输时产生延迟。

示例用法:

  • 创建 TCP 连接:nc <hostname> <port>
  • 创建 UDP 连接:nc -u <hostname> <port>
  • 监听 TCP 连接:nc -l <port>
  • 监听 UDP 连接:nc -lu <port>
  • 代理服务器:nc -l -p <port> -c "nc <destination_host> <destination_port>"
  • 端口转发:nc -l -p <local_port> -c "nc <destination_host> <destination_port>"

要查看完整的选项列表和详细说明,请在终端中运行 man ncnc --help,以查看官方文档和帮助信息。不同的 nc 版本可能会有微小的差异,因此在实际使用时最好查阅适用版本的文档。

netcat

Netcat(也称为 nc)是一个非常强大的网络工具,它在 Linux 系统中被广泛用于创建各种网络连接、数据传输和网络调试任务。以下是关于 Netcat 的一些详细说明:

  1. 基本用法:
    在终端中,你可以使用以下命令来创建简单的 TCP 或 UDP 连接:

    • 创建 TCP 连接:nc <hostname> <port>
    • 创建 UDP 连接:nc -u <hostname> <port>
  2. 监听模式:
    Netcat 可以作为服务器监听端口,等待来自客户端的连接。使用以下命令来监听 TCP 或 UDP 连接:

    • 监听 TCP 连接:nc -l <port>
    • 监听 UDP 连接:nc -lu <port>
  3. 文件传输:
    Netcat 可以用于在两台计算机之间传输文件。在发送端运行 nc 命令,而在接收端使用 nc 命令监听端口并保存传输的数据。例如:

    • 发送文件:nc -w 3 <receiver_ip> <port> < file_to_send
    • 接收文件:nc -l <port> > received_file
  4. 端口扫描:
    使用 Netcat 可以进行基本的端口扫描,以检查目标主机上的哪些端口是开放的。例如,扫描前 1000 个端口:

    • nc -zv <hostname> 1-1000
  5. 代理和端口转发:
    Netcat 还可以用于创建简单的代理服务器或端口转发。这对于将流量从一个端口转发到另一个端口或者通过一个中间主机进行连接很有用。例如:

    • 创建代理服务器:nc -l -p <port_to_listen> -c "nc <destination_host> <destination_port>"
    • 端口转发:nc -l -p <local_port> -c "nc <destination_host> <destination_port>"
  6. 其他高级用法:
    Netcat 还支持许多高级特性,例如使用 -e 选项在连接上运行指定的命令,使用 -k 选项保持监听状态,以及使用 -s 选项设置源 IP 地址等。

请注意,Netcat 是一个功能强大但也可能存在潜在风险的工具。由于其能够在网络上创建各种连接和交换数据,因此可能被滥用用于恶意活动。在使用 Netcat 时,请确保你了解其操作,并遵循合法和道德的使用原则。

要查看更多关于 Netcat 的详细信息和用法,请在终端中运行 man ncnc --help,以查看官方文档和帮助信息。