compact/extract 压缩/解压

compact/extract 压缩/解压 .tar.gz 和 .tgz .tgz 和 .tar.gz 是同一个东西, .tgz 可以认为是 .tar.gz 是简写, 在远古时代比如 DOS 系统, 文件扩展名只能是三个字符, 所以有了 .tgz, 后来限制解除之后就能支持 .tar.gz 这种后缀了, 后者能更清晰地表达打包格式和压缩方式. https://stackoverflow.com/questions/11534918/are-tar-gz-and-tgz-the-same-thing 这种格式是我使用得最多的压缩格式。它在压缩时不会占用太多 CPU 的,而且可以得到一个非常理想的压缩率 默认 tar 打包和系统默认的压缩工具是单线程的,pigz 是 gzip 的多线程实现, 默认用当前逻辑 cpu 个数来并发压缩,无法检测个数的话,则并发8个线程 压缩 tar -czvf all.tar.gz *.jpg # 排除掉文件 tar -czvf tomcat.tar.gz --exclude=tomcat/logs tomcat # 设置压缩级别 GZIP=-9 tar cvzf file.tar.gz /path/to/directory 压缩到指定目录 tar -zcvf /data/tmp/foo.tar.gz /data/server/source # 解压到指定目录 tar Cxzvf /opt/cni/bin cni-plugins-linux-amd64-v1.6.1.tgz tar.gz, tgz 解压 tar -xf foo.tar.gz # 解压 tar.gz 文件时, 不使用 z 参数, 貌似 tar 会检测文件类型 自动 用 gzip 解压... tar xvf all.tar.gz tar zxvf all.tar.gz tar -zxvf all.tar.gz 解压到指定目录 tar zxvf /path/to/foo.tar.gz -C /path/to/target/dir/ tar -zxvf /path/to/foo.tar.gz -C /path/to/target/dir/ sudo pacman -S pigz # 压缩 tar --use-compress-program=pigz -cvpf package.tgz ./package # 解压 tar --use-compress-program=pigz -xvpf package.tgz -C ./package #tar –use-compress-program=pigz表示指定pigz来进行打包 #c表示create创建 x表示extract解压 v表示verbose详细 f表示指定压缩文件 C表示指定目录 #-cvpf package.tgz ./ 表示将./package目录打包为package.tgz #-xvpf package.tgz -C ./表示将package.tgz解压到./package目录下 \-v, --verbose #详细显示处理的文件 \-f, --file [HOSTNAME:]F #指定存档或设备 (缺省为 /dev/rmt0) \-z, --gzip, --ungzip #用 gzip 对存档压缩或解压 \-x, --extract, --get #从存档展开文件 解压多个文件 ls *.gz|xargs -t -n1 gunzip gunzip *.gz .rar # 解压 unrar x foo.rar # 压缩 rar e FileName.rar # 解压 rar a FileName.rar 解压并指定输出目录 gunzip -c /data/tmp/foo.tar.gz | tar xf - -C /data/server/bar .7z yum install p7zip pacman -S p7zip sudo apt install p7zip-full p7zip-rar # 压缩 7z a -t7z -r manager.7z /home/manager/* # a 代表添加文件/文件夹到压缩包 # -t 是指定压缩类型 一般我们定为7z # -r 表示递归所有的子文件夹,manager.7z 是压缩好后的压缩包名,/home/manager/* 是要压缩的目录,*是表示该目录下所有的文件。 7z x filename.7z .zip pacman -S zip unzip zip 压缩 zip all.zip *.jpg # 指定压缩文件目录 zip ~/all.zip *.jpg # 压缩的是个文件夹, -r 表示调用递归压缩 zip -r temp.zip temp # 密码 zip -P password0 foo.zip foo.txt # 压缩目录并加密码 (-r 递归, -P 指定密码) zip -r -P password0 foo.zip foo/ # 交互式输入密码(更安全,密码不会暴露在命令历史中) zip -r -e foo.zip foo/ # 指定压缩某几个文件 zip foo.zip foo.txt bar.txt zip 分卷压缩 # 分卷压缩的话,需要先将文件打包成一个zip包,然后执行 zip -s SIZE origin.zip --out new.zip # SIZE为分卷的大小4m,4g,4t等 # 解压的时候需要先将它合并才能正常解压 zip spiltfile.zip -s=0 --out single.zip zip 解压 unzip all.zip unzip -o -d /home/sunny myfile.zip # 解压 多个文件 ls *.zip | xargs -n1 unzip -o # -o: 不必先询问用户,unzip执行后覆盖原有的文件; # -P<密码>: 使用zip的密码选项; # -d 指定解压的目标目录 # 解压最近4天的zip文件 find . -maxdepth 1 -mtime -4 -type f -name "*.zip"|xargs -t -n1 unzip zip 解压并指定目录 unzip /path/to/source.zip -d /path/to/target/path Zstandard, zstd, .zst 解压 zstd -d foo.zst zstd 不能压缩目录, -r 参数会把目录里的文件压缩成单独的文件 ...

