程序和进程的概念
程序只可能有一个,但是进程可以有多个 ,相当于进程就是程序的副本
for:root 和user 两个用户都登陆进了系统 这两个用户都具有bash 进程,但是他们共用一个bash程序 ,进程相当于程序的副本,
2.1 允许一个账号 多次登陆系统 每个登陆的系统的都是一个单独的进程 而且彼此相互无关联,进程是程序执行的实例,因此每个进程都是有生命周期的
2.2 bash的特点
1 命令历史 命令补全
2命令行编辑
3管道 重定向
4命令行展开
5变量
6文件名通配
7编程
8别名
2.3 命令行编辑 ctrl +a 直接跳转到命令行行首
ctrl+e 跳转到命令行行尾
ctrl +u删除光标至行首的问题
ctrl+k 删除光标至行尾
ctrl +l 清屏
2.4 命令历史 history
history -c 清空所有命令历史
history -d 删除指定的行
history -d 10 10 表示删除10行后面的10个命令历史
history -d 10 删除第10行的命令
history 在用户输入命令的同时将命令保存在内存的缓存区里面,一旦用户退出就会将历史命令保存在用户的家里目录下的./.bash_history 文件中。这种是自动保存的还可以使用
history -w 手动保存命令历史
2.5环境变量
通过命令 printenv 命令可以查看当前所有的环境变量
1 HISTSIZE
2PATH
命令使用技巧
!n 执行命令历史中第n条命令
!-n 倒数第N条命令
!!执行上一条命令
!$引用上一个命令的最后一个参数
2.6 alias
alias a=’ls -l ’ 此处的单引号 或者双引号都可以使用 只是使用的范围不同
alias 显示当前定义的所有别名
alias 定义后仅仅针对当前的shell进程有效,如果要全局都有效需要配置bash程序,因为alias 为系统内建命令是bash程序自有的,
取消别名 unalias
unalias a
2.7 命令替换
所谓命令替换就是讲一个命令执行的结果作为另外一个命令的参数进行显示的过程
通用格式$()或者是反引号``(~下面的那个引号)*注意用了反引号就
例如在 /tmp/目录下创建一个以当前时间为文件名的文件
touch /tmp/$(date +%Y-%m-%d-%H-%M-%S)
bash支持的引号
1 `` 反引号 作用命令替换
2’’ 单引号 强引用 但是变量不替换
3’”” 双引用 变量替换
2.8 文件名通配(globbing)
1 *匹配任意字符
2 ?匹配任意当个字符
3[] 匹配指定范围内的任意单个字符
[a-z] , [A-Z] , [0-9] , [a-zA-Z] , [a-zA-Z0-9]
[^]匹配指定范围外的任何单个字符
特殊用法
[::]字符集合 ; [[::]]字符集合中的单个字符
[:space:] 空白字符集 除空白字符以外的字符集 ^[:space:]
[:punct:]标点符号集 除了标点以外的其他任意字符 [^[:punct:]]
[:alpha:] 字母表 (大小写字母集合)
[:lower:] 小写字母集
[:upper:]大写字母集
[:digit:]数字集合
[:alnum:] 数字和大小写字母
这种通配符的表现形式也支持^ (取反)