linux shell学习笔记(二)

来源:互联网 发布:零度无人机软件 编辑:程序博客网 时间:2024/05/21 06:55

1.如何定义变量和给变量赋值

变量名=变量值    注意:“=”的周围不要有任何空格,否则会出现command not found错误。

例:


变量值为“1+1”,而不是想象中的“2”

在bash中,如果要将算数表达式的数值赋给一个变量们可以使用let命令




将一个变量的值直接赋给另一个变量



将命令的结果值给变量



2.变量命名规则

变量名必须以字母或下划线“_”开头,后面跟字母、数字、下划线,不能有?、*等其他字符。


3.使用printf打印变量的值


%b 相对应的参数被视为含有要被处理的转义序列之字符串。
%c ASCII字符。显示相对应参数的第一个字符
%d, %i 十进制整数
%e 浮点格式
%E 浮点格式
%f 浮点格式
%g %e或%f转换,看哪一个较短,则删除结尾的零
%G %E或%f转换,看哪一个较短,则删除结尾的零
%o 不带正负号的八进制值
%s 字符串
%u 不带正负号的十进制值
%x 不带正负号的十六进制值,使用a至f表示10至15
%X  不带正负号的十六进制值,使用A至F表示10至15
%% 字面意义的%

4.使用echo命令打印变量值



可以使用转义字符与printf命令基本相同,但需要使用“-e”选项激活转义字符功能。


有时需要使用${}来避免一些歧义。


5.export语句:将指定给它的变量或函数自动输出到后续命令的执行环境。

语法:export -fnp 变量或函数名称=变量设置值

-f 选项表示 export一个函数;

-n选项表示将export属性从指定变量或函数上移除;

-p选项打印当前shell所有输出变量,与单独执行export命令结果相同。

例:

JAVA_HOME=/usr/local/jdk

export  $JAVA_HOME

6.如何删除变量

unset -fv 变量或函数名

-f表示删除一个已定义的函数;

-v表示删除一个变量

例:

export  JAVA_HOME=/usr/local/jdk

unset JAVA_HOME

注意:使用unset命令不能删除一个只读变量,否则将会出现错误。

7.如何检查变量是否存在

使用类似如下语法,来检查一个变量是否存在

${varname? Error: the variable is not defined}

上述语句的含义是:(1)如果变量varname已定义且不为空,则此语句就相当于$varname;

    (2)如果变量varname的值是空,则此语句的值也是空;

    (3)如果varname未定义,则此语句返回一个错误,并显示问号“?”定义信息错误“Error: the variable is not defined” 

8.历史命令history

9.输入!!来重复执行上一条执行过的命令

10.shell中的扩展,一共8种:大括号扩展,波浪号扩展,参数和变量扩展,命令替换,算术扩展,进程扩展,单词拆分和文件名扩展。

(1)大括号扩展







比如在主目录下创建三个目录,可以使用类似如下语句:

mkdir ~/{dir1,dir2,dir3}




Bash4.0会试图让每个生成的量都含有同样多地位数,如果位数不同就在前面补零。



(2)波浪号可以用来指代你自己的主目录,或其他人的主目录

例:

$ cd ~

$ pwd

/home/hx

$cd ~jr  #进入用户jr的主目录


11.线束/et目录下的所有文配置文件:

ls /etc/*.conf


12.创建和使用别名

alias name='command'

例:

alias ll='ls -l'

13.用户登录时,登录shell调用初始化文件和脚本的次序依次是:/etc/profile、/etc/profil.d目录下的脚本、$/HOME/.bash_profile、$/HOME/.bashrc和/etc/bashrc。










0 0