理解 Shell 练习1练习2课堂笔记一、Shell 类型默认登录 shell 记录在 /etc/passwd 第 7 字段主流为 /bin/bash系统常见 shellbash、dash、csh、zsh切换 shell/bin/dash退出exit二、父 Shell 与子 Shell父 shell登录终端默认启动的交互 shell生成子 shell 方式直接执行bash多层嵌套ps --forest查看进程树括号(命令)包裹命令列表产生子 shell命令末尾加后台运行自动创建子 shell判断是否存在子 shellecho $BASH_SUBSHELL0 无≥1 存在子 shell退出子 shellexit三、子 shell 特殊用法1. 后台运行 sleep 60 后台挂起程序jobs 查看后台任务jobs -l 带 PID 查看2. 协程 coproc后台新建子 shell 执行命令自带通信通道基础coproc sleep 10自定义名称coproc My_Job { sleep 10; }注意大括号前后、分号后必须留空格四、内建命令 vs 外部命令1. 外部命令独立磁盘文件存于 /bin、/usr/bin执行会 fork 创建子进程速度慢查找命令which 命令、type -a 命令例ps、ls2. 内建命令集成在 shell 内部无需创建子进程执行更快查询type 命令输出shell builtin即为内建例cd、exit、history、alias特殊echo、pwd 同时存在内建 外部两种版本五、常用内建命令详解1. history 命令历史历史先存内存退出 shell 才写入家目录隐藏文件 .bash_history常用操作!! 执行上一条命令!数字 执行对应编号历史命令history -a 强制立刻把内存历史写入文件练习对比history与cat .bash_history执行history -a后再次对比2. alias 命令别名alias -p 查看系统预设别名ll、la、l 等自定义别名alias lils -li特性别名仅当前 shell 生效进入子 shell 后失效六、核心总结括号 ()、bash、 后台、coproc 都会创建子 shell外部命令产生子进程内建命令不产生效率更高$BASH_SUBSHELL 判断子 shell 层级history 管理命令记录alias 简化高频输入