zoukankan      html  css  js  c++  java
  • shell与变量的声明的操作

    1、给命令起别名:alias

    执行下面命令后,可以使用dir代替ls –l 命令,显示目录中的文件详细信息:

    wps60F5.tmp

    还可以用一个别名表示几个命令 的结合:

    wps60F6.tmp

    2、ps:显示当前登录会话的所有活动进程:

    wps6107.tmp

    3、更改默认shell:chsh

    chsh命令没有预安装,执行时,需要先联网安装。

    执行chsh命令,过一会儿就会提示该命令找不到,是否要进行安装,输入y,即可下载包进行安装:

    wps6108.tmp

    命令安装完了之后,再次执行chsh命令,即可为当前用户更改shell,输入新的shell即可实现更改。

    查看环境变量SHELL或者查看/ect/passwd文件,即可发现当前用户使用的shell类型已更改:

    wps6109.tmp

    4echo命令

    echo命令用于在屏幕上显示消息:

    wps611A.tmp

    Echo命令显示文本,会在文本末尾放置一个新行字符,新行字符会在显示文本后将光标移动到下一行。

    使用选项-n可以将光标保持在同一行:

    wps611B.tmp

    5、创建shell脚本

    Shell脚本文件是一个文件,所以可以使用文本编辑器进行操作。

    下面我们创建一个shell脚本文件,文件名为hello.sh。在Linux中,文件类型不重要,或者可以说没有文件类型的概念。想要该文件是shell脚本文件,我们只要在文件里书写的是shell命令就可以了。

    在命令提示符时候,执行vi hello.sh

    wps611C.tmp

    打开文件编辑后,编写shell命令:

    wps612C.tmp

    #! 字符必须是shell脚本的前两个字符,用来告诉系统它后面的参数是用来执行该文件程序。

    在shell脚本里,#是注释符号。我们要养成良好的写注释的习惯。

    Shell脚本执行有三种方式:

    A、sh/bash  shell脚本文件名

    将文件名作为shell命令sh/bash的参数执行。要执行任何shell脚本,必须对脚本有读的权限。

    wps612D.tmp

    B、提示符之后直接执行shell脚本,需要先对脚本文件拥有执行权限

    默认,创建文件后,文件所有者对文件没有执行权限,所以想要在提示符之后,通过脚本文件的绝对路径名,需要先使用chmod命令先给文件添加执行权限:

    wps612E.tmp

    因为使用上述方式执行脚本文件时,会在当前shell创建一个新的子shell并在新创建的shell中执行脚本。

    C、使用点(.)在当前shell中执行脚本

    wps613F.tmp

    5、创建变量,引用变量:$

    在Bash Shell 中,不必显式声明变量。可以在任何时间通过简单赋值来创建它们。创建变量语法:

    <variable_name>=<value>

    可以通过赋值运算符右边留空来创建没有值的变量。

    声明变量时,赋值运算符(=)的两边都不能有空格。

    wps6140.tmp

    $符号用来引用变量,$符号引用变量时,一般情况加变量名字可以不用加双引号:

    wps6141.tmp

    Shell创建的变量一般被视为字符串。

    wps6151.tmp

    注意上面变量var不是数字变量,而是字符串变量,var包含的是字符1和字符5组成的字符串,而不是数字15.

    $变量名来引用变量的值,可以用大括号在界定变量名称,一般情况下{}可以省略。但是当涉及到连接操作时,{}不可以省略:

    wps6152.tmp

    上面命令中,day变量值为20,如果变量x想要包含day变量值,并在值之后连接字符串th,则day变量在引用时,必须加{},否则就会把day当做普通字符串处理,不会认为是变量名。

    6、将值读取到变量:read

    read命令允许用户在执行shell脚本期间从键盘将值输入到变量。read命令可以用在shell提示符之后,但通常用在shell脚本中。

    需要注意的是,执行read命令后,不会提示用户输入数据,只是进行光标闪烁。

    wps6153.tmp

    如果要提示用户进行输入,我们必须自己使用echo命令。

    wps6164.tmp

    上面脚本文件执行后效果:

    wps6165.tmp

    7、本地和全局shell变量

    在shell中创建的变量对于创建它的shell是本地变量,在shell中创建一个新shell。新shell不知道父shell的变量,新shell可以对父shell同名的变量赋新值,而父shell不会知道这一情况。bash命令可以创建新shell,从新shell退回,返回父shell使用exit命令。

    wps6166.tmp

    有时候可能需要所有的子Shell了解父Shell的变量,所以需要把本地变量导出为全局变量。实现这一操作,可以使用export命令:

    wps6177.tmp

    使用export命令导出变量后,子shell可以知晓父shell的变量,可以引用该变量,也可以给该变量赋新值。但是退出子shell,返回父shell显示后,父shell的该全局变量的值没有发生改变。也就是子shell修改父shell中创建的变量值,该修改只在子shell生效。

    8、环境变量

    导出的所有变量都是环境变量。

    A、HOME变量

    环境变量HOME用于存储用的主目录的位置:

    wps6178.tmp

    B、PATH变量

    PATH变量包含以冒号分隔的目录列表,Shell会通过它定位用户调用的命令。

    设置路径时,用户不必转到可执行程序文件所在的目录,不管当前目录是什么,用户都可以执行程序。

    wps6188.tmp

    不像MS-DOS,在Linux中不会自动搜索当前目录。只会搜索PATH中指定的目录。所以如果要搜索当前目录,必须在PATH中执行。可以通过在PATH中加入一点.(.表示当前目录)或提供一个空路径来指定当前目录:

    a. PATH=/bin:/usr/bin: [以下列顺序搜索:/bin、/usr/bin、当前目录]

    b. PATH=:/bin:/usr/bin [以下列顺序搜索:当前目录、/bin、/usr/bin]

    c. PATH=/bin: :/usr/bin [以下列顺序搜索:/bin、当前目录、/usr/bin]

    C、PS1变量

    PS1(提示符变量)变量包含Shell提示符:默认为$符号。(Root用户的提示符为#,其他用户提示符为$)。我们可以通过该环境变量修改提示符:

    wps6189.tmp

    PS1变量中还可以包含特定的预定义提示符字符串。例如:w提示符字符串用于显示用户的当前工作目录;u表示当前用户;h表示主机名。

    wps618A.tmp

    如果想要重新设置成默认提示符,root用户可以使用:PS1="[u@h W]# ",非root用户可以使用:PS1="[u@h W]# "

    wps619B.tmp

    D、PS2变量

    PS2变量用于设置次提示符的值的环境变量,默认情况为>。当在命令行提供了不完整的目命令时,会显示次提示符。

    wps619C.tmp

    退出次提示符可以使用ctrl+c或Ctrl+d:

    wps619D.tmp

    ctrl+c,会显示^C,然后退出;Ctrl+d会显示原因,然后退出

    E、LOGNAME变量

    LOGNAME变量包含用户的登录名:

    wps61AD.tmp

    F、SHLVL变量

    SHLVL变量包含当前工作的Shell层

    wps61AE.tmp

    登录Shell,该变量值被赋为1.无论何时创建一个新的Shell,该变量的值都会加1.

    G、SHELL变量

    SHELL变量存储用户的默认Shell

    wps61AF.tmp

    9、env命令

    env命令可以查看所有导出的环境变量及其各自值的列表:

    wps61B0.tmp

    10、补充:创建空文件,且不进入编辑状态:touch

    使用touch命令可以创建空文件,并且不进入文件的编辑状态。也可以根据命令后给出的文件名列表同时创建多个空文件

    wps61C1.tmp

  • 相关阅读:
    利用dockerfile定制镜像
    发布Docker 镜像到dockerhub
    Docker 停止容器
    133. Clone Graph
    132. Palindrome Partitioning II
    131. Palindrome Partitioning
    130. Surrounded Regions
    129. Sum Root to Leaf Numbers
    128. Longest Consecutive Sequence
    127. Word Ladder
  • 原文地址:https://www.cnblogs.com/wxb20/p/5929154.html
Copyright © 2011-2022 走看看