目录
在配置好环境之后,就要学习一些基础的指令了。
1.文件与目录操作
| 命令 | 写法(语法) | 示例 |
|---|---|---|
ls |
ls [选项] [目录或文件] |
ls -l → 以列表形式显示当前目录内容 ls -a → 显示所有文件(包括隐藏文件) ls /home → 显示 /home 目录内容 |
cd |
cd [目录路径] |
cd /var/log → 进入 /var/log 目录 cd .. → 返回上一级目录 cd ~ 或 cd → 进入当前用户的家目录 |
pwd |
pwd |
pwd → 显示当前所在的绝对路径,例如 /home/username |
mkdir |
mkdir [选项] 目录名 |
mkdir myfolder → 创建名为 myfolder 的目录 mkdir -p a/b/c → 递归创建多级目录(a下b下c) |
rmdir |
rmdir 目录名 |
rmdir emptyfolder → 删除 空目录(非空会失败) |
rm |
rm [选项] 文件或目录 |
rm file.txt → 删除文件 file.txt rm -r myfolder → 递归删除 myfolder 目录及其内容 rm -f file.txt → 强制删除,不提示确认 |
cp |
cp [选项] 源 目标 |
cp a.txt b.txt → 将 a.txt 复制为 b.txt cp -r dir1/ dir2/ → 递归复制整个目录 cp file1 file2 /target/ → 将多个文件复制到目标目录 |
mv |
mv [选项] 源 目标 |
mv old.txt new.txt → 重命名文件 mv file.txt /tmp/ → 将 file.txt 移动到 /tmp 目录 |
touch |
touch 文件名 |
touch newfile → 创建空文件 newfile touch existing.txt → 更新 existing.txt 的修改时间 |
find |
find [路径] [条件] |
find /home -name "*.txt" → 查找 /home 下所有 .txt 文件 find . -type f -size +10M → 当前目录下大于 10MB 的普通文件 |
ln |
ln [选项] 源 目标 |
ln -s /usr/bin/python3 mypython → 创建软链接(类似快捷方式) ln origin.txt hardlink.txt → 创建硬链接 |
2.文件查看与编辑
| 命令 | 写法(语法) | 示例 |
|---|---|---|
cat |
cat [选项] 文件 |
cat file.txt → 一次性显示全部内容 cat a.txt b.txt > merge.txt → 合并两个文件并写入新文件 |
less |
less 文件 |
less longfile.log → 分页查看(按空格下一页,q 退出,/关键词 搜索) |
more |
more 文件 |
more longfile.log → 分页查看(按空格翻页,不支持反向翻页) |
head |
head [选项] 文件 |
head -n 20 file.txt → 显示前 20 行 head file.txt → 默认显示前 10 行 |
tail |
tail [选项] 文件 |
tail -n 15 file.txt → 显示最后 15 行 tail -f app.log → 实时跟踪日志文件新增内容(常用) |
grep |
grep [选项] 模式 文件 |
grep "error" log.txt → 在 log.txt 中查找包含 error 的行 grep -i warning log.txt → 忽略大小写查找 warning grep -r "TODO" ./src/ → 递归查找目录下所有文件 |
nano |
nano 文件 |
nano readme.md → 打开或创建文件,使用 Ctrl+O 保存,Ctrl+X 退出 |
vim |
vim 文件 |
vim script.sh → 打开文件,按 i 进入插入模式,按 Esc 退出插入模式,输入 :wq 保存退出 |
3.重定向、管道与快捷键
| 功能/命令 | 写法(语法) | 示例 |
|---|---|---|
| 输出重定向(覆盖) | 命令 > 文件 |
echo "hello" > out.txt → 将 hello 写入 out.txt(若文件存在则覆盖) |
| 输出重定向(追加) | 命令 >> 文件 |
echo "world" >> out.txt → 将 world 追加到 out.txt 末尾 |
| 输入重定向 | 命令 < 文件 |
wc -l < file.txt → 将 file.txt 的内容作为 wc -l 的输入,统计行数 |
| 管道 | `命令1 | 命令2` |
| 条件执行(且) | 命令1 && 命令2 |
make && make install → 只有 make 成功才执行 make install |
| 条件执行(或) | `命令1 | |
| 后台运行 | 命令 & |
./long_script.sh & → 将脚本放到后台执行 |
| 终止当前命令 | Ctrl + C |
在终端按 Ctrl+C 可终止正在运行的前台程序(如 ping、tail -f) |
| 挂起当前命令 | Ctrl + Z |
按 Ctrl+Z 暂停当前前台命令,可用 fg 恢复 |
| 恢复挂起或后台任务 | fg / bg |
fg → 将最近挂起的任务调回前台 bg → 让挂起的任务在后台继续运行 |
| 自动补全 | Tab 键 |
输入 cd /var/log 时按 Tab 可自动补全路径或命令 |
| 查看历史命令 | history |
history → 显示最近执行过的命令列表 !123 → 重新执行历史中编号为 123 的命令 |
4.权限与用户管理
当我们输入ll(相当于ls -l的简写)时,会看到文件前有一串字符串,比如-rwxr-xr-x,那么它们是什么意思?
- Linux 把能够访问文件的人分为三类,顺序固定死:
- 第 1 组(u - User/Owner):文件的所有者(通常是创建这个文件的人)。
- 第 2 组(g - Group):文件所属的用户组(相当于一个部门,部门里的人共享这个权限)。
- 第 3 组(o - Others):其他人(系统里除了所有者和本组成员之外的陌生人)。
- 每个人对文件能做什么事,分为三种,它们各自代表一个固定数字:
- 读(r - Read):看文件内容、列出文件夹列表的权限。数值为 4。
- 写(w - Write):修改文件内容、在文件夹里新建或删除文件的权限。数值为 2。
- 执行(x - eXecute):把文件当成程序或脚本来运行、或者进入文件夹的权限。数值为 1。
- 没有权限(-):用短横线表示。数值为 0。
- 每一组人的权限,就是把他们拥有的 r、w、x 对应的数字相加。最高分是 7(4+2+1),最低分是 0。
所以常见的权限有777,755,644等。
接下来就可以看常见的命令有哪些了。
| 命令 | 语法格式 | 核心选项说明 | 💡 实战示例 |
|---|---|---|---|
chmod |
chmod [选项] 权限 文件/目录 |
-R:递归修改整个目录 |
chmod 755 script.sh → 设置文件权限为 rwxr-xr-x chmod u+x file.txt → 给文件所有者添加执行权限 chmod -R 644 mydir/ → 递归修改目录下所有文件权限为 rw-r--r-- |
chown |
chown [选项] 用户[:组] 文件/目录 |
-R:递归修改整个目录 |
chown john file.txt → 将文件所有者改为 john chown john:staff file.txt → 同时更改所有者为 john,所属组为 staff chown -R root:root /var/www → 递归修改目录及其下所有文件的属主和属组为 root |
useradd |
useradd [选项] 用户名 |
-m:自动创建用户家目录 -s:指定用户登录的 shell |
useradd tom → 创建新用户 tom useradd -m -s /bin/bash jerry → 创建用户 jerry 并自动创建家目录,指定 shell 为 bash |
userdel |
userdel [选项] 用户名 |
-r:删除用户时连同家目录一起删除 |
userdel tom → 删除用户 tom(保留其家目录) userdel -r jerry → 删除用户 jerry 及其对应的家目录和邮件池 |
passwd |
passwd [用户名] |
不加用户名则修改当前用户 | passwd → 修改当前登录用户的密码 passwd tom → root 用户强制修改 tom 用户的密码 |
su |
su [选项] [用户名] |
-:切换用户时同时切换环境变量 |
su → 切换到 root 用户(保持当前用户环境变量) su - john → 切换到 john 用户并完全加载 john 的环境变量 |
sudo |
sudo 命令 |
以 root 权限执行临时命令 | sudo systemctl restart mysql → 以 root 权限重启 mysql 服务(需要当前用户拥有 sudo 权限) |
groups |
groups [用户名] |
不加用户名则查当前用户 | groups → 显示当前用户所属的用户组 groups tom → 显示 tom 用户所属的所有用户组 |
usermod |
usermod [选项] 用户名 |
-aG:追加用户到指定组 -s:修改用户的登录 shell |
usermod -aG docker tom → 将 tom 用户追加到 docker 用户组(-a 代表追加) usermod -s /bin/zsh tom → 修改 tom 用户的登录 shell 为 zsh |
id |
id [用户名] |
不加用户名则查当前用户 | id → 显示当前用户的 UID、GID 和所属组信息 id tom → 显示 tom 用户的 UID、GID 和所属组详细信息 |
5.进程与系统资源管理命令
| 命令 | 语法格式 | 核心选项说明 | 💡 实战示例 |
|---|---|---|---|
ps |
ps [选项] |
aux:显示所有用户所有进程详细信息 -ef:标准格式显示所有进程 |
ps aux → 静态查看当前系统所有运行中的进程详情 `ps -ef |
top |
top |
实时动态监控(按 q 退出) | top → 动态查看 CPU、内存占用率及排名前列的进程(相当于 Windows 任务管理器) |
htop |
htop |
需单独安装,交互式界面 | htop → 彩色文本界面,支持鼠标点击、上下键选进程、按 F9 直接终止进程 |
kill |
kill [选项] PID |
-9:强制终止(无条件杀死) |
kill 1234 → 发送常规终止信号,通知 PID 为 1234 的进程正常关闭 🚨 kill -9 1234 → 暴力强杀进程(可能导致进程数据来不及保存而丢失) |
pkill |
pkill [选项] 进程名 |
-f:匹配完整命令行参数 |
pkill nginx → 批量杀死所有进程名中包含 nginx 的进程 pkill -f "python script.py" → 杀死运行特定脚本的那个 python 进程 |
jobs |
jobs |
查阅当前终端的后台任务 | jobs → 显示当前窗口处于后台运行(Running)或暂停挂起(Stopped)的任务列表 |
fg |
fg [任务编号] |
调回前台 | fg %1 → 将后台任务编号为 1 的程序调回前台,恢复正常交互状态 |
bg |
bg [任务编号] |
后台继续 | bg %2 → 让被暂停(Stopped)的任务编号为 2 的程序在后台继续默默运行 |
free |
free [选项] |
-h:人性化单位(显示为 G/M) |
free -h → 查看当前系统的物理内存(Mem)和虚拟内存(Swap)的已用、剩余情况 |
df |
df [选项] |
-h:人性化单位(显示为 G/M) |
df -h → 查看所有磁盘分区的总容量、已用百分比以及挂载点 |
du |
du [选项] [目录/文件] |
-s:仅显示总计大小 -h:人性化单位 --max-depth=1:只看一级子目录 |
du -sh /home → 统计 /home 文件夹一共占用了多少磁盘空间 du -h --max-depth=1 → 逐个排查当前目录下哪个一级子文件夹体积最大 |
uptime |
uptime |
看系统整体负载状况 | uptime → 显示系统已运行时间、当前登录人数,以及过去 1/5/15 分钟的系统平均负载 |
-
top运行中的常用快捷键在
top交互界面中,直接按下键盘上的以下字母(区分大小写)可以快速调整视图:P(大写):按 CPU 占用率从高到低对进程排序(揪出吃 CPU 的内鬼)。M(大写):按 内存占用率从高到低对进程排序(查看谁最占内存)。N(大写):按 PID(进程号)大小进行排序。k(小写):快捷杀死进程。输入k后,再输入对应的 PID 即可对其发送关闭信号。q(小写):退出top视图,返回 Linux 命令行。
-
进程关闭的最佳实践
- 关闭程序时,应优先使用
kill PID或pkill 进程名(发送 SIGTERM 信号),给程序预留保存数据和清理缓存的时间。 - 只有当程序彻底卡死、毫无响应时,才考虑使用
kill -9 PID强行剥夺其运行权限。
6.网络相关
| 命令 | 写法(语法) | 核心选项说明 | 💡 实战示例 |
|---|---|---|---|
ip |
ip [选项] 对象 动作 |
现代网络配置工具,替代 ifconfig | ip addr show → 显示所有网络接口的 IP 地址 ip link set eth0 up → 启用 eth0 网卡 |
ifconfig |
ifconfig [接口] |
传统网络配置工具(需安装 net-tools) | ifconfig → 显示所有网卡信息 ifconfig eth0 192.168.1.10 → 临时设置 IP |
ping |
ping [选项] 目标 |
-c:指定发送包的数量 |
ping -c 4 google.com → 只发送 4 个 ICMP 包测试连通性 ping 8.8.8.8 → 持续 ping,按 Ctrl+C 停止 |
netstat |
netstat [选项] |
-tulnp:显示所有监听端口及对应程序 |
netstat -tulnp → 显示所有监听端口及对应程序(需 net-tools) `netstat -an |
ss |
ss [选项] |
替代 netstat,更快显示监听端口 | ss -tulnp → 替代 netstat,更快显示监听端口 `ss -tan |
curl |
curl [选项] URL |
-O:下载文件并保存为原名 |
curl https://api.example.com → 获取网页内容 curl -O https://example.com/file.zip → 下载文件并保存为原名 |
wget |
wget [选项] URL |
-c:断点续传 |
wget https://example.com/file.zip → 下载文件 wget -c http://bigfile.iso → 断点续传 |
ssh |
ssh [用户@]主机 |
-p:指定端口 |
ssh root@192.168.1.100 → 以 root 用户远程登录 ssh -p 2222 john@example.com → 指定端口 2222 登录 |
scp |
scp [选项] 源 目标 |
基于 SSH 的安全文件传输 | scp file.txt user@192.168.1.100:/home/user/ → 上传本地文件到远程 scp user@192.168.1.100:/remote/file.txt ./ → 下载远程文件到当前目录 |
rsync |
rsync [选项] 源 目标 |
-avz:归档、显示进度、压缩 |
rsync -avz /local/dir/ user@host:/remote/dir/ → 同步目录(支持增量) |
ip命令是ifconfig的现代替代品,新 Linux 发行版推荐使用ip。- 查看端口监听时,优先使用
ss,因为netstat可能默认未安装。
7.压缩与打包
| 命令 | 语法格式 | 核心选项说明 | 💡 实战示例 |
|---|---|---|---|
tar |
tar [选项] 归档文件名 [要处理的文件/目录] |
-c:创建归档 -x:解包 -v:显示过程 -f:指定文件名 -z:gzip 压缩/解压 -j:bzip2 压缩/解压 -t:查看内容 |
tar -cvf archive.tar mydir/ → 打包 mydir 目录为 archive.tar(无压缩) tar -xvf archive.tar → 解包到当前目录 tar -czvf archive.tar.gz mydir/ → 打包并用 gzip 压缩 tar -xzvf archive.tar.gz → 解压 gzip 压缩包 tar -cjvf archive.tar.bz2 mydir/ → 用 bzip2 压缩 tar -xjvf archive.tar.bz2 → 解压 bzip2 包 tar -tvf archive.tar → 查看包内文件列表(不释放) |
gzip |
gzip [选项] 文件名 |
-d:解压 -k:保留原文件 |
gzip file.txt → 压缩为 file.txt.gz(原文件消失) gzip -d file.txt.gz → 解压(或 gunzip file.txt.gz) gzip -k file.txt → 压缩并保留原文件 |
gunzip |
gunzip 文件名.gz |
gzip 解压的另一种写法 | gunzip file.txt.gz → 解压 gz 文件,恢复为 file.txt |
zip |
zip [选项] 压缩包名 文件/目录 |
-r:递归压缩目录 |
zip archive.zip file1.txt file2.txt → 创建 zip 包 zip -r archive.zip mydir/ → 递归压缩整个目录 |
unzip |
unzip [选项] 压缩包 |
-d:解压到指定目录 -l:查看内容 |
unzip archive.zip → 解压到当前目录 unzip archive.zip -d /target/dir → 解压到指定目录 unzip -l archive.zip → 查看 zip 包内容(不解压) |
8.文本处理
| 命令 | 语法格式 | 核心选项说明 | 💡 实战示例 |
|---|---|---|---|
echo |
echo [选项] [字符串] |
-e:启用转义字符解释 -n:不输出末尾的换行符 |
echo "Hello" → 输出 Hello echo $PATH → 输出环境变量 PATH 的值 echo -e "a\nb" → 输出两行(启用转义) |
sort |
sort [选项] [文件] |
-r:反向排序 -n:按数值大小排序 -k:指定排序字段 -t:指定字段分隔符 |
sort names.txt → 按字母顺序对文件行排序 sort -r names.txt → 反向排序(从 Z 到 A) sort -n numbers.txt → 按数值大小排序 sort -k 2 -t ',' data.csv → 以逗号分隔,按第2列排序 |
uniq |
uniq [选项] [文件] |
-c:在每行前显示重复次数 -d:只输出重复行 -u:只输出不重复行 |
uniq names.txt → 去除相邻的重复行(通常先 sort) sort names.txt |
cut |
cut [选项] [文件] |
-f:指定字段(列) -d:指定字段分隔符(默认 TAB) -c:按字符位置切割 |
cut -f 1,3 -d ',' data.csv → 取第1、3列(逗号分隔) cut -c 1-5 file.txt → 提取每行第1-5个字符 |
awk |
awk '模式 {动作}' [文件] |
-F:指定输入字段分隔符 {print $N}:打印第 N 个字段 END:处理完所有行后执行 |
awk '{print $1}' file.txt → 打印每行第一个字段(默认空格/TAB分隔) awk -F ',' '{print $2}' data.csv → 指定逗号为分隔符打印第2列 awk '$3 > 50 {print $1, $3}' scores.txt → 第3列大于50时打印第1、3列 awk '{sum+=$1} END {print sum}' numbers.txt → 求第一列总和 |
sed |
sed 's/原/新/' [文件] |
s/原/新/:替换第一个匹配 s/原/新/g:全局替换 -i:直接修改文件(可加备份后缀) -n:静默模式,常与 p 命令配合 |
sed 's/old/new/' file.txt → 替换每行第一个 old 为 new sed 's/old/new/g' file.txt → 全局替换所有 old 为 new sed -i.bak 's/error/ERROR/g' log.txt → 直接修改文件并备份原文件为 .bak sed -n '5,10p' file.txt → 只打印第5到10行 |
wc |
wc [选项] [文件] |
-l:统计行数 -w:统计单词数 -c:统计字节数 -m:统计字符数 |
wc -l file.txt → 统计文件行数 wc -w file.txt → 统计单词数 wc -c file.txt → 统计字节数 |
9.软件包管理
| 操作 | 命令(RHEL/CentOS 7) | 核心选项说明 | 💡 实战示例 |
|---|---|---|---|
| 更新软件源列表 | yum check-update |
检查仓库中所有可用的更新 | yum check-update → 列出所有可升级的软件包 |
| 安装软件 | yum install <包名> |
-y:自动回答 yes,无需确认 |
yum install nginx → 安装 nginx yum -y install vim → 自动确认安装 vim |
| 卸载软件 | yum remove <包名> |
-y:自动确认删除 |
yum remove nginx → 卸载 nginx 及其依赖 yum -y remove vim → 自动确认卸载 vim |
| 升级所有软件 | yum update |
-y:自动确认所有更新 |
yum update → 升级所有已安装的软件包 yum -y update → 自动确认升级 |
| 搜索软件包 | yum search <关键词> |
在已配置的仓库中搜索软件包 | yum search python3 → 搜索名称或描述包含 python3 的包 |
| 查看已安装的包 | yum list installed |
列出所有已安装的软件包 | yum list installed → 查看已安装的所有包 `yum list installed |
| 清理缓存 | yum clean all |
清除所有缓存的软件包和元数据 | yum clean all → 清理所有缓存,释放磁盘空间 |
| 查看软件包信息 | yum info <包名> |
显示软件包的详细信息 | yum info nginx → 查看 nginx 包的版本、大小、描述等 |
| 列出仓库 | yum repolist |
显示所有已启用的仓库 | yum repolist → 查看当前系统可用的软件源列表 |
| 安装本地 RPM | yum localinstall <rpm文件> |
安装本地 RPM 包并自动解决依赖 | yum localinstall package.rpm → 安装本地 RPM 包 |
10.系统信息与控制
| 命令 | 语法格式 | 核心选项说明 | 💡 实战示例 |
|---|---|---|---|
uname |
uname [选项] |
-a:显示所有系统信息 -r:显示内核版本 -s:显示内核名称 -m:显示机器硬件架构 |
uname -a → 显示所有系统信息(内核、主机名、架构等) uname -r → 显示内核版本 uname -s → 显示内核名称(如 Linux) uname -m → 显示机器硬件架构(如 x86_64) |
hostname |
hostname [新主机名] |
查看或临时修改主机名 | hostname → 查看当前主机名 hostname my-server → 临时修改主机名为 my-server(重启失效) |
hostnamectl |
hostnamectl [选项] |
systemd 系统的主机名管理工具 | hostnamectl → 查看主机名及相关信息 hostnamectl set-hostname my-server → 永久修改主机名(systemd 系统) |
date |
date [选项] [格式] |
+%格式:自定义输出格式 -s:设置系统时间(需 root) |
date → 显示当前日期和时间 date "+%Y-%m-%d %H:%M:%S" → 自定义格式显示时间 date -s "2025-01-15 10:30:00" → 设置系统时间(需 root 权限) |
uptime |
uptime |
显示系统运行时间、登录用户数和系统负载 | uptime → 显示系统已运行时间、当前登录用户数、过去 1/5/15 分钟的系统平均负载 |
dmesg |
dmesg [选项] |
-T:显示可读时间戳 -H:人性化显示 -w:实时监控新内核消息 |
dmesg → 查看内核环形缓冲区消息 `dmesg |
shutdown |
shutdown [选项] [时间] |
-h:关机 -r:重启 -c:取消计划 +分钟:延迟执行 |
shutdown -h now → 立即关机 shutdown -r +5 → 5分钟后重启 shutdown -c → 取消计划的关机/重启 shutdown 22:00 → 在22:00关机 |
reboot |
reboot |
立即重启系统(需 root 权限) | reboot → 立即重启系统 reboot --force → 强制重启(不发送信号给进程) |
who |
who [选项] |
显示当前登录系统的用户信息 | who → 显示当前登录用户、终端、登录时间 who -b → 显示系统最近启动时间 |
w |
w [选项] |
显示当前登录用户及其正在执行的命令 | w → 显示当前登录用户、终端、登录时间、空闲时间、当前进程 w -h → 不显示标题行 |
last |
last [选项] |
显示用户登录历史记录 | last → 显示所有用户的登录历史 last reboot → 显示系统重启历史 |
free |
free [选项] |
-h:人性化单位(显示为 G/M) -m:以 MB 为单位显示 |
free -h → 查看内存使用情况(人性化单位) free -m → 以 MB 为单位显示内存使用情况 |
最常用命令
| 命令 | 基本用法 | 核心选项说明 | 💡 实战示例 |
|---|---|---|---|
ls |
ls [选项] [目录] |
-l:详细列表 -a:显示隐藏文件 -h:人性化文件大小 |
ls -l → 详细列表 ls -a → 显示所有文件(包括隐藏文件) ls -lh → 详细列表+人性化大小 |
ll |
ll |
通常是 ls -l 的别名 |
ll → 直接显示详细列表(部分系统自带别名) |
pwd |
pwd |
显示当前工作目录的绝对路径 | pwd → 显示如 /home/user |
cd |
cd [目录] |
切换工作目录 | cd /var/log → 进入日志目录 cd .. → 返回上一级目录 cd ~ 或 cd → 返回家目录 |
cat |
cat [文件] |
查看文件全部内容 | cat file.txt → 查看文件内容 |
less |
less [文件] |
分页查看大文件 | less log.txt → 分页查看(空格翻页,q退出) |
head |
head [选项] [文件] |
-n:显示前N行 |
head -20 file.txt → 显示前20行 |
tail |
tail [选项] [文件] |
-n:显示后N行 -f:实时跟踪 |
tail -15 file.txt → 显示最后15行 tail -f app.log → 实时跟踪日志 |
mkdir |
mkdir [选项] 目录名 |
-p:递归创建多级目录 |
mkdir newdir → 创建目录 mkdir -p a/b/c → 递归创建多级目录 |
rmdir |
rmdir 目录名 |
删除空目录 | rmdir emptydir → 删除空目录 |
rm |
rm [选项] 文件/目录 |
-r:递归删除 -f:强制删除 |
rm file.txt → 删除文件 rm -r dir/ → 递归删除目录 rm -f file → 强制删除 |
touch |
touch 文件名 |
创建空文件或更新时间戳 | touch newfile → 创建空文件 |
cp |
cp [选项] 源 目标 |
-r:递归复制目录 |
cp a.txt b.txt → 复制文件 cp -r dir1 dir2 → 复制目录 |
mv |
mv [选项] 源 目标 |
移动或重命名文件/目录 | mv old.txt new.txt → 重命名 mv file /tmp/ → 移动文件 |
find |
find [路径] [条件] |
-name:按文件名查找 |
find /home -name "*.txt" → 查找所有txt文件 |
grep |
grep [选项] 模式 文件 |
-r:递归查找 -i:忽略大小写 |
grep "error" log.txt → 查找包含error的行 grep -r "TODO" ./src/ → 递归查找 |
echo |
echo [字符串] |
输出字符串或变量 | echo "Hello" → 输出Hello echo $PATH → 输出环境变量 |
chmod |
chmod [权限] 文件 |
修改文件权限 | chmod 755 script.sh → 设置可执行权限 |
ps |
ps [选项] |
aux:显示所有进程 |
`ps aux |
kill |
kill [信号] PID |
-9:强制终止 |
kill 1234 → 正常终止进程 kill -9 1234 → 强制终止 |
tar |
tar [选项] 文件 |
-czvf:打包并gzip压缩 -xzvf:解压gzip包 |
tar -czvf backup.tar.gz /home → 打包压缩 tar -xzvf backup.tar.gz → 解压 |
ssh |
ssh [用户@]主机 |
远程登录 | ssh user@192.168.1.100 → 远程登录 |
scp |
scp [选项] 源 目标 |
基于SSH的安全文件传输 | scp file.txt user@host:/path/ → 上传文件 |