Linux 目录结构和命令学习笔记
目录结构
Linux 的目录结构遵循 Filesystem Hierarchy Standard (FHS),确保了不同的 Linux 发行版之间有一致的目录结构。以下是主要的目录及其用途:
-
/ (根目录)
- 所有文件和目录的起点。
-
/bin (Binary)
- 存放基本用户命令的二进制文件,如
ls
、cp
、mv
等。
- 存放基本用户命令的二进制文件,如
-
/boot
- 存放引导加载程序相关的文件,包括内核和启动引导配置文件。
-
/dev (Device)
- 包含设备文件,表示系统中的各种设备。
-
/etc
- 存放系统管理和配置文件,如网络配置、用户账户信息等。
-
/home
- 各用户的主目录,用户数据文件通常存放在这里。
-
/lib (Library)
- 存放系统和程序所需的共享库文件,以及内核模块。
-
/media
- 挂载点,用于临时挂载可移动媒体设备(如 CD-ROM、USB)。
-
/mnt
- 挂载点,用于临时挂载文件系统。
-
/opt (Optional)
- 用于安装附加的应用软件包。
-
/proc
- 虚拟文件系统,存放系统进程和内核信息。
-
/root
- 超级用户(root 用户)的主目录。
-
/run
- 用于存放系统启动以来的信息。
-
/sbin (System Binary)
- 存放系统管理命令的二进制文件,只有 root 用户可以运行的命令。
-
/srv (Service)
- 存放服务相关的数据文件。
-
/tmp (Temporary)
- 存放临时文件,系统重启后可能会被清空。
-
/usr (User)
- 包含用户应用程序和文件的子目录,如 /usr/bin、/usr/lib。
-
/var (Variable)
- 包含经常变化的文件,如日志文件、缓存、邮件等。
基本格式
Linux 命令的基本格式通常为:
command [选项] [参数]
- command: 命令名,如
ls
、cd
、mkdir
等。 - 选项: 修改命令行为的选项,通常以
-
或--
开头,如-l
、-a
、--help
。 - 参数: 命令操作的对象,如文件名或目录名。
文件和目录操作
-
ls: 列出目录内容。
ls /home ls -l /home ls -a /home
ls
: 列出指定目录的内容。如果未指定目录,则列出当前目录的内容。-l
: 以长格式列出目录内容,显示文件的详细信息,包括权限、所有者、文件大小和最后修改时间。-a
: 列出所有文件,包括隐藏文件(以.
开头的文件)。
-
cd: 更改当前目录。
cd /home cd .. cd ~
cd /path/to/directory
: 进入指定目录。cd ..
: 返回上一级目录。cd ~
或cd
: 返回到当前用户的主目录。
-
pwd: 显示当前工作目录。
pwd
pwd
: 显示当前工作目录的绝对路径。
-
mkdir: 创建新目录。
mkdir new_directory
mkdir directory_name
: 创建一个名为directory_name
的新目录。
-
rmdir: 删除空目录。
rmdir empty_directory
rmdir directory_name
: 删除一个名为directory_name
的空目录。
-
rm: 删除文件或目录。
rm file_name rm -r directory_name
rm file_name
: 删除一个名为file_name
的文件。-r
: 递归删除目录及其内容。
-
cp: 复制文件或目录。
cp source_file destination_file cp -r source_directory destination_directory
cp source destination
: 复制文件。-r
: 递归复制目录及其内容。
-
mv: 移动或重命名文件或目录。
mv old_name new_name mv file_name /path/to/destination
mv old_name new_name
: 重命名文件或目录。mv file_name destination
: 移动文件到指定目录。
文件查看和编辑
-
cat: 连接文件并显示其内容。
cat file_name
cat file_name
: 显示文件内容。
-
more: 分页显示文件内容。
more file_name
more file_name
: 分页显示文件内容,可以使用空格键翻页。
-
less: 分页显示文件内容,支持向前翻页。
less file_name
less file_name
: 分页显示文件内容,可以使用上下箭头键滚动。
-
head: 显示文件的前几行。
head file_name head -n 5 file_name
head file_name
: 显示文件的前 10 行。-n
: 指定显示的行数。
-
tail: 显示文件的后几行。
tail file_name tail -n 5 file_name tail -f file_name
tail file_name
: 显示文件的后 10 行。-n
: 指定显示的行数。-f
: 实时跟踪文件的新增内容。
文件权限
-
chmod: 更改文件或目录的权限。
chmod 755 file_name
chmod permissions file_name
: 更改文件或目录的权限。755
表示文件所有者可以读写执行,其他用户可以读和执行。
-
chown: 更改文件或目录的所有者。
chown user:group file_name
chown user:group file_name
: 更改文件或目录的所有者和组。
-
chgrp: 更改文件或目录的组。
chgrp group_name file_name
chgrp group_name file_name
: 更改文件或目录的组。
系统管理
-
ps: 显示当前运行的进程。
ps aux
ps
: 显示当前运行的进程。aux
: 显示所有进程的详细信息。
-
top: 实时显示系统资源使用情况和进程信息。
top
top
: 实时显示系统资源使用情况和进程信息,可以按q
键退出。
-
kill: 终止进程。
kill PID kill -9 PID
kill PID
: 终止指定 PID 的进程。-9
: 强制终止指定 PID 的进程。
-
df: 显示文件系统磁盘空间使用情况。
df -h
df
: 显示文件系统磁盘空间使用情况。-h
: 以人类可读的格式显示磁盘空间使用情况。
-
du: 显示目录或文件的磁盘使用情况。
du -h du -sh directory_name
du
: 显示目录或文件的磁盘使用情况。-h
: 以人类可读的格式显示磁盘使用情况。-s
: 显示目录的总磁盘使用情况。
-
free: 显示系统的内存使用情况。
free
-h
- **`free`**: 显示系统的内存使用情况。
- **`-h`**: 以人类可读的格式显示内存使用情况。
7. **uname**: 显示系统信息。
```sh
uname -a
uname
: 显示系统信息。-a
: 显示所有系统信息。
网络相关
-
ping: 测试网络连接。
ping host
ping host
: 发送 ICMP ECHO_REQUEST 数据包到网络主机,测试网络连接。
-
ifconfig: 显示或配置网络接口(在较新版本的 Linux 中已被
ip
命令取代)。ifconfig
ifconfig
: 显示或配置网络接口。
-
ip: 显示或配置网络接口。
ip a
ip
: 显示或配置网络接口。a
: 显示所有网络接口的详细信息。
-
netstat: 显示网络连接、路由表、接口状态等信息。
netstat -tuln
netstat
: 显示网络连接、路由表、接口状态等信息。-tuln
: 显示所有监听的端口。
-
wget: 从网络下载文件。
wget URL
wget URL
: 下载指定 URL 的文件。
-
curl: 传输数据,支持多种协议。
curl -O URL
curl -O URL
: 下载指定 URL 的文件并保存为本地文件。
文本处理
-
grep: 搜索文本中的模式。
grep 'pattern' file_name grep -r 'pattern' directory_name
grep 'pattern' file_name
: 在文件中搜索模式。-r
: 递归搜索目录中的模式。
-
awk: 文本处理工具,用于提取和处理文本。
awk '{print $1}' file_name
awk '{print $1}' file_name
: 打印文件的第一列。
-
sed: 流编辑器,用于文本的查找和替换。
sed 's/old/new/g' file_name
sed 's/old/new/g' file_name
: 将文件中的所有old
替换为new
。
打包和压缩
-
tar: 用于创建和解压缩 tar 包。
tar -cvf archive.tar directory_name tar -xvf archive.tar tar -czvf archive.tar.gz directory_name tar -xzvf archive.tar.gz
tar -cvf archive.tar directory_name
: 创建一个 tar 包。-xvf
: 解压一个 tar 包。-czvf
: 创建一个 gzip 压缩的 tar 包。-xzvf
: 解压一个 gzip 压缩的 tar 包。
-
zip: 压缩文件或目录。
zip archive.zip file_name zip -r archive.zip directory_name
zip archive.zip file_name
: 压缩文件。-r
: 递归压缩目录。
-
unzip: 解压 zip 包。
unzip archive.zip
unzip archive.zip
: 解压 zip 包。