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:设置文件权限为755chmod 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.gz和file2.gz,同时删除源文件gzip -k file1.txt file2.txt:压缩文件为file1.gz和file2.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 - 定时任务
cron 是 Linux 系统中用于定时执行任务的守护进程,而 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
解决:检查文件路径是否正确,使用find或locate命令查找文件。
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组合键,进入反向搜索状态,可以快速匹配输入过的命令

浙公网安备 33010602011771号