linuxshell文档格式.docx

上传人:b****5 文档编号:20046102 上传时间:2023-01-16 格式:DOCX 页数:13 大小:29.01KB
下载 相关 举报
linuxshell文档格式.docx_第1页
第1页 / 共13页
linuxshell文档格式.docx_第2页
第2页 / 共13页
linuxshell文档格式.docx_第3页
第3页 / 共13页
linuxshell文档格式.docx_第4页
第4页 / 共13页
linuxshell文档格式.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

linuxshell文档格式.docx

《linuxshell文档格式.docx》由会员分享,可在线阅读,更多相关《linuxshell文档格式.docx(13页珍藏版)》请在冰豆网上搜索。

linuxshell文档格式.docx

Init进程getty进程login进程shell进程,getty进程退出,login进程成为shell进程的父亲。

在/etc/passwd文件中指定要启动的Shell。

root:

x:

0:

1:

superuser:

/:

/sbin/sh

nsadmin:

201:

starf:

/home:

/bin/csh

2在命令行的方式下:

在系统中可能有多种版本的Shell存在,可通过相应的命令来启动,如:

cshkshshbash

 

1.2.2程序设计语言

Shell本身也是一种可编程的程序设计语言。

Shell允许通过编程来完成复杂的功能处理,但其作为语言与高级语言比较具有不同的特点:

Shell是解释性的,多数高级语言是编译性的;

Shell语言与高级语言处理的对象不同;

Shell与系统有密切的关系;

Shell易编写、调试、灵活性较强,但速度低;

Shell作为命令级语言,命令组合功能很强。

●sh:

BourneShell,是最常用的Shell,标准shell(有时安装成bsh)。

●ksh:

KornShell,由BourneShell通过增加History和命令行编辑功能演变而来。

●Sh:

POSIXShell,与KornShell相似,是BourneShell的高级版本。

POSIX标准要求被安装成sh。

●csh:

CShell,是基于C语言的Shell。

●bash:

BornAgainShell(bash),是KornShell的超集,又包括不少CShell语法。

但不常用。

RedhatLinux缺省的shell。

●tcsh:

CShell的一个版本,包括交互式的命令行编辑。

●zsh:

ZShell是复杂的,但却具有优良特性的Shell。

它能模拟Korn、C或POSIXShell。

也不常用。

Shell类别

易学性

编辑

快捷

可移植性

Bourne(sh)

容易

较差

Korn(ksh)

较难

较好

BourneAgain(bash)

POSIX(psh)

C(csh)

TC(tcsh)

Z(zsh)

常用Shell在交互式使用方面的比较

Shell有两种主要语法类型:

Bourne和C,彼此不兼容,

Bourne家族:

shkshbashpshzsh

C家族:

cshtcsh

其中:

bash和zsh在不同程度上支持csh的语法。

二Shell的命令简介

2.1命令的一般格式

UNIX系统命令的一般格式为:

command[options][arguments][filenames]

options常带有一个连字号“-”

字符标志位,以此扩展命令的特性或功能;

arguments

表示命令的自变量(参数);

filenames

表示文件或目录的名字。

2.2Shell常用的命令

UNIX有丰富的Shell命令,大致划分为以下几类:

目录操作与管理、文件操作与管理命令、系统管理与维护、用户管理与维护、系统状态、进程管理、通讯命令、其它命令。

例:

awk

bcbg

catchmodchowncpcron

datedfdiffdu

echoexpr

filefindfg

grep

init

kill

lnlogin

lsmailmakemanmkdirmkfsmountmv

nohup

pgpwdpsprpwd

readrm

sedsortsync

tailtee

wc

2.3Shell的内部命令(Buildincommand)

出于运行效率的考虑,将一些命令构造在Shell的内部。

这些命令比非内部命令执行速度快。

Shell常用的内部命令有:

用于结构分支及控制:

ifelseforcasewhileuntilcontinuebreak

其它:

readcdechoevalexecexitexportreadonlysetshifttesttimetrapunsetumaskwait

2.4命令的查询

环境变量PATH的构成决定了寻找Shell命令和其它程序的途径,是影响Shell程序效率的主要因素之一。

PATH变量设置要考虑以下几点:

常用目录放在PATH变量中,使用频度高的目录排在前面;

PATH应尽可能地短,不要出现重复的目录;

尽量避免查询大目录,如需设置,将其路径放在PATH路径的最后位置。

例:

PATH=/bin:

/usr/bin:

/etc:

.

2.5元字符和文件名生成

UNIX元字符(通配符)的定义

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

匹配任何单个字符;

[…,-,!

] 按照范围“-”、列表“...”或不匹配“!

”等形式匹配指定的字符;

\转意符,使元字符失去其特殊的含义。

[a-d,x,y] 匹配字符a、b、c、d、x、y;

 z*匹配以字符z开始的任何字符串;

x?

y匹配以x开始、以y结束、中间为任何单个字符的字符串;

[!

Z] 匹配不为Z的单个字符。

元字符作为文件扩展名的使用

[a-f]*匹配字符a到字符f开头的文件名;

abcd2e3.cf.dat 

  *z匹配以字符z结尾的任何字符串;

