UNIX\LINUX相关指令

文件描述符

(File Descriptor)0、1、2 分别代表了标准输入(stdin)、标准输出(stdout)、标准错误(stderr)。

  • 文件描述符 0:代表标准输入(stdin),用于接收程序的输入数据。
  • 文件描述符 1:代表标准输出(stdout),用于输出程序的正常运行结果。
  • 文件描述符 2:代表标准错误(stderr),用于输出程序的错误信息。

这些文件描述符通常在终端环境下会自动关联到终端设备(比如键盘和显示器),但它们也可以被重定向到其他文件或设备上。

awk 

是一种强大的文本处理工具,在Unix和类Unix操作系统中被广泛使用。它可以对文本文件进行逐行处理,根据指定的模式匹配和规则执行相应的操作。以下是 awk 命令的基本用法和示例:

基本语法

awk 'pattern { action }' input-file
  • pattern:模式,用于匹配输入行。
  • { action }:动作,用于对匹配的行执行操作。
  • input-file:输入文件的名称。

示例

  1. 打印文件的每一行

    awk '{ print }' file.txt
    
  2. 打印指定列

    awk '{ print $1, $3 }' file.txt   # 打印每行的第一列和第三列
    
  3. 计算列的总和

    awk '{ sum += $1 } END { print sum }' file.txt   # 计算第一列的总和
    
  4. 根据条件打印行

    awk '$3 > 50 { print $1, $3 }' file.txt   # 打印第三列大于 50 的行的第一列和第三列
    
  5. 使用自定义分隔符

    awk -F':' '{ print $1 }' /etc/passwd   # 使用冒号作为分隔符打印每行的第一列
    
  6. 在文本中查找指定模式

    awk '/pattern/ { print }' file.txt   # 打印包含指定模式的行
    
  7. 统计行数

    awk 'END { print NR }' file.txt   # 统计文件的行数
    

awk 还有许多其他功能和选项,例如条件控制、循环、函数等,可以根据具体需求来使用。

ar 

工具将 .o 文件打包成 .a 静态库文件。这个工具通常在 Unix 和类 Unix 系统中使用,用于创建和修改归档文件(archive files)。以下是基本的用法和示例:

基本语法

ar -rcs libname.a file1.o file2.o ...
  • -r:向归档文件中添加新的或更新的文件。
  • -c:创建归档文件,如果文件不存在则创建新的归档文件。
  • -s:添加文件时重新排列归档文件,使其保持有序性。
  • libname.a:要创建或更新的静态库文件名称。
  • file1.o file2.o ...:要添加到静态库的 .o 目标文件列表。

chown

chown 指令是 Unix 和类 Unix 系统中的一个命令,用于改变文件或目录的所有者。这个命令通常在命令行或终端中使用,并且需要管理员权限或文件的所有者权限才能执行。chown 命令的基本语法如下:

chown [选项]... [新所有者][:新组] 文件...

其中,[选项] 是可选的参数,用于指定 chown 命令的行为。一般常用的选项有:

  • -R:递归地改变目录及其子目录中所有文件的所有者。
  • -v:显示详细的操作信息,包括哪些文件的所有者被改变了。
  • -c:仅在有更改时显示详细信息。

[新所有者] 是要指定的新的所有者用户名或用户 ID。如果只指定了新的所有者而没有指定新的组,则默认将文件的组改为新的所有者的主组。

[:新组] 是可选的新的组名或组 ID,用于同时改变文件的所有者和所属组。如果省略了 [:新组] 部分,则只改变文件的所有者而不改变所属组。

文件... 是要改变所有者的文件或目录的列表。可以同时指定多个文件或目录,用空格分隔。

例如,要将文件 example.txt 的所有者改为 newuser,可以使用以下命令:

sudo chown newuser example.txt

这将把 example.txt 的所有者改为 newuser。需要注意的是,chown 命令可能需要管理员权限或者文件的当前所有者权限才能执行成功。

cat

