安装Arch Linux

快捷键

图形化快捷键

快捷键 作用 详解
Ctrl+Alt+T 打开终端
Ctrl+D 关闭终端 退出python也可以

命令行快捷键

快捷键 作用 详解
Ctrl+R 搜索历史命令 在此命令行的下方出现搜索结果,按右键确认结果
Ctrl+L 清屏 相当于clear命令

GRUB

更换内核等操作。

更新Grub配置

1
sudo grub-mkconfig -o /boot/grub/grub.cfg  #一般情况下Grub配置文件都是放置/boot/grub/grub.cfg目录

根据速度排序源

升级系统排名Mirror List是很必要的。获取最新Mirror List 并使用 rankmirrors 进行镜像源速度排名,使软件更新的速度飞起~

如果Arch源文件不全,请到Arch Linux WIKI:Pacman Mirrorlist Generator查找。

软件包:pacman-contrib

参考:

Arch Linux WIKI:Mirrors

Arch Linux WIKI:Pacman Mirrorlist Generator

方案一

安装好所需软件

备份Arch源文件(重要)

1
cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.backup		#此若未更改文件中包含有各个国家的源

将指定国家的源链接全部筛选出来

1
awk '/^## <Country Name>$/{f=1; next}f==0{next}/^$/{exit}{print substr($0, 1);}' /etc/pacman.d/mirrorlist.backup > mirrorlist.pacnew	#其中的<Country Name>填写所在国家名称,一定要去掉尖括号,此操作会将mirrorlist.backup 文件所有比如China下的所有连接写入mirrorlist.pacnew (如果没有请重建)。

去掉所有注释符

1
sed -i 's/^#Server/Server/' /etc/pacman.d/mirrorlist.pacnew

排序出速度从大到小指定数目为 6 的源到源链接文件

1
rankmirrors -n 6 /etc/pacman.d/mirrorlist.pacnew > /etc/pacman.d/mirrorlist

成功参考如下

1
2
3
4
5
6
7
8
➜  pacman.d cat mirrorlist       
# Server list generated by rankmirrors on 2022-10-23
Server = https://mirrors.aliyun.com/archlinux/$repo/os/$arch
Server = https://mirror.redrock.team/archlinux/$repo/os/$arch
Server = https://mirrors.xjtu.edu.cn/archlinux/$repo/os/$arch
Server = http://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch
Server = http://mirrors.wsyu.edu.cn/archlinux/$repo/os/$arch
Server = http://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch

方案二

安装好所需软件

访问Pacman Mirrorlist Generator选择国家、协议、ip版本后回车复制链接

将链接填入下面的双引号中

1
curl -s "https://archlinux.org/mirrorlist/?country=CN&protocol=http&protocol=https&ip_version=4" | sed -e 's/^#Server/Server/' -e '/^#/d' | rankmirrors -n 5 -

回车等待大约2-3分钟,就可以得到5个按照速度排名的镜像。

Arch环境变量配置

以下操作均在ArchLinux系统上操作。

环境变量配置文件路径及作用范围

  • Linux环境变量配置文件:/etc/environment、/etc/profile、/etc/bash.bashrc、/etc/profile.d/locale.sh、~/.profile~/.bashrc(加载顺序从前到后依次)

  • ~/目录下的环境变量配置文件只能作用于当前用户

  • /etc/目录下的环境变量配置文件作用于整个系统所有用户

操作命令

命令如果只执行于命令行窗口,那会在下次重启命令行或者打开新的命令行时会失效,要永久保持还是要写入配置环境变量的文件中才行

1
2
3
4
5
6
7
8
9
export      #命令显示当前系统定义的所有环境变量

echo $PATH #命令输出当前的PATH环境变量的值

export PATH=$PATH:/home/uusama/mysql/bin #往名为PATH的环境变量往后添加一个路径,$PATH也可以放于后面位置

source /etc/profile #进行生效你当前配置的环境变量文件,此文件设置的环境变量对所有用户生效,但只能生效于执行命令窗口,使所有窗口都生效,必须重启系统

