简介

  • 不同的终端类型、Shell版本其中断的按键是不同的,甚至还可以自定义,这可通过stty命令查询:sitty -a
  • 注意:^是Ctrl的缩写

终端初始化脚本

  • 参考:
    • https://www.cnblogs.com/yoyo-sincerely/p/5931245.html

显示路径问题

  • \w – 当前工作目录,例如/home/user
  • \W – 当前工作目录的基名(basename),例如user

  • 解决问题:终端显示路径太长,不易于阅读
  • 解决方法:将.bashrc中的\w更换为\W

MD5校验

  • Windows下生成md5校验码: certutil -hashfile filename MD5
  • Linux下生成md5校验码: md5sum filename

文件名通配符

  • ×:与0个或多个任意的字符相匹配
  • :只与单个任意的字符匹配,可以使用多个问号
  • []:与相似,只与一个字符匹配。区别在于:问号与任意一个字符匹配,而方括号只与方括号中列出的字符之一匹配。短横线(-)代表一个范围内的字符。注:只能是升序

sudo

  • sudo, superuser do

在Linux中,sudo是一种命令行工具,用于以超级用户(也称为root用户)的权限执行其他命令。它允许普通用户在需要执行特权操作时临时获得root权限,从而执行需要管理员权限的任务,而无需切换到root用户。

以下是sudo命令的一般语法:

1
sudo [options] command [arguments]

其中,options是可选的一些选项,command是要以root权限执行的命令,arguments是传递给命令的参数。

以下是一些常见的sudo命令选项和用法:

  1. 以root权限执行命令:
    1
    
    sudo command
    

    此命令将以root权限执行command命令。

  2. 切换到root用户:
    1
    
    sudo -i
    

    此命令将打开一个新的shell会话,并切换到root用户身份。

  3. 以其他用户身份执行命令:
    1
    
    sudo -u username command
    

    此命令将以指定用户(username)的权限执行command命令。

  4. 查看sudo命令的使用情况:
    1
    
    sudo -h
    

    此命令将显示sudo命令的帮助信息,包括选项和用法。

  5. 列出当前用户的sudo权限:
    1
    
    sudo -l
    

    此命令将列出当前用户可以使用sudo执行的命令列表。

通过使用sudo命令,系统管理员可以授予特定的权限给普通用户,使其能够执行有限的特权操作,同时避免了在整个会话中使用root权限的风险。这提供了更好的系统安全性和管理员对系统的更细粒度控制。

需要注意的是,只有在/etc/sudoers文件中明确配置了用户的sudo权限,用户才能使用sudo命令。只有具备sudo权限的用户才能成功执行以root权限执行的命令。

supervisor

  • supervisor, 是一个客户端/服务器系统,它允许用户监视和控制类UNIX操作系统上的许多进程,是linux下一个便利的启动和监控服务的命令
  • Supervisor, 是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统.它可以很方便的监听,启动,停止,重启一个或多个进程
  • 用Supervisor管理的进程,当一个进程意外被杀死,supervisor监听到进程死后,会自动将它重新拉起,很方便的做到进程自动恢复的功能,不再需要自己写shell脚本来控制.
  • 因为Supervisor是Python开发的,安装前先检查一下系统是否安装了Python2.4以上的版本
  • supervisor包括两个命令:supervisord, supervisorctl,分别是后台的守护进程以及命令行管理命令.
  • supervisor安装完成后会生成是三个执行程序:supervisortd, supervisorctl, echo_supervisord_conf
    • supervisortd, 用于管理supervisor本身服务
    • supervisorctl, 用于管理需要委托给supervisor工具的服务
    • echo_supervisord_conf, 用于生成supervisor的配置文件
    • supervisor的守护进程服务(用于接受进程管理命令),客户端(用于和守护进程通信,发送管理进程的指令)
  • 两个命令共用一个配置文件,默认是:/etc/supervisor/supervisor.conf,而supervisor.conf通过include来引入其他配置文件,一般放在/etc/supervisor/conf.d目录下

redshift

在Linux中,redshift是一种用于调整屏幕颜色温度的命令行工具。它可以通过减少屏幕的蓝光成分来减轻视觉疲劳,并在晚上或低光环境下提供更舒适的视觉体验。

下面是redshift命令的一些常见选项和用法:

  1. 基本用法:
    • 启动redshiftredshift
    • 停止redshiftredshift -x
  2. 调整颜色温度:
    • 使用-t选项指定颜色温度(单位为开尔文):redshift -t 4000
    • 使用-b选项指定颜色温度并降低亮度:redshift -b 0.8 -t 4000
  3. 调整定位信息:
    • 使用-l选项指定纬度和经度以计算日出和日落时间:redshift -l LAT:LON
    • 例如:redshift -l 37.8:-122.4(设定位置为旧金山)
  4. 调整亮度:
    • 使用-m选项启用亮度调整模式:redshift -m METHOD
    • 方法包括randr(默认值)和vidmode
  5. 调整亮度变化速度:
    • 使用-r选项指定亮度变化速度(单位为小时):redshift -r SPEED
  6. 自定义配置文件:
    • 使用-c选项指定自定义配置文件的路径:redshift -c /path/to/config
  7. 显示调试信息:
    • 使用-v选项显示详细的调试信息:redshift -v

以上是一些常见的redshift命令选项和用法示例。请注意,redshift命令需要正确配置和运行,以便根据位置和时间自动调整屏幕颜色温度。您可以根据自己的需求和喜好来调整命令的参数,以达到最佳的视觉效果。

curl

  • 在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具。支持文件的上传和下载,是综合传输工具,但是按照传统,习惯称curl为下载工具
  • 参数
    • -f / --fail : 连接失败时不显示http错误
    • -s / --silent : 静音模式,不输出任何东西
    • -S / --show-error : 当与-s一起使用时,如果curl失败,curl将显示一条错误消息
    • -L / --location : (HTTP/HTTPS)跟踪重定向。如果服务器报告请求页面已移动到另一个位置,此选项将使curl在新位置上重做请求

在Linux中,curl命令是一个功能强大的网络工具,用于与服务器进行数据交互。它支持多种协议,包括HTTP、HTTPS、FTP、SMTP等,并可以执行各种操作,如下载文件、发送请求、上传文件等。

以下是curl命令的一般语法:

1
curl [options] [URL]

其中,options是可选的一些选项,用于配置curl的行为,URL是要访问的目标地址。

以下是一些常见的curl命令选项和用法:

  1. 发送HTTP GET请求并输出响应内容:
    1
    
    curl http://example.com
    

    此命令将向http://example.com发送HTTP GET请求,并将响应内容输出到终端。

  2. 下载文件到本地:
    1
    
    curl -O http://example.com/file.txt
    

    此命令将从http://example.com/file.txt下载文件,并保存到当前目录下的file.txt文件。

  3. 发送POST请求并传递参数:
    1
    
    curl -d "param1=value1&param2=value2" -X POST http://example.com/api
    

    此命令将向http://example.com/api发送HTTP POST请求,并将参数param1=value1&param2=value2作为请求体发送。

curl命令还支持其他许多选项,如设置请求头、设置超时时间、处理重定向等。

使用curl命令可以方便地进行各种网络操作,如获取API数据、下载文件、测试网络连接等。它是一种非常强大和灵活的工具,广泛应用于开发、调试和自动化脚本等场景。


curl –data-binary

curl 是一个命令行工具,用于进行 HTTP 请求。--data-binary 选项用于在 HTTP POST 请求中发送二进制数据作为请求体。以下是对该选项的详细解释:

当你在 curl 中使用 --data-binary 选项时,你需要提供要发送的数据作为请求体。这些数据可以是二进制数据,即可以包含非文本字符或不适合解释为纯文本的格式。例如,它可以是图像文件、视频文件或任何其他类型的二进制数据。

