16
2018
09

分析signal函数的原型声明void (*signal(int sig,void (*func)(int)))(int)

在ANSI标准中,signal()的声明如下:
     void (*signal(int sig,void (*func)(int)))(int)


signal是一个函数:
     1.它返回一个函数指针void (*p) (int)
     2.它的两个参数是一个是int和一个函数指针void (*p) (int)

下面用typedef进行简化:
      typedef void(*ptr_to_func)(int);
      ptr_to_func signal(int,ptr_to_func);

这样看起来就很好理解啦

16
2018
09

(傻瓜式教程亲测可用)使用AWS ec2搭建PPTP VPN服务器


前面的购买AWS ec2的教程参考:(傻瓜式教程亲测可用)使用AWS ec2搭建L2TP/IPsec VPN服务器(点击即可进入)

本人亲测,日本的网速最快,所以建议选择日本的ec2

以下都是我亲测可用的,如果不懂得可以留言(我手机只能用L2TP,电脑却只能用PPTP,所以就两个服务都搭建了)。

15
2018
09

Shell 流程控制 if else for循环 while语句 无限循环 until循环 case 跳出循环break命令continue esac

和Java、PHP等语言不一样,sh的流程控制不可为空,如(以下为PHP流程控制写法):

<?php if (isset($_GET["q"])) {     
          search(q); 
} 
else {     
     // 不做任何事情
 }

在sh/bash里可不能这么写,如果else分支没有语句执行,就不要写这个else,就像这样

14
2018
09

Shell test命令,数值测试,字符串测试,文件测试

Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。


数值测试

参数说明
-eq等于则为真
-ne不等于则为真
-gt大于则为真
-ge大于等于则为真
-lt小于则为真
-le小于等于则为真
14
2018
09

Shell printf 命令

上一章节我们学习了 Shell 的 echo 命令,本章节我们来学习 Shell 的另一个输出命令 printf。

printf 命令模仿 C 程序库(library)里的 printf() 程序。

标准所定义,因此使用printf的脚本比使用echo移植性好。

printf 使用引用文本或空格分隔的参数,外面可以在printf中使用格式化字符串,还可以制定字符串的宽度、左右对齐方式等。默认printf不会像 echo 自动添加换行符,我们可以手动添加 \n。

printf 命令的语法:

printf  format-string  [arguments...]

参数说明:

  • format-string: 为格式控制字符串

  • arguments: 为参数列表。

14
2018
09

Shell echo命令

Shell 的 echo 指令与 PHP 的 echo 指令类似,都是用于字符串的输出。命令格式:

echo string

您可以使用echo实现更复杂的输出格式控制。


13
2018
09

我是懒猪

我忘记打卡几天了。。。。。。。。。。。。。。。
13
2018
09

shell文件测试运算符-b -c - d -f -g -k -p -u -r -w -x -s -e +file文件名的介绍和使用

文件测试运算符用于检测 Unix 文件的各种属性。

属性检测描述如下:

操作符说明举例
-b file检测文件是否是块设备文件,如果是,则返回 true。[ -b $file ] 返回 false。
-c file检测文件是否是字符设备文件,如果是,则返回 true。[ -c $file ] 返回 false。
-d file检测文件是否是目录,如果是,则返回 true。[ -d $file ] 返回 false。
-f file检测文件是否是普通文件(既不是目录,也不是设备文件),如果是,则返回 true。[ -f $file ] 返回 true。
-g file检测文件是否设置了 SGID 位,如果是,则返回 true。[ -g $file ] 返回 false。
-k file检测文件是否设置了粘着位(Sticky Bit),如果是,则返回 true。[ -k $file ] 返回 false。
-p file检测文件是否是有名管道,如果是,则返回 true。[ -p $file ] 返回 false。
-u file检测文件是否设置了 SUID 位,如果是,则返回 true。[ -u $file ] 返回 false。
-r file检测文件是否可读,如果是,则返回 true。[ -r $file ] 返回 true。
-w file检测文件是否可写,如果是,则返回 true。[ -w $file ] 返回 true。
-x file检测文件是否可执行,如果是,则返回 true。[ -x $file ] 返回 true。
-s file检测文件是否为空(文件大小是否大于0),不为空返回 true。[ -s $file ] 返回 true。
-e file检测文件(包括目录)是否存在,如果是,则返回 true。[ -e $file ] 返回 true。


13
2018
09

shell字符串运算符= != -z -n str的介绍和使用

下表列出了常用的字符串运算符,假定变量 a 为 "abc",变量 b 为 "efg":

运算符说明举例
=检测两个字符串是否相等,相等返回 true。[ $a = $b ] 返回 false。
!=检测两个字符串是否相等,不相等返回 true。[ $a != $b ] 返回 true。
-z检测字符串长度是否为0,为0返回 true。[ -z $a ] 返回 false。
-n检测字符串长度是否为0,不为0返回 true。[ -n $a ] 返回 true。
str检测字符串是否为空,不为空返回 true。[ $a ] 返回 true。


13
2018
09

shell逻辑运算符&& ||的介绍和使用

以下介绍 Shell 的逻辑运算符,假定变量 a 为 10,变量 b 为 20:

运算符说明举例
&&逻辑的 AND[[ $a -lt 100 && $b -gt 100 ]] 返回 false
||逻辑的 OR[[ $a -lt 100 || $b -gt 100 ]] 返回 true