cat 命令是一个常用的命令行工具,用于连接文件并打印它们的内容。它的名称来自于 “concatenate”(连接)的缩写。cat 命令的主要作用是:

  1. 显示文件内容: 如果您使用 cat 命令并指定一个或多个文件名作为参数,它将按顺序连接这些文件并将它们的内容输出到标准输出(通常是终端屏幕),这样您就可以查看文件的内容。

    cat file1.txt file2.txt
    
  2. 创建新文件: 您还可以使用 cat 命令将多个文件的内容连接起来并将结果输出到新文件中。

    cat file1.txt file2.txt > newfile.txt
    

    这将把 file1.txt 和 file2.txt 的内容连接起来,并将结果写入 newfile.txt

  3. 将文件内容追加到现有文件: 使用 cat 命令可以将文件的内容追加到另一个文件的末尾。

    cat file1.txt >> existingfile.txt
    

    这将把 file1.txt 的内容追加到 existingfile.txt 的末尾。

  4. 常用选项:

  • -l:以长格式显示文件列表。
  • -a:显示所有文件,包括以点开头的隐藏文件。
  • -h:以人类可读的格式显示文件大小。
  • --color:以彩色显示文件列表。
  • -n:显示行号。
  • -b:在非空行上显示行号。
  • -E:在每行的结尾显示美元符号。
  • -T:在 Tab 字符上显示 ^I。

虽然 cat 命令非常简单,但它是一种非常强大和灵活的工具,特别是在命令行环境下进行文本文件处理时

crontab

文件由 6 个域组成它们分别代表着时间设置和要执行的命令。这些域分别是:

  1. 分钟(Minute):0-59
  2. 小时(Hour):0-23
  3. 日(Day of month):1-31
  4. 月份(Month):1-12
  5. 星期(Day of week):0-7(0 和 7 都表示周日)
  6. 命令(Command):要执行的命令或脚本路径

这些域之间用空格或制表符分隔开来。例如,如果你想每天早上 8 点执行一个脚本,你的 crontab 条目可能是这样的:

0 8 * * * /path/to/your/script.sh

这表示在每天的 8:00 分,执行 /path/to/your/script.sh 这个脚本。

df 

命令可以查看文件系统的磁盘使用情况,包括文件大小、已用空间、可用空间等信息。但是它通常用来查看整个文件系统或者指定文件系统的空间使用情况,而不是查看单个文件的大小。要查看单个文件的大小,你可以使用 ls 命令或者 du 命令。

  • 使用 ls -l 命令可以列出文件的详细信息,包括文件大小。

    ls -l filename
    
  • 使用 du 命令可以查看指定文件或目录的磁盘使用情况。

    du -h filename
    

这些命令可以帮助你查看文件的大小和磁盘空间使用情况。

free

free 命令用于显示系统中内存的使用情况,包括空闲内存、已使用内存、缓存和交换空间等信息。它通常用于诊断系统内存使用情况,帮助用户了解系统的性能状况。以下是 free 命令的基本用法及其输出解释:

free [options]

free 命令通常不需要额外的参数,但可以使用一些选项来控制输出的格式。

以下是一些常用的选项:

  • -b, --bytes:以字节为单位显示内存使用情况。
  • -k, --kilo:以千字节为单位显示内存使用情况(默认选项)。
  • -m, --mega:以兆字节为单位显示内存使用情况。
  • -g, --giga:以千兆字节为单位显示内存使用情况。
  • -h, --human:以人类可读的格式显示内存使用情况,自动选择适当的单位。
  • -t, --total:在输出的最后一行显示总内存使用情况。

示例用法:

free -h

这个命令将以人类可读的格式显示系统内存使用情况。

free 命令的输出通常包括以下行:

  • 第一行:总内存、已用内存、空闲内存、共享内存、缓冲区以及用于缓存的内存(Buffers)和用于缓存的内存(Cached)。
  • 第二行:交换空间的总量、已使用的交换空间、空闲的交换空间。
  • 如果使用了 -t, --total 选项,则会在最后一行显示总内存和总交换空间的统计信息。

