10.1 硬件、内核、shell关系
1.用户通过shell将命令传递给内核,让内核可以控制硬件来准确无误的工作。
2.应用程序是用户和内核的接口,又称为shell程序
3.shells一般存储文件路径/etc/shells
10.2BASH shell 的优点
1.历史命令记录 :保存的路径/home/.bash_history,系统注销之前才会保存到这个文件中,系统运行时保存在内存中
2.命令和文件补全功能【tab】键
3.命名别名设置功能(alias):如:用lm代替ls -al指令就执行,alias lm='ls -al'
4.任务管理、前台、后台控制:16章
5.程序化脚本(shell scripts):
6.通配符:
10.3判断命令是否为bash shell的内置命令操作:type 【-tpa】 name
1.若命令过长可以使用 \ 链接两行命令
10.4 shell的变量功能
1.变量的可变性和方便性:类似于C语言的宏定义,变量一般都以大写字符来表示
2.可用于脚本程序的设计中的变量(shell script)
10.5 变量的使用和设置:echo、变量设置规则、unset P318页
1.使用变量:echo $变量名或echo ${变量名} $符号前面不可以有其他字符 如:echo $HOME 读取HOME代表的内容
2.设置变量:变量名=需要代替的东西
1)未设置的变量Bash默认为空,等号两端不能有空格
2)变量名字只能由数字和字母构成,但是第一个字符不可以是数字
3)若需要设置的变量内容需要包括空格则可以用单引号或双引号包起来
shuai=/home
myname1=“i am handsome $shuai” myname2=“i am handsome $shuai”
单引号括起来之后内部字符都为普通字符,双引号中的字符保持原来的作用,
若echo $myname1输出i am handsome $shuai
若echo $myname2输出i am handsome /home
4)可用转义符【\】将特殊符号编程一般字符,输入在需要的特殊符号前面
5)在一串命令的执行中还需要其他命令时可以使用反单引号`(波浪线esc下面的按键)或者$(命令)
比如version=$(uname -r) 在echo $version
6)若该变量为扩增变量内容时,则可以使用“$变量名称”或${变量}累加内容 注意:小括号为内为命令,大括号内为变量名累加
7)若该变量需要其他子程序执行,则需要以export来使变量变为环境变量,子进程就 是在当前的shell再启动一个shell,变量为环境变量才能在不同的子进程中使用已经定义的变量,否则其他线程会为空变量
export PATH
8)取消变量名称的方法使用unset 变量名称
10.6查看shell自带的环境变量 env、export
1.env:查询全部环境变量
2.set:观察全部变量(环境变量和自定义变量)
3.系统内部自带的重要变量
1)PS1变量是设置提示命令行输入的提示符以什么格式显示 P323页
2)查询shell的PID echo $$
3)上一次执行的命令的返回值 echo $? 返回0代表正常,返回其他值代表不同的异常
4.变量键盘的读取、数组与声明:read、array、declare
1)read 【-p(提示信息)t(等待输入时间)】变量名
2)declare和typeset 声明变量类型,默认类型为字符串类型
declare 【-a(数组类型)i(整数类型)x(声明为环境变量)r(设置为只读)】 变量名
3)变量名【数量】=字符数据
5.设置文件系统使用大小ulimit 【-SHacdfltu】 【配额】
6.变量内容的删除、修改、替换 修改后的变量不会保存回原始变量中
1)删除 可以用*代表长度很长的数据
echo ${变量名#删除数据} 从前向后删除最短满足删除数据
echo ${变量名##删除数据} 从前向后删除最长满足删除数据
echo ${变量名%删除数据} 从后向前删除最短满足删除数据
echo ${变量名%%删除数据} 从后向前删除最长满足删除数据
2)替换
echo ${变量名/旧字符/新字符} 从变量中替换第一个旧字符串
echo ${变量名//旧字符/新字符} 从变量中替换全部旧字符串
7.命令的别名设置
1)alias 别名=‘命令’ 单引号
2)alias 查询已经设置的别名
3)unalias 别名 删除已经设置的别名
8.历史命令 history【n(查询最近n条命令历史)-c(清除历史)r(读取历史)a(新增的历史写入histfiles中)w(当前的历史写入histfiles中)】
1)!number 执行第几条历史记录
2)!command 执行最近的command 开头的命令
3)!! 执行上一条历史记录
10.7bash shell的操作环境
1.命令路径的执行顺序(命令以文件的形式保存在LINUX中,执行不同的命令调用不同的文件,所以就会有不同的路径)
1)以相对路径或绝对路径执行命令
2)由alias找到该命令来执行
3)由bash内置的(builtin)命令来执行
4)通过$PATH这个变量的吮吸查找到第一个命令执行
5)了解某个命令是以什么顺序执行的可以使用 type -a 命令名
2.bash的登录和欢迎信息的修改
1)tty1-tty6 登录提示画面在 /etc/issue 里面 vim /etc/issue
\d 本地日期
\l (小写字母L)显示第几个终端界面
\m 显示主机的硬件等级
\n 显示主机的网络名称
\O(大写字母) 显示domain name
\r 操作系统版本(uname -r)
\t 显示本地时间
\S 操作系统名称
\v 操作系统的版本
2)用户登录后获取到某些信息可以修改/etc/motd这个文件,文件中直接输入相关提示的消息
3.bash的环境配置文件
4.终端环境设置:stty、set
1)终端全部设置查询 stty -a
5.数据流重定向和双向重定向tee
1> 已覆盖的方式将正确的数据输出到某个文件或者设备上
1>>以累加的方式将正确的数据输出到某个文件或者设备上
2>已覆盖的方式将错误的数据输出到某个文件或者设备上(2>/dev/null将没用的数据丢掉)
2>>已累加的方式将错误的数据输出到某个文件或者设备上
当输出的数据输出到同一个文件中时使用 1>&2或1&>2
< 将某个文件的内容输入到某个文件或者设备上
<< 结束输入字符
6.排序命令 sort、wc、uniq
7.字符转换命令 tr(删除和替换)、col(将tab转换为空格)、join()、paste、expand
8.划分命令 split【-bl】 file xxx文件前缀(将大文件划分成多个小文件)可以按照行数或者大小划分
合并则使用重定向功能合并
9.参数代换 xargs