• 8.6 管道符和作业控制
  • 8.7/8.8 shell变量
  • 8.9 环境变量配置文件
  • 管道符和作业控制

管道符:表示把一个文件的输出内容传送到后面的命令

grep  用来过滤指定关键词的命令

“|” 为管道符

ls  | wc  -l     统计当前路径下文件的个数

[root@localhost xiaobo]# ls

1.xtt  2.txt  3.txt

[root@localhost xiaobo]# ls |wc -l

3

[root@localhost xiaobo]#

find  ./  -type  f  |wc -l  统计当前多少个文件

统计1.txt文本多少行

[root@localhost xiaobo]# cat 1.txt |wc -l

1

过滤1.txt指定的“aaa”字符串

[root@localhost xiaobo]# echo "bsahgdhasdj aaaasjdhsaaa hsdjhsjaaa" >1.txt

[root@localhost xiaobo]# cat 1.txt |grep 'aaa'

bsahgdhasdj aaaasjdhsaaa hsdjhsjaaa

ctrl  + z 暂停一个任务

[root@localhost xiaobo]# vim 1.txt

[1]+  已停止               vim 1.txt

然后再使用 fg (forground )调回来

编辑了两个文件,都丢到后台 ctrl + z

jobs 查看后台任务 , 调回来  fg  1   ;  fg   2

把任务搞到后台去

bg  2  也就是bg 加任务号

[root@localhost xiaobo]# jobs

[1]-  已停止               vim 1.txt

[2]+  已停止               vim 2.txt

[root@localhost xiaobo]# bg 2

[2]+ vim 2.txt &

[2]+  已停止               vim 2.txt

vmstat 显示当前的系统状态

vmstat 1 就是不停的动态显示当前的系统状态

[root@localhost xiaobo]# vmstat 1

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----

r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st

1  0      0 704592   2076 207516    0    0     5     1   13   13  0  0

ctrl  +  z  暂停

[root@localhost xiaobo]# jobs

[1]-  已停止               vim 1.txt

[2]+  已停止               vmstat 1

bg 可以把vmstat 搞到后台去。你再前台可以干别的事情。

搞到前台fg  然后退出vim   q! ;   然后ctrl  + c 退出当前任务

sleep 1000  把命令暂停1000s

ctrl + c 停止;

[root@localhost xiaobo]# sleep 1000

^Z

[1]+  已停止               sleep 1000

[root@localhost xiaobo]# sleep 200

^Z

[2]+  已停止               sleep 200

[root@localhost xiaobo]# jobs

[1]-  已停止               sleep 1000

[2]+  已停止               sleep 200

[root@localhost xiaobo]# bg 2

[2]+ sleep 200 &

[root@localhost xiaobo]# jobs

[1]+  已停止               sleep 1000

[2]-  运行中               sleep 200 &

直接丢到后台  加一个“&”号

sleep 100 &

总结: bg 后台;fg 前台; ctrl + z暂停一个任务;ctrl + c 结束任务;  命令后加一个+“&”号直接丢到后台

  • shell变量

PATH,HOME,PWD,LOGNAME

env命令 获取系统变量

set命令多了很多变量,并且包括用户自定义的变量

显示环境变量

[root@localhost xiaobo]# echo $PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

自定义变量

a=1

echo $a

输出 1

用户自定义的变量,可以在set  体现出来

set  |grep   111

[root@localhost xiaobo]# set |grep 111

_=111

a=111

set |less

\a=111 可以查到自定义的变量

变量名规则: 字母数字下划线,首位不能为数字

变量值有特殊符号时需要用单引号括起来

a='a b c' 双引号也行 a="a b c"

echo  $a

单引号可以脱义

[root@localhost xiaobo]# a="a$bc"

[root@localhost xiaobo]# echo $a

a

[root@localhost xiaobo]# a='a$bc'

[root@localhost xiaobo]# echo $a

a$bc

[root@localhost xiaobo]# a=1

[root@localhost xiaobo]# b=2

[root@localhost xiaobo]# echo $a$b

12

[root@localhost xiaobo]# a='a$bc'

[root@localhost xiaobo]# echo $a$b

a$bc2

[root@localhost xiaobo]# c="a$bc"

[root@localhost xiaobo]# echo $c

a

$bc 没有定义

所有输出a

[root@localhost xiaobo]# c="a$b"c

[root@localhost xiaobo]# echo $c

a2c

c=a"$b"c

echo $c

a2c

全局变量