PATH="$PATH":/NEW_PATH #临时设置环境变量,关闭窗口配置失效

小技巧

  • 可以自定义一个环境变量文件,比如在某个项目下定义uusama.profile,在这个文件中写入例如export PATH=$PATH:/home/uusama/mysql/bin ,执行:source <项目地址>/uusama.profile,这样你每次登陆都可以在Shell脚本中使用自己定义的一系列变量。

  • 使用alias命令定义一些命令的别名,比如alias rm=”rm -i”(双引号必须),并把这个代码加入到~/.profile中,这样你每次使用rm命令的时候,都相当于使用rm -i命令,非常方便。

  • Linux 上的环境变量配置是跟Windows上的道理是一样的,同样具有PATH环境变量,不过Windows上的PATH环境变量路径分割是用;号,Linux用的:号。

包管理

如果安装软件源地址没问题的情况如下,出现error: 404,请尝试 sudo pacman -Syy

1
error: failed retrieving file 'qt6-5compat-6.4.0-2-x86_64.pkg.tar.zst' from mirrors.aliyun.com : The requested URL returned error: 404

参考:

ArchWiki:pacman

cnblog-kainhuck:Arch安装后的配置(超详细)

pacman

常用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
pacman -S <包名>        #安装/更新 某软件包命令

pacman -R <包名> #卸载软件包
sudo pacman -Rns <包名> #卸载软件包 -n 删除配置 -s 删除不需要的依赖关系

pacman -Syu #升级系统命令

pacman -Ss <关键词> #查询所有软件包名称
pacman -Qs <关键词> #查询所有本地软件包名称,包含描述信息内匹配的字符
# 例:
pacman -Qs "edge" "microsoft"

pacman -Ql package_name # 检索软件包安装的文件列表

pacman Ss #查询库内(不包含AUR)的包名称,包含描述信息内匹配的字符

sudo pacman -U #下载后缀为 .pkg.tar.xz 或 .pkg.tar.zst 的安装包

添加源

archlinuxcn

/etc/pacman.conf

1
2
[archlinuxcn]
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch

更新软件源

1
sudo pacman -Syy && sudo pacman -S archlinuxcn-keyring

日常问题

/var/lib/pacman/db.lck导致升级失败

ArchLinux-Forums:pacman db.lck

yay

安装

参考:

GitHub-Jguer:yay

安装

其实直接可以进行安装的,之前可能是因为安全的原因,不能直接使用pacman安装,建议使用此方式安装,下面的安装方式就当了解一下。

1
sudo pacman -S yay

源码安装

1
2
3
4
pacman -S --needed git base-devel
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si # 此步骤可能会失败

包安装

1
2
3
4
pacman -S --needed git base-devel
git clone https://aur.archlinux.org/yay-bin.git
cd yay-bin
makepkg -si # 成功概率大一些

Arch Linux发行版

比如Manjaro

1
pacman -S --needed git base-devel yay

配置

修改aururl源为国内

1
2
3
4
yay --aururl "源URL" --save

# 官方源
https://aur.archlinux.org

常用

1
2
# 只升级AUR的软件包
yay -Sua

包依赖关系

查看软件包依赖

1
2
3
4
# 树结构打印
pactree <package_name>
# 包名打印
pactree -u <package_name>

查看包被哪些包依赖

1
2
# 树结构打印
pactree -r <package_name>

本地打包安装

1
2
3
4
5
6
git clone https://github.com/countstarlight/deepin-wine-tim-arch.git
cd deepin-wine-tim-arch

makepkg -si #-s(用pacman 按照PKGBUILD文件安装所缺失的依赖包并下载三方软件包,编译打包成Arch可直接安装的包)-i(安装Arch软件包)它由apcman 提供

makepkg --clean #清除残留的文件和目录

安装旧版本包

Arch linux旧版本软件仓库https://archive.archlinux.org/

安装历史版本软件包常用包downgrade来进行降级。

参考:

Linux中国-MjSeven:如何在 Arch Linux 中降级软件包如何在 Arch Linux 中降级软件包

验证sha256sum、md5sum等:

1
2
3
md5sum -c *.md5      #校验完成后会出现"成功"字样

sha256sum -c kali-linux-2021.1-vbox-amd64.ova.txt.sha256sum #sha256sum同样适用

安装以前更新下载过的软件包

pacman 升级或安装下载的包的地址位于/var/cache/pacman/pkg/目录
yay 升级或安装下载的包的地址位于~/.cache/yay/
可使用命令清除,也可以手动清除

1
2
3
4
5
# 搜索软件包缓存目录下的所有已经下载的linux内核
ls -l /var/cache/pacman/pkg/ | grep linux

#跳过所有检查安装(降级可能有时候会需要额外的依赖关系),但不建议跳过检查
pacman -Udd /var/cache/pacman/pkg/xxx

利用downgrade工具降级

1
2
3
4
# 安装降级工具
sudo pacman -S downgrade
# 降级内核,回车后出现本地与远端旧包可选,输入序号即可
sudo downgrade linux

AUR包降级

如果已经安装某AUR软件包,缓存至~/.cache/yay/,找到包名的目录就会看到PKGBUILD文件,在终端输入以下按tab,就会显示所有git历史,选择你需要降级的版本

1
git checkout 

建议卸载后,执行

1
makepkg -si 

即可降级任意AUR软件包

忽略升级软件包

对应的配置在/etc/pacman.conf 文件中

更改内容:

IgnorePkg=linux

以上为更改使系统不能更新linux内核包,如果忽略多个包,包名之间用空格隔开

如果只打算忽略一次升级,可以使用 –ignore 选项,这时使用逗号隔开的列表。

PGP问题

系统好久没更新,出现密钥不对的问题,pacman -Syu 更新软件时会询问是否删除软件包,其实此时不是软件包的来源问题,是长时间未更新系统导致,先不探究原因,有时间了再研究。

参考:

博客园-北里闻箫:ArchLinux升级时签名错误的处理方法。长时间不更新就可能遇到这个问题。ArchLinux升级时签名错误的处理方法。长时间不更新就可能遇到这个问题。

Emacs-WingDustWingDust:Arch 更新安装 已损坏 (无效或已损坏的软件包 (PGP 签名))Arch 更新安装 已损坏 (无效或已损坏的软件包 (PGP 签名))-Ynjxsjmh的评论

一般情况下

重新生成签名。

1
2
3
sudo pacman-key --init
sudo pacman-key --populate archlinux
sudo pacman-key --refresh-keys

但执行sudo pacman-key --refresh-keys时会无限循环报出日志信息

特殊解决方案

1
sudo pacman -S archlinux-keyring && sudo pacman -Syu

软件包缓存

pacman 升级或安装下载的包的地址位于/var/cache/pacman/pkg/目录
yay 升级或安装下载的包的地址位于~/.cache/yay/
可使用命令清除,也可以手动清除

常用

  • sudo pacman -Scc清理所有pacman软件包管理缓存

    1
    2
    3
    4
    5
    6
    7
    8
    9
    6151 ◯  sudo pacman -Scc                                 

    Cache directory: /var/cache/pacman/pkg/
    :: Do you want to remove ALL files from cache? [y/N] y
    removing all files from cache...

    Database directory: /var/lib/pacman/
    :: Do you want to remove unused repositories? [Y/n] Y
    removing unused sync repositories...

    以上清理/var/cache/pacman/pkg/所有缓存文件,清理/var/lib/pacman/未使用的同步仓库。

  • yay -Scc清理所有yay软件包管理缓存

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Cache directory: /var/cache/pacman/pkg/
    :: Do you want to remove ALL files from cache? [y/N] y
    removing all files from cache...

    Database directory: /var/lib/pacman/
    :: Do you want to remove unused repositories? [Y/n] Y
    removing unused sync repositories...

    Build directory: /home/fuding/.cache/yay
    :: Do you want to remove ALL AUR packages from cache? [Y/n] Y
    removing AUR packages from cache...

    以上清理比pacman多清理一个~/.cache/yay代表AUR的包缓存。

  • yay -Sc