2026-04-07 · 5 min · 1034 words · -

Linux 显示器分辨率问题修复:手动加载 EDID 固件

EDID 简介 什么是 EDID? EDID (Extended Display Identification Data) 是一种标准化的数据结构,用于显示器向计算机系统描述自己的能力和特性。可以将它理解为显示器的"身份证"或"技术规格说明书"。 EDID 包含的信息: 基本标识信息: 制造商 ID(如 Dell = “DEL”, Samsung = “SAM”) 产品型号代码和序列号 生产日期(周数/年份) 显示能力参数: 支持的分辨率列表(如 1920x1200, 1600x1200, 1280x1024) 支持的刷新率(如 60Hz, 75Hz) 原生(推荐)分辨率 色彩深度和色域信息 物理特性: 屏幕物理尺寸(以毫米为单位,用于计算正确的 DPI) 显示接口类型(模拟/数字) Gamma 值(2.2 是常见值) 系统如何读取 EDID? 是的,操作系统从显示器读取 EDID 信息。 这是一个自动化的初始化过程: ┌─────────────────────────────────────────────────────────────┐ │ 1. 物理连接 │ │ 显示器连接到主机(HDMI/DisplayPort/DVI/VGA) │ │ 硬件检测到连接 │ └──────────────────┬──────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────────────┐ │ 2. DDC 通信初始化 │ │ 主机 → 显示器:发起 DDC (Display Data Channel) 请求 │ │ 使用 I2C 总线协议 │ └──────────────────┬──────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────────────┐ │ 3. EDID 数据传输 │ │ 显示器 → 主机:返回 EDID 数据(128 或 256 字节) │ │ 通过显示线缆内的专用数据通道 │ └──────────────────┬──────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────────────┐ │ 4. 内核处理 │ │ GPU 驱动解析 EDID → 验证校验和 → 提取支持的模式 │ └──────────────────┬──────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────────────┐ │ 5. 自动配置 │ │ 选择最佳分辨率(通常是原生分辨率)→ 配置显示输出 │ └─────────────────────────────────────────────────────────────┘ 通信协议细节: ...

2026-02-08 · 17 min · 3512 words · -

Linux 显示器分辨率问题修复:手动加载 EDID 固件

EDID 简介 什么是 EDID? EDID (Extended Display Identification Data) 是一种标准化的数据结构,用于显示器向计算机系统描述自己的能力和特性。可以将它理解为显示器的"身份证"或"技术规格说明书"。 EDID 包含的信息: 基本标识信息: 制造商 ID(如 Dell = “DEL”, Samsung = “SAM”) 产品型号代码和序列号 生产日期(周数/年份) 显示能力参数: 支持的分辨率列表(如 1920x1200, 1600x1200, 1280x1024) 支持的刷新率(如 60Hz, 75Hz) 原生(推荐)分辨率 色彩深度和色域信息 物理特性: 屏幕物理尺寸(以毫米为单位,用于计算正确的 DPI) 显示接口类型(模拟/数字) Gamma 值(2.2 是常见值) 系统如何读取 EDID? 是的,操作系统从显示器读取 EDID 信息。 这是一个自动化的初始化过程: ┌─────────────────────────────────────────────────────────────┐ │ 1. 物理连接 │ │ 显示器连接到主机(HDMI/DisplayPort/DVI/VGA) │ │ 硬件检测到连接 │ └──────────────────┬──────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────────────┐ │ 2. DDC 通信初始化 │ │ 主机 → 显示器:发起 DDC (Display Data Channel) 请求 │ │ 使用 I2C 总线协议 │ └──────────────────┬──────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────────────┐ │ 3. EDID 数据传输 │ │ 显示器 → 主机:返回 EDID 数据(128 或 256 字节) │ │ 通过显示线缆内的专用数据通道 │ └──────────────────┬──────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────────────┐ │ 4. 内核处理 │ │ GPU 驱动解析 EDID → 验证校验和 → 提取支持的模式 │ └──────────────────┬──────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────────────┐ │ 5. 自动配置 │ │ 选择最佳分辨率(通常是原生分辨率)→ 配置显示输出 │ └─────────────────────────────────────────────────────────────┘ 通信协议细节: ...

