
Table of Contents
文件系统 Link to 文件系统
目录结构 Link to 目录结构
Linux 的目录结构遵循 FHS(Filesystem Hierarchy Standard,文件系统层次结构标准),常见的顶级目录及其作用如下:
1234567891011121314151617181920212223
├── bin # 二进制可执行文件(普通用户常用命令,如 ls, cp)
├── boot # 启动文件(如内核 vmlinuz、GRUB 引导程序)
├── dev # 设备文件(如 /dev/sda 硬盘,/dev/null)
├── etc # 配置文件(系统和服务的配置,如 /etc/passwd)
├── home # 普通用户的主目录(如 /home/user)
├── lib # 共享库和内核模块(32 位系统的库)
├── lib64 # 64 位系统的共享库
├── media # 可移动介质挂载点(如 USB 设备、光盘)
├── mnt # 临时挂载点
├── opt # 可选软件包(如第三方应用)
├── proc # 进程和系统信息的虚拟文件系统(如 /proc/cpuinfo)
├── root # root 用户的主目录
├── run # 运行时数据(如 PID 文件、Socket)
├── sbin # 系统管理命令(如 fdisk, reboot,仅 root 可用)
├── srv # 服务相关数据(如 Web 服务器数据)
├── sys # 系统信息的虚拟文件系统(如 /sys/class)
├── tmp # 临时文件(重启后可能会清除)
├── usr # 用户级应用程序和库(类似 /usr/bin, /usr/lib)
│ ├── bin # 用户程序(如 gcc, python)
│ ├── lib # 共享库文件
│ ├── local # 本地安装的软件(如 /usr/local/bin)
│ ├── share # 共享数据(如 /usr/share/man)
├── var # 可变数据(如日志 /var/log, 邮件 /var/mail)
重点目录 Link to 重点目录
/etc
:系统的配置文件目录,所有服务和系统级软件的配置都在这里。/var/log
:日志文件目录,存储系统和应用程序日志,如syslog
、dmesg
。/proc
和/sys
:虚拟文件系统,提供系统信息,如 CPU、内存、进程信息等。/home
和/root
:普通用户和超级用户的家目录。
路径 Link to 路径
绝对路径 Link to 绝对路径
从根目录 / 开始,完整地指定文件或目录的位置。 例如:
12
/home/user/documents/file.txt
/etc/nginx/nginx.conf
相对路径 Link to 相对路径
基于当前目录(pwd 查看当前目录)。 常用符号:
- . 代表当前目录(./file.txt 指当前目录下的 file.txt)。
- .. 代表上一级目录(../file.txt 指上一级目录中的 file.txt)。
- ~ 代表用户的主目录(~/file.txt 相当于 /home/username/file.txt)。 示例 当前目录的文件:
1
cat ./file.txt # 等同于 cat file.txt
上一级目录的文件:
12
cd .. # 返回上一级目录
ls ../docs # 列出上一级目录下 docs 文件夹中的内容
用户主目录的文件:
12
cd ~ # 进入当前用户的主目录
ls ~/Downloads # 查看主目录的 Downloads 文件夹
命令行 Link to 命令行
命令行提示符 Link to 命令行提示符
命令行提示符是用户与操作系统交互的界面,通常显示当前用户、主机名和当前目录。
命令行提示符的组成部分
- 用户名:当前登录的用户名
- 主机名:当前连接的主机名
- 当前目录:当前所在的目录
- 命令行提示符:通常是一个 $ 或 # 符号,表示命令行提示符
例如
1
root@songhahaha:~#
root@songhahaha:~# 是一个 Linux 命令行提示符(prompt),它包含了以下几个部分:
root:当前用户是 root(超级用户)。root 拥有最高的权限,可以对系统进行任何操作。
@:这是用户名和主机名之间的分隔符。
songhahaha:这表示计算机的主机名(hostname),在这个例子中,主机名是 songhahaha。
~:这是当前工作目录,~ 表示用户的主目录。在 root 用户的情况下,它表示 /root 目录。
#:这是命令提示符,表示你以超级用户(root)身份登录。普通用户的命令行提示符通常是 $,而 # 表示具有更高权限的超级用户。
总结:
- root@songhahaha:当前用户是 root,主机名是 songhahaha。
- ~:当前所在的目录是用户的主目录(对于 root,通常是 /root)。
- #:表示你以超级用户身份(root)在操作。
管道 Link to 管道
管道是一种将一个命令的输出作为另一个命令的输入的机制。
1
ls -l /etc | grep passwd
1
ps aux | grep process_name
ps aux:
- ps:显示当前系统上的进程信息。
- a:显示所有用户的进程,而不仅仅是当前用户的。
- u:显示进程的详细信息,包括用户名、CPU 和内存使用等。
- x:包括没有终端的进程(即后台进程)。 这个命令会列出系统中所有进程的详细信息。
|
:管道符,用于将前一个命令的输出传递给后一个命令。
grep process_name:
- grep:是一个文本搜索工具,它会过滤输入中的内容,并输出与 process_name 匹配的行。
- process_name:是你要查找的进程名称。
在这里,grep process_name
会查找所有包含 process_name 的行,即过滤出包含指定进程名称的进程信息。
重定向 Link to 重定向
重定向是一种将命令输出重定向到文件或设备的方法。
输出重定向:
1
ls -l /etc > output.txt
或者
1
ls -l /etc >> output.txt
输入重定向:
1
cat < input.txt
错误重定向:
12
ls -l /etc 2> error.txt # 将错误信息输出到 error.txt 文件中
ls -l /etc 2>> error.txt # 将错误信息追加到 error.txt 文件中
同时重定向标准输出和标准错误:
1
command &> output.txt
后台运行 Link to 后台运行
在命令后面加上 &
符号,可以使命令在后台运行。
1
command &
nohup 命令可以使命令在后台运行,并且即使退出终端也不会停止。
1
nohup command &
基础命令 Link to 基础命令
常见命令 Link to 常见命令
—help 命令用于显示命令的帮助信息。
BASH12ls --help cat --help
ssh 命令用于安全地登录到远程计算机。
BASH1ssh user@host
cd 命令用于切换当前工作目录。
BASH1cd /path/to/directory
ls 命令用于列出目录中的文件。
BASH1ls /path/to/directory
常见选项:
- -l:以长格式显示文件详细信息
- -a:显示所有文件,包括隐藏文件
- -t:按修改时间排序(默认最新的在前)
- -r:反向排序
- -S:按文件大小排序(默认从大到小)
- -R:递归列出所有子目录中的内容
pwd 命令用于显示当前工作目录。
BASH1pwd
cat 命令用于显示文件内容。
BASH1cat /path/to/file
mkdir 命令用于创建新目录。
BASH1mkdir /path/to/directory
rmdir 命令用于删除空目录。
BASH1rmdir /path/to/directory
cp 命令用于复制文件或目录。
BASH12cp source_file destination cp -r source_directory destination # 递归复制目录及其内容
mv 命令用于移动文件或目录。
BASH1mv source_file destination
rm 命令用于删除文件或目录。
BASH12rm source_file rm -r source_directory # 递归删除目录及其内容
touch 命令用于创建空文件或更新文件的访问和修改时间。
BASH1touch filename
tar 命令用于创建、查看和提取归档文件。
BASH12345678# 创建归档文件 tar -cvf archive.tar files/ # 查看归档文件内容 tar -tvf archive.tar # 提取归档文件 tar -xvf archive.tar
wget/curl 用于下载文件的工具。
BASH12345# 使用 wget 下载 wget https://example.com/file # 使用 curl 下载 curl -O https://example.com/file
grep 命令用于在文件中搜索文本。
BASH12345678# 在文件中搜索文本 grep "pattern" file # 递归搜索目录 grep -r "pattern" directory/ # 忽略大小写 grep -i "pattern" file
ifconfig 命令用于配置和显示网络接口信息。
BASH12345# 显示所有网络接口 ifconfig # 显示特定接口 ifconfig eth0
df/du 命令用于显示磁盘使用情况。
BASH12345678# 显示文件系统使用情况 df -h # 显示目录大小 du -sh directory/ # 显示目录下各文件大小 du -h directory/
ping 命令用于测试网络连接。
BASH1ping hostname
权限和用户管理 Link to 权限和用户管理
chmod
chmod
命令用于更改文件或目录的权限。权限分为三类:所有者(Owner)、所属组(Group)、其他用户(Others)。每个类别可以设置以下权限:- 读(r):允许读取文件内容或列出目录内容。
- 写(w):允许修改文件内容或在目录中创建/删除文件。
- 执行(x):允许执行文件或进入目录。
权限可以用数字表示:
4
代表读权限(r)2
代表写权限(w)1
代表执行权限(x)
通过将这些数字相加,可以设置不同的权限组合。例如:
7
表示读、写、执行权限(4+2+1)6
表示读、写权限(4+2)5
表示读、执行权限(4+1)
BASH1chmod 755 filename
7
(所有者):读、写、执行权限5
(所属组):读、执行权限5
(其他用户):读、执行权限
chown
chown
命令用于更改文件或目录的所有者和所属组。BASH1chown [选项] 所有者[:所属组] 文件或目录
BASH1chown user:group filename
- 将
filename
的所有者更改为user
,所属组更改为group
。
- 将
chgrp 命令
chgrp
命令用于更改文件或目录的所属组。BASH1chgrp [选项] 所属组 文件或目录
BASH1chgrp groupname filename
- 将
filename
的所属组更改为groupname
。
- 将
umask
umask
命令用于设置默认的文件和目录创建权限。umask
值是一个掩码,用于屏蔽掉某些权限。BASH1umask 022
- 设置默认的
umask
为022
,表示新创建的文件和目录的权限分别为644
和755
。
- 设置默认的
sudo
sudo
命令允许普通用户以超级用户(root)的权限执行命令。通过合理配置sudoers
文件,可以授予特定用户或组执行特定命令的权限。BASH1sudo apt-get update
- 以超级用户权限执行
apt-get update
命令。
- 以超级用户权限执行
useradd 和 userdel
useradd
命令用于创建新用户,userdel
命令用于删除用户。BASH12sudo useradd newuser sudo userdel olduser
- 创建名为
newuser
的新用户。 - 删除名为
olduser
的用户。
- 创建名为
passwd
passwd
命令用于更改用户的密码。BASH1passwd username
- 更改
username
的密码。
- 更改
groups 命令
groups
命令用于显示用户所属的组。BASH1groups username
- 显示
username
所属的组。
- 显示
usermod 命令
usermod
命令用于修改用户属性,如用户的主目录、登录 shell、所属组等。BASH1sudo usermod -aG groupname username
- 将
username
添加到groupname
组中。
- 将
进程管理 Link to 进程管理
ps 命令用于显示当前运行的进程。
BASH1234567891011# 显示所有进程 ps aux # 显示当前用户的进程 ps -ef # 显示特定进程 ps -p PID # 查找进程 ps aux | grep process_name
- a:显示所有用户的进程。
- u:显示进程的详细信息,包括用户名、CPU 和内存使用等。
- x:包括没有终端的进程(即后台进程)。
- -e:显示所有进程。
- -f:显示完整格式。
输出格式说明:
- PID:进程的 ID。
- TTY:终端类型,表示进程是在哪个终端上运行的。
- TIME:进程使用的 CPU 时间。
- CMD:启动进程的命令。
- %CPU:CPU 占用百分比。
- %MEM:内存占用百分比。
- VSZ:进程使用的虚拟内存大小(KB)。
- RSS:进程使用的实际物理内存大小(KB)。
kill 命令用于终止进程。
BASH12345678# 通过 PID 终止进程 kill PID # 强制终止进程 kill -9 PID # 通过进程名终止 pkill process_name
top 命令用于实时显示系统进程状态。
BASH12345678# 启动 top top # 按 CPU 使用率排序 top -o %CPU # 按内存使用率排序 top -o %MEM