服务器运维中,Shell脚本是一种非常实用的自动化工具。以下是一些常用的Shell命令:
基础命令
- ls - 列出目录内容。
- cd - 更改当前目录。
- pwd - 显示当前工作目录。
- cp - 复制文件或目录。
- mv - 移动或重命名文件或目录。
- rm - 删除文件或目录。
- mkdir - 创建新目录。
- rmdir - 删除空目录。
- touch - 创建空文件或更新文件时间戳。
- cat - 显示文件内容。
- more / less - 分页显示文件内容。
- head - 显示文件的前几行。
- tail - 显示文件的末几行。
- grep - 在文件中搜索特定文本。
- find - 在目录树中查找文件。
- chmod - 更改文件权限。
- chown - 更改文件所有者。
- df - 显示磁盘空间使用情况。
- du - 显示目录空间使用情况。
- top / htop - 实时显示系统进程和资源使用情况。
网络相关命令
- ping - 检查网络连接。
- ifconfig / ip addr - 显示或配置网络接口。
- netstat - 显示网络连接、路由表、接口统计等。
- ss - 类似于netstat,但更快更现代。
- traceroute - 跟踪数据包到目的地的的网络路径。
- curl / wget - 下载文件或数据。
- ssh - 安全地连接到远程服务器。
- scp - 安全地复制文件到远程服务器。
- rsync - 同步文件和目录。
系统管理命令
- uptime - 显示系统运行时间。
- w - 显示当前登录用户和活动。
- whoami - 显示当前用户。
- sudo - 以超级用户权限执行命令。
- crontab - 定时任务管理。
- systemctl - 管理systemd服务。
- service - 管理SysVinit服务(较旧的系统)。
- kill - 终止进程。
- pkill - 根据名称或其他属性终止进程。
- nice / renice - 调整进程优先级。
文本处理命令
- awk - 强大的文本处理工具。
- sed - 流编辑器,用于对文本进行批量修改。
- sort - 对文本行进行排序。
- uniq - 报告或省略重复的行。
- cut - 提取文本列。
- paste - 合并文本行。
其他有用的命令
- history - 查看命令历史记录。
- alias - 创建命令别名。
- echo - 显示一行文本。
- printf - 格式化输出文本。
- date - 显示或设置系统日期和时间。
- cal - 显示日历。
- man - 显示命令的手册页。
Shell脚本编写基础
- #!/bin/bash - 指定脚本解释器。
- 变量 - 使用
$
符号引用变量。
- 条件语句 -
if
、else
、elif
。
- 循环 -
for
、while
、until
。
- 函数 - 定义可重用的代码块。
- 管道 -
|
- 将一个命令的输出作为另一个命令的输入。
- 重定向 -
>
、>>
、<
- 控制输入输出流。
这些命令和概念构成了Shell脚本编写的基础,熟练掌握它们可以大大提高服务器运维的效率和自动化水平。