2026-02-08 · 17 min · 3512 words · -

archlinux AUR Helper, yay, paru

archlinux AUR Helper yay https://github.com/Jguer/yay yay 是一个 AUR 助手。它使用 Go 语言写成, 宗旨是提供最少化用户输入的 pacman 界面、yaourt 式的搜索, 而几乎没有任何依赖软件。 yay 安装 pacman -S --needed git base-devel git clone https://aur.archlinux.org/yay.git cd yay makepkg -si # 如果遇到 sudo 权限问题,可以分两步执行: # 1. 构建包(普通用户) makepkg # 2. 安装包(需要 root 权限) su -c "pacman -U yay-*.pkg.tar.zst" # 或者 sudo pacman -U yay-*.pkg.tar.zst pacman -S --needed git base-devel && git clone https://aur.archlinux.org/yay.git && cd yay && makepkg -si Binary If you do not want to compile yay yourself you can use the builds generated by GitHub Actions. ...

2026-01-01 · 2 min · 383 words · -

linux desktop

Linux 桌面环境 Linux 桌面环境(Desktop Environment,简称 DE)是运行在 Linux 操作系统上的图形用户界面,提供窗口管理、文件管理、系统设置等功能。 流行的 Linux 桌面环境 GNOME 官网:https://www.gnome.org/ 特点:现代化设计,简洁优雅,注重工作流程 默认用于:Fedora、Ubuntu(自 17.10 起)、Debian 技术栈:GTK KDE Plasma 官网:https://kde.org/plasma-desktop/ 特点:高度可定制,功能丰富,类似 Windows 的操作体验 默认用于:Kubuntu、openSUSE、KDE neon 技术栈:Qt Xfce 官网:https://xfce.org/ 特点:轻量级,资源占用低,适合老旧硬件 默认用于:Xubuntu、Manjaro Xfce 技术栈:GTK 桌面环境对比 桌面环境 资源占用 可定制性 适合人群 GNOME 中高 中 追求现代化体验的用户 KDE Plasma 中 高 喜欢定制的高级用户 Xfce 低 中 老旧硬件用户 GTK 与 Qt 技术栈 Linux 桌面应用主要基于两种 GUI 工具包: 技术栈 使用的桌面环境 代表应用 GTK GNOME、Xfce、Cinnamon、MATE Firefox、GIMP、Thunar Qt KDE Plasma Dolphin、Konsole、VLC 跨技术栈运行 GTK 应用可以在 Qt 桌面(如 KDE)运行,反之亦然。应用程序只需安装一次,所有桌面环境共享。 ...

2025-11-29 · 4 min · 699 words · -

audio fix

Ubuntu 24.04 音频问题修复记录 日期: 2025-11-04 系统: Ubuntu 24.04 硬件: Beelink SER8 音频芯片: Realtek ALC897 问题描述 在系统设置中测试音频时,音箱接入耳机接口(3.5mm)没有声音输出。 排查过程 1. 检查音频设备状态 # 查看可用的音频输出设备 pactl list sinks short 结果: 发现主板音频设备: alsa_output.pci-0000_65_00.6.analog-stereo (Family 17h/19h HD Audio Controller) HDMI音频设备也存在 2. 检查混音器配置 # 查看声卡列表 cat /proc/asound/cards # 检查混音器设置 amixer -c 1 scontents 发现: 音频设备被正确识别 Master, Headphone, Line Out 通道配置正常 Speaker 通道初始被关闭(音量0%, 状态off) 3. 检查系统日志 journalctl -b | grep -i 'audio\|sound\|alsa' | tail -50 发现: ALSA控制器初始化时有多个 “failed to obtain info for control” 警告 PipeWire和PulseAudio服务正常启动 硬件被正确识别: Realtek ALC897 4. 分析硬件Pin配置 cat /proc/asound/card1/codec#0 | grep -A 10 "Node 0x1b\|Node 0x14\|Node 0x15" 关键发现: ...

