shell学习总结
一.什么是shell
a) 只要能够操作应用程序的接口
二.为什么要学些shell
a) 命令行的shell:大家都是一样的 (一法通,则万法通)
b) 命令行的速度比较快
c) Linux的任督二脉,是学习linux的基础
三.为什么我们系统合法的shell要写入etc/shells这个文件
a) 这是因为系统某些服务在运行过程中,会去检查用户能够使用的shells,而这些shell的查询就是借助/etc/shell这个文件
四.为什么使用bash这个shell呢?
a) 命令记忆功能 记录的地方位于 ~/.bash_history
b) 命令补全功能 按tab 键(万能键)
c) 命令别名设置功能 可以减少输入
d) 作业控制,前后台控制
e) 程序脚本
f) 支持通配符
五.Bash命令的种类
a) 内置命令
b) 外部命令
c) 别名
如何查看一个命令是不是内置命令呢,可以用type命令查看
六.Shell变量的功能
a) 变量的显示和设置
i. 变量的显示 :echo
ii. 变量设置的规则
1. 等号两边都不能有空格
2. 变量只能是字母和数字,但是开头字符不能是数字
3. 变量中如果有空格可以使用“”或‘’包含
a) 单引号里面的特殊字符仅为一般字符
b) 双引号中的特殊字符保持原有的属性
4. 可以使用\将特殊字符变为一般字符
5. 一串命中中``中命令将先被执行
b) 取消变量的方法 :unset
c) 常用的环境变量
i. HOEME:代表用户的主文件夹
ii. SHELL: 目前环境使用了shell哪个程序
Iii. HISTORY 历史命令
Iv PATH 执行文件查找的路径
V LANG 语系数据
Vi PS1 提示符的设置
1.\u 目前用户的帐号
2.\t 显示时间
3.\# 显示第几条命令
4.\$ 提示符
5.\w 完整工作名
Vii $ 表示当前shell的线程号
Vii ? 上条命令执行完后的回传值
d) 变量键盘读取:read
七.变量内容的删除,替代和替换
a) 删除
b) 替换
c) 替代
八.命令的别名和历史命令
a) 别名:alias unalias
b) 历史命令 history
i. 命令记录的文件位于 ~./bash_history
九.Bash shell的操作环境
a) 命令执行的顺序
i. 以相对路径或绝对路劲执行
ii. 有alias 找到命令执行
iii. 有bash内置的命令执行
iv. 通过查找$PATH这个变量的顺序找到的第一个命令来执行
b) Bash的登录与欢迎信息
i. 登录信息 /etc/issue
ii. 欢迎信息 /etc/motd
c) Bash的环境的配置
i. Login
1. 整体配置 /etc/profile
a) 会调用的文件:/etc/inputrc /etc/profild.d/ /etc/sysconfig/i18n
2. 个人配置 ~./bash_profile
ii. Non-login
1. 只会读取./bashrc 中的内容
d) 其他的配置文件
i. /etc/man.config 规定了使用man的时候 man page的路径到哪里寻找
ii. ~./.bash_logout 当注销bash后系统在帮我做完什么操作后才离开
十.管道命令
a) 管道命令的特点:
i. 只会处理标准输出,不理会标注错误输出
ii. 能够接受前一个命令的数据成为standard input 继续处理才行
b) 常用的管道命令
十一.问题集锦
a) command>filename 2>&1的含义:将STDERR输出到STDOUT中,再将STDOUT输出到指定文件中。其实就是:stderr->stdout->filename.可以测试下:LS >err 2>&1这里就不会生成1这个文件,打开err2可以看到bash:LS:command not found