Linux之Ubuntu之命令之知识点1

注释:被包含在【】内的命令是实际在终端中输入的命令,所有操作都在root权限下,被包含在〖〗中的不是命令,而是一种格式说明,语法说明。

Start:

shell编程:

Shell(壳)是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。它接收用户命令,然后调用相应的应用程序。同时它又是一种程序设计语言,shell是脚本语言。

这里主要讲bash,shell有许多种,bash是shell的一种,是linux上指定的shell的标准脚本。shell语法更倾向于C语言。

sh temp执行temp文件里面的脚本

./temp执行temp文件里面的脚本

【echo $var】☞使用echo命令取出变量名为var的值

【s=4】☞给变量赋值,等号=两边不得有空格。

【s=‘4’】☞给变量赋值,等号=两边不得有空格。

【s=“4”】给变量赋值,等号=两边不得有空格。

【s=$var】☞给变量赋值,等号=两边不得有空格,var是一个变量名。

【s=“Mike Ron”】☞给变量赋值,值里面有空格符必须用双引号或单引号括起来,等号=两边不得有空格。

【s=‘Mike Ron’】☞给变量赋值,值里面有空格符必须用双引号或单引号括起来,等号=两边不得有空格。

【ABC=‘$s Junior’】☞ABC的值为$s Junior。

【ABC="$s Junio"】☞ABC的值为Mike Ron Junior。

【unset var】☞删除变量

Shell解释执行用户命令时,将命令行的第一个部分当做命令名,其它剩余部分作为参数。由出现在命令行上的位置确定的参数称为位置参数。

【$*】☞这个程序的所有参数

【$#】☞这个程序的位置参数个数,不包含$0,即执行文件本身,因为$0就是命令中的文件名本身。

【$$】☞这个程序的PID

【$!】☞执行上一个后台命令的PID

【$?】☞执行上一个命令的返回值

【read var】☞从键盘读入数据,放到变量var中。

【read var1 var2 var3 】☞从键盘读入数据时,用空格符分别输入三个值,如这样输入”   value1  value2  value3 ”

【var=`expr $var1 + $var2 + $var3` 】☞expr的使用,这条命令是把变量var1和var2及var3的值相加之后赋给var,注意在加好的两旁要有空格,否则会出错,·这个点不是单引号,它是键盘上Tab键上的·,也就是数字1的左边的哪一个键。

【echo `expr 5 \* 6`】☞在使用乘号时,一定要在*前加一个反斜杠\。

(())双括号可以进行算术运算(推荐使用)。

【var=$((var1+var2))】☞双括号(())的用法,双括号可以进行算数运算,var1前可以加$或不加,把变量var1和var2的值相加,然后赋给var,这种方法较常用。

变量测试语句,test语句,可以测试整形、字符串和文件。

【test -f $1】☞判断$1是否是一个文件,如果是就返回true,否则返回false。

【test -d $1】☞判断$1是否是一个目录,如果是就返回true,否则返回false。

【test str1 = str2】☞判断str1是否等于str2,注意等号两边要有空格,建议不用这种方法,而是用下面的方法。

【test str1==str2】☞判断str1是否等于str2,使用这个更好。

【test str1!=str2】☞判断str1不等于str2,如果是不等于就返回true,否则返回false。

【test str1】☞测试字符串是否不为空,如果str1不空返回true,否则返回false。

【test -n str1】☞测试字符串是否不为空,同上一条命令。

【test -z str1】☞测试字符串是否为空,如果str1为空则返回true。

【test $int1 -eq $int2】☞测试整数int1是否等于整数int2

【test $int1 -ge $int2】☞测试整数int1是否大于等于整数int2

【test $int1 -gt $int2】☞测试int1是否大于int2

【test $int1 -le $int2】☞测试int1是否小于等于int2

【test $int1 -lt  $int2】☞测试int1是否小于int2

【test $int1 -ne $int2】☞测试int1是否是不等于int2

【test -d $d1】☞测试d1是否为目录

【test -f $f1】☞测试f1是否是一个常规为文件

【test -x $f1】☞测试f1是否是一个可执行文件

【test -r $f1】☞测试f1是否是一个可读文件。

【test -w $f1】☞测试f1是否是一个可写文件。

【test -a f1】☞测试文件f1是否存在

【test -s f1】☞测试文件f1的大小是否非0。

测试语句还可以是[测试表达式]和[[测试表达式]],两者的区别是后者可以进行通配符的匹配。

【 [ $# -ne 2 ]】☞判断位置参数是否等于2,注意左中括号[的右边要有空格,右中括号]的左边要有空格,与-ne想类似的运算符都可以用。

【[[ $var1 <= $var2  ]]】☞同样,第一个$前要有一个空格,var2后面要有一个空格,与<=类似的运算符都可以用。

【read -p “Input your choice :”choice】☞运行脚本后从键盘读入数据,存入choice中,双引号中的字符和准备读入的数据是放在同一行显示

【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】

〖#!〗☞指定执行脚本的shell

〖#〗☞注释行

 〖exit语句〗☞退出程序,并返回一个值,返回0表示正常退出,返回非0表示异常退出如exit 0。

〖if....then....fi 〗☞嵌套语句,可以使用简写elif来表示else if。

〖for....done〗☞具体是这样:for 变量 in 变量值表列 do 命令表列 done。把变量值表列中的值一个一个的取出来,然后分别进行命令表列里面的操作。

〖case....esac〗☞具体是case 变量值 in 字符串1) 命令表列;;.....字符串2)命令表列n;;esac

〖while语句〗☞具体是while 条件 do 命令 done,当条件为true时,就执行一次命令,执行完一次命令后接着去判断条件,如此循环。

〖until语句〗☞具体是until 条件  do 命令 done ,until类似于while,唯一不同的是while是当条件为true时执行命令,为false时跳出循环,而until则刚好相反,当条件为false时才执行命令,当条件为true时就跳出循环。

〖continue和break〗☞类同C语言。

〖shift指令〗☞整个位置参数左移,每执行一次,位置参数个数$#减一,即去掉最左边的那个参数,去掉的参数不可恢复。

〖-a〗☞逻辑与,同常理。

〖-o〗☞逻辑或,同常理。

 〖function函数〗☞格式是:函数定义  function 函数名(){命令序列}  函数调用 函数名 参数1 参数2 ...           。    函数调用的时候不要加(),在函数里面调用参数是使用$1 $2来进行调用,与shell script脚本的程序位置参数调用一样。函数中的变量不是局部变量,而是全局变量,函数中没有局部变量,都是全局变量。

〖〗〖〗

执行脚本时要修改权限,让该文件的权限改为可执行文件。

bash中有两种变量,一中是临时变量,另一种是永久变量

自定义变量由字母和下划线开头,字母、数字和下划线组成。长度无限制,大小写敏感。习惯是大写构造变量,

$是取出变量值的关键字

〖〗〖〗〖〗〖〗〖〗〖〗〖〗〖〗〖〗〖〗〖〗〖〗〖〗〖〗〖〗〖〗〖〗〖〗〖〗〖〗〖〗〖〗〖〗〖〗〖〗〖〗〖〗〖〗〖〗〖〗〖〗〖〗〖〗〖〗〖〗〖〗〖〗〖〗〖〗〖〗〖〗〖〗〖〗〖〗〖〗〖〗〖〗〖〗〖〗〖〗〖〗〖〗〖〗〖〗〖〗〖〗〖〗〖〗〖〗

【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】

猜你喜欢

转载自it-justin.iteye.com/blog/1985770