2025-11-04 · 3 min · 561 words · -

pacman command

pacman command 参数, options -Sy # 仅同步源 -Syy # 两个 y 代表强制更新 database 文件, 即使文件看起来是最新的, 回退到旧版本的时候会用到 -Syyuu # 降级软件包的时候用 -Q # 查询 本地 pacman 数据库, 比如查询某一个已经安装的包的版本 pacman -Q openssl -Qd, -d, --deps # list packages installed as dependencies [filter] -Qt, -t, --unrequired # list packages not (optionally) required by any package (-tt to ignore optdepends) [filter] -Qh, -Q -h, print help -Ql <boost-libs> #D isplay file list provided by local package -Qk # Check the local package database -Qo /path/to/file # Check if the file is owned by any package, 查看某个文件属于哪个包 -Qq, -q, --quiet show less information for query and search, 省略版本号 -Qs 关键字: 搜索已安装的软件包。 -Qi 软件名: 查看某个软件包信息,显示软件简介,构架, 依赖,大小等详细信息。 -Qu: 列出所有可升级的软件包 -Qdtq 显示了不必要的依赖关系列表 -Qqe 列出所有显式安装(-e,explicitly显式安装;-n忽略外部包AUR) -Qqd 列出自动安装的包(-d,depends 作为依赖项) -Qqdt 列出孤立的包(-t 不再被依赖的 "作为依赖项安装的包") -F 查询远程仓库里的软件包 -Fl 比如在安装软件包之前查询一下远程仓库, 看看会有哪些文件安装到本地 --needed 已经是最新版本的包,不会再重新安装 -R 删除软件包 -b 指定 database 路径, 默认 /var/lib/pacman -r 指定安装软件包的 root 路径, 默认 / -Rdd 要删除软件包,但是不删除依赖这个软件包的其他程序, pacman -Rdd package_name -Qqo '/path/to/dir' 查看文件关联的包 -Rsn -Rs, -s, --recursive remove unnecessary dependencies, 同时删除本机上只有该软件依赖的软件。有其他包可选依赖这个包的话 pacman 会警告你,有其他包依赖这个包的话 pacman 会阻止你 -Ru 软件名: 删除软件,同时删除不再被任何软件所需要的依赖。 -Sg 软件包组: 查看某软件包组所包含的所有软件包。 -Sc:清理未安装的包文件,包文件位于 /var/cache/pacman/pkg/ 目录。 -Scc:清理所有的缓存文件。 commands # 查看安装了多少个包 pacman -Qq|wc -l 查看软件包依赖, pactree # pactree 由 pacman-contrib 包提供 pacman -S pacman-contrib # 查看 package_0 依赖了哪些软件包 pactree package_0 # 查看 package_0 被哪些软件包依赖了 # 查看哪些包依赖 package_0 pactree -r package_0 把 openssl 包安装到指定的目录 pacman -Sy openssl -b /var/lib/pacman -r 2022-11-04 在仓库里搜索有关 foo 的包 pacman -Ss foo # pacman 的 help pacman -h # -Q 的 help pacman -Q -h pacman -Q # 列出已经安装的软件包 pacman -Q boost-libs # Display version pacman -Ql boost-libs # Display file list provided by local package # 查看文件/命令属于哪个包, Check if the file is owned by any package, 查看命令由哪个包提供. pacman -Qo /etc/profile # 检查包对应的文件有没有缺失, #Check the local package database pacman -Qk filesystem # 打印详细信息,比如 文件 是否有修改 修改时间, 大小 , md5 pacman -Qkk filesystem # 安装下载的 gvim 包,或新编译的 gvim 包 pacman -U /var/cache/pacman/pkg/gvim-8.2.4106-1-x86_64.pkg.tar.zst downgrade 降级软件包 去 archive 时手动下载 https://archive.archlinux.org/packages/, 然后 pacman -U 安装 ...