参数

  • -c, --clean remove old packages from cache directory (-cc for all),-Sc只会清楚老旧的缓存包,-Scc清除所有软件包缓存。

文件管理

权限管理

参考:

CSDN-林20:Linux权限详解(chmod、600、644、700、711、755、777、4755、6755、7755)

权限划分

系统权限3种

  • r 读取,权限数4
  • w 写入,权限数2
  • x 执行,权限数1

系统用户划分3种

image-20230525143555149

  • 白色列代表是否是目录,目录用d表示
  • 8进制u代表红色列,拥有者
  • 8进制g代表蓝色列,群组
  • 8进制o代表黄色列,其他组

常用文件权限

1
2
3
4
5
6
7
-rw------- (600)    #只有拥有者有读写权限。
-rw-r--r-- (644) #只有拥有者有读写权限;而属组用户和其他用户只有读权限。
-rwx------ (700) #只有拥有者有读、写、执行权限。
-rwxr-xr-x (755) #拥有者有读、写、执行权限;而属组用户和其他用户只有读、执行权限。
-rwx--x--x (711) #拥有者有读、写、执行权限;而属组用户和其他用户只有执行权限。
-rw-rw-rw- (666) #所有用户都有文件读、写权限。
-rwxrwxrwx (777) #所有用户都有读、写、执行权限。

所有人可读写执行

1
2
3
chmod 777 file 
chmod u=rwx,g=rwx,o=rwx file
chmod a=rwx file

拥有者可读写

1
2
3
chmod 600 file 
chmod u=rw,g=---,o=--- file
chmod u=rw,go-rwx file

文件拥有者

root权限才可以更改文件拥有者

更改文件拥有者

1
chown [可选项] user[:group] file...

更改d.key e.scrt文件拥有者为所属组users的tom

1
chown tom:users file d.key e.scrt

更改当前目录下与子目录下的所有文件的拥有者为 users 群体的 James

1
chown -R James:users  *

sed|grep批量修改文件内容

Linux sed 命令是利用脚本来处理文本文件。
sed 可依照脚本的指令来处理、编辑文本文件。
Sed 主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。
详情请参考:https://www.runoob.com/linux/linux-comm-sed.html

使用sed命令来修改文件内容:

1
2
3
sed -i 's/Good/GoodNight/g' ./TheDay.txt        #此命令直接可以将TheDay.txt 文件下的所有包含Good的字符串改为GoodNight,并加-i参数改写文件,如果不加-i参数则只有打印输出而不会保存修改后的文件,单引号g代表全部内容都会替换。

#如果要删除Good字符串后面的GoodNight不写(猜测)

如果加上以下命令,则会修改grep 批量查询所有符合条件的文件:

1
sed -i 's/Good/GoodNight/g' `grep -rl Good ./`       #grep是查找字符串命令,如果加上-rl递归查找并打印本目录下符合条件的所有文件路径

grep执行结果:

$ grep -rl 鼎< ./  
about/index.html
search.xml
songs/code/Test/区分$_POST和$_FILES系统变量.php
songs/code/index.php
songs/add_multiple.php
songs/index.php
medias/banner/1.jpg
medias/banner/6.jpg
contact/index.html

删除批量文件中大量相同的内容:

1
sed -i '/GoodNight/d' `grep -rl GoodNight ./`       #d代表批量删除所有文件匹配成功的GoodNight字符的行

注意: 以上命令添加-i参数属于危险操作,可在-i之后加上.back就会备份修改后的文件以保证修改文件修改错误的损失。

args|xargs 批量修改文件名称

复制前n个文件到指定目录:

1
ls | head -n 100 | args -i cp {} [target_dir]       #-n 代表前多少个文件args加-i代表接收参数到{}中

批量修改文件名:

