博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SHELL训练营--day2
阅读量:6173 次
发布时间:2019-06-21

本文共 2033 字,大约阅读时间需要 6 分钟。

管道

  • 上节说到命令的输出,利用输入输出重定向将命令处理对象变成文件。同样,命令输出也可通过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.comPING 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)时,执行该文件.

转载于:https://blog.51cto.com/sincethen/2332347

你可能感兴趣的文章
Linux下汇编调试器GDB的使用
查看>>
css溢出机制探究
查看>>
vue中如何实现后台管理系统的权限控制
查看>>
关于angularjs过滤器的理解
查看>>
vue 使用html2canvas将DOM转化为图片
查看>>
angular编辑-初始化变量失败
查看>>
jQuery源码解析之Data
查看>>
React Native Cannot read property 'bindings' of null (null)) 解决!
查看>>
同样的神经网络引擎,苹果A11芯片比华为麒麟970牛在哪?
查看>>
ucar-weex
查看>>
vuex 理解与应用
查看>>
ES6(3)-各种类型的扩展(数组、对象)
查看>>
mysql 分组
查看>>
Android JNI入门第三篇——jni头文件分析
查看>>
ubuntu server 10.4下NFS服务的配置
查看>>
nginx+php-FastCGI+mysql性能测试
查看>>
Openstack架构及基本概念理解
查看>>
默认路由
查看>>
CYQ.Data 轻量数据层之路 框架开源系列 索引
查看>>
zabbix(2)使用自带模板完成基本监控
查看>>