2024-02-06 · 5 min · 1021 words · -

PVE

PVE # 查看 pve 版本 pveversion macos hdiutil convert proxmox-ve_8.3-1.iso -format UDRW -o proxmox-ve_8.3-1.dmg diskutil list # insert the USB flash drive diskutil list diskutil unmountDisk /dev/diskX # rdiskX, instead of diskX, in the last command is intended. It will increase the write speed. sudo dd if=proxmox-ve_8.3-1.dmg bs=1M of=/dev/rdisk5 创建安装盘 U盘 wiloon.com/ventoy dd bs=1M conv=fdatasync if=./proxmox-ve_*.iso of=/dev/XYZ 去除 Proxmox 企业源 apt update && apt install vim vim /etc/apt/sources.list.d/pve-enterprise.list #deb https://enterprise.proxmox.com/debian/pve buster pve-enterprise 更新源 pve9 # ceph.sources Types: deb URIs: https://mirrors.bfsu.edu.cn/proxmox/debian/ceph-squid Suites: trixie Components: no-subscription Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg # debian.sources Types: deb URIs: https://mirrors.bfsu.edu.cn/debian/ Suites: trixie trixie-updates Components: main contrib non-free-firmware Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg Types: deb URIs: https://mirrors.bfsu.edu.cn/debian-security/ Suites: trixie-security Components: main contrib non-free-firmware Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg pve 6.x vi /etc/apt/sources.list ...

2022-09-10 · 3 min · 584 words · -

signal, 信号

signal, 信号 信号(signal)机制 信号(Signal)是Linux, 类Unix和其它POSIX兼容的操作系统中用来进程间通讯的一种方式。一个信号就是一个异步的通知,发送给某个进程,或者同进程的某个线程,告诉它们某个事件发生了。 当信号发送到某个进程中时,操作系统会中断该进程的正常流程,并进入相应的信号处理函数执行操作,完成后再回到中断的地方继续执行。 如果目标进程先前注册了某个信号的处理程序(signal handler),则此处理程序会被调用,否则缺省的处理程序被调用。 发送信号 kill 系统调用 (system call) 可以用来发送一个特定的信号给进程。 kill 命令允许用户发送一个特定的信号给进程。 raise 库函数可以发送特定的信号给当前进程。 在Linux下运行 man kill 可以查看此命令的介绍和用法。 The command kill sends the specified signal to the specified process or process group. If no signal is specified, the TERM signal is sent. The TERM signal will kill processes which do not catch this signal. For other processes, it may be necessary to use the KILL (9) signal, since this signal cannot be caught. ...

2021-04-30 · 4 min · 807 words · -

swap

swap archlinux 禁用 swap 禁用 zram swap systemctl list-units --type=swap sudo systemctl mask dev-zram0.swap reboot 查看 swap 使用情况 # 没有输出的话就是没有启用 swap swapon --show swapon free -m cat /proc/swaps vmstat 1 5 NAME TYPE SIZE USED PRIO /dev/vda2 partition 1.9G 1.5G -1 # PRIO, Priority # /dev/vda2 是安装操作系统时划分的磁盘分区, 也可以使用文件来做为交换分区 # 启用 swap 分区 swapon /dev/vda2 # 如果是文件则 swapon /swap-file swapoff /swap-file # -s, --summary swapon -s|column -t # add swap to /etc/fstab, 启动之后自动挂载 swap 分区 # /dev/sda2, swap分区 UUID=ed325732-b768-4680-a4ff-24dd0da24509 none swap defaults 0 0 # swap 文件的配置 /swap-file none swap defaults 0 0 # 关闭swap交换分区 swapoff /dev/vda2 swapoff -a priority swap 分区的优先级 (priority)有啥用? 在使用多个swap分区或者文件的时候,还有一个优先级的概念 (Priority)。 ...

2017-10-13 · 2 min · 314 words · -

fstab

