Shell笔记.docx

上传人:b****3 文档编号:5209072 上传时间:2022-12-14 格式:DOCX 页数:12 大小:36.09KB
下载 相关 举报
Shell笔记.docx_第1页
第1页 / 共12页
Shell笔记.docx_第2页
第2页 / 共12页
Shell笔记.docx_第3页
第3页 / 共12页
Shell笔记.docx_第4页
第4页 / 共12页
Shell笔记.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

Shell笔记.docx

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

Shell笔记.docx

Shell笔记

Shell编程指南(Linux与UNIX)

学习笔记

一系统指令

1文件与权限管理

文件管理

指令选项

选项说明

遍历目录下的文件

ls-l

返回当前路径

pwd

进入路径

cd<路径名>

~表示$HOME;.表示当前;/根路径

创建文件

touch<文件名>

创建目录

删除文件

rm<文件名>

改变文件或目录的权限

chmod<用户范围ugoa><增减+-><权限:

rwx><文件名/目录名>

设置执行文件在执行过程中的权限委托suid/guid

chmodu+s<文件名>

改变文件的属主

chown–R–h<用户名><文件名/目录>

-R针对目录下的子目录执行相同的改变;-h针对连接文件不影响目标文件

改变文件所属的组(组代表权限)

chgrp–R–h<组名><文件名/目录>

确定当前用户属于哪一个组

id

查看其他用户属于哪一个组

id<用户名>

设置创建文件和目录的缺省权限

umasknnn

nnn可以换算为文件或目录的缺省权限值,参见资料

建立对源文件的链接文件

ln[-s]<源文件><链接文件>

显示系统进程

psax

显示当前用户

who

文件和目录的权限:

权限表示

设置范围

权限

代码

绝对值

文件属主

同组用户

组外用户

读取

r

4

改写

w

2

执行

x

1

委托

s

2查找文件

find<路径名><-选项><文件名/通配符>[-print-exec-ok]|[xargs]

-print:

将查找到的文件名列表输出到标致输出

-exec:

将查找到的文件拿来执行shell命令,如删除它们

-ok:

是-exec的安全模式,在做shell命令时要求确认

xargs:

将输出进行整体处理。

相比exec,xargs只有一个进程

查找方式

指令选项

选项说明

按文件名查找

-name

按文件权限查找

-perm

按文件属主查找

-user

按文件所属组查找

-group

按文件的更新时间查找

-mtime–n+n

-n表示文件更改时间距现在n天以内,+n表示文件更改时间距现在n天以前。

按文件类型查找

-type

文件类型有:

b-块设备文件。

d-目录。

c-字符设备文件。

p-管道文件。

l-符号链接文件。

f-普通文件。

按文件大小查找

-sizen[c]

示例:

主题

说明

命令

查找后执行

查找更改时间在5日以前的文件并删除它们

find.-typef-mtime+5-execrm{}\;

xargs

3系统后台调度任务

调度任务:

调度方式

命令

说明

周期性调度

cron/crontab

指定时间点调度

at

后台临时任务

后台执行方式

命令

说明

临时短暂后台执行

&

永久后台执行

nohup

4通配符

通配符

说明

示例

*

匹配任何字符串,包括空字符串

?

匹配任何单个字符

[…]

匹配[]中所包含的任何字符

[!

...]

匹配[]中非感叹号!

之后的字符

5shell输入与输出

输入输出图示:

命令:

命令

说明与选项

示例

echo

显示

显示文本或变量到屏幕、或重定向到文件

“-e”选项是在Linux下使转义符有效

echo–e“asdfasdfasdf”到屏幕

echo–e“adfasdf”>myfile覆盖

echo–e“adfasd\na”>>myfile追加

read

读取变量

从键盘或文件的一行读到变量

readnamesexage

suman男20

cat

读取文件

显示文件内容

“-v”显示控制字符

catmyfile|more

显示myfile内容,并将内容通过管道发送给more命令来分页显示

cat>myfile1

输入一些文字

按住Ctrl+D结束输入

从键盘输入,并保存到myfile1文件中

命令1|命令2

管道输入

将一个命令的输出,给另一个命令作为输入

catmyfile|more

显示myfile内容,并将内容通过管道发送给more命令来分页显示

试用与管道的命令:

sed、awk、grep、more

tee

标准输出与文件保存

将内容显示在标准输出上,同时保存到文件

“-a”表示追加到文件尾

转义符:

转义符号

说明

\n

换行

\c

不换行

\t

跳格Tab

\f

进纸

重定向:

类型

符号

说明

重定向输出

>

ls–l>myfile将ls–l命令的输出重定向到myfile文件中

>>

ls–l>>myfile相比>,>>是追加到文件尾

重定向输入

<

cat

<<

cat<

重定向错误信息的输出

2>

cat“adfasdf”2>myfile将错误信息重定向输出到myfile文件中

2>>

cat“adfasdf”2>>myfile相比2>,2>>是追加到文件

文件描述符与标准输出:

