一、文件与目录操作

1. ls - 列出目录内容

# 基本用法
ls                # 列出当前目录文件
ls /home          # 指定目录

# 常用选项
ls -l             # 详细列表(显示权限、所有者、大小等)
ls -a             # 显示所有文件(包括隐藏文件)
ls -lh            # 人性化显示文件大小(K/M/G)
ls -t             # 按修改时间排序
ls -r             # 反向排序
ls -S             # 按文件大小排序

# 组合使用
ls -la            # 显示所有文件的详细信息
ls -lht           # 按时间倒序,人性化显示
$ ls -la
总用量 48
drwxr-xr-x 12 user group  4096 3月  15 10:30 .
drwxr-xr-x  3 root root   4096 3月   1 08:00 ..
-rw-r--r--  1 user group   220 1月   6 14:30 .bash_logout
-rw-r--r--  1 user group  3771 1月   6 14:30 .bashrc
drwx------ 16 user group  4096 3月  15 09:20 .cache

2.cd - 切换目录

cd /home/user     # 切换到绝对路径
cd ..             # 返回上一级目录
cd ../..          # 返回上两级目录
cd ~              # 切换到当前用户家目录
cd -              # 返回上一次所在的目录
cd                # 同上,切换到用户家目录

3.pwd - 显示当前目录

pwd               # 输出:/home/user/current_path

4.mkdir - 创建目录

mkdir dirname          # 创建单个目录
mkdir dir1 dir2 dir3   # 创建多个目录
mkdir -p a/b/c         # 创建多级目录(自动创建父目录)
mkdir -m 755 dirname   # 创建目录并设置权限

5. rmdir - 删除空目录

rmdir emptydir         # 删除空目录
rmdir -p a/b/c         # 删除目录及其父目录(如果为空)

6.touch - 创建空文件/更新时间戳

touch file.txt         # 创建空文件(如果不存在)
touch file1.txt file2.txt  # 创建多个文件
touch -t 202403151200 file.txt  # 设置文件时间戳

7.cp - 复制文件/目录

# 复制文件
cp file1.txt file2.txt          # 复制文件
cp file.txt /backup/            # 复制到目录
cp -i file.txt dest/           # 覆盖前提示(交互模式)

# 复制目录
cp -r dir1/ dir2/               # 递归复制目录
cp -a dir1/ dir2/              # 保留所有属性复制
cp -u source dest              # 只复制更新的文件
cp -v file.txt dest/           # 显示复制过程

8.mv - 移动/重命名

mv oldname newname              # 重命名文件
mv file.txt /target/dir/        # 移动文件
mv *.txt /backup/               # 移动多个文件
mv -i file.txt dest/           # 覆盖前提示
mv -b file.txt dest/           # 覆盖前创建备份

9.rm - 删除文件/目录

# ⚠️ 危险命令!操作前先 ls 确认!
rm file.txt                    # 删除文件
rm -i file.txt                 # 删除前确认
rm -f file.txt                 # 强制删除(不提示)

# 删除目录
rm -r dirname/                 # 递归删除目录
rm -rf dirname/                # ⚠️ 强制递归删除(慎用!)

# 安全建议
alias rm='rm -i'              # 设置别名,默认交互模式

二、文件查看与编辑

1.cat - 查看文件内容

concatenate 链接

cat file.txt                   # 显示整个文件
cat file1.txt file2.txt        # 合并显示多个文件
cat -n file.txt                # 显示行号
cat -b file.txt                # 显示行号(空白行不编号)
cat > newfile.txt              # 创建新文件(Ctrl+D 结束)

2.less / more - 分页查看

less file.log                 # 分页查看(推荐)
more file.log                 # 分页查看(旧版)

# less 常用操作
# 空格键:下一页
# b键:上一页
# /关键词:搜索
# q键:退出
# g键:跳到开头
# G键:跳到结尾

3.head / tail - 查看文件开头/结尾

# head - 查看开头
head file.log                 # 默认显示前10行
head -n 20 file.log           # 显示前20行
head -c 100 file.log          # 显示前100字节

