linux命令16

特殊shell变量

1、环境变量:

环境变量是指系统本身运行需要由liunx系统提前创建好的一类变量。

主要用于用户的工作环境,包括(用户的宿主目录,命令的查找路径,用户的当前目录,登陆的终端等)环境变量的值由操作系统本身自己维护,随着用户的状态改变而改变。

env调取当前环境变量

[root@xlous ~]# env
XDG_SESSION_ID=2
HOSTNAME=xlous.com
SELINUX_ROLE_REQUESTED=
TERM=linux
SHELL=/bin/bash
HISTSIZE=1000
SSH_CLIENT=192.168.1.116 51516 22
SELINUX_USE_CURRENT_RANGE=
SSH_TTY=/dev/pts/1
USER=root
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.axa=01;36:*.oga=01;36:*.spx=01;36:*.xspf=01;36:
MAIL=/var/spool/mail/root
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
PWD=/root
LANG=zh_CN.UTF-8
SELINUX_LEVEL_REQUESTED=
HISTCONTROL=ignoredups
SHLVL=1
HOME=/root
LOGNAME=root
SSH_CONNECTION=192.168.1.116 51516 192.168.1.175 22
LESSOPEN=||/usr/bin/lesspipe.sh %s
XDG_RUNTIME_DIR=/run/user/0
DISPLAY=localhost:10.0
_=/usr/bin/env

pwd命令就是调用了这个变量才能进行输出

$PWD

root@xlous etc]# echo $PWD
/etc
[root@xlous etc]# cd
[root@xlous ~]# pwd
/root

$PATH     定义命令的默认搜索路径

[root@xlous ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

注:只有自己执行的命令在PATH变量包括的目录下,才可以直接使用并使用tab补齐。如果不在PATH所包括的路径下,只能通过绝对路径或相对路径使用。

[root@xlous ~]# echo $USER
root
[root@xlous ~]# echo $SHELL
/bin/bash
[root@xlous ~]# echo $HOME
/root

[root@xlous ~]# echo $LANG
zh_CN.UTF-8

 [root@xlous ~]#PATH =“$PATH:/root ”

例:将我们所写的脚本放到$PATH的默认搜索路径中去

1、将/root目录写入到PATH的环境变量中,但是还没有永久生效

 [root@xlous ~]# echo $PATH 

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

2、永久生效:

vim /etc/profile

PATH =“$PATH:/root ”

只root用户生效:

vim /root/.bash_profile  #在最后追加

PATH =“$PATH:/root ”

#需要重启系统,

#立即生效:

[root@xlous ~]# source /etc/profile

3、预定义变量

$#:命令行中位置变量的个数(程序执行了几个位置参数)

$*:所有位置变量的内容(具体的内容  比如/boot  就是一个具体的内容)

$?:上一条命令执行后返回的状态,当返回状态值为0时表示执行正常,非0值表示执行异常或出错

判断是否出现错误正常为0异常错误为非0取值在1-127之间

$0:当前执行的进程/程序名(就是当前执行的命令或程序的名字)

!$:表示上一个命令的最后一个参数

 

sed和awk

sed

strem editor流编辑器

sed 编辑器是一行一行的处理文件内容的。正在处理的内容存放在模式空间(缓冲区)内,处理完成后按照选项的

规定进行输出或文件的修改。

sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;  非交互式编译文件

 

语法:

sed  [options]  [command]  [filename]

options:

-n  抑制自动(默认的)输出  读取下一个输入行,-n 要读取的行号

-e  执行多个sed指令

-f  运行脚本

-i  编辑文件内容

-i.bak  编辑的同时创造.bak的备份

-r  使用扩展的正则表达式

command:

a  在匹配后追加

i  在匹配后插入

p  打印

d  删除

r/R  读取文件/一行

w  另存

s  查找

c  替换

y  替换

h/H  复制拷贝/追加模式空间(缓冲区)到存放空间

g/G  粘贴  从存放空间取回/追加到模式空间

x  两个空间内容的交换

n/N  拷贝/追加下一行内容到当前

D  删除\n 之前的内容

p  打印\n 之前的内容

b  无条件跳转

t  满足匹配后的跳转

T  不满足匹配时跳转

[root@xlous ~]# sed -n 3p /etc/passwd
daemon:x:2:2:daemon:/sbin:/sbin/nologin
[root@xlous ~]# sed -n '1,3p' /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
[root@xlous ~]# sed -n '1,3!p' /etc/passwd
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

 

awk

AWK是一种优良的文本处理工具,linux及Unix环境中现有的功能最强大的数据处理引擎之一。这种编程及数据操作语言的最大功能取决于一个人所拥有的知识。awk命名:AIfred Aho Peter Weinberger和brian kernighan三个人的姓的速写

 最简单地说,awk是一种用于处理文本的编程语言工具

任何awk语句都是由模式和动作组成,一个awk脚本可以有多个语句。模式决定动作语句的触发条件和触发时间。

特殊字段:

BEGIN语句设置计数和打印头部信息,在任何动作之前进行。

END语句输出统计结果,在完成动作之后执行。

分隔符默认是空格,可以用-F,改变成逗号为分隔符-F,或改成冒号 -F;

准备要显示内容;

[root@xlous ~]# vim result.txt

andy 4 85 92 78 94 88
bob 6 89 90 75 90 87
claire 9 84 88 80 93 84
dave 5 94 52 84 86 NA

显示所有内容;

awk"{print $0}"result.txt

显示第一列内容;

awk"{print $1}"result.txt

显示/etc/passwd第一行,以:作为分隔符

[root@xlous ~]# awk -F:'{print $1}'/etc/passwd

转载于:https://www.cnblogs.com/fanren1752751251/p/7457763.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值