通过 free 命令可以快速了解系统当前的内存使用情况,有助于进行性能分析和故障排除。

find 

find 命令是在 Unix/Linux 系统中用于查找文件和目录的工具。它提供了广泛的选项,可以根据不同的条件来搜索文件。以下是 find 命令的一些常用选项和用法:

  1. 基本用法

    find [起始目录] [匹配条件] [操作]
    
  2. 常用选项

    • -name:按文件名匹配,可以使用通配符进行模式匹配。
    • -type:指定要查找的文件类型,如 -type f 表示查找普通文件,-type d 表示查找目录。
    • -exec:对查找到的文件执行指定的命令。
    • -size:按文件大小进行匹配,可以指定大小范围,如 +10M 表示大于10MB的文件。
    • -mtime:按文件的修改时间进行匹配,可以指定时间范围,如 -mtime -7 表示修改时间在7天以内的文件。
  3. 示例用法

    • 查找当前目录及其子目录下所有名称为 “example.txt” 的文件:
      find . -name "example.txt"
      
    • 查找当前目录及其子目录下所有的目录:
      find . -type d
      
    • 查找当前目录及其子目录下大小大于10MB的文件:
      find . -type f -size +10M
      
    • 查找当前目录及其子目录下最近7天内修改过的文件:
      find . -type f -mtime -7
      

find 命令非常强大,可以根据不同的需求灵活地组合各种选项来查找文件和目录。

fmt

fmt 是一个在 Unix 和类 Unix 操作系统上的文本格式化工具,用于重新格式化文本以便在终端或文件中更容易阅读。fmt 命令的基本语法是:

fmt [OPTION]... [FILE]...

其中 [OPTION] 是一些选项,用于指定格式化文本的方式,[FILE] 是要格式化的文件名。如果未指定文件名,则 fmt 命令会从标准输入读取文本并进行格式化。

fmt 命令的常见选项包括:

  • -w WIDTH:指定输出行的最大宽度,超过此宽度的文本会被换行。
  • -s:只截断空行,并不合并多个空行。
  • -u:强制单词之间只留一个空格。

例如,要将文件 example.txt 中的文本按照默认宽度重新格式化,可以使用以下命令:

fmt example.txt

fmt 命令对于需要对长文本进行简单格式化的场景非常有用,例如在终端显示长段落文本时,可以使用 fmt 命令使其更易读。

gcc

gcc 命令是 GNU Compiler Collection 的一部分,它是一种用于编译 C、C++、Objective-C、Fortran、Ada 和 Go 等编程语言的编译器。使用 gcc 命令,您可以将源代码文件编译成可执行文件或库文件。

以下是 gcc 命令的基本用法:

gcc [options] file...

其中 file 是您要编译的源代码文件,可以是一个或多个文件。gcc 命令将这些源文件编译成可执行文件,默认情况下输出文件名为 a.out

以下是一些常用的 gcc 选项:

这些选项可以根据您的具体需求进行组合和

  • -o output_file:指定输出文件的名称。
  • -c:只编译源文件而不进行链接,生成目标文件。
  • -Wall:打开所有警告信息。
  • -g:在可执行文件中包含调试信息。
  • -I directory:指定包含文件的搜索路径。
  • -L directory:指定库文件的搜索路径。
  • -l library:链接指定的库文件。
  • -std:指定要使用的 C 或 C++ 标准版本。
  • -O:指定优化级别。
  • -Dmacro[=def]:定义一个宏。
  • -Umacro:取消定义一个宏。
  • -E:只进行预处理,生成预处理后的源代码文件。
  • -S:只进行编译,生成汇编代码文件。
  • -shared:生成共享库。
  • -static:生成静态链接的可执行文件。

示例用法:

gcc -o my_program my_program.c

这个命令将 my_program.c 编译成一个名为 my_program 的可执行文件。

需要注意的是,gcc 编译器支持许多其他选项和功能,可以根据您的需求进行定制化配置。

grep

用于在文本文件中搜索指定模式的字符串,并将包含该模式的行打印出来。