文件描述符

说明

示例

0

标准输入

1

标准输出

cat“adfasdfas”1>myfile等同于cat“adfasdfas”>myfile

2

标准错误

cat“adfasdfa”2>myfile错误输出到myfile中

结合使用

cat“adfasdf”1>myfile2>myfile1没错输出到myfile,错误输出到myfile1

合并使用

cat“aaa”>>myfile2>&1没错和有错,都输出到myfile中

exec与文件描述符:

6Shell或命令的逻辑执行

方式

说明

示例

命令1&&命令2

命令1执行成功后执行2,否则不执行2

cat“a”>myfile&&echo“ok”

命令1||命令2

命令1执行错误后执行2,否则不执行2

cat“a”>myfile||echo“ok”

可以使用()将多个命令组合起来,全部成功才是成功

{}也可以,但{}是将括起来的命令作为一个整体在子Shell中执行

二字符操作

1正则表达式

基本元字符:

元字符

说明

示例

.句点

任意一个ASCII字符和数字

“…x..x..x”,”abcxdexaax”是匹配的

^行首

匹配^后字符为行首的

^p,”pabd”、”p09834”都是匹配的

^.p,”apaadd”、”0pfsd”都是匹配的(结合使用)

$行尾

匹配$前所有字符为结尾的

table$,”asdfatable”、”098table”都是匹配的

…le$,””(结合使用)

*重复

匹配*前的字符n次

compu*er,”computer”、”compuuuter”都是匹配的 

\屏蔽特殊

屏蔽特殊字符

.^\$等字符时特殊字符, “\^“将作为 ^字符

[]字符范围

匹配[]所包含的单个字符

[Cc][0-9][A-Za-z0-9]

\{\}重复n次

AB\{n\},B重复n次的匹配

AB\{n,\}\,B重复至少n次的匹配

AB\{n,m\},B重复n到m次的匹配

[0-9]\{4\}XX[0-9]\{4\},2345XX6547的匹配

正则表达式的应用:

分类

应用名

表达式

日期格式dd-mm-yyyy

[0-9]\{2\}-[0-9]\{2\}-[0-9]\{4\}

IP地址格

[0-9]\{3\}\.[0-9]\{3\}\.[0-9]\{3\}\.[0-9]\{3\}

匹配任意行

[^.*$]

匹配只有一个.的行

^.$

以xxx开头的行

^[xxx]

以xxx结尾的行

[xxx]$

非数字或字母

[^0-9A-Za-z]

2grep查询文件内容

grep[选项]基本正则表达式[文件名]

选项:

选项

说明

示例

-c

只输出匹配行的计数

grep–c“^00”“data.f”

-i

不区分大小写(只适用于单字符)

-h

查询多文件时不显示文件名

-l

查询多文件时只输出包含匹配字符的文件名

-n

显示匹配行及行号

-s

不显示不存在或无匹配文本的错误信息

-v

显示不包含匹配文本的所有行

注:

grep有点像SQL语言中的select语句。

基本正则表达式中,字符串或变量一定要用“”引起来,正则式模式用‘’单引号引起来。

grep查询时比较字符串是大小写敏感的。

-i可以不区分大小写。

主题示例:

分类

主题

示例

查询多个文件

grep“查询内容”*.doc

grep“查询内容”data1.docdata2.doc

运用选项

查询匹配的行数

grep–c“查询内容”data1.doc

查询匹配行的行号及内容

grep–n“查询内容”data.doc

查询不匹配的行内容

grep–v“查询内容”data.doc

精确匹配

grep“查询内容<分段控制符>”data.doc

正则表达式

模糊匹配

grep‘正则表达式’data.doc(注意是单引号)

运用类名替代正则表达式:

作为管道的运用:

(查询前面的命令的输出)

运用

示例

说明

查询指定的系统进程

psax|grep“named”

查询目录ls–l

ls–l|grep“^d”

只查询目录

ls–l|grep“^[^d]”

只查询文件

egrep(extendgrep扩展grep):

运用

示例

说明

用文件作为条件输入

egrep<条件文件名><文件名>

条件文件中保存查询条件

多个条件(使用|符号)

egrep(条件1|条件2)<文件名>

条件1和条件2都可以

3awk抽取文本内容

将文本文件中的内容以行(换行符分割)和列(指定的分隔符分割)划分,就像二维表一样,使用列内容之间的关系进行查询行记录,并输出报文。

有点像SQL中select语句中的聚合函数。

awk[-F :

<分隔符>]‘<域比较条件表达式>’<文件名>

4sed文本编辑器

将输入文件编辑后输出到文件

sed<输入文件>><输出文件>

5sort排序

6uniq去除重复行

7join连接两个文本行

8cut和paste文本

9split分割文本

10tr字符转换

三系统环境设置

1系统启动设置

登录过程

文件/etc/passwd

$HOME.profile

定制$HOME.profile

2环境变量

3注意引号

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

当前位置:首页 > 表格模板 > 调查报告

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

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