Skip to content

基础命令

man xxx 查看帮助手册(如查看 du:man du)。

find 文件名查找

bash
find . -iname '*google*' -d 1
# . 当前位置;/ 根目录
# i 不区分大小写;name 要搜索的文件名,后面紧跟文件名
# d 查找深度设置为 1,默认好像是无限递归查询?

which 命令查找

bash
which brew
# /opt/homebrew/bin/brew

whereis 命令查找

查找结果除了显示命令所在的命令以外,还会列出帮助文档所在的目录。

bash
where brew
# /opt/homebrew/bin/brew
whereis brew
# brew: /opt/homebrew/bin/brew /opt/homebrew/share/man/man1/brew.1

grep 内容查找

global regular expression

bash
grep -i -n 'python' .zshrc
# -i:忽略大小写 -n:显示行号 目标内容 目标文件
# 104:alias python="/usr/local/bin/python3"

locate 文件名查找

find 遍历磁盘查找文件,占多资源,相对较慢。而 locate 命令在 Linux 文件数据库中查找,速度快。MacOs 貌似默认没有这个。

bash
locate -i '*google*'

du:disk usage 目录/文件大小

用于显示目录或文件的大小。

bash
# colab notebook 根目录 磁盘使用查询
!du -ahd 1 / | sort -hr

-d 迭代深度

-d 表示迭代深度,当前目录深度是 01 表示最深迭代到当前目录的下一个深度,等价的命令是 du --max-depth 1

-h 人类可读

-h--human-readableK,M,G 为单位,提高信息的可读性。

-s 文件大小总计

-s--summarize 仅显示总计,包含子目录。

|:pipe 管道命令

  • 选取命令:cut、grep
  • 排序命令:sort、wc、uniq
    -r 将排序结果逆序

echo 打印信息

bash
echo $SHELL # 查看当前shell
# /bin/zsh

目录参考

在 Linux 系统中,文件系统是树状结构,每个目录都有特定的用途。以下是常见 Linux 目录及其用途的说明:

顶级目录

  • /: 根目录。文件系统的起点。所有其他目录和文件都是从根目录派生的。

  • /bin: 二进制可执行文件目录。存放基本用户命令,如 lscpmv 等,适合单用户模式下的基本操作。

  • /boot: 引导加载器文件目录。包含启动 Linux 系统所需的文件,如内核映像 (vmlinuz)、引导加载器配置文件等。

  • /dev: 设备文件目录。包含代表系统设备的文件,如硬盘、终端、音频设备等。例如 /dev/sda 代表一个硬盘设备。

  • /etc: 配置文件目录。包含系统管理和配置文件,如网络配置、服务配置、用户密码文件等。

  • /home: 用户家目录。每个用户在此目录下有自己的子目录,用于存储个人文件和配置。

  • /lib: 库文件目录。包含系统和应用程序使用的共享库文件,以及加载这些库的内核模块。

  • /media: 可移动媒体挂载点。用于挂载可移动设备(如 CD、USB 闪存驱动器)。

  • /mnt: 临时挂载点。系统管理员可以用来临时挂载文件系统。

  • /opt: 可选应用程序目录。用于安装附加的应用程序包,常用于第三方软件。

  • /proc: 进程和内核信息虚拟文件系统。提供内核、进程信息,常用于系统监控和管理。

  • /root: 根用户的家目录。超级用户(root)登录后的默认目录。

  • /run: 运行时文件系统。存放系统启动后生成的临时文件,如进程 PID 文件和套接字文件。

  • /sbin: 系统管理二进制文件目录。包含系统管理员使用的工具,如 fdiskifconfig 等。

  • /srv: 服务数据目录。用于存放本地服务提供的数据(如网页服务器、FTP 服务器的数据)。

  • /sys: 系统信息虚拟文件系统。提供有关硬件、设备驱动程序的信息。

  • /tmp: 临时文件目录。用于存放临时文件,系统会定期清理这个目录。

  • /usr: 用户二级文件系统。包含用户的二进制文件、库文件、文档、和其他文件。

    • /usr/bin:非基本用户命令的二进制文件,如 gcc
    • /usr/sbin:非基本系统管理二进制文件,如 httpd
    • /usr/lib:非基本库文件。
    • /usr/local:本地安装的软件和脚本,常用于系统管理员安装的程序。
    • /usr/share:共享数据,如 man 手册页、文档等。
  • /var: 变量数据目录。用于存放经常变化的数据,如日志文件、缓存文件、邮件队列、打印队列等。

    • /var/log:日志文件。
    • /var/spool:任务队列数据,如邮件、打印任务。
    • /var/tmp:用于长时间保留的临时文件。

专用目录(有时并不存在)

  • /lost+found: 恢复目录。用于文件系统检查过程中恢复的文件。

  • /snap: Snap 软件包的安装目录。主要用于 Canonical 的 Ubuntu 系统上。

目录结构图

plaintext
/
├── bin
├── boot
├── dev
├── etc
├── home
├── lib
├── media
├── mnt
├── opt
├── proc
├── root
├── run
├── sbin
├── srv
├── sys
├── tmp
├── usr
│   ├── bin
│   ├── lib
基础命令 has loaded