w查看系统运行情况(包括登录了几个用户)

[root@localhost xiaobo]# w

06:48:08 up  6:44,  2 users,  load average: 0.00, 0.01, 0.05

USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT

root     pts/0    10.211.55.2      00:03    0.00s  0.42s  0.00s w

root     pts/1    10.211.55.2      06:46    1:17   0.02s  0.02s -bash

显示自己在哪个终端下:

[root@localhost xiaobo]# echo $SSH_TTY

/dev/pts/0

安装pstree

[root@localhost xiaobo]# yum provides "/*/pstree"

已加载插件:fastestmirror

Loading mirror speeds from cached hostfile

* epel: mirror.ehost.vn

psmisc-22.20-15.el7.x86_64 : Utilities for managing processes on your system

源    :base

匹配来源:

文件名    :/usr/bin/pstree

[root@localhost xiaobo]# yum install -y psmisc-22.20-15.el7.x86_64

pstree 列出进程树

[root@localhost xiaobo]# pstree

systemd─┬─NetworkManager───2*[{NetworkManager}]

├─agetty

├─auditd───{auditd}

├─chronyd

├─crond

├─dbus-daemon───{dbus-daemon}

├─firewalld───{firewalld}

├─irqbalance

├─master─┬─pickup

│        └─qmgr

├─polkitd───5*[{polkitd}]

├─rsyslogd───2*[{rsyslogd}]

├─sshd─┬─sshd───bash───bash───pstree

│      └─sshd───bash

├─systemd-journal

├─systemd-logind

├─systemd-udevd

└─tuned───4*[{tuned}]

在第一个bash下输入

输出一个全局变量

export   xiaobo=linux

输入bash 进入到一个子shell

bash --> bash--->pstree

子shell  echo xiaobo

linux

exit 退出子shell

[root@localhost xiaobo]# export xiaobo=linux

[root@localhost xiaobo]# echo $xiaobo

linux

[root@localhost xiaobo]# bash

[root@localhost xiaobo]# echo $xiaobo

linux

全局变量是在当前的shell 向下 子shell 、孙shell 定义全局变量。

取消变量定义:

unset   xiaobo

全局变量: export   xiaobo=123;

echo $xiaobo

123

  • 环境变量配置文件

系统层次:

/etc/profile 用户环境变量,交互,登录才执行

/etc/bashrc 用户不用登录,执行shell就生效

系统环境变量不要修改,只修改用户的环境变量

用户层次:

家目录下的

~/.bashrc

~/.bash_profile

~/.bash_history  (用户命令历史)

~/.bash_logout  (定义用户退出要做的事情)