# tail - 查看结尾
tail file.log                 # 默认显示后10行
tail -n 20 file.log           # 显示后20行
tail -f /var/log/syslog       # 实时追踪日志变化(监控神器!)
tail -F file.log              # 追踪文件(即使被删除重建)

4.nl - 显示行号

nl file.txt                   # 显示文件内容(带行号)
nl -b a file.txt              # 包括空行的行号
nl -w 3 file.txt              # 行号宽度为3

三、文件查找与搜索

1.find - 查找文件

# 基本查找
find . -name "*.txt"          # 查找当前目录的txt文件
find /home -name "*.conf"     # 在指定目录查找
find . -type f -name "*.sh"   # 查找普通文件
find . -type d -name "dir*"   # 查找目录

# 按时间查找
find . -mtime -7              # 7天内修改的文件
find . -mtime +30             # 30天前修改的文件
find . -newer file.txt        # 比file.txt新的文件

# 按大小查找
find . -size +10M             # 大于10M的文件
find . -size -1G              # 小于1G的文件
find . -empty                 # 查找空文件/目录

# 执行操作
find . -name "*.log" -delete  # 查找并删除
find . -name "*.txt" -exec cp {} /backup/ \;  # 查找并复制

2.grep - 文本搜索

# 基本搜索
grep "error" file.log         # 搜索包含error的行
grep -i "error" file.log      # 忽略大小写
grep -v "success" file.log    # 反向匹配(不包含success)

# 正则表达式
grep "^2024-" file.log        # 以2024-开头的行
grep "end$" file.log          # 以end结尾的行
grep -E "[0-9]{3}" file.log   # 扩展正则(匹配3位数字)

# 递归搜索
grep -r "function" ./src/     # 递归搜索目录
grep -n "error" file.log      # 显示行号
grep -c "pattern" file.log    # 统计匹配行数
grep -A 3 -B 2 "error" log    # 显示匹配前后各3/2行

3.which / whereis - 查找命令位置

which python3                 # 显示python3的路径
whereis bash                  # 显示bash的位置和手册页

四、文本处理

1.wc - 统计

wc file.txt                    # 统计行数、单词数、字节数
wc -l file.txt                 # 只统计行数
wc -w file.txt                 # 只统计单词数
wc -c file.txt                 # 只统计字节数
wc -L file.txt                 # 显示最长行的长度

2. sort - 排序

sort file.txt                  # 默认排序
sort -r file.txt               # 逆序排序
sort -n file.txt               # 按数字排序
sort -u file.txt               # 去重排序
sort -t, -k2 file.csv          # 按逗号分隔,第2列排序

3. uniq - 去重

sort file.txt | uniq           # 去重(需要先排序)
uniq -c file.txt              # 统计重复次数
uniq -d file.txt              # 只显示重复行
uniq -u file.txt              # 只显示不重复行

4.cut - 截取列

cut -d: -f1 /etc/passwd       # 以冒号分隔,取第1列
cut -c1-5 file.txt            # 取1-5个字符
cut -c3- file.txt             # 从第3个字符到结尾

5.tr - 字符替换

tr - 字符替换

五、系统信息与监控

1.uname - 系统信息

uname -a                      # 显示所有系统信息
uname -s                      # 内核名称
uname -r                      # 内核版本
uname -m                      # 硬件架构

2.hostname - 主机名

hostname                      # 显示主机名
hostname -I                   # 显示IP地址

3.date - 日期时间

date                          # 当前日期时间
date +"%Y-%m-%d %H:%M:%S"     # 自定义格式
date -d "2024-01-01" +%s      # 日期转时间戳
date -d @1704067200           # 时间戳转日期

4.uptime - 运行时间

uptime                        # 系统运行时间
# 输出:10:30:45 up 15 days, 3:20, 2 users, load average: 0.00, 0.01, 0.05

5.who / w - 登录用户

who                           # 显示登录用户
whoami                        # 当前用户名
w                             # 显示登录用户及活动

6.df - 磁盘空间