--data-binary 选项期望你在命令行上直接指定数据,通常需要使用引号将其括起来,以保留任何特殊字符或格式。以下是一个示例:

1
curl --data-binary "@文件名" URL

在上面的示例中,@文件名 表示包含要发送的二进制数据的文件路径。@ 符号告诉 curl 读取文件的内容并将其用作请求体。

另外,你也可以直接在命令行上内联指定二进制数据,而无需使用文件:

1
curl --data-binary "二进制数据" URL

在上面的示例中,"二进制数据" 表示你要发送的实际二进制数据。如果需要,确保正确编码数据,特别是如果数据包含可能被命令行解释器解释为特殊字符的字符。

curl 使用 --data-binary 选项发送 HTTP 请求时,默认情况下会将 Content-Type 头设置为 application/octet-stream。这向服务器表明请求体包含未知或未指定类型的二进制数据。如果需要指定其他内容类型,可以使用 --header 选项设置适当的头部。

值得注意的是,--data-binarycurl 中的 --data 选项是不同的。--data 选项用于将数据作为请求体发送,但它将数据视为纯文本,进行字符编码和特殊字符解释。相比之下,--data-binary 保留了数据的二进制特性,没有进行任何修改。

请记得将 “文件名” 替换为实际的文件路径,或将 “二进制数据” 替换为要发送的二进制数据,并将 “URL” 替换为要发送请求的服务器的 URL。

xdg-user-dirs-upate

  • 该命令会读取配置文件/etc/xdg/user-dirs.defaults,并在$HOME下创建一整套默认的经本地化的用户目录

xdg-user-dirs-update命令是一个用于更新用户目录的工具,它在Linux系统中用于管理用户的标准目录,例如桌面、下载、文档、音乐、图片等目录。

在Linux系统中,用户目录的路径通常存储在~/.config/user-dirs.dirs文件中。xdg-user-dirs-update命令用于根据配置文件中定义的规则,更新用户目录的路径和名称。

以下是xdg-user-dirs-update命令的一般语法:

1
xdg-user-dirs-update

运行xdg-user-dirs-update命令将读取~/.config/user-dirs.dirs文件中的配置信息,并根据配置更新用户目录的路径和名称。

~/.config/user-dirs.dirs文件的示例内容如下:

1
2
3
4
5
6
XDG_DESKTOP_DIR="$HOME/Desktop"
XDG_DOWNLOAD_DIR="$HOME/Downloads"
XDG_DOCUMENTS_DIR="$HOME/Documents"
XDG_MUSIC_DIR="$HOME/Music"
XDG_PICTURES_DIR="$HOME/Pictures"
XDG_VIDEOS_DIR="$HOME/Videos"

上述配置定义了标准的用户目录路径,如桌面、下载、文档、音乐、图片和视频目录。

运行xdg-user-dirs-update命令后,它将根据配置文件的内容,自动创建相应的目录,并将用户的默认目录路径设置为配置文件中定义的路径。

xdg-user-dirs-update命令通常在用户登录时自动执行,确保用户的标准目录存在且正确设置。

gnome-screensaver-command

gnome-screensaver-command 是用于与 GNOME 屏幕保护程序交互的命令行工具。它允许你控制屏幕保护程序的状态、设置和操作。

以下是一些常用的 gnome-screensaver-command 命令及其功能:

  • gnome-screensaver-command -a:激活屏幕保护程序。这会立即启动屏幕保护程序并锁定屏幕,要解锁屏幕,你需要提供用户密码。
  • gnome-screensaver-command -d:禁用屏幕保护程序。这会关闭屏幕保护程序的自动启动和锁定屏幕的功能。
  • gnome-screensaver-command -q:查询屏幕保护程序的状态。它会返回屏幕保护程序是否激活和屏幕是否锁定的信息。
  • gnome-screensaver-command -l:锁定屏幕。这会立即锁定屏幕,要解锁屏幕,你需要提供用户密码。

这些是 gnome-screensaver-command 命令的一些示例。通过使用不同的选项,你可以进行更多的配置和操作,如设置屏幕保护程序的超时时间、配置锁定屏幕的效果等。

需要注意的是,gnome-screensaver-command 命令仅在使用 GNOME 桌面环境的 Linux 系统中可用。对于其他桌面环境或窗口管理器,可能有不同的命令或工具来控制屏幕保护程序。

希望这个解释对你有帮助!如有需要,请随时提问。


pulseaudio

PulseAudio 是 Linux 上广泛使用的音频服务器和音频子系统。它提供了许多命令行工具来管理和控制音频设备、音频流和音量等。下面是一些常用的 PulseAudio 命令及其详解:

  1. pacmdpacmd 是 PulseAudio 的命令行控制界面,可以用于交互式地管理和监视 PulseAudio。通过输入 pacmd 进入交互模式,然后可以使用以下命令:

    • list-sinks:列出所有可用的音频输出设备(音频输出设备称为 “sink”)。

    • list-sources:列出所有可用的音频输入设备(音频输入设备称为 “source”)。

    • list-clients:列出所有当前连接到 PulseAudio 的客户端应用程序。

    • set-default-sink:设置默认的音频输出设备。

    • set-default-source:设置默认的音频输入设备。

    • set-sink-volume:设置音频输出设备的音量。

    • set-source-volume:设置音频输入设备的音量。

    • exit:退出 pacmd 交互模式。

  2. pactlpactl 是 PulseAudio 的控制命令行工具,用于控制 PulseAudio 的运行状态和配置。下面是一些常用的 pactl 命令:

    • pactl list:列出当前 PulseAudio 状态的概览,包括音频设备、音频流和音量等信息。

    • pactl set-sink-volume:设置音频输出设备的音量。

    • pactl set-source-volume:设置音频输入设备的音量。

    • pactl set-default-sink:设置默认的音频输出设备。

    • pactl set-default-source:设置默认的音频输入设备。

    • pactl suspend:暂停或恢复 PulseAudio 服务器。

    • pactl exit:停止 PulseAudio 服务器。

  3. pavucontrolpavucontrol 是 PulseAudio 的图形用户界面控制面板,用于图形化地管理和控制 PulseAudio。可以通过命令行运行 pavucontrol 启动它。

    pavucontrol 提供了一个用户友好的界面,可以查看和调整每个应用程序的音频流、音量和音频设备等设置。

这些命令只是 PulseAudio 提供的一部分工具和功能。你可以根据需要查阅相关文档和手册,或者使用命令的 --help 选项获取更详细的命令说明和选项信息。


alsamixer

alsamixer 是 Linux 上用于调整 ALSA(Advanced Linux Sound Architecture)音频驱动的命令行工具。它提供了一个终端界面,允许你调整音频设备的音量、通道设置和其他音频参数。下面是一些常用的 alsamixer 命令及其详解:

  1. alsamixer:直接运行 alsamixer 命令将打开一个终端窗口,显示当前音频设备的音量控制界面。

    • 使用左右箭头键切换不同的音频通道(如果有多个通道可用)。
    • 使用上下箭头键调整当前通道的音量。
    • 使用空格键切换静音状态。
    • 使用 Esc 键退出 alsamixer
  2. alsamixer -c <card>:使用 -c 选项指定要控制的音频设备(声卡)。可以通过 <card> 参数指定声卡的编号或标识符。例如,alsamixer -c 0alsamixer -c hw:0

  3. alsamixer -V <view>:使用 -V 选项指定要显示的视图。视图可以是 Playback(播放),Capture(捕获)或 All(全部)。例如,alsamixer -V Capture 将只显示捕获设备的音量控制界面。

  4. alsamixer -D <device>:使用 -D 选项指定要控制的特定音频设备。可以通过 <device> 参数指定设备的名称或标识符。例如,alsamixer -D hw:0,0

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