其主要功能包括:

  1. 搜索文本模式grep 可以接收一个正则表达式作为参数,用于搜索文本文件中与该模式匹配的字符串。

  2. 打印匹配行:当 grep 找到匹配的字符串时,它会打印包含该字符串的行。

  3. 支持递归搜索grep 可以在指定目录及其子目录中递归地搜索匹配的字符串。

  4. 多文件搜索grep 可以同时搜索多个文件,将匹配的行打印到标准输出。

  5. 忽略大小写grep 可以通过参数来控制是否区分大小写进行搜索。

  6. 显示行号grep 可以显示匹配行的行号。

  7. 反向搜索grep 可以通过参数进行反向搜索,即打印不匹配指定模式的行。

例如,要在文件 example.txt 中搜索包含字符串 “hello” 的行,可以使用以下命令:

grep "hello" example.txt

这将打印出 example.txt 中包含 “hello” 的所有行。

gdb

`gdb` 是 GNU 调试器(GNU Debugger)的缩写,是一个用于调试程序的强大工具。它可以帮助开发人员查找程序中的错误,理解程序的执行流程,并进行性能分析。下面是一些常用的 `gdb` 命令和用法:

1. **启动程序**:使用 `gdb` 启动要调试的程序。例如,`gdb ./my_program` 将启动名为 `my_program` 的可执行文件进行调试。

2. **设置断点**:使用 `break` 命令设置断点,以在程序执行到指定位置时暂停执行。例如,`break main` 在 `main` 函数处设置断点。

3. **运行程序**:使用 `run` 命令运行程序。如果程序需要输入参数,可以在 `run` 命令后面添加参数,如 `run arg1 arg2`。

4. **单步执行**:使用 `step` 命令进行单步执行,逐行执行代码并进入函数内部。

5. **下一步**:使用 `next` 命令进行下一步执行,逐行执行代码但不进入函数内部。

6. **查看变量**:使用 `print` 或简写的 `p` 命令查看变量的值,如 `print x`。

7. **查看堆栈**:使用 `backtrace` 或简写的 `bt` 命令查看当前的函数调用堆栈。

8. **查看源代码**:使用 `list` 命令查看源代码,如 `list 10,20` 查看 10 到 20 行的代码。

9. **修改变量值**:使用 `set` 命令修改变量的值,如 `set x = 10`。

10. **继续执行**:使用 `continue` 命令继续执行程序直到下一个断点或程序结束。

11. **退出调试器**:使用 `quit` 命令退出 `gdb` 调试器。

这些只是 `gdb` 命令中的一部分,`gdb` 还有更多强大的功能,比如内存查看、线程调试、监视点设置等,可以根据具体的调试需求来选择合适的命令和功能。

nohup

 是一个在 Unix 和类 Unix 系统中用来执行命令,即使当前用户注销或者退出时也能让命令继续执行的命令。nohup 命令的用法如下:

基本语法

nohup command [arguments ...] &
  • command:要执行的命令。
  • [arguments ...]:命令的参数。
  • &:放置在命令结尾,表示将命令放到后台执行。

示例

  1. 简单使用

    nohup ./your_script.sh &
    

    这会在后台执行 your_script.sh 脚本,并将输出写入 nohup.out 文件。

  2. 指定输出文件

    nohup ./your_script.sh > output.log &
    

    这会将 your_script.sh 的输出写入 output.log 文件。

  3. 指定标准输出和错误输出

    nohup ./your_script.sh > output.log 2>&1 &
    

    这会将标准输出和错误输出都写入 output.log 文件。

  4. 在远程服务器上执行

    nohup ssh user@server 'command' &
    

    这会在远程服务器上执行 command 命令,并将输出写入 nohup.out 文件。

  5. 查看任务

    ps -ef | grep your_script.sh
    

    这会列出所有包含 your_script.sh 的进程,找到对应的 PID。

  6. 结束任务

    kill PID
    

    这会结束对应 PID 的进程,停止 nohup 启动的任务。

