一、换源

许多linux发行版自带包管理器,不同软件源速度不一样。

因为大多数官方自带软件源都在国外,国内访问速度很慢。因此使用一键换源脚本linuxmirrors官网来更换国内软件源,选择离你近的节点

1
2
3

bash <(curl -sSL https://linuxmirrors.cn/main.sh)

二、常用命令(以ubuntu为例)

ls

ls(list)获取当前文件夹下的文件,使用方法

1
2
3
4
5
6
7

ls [options] [directory]

options:
-a,全部文件包括隐藏文件
-h,以人类可读的形式输出
-l,输出文件详细信息包括权限、大小和所属

eza 是一款现代化的替代方案,用来取代 Unix 和 Linux 系统默认附带的 ls 命令,它在传统 ls 的基础上,提供了更多功能、更优的默认输出、更现代的风格。

它支持颜色区分文件类型、权限、Git 状态等,还支持符号链接、扩展属性等内容。最重要的是,它是一个小巧的单一二进制文件,运行非常快,安装也方便。

ubuntu安装eza:

apt install eza```.
1
2
3
4
5

```bash

eza -T -L 2 -I node_modules

  • -T 树型输出和tree差不多
  • -L 2 指定输出层数为2
  • -I 忽略指定目录,这里以node_modules为例

另外也支持ls的用法比如

1
2
3

eza -lha

eza还支持显示图标带上--icons参数,不过需要安装nerdfront字体

cat

cat(concatenate)实际的功能是连接多个文件,然后输出。但是当只有一个文件的时候,cat 就会直接输出这个文件,所以 cat 最常见的用途就是输出单个文件。

用法:

1
2
3
# 输出File的内容
cat [option] File

bat 是一个 cat 的替代品,输出支持语法高亮和分页。可以使用如下命令安装:

1
2
3

sudo apt install bat

用法

1
2
3

batcat [option] File

1
2
3
4
5
6
7
8
9
10
11
12
13
14

### touch

摸一下文件,更新文件最后修改时间,常常用来创建文件

### find

寻找文件

```bash

# 在 PATH(路径)中根据 EXPRESSION(表达式)搜索文件
find [OPTION] PATH [EXPRESSION]

常用的表达式:

选项 含义
-name ‘*.ext’ 文件名后缀为 ext。其中 * 是任意匹配符
-type d 文件类型为目录,其他的类型例如 f(普通文件)
-size +1M 大于 1M 的文件,+ 代表大于这个大小,对应地,- 代表小于之后的大小
-or 或运算符,代表它前后两个条件满足一个即可

fd 是 find 的更现代、好用的替代。在 Ubuntu 下需要安装 fd-find 包,并且命令名为 fdfind(而非 fd)。可以彩色输出,观感更好。

tar

打包压缩命令

用法

1
2
3

tar [OPTIONS] FILE...

常用选项:

选项 含义
-A 将一个存档文件中的内容追加到另一个存档文件中
-r, –append 将一些文件追加到一个存档文件中
-c, –create 从一些文件创建存档文件
-t, –list 列出一个存档文件的内容
-x, –extract, –get 从存档文件中提取出文件
-f, –file=ARCHIVE 使用指定的存档文件
-C, –directory=DIR 指定输出的目录
-v, –verbose 详细列出处理的文件
-z, –gzip, –gunzip, –ungzip 使用 gzip 算法处理存档文件
-j, –bzip2 使用 bzip2 算法处理存档文件
-J, –xz 使用 xz 算法处理存档文件
–zstd 使用 zstd 算法处理存档文件
-a, –auto-compress 通过后缀自动选择压缩算法(推荐)

三、用户

查看 /etc/passwd文件,来得到系统中用户的配置信息。

在此文件中,每一行都代表一个用户,每行中用户信息由冒号 : 隔开,存储着包括用户名、用户编号 (UID, User ID)、家目录位置等信息。更多介绍,可以通过man 5 passwd查阅。

根用户

在前文中我们知道,在使用 apt 安装软件时,我们需要在前面加上 sudo。这可以使我们以根用户 (root) 的身份安装软件。

根用户 / root 用户在 Linux 操作系统中拥有最高的权限,可以对系统做任何操作(包括删除所有系统文件这一类极端危险的操作)。root 用户的用户数据存储在 /root 下。

在我们使用 sudo 的时候,输入自己的密码并验证正确之后,sudo 就会以 root 用户的身份,执行后面我们希望执行的命令。而使用 apt 安装的软件存储在了系统的目录下,所以必须要以 root 用户的身份安装。这就是我们平时需要 sudo 来安装软件的原因。

系统用户

除了你、root 和其他在用你的电脑/服务器的人(如果有)以外,剩下还有很多用户,如 nobody, www-data 等。它们由系统或相关程序创建,用于执行服务等系统任务。不要随意删除这些用户,以免系统运行出现问题。

普通用户

普通用户可以登录系统,并对自己的家目录下的文件进行操作。所有普通用户的家目录都在 /home/ 下,位于 /home/username/ 的位置,其中 username 是用户名。

普通用户无法直接修改系统配置,也无法为系统环境安装或卸载软件。

四、文件层次结构

/bin
存储必须的程序文件,对所有用户都可用。

/boot
存储在启动系统时需要的文件。

/dev
存储设备文件。

/etc
存储系统和程序的配置文件。

/home
用户的家目录。存储用户自己的信息。

/lib
存放系统运行必须的程序库文件。

/media 和 /mnt
这两个目录都用于挂载其他的文件系统。/media 用于可移除的文件系统(如光盘),而 /mnt 用于临时使用。

/opt
存放额外的程序包。一般将一些大型的、商业的应用程序放置在这个目录。

root
root 用户的家目录。

/run
系统运行时的数据。在每次启动时,里面的数据都会被删除。

/sbin
存储用于系统管理,以及仅允许 root 用户使用的程序。如 fsck(文件系统修复程序)、reboot(重启系统)、useradd(添加用户)等。

/srv
存储网络服务的数据。

/tmp
临时目录,所有用户都可使用。

/usr
大多数软件都会安装在此处。其下有一些目录与 / 下的结构相似,如:
/usr/bin
/usr/lib
/usr/sbin

/usr/include: 存储系统通用的 C 头文件。当然,里面会有你非常熟悉的头文件,如 stdio.h。
/usr/local: 存储系统管理员自己安装的程序,这些文件不受系统的软件管理机制(如 apt)控制。/usr/local 里面的层次结构和 /usr 相似。
/usr/share: 存储程序的数据文件(如 man 文档、GUI 程序使用的图片等)。

/var
存储会发生变化的程序相关文件。例如下面的目录:
/var/log:存储程序的日志文件。
/var/lib:存储程序自身的状态信息(如 lock file)。这个目录和 library 的关系并不大。
/var/run:存储程序运行时的数据(部分发行版会将该目录符号链接到 /run 目录)。
/var/spool:存储「等待进一步处理」的程序数据。

参考资料:

Linux 101