fstab 格式 <file system> <dir> <type> <options> <dump> <pass> 示例 UUID=48ab4d71-5bb2-4bc4-bf32-dc357020ae27 /data ext4 defaults 0 0 UUID=b256c0bb-9000-456b-b9eb-18239b5df5ddswap none swap defaults 0 0 UUID=E854-F511 /boot vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro 0 2 # 支持TRIM 的ssd 启用trim, 在参数里加discard, 使用discard受系统和硬件限制, 大多数系统建议后台服务定时discard, 如: fstrim.timer /dev/sdb1 /data1 ext4 defaults,noatime,discard 0 0 https://wiki.archlinux.org/index.php/Fstab_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87 <options> 挂载时使用的参数,注意有些 参数是特定文件系统才有的。 defaults - 使用文件系统的默认挂载参数,例如 ext4 的默认参数为:rw, suid, dev, exec, auto, nouser, async. rw - 以读写模式挂载文件系统。 relatime - 实时更新 inode access 记录。只有在记录中的访问时间早于当前访问才会被更新。 (与 noatime 相似,但不会打断如 mutt 或其它程序探测文件在上次访问后是否被修改的进程。),可以提升性能(参见 atime 参数)。 fmask - 设置文件的权限过滤, dmask和fmask是mount的选项,针对fat/ntfs文件系统,适用于fstab配置, 通过设置 fmask, dmask, uid, gid参数可以控制文件目录的默认权限以及所属用户和组。 dmask —— 设置目录的权限过滤 iocharset codepage Sets the codepage for converting to shortname characters on FAT and VFAT filesystems. By default, codepage 437 is used. 源自 MS-DOS 或者 Windows 的文件系统 (例如:vfat、ntfs、smbfs、cifs、iso9660、udf) 需要使用挂载选项 “iocharset” 使得文件名中的非 ASCII 字符能够正确转码。此选项的值应设置为与你的区域数据的字符集相同,使得内核能够理解。如果对应的字符集定义 (位于 File systems -> Native Language Support,即文件系统 -> 原生语言支持) 编译到内核中或者编制成模块,它就能工作。vfat 和 smbfs 文件系统还需要 “codepage” 选项。它应该设置为你所在的国家在 MS-DOS 下使用的 codepage 号码。例如,为了挂载优盘,zh_CN.GB2312 用户的 /etc/fstab 文件中会需要: ...

2017-08-10 · 2 min · 358 words · -

LVM

LVM commands # lvreduce, 用于减小 LVM 逻辑卷(Logical Volume)的大小 # -r, 同时调整(resize)文件系统的大小(调用 resize2fs xfs_growfs 等) # -L -40G 减小逻辑卷的大小 40GB(注意 - 表示减小) # /dev/ubuntu-vg/root 要调整的逻辑卷路径(通常是根分区) sudo lvreduce -r -L -40G /dev/ubuntu-vg/root LVM 的基本概念 通过 LVM 技术,可以屏蔽掉磁盘分区的底层差异,在逻辑上给文件系统提供了一个卷的概念,然后在这些卷上建立相应的文件系统。下面是 LVM 中主要涉及的一些概念。 PM 物理存储设备 (Physical Media): 指系统的存储设备文件,比如 某一块硬盘, /dev/sda、/dev/sdb 等。 或者 设备映射器(Device Mapper)管理的加密分区. /dev/mapper/nvme0n1p8_crypt PV (物理卷 Physical Volume): PV 可以看做是硬盘上的分区, 指硬盘分区或者从逻辑上看起来和硬盘分区类似的设备 (比如 RAID 设备)。 PE (Physical Extent):PV(物理卷)中可以分配的最小存储单元称为 PE,PE 的大小是可以指定的。 VG (卷组, Volume Group): 卷组: 物理卷的组合. 类似于非 LVM 系统中的物理硬盘,一个 LVM 卷组由一个或者多个 PV(物理卷) 组成。 卷组是 LVM 的中间层,VG 将多个物理卷(Physical Volumes, PV)组合在一起, 以便在其上创建逻辑卷(Logical Volumes, LV)。 ...

2015-10-12 · 3 min · 635 words · -

who

