Shell学习笔记,shell脚本学习指南


都是一些零碎的知识,遇到什么写什么吧!

1、shell脚本参数

C用(int *argc, char *argv[])处理参数,python sys.argv[0](脚本名字)、sys.argv[1]、sys.argv[2]等表示各个参数,shell脚本自己处理命令参数的方式如下:

(1) $# 传递到脚本的参数个数,不包括脚本命令本身。如判断参数是否是2个:

 

   #!/bin/bash
   if [ $# != 2 ]; then                                                                                                                   
       echo "Error! should need 2 parameters!"
       exit 1
   fi

 

(2) $0 脚本名字;$1,$2,......依次表示第一个参数,第二个参数,。。。。。。

(3) $* 以一个单字符串显示所有向脚本传递的参数,此选参数可超过9个。如:

若脚本参数为./test.sh arg1 arg2,
则执行echo  $*,
结果为:"arg1 arg2"

 


 

(4) $$ 脚本运行的当前进程ID号。

(5) $! 后台运行的最后一个进程的进程ID号。

(6) $@  与$*相同,但是使用时加引号,并在引号中返回每个参数。如:

 

若脚本参数为./test.sh arg1 arg2,
则执行echo  $*,
结果为:"arg1""arg2"  与#*的差别,每个参数都是一个单独的字符串。

 

(7) $-  显示shell使用的当前选项,与set命令功能相同。(搞不懂)

(8) $?  显示最后命令的退出状态。 0表示没有错误,其他任何值表明有错误。如:

 

ls ./
echo $?
$?为0表示ls命令执行成功。

 

 

2、管道与重定向

管道操作符”|“,输出左边命令传出的正确输出信息,对与stderr信息没有直接处理能力。然后,传递给右边的命令,作为stdin。

要求:

(1) 管道命令只处理前一个命令正确输出,不处理错误输出;

(2) 管道命令右边命令,必须能够接收标准输入流命令才行。如cat test.txt | ls ,ls不支持stdin,左边的数据将被丢弃。

 

$ cat display.sh | ls
call.py     libtest3.so  libtest.so    send_mail_text.py  test3.cpp  test4.cpp
display.sh  libtest4.so  printfile.sh  test2.cpp          test3.so   test.c

重定向:

 

左边命令应该有标准输出  > 或者>>   右边只能是文件

左边命令应该有标准输入  < 或者<<   右边只能是文件

        管道是触发了两个子进程执行"|"两边的程序,而重定向是在一个进程内执行。


3、shell与export
首先要知道用户登录linux系统之后,系统会启动一个用户shell。在该shell下执行shell脚本,会创建一个子shell,子shell可以共享父shell的环境变量,父shell却不能共享定义在子shell中的环境变量。子shell中定义的环境变量只在该子shell中有效。

在shell中执行程序时,shell会提供一组环境变量,export可新增、修改和删除环境变量,供后续执行的程序使用。export设置的变量效用只在该次登录中有效。

语法:export   [-fnp]   [变量名称]=[变量设置值]

参数:

-f代表[变量名称中为]函数名称。

-n删除指定变量,实际上并未删除,只是不会输出到后续指令的执行环境中。

-p列出所有shell赋予程序的环境变量,默认参数。
如:

 

Test@ubuntu:~/code$ export   //等同 export -p
declare -x HOME="/home/Test"
declare -x LANG="zh_CN.UTF-8"
declare -x LANGUAGE="zh_CN:en_AU:en_CA:en_GB:en_NZ:en_US:en"
declare -x LC_ADDRESS="zh_CN.UTF-8"
/*中间省略*/
declare -x TERM="linux"
declare -x USER="Test"
declare -x XDG_RUNTIME_DIR="/run/user/1000"
declare -x XDG_SESSION_ID="1"
</pre><pre name="code" class="plain">Test@ubuntu:~/code$ export mytest="Hi"
<pre name="code" class="plain">Test@ubuntu:~/code$ export 
declare -x HOME="/home/Test"
declare -x LANG="zh_CN.UTF-8"
declare -x LANGUAGE="zh_CN:en_AU:en_CA:en_GB:en_NZ:en_US:en"
declare -x LC_ADDRESS="zh_CN.UTF-8"
/*中间省略*/
declare -x TERM="linux"
declare -x USER="Test"
declare -x XDG_RUNTIME_DIR="/run/user/1000"
declare -x XDG_SESSION_ID="1"
declare -x mytest="Hi"

 


Test@ubuntu:~/code$ export -n mytest
Test@ubuntu:~/code$ export 
declare -x HOME="/home/Test"
declare -x LANG="zh_CN.UTF-8"
declare -x LANGUAGE="zh_CN:en_AU:en_CA:en_GB:en_NZ:en_US:en"
declare -x LC_ADDRESS="zh_CN.UTF-8"
/*中间省略*/
declare -x TERM="linux"
declare -x USER="Test"
declare -x XDG_RUNTIME_DIR="/run/user/1000"
declare -x XDG_SESSION_ID="1"


因为export添加的环境变量是临时有效,要想永久有效就得添加到文件中:

 

 

(1)在/etc/profile文件中添加变量,对所有用户永久有效。例如:
#vi    /etc/profile
export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib
export PATH="$PATH:/home/Test"    //在原PATH变量上添加数据
<span>
 (2)在用户目录下的.bash_profile(该文件在不同的linux系统下,文件名不同,有的是.profile,基本以profile结尾,可以用man bash查询)文件中添加环境变量,对该用户永久有效。用法跟上面相同。   关于source,用法为:source  FileName,作用是在当前bash环境下读取并执行FileName中的命令,该FileName可以没有执行权限。注意该命令中的脚本是在当前bash环境下执行,没有产生子shell,所以脚本添加的变量也能被当前shell所共享,跟直接执行脚本产生子shell不太一样。如同样的脚本Test.sh:
#!/bin/bash
     export mytest="Hi"
 用source Test.sh方式执行,mytest环境变量就可以添加到当前shell环境中,./Test.sh方式直接执行则不能。 另外,source命令常用“.”来代替。source Test.sh与 .  Test.sh等效。






 


对于学习笔记

  如何写语文笔记

  如何写语文笔记

  俗话说,“心记不如带墨”,“眼过千遍不如手写一遍”。老师在课堂上把课讲得再清楚,如果学生不记下来,过些时候也会忘的。记笔记是记忆的扩大和延伸,便于以后复习、查找。越是高等的学习,越是以记为主。学生在课堂上边听课边记笔记,能处于动脑、动手、动耳的最佳学习状态,可抑制“思想溜号”,使注意力高度集中,提高效率,加深印象。记笔记还能提高书写速度,节省时间。老师从小学高年级起就应该教学生写语文笔记。学生从小就学会记语文笔记,能为今后的语文学习和其它各科的学习打下基础,形成自学的能力,养成良好的学习习惯,不但当时受益,而且能终生受用。

  怎样记语文笔记呢?应该把学生的预习笔记、课堂笔记和部分语文作业合起来都写在一个本上,统称“语文笔记”。这样可以化繁为简,既减轻学生的学习负担,又减轻老师的批改负担;既有学生预习情况的检查,又有课堂教学的反馈;还有基础知识的验收。老师批改语文笔记,可收到“一举三得”的效果。

  语文笔记本最好用十六开的“格备课笔记本”,在每页的两边竖着画二道直线,分成三份。左边一份约有两个字宽,记项目用,起目录索引的作用;右边的一份约有一寸宽,做备注用,这部分供学生灵活运用,记些疑难问题、自己的评价、感想、学习方法等,这部分记的内容不要求一致;中间的一份最宽,最重要,学习的内容都记在这一部分。

  准备工作做完以后,接下来就是如何记了。记语文笔记可以分做三个阶段来进行:

  1.课前预习记

  学习新课以前学生要预习,把预习中学会的内容和自己不能解决的问题分别记在语文笔记的中间部分和右边部分。通过查工具书能够解决的字、词等内容都在这时完成,这是语文笔记三个组成部分之一。

  2.课堂听课记

  这是语文笔记中最重要的部分。在语文课上,学生要边听课边记笔记,把新学的内容记在中间栏,把预习中理解不准确的现在得以更正的内容记在右边备注栏。这时有两点要注意:一是不能老师讲,学生听,课后记或老师把要记的内容写在黑板上学生抄;二是学生不能把老师说的话一字不落地都记下来,要在听懂理解的基础上,边听边思维,总结出要点,概括成重点句子或重点词语,然后再写到语文笔记上,只要意思对怎么写都可以。刚着手训练时,教师要把需要记的内容说慢点,长句子和重要之处重复一二遍。要记的关键词、生辟词、同音词和易混、易错的字,教师要板书,防止学生写错。

  3.课后巩固记

  语文课上过以后,学生要整理笔记,课文中已经解决了的疑问要追记,落下部分要补上,心得体会最好是概括地记上,文章中的好词好句也可以凭兴趣摘抄。通过课后的整理和修改,学生对内容的理解加深了,认识得到升华了。课后要记的内容还包括该课书后面的部分练习题,如要抄写的词语,要解释的字、词,要理解的重点句子的含义,填括号,造句等。这样做,每课的内容都集中在语文笔记上,便于知识归类,便于复习查找;学生省得另外再拿本写作业,可把语文笔记当做作业交;老师在批改语文笔记时,不但验收了该课的基础知识,还检查了学生的预习情况和听课情况。在训练过程中,教师要以学生为主,征求学生的意见,不断改进做法,在形式和内容上都不强求一致,这样可培养学生的创造性和求异思维能力。

  语文课堂学习及指导策略
 

怎做学习笔记最有效

一、5R笔记法
5R笔记法,又叫做康乃笔记法,是用产生这种笔记法的大学校名命名的。这一方法几乎适用于一切讲授或阅读课,特别是对于听课笔记,5R笔记法应是最佳首选。这种方法是记与学,思考与运用相结合的有效方法。具体包括以下几个步骤:
1、记录(Record)。在听讲或阅读过程中,在主栏(将笔记本的一页分为左大右小两部分,左侧为主栏,右侧为副栏)内尽量多记有意义的论据、概念等讲课内容。
2、简化(Reduce)。下课以后,尽可能及早将这些论据、概念简明扼要地概括(简化)在回忆栏,即副栏。
3、背诵(Recite)。把主栏遮住,只用回忆栏中的摘记提示,尽量完满地叙述课堂上讲过的内容。
4、思考(Reflect)。将自己的听课随感、意见、经验体会之类的内容,与讲课内容区分开,写在卡片或笔记本的某一单独部分,加上标题和索引,编制成提纲、摘要,分成类目。并随时归档。
5、复习(Review)每周花十分钟左右时间,快速复习笔记,主要是先看回忆栏,适当看主栏。
这种做笔记的方法初用时,可以以一科为例进行训练。在这一科不断熟练的基础上,然后再用于其他科目。
二、符号记录法
符号记录法就是在课本、参考书原文的旁边加上各种符号,如直线、双线、黑点、圆圈、曲线、箭头、红线、蓝线、三角、方框、着重号、惊叹号、问号等等,便于找出重点,加深印象,或提出质疑。什么符号代表什么意思,你可以自己掌握,但最好形成一套比较稳定的符号系统。这种方法比较适合于自学笔记和预习笔记。在操作时你应注意以下一些准则:
1、读完后再做记号。在你还没有把整个段落或有标题的部分读完并停下来思考之前,不要在课本上做记号。在阅读的时候,你要分清作者是在讲一个新的概念,还是只是用不同的词语说明同样的概念,你只有等读完这一段落或部分以后,才能回过头来看出那些重复的内容。这样做可使你不至于抓住那些一眼看上去仿佛很重要的东西。
2、要非常善于选择。你不要一下子在很多项目下划线或草草写上许多项目,这样会使记忆负担过重,并迫使你同一时刻从几个方面来思考问题,也加重你的思维负担。你要少做些记号,但也不要少得使你在复习时又只好将整页内容通读一遍。
3、用自己的话。页边空白处简短的笔记应该用你自己的话来写,这是因为自己的话代表你自己的思想,以后这些话会成为这一页所述概念的一些有力的提示。
4、简洁。在一些虽简短但是有意义的短语下划线,而不要在完整的句子下面划线,页边空白处的笔记要简明扼要。它们会在你的记忆里留下更为深刻的印象。在你背诵和复习的时候用起来更可得心应手。
5、迅速。你不可能一整天的时间都用来做记号。你先要阅读,再回过头来大略地复习一遍,并迅速做下记号,然后学习这一章的下一部分内容。
6、整齐。你作的符号要尽量整齐,而不要胡写乱画,否则会影响你以后的复习和应运。当你以后复习的时候,整齐的记号会鼓励你不断学习,并可以节省时间,因为整齐的记号便于你迅速回忆当初学习时的情景,能使你容易而清楚地领悟书中的思想。
对笔记进行整理、加工的方法是:
1、忆。课后即抓紧时间,趁热打铁,对照书本、笔记,及时回忆有关信息。这是你整理笔记的重要前提。
2、补。课堂上所作的笔记,因为是跟着教师讲课的速度进行的,而讲课速度要比记录速度快一些,所以你的笔记会出现缺漏、跳跃、省略等情况,在忆的基础上,及时作修补,使笔记更完整。
3、改。仔细审阅你的课堂笔记,对错字、错句及其他不够确切的地方进行修改。
4、编。用统一的序号,对笔记内容进行提纲式的、逻辑性的排列,注明号码,梳理好整理笔记的先后顺序。
5、分......余下全文>>
 

相关内容