df                            # 显示磁盘使用情况
df -h                         # 人性化显示(推荐)
df -i                         # 显示inode使用情况
df -T                         # 显示文件系统类型

7.du - 目录大小

du -sh dirname/               # 显示目录总大小
du -h --max-depth=1           # 显示一级子目录大小
du -ah dirname/               # 显示所有文件大小
du -csh *.log                 # 统计多个文件总大小

8.free - 内存使用 bash 复制

free                          # 显示内存使用
free -h                       # 人性化显示(推荐)
free -m                       # 以MB为单位
free -g                       # 以GB为单位

9.top / htop - 进程监控

top                           # 实时进程监控
htop                          # 增强版top(需安装)

# top常用操作
# 1:显示CPU核心详情
# M:按内存排序
# P:按CPU使用率排序
# q:退出
# k:结束进程

10.ps - 进程状态

ps aux                        # 显示所有进程详细信息
ps -ef                        # 完整格式显示
ps aux | grep nginx           # 查找特定进程
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem  # 按内存排序

11.kill - 结束进程

kill 1234                     # 正常结束进程
kill -9 1234                  # 强制结束进程
killall nginx                 # 结束所有nginx进程
pkill -f "pattern"            # 按模式结束进程

六、压缩与解压

1.tar - 打包压缩

# 打包
tar -cvf archive.tar dir/     # 打包目录
tar -czvf archive.tar.gz dir/ # 打包并用gzip压缩
tar -cjvf archive.tar.bz2 dir/ # 打包并用bzip2压缩

# 解包
tar -xvf archive.tar          # 解包
tar -xzvf archive.tar.gz      # 解压gzip压缩包
tar -xjvf archive.tar.bz2     # 解压bzip2压缩包

# 查看
tar -tvf archive.tar          # 查看包内容
tar -tzvf archive.tar.gz      # 查看gzip压缩包内容

选项说明:

• c: 创建打包文件

• x: 解包

• t: 查看包内容

• v: 显示过程

• f: 指定文件名

• z: 用gzip处理

• j: 用bzip2处理

2.gzip / gunzip - gzip压缩

gzip file.txt                 # 压缩为file.txt.gz
gzip -9 file.txt              # 最高压缩率
gunzip file.txt.gz            # 解压
zcat file.txt.gz              # 查看压缩文件内容

3. zip / unzip - zip压缩

zip archive.zip file1 file2   # 压缩文件
zip -r archive.zip dir/       # 压缩目录
unzip archive.zip             # 解压
unzip -l archive.zip          # 查看压缩包内容

七、网络相关

1.ping - 网络连通性测试

ping google.com               # 持续ping
ping -c 4 google.com          # ping 4次
ping -i 0.5 google.com        # 间隔0.5秒
ping -s 1000 google.com       # 设置数据包大小

2.ifconfig / ip - 网络配置

ifconfig                      # 显示网络接口(旧命令)
ip addr                       # 显示IP地址(推荐)
ip link                       # 显示网络链接
ip route                      # 显示路由表

3. netstat - 网络状态

netstat -tulnp                # 查看所有监听端口
netstat -an                   # 查看所有连接
netstat -r                    # 显示路由表
ss -tuln                      # netstat的替代(更快)

4.ssh - 远程登录

ssh user@192.168.1.100        # 远程登录
ssh -p 2222 user@host         # 指定端口
ssh -i key.pem user@host      # 使用密钥登录
ssh -X user@host              # 启用X11转发

5.scp - 远程复制

# 从本地复制到远程
scp file.txt user@host:/path/
scp -r dir/ user@host:/path/

# 从远程复制到本地
scp user@host:/path/file.txt ./
scp -P 2222 user@host:/path/file.txt ./  # 指定端口

6.wget / curl - 下载工具

# wget
wget http://example.com/file.zip
wget -c http://example.com/large.iso  # 断点续传
wget -r -l 1 http://example.com       # 递归下载1层

# curl
curl -O http://example.com/file.zip
curl -o newname.zip http://example.com/file.zip
curl -I http://example.com            # 只显示头部

八、权限管理

1.chmod - 修改权限