使用 nohup 可以让任务在后台持续运行,即使用户注销或终端关闭也不会被中断。常用于需要长时间运行的任务或远程服务器上的操作。

route

route 命令是一个用于显示和操作 IP 路由表的命令。在大多数 Unix/Linux 系统中,route 命令通常被 ip route 命令所取代,但在一些系统中仍然可以使用。

以下是一些常见的 route 命令用法:

  1. 显示路由表route -n 或 route print(取决于操作系统)。这将显示当前系统的 IP 路由表,包括目标网络、网关、接口和路由类型等信息。

  2. 添加路由route add 命令用于向路由表中添加新的路由。例如:route add -net 192.168.1.0 netmask 255.255.255.0 gw 10.0.0.1 dev eth0 表示将目标网络 192.168.1.0/24 通过网关 10.0.0.1 连接到 eth0 接口。

  3. 删除路由route del 命令用于从路由表中删除指定的路由。例如:route del -net 192.168.1.0 netmask 255.255.255.0 表示删除目标网络 192.168.1.0/24 的路由。

  4. 修改默认网关route add default gw 命令用于设置默认网关。例如:route add default gw 192.168.1.1 表示将 192.168.1.1 设为默认网关。

  5. 临时路由设置:通过上述命令添加的路由通常是临时性的,系统重启后会丢失。如果需要永久保存路由设置,需要编辑相关配置文件,如 /etc/network/interfaces(Ubuntu)或 /etc/sysconfig/network-scripts/route-<interface>(CentOS/RHEL)。

请注意,对于更高级的路由管理和配置,推荐使用更现代的工具,如 ip route 命令或网络管理工具,因为它们提供了更多的功能和选项

useradd

useradd 是一个常用的 Linux 命令,用于创建新的用户账户。在大多数 Linux 发行版中,useradd 命令通常需要 root 或具有 root 权限的用户才能执行。下面是一些 useradd 命令的基本用法和选项:

useradd [options] username

其中,[options] 是可选项,username 是要创建的新用户的用户名。

一些常用的选项包括:

  • -b, --base-dir BASE_DIR:指定用户的主目录的基础目录。
  • -c, --comment COMMENT:为用户指定注释信息。
  • -d, --home HOME_DIR:指定用户的主目录。
  • -e, --expiredate EXPIRE_DATE:设置用户账户的过期日期。
  • -f, --inactive INACTIVE:设置用户账户在过期之后的非活动期限。
  • -g, --gid GROUP:指定用户所属的初始组。
  • -G, --groups GROUPS:指定用户所属的附加组。
  • -h, --help:显示帮助信息。
  • -k, --skel SKEL_DIR:指定用于复制的骨架目录。
  • -K, --key KEY=VALUE:设置 /etc/login.defs 中的定义。
  • -l, --no-log-init:不向系统日志记录新用户的创建。
  • -m, --create-home:创建用户的主目录。
  • -M, --no-create-home:不创建用户的主目录。
  • -N, --no-user-group:不创建与用户同名的初始组。
  • -o, --non-unique:允许创建具有非唯一的 UID 的用户。
  • -p, --password PASSWORD:设置用户账户的密码。
  • -r, --system:创建一个系统账户。
  • -R, --root CHROOT_DIR:在指定的 chroot 环境中创建用户。
  • -s, --shell SHELL:指定用户登录时使用的 shell。
  • -u, --uid UID:为用户指定一个唯一的用户 ID。
  • -U, --user-group:创建与用户同名的初始组。
  • -Z, --selinux-user SEUSER:为用户指定 SELinux 用户标签。

示例用法:

useradd -m -s /bin/bash john

这个命令将创建一个名为 “john” 的用户,同时为其分配一个主目录,并指定登录时使用的 shell 为 /bin/bash

sed 

是一种流编辑器(stream editor),在Unix和类Unix操作系统中用于对文本进行流式编辑。它通常用于对文本进行搜索、替换、删除、插入等操作。以下是 sed 命令的基本用法和示例:

基本语法

