Linux 常用指令详解

Linux 操作系统中有大量强大的命令行工具,下面我将分类介绍一些最常用的指令及其用法。

## 文件与目录操作

### 1. ls - 列出目录内容
```
ls [选项] [目录名]
```
常用选项:
- `-l`:长格式显示(详细信息)
- `-a`:显示所有文件(包括隐藏文件)
- `-h`:人类可读的文件大小(配合 -l 使用)
- `-t`:按修改时间排序
- `-r`:反向排序

示例:
```bash
ls -lah /home  # 显示/home目录下所有文件的详细信息
```

### 2. cd - 切换目录
```
cd [目录路径]
```
特殊路径:
- `cd ~` 或 `cd`:返回用户主目录
- `cd ..`:返回上级目录
- `cd -`:返回上一次所在的目录

### 3. pwd - 显示当前工作目录
```
pwd
```

### 4. mkdir - 创建目录
```
mkdir [选项] 目录名
```
常用选项:
- `-p`:递归创建所需目录结构
- `-m`:设置目录权限

示例:
```bash
mkdir -p project/{src,doc,bin}  # 创建project目录及其子目录
```

### 5. cp - 复制文件/目录
```
cp [选项] 源文件 目标文件
cp [选项] 源文件... 目标目录
```
常用选项:
- `-r`:递归复制目录
- `-i`:覆盖前提示
- `-u`:只复制更新的文件
- `-v`:显示复制过程

示例:
```bash
cp -r /home/user/documents /backup/  # 递归复制目录
```

### 6. mv - 移动/重命名文件
```
mv [选项] 源文件 目标文件
mv [选项] 源文件... 目标目录
```
常用选项:
- `-i`:覆盖前提示
- `-v`:显示移动过程

示例:
```bash
mv oldname.txt newname.txt  # 重命名文件
mv *.txt /target/dir/      # 移动所有txt文件
```

### 7. rm - 删除文件/目录
```
rm [选项] 文件...
```
常用选项:
- `-r`:递归删除目录
- `-f`:强制删除,不提示
- `-i`:删除前提示确认

示例:
```bash
rm -rf obsolete_dir/  # 强制递归删除目录(谨慎使用!)
```

### 8. find - 查找文件
```
find [路径] [表达式]
```
常用表达式:
- `-name "pattern"`:按名称查找
- `-type f/d`:查找文件/目录
- `-mtime +n`:查找n天前修改的文件
- `-size +10M`:查找大于10MB的文件
- `-exec command {} \;`:对找到的文件执行命令

示例:
```bash
find /home -name "*.txt" -type f  # 查找/home下所有txt文件
find . -mtime -7 -exec ls -l {} \;  # 查找7天内修改的文件并列出详细信息
```

### 9. grep - 文本搜索
```
grep [选项] 模式 [文件...]
```
常用选项:
- `-i`:忽略大小写
- `-r`:递归搜索目录
- `-n`:显示行号
- `-v`:反向匹配(不包含模式的行)
- `-l`:只显示包含匹配的文件名
- `-E`:使用扩展正则表达式

示例:
```bash
grep -rn "error" /var/log/  # 递归搜索/var/log/中包含"error"的行
ps aux | grep sshd          # 过滤包含sshd的进程
```

## 文件内容查看与处理

### 10. cat - 连接并显示文件内容
```
cat [选项] [文件...]
```
常用选项:
- `-n`:显示行号
- `-b`:显示非空行行号

示例:
```bash
cat file1 file2 > combined  # 合并文件
cat -n /etc/passwd         # 显示带行号的文件内容
```

### 11. less/more - 分页查看文件
```
less [选项] 文件名
more [选项] 文件名
```
常用操作(less中):
- 空格:下一页
- b:上一页
- /pattern:搜索
- q:退出

### 12. head/tail - 查看文件开头/结尾
```
head [选项] 文件
tail [选项] 文件
```
常用选项:
- `-n NUM`:显示NUM行(默认10)
- `-f`:跟踪文件变化(常用于日志)

示例:
```bash
head -n 20 largefile.log  # 显示文件前20行
tail -f /var/log/syslog   # 实时查看日志更新
```

### 13. wc - 统计文件内容
```
wc [选项] 文件
```
常用选项:
- `-l`:行数
- `-w`:单词数
- `-c`:字节数
- `-m`:字符数

示例:
```bash
wc -l access.log  # 统计文件行数
```

### 14. sort - 排序文件内容
```
sort [选项] 文件
```
常用选项:
- `-n`:按数值排序
- `-r`:逆序排序
- `-k N`:按第N列排序
- `-u`:去重

示例:
```bash
sort -nrk 3 data.txt  # 按第三列数值逆序排序
```

### 15. uniq - 报告或忽略重复行
```
uniq [选项] [输入文件 [输出文件]]
```
常用选项:
- `-c`:统计重复次数
- `-d`:只显示重复行
- `-u`:只显示不重复行

通常与sort配合使用:
```bash
sort file.txt | uniq -c  # 统计每行出现次数
```

### 16. cut - 提取文件列
```
cut [选项] 文件
```
常用选项:
- `-d DELIM`:指定分隔符(默认为制表符)
- `-f LIST`:选择指定字段

示例:
```bash
cut -d: -f1,7 /etc/passwd  # 提取用户名和登录shell
```

### 17. sed - 流编辑器
```
sed [选项] '命令' 文件
```
常用命令:
- `s/pattern/replacement/`:替换
- `d`:删除行
- `p`:打印行

示例:
```bash
sed 's/foo/bar/g' file.txt  # 全局替换foo为bar
sed -i.bak 's/old/new/' file  # 直接修改文件并备份
```

### 18. awk - 文本处理工具
```
awk '模式 {动作}' 文件
```
常用变量:
- `$0`:整行
- `$1,$2,...`:第1,2,...字段
- `NF`:字段数
- `NR`:当前行号

示例:
```bash
awk -F: '{print $1, $7}' /etc/passwd  # 同cut示例
awk '$3 > 100 {print $0}' data.txt  # 打印第三列大于100的行
```

## 系统信息与进程管理

### 19. ps - 显示进程状态
```
ps [选项]
```
常用选项组合:
- `aux`:显示所有用户的所有进程
- `-ef`:全格式列表

示例:
```bash
ps aux | grep nginx  # 查找nginx进程
```

### 20. top/htop - 动态显示进程信息
```
top
htop  # 需要安装,功能更强大
```
常用操作:
- q:退出
- k:杀死进程(输入PID)
- M:按内存排序
- P:按CPU排序

### 21. kill - 终止进程
```
kill [选项] PID...
killall [选项] 进程名...
```
常用选项:
- `-9`:强制终止(SIGKILL)
- `-15`:正常终止(SIGTERM,默认)

示例:
```bash
kill -9 1234  # 强制终止PID为1234的进程
killall -u username  # 终止某用户的所有进程
```

### 22. free - 显示内存使用情况
```
free [选项]
```
常用选项:
- `-h`:人类可读格式
- `-m`:以MB为单位

示例:
```bash
free -h  # 显示易读的内存信息
```

### 23. df - 显示磁盘空间
```
df [选项] [文件...]
```
常用选项:
- `-h`:人类可读格式
- `-T`:显示文件系统类型

示例:
```bash
df -hT  # 显示所有挂载点的磁盘使用情况
```

### 24. du - 估算文件/目录空间使用
```
du [选项] [文件...]
```
常用选项:
- `-h`:人类可读格式
- `-s`:只显示总计
- `--max-depth=N`:显示N级子目录

示例:
```bash
du -sh /var/log/  # 显示/var/log/的总大小
```

### 25. uname - 显示系统信息
```
uname [选项]
```
常用选项:
- `-a`:显示所有信息
- `-r`:内核版本
- `-m`:机器硬件名称

示例:
```bash
uname -a  # 显示所有系统信息
```

### 26. uptime - 显示系统运行时间
```
uptime
```
输出示例:
```
10:30:45 up 15 days,  3:25,  2 users,  load average: 0.15, 0.10, 0.05
```

## 网络相关

### 27. ifconfig/ip - 网络接口配置
```
ifconfig [接口] [选项]  # 传统命令
ip addr show          # 现代替代命令
```
示例:
```bash
ifconfig eth0  # 显示eth0接口信息
ip a          # 显示所有接口信息
```

### 28. ping - 测试网络连通性
```
ping [选项] 主机名/IP
```
常用选项:
- `-c N`:发送N个包后停止
- `-i N`:设置间隔N秒

示例:
```bash
ping -c 4 google.com  # 向google.com发送4个ping包
```

### 29. netstat/ss - 网络统计信息
```
netstat [选项]  # 传统命令
ss [选项]       # 现代替代命令
```
常用选项:
- `-t`:TCP连接
- `-u`:UDP连接
- `-l`:监听端口
- `-p`:显示进程信息
- `-n`:数字形式显示地址

示例:
```bash
ss -tulnp  # 显示所有监听端口及相关进程
```

