Linux学习第10章 BASH
首先Bash是一种Shell。
通过Shell将我们输入的命令与内核沟通,或者说我们通过在shell中使用命令来控制内核,内讧控制硬件。
系统合法的shell都记录在/etc/shells中。一般我们使用的是BASH。
功能:历史命令(history)、命令与文件补全功能(【Tab】)、命令别名设置功能(alas)、任务管理、前台后台控制、程序化脚本、通配符。
type可以查看命令是否是内置命令。
可以转义Enter接着下一行再输入。
shell可以定义变量,自己定义的变量起初是自定义变量(局部变量)。export以后可以成为环境变量(全局变量)。
变量的设置不细说了,p318-p321。
echo 可以输出变量。 环境变量的功能 p322-p325。PS1不是环境变量,但是影响BASH界面。
read:读取变量。
declare 和tpyeset声明变量类型。 -a 数组 -i 整数 -x 环境变量 -r readonly,不可更改(注销再登陆)。
ulimit 限制用户的某些系统资源,可以开启的文件数量,可以使用的CPU时间、可以使用的内存总量。
变量的删除、取代、替换:#代表由前面开始删除删掉最短的,*通配符代表任意多个字符。
##代表删掉最长的哪个数据由前面开始删除(%正好相反)详见p332表格。
取代、替换: 后加-名字,表示默认值,若再次赋值,则改变。详见p333表格。
bash的登陆与欢迎信息: /etc/issue 、/etc/motd 。
bash环境配置 :p338-342。配置文件:login shell non-login shell login shell主要读取/etc/profile和~/.bash_profile 、non-login shell 仅读取~/.bashrc。
终端tty1-tty6的设置p342-p344。
Ctrl+S锁屏,Ctrl+Q恢复(解锁)。
通配符 *、?【一定有一个字符】、【abcd】任意一个 【a-z】代表a-z所有字符 【^a-z】代表除了a-z。p344
数据流重定向: < 、<<、 >、 >>。文件的输入输出。2> 、2<(错误信息输入输出)。
2>&1不太理解。
; 、&&、||三种命令执行判断。p348-350。
命令管道:是让第一个命令的输出作为后来命令的输入或者操作对象(处理标准输出)。 a|b。只限正确信息。
选取命令: cut grep 可以从第一个命令的结果中抽取需要的东西。
排序命令:sort、wc(返回行列信息)、uniq(单一的、不重复)。
双向重定向:tee。既在屏幕输出(标准输出)又在文件输出。
字符准换命令:tr删除、
col tab换空格
join 合并连接,不同文件相同行连接。
paste 将两个文件的两行贴在一起。
expend tab转空格。
split 划分,文件划分。
xargs 管道输出的作参数,有多少此输出多少次结果。
-的意思表示stdin或stdout。标准输入输出。
set可以观察全部变量,env和export可以观察环境变量。
$?是前一个命令执行完毕后的返回值。返回0成功。
locale 观察语系数据。(中文等)
第10章bash可以说是很精髓的一章,东西很多,我都没有整理,课后题还没做。说实话,现在学linux学了10章了,接近一半了,理解了很多东西,我想我的操作能力肯定还很弱,还是先看完书吧,看的也有点进入一个困难的境地,搞下第12章bash脚本,再看看是回头好好看看,还是接的往下看,基本上是第一次打算啃完一本大部头的书,总有点狗熊掰棒子的意思,希望暑假结束,这个暑假不是白费了就行。另一本书没怎么动。