linux命令/Shell学习
1、patch 命令用于打补丁
常使用的 patch 参数:
-p 指定目录级别(从路径全称中除去几层目录)
如,如果补丁文件包含路径名称 /curds/whey/src/blurfl/blurfl.c,那么:
-p0 使用完整路径名
-p1 除去前导斜杠,留下 curds/whey/src/blurfl/blurfl.c。
-p4 除去前导斜杠和前三个目录,留下 blurfl/blurfl.c。
2、Shell十三问中第12问
comd1 && { comd2 comd3 : } || { comd4 comd5 }
作者说:
意思是說:
假如 comd1 的 return value 為 true 的話,
然則執行 comd2 與 comd3 ,
否則執行 comd4 與 comd5 。
但是事实并非如此,应该是
假如 comd1 的 return value 為 true 的話,則執行 comd2 與 comd3 ,假如 comd2 與 comd3也为真,则不需要执行comd4 與 comd5 ;否则执行comd4 與 comd5
假如comd1 的 return value 為 false的話,执行comd4 與 comd5
3、shell里面0为真
用0来表示成功,非0表示失败是因为成功往往只有一种情况,而失败则有N种不同的理由。
而成功为真符合一般的逻辑思维。
if/while/until测试的是执行某个命令的返回值:执行成功,返回“0”,条件为真;执行失败,返回“非0”,条件为假。
反正,千万不要把返回值理解为“条件的真假”,这根本就是俩码事儿。
4、Shell里面的判断
参考http://www.w3cschool.cc/linux/linux-shell-test.html
数值测试
| eq | 等于则为真 |
| -ne | 不等于则为真 |
| -gt | 大于则为真 |
| -ge | 大于等于则为真 |
| -lt | 小于则为真 |
| -le | 小于等于则为真 |
字符串测试
| = | 等于则为真 |
| != | 不相等则为真 |
| -z 字符串 | 字符串长度伪则为真 |
| -n 字符串 | 字符串长度不伪则为真 |
文件测试
| -e 文件名 | 如果文件存在则为真 |
| -r 文件名 | 如果文件存在且可读则为真 |
| -w 文件名 | 如果文件存在且可写则为真 |
| -x 文件名 | 如果文件存在且可执行则为真 |
| -s 文件名 | 如果文件存在且至少有一个字符则为真 |
| -d 文件名 | 如果文件存在且为目录则为真 |
| -f 文件名 | 如果文件存在且为普通文件则为真 |
| -c 文件名 | 如果文件存在且为字符型特殊文件则为真 |
| -b 文件名 | 如果文件存在且为块特殊文件则为真 |
查看linux文件权限
$ ls -l sobsrc. tgz
-rw-r--r-- 1 root root 483997 Ju1 l5 17:3l sobsrc. tgz
横线代表空许可。r代表只读,w代表写,x代表可执行。注意这里共有10个位置。第一个字符指定了文件类型。在通常意义上,一个目录也是一个文件。如果第一个字符是横线,表示是一个非目录的文件。如果是d,表示是一个目录。
例如:
- rw- r-- r--
普通文件 文件主 组用户 其他用户

浙公网安备 33010602011771号