Linux 查看用户, 当前登录用户, 登录日志 # 查看 ssh 上已经连接的用户、session # 查看登录用户正在使用的进程信息 w who who -a netstat -tnpa | grep ‘ESTABLISHED.*sshd’ ps auxwww | grep sshd: ps ax | grep sshd /etc/shadow 和 /etc/passwd 系统存在的所有用户名 more /var/log/secure who /var/log/wtmp 干了些什么? root账户下输入su - username 切换到username下输入 history 能看到这个用户历史命令,默认最近的1000条 http://blog.csdn.net/wudiyi815/article/details/8061459 作为系统管理员,你可能经常会 (在某个时候) 需要查看系统中有哪些用户正在活动。有些时候,你甚至需要知道他 (她) 们正在做什么。本文为我们总结了4种查看系统用户信息 (通过编号 (ID) ) 的方法。 w w命令用于显示已经登录系统的用户的名称,以及他们正在做的事。该命令所使用的信息来源于/var/run/utmp文件。w命令输出的信息包括: USER 用户名称 tty 用户的机器名称或tty号 FROM 远程主机地址 LOGIN@ 用户登录系统的时间 IDLE 空闲时间, 时间格式: 22:29m(22h29m), 46.00s, 27:47(27m47s) JCPU 附加到 tty (终端) 的进程所用的时间 PCPU 当前进程所用时间 WHAT 用户当前正在使用的命令 IDLE The idle time is supposed to tell how long it has been since the user typed any input on that terminal. For Xwindows sessions, it is broken since Xwindows never reads input from a terminal, but instead gathers input directly from your mouse and keyboard, so the terminal never gets its timestamp updated since it is never read from. ...

2015-08-27 · 2 min · 281 words · -

archlinux hibernate

archlinux hibernate edit config file /etc/mkinitcpio.conf add resume field sudo vim /etc/mkinitcpio.conf HOOKS=(base udev resume autodetect modconf block filesystems keyboard fsck) Configure the initramfs When an initramfs with the base hook is used, which is the default, the resume hook is required in /etc/mkinitcpio.conf. Whether by label or by UUID, the swap partition is referred to with a udev device node, so the resume hook must go after the udev hook. This example was made starting from the default hook configuration: ...

2015-08-08 · 1 min · 155 words · -

archlinux install

archlinux install download iso https://mirrors.tuna.tsinghua.edu.cn/archlinux/iso/ curl -O https://mirrors.tuna.tsinghua.edu.cn/archlinux/iso/2025.10.01/archlinux-2025.10.01-x86_64.iso Ventoy, usb-stick yay -S ventoy-bin copy to ventoy usb partition 用 ventoy U 盘引导系统 启动 sshd 设置 root 密码 进入 root@archiso 之后先设置 root 密码 passwd 连无线网 # 20250501, archlinux 的 iso 里默认已经安装 wpa_supplicant # start systemd-networkd and systemd-resolved service systemctl start systemd-networkd systemctl start systemd-resolved.service # wifi network 有默认配置 /etc/systemd/network/wifi.network # 设置 wifi 密码, 注意后面的 wlp3s0 替换成无线网卡的名字, 用 `ip a` 看一下 # psk 里写明文的密码 cat /etc/wpa_supplicant/wpa_supplicant-wlp3s0.conf network={ ssid="w1100n" psk="wifi_password_0" } sudo systemctl start wpa_supplicant@wlp3s0 systemctl start sshd 在 virtual box 里安装得设置一下端口映射 ...

2015-06-25 · 4 min · 655 words · -

RDP Session Disconnected

RDP Session Disconnected To resolve Right click on “My Computer” and select “Properties”. Click on “Remote settings”. Click on the “Remote” tab. Under “Remote Desktop” select the radio button next to “Allow connections from computers running any version of Remote Desktop (less secure)”. Click “OK” to Save. Also check to make sure you don’t have any sort of VNC Server installed (like TightVNC, Ultra VNC, RealVNC, etc). If you do then you should uninstall it to ensure that RDP connections work properly.

2015-06-01 · 1 min · 82 words · -

archlinux 64位上运行32位程序

archlinux 64位上运行32位程序 http://blog.csdn.net/cnsword/article/details/7447670 archlinux纯64位版是没有办法直接运行32位程序的。因为缺少最主要的glibc的32位版本的支持。 要想使archlinux64支持32位程序,只需要将32位的源添加进来就可以。 /etc/pacman.conf中增加 print? [multilib] Include = /etc/pacman.d/mirrorlist 如果是chakra需要将repo的名称修改为lib32和lib32-test print? [lib32] Include = /etc/pacman.d/mirrorlist 这样 这样通过pacman安装lib32-glibc库就能提供基本的32位支持了,如果需要32位桌面环境库,安装lib32-gtk或者lib-kde就可以了。看出规律来了吧,这些库的前缀都是lib32-。下一步就可以自由的使用了。

