目录
[一、 文件与目录操作(最基础)](#一、 文件与目录操作(最基础))
[二、 文件查看与编辑](#二、 文件查看与编辑)
[三、 文件权限与所有权](#三、 文件权限与所有权)
[四、 系统信息与进程管理](#四、 系统信息与进程管理)
[五、 网络相关](#五、 网络相关)
[六、 搜索与查找](#六、 搜索与查找)
[七、 压缩与解压](#七、 压缩与解压)
[八、 其他实用工具](#八、 其他实用工具)
一、文件
文件与目录的基本概念
文件是在磁盘上建立的数据单元,包含文件内容及属性数据(如创建时间、权限等)。即使文件内容为空,其属性数据仍会占用磁盘空间。文件本质上是内容数据与元数据的组合体。
目录是用于组织文件的特殊结构,可视为存放其他文件或子目录的容器。在文件系统中,通常遵循层级结构:根目录→子目录→具体文件。
路径的表示方式
路径用于唯一标识文件或目录的位置,分为两种类型:
-
绝对路径:从根目录开始完整描述文件位置的路径。例如:
- Windows:
D:\c++\c-code\C++11 - Linux:
/home/user/documents/file.txt
- Windows:
-
相对路径:基于当前工作目录的简写路径。例如:
- 当前目录为
/home/user时,documents/file.txt即为相对路径。
- 当前目录为
路径分隔符差异:
- Windows使用反斜杠
\。 - Linux使用正斜杠
/。
目录树结构
Linux系统中,所有文件和目录构成一棵目录树,特点如下:
-
节点类型:
- 叶子节点:普通文件或空目录。
- 非叶子节点:必须是目录(包含子项)。
-
唯一性:从根目录到任意节点的路径唯一确定一个文件或目录。
示例说明
假设某Linux目录树如下:
/
├── home
│ ├── user
│ │ ├── documents (空目录)
│ │ └── file.txt
└── etc
└── config
- 绝对路径示例 :
/home/user/file.txt - 相对路径示例 (当前目录为
/home):user/documents - 节点分析 :
- 叶子节点:
file.txt(文件)、documents(空目录)。 - 非叶子节点:
/、home、user、etc、config(均为目录)。
- 叶子节点:
二、常见指令
一、文件与目录操作(ls/pwd/cd/mkdir/rmdir/rm/cpmv/touch)
-
ls:列出目录内容。-
ls -l:以详细信息(长格式)列出。 -
ls -a:显示所有文件,包括隐藏文件(以.开头的文件)。
-
-
pwd:显示当前所在的工作目录的绝对路径。 -
cd:切换目录。-
cd ~或cd:切换到当前用户的家目录。 -
cd ..:切换到上级目录。 -
cd -:切换到上一个所在的目录。
-
-
mkdir:创建新目录。mkdir -p dir1/dir2:递归创建多级目录。
-
rmdir:删除空目录。 -
rm:删除文件或目录。-
rm -r:递归删除目录及其内容。 -
rm -f:强制删除,不提示。 -
注意 :
rm -rf命令非常危险,请谨慎使用。
-
-
cp:复制文件或目录。-
cp -r:递归复制目录。 -
cp 文件1(存在) 文件2(存在或不存在)
-
-
mv:移动文件或目录,也可用于重命名。- mv 目录1 目录2 (如果目录2不存在,则是重命名)
-
touch:创建一个新的空文件,或更新已有文件的时间戳。
二、文件查看与编辑(cat/less/more/head/tail/nano/vim)
-
cat:在终端显示整个文件的内容,适合小文件。 -
less/more:分页显示文件内容,适合查看大文件。less比more功能更强大,可以向前向后翻页。按q退出。 -
head:显示文件的开头部分(默认10行)。head -n 20 file:显示前20行。
-
tail:显示文件的末尾部分(默认10行)。-
tail -n 15 file:显示后15行。 -
tail -f file:实时追踪文件的更新,常用于查看日志。
-
-
nano:一个简单易用的文本编辑器,对新手友好。 -
vim/vi:功能强大的文本编辑器,几乎所有 Linux 系统都预装,但学习曲线较陡峭。 -
wc:统计文件的行数、单词数和字节数。wc -l file:只显示行数。
-
sort:对文件内容按行排序。 -
uniq:去除相邻重复行,通常先sort再uniq。 -
重定向与管道:
-
命令 > 文件:把命令输出覆盖写入文件。 -
命令 >> 文件:把命令输出追加到文件末尾。 -
命令1 | 命令2:把前一个命令的输出作为后一个命令的输入。
-
三、文件权限与所有权(chmod/chown/chgrp)
在 Linux 中,每个文件或目录都有三类权限:读(r) 、写(w) 、执行(x) ,分别用数字 4、2、1 表示。例如 chmod 755 中,7 表示所有者拥有读、写、执行权限(4+2+1),中间和最后的 5 分别表示所属组和其他用户拥有读、执行权限(4+1)。
-
chmod:修改文件或目录的权限。-
chmod 755 script.sh:用数字模式设置权限。 -
chmod u+x script.sh:用符号模式给文件所有者增加执行权限。
-
-
chown:改变文件的所有者和所属组。chown user:group file。
-
chgrp:改变文件的所属组。
四、 系统信息与进程管理(ps/top/htop/kill/df/du/free/uname/whoami)
-
ps:显示当前系统的进程状态。ps aux:显示所有正在运行的进程的详细信息。
-
top/htop:动态显示、管理正在运行的进程,像一个实时任务管理器。htop是top的增强版。 -
kill:终止一个进程。kill -9 PID:强制终止指定 PID 的进程。
-
df:显示磁盘空间使用情况。df -h:以人类易读的格式(如 GB, MB)显示。
-
du:显示文件或目录的磁盘使用量。du -sh directory:以易读格式汇总(-s)显示目录的总大小。
-
free:显示系统内存使用情况。free -h:以人类易读的格式显示。
-
uname:显示系统信息。uname -a:显示所有信息。
-
whoami:显示当前登录的用户名。
五、 网络相关(ping/wget/curl/ssh/scp/ifconfig/ip)
-
ping:测试与另一台网络主机的连通性。 -
wget:从网络上下载文件。 -
curl:一个功能强大的数据传输工具,支持多种协议。 -
ssh:通过安全加密的方式远程登录到另一台计算机。 -
scp:基于 SSH 的安全文件拷贝,用于在本地和远程主机之间传输文件。 -
ifconfig/ip:查看和配置网络接口参数。ip命令是现代 Linux 推荐使用的。
六、 搜索与查找(find/grep/which/locate)
-
find:在指定目录下查找文件,功能非常强大。-
find /home -name "*.txt":在/home目录下查找所有.txt文件。 -
find /home -type f -name "*.txt":按类型查找文件,f表示普通文件,d表示目录。 -
find /home -size +100M:查找大于 100MB 的文件。 -
find /home -mtime -7:查找最近 7 天内修改过的文件。
-
-
grep:在文件中搜索指定的文本模式。-
grep "pattern" file:在文件中搜索包含 "pattern" 的行。 -
grep -r "pattern" directory:递归地在目录中搜索。
-
-
which:查找某个命令的绝对路径。 -
locate:通过数据库快速查找文件,速度比find快,但需要先更新数据库(sudo updatedb)。 -
xargs:把前一个命令的输出作为参数传给后面的命令,常和find、grep配合使用。例如:find /home -name "*.log" | xargs rm。
七、 压缩与解压(zip/tar)
-
tar:打包和解包文件,常与压缩工具一起使用。-
tar -czvf archive.tar.gz files/:打包并压缩(gzip)。 -
tar -xzvf archive.tar.gz:解压 .tar.gz 文件。
-
-
gzip/gunzip:压缩/解压.gz文件。 -
zip/unzip:压缩/解压.zip文件。 zip -r xx.zip 文件名
八、 其他实用工具
-
echo:在终端输出一行文本。 -
man:查看命令的详细使用手册,是最重要的求助工具 。例如man ls。 -
sudo:以超级管理员(root)权限执行命令。 -
apt/yum/dnf:软件包管理工具,用于安装、更新和删除软件。-
Debian/Ubuntu 系列用
apt(如sudo apt install package_name)。 -
RedHat/CentOS 系列用
yum或dnf。
-
-
history:查看命令历史记录。 -
alias:给命令创建别名,简化输入。-
创建临时别名 如:alias la='ls -al'
-
创建永久别名要在 ~/.bashrc 下创建
-