Linux常用命令

参考博文

Linux常用指令合集精讲,一篇让你彻底掌握(万字真言)

Linux常用命令大全(非常全!!!)

一、文件与目录操作

1.1 ls - 列出目录内容

ls命令用于显示目录中的文件和子目录。默认只显示可见的内容。

ls [选项] [目录]

常用操作

  • ls -l:以长格式显示,包括文件的权限、所有者、文件大小和最后修改时间

  • ls -a:显示所有文件,包括隐藏文件(以.开头的文件)

  • ls -h:以人类可读的格式显示文件大小(如K,M,G)

  • ls -lah [目录]:以长格式显示所有文件,且文件大小人类可读

1.2 cd - 切换目录

cd命令用于在目录之间导航。它改变当前工作目录。

cd [目录]

常用操作

  • cd ~:切换到用户的主目录
  • cd ..:切换到上一级目录
  • cd ../..:切换到上两级目录
  • cd [目录]:切换到指定目录
  • cd -:切换到上一次所在的目录

1.3 pwd - 显示当前目录

pwd命令显示当前工作目录的完整路径。

pwd

1.4 mkdir - 创建目录

mkdir命令用于创建新目录

mkdir [选项] 目录名

常用操作

  • mkdir testdir:创建单级目录
  • mkdir -p testdir/childdir/grandchilddir :创建多级目录

1.5 rmdir - 删除空目录

rmdir命令用于删除空目录。如果目录非空,则删除失败

rmdir 目录名

1.6 rm - 删除文件或目录

rm命令用于删除文件或目录。删除操作是不可逆的,需谨慎使用

rm [选项] 文件

常用操作

  • rm file.txt:删除文件

  • rm -r mydir:递归删除目录及其内容

  • rm -f file.txt:强制删除文件

  • rm -rf mydir:强制递归删除目录及其内容

1.7 cp - 复制文件或目录

cp命令用于复制文件或目录

cp [选项] 源文件 目标文件

常用操作

  • cp file1.txt file2.txt:复制文件
  • cp -r dir1 dir2:递归复制目录
  • cp file1.txt file2.txt ./target_dir:将列出的多个文件复制到目标文件夹

1.8 mv - 移动或重命名文件或目录

mv命令用于移动或重命名文件或目录。

mv [选项] 源文件 目标文件

常用操作

  • mv file.txt /new/location/:移动文件
  • mv oldname.txt newname.txt:重命名文件

1.9 touch - 创建空文件或更新文件时间戳

touch命令用于创建新的空文件或更新现有文件的访问和修改时间。

touch 文件名

常用操作

  • touch newfile.txt:创建新文件

1.10 tree - 以树状图列出目录的内容

tree指令,它会列出指定目录下的所有文件,包括子目录里的文件

tree

1.11 ln - 链接命令

ln功能是为某一个文件在另外一个位置建立一个同步的链接,一般用软链接(感兴趣的可以检索了解软链接和硬链接的区别)

ln [参数][源文件或目录][目标文件或目录]

常用操作

  • ln -s source dest:软链接源文件或目录到目标文件或目录

链接后的文件通常用unlink来删除

二、文件内容查看与编辑

2.1 cat - 连接并显示文件内容

cat命令用于连接文件并显示其内容。它通常用于查看文件的内容,但也可用于合并文件。

cat [选项] 文件

常用操作

  • cat file.txt:显示文件内容
  • cat -n file.txt:显示带行号的文件内容

2.2 tac - 反向显示文件内容

tac命令将文件内容按行反序显示。与cat相反。

tac 文件

常用操作

  • tac file.txt:按行反向显示文件内容

2.3 more - 分页显示文件内容

more命令用于分页显示文件内容,适合查看长文件。

more 文件

常用操作

  • more file.txt:分页显示文件内容

操作提示

  • 空格键翻页
  • Enter键逐行滚动
  • q退出

2.4 less - 分页显示文件内容(支持向前翻页)

less命令类似于more,但提供了更多功能,如向前翻页。

less 文件

常用操作

  • less file.txt:分页显示文件内容

操作提示

  • 空格键翻页
  • 上下箭头键逐行滚动
  • q退出

2.5 head - 显示文件开头部分内容

head命令显示文件的前几行内容。

head [选项] 文件

常用操作

  • head -n 10 file.txt:显示文件的前10行

2.6 tail - 显示文件结尾部分内容

tail命令显示文件的后几行内容。

