第二章 shell编程基础

2.1.1 shell脚本的参数

  常用参数

  (1) *  以一个字符串显示所向脚本传递的参数,与位置变量不同,此参数可超过9个

  (2) @ 从参数1开始,显示所有向脚本传递的参数,和上边的*相似,下面会介绍区别

  (3) # 参数数量,不包含参数0

  (4) $ 脚本运行的当前ID号

  (5) ! 后台运行的最后一个ID号

  (6) ? 显示最后命令的退出状态,0表示没有错误,其他任何值表明有错误

  (7) - 显示shell使用的当前选项,与set命令功能相同

  注:① * 和 @ 的区别在于,当加上双引号时,* 输出的是将所有参数当成一个字符串输出也就是"$1 $2 $3"

    而@则是将所有参数一个一个输出,也就是"$1" "$2" "$3"

    ② - 减号的作用,主要用于标准输入与输出中,在管道中应用,可以省去我们创建临时文件的过程

2.1.2 mv 移动或重命名文件或目录

  常用参数

  (1) -f  //如果文件的空间保留或者固定范围大小无法保存,就发出警告

  (2) -i  //在覆盖现有文件之前不提示

2.1.3 mkidr 创建一个或者多个新的目录

  常用参数

  (1) -m 指定文件夹权限大小

2.2.1 I/O重定向

2.2.2 cat 连接或显示文件

  常用参数

  (1) -n  //显示行号

  (2) -b  //显示非空行号

  (3) -s  //有连续两行以上空行,则只显示一行空行,其他省略

  注:①tac 从结束到开头显示文件

    ②不要使用重定向符号>将输出重定向到输入文件之中。因为shell在cat命令可读取该文件之前先将它截断了

2.2.3 | 管道

  管道的数据共享是在内核中通过内存复制实现的,因此,在设计管道时,尽量把能够江苏数据量操作的置于管道前端。

2.2.4 head 显示一个文件或多个文件的前几行或前几个字节

  主要参数

  (1) -n  //指定显示的行数,默认为10

  (2) 后边也可以接多个文件

2.2.5 文件描述符

  此部分有点难啊,,,,

  待以后学习了后在补充吧

2.2.6 特殊文件

  (1) /dev/null  就像一个“黑洞”,垃圾回收站,写进去的文件不可读,可以将不需要的垃圾文件软连接到这个文件上。

  (2) /dev/zero 这要用途是用来创建一个指定长度,并且初始化为空的文件,这种文件一般都用作临时交换文件。

  (3) /dev/tty  写入这个文件的内容可以在屏幕上显示,很常用

    printf"enter new passwd:"  //提示输入

    stty-echo           //关闭自动打印输入字符的功能

    read pass < /dev/tty      //读取密码

    printf"enter again"       //在读一次,确认密码

    read pass2< /dev/tty     //记得重新打开自动打印输入字符功能

    stty echo

2.2.7 read 从标准输入中读取一行。

  主要参数:

    (1) -a 后跟一个变量,该变量会被认为是个数组,然后给其赋值,默认是以空格为分割符。

    (2) -d 后面跟一个标志符,其实只有其后的第一个字符有用,作为结束的标志,会举例说  明。

    (3) -p 后面跟提示信息,即在输入前打印提示信息。

    (4) -e 在输入的时候可以使用命令补全功能。

    (5) -n 后跟一个数字,定义输入文本的长度,很实用。

    (6) -r 屏蔽,如果没有该选项,则作为一个转义字符,有的话 就是个正常的字符了。

    (7) -s 安静模式,在输入字符时不再屏幕上显示,例如login时输入密码。

    (8) -t 后面跟秒数,定义输入字符的等待时间。

    (9) -u 后面跟fd,从文件描述符中读入,该文件描述符可以是exec新开启的。

2.3 一切皆文件

  共有其中文件类型

  (1) -  普通文件

  (2) d 目录文件

  (3) c 字符设备文件

  (4) b 块设备文件

  (5) s 套接口文件

  (6) l 符号链接文件

  (7) 管道文件

  

  

时间: 2024-10-18 07:28:38

第二章 shell编程基础的相关文章

第二章 Shell编程之变量

Shell编程之变量 一 Bash变量与变量分类 Bash是Linux中的标准Shell,因此经常称Bash为Shell. 1. 变量命名规则 变量名可以由字母.数字.下划线组成,但必须以字母与下划线开头: 变量名的长度不能超过255个字符: 变量名在有效范围必须唯一: 在Bash中,变量的默认类型都字符串型: 2. 变量按照存储类型分类 默认类型是字符串型. 字符串型,赋值时单双引号皆可: 整形: 浮点型: 日期型: 二 用户自定义变量 变量名与变量值都是用户自定义的,就是说可以由用户控制修改