### 30. traceroute/tracepath - 跟踪路由路径
```
traceroute 主机名/IP
tracepath 主机名/IP  # 不需要root权限
```

### 31. wget/curl - 下载工具
```
wget [选项] URL
curl [选项] URL
```
常用选项:
- `-O`:保存到文件(wget)
- `-o FILE`:保存到文件(curl)
- `-L`:跟随重定向

示例:
```bash
wget https://example.com/file.zip
curl -o file.zip https://example.com/file.zip
```

### 32. ssh - 安全远程登录
```
ssh [选项] 用户名@主机 [命令]
```
常用选项:
- `-p 端口`:指定端口
- `-i 密钥文件`:使用指定密钥

示例:
```bash
ssh user@example.com
ssh -p 2222 user@example.com 'ls -l /tmp'
```

## 权限管理

### 33. chmod - 更改文件权限
```
chmod [选项] 模式 文件...
```
模式格式:
- 数字模式:如 `755`
- 符号模式:如 `u+x,g-w,o=r`

示例:
```bash
chmod 755 script.sh  # rwxr-xr-x
chmod +x script.sh   # 添加执行权限
```

### 34. chown - 更改文件所有者
```
chown [选项] 用户[:组] 文件...
```
常用选项:
- `-R`:递归更改

示例:
```bash
chown user:group file.txt  # 更改所有者和组
chown -R www-data:www-data /var/www  # 递归更改
```

### 35. passwd - 更改用户密码
```
passwd [用户名]  # 无参数更改当前用户密码
```

## 压缩与归档

### 36. tar - 归档工具
```
tar [选项] 文件...
```
常用选项:
- `-c`:创建归档
- `-x`:提取归档
- `-v`:显示过程
- `-f FILE`:指定归档文件
- `-z`:gzip压缩/解压
- `-j`:bzip2压缩/解压
- `-J`:xz压缩/解压

示例:
```bash
tar -czvf archive.tar.gz dir/  # 创建gzip压缩的归档
tar -xzvf archive.tar.gz      # 解压gzip归档
```

### 37. gzip/gunzip - 压缩/解压
```
gzip [选项] 文件...
gunzip [选项] 文件...
```
常用选项:
- `-d`:解压(gzip)
- `-k`:保留原文件
- `-9`:最大压缩

示例:
```bash
gzip -9 largefile.log  # 最大压缩
gunzip largefile.log.gz  # 解压
```

### 38. zip/unzip - ZIP压缩/解压
```
zip [选项] 压缩包名 文件...
unzip [选项] 压缩包名
```
常用选项:
- `-r`:递归压缩目录
- `-d 目录`:指定解压目录

示例:
```bash
zip -r archive.zip dir/
unzip archive.zip -d target_dir/
```

## 系统管理

### 39. sudo - 以超级用户权限执行命令
```
sudo [选项] 命令
```
常用选项:
- `-i`:切换到root shell
- `-u 用户`:以指定用户身份执行

### 40. su - 切换用户
```
su [选项] [用户名]
```
无参数时切换到root

### 41. useradd/userdel - 添加/删除用户
```
useradd [选项] 用户名
userdel [选项] 用户名
```
常用选项:
- `-m`:创建用户主目录
- `-G 组`:指定附加组
- `-r`:删除用户时同时删除主目录

示例:
```bash
useradd -m -G sudo newuser  # 创建有sudo权限的用户
userdel -r olduser          # 删除用户及其主目录
```

### 42. groupadd/groupdel - 添加/删除组
```
groupadd [选项] 组名
groupdel 组名
```

### 43. crontab - 定时任务管理
```
crontab [选项]
```
常用选项:
- `-e`:编辑当前用户的crontab
- `-l`:列出当前用户的crontab
- `-r`:删除当前用户的crontab

### 44. systemctl - 系统服务管理
```
systemctl [命令] [服务]
```
常用命令:
- `start`:启动服务
- `stop`:停止服务
- `restart`:重启服务
- `status`:查看服务状态
- `enable`:设置开机启动
- `disable`:禁止开机启动

示例:
```bash
systemctl status nginx  # 查看nginx状态
systemctl restart apache2  # 重启apache
```

## 其他实用命令

### 45. alias - 创建命令别名
```
alias 别名='命令'
```
示例:
```bash
alias ll='ls -alF'
```

### 46. history - 查看命令历史
```
history [选项]
```
常用选项:
- `-c`:清除历史
- `-d N`:删除第N条历史

常用操作:
- `!N`:执行历史中第N条命令
- `!!`:执行上一条命令
- `!str`:执行最近以str开头的命令

