您的位置:首页 > 运维架构 > Shell

[Linux]Shell快速学习小总结[TBD]

2013-08-01 11:05 323 查看
Shell版本

sh:Bourne Shell,最初UNIX的shell。

csh:C shell。

ksh:Korn shell。

bash:Bourne Again Shell。 Linux默认shell。

tcsh:C shell的扩展。

pdksh:ksh不免费,这个免费。

echo -n "Date and time is:" -n不换行。

echo "your name is: `whoami` " ``会将其中的字符串解释成命令。

shell脚本执行方式

bash< xxx.sh:从xxx.sh中读取命令行并执行。

bash xxx.sh:可带参数。

chmod a+x xxx.sh:使xxx.sh对所有用户有“执行”权限。输入脚本名可以直接执行。

特殊字符

双引号:除$美元, `倒引号, \反斜杠之外,其余都视作普通字符。

单引号:单引号内部的字符都视作普通字符。

倒引号:左上角Esc下面的键,内部字符串被解释为命令。shell先执行,并以其结果代替整个倒引号部分。

反斜杠:把特殊字符变成普通字符,阻止shell把其后面的字符解释为特殊字符。

I/O重定向

输入:<作用是把命令的stdin重定向到指定文件,从文件中读取内容作为输入。

输出:>作用是把命令的stdout重定向到文件,执行的结果写入到文件中。执行多个命令到同一文件,前面命令会被覆盖。

输出附加:>>,附加到文件后面,不会破坏原文件内容。

即时文件:<<, 由"<<",一对标记符及其间的若干输入符组成。允许把shell程序的输入行定向到一个命令中。?????

注释:#开始表示注释。#!后面表示shell的绝对路径。#! /bin/csh #! /bin/bash

管道线:以|隔开的若干命令。每个命令都有独立进程,前一个命令输出作为下一个的输入。

命令执行操作符

顺序执行:可以执行一条命令,也可以执行多条,以“;”分开,前面执行失败不影响后面继续执行。

逻辑与: 命令1&&命令2,命令1成功,继续命令2。否则不继续。执行成功返回0,否则非0。

逻辑或: 命令1 || 命令2,执行1,不成功执行2;否则,1成功,则不执行2。

变量

变量名区分大小写。赋给变量的值如果有空格,制表符或换行,用双引号。同一变量,可以一次存放int,另一次存放string。

通过美元符号访问,如yourname=$myname;

内部变量

$#(传给程序的参数个数,不包括本身)

$?(最后一条命令完成的执行结果)

$0*(自己的名字)

$*(传给程序的所有参数的字符串,不包括本身)

环境变量

HOME:/home/username

LOGNAME:用户的注册名,由Linux自动设置。它是系统与用户交互的名字。

MAIL:用户系统邮箱路径,/var/spool/mail/username

PATH:shell从中查找命令的目录列表。

PS1:定义了用户的主提示符是如何构成的。如\u@\h:\w#对应比如wgsupport@Firebox:~#。[\u@\h \W]\$对应[ryo@t430-lap Documents]$。

PWD:用户当前工作目录的路径。

SHELL:用户当前使用的shell,也指出了用户shell解释程序放在什么地方。

TERM:用户终端类型。

位置参数

shell脚本被别人调用时可以传入参数,第一个$1,第二个$2直到$9。

用set可以设置或重置参数。

当参数大于9时,用shift左移参数。shift移动一个,shift 4移动4个。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: