shell:Linux中,用户可以通过shell跟计算机打交道,shell也是一个应用程序,而且可以用的shell有很多种。shell也是可以嵌套的。

例如:/bin/sh,/bin/bash,/sbin/nologin,/bin/tcsh,/bin/cash,/bin/ksh等。

  • shell的应用场景:

        1、用户可以交互式地执行命令;

        2、提供脚本编程环境,自动化地执行命令;

  • shell的特点:

        1、shell下的命令格式:command options arguments

        2、shell识别大小写,如果找不到你输入的命令会显示反馈信息:“Command not Found”。且如果命令太长,要在第一行行尾键入“\”字符,并按下Enter键,在下一行的“>”后可以接着输入。

        3、shell下的快捷方式:

           ctrl+c:停止命令;

           ctrl+d:结束传输或文件;

           ctrl+s:临时停止输出;

           ctrl+q:恢复输出;

           ctrl+u:擦出整行;

        4、shell命令补齐功能:当键入的字符足以确定目录中一个唯一的文件时,只须按Tab键就可以自动补齐该文件名的剩下部分。      

  • bash不支持浮点型。    
  • 编译型语言:程序在执行之前,需要一个专门的编译过程,生成二进制文档,运行时直接使用,执行效率高,例如:C语言等。
  • 解释型语言:程序事先不需要编译,运行的过程中,边编译边执行,因此,执行效率低,例如:各类脚本语言。
  • 静态语言:是指需要进行变量/对象类型声明的语言,是编译型语言。
  • 动态语言:是指不需要进行变量/对象类型声明的语言,是解释型语言。
  • perl语言:

摘自维基百科

         perl语言的理念,There's More Than One Way To Do It.(不只一种方法来做这件事。)

         perl语言的优点:Perl语言直接提供泛型变量、动态数组、Hash表等更加便捷的编程元素。Perl具有动态语言的强大灵活的特性,并且还从C/C++、Basic、Pascal等语言中分别借鉴了语法规则,从而提供了许多冗余语法。使得程序员可以忽略计算机内部资料存储、类型、处理方法、运算规则、甚至内存越界等等的细节,而将思考中心放在所需要的程序逻辑上。可以说,在统一变量类型和掩盖运算细节方面,Perl做得比Python为出色。

         perl语言的缺点:由于由于从其他语言大量借鉴了语法,使得从其他编程语言转到Perl语言的程序员可以迅速上手写程序并完成任务,这使得Perl语言是一门容易用的语言。但问题是这样写出来的“类xx语言”的Perl程序对不熟悉这种语言的程序员却如同天书,这使perl语言易写不易读。

  • python语言:

摘自维基百科

         Python开发者的哲学是“用一种方法,最好是只有一种方法來做一件事”。在设计Python语言时,如果面临多种选择,Python开发者一般会拒绝花哨的语法,而选择明确的没有或者很少有歧义的语法。由于这种设计理念的差异,Python原始码通常被认为比Perl具有更好的可读性,并且能够支撑大规模的软件开发。

  • 变量:命名的内存空间。

      1、在linux中,变量被引用的时候必须加上特殊符“$”,例如:$A或者${A}。

      2、变量的生命周期,只存在于当前登录的shell,退出后变量无效。

      3、使用# set 命令,可以查看当前所有已声明的变量。

      4、# unset 命令,手动撤销某个变量。

      5、# export 或者# printenv 命令,查看当前所有的环境变量。

      6、变量名只能包含字母、数字和下划线,且只能以字母或下划线开头。在命名变量的时候,尽可能避开系统已用变量名。

      7、变量命名的时候,风格最好一致。

      8、变量替换,即用变量值替换变量名。如果用“”,即弱引用,变量替换会进行;而用‘’,即强引用,变量替换不会进行。

      9、声明在配置文件中的变量,会跨越shell的生命周期而有效。即退出当前登录shell后,变量仍然有效。

     bash中的变量类型:

          1、本地变量和局部变量,有效范围只针对当前shell,对子shell和其他shell都无效。

          2、环境变量,用“# export 变量名”或者“# declare -x 变量名”来导出。环境变量对全局有效。例如,# export 变量名=value,为初始化环境变量,如果变量已有值,则只需导出即可。

          3、位置变量,使用位置来引用变量。

          4、特殊变量。

                  例如,$? ,表示借用上一个命令的最后一个参数的值。

                        PS1,命令行的一级提示符,PS1的格式可以使用# man bash 来查看。

                        PS2,命令行的二级提示符,例如>;

                        SECONDS,指当前shell开始后所流逝的秒数。

  • declare命令的使用:

            # declare -x 变量名,导出环境变量。

            # declare -i 变量名,声明整型变量,默认情况下是字符串型的。

            # declare -a 数组名,声明一个数组。

  • bash 的算术运算:

1)eg: 使用 # let 算术表达式 

# let A=3+9 

# echo $A

2)eg:使用 $[算术表达式]

3)eg:使用 $((算术表达式))

  • 语句间的逻辑操作

       &&运算:两个语句与与运算,语句1&&语句2

       ||运算:两个语句与与运算,语句1&&语句2

       !运算:!语句