LInux shell入门 --- 基础

hanjinping 2012-03-20

linuxshell中"2>&1"含义

脚本:nohup/mnt/Nand3/H2000G>/dev/null2>&1&

对于&1更准确的说应该是文件描述符1,而1一般代表的就是STDOUT_FILENO,实际上这个操作就是一个dup2(2)调用.他标准输出到all_result,然后复制标准输出到文件描述符2(STDERR_FILENO),其后果就是文件描述符1和2指向同一个文件表项,也可以说错误的输出被合并了.其中0表示键盘输入1表示屏幕输出2表示错误输出.把标准出错重定向到标准输出,然后扔到/DEV/NULL下面去。通俗的说,就是把所有标准输出和标准出错都扔到垃圾桶里面。

LinuxShellScriptingTutorial(ABeginner’shandbook)

LinuxShellScriptingTutorial(LSST)v1.05r3

QuickIntroductiontoLinux

Shell是用来交互的用户程序或者环境,是一个从标准输入(键盘)或者文件中执行命令的命令行语言解释程序。它不是系统内核的一部分,它使用系统内核来执行程序,创建文件等。

$cat/etc/shells(查看系统支持的所有shell)

echo$SHELL(查看当前正在使用的Shell)

Shell内置变量:

echo$?(查看执行Shell命令后的退出状态0代表成功,非0代表有问题)

echo$#(查看Shell的参数个数)

echo$*(查看Shell的所有参数)

echo$@(查看Shell的所有参数)

echo$$(查看Shell的PID)

echo&$!(查看上一个启动的后台进程的PID)

echo$0(ShellScript的文件名称)

echo$n(ShellScript的第n个参数)

系统变量:默认大写,用户自定义变量:默认小写

用户自定义变量:变量名=变量值

变量名规则:

echo命令:用来显示文本或者变量的值

Shell运算:exprop1math-operatorop2

双引号”、单引号’、左引号`(Backquote,居于键盘的左上角和~在同一个键位、执行命令的作用,eg:echo"Todayis`date`")

退出状态

readvariable1variable2...variableN从键盘中得到用户输入的数据并保存的相应变量中(多个变量用空格隔开)

command1;command2多个命令一起执行

输入输出重定向

>,把命令或者脚本执行结果输出到文件,如果文件已经存在,那么覆盖

>>,把命令或者脚本执行结果输出到文件末尾,不会覆盖原有信息

<,Linux-command<filename,从文件而不是键盘中得到输入参数

管道|,前一个命令的输出作为后一个命令的输入ls|more

$tail+20<hotel.txt|head-n30>hlist

&后台进程符号,单一个&符号,且放在完整指令列的最后端,即表示将该指令列放入后台中工作。

ShellScript:是保存在纯文本文件中的一系列命令,类似与MS-DOS下的批处理文件,但是比批处理文件更加强大。

编写Shell脚本:

1,使用文本编辑器vi、mcedit来编写shellsrcipt

2,chmod授权

3,执行bashyour-script-name、shyour-script-name、./your-script-name、.command-name

4,注意:./代表当前目录,只有一个.的时候代表在当前的shell环境下执行脚本

相关推荐