Shell是Linux和Unix操作系统的命令行解释器,用户通过Shell与系统内核交互,执行各种命令和脚本,Shell基础命令是日常系统管理和操作的核心工具,掌握这些命令能极大提高工作效率,以下从常用命令、文件操作、文本处理、系统管理等方面详细介绍Shell基础命令。

常用基础命令
- ls命令:列出目录内容,常用选项包括
-l(显示详细信息)、-a(显示隐藏文件)、-h(以人类可读格式显示文件大小)。ls -lah会以列表形式显示所有文件,包括隐藏文件,并以KB、MB等单位显示大小。 - cd命令:切换当前工作目录。
cd ..返回上级目录,cd ~切换到用户主目录,cd -在最近两次目录间切换。 - pwd命令:显示当前工作目录的完整路径。
- mkdir命令:创建新目录。
-p选项可递归创建多级目录,例如mkdir -p dir1/dir2。 - rm命令:删除文件或目录。
-r选项递归删除目录,-f选项强制删除不提示。rm -rf dir会强制删除目录及其所有内容。 - cp命令:复制文件或目录。
-r选项用于复制目录,-p选项保留文件属性。cp -r source_dir target_dir复制整个目录。 - mv命令:移动或重命名文件/目录。
mv old_name new_name重命名文件,mv file /path/to/dir/移动文件到指定目录。
文件操作命令
- touch命令:创建空文件或更新文件时间戳。
touch file.txt创建新文件。 - cat命令:查看文件内容,适合小文件。
cat file.txt显示文件全部内容。 - more/less命令:分页查看文件内容。
less功能更强大,支持前后翻页和搜索,例如less file.txt。 - head/tail命令:查看文件开头或结尾部分。
-n选项指定行数,例如head -n 5 file.txt显示前5行,tail -n 10 file.txt显示后10行。 - wc命令:统计文件行数、单词数和字节数。
-l选项仅统计行数,例如wc -l file.txt。
文本处理命令
- grep命令:搜索文本中匹配的行。
-i选项忽略大小写,-r选项递归搜索目录。grep "error" log.txt在日志文件中搜索包含"error"的行。 - sed命令:流编辑器,用于文本替换、删除等操作。
sed 's/old/new/g' file.txt将文件中所有"old"替换为"new"。 - awk命令:强大的文本分析工具,按列处理文本。
awk '{print $1, $3}' file.txt打印每行的第1和第3列。 - sort命令:对文本行进行排序。
-n选项按数字排序,-r选项逆序排序。sort -n numbers.txt对数字文件升序排序。 - uniq命令:去除相邻重复行。
-c选项统计重复次数,例如sort file.txt | uniq -c先排序后去重并统计。
系统管理命令
- ps命令:查看当前进程。
-ef选项显示所有进程,例如ps -ef | grep nginx查看nginx相关进程。 - top命令:实时监控系统进程和资源使用情况,按
q退出。 - kill命令:终止进程。
-9选项强制终止,例如kill -9 1234终止PID为1234的进程。 - df命令:查看磁盘空间使用情况。
-h选项以人类可读格式显示,例如df -h。 - du命令:查看目录或文件大小。
-sh选项显示总大小,例如du -sh /var/log。 - chmod命令:修改文件权限。
+x添加执行权限,例如chmod +x script.sh为脚本添加执行权限。 - chown命令:修改文件所有者。
chown user:group file.txt将文件所有者改为user,组改为group。
其他实用命令
- find命令:查找文件。
find / -name "*.txt"在根目录下查找所有.txt文件。 - tar命令:打包或解压文件。
-c创建归档,-x解压,-v显示过程,-f指定文件名。tar -czf archive.tar.gz dir/将目录打包并gzip压缩,tar -xzf archive.tar.gz解压。 - man命令:查看命令手册页。
man ls显示ls命令的详细说明。 - echo命令:输出文本到终端。
echo $PATH显示环境变量PATH的值。 - which命令:查找命令的绝对路径。
which ls显示ls命令的路径。
以下表格总结了部分常用命令及其功能:
| 命令 | 功能描述 | 常用选项示例 |
|---|---|---|
| ls | 列出目录内容 | -l, -a, -h |
| cd | 切换目录 | |
| cp | 复制文件/目录 | -r, -p |
| mv | 移动/重命名文件/目录 | 无 |
| grep | 搜索文本 | -i, -r |
| find | 查找文件 | -name, -type |
| tar | 打包/解压文件 | -czf, -xzf |
FAQs
-
问:如何批量重命名文件?
答:可以使用rename命令(需安装)或结合for循环实现,使用rename 's/old/new/g' *.txt将当前目录下所有.txt文件中的"old"替换为"new";或通过for f in *.txt; do mv "$f" "${f/old/new}"; done实现类似功能。 -
问:如何查看系统负载和进程占用资源情况?
答:使用top命令实时查看进程CPU、内存占用;uptime命令显示系统负载(1分钟、5分钟、15分钟平均值);htop(需安装)是top的增强版,支持交互式操作。top -p 1234可监控特定进程的资源使用情况。