PS1='' ([root@localhost ~]#)

PS1 是在/etc/bashrc 里面定义的

vim /etc/bashrc

/PS1

[root@localhost ~]# echo $PS1

[\u@\h \W]\$

把路径改成绝对路径 把大写的W改成小写w

[root@localhost ~]# echo $PS1

[\u@\h \W]\$

[root@localhost ~]# PS1='[\u@\h \w]\$'

[root@localhost ~]#cd  xiaobo/

[root@localhost ~/xiaobo]#

改变颜色

PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;36m\]\w\[\033[00m\]\$ '

root@localhost:~/xiaobo#

写shell脚本,用PS2

root@localhost:~# echo $PS2

>

root@localhost:~# for i in `seq 1 10`

> do

> echo $i

> done

1

2

3

4

5

6

7

8

9

10

总结:

PS1 是  用户名@主机名 路径

PS2是 >

管道符和作业控制 shell变量 环境变量配置文件的更多相关文章

  1. Shell基础-环境变量配置文件

    Shell基础-环境变量配置文件 source 配置文件 或者 . 配置文件: 把环境变量写入配置文件后,需要用户重新登陆才能生效,而是用source命令,则能直接生效 主要的配置文件: /etc/p ...

  2. Linux 下Shell变量,环境变量的联系与区别

    Linux下Shell变量,环境变量的联系与区别 by:授客 QQ:1033553122 1.  简介 linux下的变量可分成两种:Shell变量和环境变量. Shell变量,又称本地变量,包括私有 ...

  3. awk中使用shell的环境变量

    awk中使用shell的环境变量一:"'$var'"这种写法大家无需改变用'括起awk程序的习惯,是老外常用的写法.如:var="test"awk 'BEGIN ...

  4. Linux Shell基础 环境变量

    环境变量 环境变量和用户自定义变量最主要的区别在于,环境变量是全局变量,而用户自定义变量是局部变量.用户自定义变量只在当前的 Shell 中生效,而环境变量会在当前 Shell 和这个 Shell 的 ...

  5. Shell编程——环境变量

    在Shell程序启动时会自动定义一组变量,这组变量就是环境变量,系统中的所有命令都可以使用这些变量参数. 1.如果在父Shell定义环境变量,在子Shell中也能查看到. (1)父Shell与子She ...

  6. 管道符和作业 shell变量 环境变量

    管道符  |      前一个命令的输出,变成后一个命令的输入 ctrl +z   暂停 bg  cmd   后台运行 fg  #  调回前台 直接让程序进入后台,可以在后面加上 cmd    &am ...

  7. shell配置环境变量

    我们在使用Xshell开发机时往往会遇到一些问题,比如使用某些命令他会报command not found,,出现这种情况的原因是我们必须要配置一下环境变量,这样就可以在任何path中访问了. 这就需 ...

  8. Linux编程 21 shell编程(环境变量,用户变量,命令替换)

    一.概述 这篇介绍shell的变量使用,跟其实语言一样,都有声明变量,使用变量,在shell中变量允许你临时地将信息存储中shell脚本中,以便和脚本的其他命令一起使用. 1.1 环境变量 在前面章节 ...

  9. Linux编程 11(shell全局环境变量与局变环境变量)

    一.概述 在linux中,很多程序和脚本都通过环境变量来获取系统信息,存储临时数据,配置信息.环境变量是指用来存储有关shell会话和工作环境信息,允许你在内存中存储数据,以便程序或shell中运行的 ...

随机推荐

  1. Django项目关闭debug模式后,静态文件无法加载的解决办法

    开启内置服务器,由于项目中local_settings.py文件中的DEBUG=True,进行开发和调试一直没什么问题. 但是现在需要编写404,500等出错页面,在debug模式下出了错都会出现报错 ...

  2. Android基础——Fragment控制切换多个页面

    今天接着上一篇文章,讲解一下Fragment的控制,主要是切换View和页面替换等操作.还有就是如何获取Fragment的管理对象,以及与Activity的通信方式. (PS:新建的QQ群,有兴趣可以 ...

  3. PowerDesigner导出表到HTML或word(实测有效)

    推荐生成HTML,因为看起来更加简洁 一.模版修改 在导出表时,powerdesigner默认为我们提供了很多的模版,在工具栏中选择[Report--->Report Template]即可看到 ...

  4. android sqlite应用优化(资料整理)

    1.  优化插入速度 a.不要绑定空列    在我的程序,至少有50%的列是空值.碰到空值列,就不调用ih.bind()方法对它进行绑定,就我的程序而言,当列值为null或者空的字符串是, 有将近30 ...

  5. CSS一个元素同时使用多个类选择器(class selector)

    CSS类选择器参考手册 一个元素同时使用多个类选择器 CSS中类选择器用点号表示.实际项目中一个div元素为了能被多个样式表匹配到(样式复用),通常div的class中由好几段组成,如<div ...

  6. Eclipse源代码分析

    Eclipse源代码分析 一.概述走入Eclipse的内核,看看它到底是怎么工作的? 1.Eclipse源代码 下载地址:http://download.eclipse.org/eclipse/dow ...

  7. jpegtran图片压缩工具

    首先下载  jpegtran  下载地址为  http://jpegclub.org/jpegtran.exe jpegtran -copy none -optimize -perfect aa.jp ...

  8. [算法]从一道题引出variable-precision SWAR算法

    苏君君出了一道题,是牛客网上面的: 输入一个int型整数,输出该数二进制表示中1的个数.其中负数用补码表示. 其实这道题并不难,大家很容易想到的解法是转成字符串的思路,即如下所示: public st ...

  9. hbase 学习(十四)Facebook针对hbase的优化方案分析

    使用hbase的目的是为了海量数据的随机读写,但是在实际使用中却发现针对随机读的优化和gc是一个很大的问题,而且hbase的数据是存储在Hdfs,而Hdfs是面向流失数据访问进行设计的,就难免带来效率 ...

  10. android开发(31) 动画演示 - 从页面底部向上弹出dialog,消失时逐渐向下

    我想实现一个效果,从底部向上逐渐弹出.如下图所示: 1.点击 显示 按钮时,一个dialog对话框从底部慢慢向上弹出. 2.关闭dialog时, dialog缓慢的移动向底部消失.很平滑的效果.   ...