一、硬件、内核与shell
(1)什么是shell:通过shell(就是命令行模式)来操作应用程序,让这些应用程序调用内核来运行所需要的工作——只要能操作应用程序的接口都能成为shell
(2)什么叫bash:Linux使用的shell版本成为”Bourne Again SHell”简称bash,是基于GNU架构发展出来的
(3)bash的好处:
1.命令记忆功能(history):能够记忆使用过的命令,被记录的命令存放在.bash_history中
2.命令与文件补全功能(通过Tab键)
3.命令的别名设置(alias):如alias lm=”ls -al”使用lm即可查看所有包括隐藏文件
4.作业控制、前台、后台控制
5.程序脚本
6.通配符:bash支持通配符来帮助用户查询与命令执行
二、bash shell的内置命令:type
type命令用于查询某个命令是外部命令还是内置在bash中
type [-tpa] name
三、shell的变量功能
(1)什么是变量:让某一个特定字符串代表不固定的内容
(2)变量的使用
1.变量的显示与设置
//变量的显示
echo $变量名
echo ¥{变量名}
没有给变量赋值时,执行echo $变量名会没有输出,为变量赋值后,会输出相应变量值
设置规则
1)变量与变量内容用=链接,等号两边不能直接接空格符
2)变量名只能用英文或数字,且开头字符不能是数字
3)变量的内容若有空格符可用”“或”将变量的内容结合起来
注意:双引号内的特殊字符如$等,可保持原本的特性,单引号内的特殊字符则仅表示一般文本(纯文本)
5)可用转义字符\将特殊字符(如Enter、
、\、空格符、!等)变成一般字符6)在命令中,若需要通过其他命令提供的信息,可以使用⋅⋅(反单引号)或
(命令)
7)若该变量为了增加变量的内容时,则可用“
变量名称”或
{变量}来家内容
8)如果该变量需要在其他子进程中进行,则需要export来时变量变成环境变量
9)取消变量:unset 变量名
注意:单引号和双引号的区别,转义字符的使用,变量内容的追加等等。
将变量用于其他子进程中,使用export命令
注意反单引号的使用,很重要!在反单引号中的命令会先被执行,而其执行出来的结果作为外部的输入信息
通过设置变量,可以减轻工作和出错的可能性,比如,要经常访问某一个较长的目录,即可使用变量设置。
四、环境变量的功能
1.使用env查看环境变量
2.使用set查看全部变量(包括环境变量与自定义变量)
3.可以使用PS1设置提示符
4.通过echo $$ 得到本shell的PID
5.echo $?得到的是上一个执行的命令的传回值
6.用export将自定义变量转成环境变量:
作用:子进程只会继承父进程的环境变量
7.locale命令可以检查结果的语系
五、变量的键盘读取、数组和声明
1.变量的键盘读取:
read [-pt] 变量
-p后面可接提示字符
-t后面可接等待秒数
2.declare/typeset声明变量的类型
declare [-aixr] 变量
//-a:后面的变量定义为数组类型(array)
//-i:后面的变量定义为整数类型(integer)
//-x:用法与export一样,将变量声明为环境变量
//-r:声明变量为只读类型
让非环境变量变成自定义变量
declare +x 变量<==将-变为+可以进行取消操作
declare -p 变量<==-p可以单独列出变量类型
3.数组类型
六、与文件系统及程序的限制关系:ulimit
七、变量内容的删除、替代、替换
- $ { 变量 # 关键字 }:若变量内容从头开始的数据符合“关键字”。则将符合的最短数据删除
- $ { 变量 ## 关键字}:若变量内容从头开始的数据符合“关键字”。则将符合的最长数据删除
- $ {变量%关键字}:若变量内容从尾开始的数据符合“关键字”。则将符合的最短数据删除
- $ {变量%%关键字}:若变量内容从尾开始的数据符合“关键字”。则将符合的最长数据删除
- $ {变量/旧字符串/新字符串}:若变量内容符合“旧字符串”,则第一个旧字符串会被新字符串替换
- $ { 变量 // 旧字符串 / 新字符串}:若变量内容符合“旧字符串”,则全部旧字符串会被新字符串替换
替换时变量的设置方式较多,要深刻理解
八、命令别名的设置
alias lm='ls -l | more'
alias
unalias lm