JavaShuo
栏目
标签
shell变量,环境变量配置文件,shell特殊符号cut命令,sort_wc_uniq命令,tee_tr_split命令,shell特殊符号
时间 2019-12-17
标签
shell
变量
环境
配置文件
特殊符号
cut
命令
sort
uniq
tee
split
栏目
Unix
繁體版
原文
原文链接
shell变量
使用 env 命令能够查看系统变量的信息
下面大写字母的变量名称就是系统的变量
变量的值多是 数字 也多是 字符串
env 能够查看系统经常使用的环境变量
除了系统的环境变量外,用户还能够自定义一些变量
a = 111 表示为变量a赋值111,这样就自定义了一个变量 a
echo $a 能够把 a 的值显示出来
set 命令能够查看系统内全部的变量,env只能查看系统内置的变量
set |grep 111 就能够在系统全部变量里面筛选出跟111有关的信息
能够看到,a=111 的信息被查出来了
也可使用 set |less ,也就是用less来查看set出来的变量信息
自定义变量只有set才能看到
自定义变量规则,变量名称可使用 字母,数字,下划线,首字符不能是数字
变量的值若是含有特殊符号,须要用单引号括起来
如图,给变量 a 赋值 as$g ,这个值里面含有 $ 符号,这就是特殊符号
若是不用单引号括起来,会不生效
若是变量值含有特殊符号如 $ ,空格 之类的就须要单引号括起来
上图,定义了变量 a=1 b=2
echo $a$b 就是按照命令顺序同时显示a与b的值
结果就是 12
上图定义了变量 c ,值为 "a$bc"
这里由于值里面有特殊符号 $ ,因此想生效要用单引号括起来
可是这里使用了双引号,因此 $ 和 $后面的 bc 是不生效的
因此实际赋予 c 的值只有 a
如图,对 c 从新赋值 "a$b"c
这里仍是使用了双引号,$b 会被当作命令来处理
$b 就是 b 的值的意思
这里首先 a会赋值给c,而后$b也就是b的值为2也会赋值给c
最后是 c 会赋值给 c
因此 c 的值就是 a2c
因此若是想要多个变量一块儿赋值的话能够这样写
c="$a""$b" ,就是使用双引号单独把变量括起来
若是使用单引号 '$a' ,那么就会被识别为字符串而不是命令
用双引号的话就能够被识别为命令
因此想使用变量的话,能够单独用双引号把变量括起来
使用 w 查看用户信息
看到有3个用户链接
使用 echo $SSH_TTY 能够知道当前用户是哪个
下面的值是 /dev/pts/1 也就是 pts/1 就是当前用户
使用命令 yum install -y psmisc 安装 psmisc 包
安装完成后,就可使用 pstree 命令
如图,能够查看当前所在的 bash
由于使用了两个虚拟终端进行链接,能够看到有两条bash
使用 bash 命令能够在当前shell下面再生成一个shell
如图,能够看到,在第一个bash后面又多了一层bash,这就是新生成的
使用 pstree 命令就能够看到本身在哪一层 bash 下面
局部变量只能在当前的 bash 下面使用
若是像上面同样,生成多层的 bash
其它层的 bash 是没法使用当前bash定义的局部变量的
若是但愿全部层均可以使用一个变量
就须要把这个变量定义为 全局变量
如图,使用 export 就能够把 b 定义为全局变量
可是全局变量只对 子bash 有效,也就是向下有效
在一个 bash 里面定义一个全局变量,这个bash下面不管多少层bash,都是有效的
可是若是这个bash上面还有bash,也就是 父bash,是无效的
全局变量对上层是无效的,只对下层有效
如图,这里是两条并列的sshd
若是在第一个sshd后面的bash里面定义一个全局变量
对第二个sshd里面的bash是无效的
两个 sshd 之间是不交互的
全局变量只在同一条sshd里面是有效的
若是要退出一层bash,可使用命令 exit
这样就能够退到上一层的bash里面
若是已是最后一层,那么就会之间退出登陆状态
设置了一个变量,若是不想要了,想取消掉
可使用 unset + 变量名 就能够把变量取消掉
unset aming 就把变量 aming 取消掉了
环境变量配置文件
能够分两个层次看以上文件,etc下面的是系统层次文件
~/ 下面的是用户层次的文件
通常不修改etc下面这两个配置文件
若是有须要修改配置文件,能够编辑用户家目录下面的配置文件,也就是~/下面的
如 .bash_profile
修改完配置文件后须要从新加载才会生效,可使用 source + 配置文件名称 从新加载
也可使用 . 代替 source
如图, . .bash_profile == source .bash_profile
bashrc 几乎全部配置文件都会调用这个配置文件
无论登不登陆,bashrc 都会被调用
用户登陆时虽然调用profile,但实际上profile里面仍是会调用bashrc
家目录下的配置文件调用的时候也会调用bashrc
.bash_logout 配置文件能够配置退出登陆的时候执行的命令
有一个系统变量叫作 PS1
这个变量存在于 /etc/bashrc 文件里面,能够用vim打开使用搜索 /PS1 找到
也可使用 echo $PS1 显示出这个变量的值
如图,变量值是 [\u@\h \w]$
其中, \u 是当前用户名 , \h 是hostname
\W 是当前目录名称,$ 就是#的位置
PS1的值是能够修改的
如图,PS1的值修改成 '<\u@\h \w> $'
小写 w 会显示绝对路径
赋值的时候,由于含有特殊符号 @,$等,因此要用单引号括起来
符号 $ 在root用户会显示为#号,普通用户就显示为$号
如图,PS1还能够设置颜色
执行shell脚本会使用 PS2 来显示
shell特殊符_cut命令
星号 * 能够表示 任意个任意字符
问号 ? 只表示一个字符,能够是任意字符,*是多个
井号 # 表明注释,一行前面写#,这一行就会被系统忽略掉,不会执行
脱义字符能够把系统里面的特殊符号显示为字符串
例子,a=1, b=$a 这就把 a 的值赋给了 b
若是使用脱义符, b=$a ,那么 b 的值就变成了 $a
也就是说把原本不能识别为字符的 $ 变成了字符
管道符 | 配合 cut 命令使用,cut能够截取字符串
第一段是显示 passwd 的头两行
cat /etc/passwd |head -2 |cut -d ":" -f 1
首先cat命令的结果传给了head命令
head命令的结果又传给cut命令
cut 命令里面,-d参数表明分隔符,这里设置为 ":"
表明使用 : 对head命令的结果进行分隔
参数 -f 表明段号,1就是取第一段数据
1,2 表明第一第二段数据
1-3 表明1到3段数据
还有一个参数 -c 能够直接指定截取某个位置的字符
例如 cut -c 4 就表示截取第4个字符
sort_wc_uniq命令
sort 命令能够对数据进行排序
排序顺序是按照字符编码里面的id大小来排序的
如图,passwd 里面的数据按照 a-z 的顺序进行了排序显示
sort -n ,参数 -n 可使内容按照数字来排序
字母跟特殊字符所有算做 0 ,
因此首字符不是数字的数据行会出如今最前面
其它的数据按照数字大小来排序
sort -nr 参数 -r 能够倒序排序
wc -l 能够统计文件数据的行数
wc -m 能够统计文件的字符数
参数 -m 会把换行符,空格等特殊字符的数量也统计在内
wc -w 能够统计文件的词数
词数是按照空白字符来分隔的,好比换行符,空格之类的
uniq 命令能够把数据内重复的数据去掉
好比1.txt里面有数据 1 ,1 ,2 ,3
使用 uniq 1.txt 就能够把重复的1去掉,只留下一个1
可是uniq有一个问题,就是只能去除连续的重复数据
好比数据有 1,2,1,3 ,这里uniq就不能把1去掉
由于这两个1不是连续的,中间有2隔着,这样uniq就没法去重
因此通常使用uniq都须要先sort排序一下
这样就可使重复的数据连续的排列,这样uniq就能够生效了
如图,先sort而后经过管道符|传给uniq命令
参数 -c 能够统计重复的个数
图中,1 的左边是 2 ,表示1这个数据总共存在两个相同的数据
左边是1的数据,表示这个数据只有一个,没有重复的
tee_tr_split命令
第一行 >a.txt 就能够把空字符重定向到a.txt里面,这样就清空了a.txt
cat a.txt 什么都没显示
第三行,sort 而后 uniq ,而后 tee a.txt
意思是把前面的结果重定向到 a.txt 并把重定向的内容显示在下面
tee 命令就是能够在重定向的同时,把内容显示在下面
tee 命令还有一个参数 -a
sort2.txt |uniq -c |tee -a a.txt
能够把前面的结果追加到 a.txt 里面
tee命令原本是重定向并显示结果,a参数能够把重定向变为追加
而后把追加的内容显示在下面
tr 命令能够替换字符
如图,echo "aminglinux" |tr '[al]' '[AL]'
这样就能够把a与l变成大写
第二行就是单个字符替换
第三行能够把全部字母换成大写
最后一行把全部字母替换成 1
spilt是用来切割文件的,把大文件切割成小文件
有两种用法,一种是按大小切割,一种是按数据的行数切割
如图 split -b 100M bigfile 就是按大小切割
按照每一份 100MB 的大小来切割文件
参数 -b 就是指定按大小切割的选项
100M 也能够不写单位,不过这样的话,默认单位就是比特
不写单位会按照默认单位比特来切割
参数 -l 就是指定切割方式按行来切割
1000 就表示每1000行数据切割成一份
默认的切割后的文件名都以 x 开头
命令还能够设置自定义文件名前缀
如图,后面加上 abc
下面查看切割后的文件,能够看到
下面3个文件都是以abc开头
shell特殊符号下
如上图,同一行写多条命令的时候,使用分号 ; 来分隔
分号分隔以后,系统就能够识别这是两条命令
若是不分隔系统会觉得是一条命令
||表明或者,&&表明与
使用 || 的时候,若是前面执行结果为true,后面就不执行了
若是前面为 false 后面会继续执行
使用 && 的时候,若是前面执行结果为false,后面就不执行了
若是前面为 true 后面才会继续执行
符号 || 和 && 是在命令之间使用的
相关文章
1.
shell特殊符号cut命令、sort_wc_uniq命令、tee_tr_split命令和shell特殊符号
2.
shell特殊符号cut命令、sort_wc_uniq命令、tee_tr_split命令、shell特殊符号下
3.
shell特殊符号cut命令、 sort_wc_uniq命令、 tee_tr_split命令 、shell特殊符号
4.
shell特殊符号cut命令、sort_wc_uniq命令、tee_tr_split命令、shell特殊符号
5.
shell特殊符号、cut命令、sort_wc_uniq命令、tee_tr_split命令、shell特殊符号下
6.
shell特殊符号cut命令sort_wc_uniq命令 tee_tr_split命令 shell特殊符号下
7.
shell特殊符号cut、sort_wc_uniq、tee_tr_split命令
8.
shell特殊符号cut命令,sort_wc_uniq命令,tee_tr_split命令
9.
8.10 shell特殊符号cut命令 8.11 sort_wc_uniq命令 8.12 tee_tr_split命令 8.13 shell特殊符号下
10.
shell特殊符号cut命令 sort_wc_uniq命令 tree_tr_split命令
更多相关文章...
•
Docker info 命令
-
Docker命令大全
•
Docker version 命令
-
Docker命令大全
•
Docker 清理命令
•
IDEA下SpringBoot工程配置文件没有提示
相关标签/搜索
特殊符号
命令
号令
一天一个shell命令
命令模式
下命令
命令行CMD
ANSYS命令流
zip命令
命令式
Unix
Docker命令大全
PHP 7 新特性
SQLite教程
命令
文件系统
插件
0
分享到微博
分享到微信
分享到QQ
每日一句
每一个你不满意的现在,都有一个你没有努力的曾经。
最新文章
1.
【Java8新特性_尚硅谷】P1_P5
2.
SpringSecurity 基础应用
3.
SlowFast Networks for Video Recognition
4.
074-enable-right-click
5.
WindowFocusListener窗体焦点监听器
6.
DNS部署(二)DNS的解析(正向、反向、双向、邮件解析及域名转换)
7.
Java基础(十九)集合(1)集合中主要接口和实现类
8.
浏览器工作原理学习笔记
9.
chrome浏览器构架学习笔记
10.
eclipse引用sun.misc开头的类
本站公众号
欢迎关注本站公众号,获取更多信息
相关文章
1.
shell特殊符号cut命令、sort_wc_uniq命令、tee_tr_split命令和shell特殊符号
2.
shell特殊符号cut命令、sort_wc_uniq命令、tee_tr_split命令、shell特殊符号下
3.
shell特殊符号cut命令、 sort_wc_uniq命令、 tee_tr_split命令 、shell特殊符号
4.
shell特殊符号cut命令、sort_wc_uniq命令、tee_tr_split命令、shell特殊符号
5.
shell特殊符号、cut命令、sort_wc_uniq命令、tee_tr_split命令、shell特殊符号下
6.
shell特殊符号cut命令sort_wc_uniq命令 tee_tr_split命令 shell特殊符号下
7.
shell特殊符号cut、sort_wc_uniq、tee_tr_split命令
8.
shell特殊符号cut命令,sort_wc_uniq命令,tee_tr_split命令
9.
8.10 shell特殊符号cut命令 8.11 sort_wc_uniq命令 8.12 tee_tr_split命令 8.13 shell特殊符号下
10.
shell特殊符号cut命令 sort_wc_uniq命令 tree_tr_split命令
>>更多相关文章<<