8.7/8.8 shell变量
8.9 环境变量配置文件
8.10 shell特殊符号cut命令
8.11 sort_wc_uniq命令
8.12 tee_tr_split命令
8.13 shell特殊符号
一、shell变量
env命令,查看系统常用的环境变量
set命令,不仅可以查看系统内置的环境变量,还可以查看用户自定义的变量
自定义变量
变量名规则
变量名可以是字母,数字,和下划线,首位不能为数字
变量值有特殊符号时需要用单引号(脱义)括起来
表示式复杂的时候,用双引号引起来,变量的累加
获取变量的值并抽入到字符串中间
全局变量
当打开多个终端时,使用命令echo $SSH_TTY,可以查看当前所在终端
在终端1定义一个变量,在终端2中是查看不到的
bash是shell的一个子bash,可以通过pstree查看在哪,如果没有该命令,使用如下命令安装:
现在是在第二个bash下,第一个bash所设定的环境变量在第二个bash下不生效,如何让第一个bash的自定义环境变量在第二个bash下生效,利用全局变量:
取消变量
二、环境变量配置文件
环境变量配置文件可分为:系统层次配置文件和用户层次配置文件
系统层次配置文件(/etc下的文件):
/etc/profile用户环境变量,交互,登录才执行
/etc/bashrc用户不用登录,执行shell就生效
用户层次配置文件(用户家目录下的文件):
~/.bashrc
~/.bash_profile
一般我们不要编辑系统层次的配置文件,在有需要时,可以编辑用户层次的配置文件.bash_profile
source .bash_profile和…bash_profile作用一样,加载配置文件里的配置
~/.bash_history,用来记录命令历史
~/.bash_logout,用来定义用户退出的时候需要做的一些操作
ps1是在/etc/bashrc里面定义的,用于定义命令左边的字符串显示
修改W为w,发现变成绝对路径
修改方括号,这里的普通用户显示普通用户显示,root用户显示#
颜色显示
三、shell特殊符号cut命令
cut命令用法如下
四、sort_wc_uniq命令
sort排序、wc统计行数、uniq删除重复行
sort命令介绍
例1:如sort不加任何选项,它是默认升序输出,我们假设看passwd配置文件前五行有什么区别
例2:把passwd配置文件前10行写到3.txt,再加几个特殊符号数字进行排序
如图所示,我们用sort来进行排序,以数字排序 -n
-n表示正序,特殊符号及字母表示为0
如第一张图所示,我们-r给反向排序看看
sort -r 3.txt #-r表示反序
wc命令介绍,用于来统计
具体操作如下:
命令uniq删除重复的行
编写一个文件,如下:
使用uniq前,必须先给文件排序,否则不管用,示例如下:
五、tee_tr_split命令
命令tee,重定向并显示内容
具体操作如下:
命令tr,用于替换字符
假设把一个文件的小l,改成大L
命令split,切割文档
先搜索出来个内容,并且所有的内容cat出来,追加重定向到一个文件去
示例1:这个文件有212K,我们给他们切割指定大小为100K试试,示例如下:
#这里,-b指定带下100K,不加单位默认是以字节显示
示例2:指定目标文件名123开头的文件
#x开头的文件,是示例1的结果,不需要看它,看123开头的文件,形成一个对比
六、shell特殊符号
特殊符号$
符号$可以用作变量前面的标识符,还可以和!结合起来使用,示例如下:
特殊符号;
如果想在一行中运行两个或以上的命令,需要在命令之间加符号;示例如下:
特殊符号~
符号~表示用户的家目录,root用户的家目录是/root,普通用户是/home/username
特殊符号&
如果想把一条命令放到后台执行,则需要加上符号&,它通常用于命令运行时间较长的其情况,可以用在sleep(休眠),示例如下:
重定向符号>,>>,2>,2>>,&>de 的用法
中括号【】 中括号内为字符组成,代表字符组成中的任意一个,指定一个范围
特殊符号&&和ll
使用ll时,表示或者,意思是说如果两条命令用ll分割的话,第一条执行成功后,第二条就不会执行,假若第一条命令是错误的话,执行失败会执行第二条
使用&&表示前面的命令执行成功以后,才会执行后面的命令,如果前面命令执行不成功,后面的命令就不会执行,用&&分割,用来判断的
普通特殊符号介绍
* 任意个任意字符? 任意一个字符# 注释字符\ 脱义字符| 管道符