linux命令行与shell
linux命令行与shell详细介绍
在 Linux 系统中,命令行(Command Line Interface, CLI) 是用户与操作系统交互的文本界面,而 Shell 是解析和执行用户命令的程序。以下是关于 Linux 命令行与 Shell 的核心知识整理,适合初学者快速入门和实践:
一、基础概念
- 什么是 Shell?
- Shell 是 Linux 的命令解释器,负责将用户输入的命令转换为操作系统内核能执行的指令。
- 常见 Shell 类型:
- Bash(Bourne-Again SHell):Linux 默认 Shell,功能强大,兼容性强。
- Zsh(Z Shell):增强版 Shell,支持语法高亮、自动补全、主题配置(如 Oh My Zsh)。
- Fish(Friendly Interactive SHell):用户友好,适合新手,支持实时建议。
- 查看当前 Shell:
echo $SHELL - 切换 Shell:
chsh -s /bin/zsh(需重启终端生效)。
- 命令行结构
bash命令 选项 参数或
二、常用 Linux 命令分类(按功能)
1. 文件与目录操作
| 命令 | 说明 | 示例 |
|---|---|---|
ls |
列出文件 / 目录 | ls -l(详细信息)、ls -h(人类可读大小) |
cd |
切换目录 | cd ~(家目录)、cd -(返回上一次目录) |
mkdir |
创建目录 | mkdir -p dir1/dir2(递归创建) |
rm |
删除文件 / 目录 | rm file.txt、rm -r dir(删除目录) |
cp |
复制文件 / 目录 | cp src.txt dest.txt、cp -r dir1 dir2 |
mv |
移动 / 重命名文件 | mv old.txt new.txt、mv file dir |
cat |
查看文件内容(适合小文件) | cat file.txt |
less/more |
分页查看文件(适合大文件) | less log.txt(按空格翻页,q 退出) |
nano/vim |
文本编辑 | nano config.txt(简单编辑器)、vim file.txt(高级编辑器) |
2. 系统信息与进程管理
| 命令 | 说明 | 示例 |
|---|---|---|
top/htop |
实时监控进程(htop 更友好) | top |
ps |
查看进程状态 | ps aux(显示所有进程) |
kill |
终止进程 | kill -9 1234(强制终止 PID 1234) |
df |
查看磁盘空间 | df -h(人类可读格式) |
free |
查看内存使用 | free -h |
uname |
查看系统信息 | uname -a(完整信息) |
3. 网络与远程连接
| 命令 | 说明 | 示例 |
|---|---|---|
ping |
测试网络连通性 | ping www.baidu.com |
curl/wget |
下载文件 | curl -O https://file.com |
ssh |
远程连接服务器 | ssh user@192.168.1.1 |
scp |
远程复制文件 | scp local.txt user@server:/path |
netstat |
查看网络状态 | netstat -tunlp(查看监听端口) |
4. 文本处理与过滤
| 命令 | 说明 | 示例 |
|---|---|---|
grep |
搜索文本中的关键词 | grep "error" log.txt |
awk |
文本格式化与处理 | awk '{print $1}' file.txt(打印第一列) |
sed |
流文本编辑(替换、删除等) | sed 's/old/new/g' file.txt(替换所有 old 为 new) |
sort |
排序文件内容 | sort -n numbers.txt(数字排序) |
wc |
统计文件行数、字数、字节数 | wc -l file.txt(行数) |
三、Shell 脚本基础
Shell 脚本是将一系列命令按顺序组合的文本文件,用于自动化任务(如备份、监控、部署)。
1. 脚本基础结构
bash
2. 变量与参数
- 定义变量:
name="Linux"(无需 $ 符号) - 引用变量:
echo $name - 命令替换:
date=$(date +"%Y-%m-%d")(将命令输出赋值给变量) - 脚本参数:
$0(脚本名)、$1(第一个参数)、$@(所有参数)
3. 条件判断
bash
条件命令1
条件2
命令2
命令3
file.txt
4. 循环
- for 循环:bash
/path/*
- while 循环:bash
i
5. 函数
bash
!"
greet
四、高级技巧与特性
- 管道(|)与重定向
- 管道:将前一个命令的输出作为后一个命令的输入,如
ls -l | grep ".txt"(筛选.txt 文件)。 - 重定向:
>覆盖写入文件,<从文件读取输入。>>追加写入文件,2>重定向错误输出(如command 2> error.log)。
- 管道:将前一个命令的输出作为后一个命令的输入,如
- 通配符
*匹配任意字符(如*.log),?匹配单个字符,[abc]匹配括号内任意字符。
- 环境变量
- 系统变量:
PATH(命令搜索路径)、HOME(家目录)等,通过echo $变量名查看。 - 自定义变量:
export MYVAR="value"(临时生效,重启后失效),永久生效需写入~/.bashrc或/etc/profile。
- 系统变量:
- 后台运行与任务管理
command &:后台运行命令。jobs:查看后台任务,fg %1:将任务 1 调至前台,kill %1:终止后台任务。
五、学习资源与实践建议
- 官方文档:
man 命令(如man ls查看帮助),--help参数(如ls --help)。 - 在线工具:Linux Shell Scripting Tutorial(入门指南),Shell Script Examples(实战案例)。
- 实践项目:
- 编写备份脚本:定时压缩目录并删除旧文件。
- 日志分析脚本:统计日志中错误次数并发送邮件通知。
- 使用
cron定时执行脚本(编辑crontab -e添加任务)。
通过掌握命令行与 Shell,你可以高效管理 Linux 系统、自动化重复任务,甚至开发复杂的运维工具。建议从基础命令开始,逐步实践脚本编写,遇到问题时善用 man 和搜索引擎(如 “Linux 如何... 命令”)。