Skip to content

note archLinux

在使用ArchLinux时积累的命令,包括一些基础的linux命令

单下划线 双下划线 下划虚线

用户和组相关

id

id 用户名 查看当前用户所属组和组id

groups

groups 用户名 查看用户所属组 groups 查看当前用户所属组

文件操作相关

rar

rar x FileName.rar      #解压
rar a FileName.rar 需要打包的目录或文件   #压缩

tar

格式 : tar [options][file/dir] [options] [file/dir]

1
2
3
4
5
6
7
tar -zcvf new.tar.gz 需要打包的目录或文件
tar -zxvf name.tar.gz
tar zxf name.tar.gz -C target_path  #解压到指定文件夹
gunzip FileName.gz      #解压gzip包
gzip -d FileName.gz     #解压gzip包
gzip FileName       #压缩gzip包
gzip -r FileName.tar        #压缩tar包
- -A 新增压缩文件到已存在的压缩 - -B 设置区块大小 - -b 设置区块数目 - -C 切换到指定目录 - -c 建立新的压缩文件 - -d 记录文件的差别 - -f 指定压缩文件 - -r 添加文件到已经压缩的文件 - -u 添加改变了和现有的文件到已经存在的压缩文件 - -x 从压缩的文件中提取文件 - -t 显示压缩文件的内容 - -z 支持gzip解压文件 - -j 支持bzip2解压文件 - -Z 支持compress解压文件 - -v 显示操作过程 - -l 文件系统边界设置 - -k 保留原有文件不覆盖 - -m 保留文件不被覆盖 - -W 确认压缩文件的正确性 - --help 显示帮助信息 - --version 显示版本信息

chown

1
2
3
4
#修改文件所属组 ,-R表示该文件夹下的所有文件都会被修改
sudo chown -R  mo:mo fileName
#修改文件所属用户
sudo chown -R  mo fileName

mv

  • -f force,目标地址如有同名文件则覆盖
  • -i 目标地址如有同名文件则询问是否覆盖
  • -b 若需覆盖文件,则覆盖前先行备份
  • -t 格式:目标文件夹 要移动的文件...;用于复制多个文件到同一个目录

rsync

文件同步工具,支持远程和本地互同步、本地与本地同步,不支持远程与远程同步

Local:  rsync [OPTION...] SRC... [DEST]

Access via remote shell:
  Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
  Push: rsync [OPTION...] SRC... [USER@]HOST:DEST

Access via rsync daemon:
  Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
        rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
  Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
        rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST
- -v:显示rsync过程中详细信息。可以使用"-vvvv"获取更详细信息。 - -P:显示文件传输的进度信息。(实际上"-P"="--partial --progress",其中的"--progress"才是显示进度信息的)。 - -n --dry-run :仅测试传输,而不实际传输。常和"-vvvv"配合使用来查看rsync是如何工作的。 - -a --archive :归档模式,表示递归传输并保持文件属性。等同于"-rtopgDl"。 - -r --recursive:递归到目录中去。 - -t --times:保持mtime属性。强烈建议任何时候都加上"-t",否则目标文件mtime会设置为系统时间,导致下次更新 :检查出mtime不同从而导致增量传输无效。 - -o --owner:保持owner属性(属主)。 - -g --group:保持group属性(属组)。 - -p --perms:保持perms属性(权限,不包括特殊权限)。 - -D :是"--device --specials"选项的组合,即也拷贝设备文件和特殊文件。 - -l --links:如果文件是软链接文件,则拷贝软链接本身而非软链接所指向的对象。 - -z :传输时进行压缩提高效率。 - -R --relative:使用相对路径。意味着将命令行中指定的全路径而非路径最尾部的文件名发送给服务端,包括它们的属性。用法见下文示例。 - --size-only :默认算法是检查文件大小和mtime不同的文件,使用此选项将只检查文件大小。 - -u --update :仅在源mtime比目标已存在文件的mtime新时才拷贝。注意,该选项是接收端判断的,不会影响删除行为。 - -d --dirs :以不递归的方式拷贝目录本身。默认递归时,如果源为"dir1/file1",则不会拷贝dir1目录,使用该选项将拷贝dir1但不拷贝file1。 - --max-size :限制rsync传输的最大文件大小。可以使用单位后缀,还可以是一个小数值(例如:"--max-size=1.5m") - --min-size :限制rsync传输的最小文件大小。这可以用于禁止传输小文件或那些垃圾文件。 - --exclude :指定排除规则来排除不需要传输的文件。 - --delete :以SRC为主,对DEST进行同步。多则删之,少则补之。注意"--delete"是在接收端执行的,所以它是在 :exclude/include规则生效之后才执行的。 - -b --backup :对目标上已存在的文件做一个备份,备份的文件名后默认使用"~"做后缀。 - --backup-dir:指定备份文件的保存路径。不指定时默认和待备份文件保存在同一目录下。 - -e :指定所要使用的远程shell程序,默认为ssh。 - --port :连接daemon时使用的端口号,默认为873端口。 - --password-file:daemon模式时的密码文件,可以从中读取密码实现非交互式。注意,这不是远程shell认证的密码,而是rsync模块认证的密码。 - -W --whole-file:rsync将不再使用增量传输,而是全量传输。在网络带宽高于磁盘带宽时,该选项比增量传输更高效。 - --existing :要求只更新目标端已存在的文件,目标端还不存在的文件不传输。注意,使用相对路径时如果上层目录不存在也不会传输。 - --ignore-existing:要求只更新目标端不存在的文件。和"--existing"结合使用有特殊功能,见下文示例。 - --remove-source-files:要求删除源端已经成功传输的文件。

