Linux 第十五天

2)环境变量:这种变量中主要保存的是和系统操作环境相关的数据。

export 变量名=变量值    设置环境变量

env                     查询变量

unset变量名             删除变量

pstree                   查询shell继承树

◆PATH:命令执行路径

◆PS1:定义系统提示符的变量

\d:显示日期,格式为“星期月日”

\h:显示简写主机名。如默认主机名“localhost”

\t:  显示24小时制时间,格式为“HH:MM:SS”

\T:  显示12小时制时间,格式为“HH:MM:SS”

\A:  显示24小时制时间,格式为“HH:MM”

\u:  显示当前用户名

\w:  显示当前所在目录的完整名称

\W:  显示当前所在目录的最后一个目录

#:  执行的第几个命令

\$:提示符。如果是root用户会显示提示符为“#”,如果是普通用户会显示提示符为“$”

3)位置参数变量:这种变量主要是用来向脚本当中传递参数或数据的,变量名不能自定义,变量作用是固定的。


位置参数变量


作用


$n


n为数字,$0代表命令本身,$1-$9代表第一到第九个参数,十以上的参数需要用大括号包含,如${10}.


$*


这个变量代表命令行中所有的参数,*把所有的参数看成一个整体


[email protected]


这个变量也代表命令行中所有的参数,不过[email protected]把每个参数区分对待


$#


这个变量代表命令行中所有参数的个数

◆read [选项] [变量名] 接受键盘输入

选项:

-p“提示信息”:在等待read输入时,输出提示信息

-t秒数:read命令会一直等待用户输入,使用此选项可以指定等待时间

-n字符数:read命令只接受指定的字符数,就会执行

-s:隐藏输入的数据,适用于机密信息的输入

4)预定义变量:是Bash中已经定义好的变量,变量名不能自定义,变量作用也是固定的。


预定义变量


作用


$?


最后一次执行的命令的返回状态。如果这个变量的值为0,证明上一个命令正确执行;如果这个变量的值为非0(具体是哪个数,由命令自己来决定),则证明上一个命令执行不正确


$$


当前进程的进程号(PID)


$!


后台运行的最后一个进程的进程号(PID)

6、数值运算与运算符

1)declare声明变量类型

declare [+/-][选项] 变量名

选项:

:给变量设定类型属性

十:取消变量的类型属性

-i:将变量声明为整数型(integer)      declare -i c=$a+$b

-x:将变量声明为环境变量

-p:显示指定变量的被声明的类型

2) expr或let数值运算工具

d=$(expr $a+$b)      d的值是a和b的和。注意“+”号左右两侧必须有空格

3)S((运算式))或$[运算式]

f=$(($a+$b))

g=$[ $a+$b]

4)运算符

7、变量测试与内容替换

8、环境变量配置文件

环境变量配置文件中主要是定义对系统的操作环境生效的系统默认环境变量