sed [选项] '动作' 文件
  • [选项]:可选项,用于指定 sed 的操作行为。
  • '动作':对应的操作,可以是搜索替换、删除、插入等。
  • 文件:要处理的文本文件。

示例

  1. 替换文本

    sed 's/old/new/g' file.txt   # 将文本中所有的 "old" 替换为 "new"
    
  2. 删除行

    sed '/pattern/d' file.txt   # 删除包含指定模式的行
    
  3. 插入行

    sed '3i\New line' file.txt   # 在第三行之前插入新行
    
  4. 附加行

    sed '$a\New line' file.txt   # 在文件末尾添加新行
    
  5. 打印特定行

    sed -n '5p' file.txt   # 打印第五行
    
  6. 批量替换

    sed 's/old/new/g' file.txt > newfile.txt   # 将文件中所有的 "old" 替换为 "new" 并输出到新文件
    
  7. 只处理匹配模式的行

    sed '/pattern/!d' file.txt   # 只处理包含指定模式的行,其他行删除
    
  8. 使用正则表达式

    sed -E 's/[0-9]+/num/g' file.txt   # 使用扩展正则表达式将所有数字替换为 "num"
    

sed 还支持更多高级功能,如使用标签、行号范围等,可以根据具体需求进行深入学习和使用。

sar

sar 命令是系统性能分析工具之一,用于收集、报告和保存系统活动的历史数据。它通常与其他工具一起使用,如 sadf 来分析和查看系统的性能数据。以下是 sar 命令的基本用法及其选项:

sar [options] [interval [count]]
  • interval 参数指定数据收集的时间间隔(以秒为单位)。
  • count 参数指定要收集数据的次数。

如果未指定 interval 和 countsar 命令将以交互方式运行,直到用户终止它。

以下是一些常用的选项:

  • -u, --cpu:显示 CPU 使用情况的报告。
  • -r, --mem:显示内存使用情况的报告。
  • -n, --network:显示网络使用情况的报告。
  • -b, --io:显示磁盘 I/O 使用情况的报告。
  • -q, --queue:显示系统队列长度和负载平均值的报告。
  • -A, --all:显示所有报告。
  • -f, --file FILE:从指定的文件中读取数据。

示例用法:

sar -u 5 10

这个命令将每 5 秒收集一次 CPU 使用情况的数据,共收集 10 次。

sar 命令的输出通常包括时间戳以及与所选选项相关的数据。通过分析 sar 命令的输出,可以了解系统在给定时间段内的性能情况,有助于识别性能瓶颈和优化系统配置。

Vi编辑器

是一种经典的文本编辑器,常用于UNIX和类UNIX系统中。以下是Vi编辑器中一些常用的指令:

  1. 进入编辑模式

    • i:在当前光标位置前插入文本。
    • a:在当前光标位置后插入文本。
    • o:在当前行下方插入一个新行,并进入编辑模式。
    • I:在当前行的行首插入文本。
    • A:在当前行的行尾插入文本。
  2. 退出编辑模式

    • Esc:退出编辑模式,返回命令模式。
    • ZZ:命令模式下保存修改
  3. 保存和退出

    • :w:保存文件但不退出Vi。
    • :wq:保存文件并退出Vi。
    • :q!:放弃所有更改并强制退出Vi。
    • :x 或 :wq:如果文件被修改,则保存文件并退出Vi,否则仅退出Vi。
  4. 光标移动

    • h:向左移动一个字符。
    • j:向下移动一行。
    • k:向上移动一行。
    • l:向右移动一个字符。
    • 0:移动到当前行的行首。
    • $:移动到当前行的行尾。
    • gg:移动到文件的第一行。
    • G:移动到文件的最后一行。
  5. 删除和修改

    • x:删除光标所在位置的字符。
    • dd:删除当前行。
    • dw:删除从当前位置到单词结尾的字符。
    • u:撤销上一次的修改。
    • yy:复制当前行。
    • p:将复制的内容粘贴到光标下方。
  6. 查找和替换

    • /search_text:向下搜索指定的文本。
    • ?search_text:向上搜索指定的文本。
    • :s/search_text/replace_text/g:在当前行替换所有出现的文本。
    • :1,$s/search_text/replace_text/g:在整个文件中替换所有出现的文本。