### 47. which/whereis - 查找命令位置
```
which 命令
whereis [选项] 命令
```
whereis选项:
- `-b`:只查找二进制文件
- `-m`:只查找手册页

### 48. man - 查看命令手册
```
man [章节] 命令
```
常用章节:
- 1:用户命令
- 5:文件格式
- 8:管理员命令

### 49. ln - 创建链接
```
ln [选项] 源文件 目标文件
```
常用选项:
- `-s`:创建符号链接
- `-f`:强制创建

示例:
```bash
ln -s /path/to/file linkname  # 创建符号链接
```

### 50. dd - 磁盘/文件转换与复制
```
dd [选项]
```
常用选项:
- `if=FILE`:输入文件
- `of=FILE`:输出文件
- `bs=N`:块大小
- `count=N`:复制N个块

示例:
```bash
dd if=/dev/sda of=disk.img bs=4M  # 创建磁盘映像
dd if=/dev/zero of=/swapfile bs=1M count=1024  # 创建1GB交换文件
```

## 总结

以上是Linux中最常用的50个命令及其主要用法。掌握这些命令可以完成大多数日常系统管理任务。要深入了解每个命令,可以使用`man 命令名`查看完整手册。随着使用经验的积累,你会发现Linux命令行工具的强大和高效。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/81822.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

uv安装及使用

windows安装参考: 什么是python uv,如何在windows上安装uv,基础的用法有哪些?_windows安装uv-CSDN博客 https://zhuanlan.zhihu.com/p/6776864377 使用方式 方式1: 创建uv虚拟环境->激活环境->安装依赖&…

C#实现Socket通信:基于TCP/IP协议的网络编程

TCP/IP网络模型 最上层的是应用层,也就是我们日常可以接触到的,它会给数据添加对应的头部,并传输给传输层,应用层是我们日常会接触到的,比如HTTP,FTP,Telnet,DNS,SMTP。…

哈希算法、搜索算法与二分查找算法在 C# 中的实现与应用

在计算机科学中,哈希算法、搜索算法和二分查找算法是三个非常基础且常用的概念。它们分别在数据存储、数据查找、以及高效检索等场景中起着至关重要的作用。在 C# 中,这些算法的实现和使用也十分简便。本文将详细讲解这三种算法的原理、应用以及 C# 中的…

AI日报 · 2025年5月05日|雅诗兰黛与微软合作成立 AI 创新实验室,加速美妆产品研发与营销

1、苹果与 Anthropic 深化合作,内部测试 AI 驱动的新版 Xcode 据多方报道,苹果公司正与人工智能初创公司 Anthropic 合作,开发集成 AI 功能的新一代 Xcode 开发平台。该平台旨在利用 Anthropic 强大的 Claude Sonnet 模型,为开发…

python celery框架结合django的使用

学习目标: 通过文章了解celery的运行机制以及如何结合django去使用 熟悉celery的运行原理属性celery在django项目当中的配置如何启动运行celery框架 学习内容: 熟悉celery的运行原理,简单来说 Celery 是一个“任务排队机后台处理器”。帮你…

滑动窗口leetcode 904

代码&#xff1a; class Solution { public:int totalFruit(vector<int>& fruits) {int n fruits.size();unordered_map<int,int> window_type_count;int left 0;int ans 0;for(int right 0; right <n;right){while(window_type_count.size() 2 &&…

用可视化学习逆置法

1.逆置法思路 目标&#xff1a;将这个彩色数组向右旋转3步 &#x1f534;1 → &#x1f7e0;2 → &#x1f7e1;3 → &#x1f7e2;4 → &#x1f535;5 → &#x1f7e3;6 → ⚪7我们希望得到 &#x1f535;5 → &#x1f7e3;6 → ⚪7 → &#x1f534;1 → &#x1f7e0;…

Cisco Packet Tracer 选项卡的使用

目录 设备Config选项卡的使用 Realtime and Simulation模式&#xff08;数据包跟踪与分析&#xff09; 设备Desktop选项卡的使用 设备Config选项卡的使用 Hostname NVRAM Startup Config----Load 加载 INTERFACE 点击on Save 如果&#xff0c;不把Running Config保存为Sta…

pyqt写一个单片机配置界面

已经实现以下功能 1.可以选择单片机架构 2.选择完单片机架构后第二个框可以选择常见单片机型号 3.选择完常见单片机型号后第三个框可以选择内部资源如adc等&#xff08;可以选择多个内部资源&#xff09;4.选择完内部资源如adc等&#xff08;可以选择多个内部资源&#xff09;后…

丢失的数字 --- 位运算

