Linux程序设计-笔记-2020-03-22


第一章-入门
1.  .a 代表传统的静态库函数。
2.  .o 代表共享函数库。
第二章-Shell程序设计(一)
1.重定向输出
    1)文件描述符 0 代表一个程序的标准输入。
    2)文件描述符 1 代表标准输出。
    3)文件描述符 2 代表标准错误输出。
2.管道
    1)管道操作符 |
       在Linux下通过管道连接的进程可以同时运行,并随着数据流在他们之间的传递可以自动进行协调。
3.通配符
    1) * 可以用来匹配一个字符串。
    2) ?可以用来匹配单个字符。
    3) []允许匹配方括号中任意一个单个字符。
    4) [^] 对方括号中的内容取反。
4.exit
    1)exit 命令的作用是确保脚本程序返回一个有意义的退出码。
5.chmod +x 文件命名 
    1)将文件设置为可执行。
6.Shell 语法
    1)变量
       * 在Shell里,使用变量之前通常并不需要事先为它们做出声明。 
       * Linux是一个区分大小写的系统,因此Shell认为变量foo与Foo是不同的。
       * 你可以通过在变量名前加一个$符号来访问它的内容。无论何时你想要获取变量内容,你都必须在它前面加一个$字符
       * 当你为变量赋值时,你只需要使用变量名,该变量会根据需要被自动创建
       * 在默认情况下,所有标量都被看作字符串并以字符串来存储,即使它们被赋值为数值时也是如此。
    2)read 
       * 你可以使用read命令将用户的输入赋值给一个变量
    3)使用引号
       * 如果你箱子啊一个参数中包含一个或多个空白字符(例如,一个空格、一个制表符或者一个换行符),你就必须给参数加上引号。
       * 如果你把一个$变量表达式放在双引号中,程序执行到这一行时就会把变量替换为它的值。
       * 如果你把它放在单引号中,就不会发生替换现象。
       * 字符串通常都被放在双引号中,以防止变量被空白字符分开,同时又允许$扩展。
    4)环境变量
       * $HOME          当前用户的家目录
       * $PATH          以冒号分隔的用来搜索命令的目录列表
       * $PS1           见书P25页这个基本不常用
       * $IFS           见书P25页这个基本不常用
       * $0             shell脚本的名字
       * $#             传递给脚本的参数个数
       * $$             shell脚本的进程号
    5)参数变量
       * $1 $2 ...      脚本程序的参数
       * $*             在一个变量中列出所有的参数,各个参数之间用环境变量IFS中的第一
       个字符分隔。
       * $@             它是$*的一种变体,它不使用IFS环境变量,所以即使IFS为空,参数也不会挤在一起。
    6)test或[命令
       * 为了增强可度性,当使用[命令时,我们还是使用符号]来结尾。
       * 检查一个文件是否存在
         if test -f fred.c
         then
         ...
         fi
         
         if [ -f fred.c ]
         then
         ...
         fi
        * test 命令使用的条件类型可以归为3类
           字符串比较
           算术比较
           与文件有关的条件测试
           一、字符串比较 
           string1 = string2    如果两个字符串相同则结果为真
           string1 != stirng2   如果两个字符串不同则结果为假
           -n string            如果字符串不为空则结果为真
           -z string            如果字符串为null(一个空串)则结果为真                  
           二、算术比较
           exp1 -eq exp2        如果两个表达式相等则结果为真
           exp1 -ne exp2        如果两个表达式不等则结果为假
           exp1 -gt exp2         如果exp1 大于 exp2 则结果为真
           exp1 -ge exp2        如果exp1 大于等于 exp2 则结果为真
           exp1 -lt exp2          如果exp1 小于 exp2 则结果为真
           exp1 -le exp2         如果exp1 小于等于 exp2 则结果为真
           !exp                 如果表达式为假则结果为真,反之亦然
           三、文件条件测试
           -d file              如果文件是一个目录则结果为真
           -e file              如果文件存在则结果为真 不可移植 通常使用-f
           -f file               如果文件是一个普通文件则结果为真
           -g file              如果文件的 set-group-id 位被设置则结果为真
           -r file               如果文件可读则结果为真
           -u file              如果文件的 set-user-id位被设置则结果为真
           -w file              如果文件可写则结果为真
           -x file               如果文件可执行则结果为真
    7)控制结构
        * if 语句
            if condition
            then
                statements
            else
                statements
            fi
        * elif 语句
            if condition1
            then 
                statements
            elif condition2
                statements
            else
                statements
            fi
        * for 语句
            for variable in values
            do
                statements
            done
        * while 语句
            while condition; do
                statements
            done
        * until 语句
            until condition
            do
                statements
            done
            当 condition 为真时循环结束
        * case 语句
            case variable in
                pattern [ | pattern ] ... ) statements ;;
                pattern [ | pattern ] ... ) statements ;;
                ...
            esac
        * AND 列表
            statement1 && statement2 && statement3 && ...
            从左开始顺序执行每一条命令,如果一条命令返回的结果为true,它右边的下条命令才能够
            执行。如果持续直到有一条命令返回false,或者列表中的所以命令都执行完毕。&& 的作用
            是检查前一条命令的返回值
        * OR 列表
            statement1 ||b statement2 || statement3 || ...
        * 语句块
            如果你想在某些只允许使用单个语句的地方 使用多条语句,你可以把它们扩在花括号{}中来
            构造一个语句块

未完待续......
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

熊猫Devin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值