centos学习笔记.docx

上传人:b****6 文档编号:6184166 上传时间:2023-01-04 格式:DOCX 页数:53 大小:1.02MB
下载 相关 举报
centos学习笔记.docx_第1页
第1页 / 共53页
centos学习笔记.docx_第2页
第2页 / 共53页
centos学习笔记.docx_第3页
第3页 / 共53页
centos学习笔记.docx_第4页
第4页 / 共53页
centos学习笔记.docx_第5页
第5页 / 共53页
点击查看更多>>
下载资源
资源描述

centos学习笔记.docx

《centos学习笔记.docx》由会员分享,可在线阅读,更多相关《centos学习笔记.docx(53页珍藏版)》请在冰豆网上搜索。

centos学习笔记.docx

centos学习笔记

Shell脚本得执行方式

1、echo输出命令

[root@localhost~]#echo[选项][输出内容]

选项:

-e:

支持反斜线控制得字符转换

[root@localhost~]#echo-e"ab\bc"

#删除左侧字符

[root@localhost~]#echo-e"a\tb\tc\nd\te\tf"

#制表符与换行符

2、第一个脚本

[root@localhostsh]#vihello、sh

#!

/bin/Bash

#Thefirstprogram

#Author:

shenchao(E-mail:

echo-e"Mr、ShenChaoisthemosthonestmaninLampBrother"

3、脚本执行

赋予执行权限,直接运行

chmod755hello、sh

、/hello、sh

通过Bash调用执行脚本

bashhello、sh

___________________________________

历史命令与命令补全

1、历史命令

[root@localhost~]#history[选项][历史命令保存文件]

选项:

-c:

清空历史命令

-w:

把缓存中得历史命令写入历史命令保存文件

~/、bash_history

历史命令默认会保存1000条,可以在环境变量配置文件/etc/profile中进行修改

历史命令得调用

使用上、下箭头调用以前得历史命令

使用“!

n”重复执行第n条历史命令

使用“!

!

”重复执行上一条命令

使用“!

字串”重复执行最后一条以该字串开头得命令

2、命令与文件补全

在Bash中,命令与文件补全就是非常方便与常用得功能,我们只要在输入命令或文件时,按“Tab”键就会自动进行补全

________________________________________________

命令别名

1、命令别名

[root@localhost~]#alias别名='原命令'

#设定命令别名

[root@localhost~]#alias

#查询命令别名

2、让别名永久生效

[root@localhost~]#vi/root/、bashrc

3、删除别名

[root@localhost~]#unalias别名

Bash常用快捷键

输入输出重定向

注意错误用2表示。

举例:

[root@localhosttmp]#touchnfile

[root@localhosttmp]#date>nfile

[root@localhosttmp]#catnfile

2018年01月07日星期日09:

16:

22CST

[root@localhosttmp]#date>>nfile

[root@localhosttmp]#catnfile

2018年01月07日星期日09:

16:

36CST

2018年01月07日星期日09:

16:

49CST

[root@localhosttmp]#lsdd2>nfile

[root@localhosttmp]#catnfile

-bash:

lsdd:

未找到命令

[root@localhosttmp]#dateaaa>file_12>&1

[root@localhosttmp]#catfile_1

-bash:

dateaaa:

未找到命令

[root@localhosttmp]#lsdd&>>file_2

[root@localhosttmp]#catfile_2

1

file

file_1

file_2

-bash:

lsdd:

未找到命令

3、输入重定向(很少用)

[root@localhost~]#wc[选项][文件名]

选项:

-c统计字节数

-w统计单词数

-l统计行数

命令<文件把文件作为命令得输入

命令<<标识符…标识符把标识符之间内容作为命令得输入

多命令顺序执行与管道符

1、多命令顺序执行

举例:

(1)[root@localhosttmp]#ls;date;cd/user;pwd

1filefile_1file_2

2018年01月07日星期日09:

42:

43CST

-bash:

cd/user:

没有那个文件或目录

/tmp

(2)[root@localhost/]#ls/tmp&&echoyes

1filefile_1file_2

Yes

[root@localhost/]#lsaa&&echoyes

-bash:

lsaa:

未找到命令

(3)[root@localhost/]#lal/tmp||echoyes

-bash:

lal:

未找到命令

Yes

这个特别实用,自动判断一个命令就是否正确。

[root@localhost~]#命令&&echoyes||echono

如果命令正确echoyes才会执行,echoyes执行,那么echono不执行。

如果命令错误echoyes不会执行,echoyes不执行,那么echono执行。

下边这个主要用于硬盘数据拷贝得。

[root@localhost~]#ddif=输入文件of=输出文件bs=字节数count=个数

选项:

if=输入文件指定源文件或源设备

of=输出文件指定目标文件或目标设备

bs=字节数指定一次输入/输出多少字节,即把这些字节瞧做一个数据块

count=个数指定输入/输出多少个数据块

2、管道符

命令格式:

[root@localhost~]#命令1|命令2

#命令1得正确输出作为命令2得操作对象

[root@localhostetc]#ll-a|more

把ll-a输出得结果,作为more得操作对象

[root@localhostetc]#netstat-an|grep"ESTABLISHED"

tcp052192、168、237、131:

22192、168、237、1:

49670ESTABLISHED

[root@localhost~]#grep[选项]"搜索内容"文件名

选项:

-i:

忽略大小写

-n:

输出行号

-v:

反向查找

--color=auto搜索出得关键字用颜色显示

通配符与其她特殊符号

1、通配符

[root@localhosttmp]#ls

file

[root@localhosttmp]#touchabc

[root@localhosttmp]#touchabcd

[root@localhosttmp]#touch012

[root@localhosttmp]#touch0abc

[root@localhosttmp]#ls?

abc

0abc

[root@localhosttmp]#ls[0-9]*

0120abc

[root@localhosttmp]#ls*abc

0abcabc

[root@localhosttmp]#ls[^0-9]*

abcabcdfile

2、Bash中其她特殊符号

反引号与$()

[root@localhost~]#echo`ls`

[root@localhost~]#echo$(date)

Bash得变量

1、什么就是变量

变量就是计算机内存得单元,其中存放得值可以改变。

当Shell脚本需要保存一些信息时,如一个文件名或就是一个数字,就把它存放在一个变量中。

每个变量有一个名字,所以很容易引用它。

使用变量可以保存有用信息,使系统获知用户相关设置,变量也可以用于保存暂时信息。

2、变量设置规则

●变量名称可以由字母、数字与下划线组成,但就是不能以数字开头。

如果变量名就是“2name”则就是错误得。

●在Bash中,变量得默认类型都就是字符串型,如果要进行数值运算,则必修指定变量类型为数值型。

●  变量用等号连接值,等号左右两侧不能有空格。

●变量得值如果有空格,需要使用单引号或双引号包括。

●在变量得值中,可以使用“\”转义符。

●如果需要增加变量得值,那么可以进行变量值得叠加。

不过变量需要用

双引号包含“$变量名”或用${变量名}包含。

●如果就是把命令得结果作为变量值赋予变量,则需要使用反引号或$()包含命令。

●环境变量名建议大写,便于区分。

3、变量分类

●用户自定义变量

●环境变量:

这种变量中主要保存得就是与系统操作环境相关得数据。

●位置参数变量:

这种变量主要就是用来向脚本当中传递参数或数据得,变量名不能自定义,变量作用就是固定得。

●预定义变量:

就是Bash中已经定义好得变量,变量名不能自定义,变量作用也就是固定得。

4、本地变量

变量定义[root@localhost~]#name="shenchao"

变量叠加[root@localhost~]#aa=123

[root@localhost~]#aa="$aa"456

[root@localhost~]#aa=${aa}789

变量调用[root@localhost~]#echo$name

变量查瞧[root@localhost~]#set

变量删除[root@localhost~]#unsetname

环境变量

1、环境变量就是什么

用户自定义变量只在当前得Shell中生效,而环境变量会在当前Shell与这个Shell得所有子Shell当中生效。

如果把环境变量写入相应得配置文件,那么这个环境变量就会在所有得Shell中生效

2、设置环境变量

export变量名=变量值

#申明变量

env

#查询变量

unset变量名

#删除变量

3、系统常见环境变量

PATH:

系统查找命令得路径

[root@localhost~]#echo$PATH/usr/lib/qt-3、3/bin:

/usr/local/sbin:

/usr/local/bin:

/sbin:

/bin:

/usr/sbin:

/usr/bin:

/root/bin

PATH="$PATH":

/root/sh#PATH变量叠加

PS1:

定义系统提示符得变量

\d:

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

\h:

显示简写主机名。

如默认主机名“localhost”

\t:

显示24小时制时间,格式为“HH:

MM:

SS”

\T:

显示12小时制时间,格式为“HH:

MM:

SS”

\A:

显示24小时制时间,格式为“HH:

MM”

\u:

显示当前用户名\w:

显示当前所在目录得完整名称

\W:

显示当前所在目录得最后一个目录\#:

执行得第几个命令

\$:

提示符。

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

举例:

[root@localhost~]#PS1='[\u@\t\w]\$'

[root@04:

50:

08/usr/local/src]#PS1='[\u@\@\h\#\W]\$‘

[root@04:

53上午localhost31src]#PS1='[\u@\h\W]\$'

位置参数变量

1、位置参数变量

位置参数变量

作用

$n

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

$*

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

$@

这个变量也代表命令行中所有得参数,不过$@把每个参数区分对待

$#

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

(需要实验这几个例子)

例子1:

#!

/bin/bash

num1=$1

num2=$2

sum=$(($num1+$num2))

#变量sum得与就是num1加num2

echo$sum

#打印变量sum得值

例子2:

#!

/bin/bash

echo"Atotalof$#parameters"

#使用$#代表所有参数得个数

echo"Theparametersis:

$*"

#使用$*代表所有得参数

echo"Theparametersis:

$@"

#使用$@也代表所有参数

例子3:

$*与$@得区别

#!

/bin/bash

foriin"$*"

#$*中得所有参数瞧成就是一个整体,所以这个for循环只会循环一次

do

echo"Theparametersis:

$i"

done

x=1

foryin"$@"

#$@中得每个参数都瞧成就是独立得,所以“$@”中有几个参数,就会循环几次

do

echo"Theparameter$xis:

$y"

x=$(($x+1))

done

预定义变量

1、预定义变量

预定义变量

作用

$?

最后一次执行得命令得返回状态。

如果这个变量得值为0,证明上一个命令正确执行;如果这个变量得值为非0(具体就是哪个数,由命令自己来决定),则证明上一个命令执行不正确了。

$$

当前进程得进程号(PID)

#!

/bin/bash

#Author:

shenchao(E-mail:

echo"Thecurrentprocessis$$"

#输出当前进程得PID。

#这个PID就就是variable、sh这个脚本执行时,生成得进程得PID

find/root-namehello、sh&

#使用find命令在root目录下查找hello、sh文件

#符号&得意思就是把命令放入后台执行,工作管理我们在系统管理章节会详细介绍

echo"ThelastoneDaemonprocessis$!

"

2、接收键盘输入跟python得input命令相似

[root@localhost~]#read[选项][变量名]

选项:

-p“提示信息”:

在等待read输入时,输出提示信息

-t秒数:

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

-n字符数:

read命令只接受指定得字符数,就会执行

-s:

隐藏输入得数据,适用于机密信息得输入

#!

/bin/bash

#Author:

shenchao(E-mail:

read-t30-p"Pleaseinputyourname:

"name

#提示“请输入姓名”并等待30秒,把用户得输入保存入变量name中

echo"Nameis$name"

read-s-t30-p"Pleaseenteryourage:

"age

#年龄就是隐私,所以我们用“-s”选项隐藏输入

echo-e"\n"

echo"Ageis$age"

read-n1-t30-p"Pleaseselectyourgender[M/F]:

"gender

#使用“-n1”选项只接收一个输入字符就会执行(都不用输入回车)

echo-e"\n"

echo"Sexis$gender"

数值运算与运算符

1、declare声明变量类型

[root@localhost~]#declare[+/-][选项]变量名

选项:

-:

给变量设定类型属性

+:

取消变量得类型属性

-i:

将变量声明为整数型(integer)

-x:

将变量声明为环境变量

-p:

显示指定变量得被声明得类型

2、数值运算

方法1:

[root@localhost~]#aa=11

[root@localhost~]#bb=22

#给变量aa与bb赋值

[root@localhost~]#declare-icc=$aa+$bb

方法2:

expr或let数值运算工具

[root@localhost~]#aa=11

[root@localhost~]#bb=22

#给变量aa与变量bb赋值

[root@localhost~]#dd=$(expr$aa+$bb)

#dd得值就是aa与bb得与。

注意“+”号左右两侧必须有空格

方法3:

“$((运算式))”或“$[运算式]”

[root@localhost~]#aa=11

[root@localhost~]#bb=22

[root@localhost~]#ff=$(($aa+$bb))

[root@localhost~]#gg=$[$aa+$bb]

3、运算符

优先级

运算符

说明

13

-,+

单目负、单目正

12

!

~

逻辑非、按位取反或补码

11

*,/,%

乘、除、取模

10

+,-

加、减

9

<<,>>

按位左移、按位右移

8

<=,>=,<,>

小于或等于、大于或等于、小于、大于

7

==,!

=

等于、不等于

6

&

按位与

5

^

按位异或

4

|

按位或

3

&&

逻辑与

2

||

逻辑或

1

=,+=,-=,*=,/=,%=,&=,^=,|=,<<=,>>=

赋值、运算且赋值

[root@localhost~]#aa=$(((11+3)*3/2))

#虽然乘与除得优先级高于加,但就是通过小括号可以调整运算优先级

[root@localhost~]#bb=$((14%3))

#14不能被3整除,余数就是2

[root@localhost~]#cc=$((1&&0))

#逻辑与运算只有想与得两边都就是1,与得结果才就是1,否则与得结果就是0

变量测试与内容替换(需要仔细瞧。

有点绕)

变量置换方式

变量y没有设置

变量y为空值

变量y设置值

x=${y-新值}

x=新值

x为空

x=$y

x=${y:

-新值}

x=新值

x=新值

x=$y

x=${y+新值}

x为空

x=新值

x=新值

x=${y:

+新值}

x为空

x为空

x=新值

x=${y=新值}

x=新值

y=新值

x为空

y值不变

x=$y

y值不变

x=${y:

=新值}

x=新值

y=新值

x=新值

y=新值

x=$y

y值不变

x=${y?

新值}

新值输出到标准错误输出(就就是屏幕)

x为空

x=$y

x=${y:

?

新值}

新值输出到标准错误输出

新值输出到标准错误输出

x=$y

例子1:

测试x=${y-新值}

[root@localhost~]#unsety

#删除变量y

[root@localhost~]#x=${y-new}

#进行测试

[root@localhost~]#echo$x

new

#因为变量y不存在,所以x=new

[root@localhost~]#y=""

#给变量y赋值为空

[root@localhost~]#x=${y-new}

#进行测试

[root@localhost~]#echo$x

[root@localhost~]#y=old

#给变量y赋值

[root@localhost~]#x=${y-new}

#进行测试

[root@localhost~]#echo$x

Old

环境变量配置文件简介

1、source命令

[root@localhost~]#source配置文件

[root@localhost~]#、配置文件

2、环境变量配置文件简介

环境变量配置文件中主要就是定义对系统得操作环境生效得系统默认环境变量,比如PATH、HISTSIZE、PS1、HOSTNAME等默认环境变量。

/etc/profile

/etc/pro*、sh

~/、bash_profile

~/、bashrc

/etc/bashrc

/etc/profile得作用:

USER变量:

LOGNAME变量:

MAIL变量:

PATH变量:

HOSTNAME变量:

HISTSIZE变量:

umask:

调用/etc/pro*、sh文件

~/、bash_profile得作用

调用了~/、bashrc文件。

在PATH变量后面加入了“:

$HOME/bin”这个目录

~/、bashrc得作用

定义默认别名

调用/etc/bashrc

/etc/bashrc得作用

PS1变量

umask

PATH变量

调用/etc/pro*、sh文件

其她配置文件与登录信息

1、注销时生效得环境变量配置文件

~/、bash_logout

2、其她配置文件

~/bash_history

3、Shell登录信息

本地终端欢迎信息:

/etc/issue

转义符

作用

\d

显示当前系统日期

\s

显示操作系统名称

\l

显示登录得终端号,这个比较常用。

\m

显示硬件体系结构,如i386、i686等

\n

显示主机名

\o

显示域名

\r

显示内核版本

\t

显示当前系统时间

\u

显示当前登录用户得序列号

远程终端欢迎信息:

/etc/issue、net

转义符在/etc/issue、net文件中不能使用

就是否显示此欢迎信息,由ssh得配置文件/etc/ssh/sshd_config决定,加入“Banner/etc/issue、net”行才能显示(记得重启SSH服务)

登陆后欢迎信息:

/etc/motd不管就是本地登录,还就是远程登录,都可以显示此欢迎信息

基础正则表达式

1、正则表达式与通配符

正则表达式用来在文件中匹配符合条件得字符串,正则就是包含匹配。

grep、awk、sed等命令可以支持正则表达式。

通配符用来匹配符合条件得文件名,通配符就是完全匹配。

ls、find、cp这些命令不支持正则表达式,所以只能使用shell自己得通配符来进行匹配了。

2、基础正则表达式

元字符

作用

*

前一个字符匹配0次或任意多次。

匹配除了换行符外任意一个字符。

^

匹配行首。

例如:

^hello会匹配以hello开头得行。

$

匹配行尾。

例如:

hello&会匹配以hello结尾得行。

[]

匹配中括号中指定得任意一个字符,只匹配一个字符。

例如:

[aoeiu]匹配任意一个元音字母,[0-9]匹配

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1