第一个shell脚本

1.       shell编程的方式

交互式shell编程

非交互式shell编程:执行的语句存放到一个文件

shell脚本:可以任意文件名,建议扩展名为sh

2.       shell脚本的语法(algol语法:basic|pascl)

字word:字面值(word),标示字(name),保留字

使用空格tab键 分隔

语句statement:

使用;与newline键(回车)等分隔

块block:

多种:流程控制块/函数块

元字符:容易歧义字符

| ; & ( ) 空格 < > { } * 回车

实验:使用语句的多种形式

1.       分号分隔语句:

命令行输入:ls ; echo “hello”

两个命令都被执行

2.||分隔语句

ls || date

|| 分隔语句两个语句中任意一个语句执行成功就返回

3.&&分隔语句

ls && date

&&分隔语句两个语句其中一个执行失败就终止

4.| 分隔语句:管道

5. & 必须加在语句的最后:后天运行

6. <newline> 必须在语句最后

实验:使用块

(语句列表)

(ls ; date) 或者

(

ls

date

)

{语句列表;}

{ ls;date; } 或者

{

ls;

date;

}

shell的执行:

1.  条件

没有语法错误

文件要具备执行权限

chmod +x *.sh 或 chmod u+x *.sh

或绝对模式: chmod 07777  *.sh

补充:

文件权限   d(文件类型)  rwx rwx  rwx

u   g    o

文件类型(7种):

-         普通文件

d  目录文件

c  字符设备文件

b 块设备文件     /dev/sda1

l 符号链接文件(软连接)

p 管道文件     mkfifo p.pipe

s  socket文件

特殊权限:

粘附位:禁止有读写权限的其他用户删除文件

例子:

p.pipe文件

prw-r—r-- …………….p.pipe

chmod 01777 p.pipe

prwxrwxrwt …………p.pipe   其他用户的最后一的执行权限x变为t  设置了粘附位

chmod 01000 p.pipe

p--------T…………..p.pipe   其他用户权限最后一位变为T

如果其他用户权限的执行权限位为t 表示设置了粘附位和有执行权限。如果其他权限的执行权限位为T 表示只设置粘附位,没有执行权限

用户设置位:其他用户在执行拥有者的执行文件时,其他用户临时拥有拥有者的所有权限。

chmod  04000  设置用户设置为

p—S------……………p.pipe    S表示用户权限没有执行权限,s表示设置了用户设置位,用户也有执行权限

用户设置位作用:设置了用户设置位后,即使有读写权限也不能删除文件

比如: passwd就是通过用户设置位允许任何执行者访问/etc/shadow

组设置位

chmod 02000 设置组设置位

p-----S---………….p.pipe    同理用户设置位

first01.sh

ls

date

chmod +x first01.sh

./first01.sh

执行shell脚本的方式

1.       方式1:

./shell文件:使用当前shell执行解释程序

2.       方式2:

shell程序 ./shell文件

3.       在shell脚本中指定执行shell程序的解释程序

shell程序中 #为注释

在第一行使用:

#!/bin/bash   解释shell程序的程序

问题:程序行与代码行中#!那个优先

结论:命令行优先指定shell程序

命令行没有,则代码中指定优先

都没有,采用命令行的默认shell程序