这些是Vi编辑器中的一些基本指令,有助于在编辑文本时提高效率。

交换空间

扩展 Linux 服务器的交换空间通常包括以下步骤:

  1. 检查当前交换空间使用情况:在进行扩展之前,首先要了解当前系统中交换空间的使用情况。可以使用 free -h 命令查看当前内存和交换空间的使用情况。

    free -h
    
  2. 创建交换文件或分区:可以通过创建交换文件或分区来扩展交换空间。如果系统已经有现成的未使用的分区可以用来作为交换分区,可以直接使用该分区。如果没有可用分区,则可以创建交换文件。

    • 创建交换文件

      sudo fallocate -l [大小]G /path/to/swapfile
      sudo chmod 600 /path/to/swapfile
      sudo mkswap /path/to/swapfile
      

      其中,[大小] 是指定的交换文件大小,例如 4G 表示 4GB 大小的交换文件。/path/to/swapfile 是交换文件的路径。

  3. 激活交换文件或分区:无论是新创建的交换文件还是现有的交换分区,都需要激活才能使用。

    • 激活交换文件

      sudo swapon /path/to/swapfile
      
    • 激活交换分区:如果使用了现有的交换分区,通常系统会在启动时自动激活,但你也可以手动激活:

      sudo swapon /dev/sdXn
      

      其中,/dev/sdXn 是交换分区的设备路径,如 /dev/sda3

  4. 永久生效:如果想要设置交换文件或分区永久生效,需要在 /etc/fstab 文件中添加相应的条目。

    • 对于交换文件,在 /etc/fstab 中添加:

      /path/to/swapfile swap swap defaults 0 0
      
    • 对于交换分区,可以通过查看 /etc/fstab 中是否包含对应的交换分区条目来确认。

  5. 验证扩展:最后,可以再次运行 free -h 命令来验证交换空间是否成功扩展。

    free -h
    

通过以上步骤,你可以成功扩展 Linux 服务器的交换空间。记得在操作时谨慎,确保备份重要数据,并且根据具体情况调整交换空间的大小和位置

系统进程

使用以下命令来获取系统的负载相关指标:

  1. uptime
    uptime 命令显示系统的当前运行时间以及系统的平均负载。平均负载通常包括 1 分钟、5 分钟和 15 分钟的负载平均值。

    uptime
    
  2. top
    top 命令可以显示系统的实时进程信息,包括 CPU 使用率、内存使用率和系统负载等。在 top 命令的输出中,负载信息通常在顶部的一行展示。

    top
    
  3. w
    w 命令显示当前登录用户以及他们正在执行的进程。它还包括系统的平均负载信息。

    w
    
  4. sar
    sar(System Activity Reporter)命令可以收集和报告系统的性能数据,包括 CPU 使用率、内存使用率和负载等。您可以使用 sar -q 命令来查看负载信息。

    sar -q
    
  5. mpstat
    mpstat(Multiple Processor Statistics)命令用于显示多核处理器的性能统计信息,包括每个 CPU 的使用率和负载。

    mpstat
    

这些命令可以帮助您了解系统的负载情况,从而更好地监视系统的性能和健康状态。

进程已经在后台挂起,但你希望将其切换到前台继续运行,可以通过以下几种方法实现:

  1. 使用 fg 命令
    如果你知道挂起进程的作业号或进程ID,可以使用 fg 命令将其切换到前台运行。首先,使用 jobs 命令查看当前挂起的作业,并确定要恢复的作业号。然后,使用 fg %作业号 将该作业切换到前台运行。

    jobs    # 查看挂起的作业
    fg %作业号   # 将指定作业切换到前台
    
  2. 使用 bg 命令
    如果你只是希望让挂起的进程在后台继续运行,可以使用 bg 命令将其切换到后台。与 fg 命令类似,你可以使用作业号或进程ID来指定要恢复的进程。

    jobs    # 查看挂起的作业
    bg %作业号   # 将指定作业切换到后台
    
  3. 使用 disown 命令
    如果你想要让进程在后台运行,但不受终端会话的影响(即使关闭终端也不会被终止),可以使用 disown 命令。这样做会使进程成为一个孤儿进程,脱离与终端的关联。

    disown %作业号   # 将指定作业脱离与终端的关联
    

