1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > linux shell 变量 管道 linux下shell 变量 管道 重定向等基础知识及技巧

linux shell 变量 管道 linux下shell 变量 管道 重定向等基础知识及技巧

时间:2024-05-04 07:45:39

相关推荐

linux shell 变量 管道 linux下shell 变量 管道 重定向等基础知识及技巧

知识点如下:

1,关于shell编程中的变量,shell编程中的变量分为4种

本地变量:只对本系统本用户自己的shell有用

环境变量:对本系统的所有shell都有用 用export来声明变量 例如:export

A=1 另外:查看系统能用的shell的命令是cat /etc/shells

查看系统当前用户正使用的shell的命令:echo $SHELL

特殊变量:是bash内置的变量,用于调用bash脚本编程环境的一些特殊的执行结果

比如:$? 它的作用是表明上一个命令是否执行成功,在linux中 0 表

示成功,非零的都是错误,不同的值表示的错误不一样

位置变量:可以直接向脚本中传递参数并且被脚本调用的变量,例如 $1 $2 $3...

能够进行算术运算的几个特殊符号:$[] $(( )) 例如:a=3 b=5 echo "$[$a+$b]"

2,关于PS1 echo $PS1 export PS1='[\u@\h \w]\$'

3,变量的文件一般都是放在一下几个文件里的

按控制范围分为:

全局变量:/etc/profile /etc/profile.d/*,/etc/bash.rc

局部变量:~/.bash_profile ~/.bash.rc ~/.bash_logout

按作用类型分为:

profile类:设置环境变量 和 运行用户登录要运行的一些命令

bashrc 类:设置别名和 设置本地变量

解决关于脚本为什么有时候不能用的问题

shell分为交互式登录shell 和非登录shell

所谓登录shell就是在用户进入系统的时候才开始执行的shell

读取顺序:/etc/profile-->/etc/profile.d/*-->~/.bash_profile--

>~/.bashrc/-->/etc/bashrc(越往后优先级越高)

非登录shell就是用户还没有进入系统的时候就已经开始执行的shell

~/.bashrc-->/etc/bashrc-->/etc/profile.d/*(越往后优先级越高)

4,关于输入输出重定向以及管道

标准输入:/dev/stdin0

标准输出:/dev/stdout 1>(前面省略1)

标准错误输出:/dev/stderr 2 2>

如果想实现正确错误输出都到一个文件,则 用 &>

小技巧:很多情况下我们在定向一个内容的时候,我们如果用> 我们很可能会把

一个文件以前的内容弄丢,这个时候我们可以用set -C开启一个

功能 即 不会让文件被覆盖掉

关闭这个功能用set +C

管道:

echo "123456" | passwd --stdin redhat (用一个命令直接创建一个用户

redhat,密码是123456) passwd --stdin 表示从现实器上读取密码

(passswd默认情况下是从键盘读入密码)

命令tee:tee就是一个丁字路口 ,把一个输入流分给两个部分如:

ls /etc |tee /tmp/txt.txt | less (把etc下的内容给txt.txt,并且显示出来)

自定义文件输出重定向:

在我们编写脚本的时候我们常常要往一个文件里面写很多东西,为了提高效率

我们用这个命令 exec 3> /etc/out.txt 然后我们向out.txt里面定向内容的时候我们就可以 ls -l /etc >&3,其实文件是被写到了/out.txt里了(这种放法在要多次向一个文件里定向内容的时候很有用,可以极大地提高读写效率)

关闭则用:exec 3>&-

5,循环语句:for变量 in队列;do

statement 1

statement 2

done

三种不同写法:

for I in12345=

for I in `seq 1 5`=

forIin(1..5)

队列可以分为以下几个类型:

简单列表:1 2 3 6 7

复杂列表:this is tom's cat (这里’会被当成一个字符,所以用的时候应该这样写 \' 表示转义)

从变量读:in `seq 1 $max`

从命令读: `ls /var`

通配符 :for i in /var/*

6,tail -2 /etc/passwd | cut -d: f1 截取/etc/passwd 下后两行的内容,然后以”:“为分割取第一部分 (这个命令很有用)

7,grep与正则表达式:

grep :

-i 不区分大小写

-v显示没有匹配到的行

-n显示匹配到的行和它的行号

An 连收索到的前n行也显示

Bn///后n行显示

Cncontext,上下文

--color 匹配到的窜高亮显示

定义:有一堆的元字符组成,表达的不是自己本身的意思,而是其他的意思

算了 ,正则表达式本人还没有完全理解,以后会以一篇专门的博文给出,今天

不在这里写了 ,SEEYOU!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。