2015-05-29 · 1 min · 19 words · -

fdisk for linux

fdisk for linux sudo fdisk -l sudo fdisk /dev/sdb p (print the partition table) d (delete partition) n (create partition) p (primary) enter (default first sector) enter (default last sector) t 83 (config partition type,83 (Linux)) c W95 FAT32 (LBA) 7 HPFS/NTFS/exFAT a (set bootable) w write to disk and exit sudo mkfs.msdos -F 32 /dev/sdx1 sudo mkfs.ntfs /dev/sdx1 sudo mkfs.ext4 /dev/sdx3 sudo mkswap /dev/sda2 http://blog.csdn.net/zhangkekf/article/details/10417203 我的需求是,将新硬盘只分一个区来使用 fdisk -l #查看硬盘挂在情况 Disk /dev/xvda: 21.5 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 cylinders ...

2015-05-04 · 7 min · 1439 words · -

linux disk format, mkfs,mke2fs 格式化磁盘

linux disk format, mkfs,mke2fs 格式化磁盘 sudo mkfs.msdos -F 32 /dev/sdx1 mkfs.ntfs -Q -L diskLabel /dev/sdXY #查看文件系统备份Superblock mke2fs -n /dev/sdb mkfs 命令 linux格式化磁盘命令 linux mkfs 指令: mkfs 使用权限 : 超级使用者 使用方式 : mkfs [-V] [-t fstype] [fs-options] filesys [blocks] [-L Lable] 说明 : 建立 linux 档案系统在特定的 partition 上 参数 : device : 预备检查的硬盘 partition,例如: /dev/sda1 -V : 详细显示模式 -t : 给定档案系统的型式,Linux 的预设值为 ext2 -c : 在制做档案系统前,检查该partition 是否有坏轨 -l bad_blocks_file : 将有坏轨的block资料加到 bad_blocks_file 里面 ...

2015-05-04 · 3 min · 603 words · -

Linux下查看文件编码,文件或文件名编码格式转换

Linux下查看文件编码,文件或文件名编码格式转换 http://blog.sina.com.cn/s/blog_6fe0d70d0101du41.html Vim 的多字符编码工作方式 Vim 启动,根据 .vimrc 中设置的 encoding 的值来设置 buffer、菜单文本、消息文的字符编码方式。 读取需要编辑的文件,根据 fileencodings 中列出的字符编码方式逐一探测该文件编码方式。并设置 fileencoding 为探测到的,看起来是正确的 (注1) 字符编码方式。 对比 fileencoding 和 encoding 的值,若不同则调用 iconv 将文件内容转换为encoding 所描述的字符编码方式,并且把转换后的内容放到为此文件开辟的 buffer 里,此时我们就可以开始编辑这个文件了。注意,完成这一步动作需要调用外部的 iconv.dll(注2),你需要保证这个文件存在于 $VIMRUNTIME 或者其他列在 PATH 环境变量中的目录里。 编辑完成后保存文件时,再次对比 fileencoding 和 encoding 的值。若不同,再次调用 iconv 将即将保存的 buffer 中的文本转换为 fileencoding 所描述的字符编码方式,并保存到指定的文件中。同样,这需要调用 iconv.dll由于 Unicode 能够包含几乎所有的语言的字符,而且 Unicode 的 UTF-8 编码方式又是非常具有性价比的编码方式 (空间消耗比 UCS-2 小),因此建议 encoding 的值设置为utf-8。这么做的另一个理由是 encoding 设置为 utf-8 时,Vim 自动探测文件的编码方式会更准确 (或许这个理由才是主要的 。我们在中文 Windows 里编辑的文件,为了兼顾与其他软件的兼容性,文件编码还是设置为 GB2312/GBK 比较合适,因此 fileencoding 建议设置为 chinese (chinese 是个别名,在 Unix 里表示 gb2312,在 Windows 里表示cp936,也就是 GBK 的代码页)。 chinese-gb to utf8 ...

2015-05-04 · 2 min · 276 words · -