登录  | 加入社区

黑狼游客您好!登录后享受更多精彩

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

查看: 582|回复: 0

shell常用命令

[复制链接]

 成长值: 35920

8169

主题

7094

帖子

6831

现金

黑狼创办人

Rank: 12Rank: 12Rank: 12

积分
6831
发表于 2017-10-20 02:05:25 | 显示全部楼层 |阅读模式 来自 美国


查看环境变量
名词解析

  • 环境变量:对整个bash环境都生效的变量
  • 自定义变量:只对当前bash环境生效 对子程序就无效 exprt命令 使得自定义变量对子程序也生效(对父程序无效的!!)
1.2.env 查看环境变量
3.
4.set查看自定义变量
5.
6.exprt 查看当前用exprt声明的自定义变量
7.
8.declare 声明变量类型(如: declare -r field 声明field为只读类型 )
9.
10.alias 查看所有别名
11.
12.histry 查看历史命令
13.
14. * !num 执行第n次的历史命令
15.
16. * !cmmand 执行向上搜索到的第一个cmmand命令
17.
18. * !!执行上一个名琳
19.
特殊的环境变量
1.2.PS1: 命令前面的提示符
3.
4.$: 当前shell的pid
5.
6.?: 上个命令的的执行结果码
7.
8.
9.
PS1 格式
1.2. \d :可显示出『星期 月 日』的日期格式,如:"Mn Feb 2"
3.
4.\H :完整的主机名。丼例杢说,鸟哥的练习机为『 www.vbird.tsai』
5.
6.\h :仅叏主机名在第一个小数点乊前的名字,如鸟哥主机则为『 www』后面省略
7.
8.\t :显示时间,为 24 小时格式的『 HH:MM:SS』
9.
10.\T :显示时间,为 12 小时格式的『 HH:MM:SS』
11.
12.\A :显示时间,为 24 小时格式的『 HH:MM』
13.
14.\@ :显示时间,为 12 小时格式的『 am/pm』样式
15.
16.\u :目前使用者的账号名称,如『 rt』;
17.
18.\v :BASH 的版本信息,如鸟哥的测试主板本为 3.2.25(1),仅叏『 3.2』显示
19.
20.\w :完整的工作目录名称,由根目录写起的目录名称。但家目录会以 ~ 叏代;
21.
22.\W :刟用 basename 凼数叏得工作目录名称,所以仅会列出最后一个目录名。
23.
24.\# :下达的第几个挃令。
25.
26.\$ :提示字符,如果是 rt 时,提示字符为 # ,否则就是 $ 啰~
27.