tail [选项] 文件

常用操作

  • tail -n 10 file.txt:显示文件的最后10行
  • tail -f file.txt:实时显示文件新增内容

2.7 nano - 简单易用的文本编辑器

nano是一个简单易用的文本编辑器,适合新手。

nao 文件

基本操作

  • Ctrl + O:保存文件
  • Ctrl + X:退出编辑器

2.8 vim - 功能强大的文本编辑器

vim是一个功能强大的文本编辑器,适合高级用户。它有两种模式:普通模式和插入模式。

vim 文件

基本操作(vim的详细使用见Vim编辑器使用):

  • 进入插入模式:按i
  • 保存文件:按Esc,输入:w
  • 退出编辑器:按Esc,输入:q

三、文件权限管理

3.1 chmod - 修改文件权限

chmod命令用于更改文件或目录的权限。权限由三部分组成:所有者、组和其他用户。

chmod [选项] 权限 文件

权限表示法:

  • 数字表示法:如7(用户所有者权限)5(组所有者权限)5(其他用户权限)
  • 符号表示法:如u+x

常用操作

  • chmod 755 file.txt:设置文件权限为755
  • chmod u+x file.txt:增加文件拥有者的执行权限
  • chmod +x file.txt:赋予所有用户执行权限
  • chmod -x file.txt:撤销所有用户执行权限

权限数字表示法:使用八进制数字表示权限

  • r=4, w=2, x=1,无权限为 0
  • 权限组合如:rwx=7, rw-=6, r--=4

3.2 chown - 修改文件所有者

chown命令用于更改文件或目录的所有者和组。

chown [选项] 用户:组 文件

常用操作

  • chown root:root file.txt:将文件所有者和所有组改为root

3.3 chgrp - 修改文件所属组

chgrp命令用于更改文件或目录的组。

chgrp [选项] 组 文件

常用操作

  • chgrp staff file.txt:将文件的组改为staff

四、系统管理

4.1 ps - 显示当前进程

ps命令用于显示当前系统的进程列表。

ps [选项]

常用操作

  • ps -a:显示所有用户的进程

  • ps -u:显示详细的用户/拥有者(user)信息

  • ps -x:显示没有控制终端的进程

  • ps -aux:列出当前系统中所有用户的所有进程

4.2 top - 实时显示系统资源使用情况

top命令实时显示系统资源的使用情况,包括CPU、内存、进程等。

top

操作提示

  • q退出

4.3 kill - 进程号终止进程

kill命令用进程号终止进程。

kill [选项] 进程号

常用操作

  • kill 12345:终止指定进程
  • kill -9 12345:强制终止进程

4.4 killall - 进程名终止进程

killall命令用完整进程名终止所有同名进程。

killall [选项] 进程名

常用操作

  • killall main:终止指定进程名的所有进程
  • killall -9 main:强制指定进程名的所有进程

4.5 df - 显示磁盘空间使用情况

df命令显示文件系统的磁盘空间使用情况。

df [选项]

常用操作

  • df -h:以人类可读格式显示磁盘空间使用情况

4.6 du - 显示目录或文件的磁盘使用情况

du命令显示指定目录或文件的磁盘使用情况。

du [选项] [文件]

常用操作

  • du -h:以人类可读格式显示磁盘使用情况
  • du -s:显示总计磁盘使用
  • du -d 1 -h:当前文件夹深度为1的磁盘使用情况,以人类可读格式显示

4.7 free - 显示内存使用情况

free命令显示系统内存的使用情况。

free [选项]

常用操作

  • free -m :以MB为单位显示

五、网络管理

5.1 ping - 测试网络连通性

ping命令用于测试与目标主机的网络连通性。

ping [选项] 目标地址

常用操作

  • ping baidu.com:测试指定域名地址网络连通性
  • ping 192.168.56.100:测试指定ip地址网络连通性

5.2 ifconfig - 配置网络接口(旧版工具,已被ip替代)

ifconfig命令用于显示和配置网络接口。

ifconfig [接口]

常用操作

  • ifconfig:显示所有网络接口

  • ifconfig eth0 192.168.1.100:配置eth0的ip地址

  • ifconfig eth0 down:禁用eth0网络接口

  • ifconfig eht0 up:启用eth0网络接口

5.3 ip - 显示或配置网络接口

ip命令是ifconfig命令的替代工具,用于显示和配置网络接口。

ip addr
ip link set dev 接口名 up/down

