您的位置:首页 > 运维架构 > Shell

SHELL训练营--day2

2018-12-18 22:56 721 查看

管道

  • 上节说到命令的输出,利用输入输出重定向将命令处理对象变成文件。同样,命令输出也可通过linux引入的管道符,将输出转向 变为 另一个命令的输入对象

    如:

    cat 1.txt|wc -l
    统计文件行数。
    如:
    cat /etc/passwd | cut -d ":" -f 1
    输出系统用户。

命令任务管理

  • 多个命令同时运行(多任务管理)
  • 命令后台运行
  • 多命令运行管理(后台任务管理)

    默认情况下,当前命令输出对象 是 文件 描述符 0,即当前输出设备--屏幕。当前命令独自占用
    该设备。
    当需要同时再运行另命令时,就需要释放 该命令 对 输出设备的占用,并将命令放入后台运行。
    同样,需要在前台对 后台用户命令运行进行管理,如后台运行或后台停止状态。

    #当前命令运行时,可通过快捷键放入后台(CTRL+Z),或是退出该命令(CTRL+C)。
    #注意的是,通过快捷键将命令放入后台,默认是在后台停止状态。
    #以ping命令为例,下面演示放入后台(CTRL+Z),后台命令查看,后台运行,
    [root@cpdl ~]# ping www.baidu.com
    PING www.a.shifen.com (14.215.177.39) 56(84) bytes of data.
    64 bytes from 14.215.177.39: icmp_seq=1 ttl=54 time=3.65 ms
    ^Z
    [1]+  Stopped                 ping www.baidu.com
    #+号表示默认最近的一个后台命令。
    #查看后台命令:jobs
    [root@cpdl ~]#jobs
    [1]+  Stopped                 ping www.baidu.com
    [2]-  Stopped                 ping www.qq.com
    #后台命令调入前台
    [root@cpdl ~]#bg 2
    #命令在后台运行
    [root@cpdl ~]#fg 2
    #删除后台命令
    [root@cpdl ~]#kill %2
    #命令直接放入后台运行
    [root@cpdl ~]# ping www.qq.com &

shell变量

之前章节从shell命令说起,谈到命令历史记录查看,命令简写,命令处理对象的匹配,命令补全提醒,命令输入输出对象,多条命令的调用。
这里,再从命令运行环境说起。
命令在计算机中不是单独独立的存在,它必然需要与操作系统或其它命令进行交互。
它会接受操作系统初始化提供参数,系统变量,或是其它用户自定义参数。
变量的来源可分为,环境变量,预定义变量,命令位置变量,用户自定义变量等。
默认可通过env或set 查看当前环境变量。其中env不包含用户自 定义变量。
常使用环境变量:HOSTNAME,UID,USER,LOGNAME,HOME,PATH,PPID,等。
预定义环境变量:LANG,PS1,等。主要用户保存初始化用户设置等。
命令位置变量:$0,$n,$#,$*,$@,$?,$$,$! 等。
用户自定义变量,设置用户环境变量。

  • 自定义环境变量说明:

    变量名规则:字母数字下划线,首字符不能是数字。
  • 变量值定义:

    变量值引用分为三类:
    一类用单引号引用,表示纯字符,不管字符中是否含有特殊符号。
    一类用双引号引用,表示特殊符号会转义。
    一类用反引号引用,表示引用的是命令,变量值是命令返回的信息。

  • 变量使用范围

    默认变量是局域变量,只能在当前环境中使用。
    可通过声明变量为全局变量(export a=2),将变量在环境中向下传递。

  • 自定义变量取消 unset
  • 只读变量 readonly NAME
  • 变量存储位置

    变量创建随着系统启动一点点添加,按linux启动过程和用户登录过程,添加变量的文件顺序大致如下:
    /etc/profile -> (~/.bash_profile | ~/.bash_login | ~/.profile) -> ~/.bashrc -> /etc/bashrc -> ~/.bash_logout

    /etc/profile
    在加载文件系统前需要处理文件。文件执行时,会从/etc/profile.d目录的配置文件中搜集shell的一些设置。
    ~/.bash_profile
    : 每个用户家目录下都有该文件 ,使用此文件输入用户自己的shell信息。当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,并调用执行用户的
    ~/.bashrc
    文件。
    ~/.bashrc
    : 该文件包含用户自己的bash shell的信息,当登录时以及每次打开新的shell时,该文件被读取。用户定义自己的环境变量,建议写入此文件。
    ~/.bash_logout
    :当每次退出系统(退出bash shell)时,执行该文件.

    内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签:  shell day2