LInux shell入门 --- 基础

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

Linux Shell Scripting Tutorial(A Beginner’s handbook)
Linux Shell Scripting Tutorial (LSST) v1.05r3

Quick Introduction to Linux
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(Shell Script的文件名称)
echo $n(Shell Script的第n个参数)

系统变量:默认大写,用户自定义变量:默认小写
用户自定义变量:变量名=变量值
变量名规则:
echo命令:用来显示文本或者变量的值
Shell运算:expr op1 math-operator op2

双引号”、单引号’、 左引号`(Back quote,居于键盘的左上角和~在同一个键位、执行命令的作用,eg:echo "Today is `date`")
退出状态
read variable1 variable2...variableN 从键盘中得到用户输入的数据并保存的相应变量中(多个变量用空格隔开)
command1;command2 多个命令一起执行
输入输出重定向
>,把命令或者脚本执行结果输出到文件,如果文件已经存在,那么覆盖
>>,把命令或者脚本执行结果输出到文件末尾,不会覆盖原有信息
<,Linux-command < filename,从文件而不是键盘中得到输入参数
管道|,前一个命令的输出作为后一个命令的输入ls | more
$ tail +20 < hotel.txt | head -n30 >hlist
& 后台进程符号,单一个& 符号,且放在完整指令列的最后端,即表示将该指令列放入后台中工作。

Shell Script:是保存在纯文本文件中的一系列命令,类似与MS-DOS下的批处理文件,但是比批处理文件更加强大。
编写Shell脚本:
1,使用文本编辑器vi、mcedit来编写shell srcipt
2,chmod授权
3,执行bash your-script-name、sh your-script-name、./your-script-name、. command-name
4, 注意:./代表当前目录,只有一个.的时候代表在当前的shell环境下执行脚本

猜你喜欢

转载自desert3.iteye.com/blog/1458623