常用操作

  • ip addr:显示所有网络接口和地址
  • ip link set dev eth0 up:启用网络接口
  • ip link set dev eth0 down:禁用网络接口

5.4 netstat - 显示网络连接、路由表、接口状态等

netstat命令用于显示网络连接、路由表、接口状态等信息。

netstat [选项]

常用操作

  • netstat -a:显示所有连接

5.5 ssh - 远程登录

ssh命令用于通过SSH协议远程登录到另一台机器。

ssh 用户名@远程主机

常用操作

  • ssh wangxinzhi@192.168.56.100:指定用户名连接到远程主机

连接后exit退出连接

六、打包与压缩

6.1 tar - 归档文件

tar命令用于创建和管理归档文件。

tar [选项] 文件

常用操作

  • tar -acvf xx.tar file1 file2:创建tar归档文件,自动选择压缩方式(基于归档文件的扩展名,如 .tar.gz.tar.bz2 等)
  • tar -axvf xx.tar:解压tar归档文件,自动选择解压方式(基于归档文件的扩展名,如 .tar.gz.tar.bz2 等)
  • tar -tvf xx.tar:查看tar归档文件内容

6.2 gzip - 压缩文件

gzip命令用于压缩文件。

gzip 文件

常用操作

  • gzip file1.txt file2.txt:压缩文件为file1.gzfile2.gz,同时删除源文件
  • gzip -k file1.txt file2.txt:压缩文件为file1.gzfile2.gz,不删除源文件

6.3 gunzip - 解压缩文件

gunzip命令用于解压缩文件。

gzip 文件.gz

常用操作

  • gzip file.gz:解压缩文件file.gz,同时删除源文件
  • gzip -k file.gz:解压缩文件file.gz,同时删除源文件不删除源文件

6.4 zip - 压缩文件或目录

zip命令用于将文件或目录压缩为zip格式。

zip [选项] 压缩包名 文件

常用操作

  • zip test.zip file1.txt file.txt:压缩文件
  • zip -r test.zip 目录:递归压缩目录

6.5 unzip - 解压缩文件

unzip命令用于解压缩zip文件。

unzip 压缩包名.zip

常用操作

  • unzip test.zip:解压缩文件

七、查找与搜索

7.1 find - 查找文件

find命令用于在指定目录及其子目录中查找文件。

find [路径] [选项] [表达式]

常用操作

  • find . -name "file.txt":按名称查找文件,支持*?模糊匹配
  • find . -size +100M:按文件大小查找文件

7.2 grep - 搜索文本

grep命令用于在文件中搜索匹配的文本模式。

grep [选项] 模式 文件

常用操作

  • grep -n "pattern" file.txt :搜索文件中的模式,结果显示行号
  • grep -rn "pattern" 目录:递归搜索目录中的模式,词中包含模式即可,结果显示行号
  • grep -rnw "pattern" "目录":递归搜索目录中的模式,要求全词匹配,结果显示行号

7.3 locate - 快速查找文件

locate命令用于在整个系统快速查找文件。它基于预先构建的数据库(包括/~),速度很快(查找不是实时的,以数据库更新为准)。

locate 文件名

常用操作

  • locate file.txt :在整个系统(包括/~)快速查找文件

八、其他实用命令

8.1 date - 显示或设置系统日期时间

date命令用于显示或设置系统日期和时间。

date

常用操作

  • date:显示当前日期时间
  • date -s "2026-01-01 12:00:00":设置系统日期时间(需要管理员权限)

8.2 cal - 显示日历

cal命令用于显示日历。

cal

常用操作

  • cal:显示当前月份的日历

  • cal 2026:显示指定年份的日历

8.3 history - 显示命令历史

history命令用于显示命令历史记录。

history

常用操作

  • history:显示所有的命令历史
  • history -c:清空命令历史

8.4 alias - 设置命令别名

alias命令用于创建命令别名,以简化命令输入。

alisa 别名=‘命令’

示例

  • alisa ll='ls -l':创建ls -l的别名为ll

8.5 uname - 显示系统信息

uname命令用于显示系统信息。

uname

常用操作

  • uname -a :显示所有系统信息

8.6 man - 查看命令手册

man命令用于查看命令的手册页,提供详细的命令使用信息。

man 命令名

示例

  • man ls:查看ls命令的手册页

九、进阶命令与脚本编写

9.1 awk - 文本处理工具