通过 alsamixer,你可以调整音频设备的音量、平衡、增益和其他音频控制参数。请注意,使用 alsamixer 进行的更改是实时的,不会永久保存。如果你希望在系统启动时应用特定的音频设置,可能需要考虑其他方法,例如 ALSA 的配置文件或其他工具。

在使用 alsamixer 时,如果遇到问题或需要进一步了解每个选项的详细说明,可以参考 ALSA 的官方文档或手册。



aplay

aplay 是 Linux 系统上的命令行音频播放工具,它使用 ALSA(Advanced Linux Sound Architecture)来播放音频文件。下面是对 aplay 命令的详细解释:

  1. aplay <file>:直接运行 aplay 命令并指定音频文件作为参数,将会播放该音频文件。例如,aplay audio.wav 将会播放名为 “audio.wav” 的音频文件。

  2. aplay -l:使用 -l 选项可以列出系统上可用的音频设备(声卡)列表。它会显示设备的编号、名称和硬件信息等。

  3. aplay -D <device>:使用 -D 选项可以指定要使用的音频设备。可以通过 <device> 参数指定设备的名称或标识符。例如,aplay -D hw:0,0 audio.wav 将会使用 hw:0,0 设备播放 “audio.wav” 文件。

  4. aplay -f <format>:使用 -f 选项可以指定音频文件的格式。可以通过 <format> 参数指定格式,如 S16_LES24_LEfloat_le 等。

  5. aplay -r <rate>:使用 -r 选项可以指定音频文件的采样率。可以通过 <rate> 参数指定采样率的数值。

  6. aplay -c <channels>:使用 -c 选项可以指定音频文件的通道数。可以通过 <channels> 参数指定通道数的数值。

  7. aplay -t <duration>:使用 -t 选项可以指定音频文件的播放时长。可以通过 <duration> 参数指定播放时长的数值和单位,如 10s2m 等。

  8. aplay -q:使用 -q 选项可以启用静默模式,即不显示播放进度和其他信息。

  9. aplay --help:使用 --help 选项可以显示 aplay 命令的帮助信息,包括可用选项和用法示例。

这些选项只是 aplay 命令的一部分,你可以根据需要查阅 aplay 的手册页或使用命令的 --help 选项获取更详细的命令说明和选项信息。

通过 aplay,你可以在 Linux 系统上播放音频文件。它对于测试音频设备、验证音频配置和简单的音频播放任务非常有用。


modprobe

modprobe 是 Linux 系统上的一个命令行工具,用于动态加载和卸载内核模块(驱动程序)。它可以根据模块的名称自动加载相应的内核模块,并处理模块之间的依赖关系。下面是对 modprobe 命令的详细解释:

  1. modprobe <module>:直接运行 modprobe 命令并指定模块名称作为参数,将会尝试加载该模块。例如,modprobe snd_usb_audio 将会加载名为 “snd_usb_audio” 的内核模块。

  2. modprobe -r <module>:使用 -r 选项可以卸载指定的内核模块。例如,modprobe -r snd_usb_audio 将会卸载名为 “snd_usb_audio” 的内核模块。

  3. modprobe -l:使用 -l 选项可以列出所有可用的内核模块。它会显示模块的路径和名称。

  4. modprobe -a <module>:使用 -a 选项可以加载指定模块及其所有依赖的模块。它会自动处理模块之间的依赖关系。

  5. modprobe -c:使用 -c 选项可以显示当前加载的内核模块的配置信息。它会列出每个模块的配置参数。

  6. modprobe -n <module>:使用 -n 选项可以检查指定模块是否可加载,但不实际加载它。它会输出一个表示模块是否可加载的消息。

  7. modprobe -v <module>:使用 -v 选项可以显示详细的加载信息,包括加载的模块及其依赖关系。

  8. modprobe -d <directory>:使用 -d 选项可以指定要搜索模块的目录。默认情况下,modprobe 将搜索默认的模块目录。

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

通过 modprobe 命令,你可以在 Linux 系统上动态加载和卸载内核模块。这对于根据需要加载所需的驱动程序或模块、解决硬件兼容性问题以及进行模块调试和配置非常有用。请注意,你可能需要以超级用户权限(root 或使用 sudo 命令)运行 modprobe 命令,以便加载或卸载内核模块。

希望这些信息能帮助你理解和使用 modprobe 命令。如有需要,你可以参考相关文档或手册以获取更多详细信息。


insmod

insmod 是 Linux 系统上的一个命令行工具,用于手动加载内核模块(驱动程序)到内核中。它可以加载指定的内核模块并将其插入当前运行的内核中。下面是对 insmod 命令的详细解释:

  1. insmod <module>:直接运行 insmod 命令并指定模块名称作为参数,将会尝试加载该模块。例如,insmod mymodule.ko 将会加载名为 “mymodule.ko” 的内核模块。

  2. insmod -f <module>:使用 -f 选项可以强制加载指定的内核模块,即使模块已经加载过。注意,这可能导致冲突或意外行为,因此谨慎使用该选项。

  3. insmod -r <module>:使用 -r 选项可以卸载指定的内核模块。注意,使用 insmod -r 只会从内核中卸载模块,而不会处理模块的依赖关系。因此,如果有其他模块依赖于该模块,则可能导致系统不稳定。

  4. insmod -l <module>:使用 -l 选项可以指定模块文件的路径,而不是使用当前目录。例如,insmod -l /path/to/modules/mymodule.ko 将加载指定路径下的内核模块。

  5. insmod -s <symbol>:使用 -s 选项可以指定要加载的模块中的符号(函数或变量)。这在需要仅加载模块中的特定符号时很有用。

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

需要注意的是,使用 insmod 命令手动加载内核模块需要具有超级用户权限(root 或使用 sudo 命令)。加载模块前,你需要确保该模块的二进制文件(.ko 文件)存在,并且与当前运行的内核版本兼容。

希望这些信息能帮助你理解和使用 insmod 命令。如有需要,你可以参考相关文档或手册以获取更多详细信息。


ubuntu-drivers devices

ubuntu-drivers devices 是一个 Ubuntu 系统上的命令,用于列出可用的硬件驱动程序。它会扫描系统上的硬件设备,并显示适用于这些设备的推荐和可选驱动程序。下面是对 ubuntu-drivers devices 命令的详细解释:

  1. ubuntu-drivers devices:直接运行 ubuntu-drivers devices 命令将列出系统中的硬件设备以及可用的驱动程序信息。

  2. 输出格式:命令的输出结果包含了设备的厂商、型号和设备标识符等信息,以及推荐和可选驱动程序的名称。

  3. 推荐驱动程序:在输出结果中,推荐的驱动程序被标记为 “recommended”,表示它们是最适合该设备的驱动程序。这些驱动程序通常由 Ubuntu 官方维护,并且在兼容性和稳定性方面经过测试。

  4. 可选驱动程序:在输出结果中,可选的驱动程序被标记为 “proprietary”,表示它们是由硬件厂商提供的专有驱动程序。这些驱动程序可能提供更好的性能或功能,但可能不像推荐驱动程序那样经过广泛测试。

通过运行 ubuntu-drivers devices 命令,你可以获取有关系统硬件设备和适用驱动程序的信息。这对于了解系统硬件配置、选择适当的驱动程序以及解决硬件兼容性问题非常有用。

希望这些信息能帮助你理解和使用 ubuntu-drivers devices 命令。如有需要,你可以参考相关文档或手册以获取更多详细信息。


gsettings

gsettings 是一个命令行工具,用于在 Ubuntu 中访问和修改 GNOME 桌面环境的设置。它允许你通过命令行方式读取和更改各种系统设置、应用程序设置以及桌面外观和行为等。