字符串操作
1.2.**!!** 注意: 关键词必须表示一个部分必须带有* 而不能是一个具体的字符串!!
3.
4.${field#关键词} 从前删除最小匹配关键词的部分
5.
6.${field##关键词} 从前删除最大匹配关键词的部分
7.
8.${field%关键词} 从后删除
9.
10.${field%%关键词} 从后删除
11.
12.
13.
14.${field/旧字符串/新字符串} 最小替换
15.
16.${field//旧字符串/新字符串}最大替换
17.
1.2.
3.${var} 变量本来的值
4.${var:-wrd} 如果变量 var 为空或已被删除(unset),那么返回 wrd,但不改变 var 的值。
5.${var:=wrd} 如果变量 var 为空或已被删除(unset),那么返回 wrd,并将 var 的值设置为 wrd。
6.${var:?message} 如果变量 var 为空或已被删除(unset),那么将消息 message 送到标准错误输出,可以用来检测变量 var 是否可以被正常赋值。
7.若此替换出现在Shell脚本中,那么脚本将停止运行。
8.${var:+wrd} 如果变量 var已经声明或者有值,那么返回 wrd,但不改变 var 的值。
9.如果去掉: 则去掉var值为空的情况
10.
11.如 ${var-wrd}:如果变量已被删除(unset),那么返回 wrd,但不改变 var 的值。
12.


shell 条件测试
文件类型判断
1.2.
3. -e 该『档名』是否存在?(常用)
4.
5. -f 该『档名』是否存在且为档案(file)?(常用)
6.
7. -d 该『文件名』是否存在且为目录(directry)?(常用) -b 该『档名』是否存在且为一个 blck device 装置?
8.
9. -c 该『档名』是否存在且为一个 装置?
10.
11. -S 该『档名』是否存在且为一个 Scket 档案?
12.
13. -p 该『档名』是否存在且为一个 FIF (pipe) 档案?
14.
15. -L 该『档名』是否存在且为一个连结档?
16.
文件的权限检测
1.2.
3. -r 侦测该档名是否存在且具有『可读』的权限?
4.
5.  -w 侦测该档名是否存在且具有『可写』的权限?
6.
7.  -x 侦测该档名是否存在且具有『可执行』的权限?
8.
9.  -u 侦测该文件名是否存在且具有『SUID』的属性?
10.
11.  -g 侦测该文件名是否存在且具有『SGID』的属性?
12.
13.  -k 侦测该文件名是否存在且具有『Sticky bit』的属性?
14.
15.  -s 侦测该档名是否存在且为『非空白档案』?
16.
17.
18.
19.
两个文档之间的比较
1.2.
3.  -nt (newer than)判断 file1 是否比 file2 新
4.
5.  -t (lder than)判断 file1 是否比 file2 旧
6.
7.  -ef 判断 file1 和file2 是否为同一档案,可用在判断 hard link 的判定上。
8.
字符串的算术比较
1.2.
3. -eq 两数值相等 (equal)
4.
5.  -ne 两数值不等 (nt equal)
6.
7.  -gt n1 大于 n2 (greater than)
8.
9.  -lt n1 小于 n2 (less than)
10.
11.  -ge n1 大于等于 n2 (greater than r equal)
12.
13.  -le n1 小于等于 n2 (less than r equal)
14.
判定字符串的数据
1.2.
3.  -z string 判定字符串是否为 0 ?若 string 为空字符串,则为 true
4.
5.  -n string 判定字符串是否非为 0 ?若 string 为空字符串,则为 false。注: -n 亦可省略
6.
7.  str1 = str2 判定 str1 是否等于 str2 ,若相等,则回传 true
8.
9.  str1 != str2 判定 str1 是否不等于 str2 ,若相等,则回传 false
10.
11.
12.
login shell的初始化流程
通配符介绍
1.2.
3.* 代表『0 个刡无穷多个』任意字符
4.
5.? 代表『一定有一个』任意字符
6.
7.[ ] 同样代表『一定有一个在括号内』的字符(非任意字符)。例如 [abcd] 代表『一定有一个字
8.
9.符, 可能是 a, b, c, d 这四个任何一个』
10.
11.[ - ] 若有减号在中括号内时,代表『在编码顺序内的所有字符』。例如 [0-9] 代表 0 到9 之间
12.
13.的所有数字,因为数字的诧系编码是连续的!
14.
15.[^ ]若中括号内的第一个字符为指数符号 (^) ,那表示『反向选择』,例如 [^abc] 代表 一定
16.
17.有一个字符,只要是非 a, b, c 的其他字符就接受的意思。
18.
&&和||
1.2.command1 && command2 || command3 =
3.
4.if(comand){
5.
6. command2;
7.
8.}else
9.
10. command3;
11.




上一篇:钩花“Shell”,奇怪的名字,好看的花样
下一篇:linux shell脚本编程各种语法汇总
您需要登录后才可以回帖 登录 | 加入社区

本版积分规则

 

QQ|申请友链|小黑屋|手机版|Hlshell Inc. ( 豫ICP备16002110号-5 )

GMT+8, 2024-5-14 07:37 , Processed in 0.182498 second(s), 44 queries .

HLShell有权修改版权声明内容,如有任何爭議,HLShell將保留最終決定權!

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表