磁盘相关

du

格式:du [options] [file/dir] 查看文件和目录占用磁盘空间大小 - -h 规格化、带单位的显示占用空间大小 - -a 查看所有包括子目录和文件的大小 - -c 追加显示总和 - -s 只显示总和 - --max-depth=n 指定统计目录的深度为n

df

格式:df [options] [file/dir] 查看文件系统的磁盘空间占用 - -a 全部文件系统列表 - -h 方便阅读方式显示 - -H 方便阅读显示,1k=1000 - -i 显示inode信息 - -k 区块为1024字节 - -l 只显示本地文件系统 - -m 区块为1048576字节

网络相关

lsof

lsof -i:端口号 查看指定端口占用
lsof -i     查看所有端口占用

curl

curl -I address 只显示response的头信息

系统信息查看

top面板详解

  1. load average: 1分钟 5分钟 10分钟的平均负载
  2. zombie 僵尸进程
    • us user占用CPU的百分比
    • sy system内核空间占用CPU的百分比
    • ni nice(修改进程优先级的命令)改变过优先级的进程占用CPU的百分比
    • id 空闲cpu百分比
    • wa IO等待占用CPU的百分比
    • hi 硬中断(Hardware IRQ)占用CPU的百分比
    • si 软中断(Software Interrupts)占用CPU的百分比
    • [ ] PR 任务优先级
    • [ ] NI 用户制定nice优先级;负值表示高优先级,正值表示低优先级
    • [ ] VIRT 虚拟内存;单位kb;VIRT=SWAP+RES
    • [ ] RES 实际内存;单位kb;RES=CODE+DATA
    • [ ] SHR 共享内存;单位kb
    • [ ] S 进程状态;D=不可中断的睡眠状态、R=运行、S=睡眠、T=跟踪/停止、Z=僵尸进程
    • [ ] %CPU 上次更新到现在的CPU时间占用百分比
    • [ ] %MEM 进程使用的物理内存百分比
    • [ ] TIME+ 进程使用的CPU时间总计;单位1/100秒
    • M 切换按内存排序
    • N 切换按进程号排序
    • P 切换按占用cpu排序
    • T 根据时间/累计时间进行排序
    • 1 监控每个逻辑CPU的状况
    • b 打开或关闭加亮running状态进程效果
    • h 显示帮助画面,给出一些简短的命令总结说明
    • i 忽略闲置和僵死进程。这是一个开关式命令
    • m 切换显示内存信息
    • s number 改变两次刷新之间的延迟时间
    • x 打开/关闭排序列的加亮效果
    • shift + > 向右改变排序条件
    • shift + < 向左改变排序条件
  3. 格式 top [options]
    • -b 以批处理模式显示程序信息
    • -c 显示完整的comman
    • -d 秒数 指定每隔几秒更新
    • -i 使用tio不显示任何闲置或僵尸进程
    • -n 次数 表示更新几次后就终止更新
    • -p 进程号 通过指定进程id来监控某个进程状态
    • -s 以累积模式显示程序信息

查看多条重启记录

last reboot

查看原生systemd自动启动任务

systemctl list-unit-files

who 查看登录的用户

-b 查看最后一次(上次)系统启动的时间 -r 查看最后一次(上次)系统启动的时间,及运行级别

alias 查看快捷命令列表

第三方工具相关

hdparm 机械硬盘管理工具

#安装命令
yay -S hdparm
#显示硬盘的相关设定 等同于 -v 参数
sudo hdparm /dev/sda
# 查询硬盘信息
sudo hdparm -I /dev/sdc
#让机械硬盘待机
sudo hdparm -y /dev/sda
#让硬盘进入睡眠模式
sudo hdparm -Y /dev/sda
#查看硬盘自动休眠APM(硬盘电源管理)
sudo hdparm -B /dev/sda
#设置硬盘自动休眠APM,参数是5的倍数,比如30*5是150秒也就是2分钟30秒
#参数范围:1-127允许磁盘休眠,128-254不允许,255会完全关闭电源管理功能
sudo hdparm -B 30 /dev/sda
#测试硬盘读写速度
sudo hdparm -t /dev/sda

