【Linux】Linux常用指令合集精讲,一篇让你彻底掌握(万字真言)2:https://developer.aliyun.com/article/1563825
六、打包与压缩
6.1 tar
- 归档文件
tar
命令用于创建和管理归档文件。
tar [选项] 文件
常用选项:
- 创建tar归档文件:
tar -cvf archive.tar 文件
- 解压tar归档文件:
tar -xvf archive.tar
- 查看tar归档文件内容:
tar -tvf archive.tar
6.2 gzip
- 压缩文件
gzip
命令用于压缩文件。
gzip 文件
示例:
- 压缩文件:
gzip file.txt
6.3 gunzip
- 解压缩文件
gunzip
命令用于解压缩文件。
gunzip 文件.gz
示例:
- 解压缩文件:
gunzip file.txt.gz
6.4 zip
- 压缩文件
zip
命令用于将文件或目录压缩为zip格式。
zip [选项] 压缩包名 文件
常用选项:
- 压缩单个文件:
zip archive.zip file.txt
- 递归压缩目录:
zip -r archive.zip 目录
6.5 unzip
- 解压缩文件
unzip
命令用于解压缩zip文件。
unzip 压缩包名.zip
示例:
- 解压缩文件:
unzip archive.zip
七、查找与搜索
7.1 find
- 查找文件
find
命令用于在指定目录及其子目录中查找文件。
find [路径] [选项] [表达式]
常用选项:
- 按名称查找文件:
find / -name "file.txt"
- 按文件大小查找文件:
find / -size +100M
7.2 grep
- 搜索文本
grep
命令用于在文件中搜索匹配的文本模式。
grep [选项] 模式 文件
常用选项:
- 搜索文件中的模式:
grep "pattern" file.txt
- 递归搜索目录中的模式:
grep -r "pattern" 目录
7.3 locate
- 快速查找文件
locate
命令用于快速查找文件。它基于预先构建的数据库,速度很快。
locate 文件名
示例:
- 查找文件:
locate file.txt
八、其他实用命令
8.1 date
- 显示或设置系统日期时间
date
命令用于显示或设置系统日期和时间。
date
示例:
- 显示当前日期时间:
date
- 设置系统日期时间(需管理员权限):
date -s "2023-01-01 12:34:56"
8.2 cal
- 显示日历
cal
命令用于显示日历。
cal
示例:
- 显示当前月份的日历:
cal
- 显示指定年份的日历:
cal 2023
8.3 history
- 显示命令历史
history
命令用于显示命令历史记录。
history
示例:
- 显示所有历史记录:
history
- 清空历史记录:
history -c
8.4 alias
- 设置命令别名
alias
命令用于创建命令别名,以简化命令输入。
alias 别名='命令'
示例:
- 创建
ll
的别
名为ls -l
:
alias ll='ls -l'
8.5 uname
- 显示系统信息
uname
命令用于显示系统信息。
uname [选项]
常用选项:
- 显示所有系统信息:
uname -a
8.6 man
- 查看命令手册
man
命令用于查看命令的手册页,提供详细的命令使用信息。
man 命令名
示例:
- 查看
ls
命令的手册页:
man ls
九、进阶命令与脚本编写
9.1 awk
- 文本处理工具
awk
是一种强大的文本处理工具,适用于格式化报告和文本提取。
awk '模式 {动作}' 文件
示例:
- 打印文件中的第二列:
awk '{print $2}' file.txt
9.2 sed
- 流编辑器
sed
是一种流编辑器,适用于对文本文件的批量编辑。
sed '命令' 文件
示例:
- 将文件中的所有
foo
替换为bar
:
sed 's/foo/bar/g' file.txt
9.3 cron
- 定时任务
cron
用于在指定时间运行计划任务。
crontab -e
示例:
- 每天凌晨2点运行备份脚本:
0 2 * * * /path/to/backup.sh
9.4 ssh-keygen
- 生成SSH密钥
ssh-keygen
用于生成SSH公钥和私钥对。
ssh-keygen
示例:
- 生成密钥对并指定文件名:
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镜像:
docker pull ubuntu
- 运行Docker容器:
docker run -it ubuntu /bin/bash
9.9 kubernetes
- 容器编排
kubernetes
用于自动化容器化应用的部署、管理和扩展。
kubectl [选项]
示例:
- 显示当前集群中的所有Pod:
kubectl get pods
9.10 ansible
- 自动化配置管理
ansible
用于自动化配置管理和应用部署。
ansible [选项]
示例:
- 运行Ansible playbook:
ansible-playbook playbook.yml
十、总结与常见问题
10.1 常见问题
10.1.1 权限不足
- 错误示例:
bash: /etc/hosts: Permission denied
- 解决方法:使用
sudo
命令提升权限。
sudo nano /etc/hosts
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
命令查看和重用以前输入的命令。
history
使用!
加上命令编号重复执行命令:
!42
10.2.3 自动补全
使用Tab键自动补全命令和文件名,可以减少输入错误和提高效率。
10.3 持续学习与进阶
10.3.1 阅读手册页
每个Linux命令都有详细的手册页,可以通过man
命令查看。
man ls
10.3.2 在线资源
- Linux Documentation Project (LDP)
- Stack Overflow
- 各种Linux发行版的官方文档和社区论坛