Linux 基础指令与权限管理实战指南
前言
在深入 Linux 系统编程前,熟悉常用指令和权限管理是必经之路。无论你是新手还是想梳理知识的老手,以下内容能帮你建立清晰的 Linux 操作框架。
注意:生产环境通常不用图形界面,因为资源占用高且远程效率低,命令行才是精髓。
环境准备与远程登录
查看主机 IP
在终端中执行以下命令查看本机 IP 地址:
ifconfig
使用 SSH 客户端远程登录
推荐使用 XShell 等工具进行连接。在客户端输入 ssh [ip],输入用户名和密码即可登录。
提示:XShell 中复制粘贴快捷键为
Ctrl + Insert(复制)和Shift + Insert(粘贴),终端内Ctrl + C/Ctrl + V通常无效。
文件与目录基础操作
ls —— 列出目录内容
命令格式:ls [选项] [目录或文件]
常用选项:
| 选项 | 说明 |
|---|---|
-a | 列出所有文件(包括以.开头的隐藏文件) |
-l | 显示详细信息(权限、大小、修改时间等) |
-d | 将目录像文件一样显示,不列出其内容 |
-R | 递归列出所有子目录 |
-t | 按修改时间排序 |
-i | 输出文件的 inode 节点信息 |
示例:
ls -al # 显示所有文件的详细信息
ls -l /home # 查看/home 目录下的内容
pwd —— 显示当前目录
pwd
cd —— 切换目录
命令格式:cd [目录名]
特殊用法:
cd .. # 返回上级目录
cd ~ # 进入当前用户的家目录
cd - # 返回上一次所在的目录
cd / # 进入根目录
路径知识:绝对路径从根目录
/开始,如/home/user/test;相对路径相对于当前目录,如./test、../temp。
mkdir —— 创建目录
命令格式:mkdir [选项] 目录名
常用选项:-p 递归创建多级目录。
mkdir mydir
mkdir -p path1/path2/path3 # 一次性创建多级目录
rmdir —— 删除空目录
命令格式:rmdir [选项] 目录名
注意:只能删除空目录,若需删除非空目录,请使用 rm -r。
touch —— 创建文件或修改时间戳
命令格式:touch [选项] 文件名
示例:
touch newfile.txt # 创建空文件
touch -a newfile.txt # 仅修改访问时间
touch -m newfile.txt # 仅修改修改时间
文件操作与内容查看
rm —— 删除文件或目录
命令格式:rm [选项] 文件或目录
常用选项:
-f:强制删除,不提示-i:删除前逐一询问-r:递归删除目录及其内容
示例:
rm file.txt # 删除文件
rm -r dir # 删除目录
rm -rf dir # 强制删除目录(慎用)
cp —— 复制文件或目录
命令格式:cp [选项] 源文件 目标文件
常用选项:
-i:覆盖前询问-r:递归复制目录
示例:
cp file.txt file_backup.txt # 复制文件
cp -r dir dir_backup # 复制目录
cp *.txt destdir/ # 复制所有 txt 文件到目标目录
mv —— 移动或重命名
命令格式:mv [选项] 源文件 目标文件
示例:
mv oldname.txt newname.txt # 重命名
mv file.txt dir/ # 移动文件
mv -i file.txt dir/ # 移动时若目标存在则询问
cat —— 查看文件内容
命令格式:cat [选项] 文件
常用选项:
-n:显示行号-b:非空行显示行号-s:压缩连续空行
more / less —— 分页查看
- more:只能向后翻页
- less:支持前后翻页、搜索
less 常用操作:
/字符串:向下搜索?字符串:向上搜索n/N:重复/反向重复搜索q:退出
head / tail —— 查看文件头尾
head -n 20 file.txt # 显示前 20 行
tail -n 10 file.txt # 显示后 10 行
tail -f log.txt # 实时跟踪日志文件
实战技巧:显示文件的第 180 到 200 行
head -200 temp.txt | tail -20
搜索与查找
find —— 文件搜索
命令格式:find 路径 -name 文件名
示例:
find /home -name "*.c" # 查找所有.c 文件
find . -name "test.txt" # 当前目录下查找
grep —— 文本搜索
命令格式:grep [选项] 字符串 文件
常用选项:
-i:忽略大小写-n:显示行号-v:反向匹配(显示不包含该字符串的行)
示例:
grep "error" log.txt
grep -ni "warning" log.txt
grep -v "debug" log.txt
which / whereis —— 命令定位
which ls # 显示 ls 命令的路径
whereis ls # 显示 ls 的二进制、源码、手册位置
压缩与解压
tar —— 打包/解包(最常用)
命令格式:tar [选项] 文件名 文件/目录
常用选项:
| 选项 | 说明 |
|---|---|
-c | 创建压缩包 |
-x | 解压 |
-z | 通过 gzip 压缩 |
-j | 通过 bzip2 压缩 |
-v | 显示过程 |
-f | 指定文件名(必须紧跟选项后) |
-C | 解压到指定目录 |
示例:
tar -czvf backup.tar.gz /home # 打包并 gzip 压缩
tar -xzvf backup.tar.gz # 解压
tar -xzvf backup.tar.gz -C /tmp # 解压到指定目录
zip / unzip
zip -r archive.zip dir/ # 压缩目录
unzip archive.zip -d /target # 解压到指定目录
系统信息与时间
date —— 日期时间
date # 显示当前时间
date +%Y-%m-%d # 格式:2025-01-15
date +%s # 显示时间戳
date -d @1673432636 # 时间戳转日期
cal —— 日历
cal # 显示当月日历
cal -3 # 显示上月、本月、下月
cal 2025 # 显示全年日历
bc —— 计算器
bc
1 + 2
quit
uname -r —— 查看内核版本
uname -a # 显示所有系统信息
权限管理
用户类型
- 超级用户(root):提示符为
#,拥有最高权限 - 普通用户:提示符为
$,权限受限
切换用户:
su username # 切换用户
su root # 切换到 root(需输入密码)
文件类型与权限
文件类型标识:
| 标识 | 类型 |
|---|---|
- | 普通文件 |
d | 目录 |
l | 软链接 |
b | 块设备 |
c | 字符设备 |
权限表示(rwx):
- r:读(4)
- w:写(2)
- x:执行(1)
修改权限 —— chmod
格式:chmod [选项] 权限 文件名
符号方式:
chmod u+w file.txt # 给所有者添加写权限
chmod g-x file.txt # 移除组用户执行权限
chmod o=r file.txt # 设置其他用户为只读
chmod a+x script.sh # 所有用户添加执行权限
数字方式:
chmod 644 file.txt # 所有者读写,组读,其他读
chmod 755 script.sh # 所有者 rwx,组和用户 rx
修改所有者 —— chown
chown user file.txt # 修改文件所有者
chown -R user:group dir/ # 递归修改目录所有者及组
修改所属组 —— chgrp
chgrp group file.txt
粘滞位(Sticky Bit)
粘滞位用于共享目录,使文件只能被所有者或 root 删除。
chmod +t /shared # 添加粘滞位
# 权限末尾出现't':drwxrwxrwt
Shell 命令运行原理
Linux 系统由**内核(kernel)和外壳(shell)**组成。用户通过 shell 与内核交互,shell 将我们的命令翻译给内核,再将结果返回给用户。
- bash 是最常见的 shell
- Shell 不仅执行命令,还支持变量、管道、重定向等高级功能
常用热键
Tab:命令或文件名补全Ctrl + C:终止当前程序Ctrl + D:退出终端(等同于 exit)
总结
本文从基础命令入手,系统梳理了 Linux 环境下的文件操作、文本查看、压缩解压、搜索查找、权限管理等核心知识点。掌握这些命令后,你已经能够熟练地在 Linux 命令行中进行日常操作。后续的学习中,建议多动手实践,将命令与真实场景结合,才能真正内化为自己的技能。