(/etc/profile、/etc/profile.d/*.sh、家/.bash profile、家/.bashrc、/etc/bashrc)

1)source命令,使配置文件直接生效

source配置文件 或 . 配置文件

9、正则表达式与通配符

◆正则表达式用来在文件中匹配符合条件的字符串,正则是包含匹配。grep、awk、sed等命令可以支持正则表达式。

◆通配符用来匹配符合条件的文件名,通配符是完全匹配。1s、find、cp这些命令不支持正则表达式,所以只能使用shell自己的通配符来进行匹配了。

10、字符截取命令

1)grep 在文件中搜寻字串匹配的行并输出

英文原意:global search regular expression(RE) and print out the line

语法:grep [-i/-v] [指定字串] [文件]

常用选项

-i:不区分大小写

-v:排除指定字串所在行

2)cut  截取文件的第几列,默认分隔符是制表符

语法:cut [选项] 文件名

选项:

-f列号:提取第几列

-d分隔符:按照指定分隔符分割列

3)awk

◆格式:awk ‘条件1{动作1} 条件2{动作2}.…’ 文件名

◆条件(Pattern):一般使用关系表达式作为条件

x>10判断变量x是否大于10,关系成立后才执行动作

x>=10大于等于

x<=10小于等于

$n 代表第n列,$0代表这一行

BEGIN{动作} 在程序执行前先执行这个动作

END{动作} 在程序执行后再执行这个动作

◆在awk命令的输出中支持print和printf命令

print会在每个输出之后自动加入一个换行符(Linux默认没有print命令)

printf是标准格式输出命令。如果需要换行,需要手工加入换行符\n

◆动作(Action):

格式化输出(print、printf)

流程控制语句

FS:内置对象,指定分隔符

4)sed命令

sed是一种几乎包括在所有UNIX平台(包括Linux)的轻量级流编辑器。sed主要是用来将数据进行选取、香换、删除、新增的命令。

语法:sed [选项] ‘[动作]’ 文件名

选项:

-n:一般sed命令会把所有数据都输出到屏幕,如果加入此选择,则只会把经过sed命令处

理的行输出到屏幕。

-e:允许对输入数据应用多条sed命令编辑

-i:用sed的修改结果直接修改读取数据的文件,而不是由屏幕输出

动作:

a:追加,在当前行后添加一行或多行。添加多行时,除最后一行外,每行末尾需要用“\”代表数据未完结。 “2a hello” 在第二行后面追加hello

c:行替换,用c后面的字符串替换原数据行,替换多行时,除最后一行外,每行末尾需用“\”代表数据未完结。    “2c  helloword” 将第二行替换为新行

i:插入,在当前行前插入一行或多行。插入多行时,除最后一行外,每行末尾需要用“\”代表数据未完结。   “2i hello” 在第2行前插入一行

d:删除,删除指定的行。“2,4d” 删除第2到第4行

p:打印,输出指定的行。“2p” 输出第二行

s:字串替换,用一个字符串替换另外一个字符串。格式为“行范围s/旧字串/新字串/g”(和vim中的替换格式类似)。   “3s/aa/bb/g” 将第3行的aa改成bb

11、字符处理命令

1)排序命令sort

语法:sort [选项] 文件名

选项:

-f:忽略大小写

-n:以数值型进行排序,默认使用字符串型排序

-r:反向排序

-t:指定分隔符,默认是分隔符是制表符

-k n[,m]:按照指定的字段范围排序。从第n字段开始,m字段结束(默认到行尾)

2)统计命令wc

语法:wc[选项]文件名

选项:

-l:只统计行数

-w:只统计单词数

-m:只统计字符数

12、判断命令

1)判断格式

◆ test 判断     test -e /root/install.log

◆[ 判断 ]       [ -e /root/install.log ]

2)按照文件类型进行判断

3)按照文件权限进行判断

4)两个文件之间进行比较

5)两个整数之间比较

6)字符串的判断

7)多重条件判断

13、流程控制语句

1)if语句

◆if语句使用fi结尾,和一般语言使用大括号结尾不同

[条件判断式]就是使用test命令判断,所以中括号和条件判断式之间必须有空格

then后面跟符合条件之后执行的程序,可以放在[]之后,用“;”分割。也可以换行写入,就不需要“;”了

◆单分支if条件语句

if[ 条件判断式 ];then

程序

fi

或者

if[ 条件判断式 ]

then

程序

fi

◆双分支if条件语句

if[ 条件判断式 ]

then

条件成立时,执行的程序

else

条件不成立时,执行的另一个程序

fi

◆多分支if条件语句

if[ 条件判断式1 ]

then

当条件判断式1成立时,执行程序1

elif[ 条件判断式2 ]

then

当条件判断式2成立时,执行程序2

……省略更多条件

else

当所有条件都不成立时,最后执行此程序

fi

2)case多分支判断语句

case s变量名in

"值1")

执行程序1

;;

"值2")

执行程序2

;;

…省略其他分支…

*)

如果变量的值都不是以上的值,则执行此程序

;;

esac

3)循环

◆   foreach

for 变量in值1值2值3..

do

程序

done

◆普通for

for((初始值;循环控制条件;变量变化))

do

程序

done

◆while

while [条件判断式]

do

程序

done

◆until:只要条件判断式不成立则进行循环。一旦循环条件成立,则终止循环。

until [条件判断式]

do

程序

done

原文地址:https://www.cnblogs.com/kuexun/p/Linux_learn_15.html

时间: 2024-11-09 03:10:57

Linux 第十五天的相关文章

攻城狮在路上(叁)Linux(十五)--- 文件与目录的默认权限与隐藏权限

一.文件默认权限:umask <==需要被减去的权限. 1.umask指的是当前用户在新建文件或者目录时的默认权限,如0022; 2.默认情况下,用户创建文件的最大权限为666; 创建目录的最大权限为777. 3.最终权限 = 最大权限 - umask; <== 此处注意并非是数值直接相减. 4.设置umask: umask 002; 5.由上述条件,自己判断用户新建文件或目录的最终权限. 二.文件的隐藏属性: chattr.lsattr , 隐藏属性对于系统安全有很大的帮助. chattr

Linux第十五周

1.总结sed和awk的详细用法: sed Sed本质上是一个编辑器,但是它是非交互式的:同时它又是面向字符流的,输入的字符流经过sed的处理后输出. Sed本身是一个管道命令,可以分析standard input的,主要是用来分析关键字的使用.统计等,此外还可以将数据进行替换.删除.选取特定行等功能 格式:sed [option] ... 'script' inputfile... script: '地址命令' 常用选项: -n:不输出模式中的内容至屏幕,只列出经过sed处理过的那一行. -e

攻城狮在路上(叁)Linux(二十五)--- linux内存交换空间(swap)的构建

swap的功能是应付物理内存不足的状况,用硬盘来暂时放置内存中的信息. 对于一般主机,物理内存都差不多够用,所以也就不会用到swap,但是对于服务器而言,当遇到大量网络请求时或许就会用到. 当swap被使用的时候,主机的硬盘灯就会闪烁不停. 本篇介绍两种方式:1.设置一个swap分区   2.创建一个虚拟内存的文件. 一.使用物理分区构建swap: 1.首先是分区: A.fdisk /dev/sda; <== 根据后续提示创建一个分区. B.修改分区的ID,因为fdisk默认将分区的ID作为文件

linux杂谈(十五):ftp的企业应用级的配置(二)

上篇最后我们讲到了匿名用户家目录的修改,今天来看看匿名用户还可以做什么操作. 1.匿名用户创建和删除目录 其实所有的功能都是上篇所列举的那些参数所控制的,通常大家在记不清的时候都可以查看man手册(man vsftpd.conf),里面列举了所有可以修改的参数.关于匿名用户创建和删除目录的参数如下所示: 把这两个参数设置为YES,匿名用户就可已创建目录了,记得每次修改完配置文件都要重新启动/etc/init.d/vsftpd服务. 发现还是无法创建,怎么回事?其实我们考虑问题一定要全面.虽然配置

嵌入式Linux裸机开发(十五)——LCD

嵌入式Linux裸机开发(十五)--LCD 一.LCD简介 LCD(Liquid Crystal Display)是液晶显示器简称.LCD的构造是在两片平行的玻璃基板当中放置液晶盒,下基板玻璃上设置TFT(薄膜晶体管),上基板玻璃上设置彩色滤光片,通过TFT上的信号与电压改变来控制液晶分子的转动方向,从而达到控制每个像素点偏振光出射与否而达到显示目的. 1.LCD类型 按照背光源的不同,LCD可以分为CCFL和LED两种. A.CCFL 指用CCFL(冷阴极荧光灯管)作为背光光源的液晶显示器(L

linux内核奇遇记之md源代码解读之十五bitmap原理

转载请注明出处:http://blog.csdn.net/liumangxiong 为人不识陈近南,走遍江湖也枉然.做raid不识bitmap,通通都是走过场. 那么bitmap究竟是何许人物,能够在raid5的场子里混得风生水起呢?话说最早raid5是没有bitmap这位门客的,突然有一天跑raid5的系统异常掉电了,客户发现异常掉电之后再写数据就出现了数据不一致的情况.查来查去发现raid5本身设计就有一个缺陷:raid5每次写至少要写两个磁盘,写过程中异常掉电的时候就会发现一个磁盘写完成而

马哥linux作业第五周&#39;

1.显示当前系统上root.fedora或user1用户的默认shell: egrep "^(root|fedora|user1)\>" /etc/passwd |cut -d: -f1,7 root|fedora|user1表示三者符合其一的选择条件 ()使其归组 ^表示以后面归组的条件开头 \>表示以空字符截断此前的条件字符,即后跟其它字符的单词将不匹配 2.找出/etc/rc.d/init.d/functions文件中某单词后面跟一组小括号的行,形如:hello():

第十五章 文件属性类的实现

                  第十五章    文件属性类的实现        根用户的权限也不能是无限大.必须考虑到保护用户的隐私!用户的文件内容.程序代码可设置为根用户也不能观看,只能是文件拥有者可以查看.修改.但根用户可以删除一切非根用户的文件.也可以查看用户的目录.所以,i_mode字符更改如下:      BU16 i_mode; // 描述文件的访问权限:文件的读.写.执行权限  // i_mode.15-13  ftype; 文件类型: 0-符号软连接文件, // 1-硬连接文

linux试题 (五)

唉,堕落了几天,我又变好了.傻逼技术面试官才会考运维人员程序的问题!运维人员多累啊,数据库,安全.linux服务.网络管理,忙的过来吗?还拿程序为难人!笔试多半挂了,大公司离我又远了,哎... linux面试(五) 201   Shell循环语句有哪些? 答:for do done ;if then fi ;case 语句.while do done.until 202 用SHELL模拟LVS,脚本怎么写 答:步骤有点长,推荐购买<构建高可用linux服务器>-余洪春,这本书写的很详细 203