Linu操作系统命令1
本文整理了Linux系统常用命令分类指南,涵盖文件操作、文本处理、系统监控等核心功能。文件操作部分包括ls/cd/mkdir等基础命令;文本处理介绍了grep/sort等工具;系统监控包含top/ps等实用命令;权限管理重点讲解chmod/chown的使用方法;网络相关命令涉及ping/ssh等工具。文章特别强调安全操作规范,警告慎用rm -rf等危险命令,建议设置rm别名和使用备份策略。所有命令
·
一、文件与目录操作
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时要明确自己在做什么
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐

所有评论(0)