参数说明:不带参数时就是查看

  • -a<快取分区> 设定读取文件时,预先存入块区的分区数,若不加上<快取分区>选项,则显示目前的设定。
  • -A<0或1> 启动或关闭读取文件时的快取功能。
  • -c 设定IDE32位I/O模式。
  • -C 检测IDE硬盘的电源管理模式。
  • -d<0或1> 设定磁盘的DMA模式。
  • -f 将内存缓冲区的数据写入硬盘,并清楚缓冲区。
  • -g 显示硬盘的柱面数,磁头数,扇区数等参数。
  • -h 显示帮助。
  • -i 显示硬盘的硬件规格信息,这些信息是在开机时由硬盘本身所提供。
  • -I 直接读取硬盘所提供的硬件规格信息。
  • -k<0或1> 重设硬盘时,保留-dmu参数的设定。
  • -K<0或1> 重设硬盘时,保留-APSWXZ参数的设定。
  • -m<磁区数> 设定硬盘多重分区存取的分区数。
  • -n<0或1> 忽略硬盘写入时所发生的错误。
  • -p 设定硬盘的PIO模式。
  • -P<磁区数> 设定硬盘内部快取的分区数。
  • -q 在执行后续的参数时,不在屏幕上显示任何信息。
  • -r<0或1> 设定硬盘的读写模式。
  • -S<时间> 设定硬盘进入省电模式前的等待时间。
  • -T 评估硬盘缓存的读取效率。
  • -u<0或1> 在硬盘存取时,允许其他中断要求同时执行。
  • -W<0或1> 关闭/开启磁盘的写入缓存,每个盘都有读取缓存和写入缓存,有时我们关闭磁盘写入缓存的效率高于开启磁盘写入缓存的效率,那当然选择前者了。
  • -X<传输模式> 设定硬盘的传输模式。
  • -Z 关闭某些Seagate硬盘的自动省电功能。

ranger 相关

  • ?,q 打开帮助手册,退出
  • l,enter 打开文件
  • j,k 上下选中文件
  • h,l 进入下一级目录或返回上一级目录
  • zh 显示隐藏文件
    1
    2
    3
    4
    5
    #复制配置文件到~/.config下
    ranger --copy-config=all
    #给ranger安装icon
    git clone https://github.com/alexanderjeurissen/ranger_devicons ~/.config/ranger/plugins/ranger_devicons
    echo "default_linemode devicons" >> $HOME/.config/ranger/rc.conf
    

cpupower 查看和设置cpu频率

frequency-set -u clock_freq 设置最大指定频率,需要安装cpupower,cpupower-gui

intel-gpu-tools 查看intel核显状态

1
2
3
4
#安装工具包
yay -S intel-gpu-tools
#查看intel核显状态
intel_gpu_top

timeshift 保存系统快照工具

sudo timeshift --create --comments "backup_Jul30" --tags W  创建还原点(D每天,W每周,M按月,O按需)
sudo timeshift --restore    恢复快照

debtap 把deb包转换成pacman包

1
2
3
4
yay -S debtap
sudo debtap -u  升级debtap
sudo debtap  xxxx.deb   转换包
sudo pacman -U x.tar.xz 安装

包管理相关

pacman and yay命令

安装密钥

yay -S archlinuxcn-keyring

更新软件源,解决签名受损

1
2
3
4
5
6
#删除已有秘钥
sudo rm -rf /etc/pacman.d/gnupg
#初始化及更新秘钥
sudo pacman-key --init
sudo pacman-key --populate archlinux
sudo pacman-key --populate archlinuxcn

模糊搜索该软件

sudo pacman -Ss package_name

查询已安装的软件包

sudo pacman -Qs package_name

查看软件详细详细

sudo pacman -Si package_name sudo pacman -Qi package_name

查看包安装位置

pacman -Ql package_name

清理当前未被安装软件包的缓存;地址:/var/cache/pacman/pkg

sudo pacman -Sc

完全清理包缓存

sudo pacman -Scc

删除软件,保留其全部已经安装的依赖关系

sudo pacman -R package_name

删除指定软件包,及其所有没有被其他已安装软件包使用的依赖关系

sudo pacman -Rs package_name

删除一个软件包、它的配置文件以及所有不再需要的依赖(推荐)

sudo pacman -Rsn package_name

安装本地的软件包

sudo pacman -U package_path

升级系统和同步仓库数据和升级软件包

sudo pacman -Syu

仅升级系统

sudo pacman -Sy

查看孤儿包

sudo pacman -Qtd

查看孤儿包,不显示版本,可以配合|sudo pacman -Rsn - 直接删除

sudo pacman -Qtdtq

查看一个包的依赖树

pactree package_name

清理不需要的依赖

yay -Yc

从仓库和 AUR 中交互式搜索和安装软件包

yay {{软件包|搜索词}}

同步并更新所有来自仓库和 AUR 的软件包

yay

只同步和更新 AUR 软件包

yay -Sua

显示已安装软件包和系统健康状况的统计数据

yay -Ps

删除一个软件极其所有依赖的包

sudo pacman -Rns $(pacman -Qsq 软件包)

常用软件安装

安装KVM

sudo pacman -S qemu libvirt ovmf virt-manager virt-viewer dnsmasq vde2 bridge-utils openbsd-netcat libguestfs

安装jdk8

sudo pacman -S jdk8-openjdk