shell编程基础一(多种方法求值1+2+..+100)

#SHELL编程基础一(多种方法求值1+2+..+100)##为什么要学好shell shell脚本语言是实现linux系统管理及自动化运维所必备的重要工具,linux系统的底层及基础应用软件的核心大都涉及shell脚本的内容. 每一个合格的linux系统管理员或运维工程师,都需要能够熟练地编写shell脚本语言,并能够阅读系统及各类软件附带的shell脚本内容. 只有这样才能提升运维人员的工作效率,适应日益复杂的工作环境,减少不必要的工作,从而为个人的职场发展奠定较好的基础.# 本文的宗旨是熟

第二章线程同步基础

Java 7 并发编程实战手册目录 代码下载(https://github.com/Wang-Jun-Chao/java-concurrency) 第二章线程同步基础 2.1简介 多个执行线程共享一个资源的情景,是最常见的并发编程情景之一.在并发应用中常常遇到这样的情景:多个线程读或者写相同的数据,或者访问相同的文件或数据库连接. 为了防止这些共享资源可能出现的错误或数据不一致,我们必须实现一些机制来防止这些错误的发生. 为了解决这些问题,引入了临界区(Critical Section)概念,临

第十天:shell编程基础与编写Makefile

一:shell编程基础 shell定义:shell是一个作为用户与linux系统间接口的程序.它允许用户向操作系统输入需要执行的命令.shell有很多中,linux系统中shell为bash. shell编程可以看作是一堆命令的集合.和windows中的bat程序类似的脚本程序.为解释性语言. 第一个shell程序是判断两个数字的大小. 1 #!/bin/bash 2 3 num1=10 4 num2=9 5 6 if test $num1 -gt $num2 7 then 8 echo $nu

Linux学习之二十一-shell编程基础

Shell编程基础 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 既是一种命令语言,又是一种程序设计语言.Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务.Shell 脚本(shell script),是一种为 shell 编写的脚本程序 Shell 编程跟 java.php 编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了 Linux中的shell种类(shell解释器的种类

周期性任务计划,包管理,sed以及shell编程基础

周期性任务计划,包管理,sed以及shell编程基础 1.每12小时备份并压缩/etc/目录至/backup目录中,保存文件名称格式为,"etc-年-月-日-时-分.tar.gz"[[email protected] /]# crontab -e0 /12 /usr/bin/tar -zcf /data/backup/etc-$(date '+%Y-%m-%d--%H-%M').tar.gz /ect/*2.rpm包管理功能总结以及实例应用演示rpm是一个功能十分强大的软件包管理系统,

《The Django Book》实战--第二章--动态网页基础

这章演示了一些最基本的Django开发动态网页的实例,由于版本不一样,我用的是Django 1.,6.3,有些地方按书上的做是不行的,所以又改了一些,写出来让大家参考. 这是一个用python写的一个显示当前时间的网页. 1.开始一个项目. 在命令行中(指定要保存项目代码的盘或文件夹下)输入 python ...\django-admin.py startproject djangobook  (虽然在环境变量Path中加入了django-admin.py的地址,但是在前面还是要加上路径名,不知

第二章 Mablab语言基础

第二章 Mablab语言基础 2.1 Matlab的变量与常量 1) input:x=input(‘please enter a numb’) 2) Inf/inf:正无穷大 3) pi:圆周率 4) 默认保留变量:ans 2.2 Matlab的基本数据结构(1) 1) 修改Curent Folder:修改快捷方式的目标属性 2) 向量=数组 3) 行矩阵a=[1 2 3]或a=[1,2,3];列矩阵b=[1 2 3]'或b=[1;2;3] 4) 内置矩阵函数ones(ones(4):4维全1矩

Java图示(第二章 Java语言基础)

Java图示(第二章 Java语言基础) 三个基本部分:一个包声明(package语句).任意数量的引入(import语句).类和接口声明(class和interface语句) 1.包声明—package语句 1)包是类和接口的集合,即类库 2)用类库管理类,方便管理 3)Java类都在类库中 4)只有一条包声明,且为第一条 2.引入语句—import语句 1)import语句在包语句后,所有类或接口前 2)两种形式 (1)import 包名.类名: (2)import 包名*://编译器会识别