下面是一些 gsettings 命令的常见用法和解释:

  1. gsettings list-schemas:列出可用的模式(schemas)。这将显示所有可用的模式名称,你可以使用这些模式名称来查询和修改相关设置。

  2. gsettings list-keys SCHEMA:列出给定模式(SCHEMA)下的所有键(keys)。使用具体的模式名称替换 SCHEMA 部分来查看该模式下的所有可用键。

  3. gsettings get SCHEMA KEY:获取给定模式(SCHEMA)下给定键(KEY)的值。这可用于查看当前设置的值。

  4. gsettings set SCHEMA KEY VALUE:将给定模式(SCHEMA)下给定键(KEY)的值设置为指定的值(VALUE)。使用这个命令可以修改设置的值。

  5. gsettings reset SCHEMA KEY:重置给定模式(SCHEMA)下给定键(KEY)的值为默认值。

  6. gsettings range SCHEMA KEY:显示给定模式(SCHEMA)下给定键(KEY)的值的允许范围。

需要注意的是,SCHEMA 是模式的名称,而 KEY 是模式中的键的名称。你可以使用 list-schemaslist-keys 命令来获取可用的模式和键的列表。

举例来说,org.gnome.desktop.background 是一个常用的模式,用于控制桌面背景相关的设置。你可以使用类似以下的命令来修改桌面背景图片:

1
gsettings set org.gnome.desktop.background picture-uri 'file:///path/to/image.jpg'

这会将桌面背景设置为指定路径下的图像文件。

gsettings 提供了一种方便的方式来从命令行管理和调整 GNOME 桌面环境的各种设置。你可以查阅相关的文档和手册来获取更多关于 gsettings 命令的详细信息和示例用法。

nautilus

nautilus 是 Linux 系统中一个常用的文件管理器,它提供了图形化界面来浏览和管理文件和文件夹。下面是对 nautilus 命令的详细解释:

  1. 启动 Nautilus: 可以在终端中输入 nautilus 命令来启动 Nautilus 文件管理器。它会打开一个新的窗口显示当前用户的主目录。

  2. 打开指定目录: 可以使用 nautilus 命令并指定目录路径来打开特定的目录。例如,nautilus /path/to/directory 会打开指定路径的目录。

  3. 图形化界面操作: Nautilus 提供了一系列图形化界面操作,包括文件和文件夹的复制、剪切、粘贴、重命名、删除等。可以使用鼠标右键单击文件或文件夹,或使用菜单栏的选项来执行这些操作。

  4. 查看和排序文件列表: Nautilus 允许你以不同的方式查看和排序文件列表。你可以切换到图标视图、列表视图或压缩视图,并可以根据名称、大小、类型等进行排序。

  5. 搜索文件: Nautilus 提供了搜索功能,可以通过菜单栏中的搜索栏输入关键字来搜索文件和文件夹。

  6. 自定义文件管理器: Nautilus 允许你自定义文件管理器的外观和行为。你可以通过菜单栏中的“偏好设置”选项访问各种设置选项,如外观、行为、文件预览等。

请注意,nautilus 命令通常用于在桌面环境中打开 Nautilus 文件管理器。如果你使用的是不带桌面环境的服务器版本的 Linux,可能无法直接运行 nautilus 命令。在服务器上,你可能需要使用其他基于终端的文件管理工具。


xxd

  • 简介:
    • xxd 是一个在 Linux 系统中用于十六进制和ASCII码转换的命令行工具。它可以将文件或输入的数据转换为十六进制和ASCII码的表示形式,或者将十六进制和ASCII码的数据还原为二进制格式
  • 语法
    1
    
    xxd [选项] [文件名]
    
  • 选项:
    • -b:以二进制格式显示数据。
    • -c <列数>:指定每行显示的列数。
    • -e:以大端字节序(big-endian)格式显示数据。
    • -g <字节数>:指定每个显示的数据块的字节数。
    • -l <长度>:指定要显示的字节数。
    • -s <偏移量>:指定要从输入中开始显示的偏移量。
    • -u:以大写字母表示十六进制数值。
    • -v:以完整的输出格式显示,不省略重复的行。

hexdump

  • 简介:
    • hexdump 命令在 Linux 中用于以十六进制和ASCII码形式显示文件或输入的内容。它可以将二进制文件或数据转换为人可读的格式
  • 语法:
    1
    
    hexdump [选项] [文件名]
    
  • 选项:
    • -C:以十六进制和ASCII码形式显示内容,并在每行末尾显示对应的ASCII字符。
    • -b:以八进制格式显示内容。
    • -c:以字符形式显示内容。
    • -d:以十进制格式显示内容。
    • -e:指定自定义的格式字符串来显示内容。
    • -n <长度>:指定要显示的字节数。
    • -s <偏移量>:指定要从输入中开始显示的偏移量。
    • -v:以完整的输出格式显示,不省略重复的行。
    • -x:以十六进制格式显示内容。

exiftool

  • 简介:
    • 在 Linux 上可以使用 exiftool 命令来查看图片的元数据。你可以在终端中运行以下命令来获取图片的详细元数据:
    • exiftool image.jpg
  • 注:
    • 安装依赖包libimage-exiftool-perl: sudo apt install libimage-exiftool-perl

linux下,常用的查看动态库的符号链接工具

  1. nm:nm 命令用于列出目标文件或共享库中的符号信息。可以使用 nm 命令来查看动态库中的符号链接。例如,要查看一个动态库文件(如libexample.so)中的符号链接,可以运行以下命令:
    1
    
    nm -D libexample.so
    

    这将显示动态库中的所有符号及其链接信息。

  2. objdump:objdump 命令用于显示目标文件或可执行文件的信息,包括符号表。可以使用 objdump 命令来查看动态库中的符号链接。例如,要查看一个动态库文件中的符号链接,可以运行以下命令:
    1
    
    objdump -T libexample.so
    

    这将显示动态库中的符号链接表。

  3. readelf:readelf 命令用于显示 ELF(Executable and Linkable Format)格式文件的信息,包括符号表。可以使用 readelf 命令来查看动态库中的符号链接。例如,要查看一个动态库文件中的符号链接,可以运行以下命令:
    1
    
    readelf -s libexample.so
    

    这将显示动态库中的符号表,其中包含符号链接信息。

Linux 常用命令全拼

  • 参考网站:https://www.runoob.com/w3cnote/linux-command-full-fight.html

eog

  • 简介:
    • eog 是 Linux 系统中的一个命令行工具,用于打开和显示图像文件。它是 Eye of GNOME (EOG) 图像查看器的命令行接口
  • 语法:
    1
    
    eog [选项] [图像文件]
    
  • 选项:
    • -f 或 –fullscreen:以全屏模式打开图像。
    • -g 或 –geometry=宽度x高度:指定窗口的初始大小。
    • -n 或 –new-instance:在新的 EOG 实例中打开图像。
    • -w 或 –disable-gallery:禁用图库模式
  • 示例:
    1
    
    eog image.jpg
    
  • 注:
    • 当你在终端中运行 eog 命令并指定一个图像文件作为参数时,它会打开 Eye of GNOME (EOG) 图像查看器,并在窗口中显示指定的图像。你可以使用鼠标滚轮来缩放图像,使用工具栏进行放大、缩小、旋转等操作。还可以通过菜单栏中的选项进行图像的保存、打印和设置
    • eog 命令提供了一个快速和方便的方式来查看图像文件,尤其适用于图像的预览和简单的编辑操作。它支持多种常见的图像格式,如 JPEG、PNG、GIF 等
    • 需要注意的是,eog 命令通常用于在图形化环境下打开图像文件。如果你在没有图形界面的终端环境中运行 eog 命令,可能会出现错误或无法正常工作