ps 命令

是用于显示当前运行进程的工具,常用于查看系统中正在执行的进程信息。以下是 ps 命令的一些常用选项和用法:

  1. 基本用法

    ps
    
  2. 常用选项

    • -e:显示系统中所有的进程。
    • -f:显示详细的进程信息,包括进程的 UID、PID、PPID、C 终端、CPU 使用率等。
    • -u:以用户为基础显示进程信息,显示与指定用户相关的进程。
    • -aux:显示所有进程的详细信息,包括其他用户的进程,并显示每个进程的所有者、CPU 使用率、内存使用情况等。
    • -p:根据指定的 PID 显示进程信息。
    • -o:自定义输出格式,可以指定要显示的列。
  3. 示例用法

    • 显示当前用户的所有进程:
      ps -u username
      
    • 显示所有进程的详细信息:
      ps -ef
      
    • 显示指定进程的详细信息(以PID为例):
      ps -p PID
      
    • 以树形结构显示进程及其子进程的关系:
      ps -ejH
      
    • 自定义输出格式,只显示进程的PID和CPU使用率:
      ps -eo pid,pcpu
      

ps 命令的输出结果可以帮助用户了解系统当前的进程情况,有助于监控和管理系统的运行状态。

请注意,以上命令中的作业号可以使用 jobs 命令查看得到。另外,如果你不知道作业号或进程ID,可以通过 ps 命令或其他进程管理工具查看,并根据需要操作。

网络

tcpdump 是一个在 Unix-like 系统上用于捕获网络数据包的命令行工具。使用 tcpdump 可以监听特定的网络接口(网卡)并显示捕获到的数据包的内容。以下是一些常见的 tcpdump 命令示例,用于监听特定的网卡:

1. 监听所有网卡

要监听所有可用的网络接口,可以使用 -i any 选项:

sudo tcpdump -i any

2. 监听指定的网卡

要监听指定的网卡,例如 eth0,可以使用 -i 选项加上网卡名称:

sudo tcpdump -i eth0 -nn 'tcp and port XX and host XXXX'

3. 监听并保存数据包到文件

要将捕获到的数据包保存到文件,可以使用 -w 选项:

sudo tcpdump -i eth0 -w capture.pcap

4. 显示捕获的数据包内容

要显示捕获到的数据包的内容,可以不使用 -w 选项:

sudo tcpdump -i eth0

5. 指定捕获数据包的数量

要指定捕获的数据包数量,可以使用 -c 选项:

sudo tcpdump -i eth0 -c 100

6. 显示更详细的信息

要显示更详细的数据包信息,可以使用 -v 或 -vv 选项:

sudo tcpdump -i eth0 -vv

注意事项

  • 由于 tcpdump 需要访问网络接口,因此通常需要使用 sudo 或具有相应权限的用户来运行。
  • 您可以使用 Ctrl + C 组合键来停止 tcpdump 的监听。

请根据您的具体需求选择合适的 tcpdump 命令和选项。如果您有其他关于 tcpdump 或网络监听的问题,请随时提出。

检查服务器是否被DDos:

netstat -n -p TCP | grep SYN_RECV

命令行下的关机

在命令行界面下,用户可以通过输入特定的命令来执行关机操作。在 Windows 操作系统中,可以使用 shutdown 命令来执行关机操作,例如 shutdown /s /t 0 表示立即关机。在 Unix/Linux 系统中,通常使用 shutdown 或 poweroff 命令,例如 shutdown -h now 表示立即关机

Shell

  • 12
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值