xarge(arge命令的进阶版,可对{}中的内容进行修改)测试:
➜ ls | xargs -i echo abcd {} efgh {}
abcd 0001.txt efgh 0001.txt
abcd 0002.txt efgh 0002.txt
abcd 0003.txt efgh 0003.txt
abcd 0004.txt efgh 0004.txt
abcd 0005.txt efgh 0005.txt

测试xargs加强功能(修改{}内部内容sed):

ls | xargs -i echo abcd {} efgh {} | sed 's/.txt/.md/2g'
abcd 0001.txt efgh 0001.md
abcd 0002.txt efgh 0002.md
abcd 0003.txt efgh 0003.md
abcd 0004.txt efgh 0004.md
abcd 0005.txt efgh 0005.md

实际操作:

1
ls | xargs -i echo mv {} {} | sed 's/.txt/.md/2g' | sh

注意: 如果不先 echo 出命令再输入到 sh 的话,mv {} {} 会直接执行,这样就无法输入到后一个管道中进行 sed 替换操作。

图形化

显示服务器

显示服务器是一个程序,它是图形用户界面(GUI)的基本组件,位于图形界面和内核之间。其主要任务是协调客户端与其他操作系统,硬件以及彼此之间的输入和输出。因此,借助显示服务器,您可以将计算机与GUI一起使用。没有它,您将只能使用命令行界面。

Linux 迷:Xorg,X11,Wayland?Linux显示服务器和协议介绍

Linux中提供了三种显示服务器协议。X11和Wayland是其中两个。第三个Mir(不常用)请自行搜索。

img

X Window System(通常仅称为X或X11)确实很古老。它最初起源于1984年,最终成为大多数类似UNIX的操作系统(包括Linux)的默认窗口系统。

  • Xorg基于客户端/服务器模型,因此允许客户端在另一台计算机上本地或远程运行。
  • X.Org服务器是X.Org基金会管理的X Window System显示服务器的免费开放源代码实现。
  • X server运行在工作站上,而用户在具有更强处理能力的远程计算机上运行应用程序是很常见的。

img

Wayland由X.Org开发人员Kristian Hogsberg于2008年作为个人项目开始。

  • 与X相比的主要优势在于它是从头开始的。X的复杂性的主要原因之一。
  • 与X情况一样,客户端在接收到事件时会作为响应更新用户界面(UI)。但是,在Wayland中,渲染发生在客户端中,并且客户端只是向合成器发送请求以指示已更新的区域。
  • Wayland在安全性方面也很出色。使用X11,可以通过允许任何程序在后台存在并读取X11区域中打开的其他窗口所发生的事情来执行称为“键盘记录”的操作。使用Wayland,这根本不会发生,因为每个程序都是独立工作的。

安全:允许任何程序在后台存在并读取X11区域中打开的其他窗口所发生的事情来执行称为“键盘记录”的操作,使用Wayland,各个程序键盘记录相互独立

目前:X server协议提供的大部分功能不再使用。但大多数用于Linux的视频游戏和图形密集型应用程序仍为X11编写,X11所做的几乎所有工作都重新分配给了各个应用程序和窗口管理器。许多封闭源代码的图形驱动程序,例如NVIDIA GPU的驱动程序,都尚未完全提供对Wayland的支持。然而,所有这些旧特性仍然存在,给所有这些应用程序带来了压力,损害了性能和安全性。

dolphin文件管理器

连接sftp命令

打开Dolphin文件管理器地址栏上直接输入,按回车会进行用户名密码的校验:

1
sftp://<用户名>@<主机地址/域名>:<端口号>/

常用命令

系统信息

1
2
3
4
# 大部分适用
uname -a
# 所有linux适用
cat /etc/os-release

sudo

参考:

ArchLinux-WiKi:Sudo

密码验证

每次sudo的时候都会询问密码是令Archer使用非常烦的,除非单纯为了系统安全。于是去除密码验证。

/etc/sudoers

