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 [email protected]

ssh -p 2222 [email protected] '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命令行工具的强大和高效。

相关推荐
Y_Hungry34 分钟前
Linux 怎么使用局域网内电脑的网络访问外部
linux·运维·服务器
10000hours40 分钟前
【C语言编译】编译原理和详细过程
linux·c语言·笔记
小小不董1 小时前
Oracle OCP认证考试考点详解083系列06
linux·数据库·oracle·dba
一道秘制的小菜2 小时前
AimRT从入门到精通 - 03Channel发布者和订阅者
linux·服务器·c++·vim·aimrt
开开心心就好2 小时前
提升办公效率的PDF转图片实用工具
运维·服务器·网络·python·智能手机·pdf·ocr
学习噢学个屁3 小时前
基于51单片机的红外人体感应报警器
c语言·单片机·嵌入式硬件·51单片机
茅坑的小石头3 小时前
linux tar命令详解。压缩格式对比
linux·运维·服务器
球求了3 小时前
Linux 入门:操作系统&&进程详解
linux·运维·服务器·开发语言·学习
JAVA学习通3 小时前
[javaEE]网络编程
运维·服务器·网络
梁下轻语的秋缘4 小时前
每日c/c++题 备战蓝桥杯(P1886 滑动窗口 /【模板】单调队列)
c语言·c++·蓝桥杯