awk是一种强大的文本处理工具,适用于格式化报告和文本提取。

awk '模式 {动作}' 文件

示例

  • awk '{print $2}' file.txt :打印文件中的第二列

9.2 sed - 流编辑器

sed是一种流编辑器,适用于对文本文件的批量编辑。

sed '命令' 文件

示例

  • sed 's/foo/bar/g' file.txt:将文件中的所有foo替换为bar

9.3 cron - 定时任务

cronLinux 系统中用于定时执行任务的守护进程,而 crontab 是配置和管理 cron 任务的工具。通过 cron,用户可以在指定的时间周期内自动执行脚本或命令,广泛用于系统维护和自动化任务。

crontab -e

常用操作

  • crontab -e: 编辑当前用户的定时任务
  • crontab -l :查看当前用户的定时任务
  • crontab -r : 删除当前用户的定时任务
  • crontab -u 用户名 -e :编辑指定用户的定时任务(需管理员权限)

示例

  • 0 2 * * * /path/to/back.sh:每天凌晨2点运行备份脚本

时间格式由5个部分组成,格式如下

* * * * * command
- - - - -
| | | | |
| | | | +---- 星期几 (0 - 6, 0 表示周日)
| | | +------ 月份 (1 - 12)
| | +-------- 日期 (1 - 31)
| +---------- 小时 (0 - 23)
+------------ 分钟 (0 - 59)

特殊符号的含义:

  • * 表示任意时间。
  • ,表示多个值,例如 1,15 表示第 1 和第 15 分钟。
  • - 表示范围,例如 1-5 表示从第 1 到第 5 分钟。*/n 表示每隔 n 单位时间执行一次,例如 - */10 表示每 10 分钟执行一次。

9.4 ssh-keygen - 生成SSH密钥

ssh-keygen用于生成SSH公钥和私钥对。

示例

  • ssh-keygen -f ~/.ssh/mykey:生成密钥对并指定文件名

9.5 scp - 安全复制文件

scp用于通过SSH在本地和远程主机之间安全复制文件。

scp 源文件 目标文件

示例

  • scp file.txt user@remotehost:/path/to/destination:将本地文件复制到远程主机

9.6 rsync - 同步文件和目录

rsync用于在本地和远程主机之间同步文件和目录。

rsync [选项] 源 目标

示例

  • rsync -avz /path/to/local/ user@remotehost:/path/to/remote/:同步本地目录到远程主机

9.7 iptables - 配置Linux内核防火墙

iptables用于配置和管理Linux内核中的IP包过滤规则。

iptables [选项]

示例

  • iptables -A INPUT -p tcp --dport 22 -j ACCEPT:允许特定断开的入站连接

9.8 docker - 容器管理

docker用于管理应用容器,可以简化应用的部署和管理。

docker [选项]

示例

  • docker pull ubuntu:拉取Docker镜像
  • docker run -it ubuntu /bin/bash:运行Docker容器

9.9 kubernetes - 容器编排

kubernetes用于自动化容器化应用的部署、管理和扩展。

kubectl [选项]

示例

  • kubectl get pods:显示当前集群中的所有Pod

9.10 ansible - 自动化配置管理

ansible用于自动化配置管理和应用部署。

ansible [选项]

示例

  • ansible-playbook playbook.yml:运行Ansible playbook

十、总结与常见问题

10.1 常见问题

10.1.1 权限不足

错误示例

bash: /etc/hosts: Permission denied

解决:使用sudo命令提升权限

10.1.2 文件不存在

错误示例

ls: cannot access 'file.txt': No such file or directory

解决:检查文件路径是否正确,使用findlocate命令查找文件。

10.1.3 命令未找到

错误示例

bash: foo: command not found

解决:检查命令是否正确输入,或安装相应的软件包。

10.2 提高效率的技巧

10.2.1 使用别名

通过创建别名,可以简化常用命令的输入。

alias ll='ls -l'
alias gs='git status'

10.2.2 使用命令历史

使用history命令查看和重用以前输入的命令。

使用!加上命令编号重复执行命令:

!523

10.2.3 自动补全

使用Tab键自动补全命令和文件名,可以减少输入错误和提高效率。

10.2.4 反向查找/搜索历史命令

按下Ctrl+R组合键,进入反向搜索状态,可以快速匹配输入过的命令

posted @ 2025-12-01 15:35  wangxinzhi  阅读(14)  评论(0)    收藏  举报