Linux shell编程02 shell程序的执行 及文件权限的更多相关文章

  1. linux进程编程:子进程创建及执行函数简介

    linux进程编程:子进程创建及执行函数简介 子进程创建及执行函数有三个: (1)fork();(2)exec();(3)system();    下面分别做详细介绍.(1)fork()    函数定 ...

  2. 【Shell编程】Shell程序设计

    1.Shell简介   作为Linux灵感来源的Unix系统最初是没有图形化界面的,所有的任务都是通过命令行来实现的.因此,Unix的命令行系统得到了很大的发展,逐步成为一个功能强大的系统.   Sh ...

  3. (C#)Windows Shell 编程系列1 - 基础,浏览一个文件夹

    原文 (C#)Windows Shell 编程系列1 - 基础,浏览一个文件夹 (本系列文章由柠檬的(lc_mtt)原创,转载请注明出处,谢谢-) Windows Shell 编程,即 Windows ...

  4. 在WINDOWS任务计划程序下执行PHP文件 PHP定时功能的实现

    最近需要做一个定时任务功能,从网站找了很多相关的代码,windows实现方法综合起来大概就两种, 一.使用PHP ignore_user_abort 函数 即使关掉浏览器也能正常运行:(个人感觉PHP ...

  5. Linux下安装配置Jmeter5.1,并执行jmx文件

    Windows下的jmeter是GUI模式,可查看操作,但是GUI对性能的干扰比较大,所有一般压测会在Linux上运行. 下面是Linux下安装配置Jmeter5.1,并执行jmx文件的步骤, 一.安 ...

  6. Nginx禁止目录执行php文件权限

    location ~ /dir/.*.(php|php5)?$ { deny all; } 禁止dir目录执行php文件权限 .csharpcode, .csharpcode pre { font-s ...

  7. shell编程01—shell基础

    01.学习shell编程需要的知识储备 1.vi.vim编辑器的命令,vimrc设置 2.命令基础,100多个命令 3.基础.高端的网络服务,nfs,rsync,inotify,lanmp,sersy ...

  8. Linux操作系统中/sbin/init程序的执行过程

    当init启动后,它通过执行各种启动事务来继续引导进程(检查并监视文件系统,启动后台程序daemons,等等),直至完成用户所有操作环境的设置工作.这里主要涉及4个程序:init.getty(aget ...

  9. linux系统编程----统计一个目录下的普通文件个数

    主要是为了统计linux系统下一个指定目录下面的普通文件个数,运用目录操作的一些函数,配合递归调用来实现该功能. 首先介绍一下函数原型: 打开一个空目录                    DIR ...

随机推荐

  1. PHP常见报错解析

    {错误类型}: {错误原因} in {错误文件} on {错误行数} 说明了在哪个文件的哪一行中因何种原因出现了何种错误. 常见的错误类型一般有下面几种: Parse error(解析错误)一般都伴随 ...

  2. 文件夹65ad47d7-2e27-4a5c-b238-26643fdaeb98

    这几天发现电脑中毒了,本地开的服务预览页面时,页面会被插入Html代码.我用360扫描之后发现有木马病毒(c:\programData有个65ad47d7-2e27-4a5c-b238-26643fd ...

  3. 由mysql数据库基础上的php程序实现单词的查询、删除、更改和查询

    我做了一个php程序,将表单数据添加到数据库,借用mysql扩展库函数实现对mysql数据库的操作,能够实现添加单词.删除单词.更新和查询单词.运行环境是普通的mysql数据库和php.Apache服 ...

  4. c++11 : range-based for loop

    0. 形式 for ( declaration : expression ) statement 0.1 根据标准将会扩展成这样的形式: 1   { 2     auto&& __ra ...

  5. (转)vivoxshot 精英版三模转五模模式切换操作方法

    https://yunpan.cn/cPUBWc8vtKpID (提取码:de92) 本帖最后由 韩爱峰 于 2016-3-29 23:00 编辑 碰到不少机友在使用过程中操作不成功,现将我的方法跟大 ...

  6. Javascript进阶篇——(DOM—认识DOM、ByName、ByTagName)—笔记整理

    认识DOM文档对象模型DOM(Document Object Model)定义访问和处理HTML文档的标准方法.DOM 将HTML文档呈现为带有元素.属性和文本的树结构(节点树). 将HTML代码分解 ...

  7. DTO学习系列之AutoMapper(二)

    本篇目录: Flattening-复杂到简单 Projection-简单到复杂 Configuration Validation-配置验证 Lists and Array-集合和数组 Nested m ...

  8. Lightoj1009 Back to Underworld(带权并查集)

    转载请注明出处: http://www.cnblogs.com/fraud/          ——by fraud Back to Underworld Time Limit:4000MS      ...

  9. ajax请求参数为中文乱码的情况

    解决中文乱码问题的方法有很多. 一.前提是ajax请求传递参数对象到后台,对象中的某个参数的值为中文,到后台之后出现乱码,导致报错.问题解决如下: rest层: 二.在tomcat的server.xm ...

  10. Nutch+Hadoop集群搭建

    转载自:http://www.open-open.com/lib/view/open1328670771405.html 1.Apache Nutch    Apache Nutch是一个用于网络搜索 ...