目录 一&#xff1a;题目 二&#xff1a;算法原理 三&#xff1a;代码实现 一&#xff1a;题目 题目链接&#xff1a; 268. 丢失的数字 - 力扣&#xff08;LeetCode&#xff09; 二&#xff1a;算法原理 三&#xff1a;代码实现 class Solution { public:int missingNumb…

千锋教育Ansible自动化运维实战教程从入门到精通

简介 介绍 Ansible 的基本概念、自动化运维优势、应用场景及课程目标。 欢迎开启 Ansible 学习之旅&#xff01; 你好&#xff01;作为一名学习者&#xff0c;你即将通过这个 Ansible 自动化运维实战 课程&#xff0c;从零开始掌握自动化运维的超能力&#xff01;这个“简介”…

深入理解 TensorFlow 的模型保存与加载机制(SavedModel vs H5)

深入理解 TensorFlow 的模型保存与加载机制&#xff08;SavedModel vs H5&#xff09; 在使用 TensorFlow 进行模型训练后&#xff0c;模型的保存与加载是部署、复用和迁移学习的重要环节。TensorFlow 提供了两种主要的保存格式&#xff1a;SavedModel 和 HDF5 (.h5)。本篇文章…

C++之特殊类设计及类型转换

目录 一、设计一个不能被拷贝的类 二、设计一个只能在堆上创建对象的类 三、设计一个只能在栈上创建对象的类 四、设计一个不能被继承的类 五、设计一个只能创建一个对象的类(单例模式) 六、C语言中的类型转换 七、C中的三类类型转换 八、C强制类型转换 8.1、为什么C需…

制作一款打飞机游戏36:调度编辑器

我们正在创建一个调度编辑器。嗯&#xff0c;这个名字听起来可能有点奇怪&#xff0c;对吧&#xff1f;但如果你了解射击游戏中的“调度”&#xff0c;那就是敌人出现的时间表。 你可能已经看到了&#xff0c;我们有一个可以滚动的关卡。现在&#xff0c;我想增加一些交互性&a…

wordperss AI插件:AI图文+视频+长尾关键词自动生成,已内置deepseek、kimi全模型,支持简单一键接入更多自定义API

【2.17最新版】Linkreate wordperss AI插件&#xff1a;AI图文视频长尾关键词自动生成&#xff0c;已内置deepseek、kimi全模型。 支持自定义接入其它API&#xff0c;包括但不限于腾讯云API和它的deepseek模型 后台只需要设置对应的API url 、模型 、API key,就可以让插件调用…

从零开始学Python:开启编程新世界的大门

在当今数字化时代&#xff0c;Python作为一门简洁、高效且功能强大的编程语言&#xff0c;受到了越来越多人的喜爱与追捧。无论是数据科学、人工智能、Web开发&#xff0c;还是自动化脚本编写&#xff0c;Python都展现出了卓越的能力。本文将带领大家踏上Python学习之旅&#x…

【PostgreSQL数据分析实战:从数据清洗到可视化全流程】3.2 缺失值检测与处理(NULL值填充/删除策略)

&#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 文章大纲 缺失值检测与处理全攻略&#xff1a;NULL值填充与删除策略实战3.2 缺失值检测与处理3.2.1 缺失值类型与业务影响3.2.1.1 缺失值的三种形态3.2.1.2 业务影响分级 3.2.2 缺失值…

Java求职面试:Spring Boot与微服务的幽默探讨

Java求职者面试&#xff1a;技术与幽默的碰撞 场景概述 在某互联网大厂的面试现场&#xff0c;面试官严肃认真&#xff0c;程序员则是一个搞笑的水货角色。面试者名叫张伟&#xff0c;年龄28岁&#xff0c;硕士学历&#xff0c;拥有5年的Java开发经验。以下是面试的详细过程。…

使用 NGINX 实现 HTTP Basic 认证ngx_http_auth_basic_module 模块

一、前言 在 Web 应用中&#xff0c;对部分资源进行访问控制是十分常见的需求。除了基于 IP 限制、JWT 验证、子请求校验等方式外&#xff0c;最经典也最简单的一种方式便是 HTTP Basic Authentication。NGINX 提供的 ngx_http_auth_basic_module 模块支持基于用户名和密码的基…

map和set的设计以及红黑树的设计

1.map和set的底层是红黑树 2.map和set在STL是容器&#xff0c;在我看来&#xff0c;不过也是封装了平衡二叉搜索树红黑树的适配器 我们先看红黑树的设计&#xff0c;看完后map和set的封装易如反掌 #pragma once #include<utility> #include<iostream> using name…