1
2
3
4
5
6
7
8
9
10
11
12
13
## Uncomment to allow members of group wheel to execute any command
# 取消注释允许wheel组下所有成员执行任何命令
%wheel ALL=(ALL) ALL
%wheel ALL=(ALL:ALL) ALL

## Same thing without a password
# 相同命令不需要密码
%wheel ALL=(ALL) NOPASSWD: ALL
%wheel ALL=(ALL:ALL) NOPASSWD: ALL

## To disable asking for a password for user USER_NAME:
# 取消询问某个用户的密码(关键)
Defaults:USER_NAME !authenticate

type

内部命令:linux系统加载运行时shell就被加载并驻留在系统内存中,比如:exit,history,cd,echo等
外部命令:在系统加载时并不随系统一起被加载到内存中,而是在需要时才将其调用内存,外部命令是在bash之外额外安装的,通常放在/bin,/usr/bin,/sbin,/usr/sbin……等等。可通过“echo $PATH”命令查看外部命令的存储路径,比如:ls、vi等。

语法:type(选项)(参数)

选项:

  • -p:如果给出的指令为外部指令,则显示其绝对路径
  • -a:在环境变量“PATH”指定的路径中,显示给定指令的信息,包括命令别名

参数:指给出的命令

kill

参考:

CSDN-葛伦儿:Linux 的 Kill -9命令

语法:

1
kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]

参数:

  • -n signum信号量

    • 输入kill -n打印所有kill可用信号量

常用:

  • kill -9 <pid> 9 (SIGKILL),强行杀死一个进程
  • kill -15 <pid> 15 (SIGTERM)信号后,先释放自己的资源,然后在停止

信号量表格:

Signal Name Signal Name Description
SIGTERM 15 Termination (ANSI)
Termination (ANSI) 9 Kill(can’t be caught or ignored) (POSIX)
SIGHUP 1 Hangup (POSIX)

ps

ps(Process Status) ,它所提供的查看结果并不动态连续的;如果想对进程时间监控,应用 top 工具。

参考:

CSDN-趙妏斌:ps -ef | grep mysql命令详解

参数:

  • -A  显示所有程序
  • -e  此参数的效果和指定”A”参数相同
  • -f  显示UID,PPIP,C与STIME栏位
  • j BSD job control format.
  • a Lift the BSD-style “only yourself” restriction, which is imposed upon the set of all processes when some BSD-style (without “-“) options are used or when the ps personality setting is BSD-like. The set of processes selected in this manner is in addition to the set of processes selected by other means. An alternate description is that this option causes ps to list all processes with a terminal (tty), or to list all processes when used together with the x option.
  • u user user name
  • x Lift the BSD-style “must have a tty” restriction, which is imposed upon the set of all processes when some BSD-style (without “-“) options are used or when the ps personality setting is BSD-like. The set of processes selected in this manner is in addition to the set of processes selected by other means. An alternate description is that this option causes ps to list all processes owned by you (same EUID as ps), or to list all processes when used together with the a option.
  • f ASCII art process hierarchy (forest).

常用:

  • ps -ef | grep <程序名称>,根据程序名称查找正在运行的程序
  • ps au ,仅显示命令行进程,用户、cpu占用、内存占用 …
  • ps aux/auxf(树) ,显示所有进程,用户、cpu占用、内存占用 …
  • ps axjf ,BSD格式显示所有进程树

执行ps打印:

UID PID PPID C STIME TTY TIME CMD
root 1 0 0 17:34 ? 00:00:01 /sbin/init
root 2 0 0 17:34 ? 00:00:00 [kthreadd]
  • UID 程序被该 UID 所拥有
  • PID 就是这个程序的 ID
  • PPID 则是其上级父程序的ID
  • C CPU 使用的资源百分比
  • STIME 系统启动时间
  • TTY 登入者的终端机位置(某个命令行)
  • TIME 使用掉的 CPU 时间
  • CMD 所下达的指令为何

which

The which utility takes a list of command names and searches the path for each executable file that would be run had these commands actually been invoked.

which实用程序获取一个命令名称列表,并搜索每个命令的路径