# 字母模式
chmod u+x script.sh           # 给所有者增加执行权限
chmod g-w file.txt            # 删除组的写权限
chmod o=r file.txt            # 设置其他用户只读
chmod a+x script.sh           # 给所有人增加执行权限

# 数字模式(常用)
chmod 755 script.sh           # rwxr-xr-x
chmod 644 file.txt            # rw-r--r--
chmod 600 secret.txt          # rw-------
chmod 777 dangerous.sh        # ⚠️ 危险!所有权限

# 递归修改
chmod -R 755 dir/

权限数字说明:

• 4: 读 (r)

• 2: 写 (w)

• 1: 执行 (x)

• 7=4+2+1: 读写执行

• 6=4+2: 读写

• 5=4+1: 读执行

2.chown - 修改所有者

chown user file.txt           # 修改所有者
chown :group file.txt         # 修改所属组
chown user:group file.txt     # 同时修改
chown -R user:group dir/      # 递归修改

3.chgrp - 修改组 bash 复制

chgrp developers file.txt     # 修改文件组
chgrp -R www-data dir/        # 递归修改

4.sudo - 超级用户权限

sudo apt update               # 以root执行
sudo -i                       # 切换到root
sudo -u username command      # 以指定用户执行
sudo !!                       # 以sudo重新执行上条命令

九、其他实用命令

1. alias - 命令别名

alias ll='ls -la'             # 创建别名
alias rm='rm -i'              # 安全删除
unalias ll                    # 删除别名
alias                         # 查看所有别名

2.history - 命令历史

history                       # 查看历史命令
history 10                    # 查看最近10条
!100                          # 执行第100条历史命令
!!                            # 执行上一条命令
!vim                          # 执行最近一条vim命令
Ctrl+R                        # 搜索历史命令

3.man - 帮助手册

man ls                        # 查看ls命令手册
man 5 passwd                  # 查看passwd文件格式
man -k keyword                # 搜索关键词
whatis command                # 简要说明
command --help                # 查看命令帮助

4.echo - 显示文本

echo "Hello World"            # 输出文本
echo -n "No newline"          # 不换行
echo -e "Line1\nLine2"        # 解释转义字符
echo $PATH                    # 输出环境变量
echo {1..10}                  # 输出1-10

5.source / . - 执行脚本 bash 复制

source ~/.bashrc              # 执行脚本(当前shell)
. ~/.bashrc                   # 同上,简写形式

十、实用技巧组合

1.管道和重定向

# 管道:将一个命令的输出作为另一个命令的输入
ps aux | grep nginx           # 查找nginx进程
cat file.txt | sort | uniq    # 排序去重

# 重定向
command > output.txt          # 输出重定向(覆盖)
command >> output.txt         # 输出重定向(追加)
command < input.txt           # 输入重定向
command 2> error.log          # 错误重定向
command &> all.log            # 所有输出重定向

2.后台运行

command &                     # 后台运行
nohup command &               # 后台运行,退出终端不终止
jobs                          # 查看后台任务
fg %1                         # 将任务1调到前台
bg %1                         # 将任务1调到后台

3.命令替换

echo "Today is $(date)"       # 命令替换
file_count=$(ls | wc -l)      # 将结果保存到变量
分类 常用命令
文件操作 ​ ls, cd, pwd, cp, mv, rm, mkdir, touch
查看内容 cat, less, more, head, tail
查找搜索 find, grep, locate, which
文本处理 ​ wc, sort, uniq, cut, tr
系统信息 uname, date, df, du, free, top, ps
权限管理 chmod, chown, chgrp, sudo
网络相关 ping, ifconfig, netstat, ssh, scp
压缩解压 ​ tar, gzip, zip
进程管理 ​ kill, killall, pkill, jobs, bg, fg
其他工具 man, history, alias, echo

⚠️ 安全警告

1. 永远不要在生产环境执行​ rm -rf /

2. 使用 rm -i或设置别名 alias rm='rm -i'

3. 执行删除前先用 ls确认文件

4. 重要文件先备份再操作

5. 使用 sudo时要明确自己在做什么

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