查看linux服务器开机自启动服务

  • 命令:
    • systemctl list-unit-files
  • 参数:
    • 其中STATE显示为enable字样的服务,即可开机自启动的服务
  • 查处的内容过多,可通过grep 命令进行筛选
    • systemctl list-unit-files | grep firewalld

开启或关闭开机自启动

  • 关闭开机自启动:
    • systemctl disable 服务name
  • 开启开机自启动:
    • systemctl enable 服务name

getconf

  • 简介:
    • 查询保存系统配置的变量
  • 参数
    • -a : 显示所有当前系统的配置变量和变量的值
    • -v :
    • system_var : 查询指定配置变量的值
    • path_var : 参数是一个通过pathconf命令定义的系统配置变量

清空文件内容

  • 通过重定向到 Null 来清空文件内容
    • > access.log
  • 使用 ‘true’ 命令重定向来清空文件
    • 下面我们将使用 : 符号,它是 shell 的一个内置命令,等同于 true 命令,它可被用来作为一个 no-op(即不进行任何操作)
    • : > access.log
    • true > access.log
  • 使用 cat/cp/dd 实用工具及 /dev/null 设备来清空文件
    • 在 Linux 中, null 设备基本上被用来丢弃某个进程不再需要的输出流,或者作为某个输入流的空白文件,这些通常可以利用重定向机制来达到。
    • 所以 /dev/null 设备文件是一个特殊的文件,它将清空送到它这里来的所有输入,而它的输出则可被视为一个空文件。
    • 另外,你可以通过使用 cat 命令 显示 /dev/null 的内容然后重定向输出到某个文件,以此来达到清空该文件的目的。
    • cat /dev/null > access.log
  • 下面,我们将使用 cp 命令 复制 /dev/null 的内容到某个文件来达到清空该文件的目的,具体如下所示:
    • cp /dev/null access.log
  • 而下面的命令中, if 代表输入文件,of 代表输出文件。
    • dd if=/dev/null of=access.log
  • 使用 echo 命令清空文件
    • echo "" > access.log
    • echo > access.log
  • 注意:你应该记住空字符串并不等同于 null 。字符串表明它是一个具体的事物,只不过它的内容可能是空的,但 null 则意味着某个事物并不存在
  • 基于这个原因,当你将 echo 命令 的输出作为输入重定向到文件后,使用 cat 命令 来查看该文件的内容时,你将看到一个空白行(即一个空字符串)
  • 要将 null 做为输出输入到文件中,你应该使用 -n 选项,这个选项将告诉 echo 不再像上面的那个命令那样输出结尾的那个新行。

  • 使用 truncate 命令来清空文件内容
    • truncate 可被用来将一个文件缩小或者扩展到某个给定的大小
    • 你可以利用它和 -s 参数来特别指定文件的大小。要清空文件的内容,则在下面的命令中将文件的大小设定为 0:
      • truncate -s 0 access.log

fstab

fstab(文件系统表)是一个Linux系统配置文件,用于定义系统在启动时挂载文件系统的方式和规则。它通常位于/etc/fstab路径下,由系统管理员进行编辑和管理。

fstab文件中的每一行表示一个要挂载的文件系统,每个字段之间用空格或制表符分隔。以下是fstab文件的常用字段和说明:

1
<文件系统>  <挂载点>  <文件系统类型>  <挂载选项>  <dump>  <pass>
  • <文件系统>:要挂载的设备或网络位置。可以是设备名称(如/dev/sda1)、UUID(Universally Unique Identifier)、标签(Label)或网络位置(如//server/share)。
  • <挂载点>:设备将被挂载到的目录路径。
  • <文件系统类型>:设备的文件系统类型,如ext4ntfsnfs等。
  • <挂载选项>:指定挂载设备时的选项,如ro(只读)、rw(读写)、noauto(不自动挂载)、user(允许普通用户挂载)等。
  • <dump>:备份标志。如果设置为0,表示不会被备份;如果设置为1,表示会被备份。
  • <pass>:检查顺序。用于fsck命令检查文件系统的顺序。如果设置为0,表示不会被检查。

示例fstab文件条目:

1
2
/dev/sda1   /mnt/data   ext4   defaults   0   2
//server/share   /mnt/nfs   nfs   defaults   0   0

上述示例中,第一行表示将/dev/sda1设备挂载到/mnt/data目录,使用ext4文件系统和默认挂载选项。dump设置为0pass设置为2。第二行表示将网络位置//server/share挂载到/mnt/nfs目录,使用NFS文件系统和默认挂载选项,不进行备份和检查。

要编辑fstab文件,请使用具有管理员权限的文本编辑器,例如vinano。请谨慎编辑fstab文件,确保提供正确的设备和挂载选项,以免影响系统的正常启动和文件系统的挂载。


mffs.ext4

mkfs.ext4是一个Linux命令,用于创建ext4文件系统(第四个扩展文件系统)在指定的设备上。

以下是mkfs.ext4命令的常用选项和用法:

1
mkfs.ext4 [options] <device>

常用选项:

  • -b block-size:指定文件系统的块大小,默认为4096字节。
  • -L volume-label:为文件系统设置卷标。
  • -m reserved-blocks-percentage:指定保留块的百分比,用于系统管理员。
  • -T usage-type:设置文件系统的用途类型,如news, backup, web, 等。
  • -O feature:启用指定的文件系统特性,如^has_journal表示不使用日志功能。
  • -E extended-option:设置扩展选项,如stride, stripe-width, nodiscard, 等。

示例用法:

  1. 创建ext4文件系统:
1
mkfs.ext4 /dev/sdb1

上述命令将在设备/dev/sdb1上创建一个ext4文件系统,默认使用4096字节的块大小。

  1. 创建具有指定块大小的ext4文件系统:
1
mkfs.ext4 -b 8192 /dev/sdb1

上述命令将在设备/dev/sdb1上创建一个ext4文件系统,并指定块大小为8192字节。

  1. 为ext4文件系统设置卷标:
1
mkfs.ext4 -L MyVolume /dev/sdb1

上述命令将在设备/dev/sdb1上创建一个ext4文件系统,并设置卷标为”MyVolume”。

  1. 启用特定的文件系统特性:
1
mkfs.ext4 -O ^has_journal /dev/sdb1

上述命令将在设备/dev/sdb1上创建一个ext4文件系统,并禁用日志功能。

mkfs.ext4命令用于创建ext4文件系统之前,请确保已经正确地指定了要创建文件系统的设备。创建文件系统将格式化该设备并擦除其上的所有数据,请谨慎操作。


Linux下视频剪辑,录制工具

  • kazam
    • 录制屏幕:apt-get install -y kazam
    • 缺点:保存的视频,在vlc打开看不到视频,传到手机剪影也不能剪辑
  • openshot
    • apt-get install -y openshot-qt
    • 和pr相似
  • simplescreenrecorder
    • 录制屏幕:apt-get install -y simplescreenrecorder
    • 优点:相比于kazam,其录制的视频,容量小,vlc支持播放

屏保命令和锁屏命令

  • gnome-screensaver-command -a – 显示屏保但是不锁定,移动鼠标或敲击键盘后自动消失

  • gnome-screensaver-command -l – 显示屏保并锁定,移动鼠标或敲击键盘弹出密码框

  • sudo loginctl list-sessions – 列出当前所有的会话(默认命令)

  • sudo loginctl lock-session [ID] – 锁定指定会话(如果会话支持屏幕锁)或者当前调用者的会话

  • sudo loginctl unlock-session [ID] – 解锁指定会话(如果会话支持屏幕锁)或者当前调用者的会话

  • sudo loginctl lock-sessions – 锁定全部会话

  • sudo loginctl unlock-sessions – 解锁全部会话

  • ubuntu18 锁屏快捷键 – Super + L


fdisk

fdisk是一个Linux命令行工具,用于对磁盘分区进行管理和操作。它可以创建、删除、调整磁盘分区以及显示磁盘分区信息。

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

1
fdisk [options] <device>

常用选项:

  • -l:列出指定设备或所有设备的分区表信息。
  • -s:显示指定设备或所有设备的分区大小。
  • -u:以扇区而不是柱面为单位显示分区信息。
  • -c:与-l选项一起使用时,使用紧凑的格式显示分区表信息。
  • -p:与-l选项一起使用时,使用可打印的格式显示分区表信息。
  • -n:创建一个新的分区。
  • -d:删除一个分区。
  • -t:更改分区的类型。

示例用法:

  1. 列出所有设备的分区表信息:
1
fdisk -l

上述命令将列出所有设备的分区表信息,包括设备名称、分区大小、分区类型等。

  1. 列出指定设备的分区表信息:
1
fdisk -l /dev/sda

上述命令将列出设备/dev/sda的分区表信息。

  1. 创建新的分区:
1
fdisk /dev/sdb

上述命令将打开设备/dev/sdb的分区表,并引导您通过一系列的交互式步骤来创建新的分区。

  1. 删除分区:
1
2
3
fdisk /dev/sdc
Command (m for help): d
Partition number (1-4): 1

上述命令将打开设备/dev/sdc的分区表,并提示您输入要删除的分区号。

  1. 更改分区类型:
1
2
3
4
fdisk /dev/sdd
Command (m for help): t
Partition number (1-4): 1
Hex code (type L to list codes): 83

上述命令将打开设备/dev/sdd的分区表,并提示您输入要更改的分区号和新的分区类型。

fdisk命令涉及对磁盘分区进行操作,因此需要以root权限运行。请谨慎操作,以免对系统造成损害。


sysstat

sysstat是一个性能监控工具集,它提供了一系列的命令行工具,用于收集和分析系统的性能数据。这些工具可以帮助您监视系统的资源利用率、性能瓶颈和运行状况。

sysstat包括以下常用命令:

  1. sar:用于收集、报告和存档系统活动信息,包括CPU利用率、内存使用、磁盘IO、网络流量等。示例用法:sar -u显示CPU利用率,sar -r显示内存使用情况,sar -d显示磁盘IO统计。

  2. iostat:用于报告和存档系统磁盘IO活动的统计信息,包括每个磁盘的读写速度、IO等待时间、IO请求队列长度等。示例用法:iostat -x显示详细的磁盘IO统计。

  3. mpstat:用于报告和存档每个CPU的利用率和其他统计信息,包括用户时间、系统时间、空闲时间等。示例用法:mpstat -P ALL显示每个CPU的利用率。

  4. pidstat:用于报告和存档进程的CPU利用率、内存使用和IO统计。示例用法:pidstat -p <pid>显示特定进程的统计信息。

  5. ifstat:用于报告和存档网络接口的流量统计,包括接收和发送的数据量。示例用法:ifstat -a显示所有网络接口的流量统计。

这些命令都是通过收集系统性能数据并以可读的格式进行报告。您可以根据具体需求选择适合的命令,并结合不同的选项来获取所需的性能信息。

sysstat工具集在大多数Linux发行版中都可用,但需要先安装。您可以使用包管理器(如apt、yum等)来安装sysstat软件包。


pstree

  • pstree,以树状图的方式展现进程之间的派生关系,显示效果比较直观
  • 参数
    • a : 显示每个程序的完整指令,包含路径,参数或者是常驻服务的标示
    • c : 不使用精简表示法
    • G : 使用VT100终端机的列绘图字符
    • n : 用程序识别码排序,预设是以程序名称来排序
    • p : 显示程序识别码
    • u : 显示用户名称

杀死指定进程

  • kill -9 process_pid

wscat 详解

wscat 是一个命令行工具,用于测试和调试 WebSocket 连接。它提供了一种简单的方式来建立 WebSocket 连接并进行数据交换。以下是 wscat 命令的常用选项和用法的详解:

语法

1
wscat [options] [url]

选项

  • -l, --listen: 以服务器模式监听指定的地址和端口。
  • -c, --connect: 建立 WebSocket 连接到指定的 URL。
  • -s, --ssl: 使用 SSL 加密连接。
  • -k, --insecure: 忽略 SSL 证书验证。
  • -H, --header: 添加自定义的请求头。
  • -n, --no-check: 禁用 WebSocket 协议验证。
  • -P, --pipe: 将标准输入的数据发送到 WebSocket 连接。
  • -t, --timestamp: 在控制台输出消息的时间戳。
  • --host: 指定自定义的 Host 头部。

用法示例

  1. 连接到 WebSocket 服务器:
    1
    
    wscat -c ws://example.com
    
  2. 连接到使用 SSL 的 WebSocket 服务器:
    1
    
    wscat -c wss://example.com
    
  3. 监听并建立 WebSocket 服务器:
    1
    
    wscat -l 8080
    
  4. 监听并使用 SSL 加密的 WebSocket 服务器:
    1
    
    wscat -l --ssl --ssl-key key.pem --ssl-cert cert.pem
    
  5. 发送消息到 WebSocket 服务器:
    1
    
    wscat -c ws://example.com -P
    
  6. 添加自定义的请求头:
    1
    
    wscat -c ws://example.com -H "Authorization: Bearer token"
    

这些是 wscat 命令的一些常用选项和用法示例。使用这个工具,您可以方便地测试和调试 WebSocket 服务器,发送和接收消息。

请注意,为了使用 wscat 工具,您需要先安装 Node.js 和 npm,然后使用以下命令安装 wscat:

1
2
npm install -g wscat
apt install node-ws

希望这些详解对您有所帮助!如果您有更多问题,请随时提问。

curl 常用选项

curl 命令具有许多选项,可用于定制和控制请求的各个方面。以下是一些常用的 curl 命令选项:

  1. -X, –request: 指定 HTTP 请求方法,如 GET、POST、PUT、DELETE 等。例如:curl -X POST.

  2. -H, –header: 添加请求头。可以使用多个 -H 选项添加多个请求头。例如:curl -H "Content-Type: application/json" -H "Authorization: Bearer token"

  3. -d, –data: 指定请求的数据体(请求体)。用于发送 POST 或 PUT 请求的数据。例如:curl -X POST -d "username=admin&password=123"

  4. -F, –form: 以 multipart/form-data 格式发送表单数据。用于文件上传等场景。例如:curl -F "file=@path/to/file"

  5. -o, –output: 将响应保存到文件。可以指定文件名或路径。例如:curl -o output.txt

  6. -i, –include: 在输出中包含响应头信息。例如:curl -i

  7. -s, –silent: 静默模式,禁止显示进度信息或错误消息。例如:curl -s

  8. -u, –user: 指定用户名和密码进行基本认证。例如:curl -u username:password

  9. -k, –insecure: 忽略 SSL 证书验证,用于处理自签名证书等不受信任的情况。例如:curl -k

  10. -x, –proxy: 指定代理服务器。例如:curl -x http://proxy.example.com:8080

  11. -L, –location: 自动跟随重定向。当服务器返回重定向响应时,自动跳转到新的 URL。例如:curl -L

  12. -c, –cookie: 指定 Cookie。发送请求时携带指定的 Cookie。例如:curl -c cookies.txt

这只是一小部分常用选项,curl 还提供了许多其他选项,如超时设置、身份验证方式、自定义请求头、代理配置等。可以通过 curl --help 命令或查阅 curl 的文档来获取更详细的选项说明和示例。

希望这些常用选项对您有所帮助!如果您有更多问题,请随时提问。

curl 详解

curl 是一个命令行工具和库,用于在各种操作系统上进行网络数据传输。它支持多种协议,包括 HTTP、HTTPS、FTP、SMTP、POP3 等,可以执行各种网络操作,如发送请求、下载文件、上传文件等。以下是有关 curl 的详解:

  1. 发送请求:curl 可以用于发送 HTTP 请求到指定的 URL,并接收服务器的响应。它支持 GET、POST、PUT、DELETE 等常用的 HTTP 方法。

  2. 参数定制:curl 提供了丰富的命令行参数,可以定制请求的各种参数,如请求头、请求体、超时时间、代理等。

  3. 输出控制:curl 可以控制响应输出的格式和内容。默认情况下,它将响应输出到标准输出,但也可以将响应保存到文件或进行其他处理。

  4. 文件传输:curl 可以用于上传和下载文件。通过指定适当的选项,它可以实现文件的上传和下载,支持断点续传等功能。

  5. HTTPS 支持:curl 支持通过 SSL/TLS 加密协议进行安全的 HTTPS 请求。它能够验证服务器的证书,并支持使用客户端证书进行身份验证。

  6. 认证:curl 提供了多种认证方式,如基本认证、摘要认证、Bearer Token 认证等,可以与需要身份验证的服务器进行交互。

  7. 代理支持:curl 可以通过指定代理服务器来转发请求和接收响应。它支持 HTTP、HTTPS、SOCKS4 和 SOCKS5 代理。

  8. 扩展性:curl 是一个功能强大且灵活的工具,还提供了丰富的 API,可以在各种编程语言中使用 curl 库进行网络操作。

curl 是一个跨平台的工具,可在各种操作系统上使用,包括 Linux、macOS、Windows 等。它在命令行环境下使用简单,是开发人员进行网络调试、测试和自动化脚本编写的常用工具之一。

需要注意的是,curl 是一个命令行工具,它的使用方式和具体参数取决于具体的需求和场景。可以通过查阅 curl 的文档和使用示例来深入了解其更多功能和用法。

希望这些详解对 curl 有所帮助!如果您有更多问题,请随时提问。

nmcli 常用选项

在 Linux 系统中,nmcli 是 NetworkManager 的命令行工具,用于配置和管理网络连接。下面是一些常用的 nmcli 命令选项:

  1. nmcli general status:显示 NetworkManager 的状态信息,包括运行状态、活动连接等。

  2. nmcli connection show:显示当前系统上的所有网络连接的状态和详细信息。

  3. nmcli connection up <connection-name>:连接到指定名称的网络连接。

  4. nmcli connection down <connection-name>:断开指定名称的网络连接。

  5. nmcli connection add type <connection-type> con-name <connection-name>:添加一个新的网络连接。

  6. nmcli connection modify <connection-name>:修改现有的网络连接的配置。

  7. nmcli connection delete <connection-name>:删除指定名称的网络连接。

  8. nmcli device status:显示所有网络设备的状态信息,包括设备名称、连接状态等。

  9. nmcli device wifi list:显示可用的 Wi-Fi 网络列表。

  10. nmcli device wifi connect <SSID> password <password>:连接到指定的 Wi-Fi 网络,需要提供 SSID 和密码。

  11. nmcli device show <device-name>:显示指定网络设备的详细信息。

  12. nmcli device disconnect <device-name>:断开指定网络设备的连接。

  13. nmcli radio wifi on:打开 Wi-Fi 无线功能。

  14. nmcli radio wifi off:关闭 Wi-Fi 无线功能。

  15. nmcli monitor:启动 NetworkManager 的监视模式,实时显示网络连接状态的变化。

这些是常用的 nmcli 命令选项,用于在 Linux 系统中配置和管理网络连接。nmcli 还有其他选项和命令,可以通过运行 man nmcli 命令在终端中查看完整的 nmcli 手册以获取更详细的命令说明和选项信息。

请注意,使用 nmcli 需要管理员权限(使用 sudo),以便对网络连接进行配置和管理。

希望这些信息对你有帮助!如果你有更多问题,请随时提问。

nmcli 详解

在 Debian 系统中,nmcli 是 NetworkManager 的命令行工具,用于配置和管理网络连接。下面是一些常用的 nmcli 命令及其详细说明:

  1. 显示网络连接状态和信息:

    1
    
    nmcli connection show
    

    这个命令将显示当前系统上的所有网络连接的状态和详细信息,包括连接名称、类型、设备、IP 地址等。

  2. 添加一个新的网络连接:

    1
    
    nmcli connection add type <connection-type> con-name <connection-name> ifname <interface-name>
    

    在上述命令中,将 <connection-type> 替换为要添加的连接类型(如 ethernet、wifi、vpn 等),<connection-name> 替换为连接的名称,<interface-name> 替换为连接使用的网络接口名称。

  3. 编辑现有的网络连接:

    1
    
    nmcli connection edit <connection-name>
    

    该命令将进入一个交互式编辑模式,允许你编辑指定名称的网络连接的详细配置。你可以更改连接的属性,如 IP 设置、DNS 设置、认证方法等。

  4. 删除一个网络连接:

    1
    
    nmcli connection delete <connection-name>
    

    这个命令将删除指定名称的网络连接。

  5. 连接到一个网络:

    1
    
    nmcli connection up <connection-name>
    

    这个命令将连接到指定名称的网络连接。

  6. 断开一个网络连接:

    1
    
    nmcli connection down <connection-name>
    

    这个命令将断开指定名称的网络连接。

以上是一些常用的 nmcli 命令,用于在 Debian 系统中配置和管理网络连接。nmcli 还有许多其他选项和命令,可以进一步探索和适应特定的网络管理需求。

你可以通过运行 man nmcli 命令在终端中查看 nmcli 的完整文档,以获取更详细的命令说明和选项信息。

请注意,使用 nmcli 需要管理员权限(使用 sudo),以便对网络连接进行配置和管理。

希望这些信息对你有帮助!如果你有更多问题,请随时提问。

livemedia-utils

livemedia-utils 是一个Linux上的开源工具集,用于处理实时流媒体数据。它是由 LIVE555 Streaming Media 开发的,LIVE555 是一个用于流媒体的开源 C++ 库。

以下是关于 livemedia-utils 的一些详解:

  1. 功能:livemedia-utils 提供了一系列命令行工具,用于处理实时流媒体数据。这些工具包括流媒体服务器、流媒体客户端和其他相关实用程序。它们可用于流媒体的播放、录制、转码、传输和调试等。

  2. 命令行工具:livemedia-utils 提供了多个命令行工具,其中一些重要的工具包括:
    • live555MediaServer:一个简单的流媒体服务器,可以提供实时流媒体的播放和转发功能。
    • openRTSP:与上一个问题中提到的 OpenRTSP 工具类似,用于从 RTSP 服务器获取实时流媒体数据。
    • testOnDemandRTSPServer:一个测试用的 RTSP 服务器,可以模拟实时流媒体的播放和控制。
    • MPEG2TransportStreamIndexer:用于索引和检查 MPEG2 Transport Stream(M2TS)文件的工具。
  3. 跨平台支持:livemedia-utils 可以在多个操作系统上运行,包括 Linux、Windows、macOS 等。这使得它成为一个方便且广泛可用的工具,用于处理实时流媒体数据。

  4. 开源和可定制性:livemedia-utils 是开源的,你可以查看其源代码、理解其实现细节,并对其进行定制和扩展,以满足特定需求。

需要注意的是,livemedia-utils 是一个命令行工具集,适用于开发和调试实时流媒体应用程序,以及自动化脚本和批处理任务。如果你需要一个更完整的流媒体服务器或客户端,可能需要考虑其他更专业的流媒体解决方案或框架。


e2fsck

e2fsck是用于检查和修复ext2、ext3和ext4文件系统中的错误的命令。下面是对e2fsck命令的详细解释:

1
e2fsck [选项] 设备

其中,选项是一些可用的标志和参数,设备是要检查和修复的文件系统所在的设备或分区。

常用的选项包括:

  • -p:自动修复不需要人工干预的错误。
  • -y:自动回答”yes”以所有问题,用于无人值守操作。
  • -f:强制运行e2fsck,即使文件系统被标记为已经干净。
  • -c:检查设备上的坏扇区,并将其添加到坏块列表中。
  • -n:仅显示要执行的操作,而不实际执行它们。
  • -v:显示更详细的输出,包括修复过程中的详细信息。
  • -b 备份文件:将修复前的元数据备份到指定的文件中。

除了选项之外,您还需要指定要检查和修复的文件系统所在的设备。例如,如果您要检查/dev/sda1上的文件系统,可以运行以下命令:

1
e2fsck /dev/sda1

e2fsck命令将会扫描文件系统并显示任何检测到的错误。如果它发现任何错误,它会提示您是否修复它们。您可以根据提示进行选择,或者使用前面提到的选项自动修复错误。

请注意,在运行e2fsck之前,建议您确保文件系统是以只读模式挂载的,以避免进一步损坏。如果您不能以只读模式挂载文件系统,最好使用其他工具或在紧急情况下考虑使用专业的数据恢复服务。

nano

Nano 是一个文本编辑器,常用于 Linux 和其他 Unix-like 系统。它是一个简单、易于使用的命令行编辑器,适合初学者和那些寻找基本编辑功能的用户。下面是 Nano 的一些详解:

  1. 启动 Nano: 要启动 Nano 编辑器,请在终端中输入以下命令:
    1
    
    nano
    

    如果要打开特定文件进行编辑,请在命令后加上文件名:

    1
    
    nano filename
    
  2. Nano 的界面: Nano 编辑器的界面相对简洁。在编辑器的底部显示了一些常用的命令说明,如保存文件、退出编辑器等。使用箭头键导航光标在文本中移动。

  3. 基本操作:
    • 输入文本:在编辑器中直接键入文本即可。
    • 保存文件:按下 Ctrl + O,然后按下 Enter,将文件保存到当前文件名。
    • 退出编辑器:按下 Ctrl + X,如果文件有未保存的更改,Nano 会提示您保存或放弃更改。
  4. 快捷键: Nano 提供了一些常用的快捷键来进行各种操作:
    • Ctrl + G:显示帮助菜单,其中包含可用的命令列表。
    • Ctrl + K:剪切当前行或选定的文本。
    • Ctrl + U:粘贴剪切的文本。
    • Ctrl + W:搜索文本。
    • Ctrl + \:替换文本。
    • Ctrl + C:显示当前光标位置的行号。
  5. 配置文件: Nano 的行为可以通过编辑配置文件 ~/.nanorc 进行自定义。您可以在配置文件中定义颜色方案、键绑定和其他首选项。

  6. 其他功能: Nano 提供了其他一些功能,如自动缩进、语法高亮、多文档编辑等。您可以通过命令行参数或配置文件来启用或禁用这些功能。

Nano 是一个简单而实用的文本编辑器,尤其适合新手和需要基本编辑功能的用户。它的命令行界面和快捷键使得编辑文本文件变得方便快捷。


asan 工具 详解

AddressSanitizer(ASan)是一种用于检测内存错误的工具,它是 LLVM 编译器工具链的一部分。ASan 主要用于检测内存越界访问、使用未初始化的内存、内存泄漏等常见的内存错误。

下面是 ASan 的一些主要特点和工作原理的详细解释:

  1. 内存错误检测:ASan 在程序执行期间动态地分配和管理内存,并在每个内存块的边界添加额外的元数据。当程序访问超出分配的内存范围或使用未初始化的内存时,ASan 会检测到这些错误并生成相应的报告。

  2. 内存泄漏检测:ASan 跟踪程序中动态分配的内存,并在程序结束时检查是否有未释放的内存。如果存在内存泄漏,ASan 会生成相应的报告指示泄漏的内存块的位置。

  3. 元数据重映射:ASan 使用位图技术来存储内存元数据,以减少对内存的额外开销。这种位图会与程序的内存布局进行映射,以便快速定位错误和泄漏。

  4. 堆栈跟踪:当发生内存错误时,ASan 会捕获当前的函数调用堆栈信息,以便定位错误发生的位置。这对于调试和定位问题非常有帮助。

  5. 崩溃报告:当程序发生内存错误导致崩溃时,ASan 会生成详细的崩溃报告,其中包含了堆栈跟踪、错误类型和发生位置等信息。

使用 ASan 进行内存错误检测时,需要使用支持 ASan 的编译器进行编译,并在链接时启用 ASan 的运行时库。编译和链接选项可以根据具体的编译器和工具链有所差异。

ASan 是一个强大的工具,可以帮助开发者在早期阶段捕获和调试内存错误,提高代码的质量和可靠性。然而,由于 ASan 需要额外的运行时开销和内存使用,对于大型项目或性能敏感的代码,可能需要在测试和生产环境中进行谨慎使用和评估。


asan 工具 使用 示例

以下是一个简单的示例,演示如何使用 AddressSanitizer(ASan)来检测和调试内存错误:

  1. 编写代码文件(示例文件名为 example.c):
1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
#include <stdlib.h>

int main() {
    int* buffer = (int*)malloc(sizeof(int) * 10);
    buffer[10] = 42; // 内存越界访问

    free(buffer);
    return 0;
}
  1. 使用编译器进行编译和链接,启用 ASan:
1
$ clang -fsanitize=address -g example.c -o example

或者使用 gcc 编译器:

1
$ gcc -fsanitize=address -g example.c -o example

在编译过程中,我们通过添加 -fsanitize=address 选项来启用 ASan。

  1. 运行程序:
1
$ ./example
  1. ASan 检测到内存错误后,会生成相应的报告并打印在终端上,类似于以下内容:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
=================================================================
==12345==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x60200000eff0 at pc 0x0000004009b9
READ of size 4 at 0x60200000eff0 thread T0
    #0 0x4009b8 in main example.c:6
    #1 0x7ffff6b4ab96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)
    #2 0x4008c9 in _start (/path/to/example+0x4008c9)

Address 0x60200000eff0 is a wild pointer.
SUMMARY: AddressSanitizer: heap-buffer-overflow example.c:6 in main
Shadow bytes around the buggy address:
  0x0c047fffbe70: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c047fffbe80: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c047fffbe90: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c047fffbea0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c047fffbeb0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
=>0x0c047fffbec0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa[04]fa
  0x0c047fffbed0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c047fffbee0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c047fffbef0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c047fffbf00: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c047fffbf10: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
Shadow byte legend (one shadow byte represents 8

 application bytes):
  Addressable:           00
  Partially addressable: 01 02 03 04 05 06 07 
  Heap left redzone:       fa
  Freed heap region:       fd
  Stack left redzone:      f1
  Stack mid redzone:       f2
  Stack right redzone:     f3
  Stack after return:      f5
  Stack use after scope:   f8
  Global redzone:          f9
  Global init order:       f6
  Poisoned by user:        f7
  Container overflow:      fc
  Array cookie:            ac
  Intra object redzone:    bb
  ASan internal:           fe
  Left alloca redzone:     ca
  Right alloca redzone:    cb
  Shadow gap:              cc
==12345==ABORTING

报告中会提供详细的错误信息,包括错误类型、错误地址、堆栈跟踪等。在这个示例中,ASan 检测到了堆缓冲区溢出错误。

通过这种方式,ASan 可以帮助开发者捕获和调试内存错误,提供有用的诊断信息,以帮助修复问题和提高代码质量。