如果调用这些命令,将会运行的可执行文件。

语法:

1
which [-as] program ...

示例:

1
2
3
4
5
6
7
 /usr/bin/ which -s mysql
/usr/local/bin/mysql -> /usr/local/Cellar/mysql/8.0.31/bin/mysql
 /usr/bin/ which -a docker
/usr/local/bin/docker
/usr/local/bin/docker
 /usr/bin/ which docker
/usr/local/bin/docker

systemctl

列出所有enable进程

1
systemctl list-unit-files --state=enabled

du

du 命令(磁盘使用)是 Linux 系统中用于查看磁盘空间使用情况的命令,常用于检查文件或目录的磁盘使用情况,以及查找磁盘空间占用过多的文件或目录。

常用

  • du -sh *:显示当前目录下所有文件/目录的大小,并以易读的方式显示目录下所有文件/目录总大小。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    arch-linux ॐ  ~/Desktop:
    6123 ◯ du -sh *
    4.2G 大来智能科技1.2G 大来智能科技.tar.gz
    4.0K 日志.md
    109M Dailyfresh-B2C
    897M hexo-code
    arch-linux ॐ ~/Desktop:
    6124 ◯ ls
    大来智能科技 大来智能科技.tar.gz 日志.md Dailyfresh-B2C hexo-code
  • du -sh当前所在目录的总大小。

  • du -sh /path/to/directory:显示指定目录内所有文件总的大小,并以易读的方式显示总大小;如果指定目录写成/path/to/directory/*,则显示目录下所有文件/目录总大小。

  • du -h --max-depth=1 /path/to/directory:显示指定目录下一级子目录或文件的大小,等同于指定目录写成/path/to/directory/*,并以易读的方式显示总大小。

  • du -sh ~/.cache/yay/*| sort -hr:显示指定目录下一级子目录或文件的大小,并按照大小进行逆序排序。

参数

  • -h:以易读的方式显示文件大小,单位为 KB、MB、GB 等。
  • -s:仅显示总大小,不显示子目录或文件的详细信息。
  • --max-depth=1:限制显示深度为 1 级,即仅显示子目录或文件的大小,不显示其子目录或文件的大小。
  • -a:显示目录中所有文件和子目录的大小,包括隐藏文件。
  • | sort -hr:将 du -ah 命令的输出结果通过管道符传递给 sort 命令进行排序,其中 -h 选项表示以易读的方式排序,-r 选项表示逆序排序。

netstat

列出所有当前监听的TCP端口

1
netstat -tln

这将显示所有当前活动的网络连接,包括TCP和UDP连接,以及监听的端口号

1
netstat -tuln

这将显示当前所有正在使用的端口以及它们对应的进程ID(PID)和进程名称

1
netstat -tulpn
  • -t 选项表示只显示TCP协议相关的连接和监听状态。
  • -u 选项表示只显示UDP协议相关的连接和监听状态。
  • -l 选项表示只显示监听状态(被本地主机监听的端口)。
  • -p 选项表示显示与端口相关的进程信息,包括进程ID(PID)和进程名称。
  • -n 选项表示以数值形式显示IP地址和端口号,而不进行主机和端口的反向解析。

常用软件

OpenSSH (请点击标签: Linux软件)

APFS FUSE Driver for Linux

Linux上读取apfs的工具,常应用于Mac Linux双系统,Mac系统出问题,切换Linux上读取Mac文系统资料。

参考:

GitHub-sgan81:APFS FUSE Driver for Linux

挂载apfs分区

1
2
# 将apfs分区挂载至~/Desktop/MacOS目录下
sudo apfs-fuse /dev/sda3 ~/Desktop/MacOS

卸载分区

1
2
# 卸载apfs分区
sudo umount ~/Desktop/MacOS

常见问题

桌面卡顿

alt+ctrl+f2

切换另一个用户命令行

root登陆

尝试执行以下命令

1
systemctl restart sddm
1
systemctl restart display-manager

其实就是重启桌面的关键程序,原理后面再研究,应急手段