win.zcore.zza-c_5z

rc?

.d匹配以rc开始、以.d结束、中间为任何单个字符的文件名;

rc0.drc2.drcS.d

*[!

o]匹配不以o结尾的文件名;

2.6管道和命令表

管道的概念

管道:

是一个命令的标准输出与另一个命令的标准输入之间的连接,不经过任何中间文件;

管道线:

是由管道操作符分隔的一个命令序列,最简单的管道线是一个简单命令;

管道操作符:

用符号“|”表示。

例:

who|wc-l

ps-ef|grepftp

ls-l

命令表的概念

命令表:

一串管道线(命令)构成了一个命令表,最简单的命令表是一个管道线(即一个简单命令)。

管道线(命令)分隔符:

分隔命令表元素,确定管道线执行的条件,含义如下:

或换行符:

表示按顺序执行管道线;

&

&

:

表示根据条件(true),执行其后面的管道线;

||:

表示根据条件(false),执行其后面的管道线;

表示前面的管道线在后台(异步)执行。

例1:

四个管道线构成一个命令表

ls-l/bin/usr/bin

a|b|c|d

ps

例2:

与例1等价

ls-l/bin/usr/bin;

who|wc-l;

a|b|c|d;

ps

例3:

sys_account&

例4:

查询指定的文件是否存在,给出相应信息

test-f$1&

echo“$1exists”

test-f$1||echo“$1notexists”

2.7命令组合

命令组合有两种形式:

{命令表}由当前Shell来执行命令表。

{cdmydoc;

rmjunk;

}

(命令表)

当前Shell派生一个子Shell进程来执行命令表。

(cdmydoc;

bash中支持(命令表)这种方式

2.8命令替换

用命令的执行结果来替换这个字符串本身。

注意反撇号与单引号的区别。

例1:

#now=‘date’单引号

#echo$now

date

#now=`date`单撇号

1999年12月8日星期三19时51分56秒CST

#count=10

#count=`expr$count+1`

#echo$count

11

2.9输入、输出重定向

使用标准改向符进行重定向(改向)

<

输入改向

<

输入改向(here文件)

>

输出改向

>

追加输出改向

(用标准文件描述字进行重定向(改向))

在UNIX系统中,使用了文件描述字来定义输入、输出的标准文件,其中:

0:

标准输入1:

标准输出2:

标准错误输出

标准输入的改向(<

、<

command<

file

command<

EndOfMarker

EndOfMarker

sort<

myfile

cat<

!

eof

Hellow!

>

ok!

!

标准输出的改向(>

、>

command>

command>

date>

ls-l>

catfile*>

myfile

ps-ef|grepftp>

标准错误输出的改向(>

command2>

file

将错误输出改向到err_file文件。

myprog2>

err_file

将标准输出和错误输出改向out文件。

myprog>

out2>

out(两种方法等价)

1(改向处理从左至右)

错误输出被显示,标准输出改向out文件

1>

out

第二部分

文件安全与权限

☉文件权限(chown,chmod,chgrp,umask)

符号模式:

chmoda+x…(u-r,g-w,a-x)

绝对模式:

chmod644…(rwx->

7)

eg:

drwxrwxr-x2nsadminnsadmin4096Sep508:

52sbin

drwsrwsr-x2nsadminnsadmin4096Sep508:

suidandguid

    chmod+s…

chmod+4xxx…设置suid

chmod+6xxx…设置guid

☉符号链接(ln)

硬链接:

Inode(1234)

filename

1234

linkname

…..

Data

Data

Data

删除源文件或者任何一个链接,数据块还存在并可以访问到。

data

软链接:

Inode(321)

Path/filename

Inode(333)

Linkname

软链接删除和源文件没有任何关系,但是源文件删除了,软链接就玩完了。

-f,--forceremoveexistingdestinationfiles

-i,--interactivepromptwhethertoremovedestinations

-s,--symbolicmakesymboliclinksinsteadofhardlinks

find命令

格式:

findpathname–option[-print–exec–ok]

选项说明:

-name按照文件名查找文件

$find.–name“*.txt”-print

-perm按照文件权限查找文件

$find.–perm755-print

-prune不在指定的目录查找

$find.–name“./wzf”–prune–o-print

-user按照文件属主查找文件

$find.–groupnsadmin–print

$find.–nogroup-print

-group按照文件属组查找文件

$find.–usernsadmin–print

$find.–nouser-print

-mtime

$find/-mtime–5–print更改时间在五日以内的文件

-newer

$find.–newerwzf.txt!

–newerwangzf.txt–execls–l{}\;

更改时间比文件wzf.txt新但比文件wangzf.txt旧的文件

-size

$find.–size+100c-print

查找大于100字节的文件

-depth

$find/-name“abc.conf”-depth-print

深入目录查找

-mount

$find.–name“*.txt”–mount–print

在当前文件系统查找所有以.txt结尾的文件

使用exec或者ok来执行shell命令

$find.–typef–execrm{}\;

使用xargs来执行shell命令

$find.–name“*.txt”–print|xargsrm

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

当前位置:首页 > 工作范文 > 制度规范

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

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