shell 编程

2019-04-01  本文已影响0人  赛亚人之神

回顾:

文件管理、用户管理、权限管理、bash基础特性

1. 文件管理:cp, mv, rm
2. 用户管理:
    useradd, usermod, chfn, chsh, chage, userdel
    groupadd, groupmod, groupdel
    passwd, gpasswd, pwck
    id, finger, who, whoami, w
    su
    配置文件:/etc/passwd, /etc/shadow, /etc/group, /etc/gshadow
3. 权限管理:
    chmod
    chown
    chgrp
      -R, --reference=RFILE

    FILE: 666 - umask
    DIR: 777 -umask
    
    umask [UMASK]

4. bash基础特性
    命令行展开:~, {}
    命令别名:alias/unalias
    命令和路径补全
    命令历史:history
    glob:?, *, [], [^]
    快捷键:Ctrl + [a,e,l,c,u,k]
    命令hash: hash

bash 的基础特性(3)

1. 提供了编程环境
  程序:指令 + 数据

  程序编程风格:
    过程式:以指令为中心,数据服务于指令
    对象式:以数据为中心,指令服务于数据

shell 脚本:就是文本文件(必须遵循特性格式 - 第一行必须顶格写执行这个 shell 的解释器路径)
  #!/bin/bash
  #!/usr/bin/python
  #!/usr/bin/perl

  magic number: 魔数(程序的特征码,例如window的exe程序和linux的elf程序魔数就是不相同的)

  运行脚本:
    1. 给予执行权限,通过具体的文本路径指定文件执行(否则当成命令,去 $PATH 路径下去查找该命令)
    2. 直接运行解释器,将脚本作为解释器的参数运行

变量:
  命名的内存空间:
  
  数据存储方式:ASCII
    字符:110,24bit(一个字符占8bit)
    数值:110,8bit(2^8)

  变量:变量类型
    作用:
      1. 数据储存格式
      2. 参与的运算(能够参与的运算)
      3. 表示的数据范围

  编程程序语言:
    强类型:
    弱类型:bash
      把所有要存储的数据通通当做字符进行,不支持浮点数

  运算:&&,||,!,异或(相同为假,不同为真)
  短路运算:
    与:
      第一个为0,结果必定为0
      第一个为1,第二个必须参与运算
    或:
      第一个为1,结果必定为1
      第一个为0,第二个必须参与运算

    例子:判断用户是否存在?存在则输出 exist,否则输出 no such a user;
      id username &> /dev/null && echo 'exist' || echo 'no such a user'
上一篇下一篇

猜你喜欢

热点阅读