管道符和作业控制 shell变量 环境变量配置文件
- 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变量 环境变量配置文件的更多相关文章
- Shell基础-环境变量配置文件
Shell基础-环境变量配置文件 source 配置文件 或者 . 配置文件: 把环境变量写入配置文件后,需要用户重新登陆才能生效,而是用source命令,则能直接生效 主要的配置文件: /etc/p ...
- Linux 下Shell变量,环境变量的联系与区别
Linux下Shell变量,环境变量的联系与区别 by:授客 QQ:1033553122 1. 简介 linux下的变量可分成两种:Shell变量和环境变量. Shell变量,又称本地变量,包括私有 ...
- awk中使用shell的环境变量
awk中使用shell的环境变量一:"'$var'"这种写法大家无需改变用'括起awk程序的习惯,是老外常用的写法.如:var="test"awk 'BEGIN ...
- Linux Shell基础 环境变量
环境变量 环境变量和用户自定义变量最主要的区别在于,环境变量是全局变量,而用户自定义变量是局部变量.用户自定义变量只在当前的 Shell 中生效,而环境变量会在当前 Shell 和这个 Shell 的 ...
- Shell编程——环境变量
在Shell程序启动时会自动定义一组变量,这组变量就是环境变量,系统中的所有命令都可以使用这些变量参数. 1.如果在父Shell定义环境变量,在子Shell中也能查看到. (1)父Shell与子She ...
- 管道符和作业 shell变量 环境变量
管道符 | 前一个命令的输出,变成后一个命令的输入 ctrl +z 暂停 bg cmd 后台运行 fg # 调回前台 直接让程序进入后台,可以在后面加上 cmd &am ...
- shell配置环境变量
我们在使用Xshell开发机时往往会遇到一些问题,比如使用某些命令他会报command not found,,出现这种情况的原因是我们必须要配置一下环境变量,这样就可以在任何path中访问了. 这就需 ...
- Linux编程 21 shell编程(环境变量,用户变量,命令替换)
一.概述 这篇介绍shell的变量使用,跟其实语言一样,都有声明变量,使用变量,在shell中变量允许你临时地将信息存储中shell脚本中,以便和脚本的其他命令一起使用. 1.1 环境变量 在前面章节 ...
- Linux编程 11(shell全局环境变量与局变环境变量)
一.概述 在linux中,很多程序和脚本都通过环境变量来获取系统信息,存储临时数据,配置信息.环境变量是指用来存储有关shell会话和工作环境信息,允许你在内存中存储数据,以便程序或shell中运行的 ...
随机推荐
- Linux各个文件夹的作用~~~非常实用!!
linux下的文件结构,看看每个文件夹都是干吗用的/bin 二进制可执行命令 /dev 设备特殊文件 /etc 系统管理和配置文件 /etc/rc.d 启动的配置文件和脚本 /home 用户主目录 ...
- 老项目Xcode5.1编译器错误
老项目编译器错误html, body {overflow-x: initial !important;}html { font-size: 14px; } body { margin: 0px; pa ...
- 【Unity】角色沿路线移动/朝着目标移动
先在场景中放置一连串物体作为角色移动路线的关键点,可以把关键点的触发器Trigger拉得大一些方便角色接触到(如酷跑/赛车类项目可以把关键点的触发器做成拦截整个道路的墙面形状).让角色从开始位置朝着第 ...
- hbase源码系列(五)Trie单词查找树
在上一章中提到了编码压缩,讲了一个简单的DataBlockEncoding.PREFIX算法,它用的是前序编码压缩的算法,它搜索到时候,是全扫描的方式搜索的,如此一来,搜索效率实在是不敢恭维,所以在h ...
- python多线程同步机制Semaphore
#!/usr/bin/env python # -*- coding: utf-8 -*- """ Python 线程同步机制:Semaphore "" ...
- PCL采样一致性算法
在计算机视觉领域广泛的使用各种不同的采样一致性参数估计算法用于排除错误的样本,样本不同对应的应用不同,例如剔除错误的配准点对,分割出处在模型上的点集,PCL中以随机采样一致性算法(RANSAC)为核心 ...
- PHP中“==”运算符的安全问题
前言 PHP是一种通用的开源脚本语言,它的语法混合了C,Java,以及Perl等优秀语言的语法.除此之外,它还提供了大量的函数库可供开发人员使用.但是,如果使用不当,PHP也会给应用程序带来非常大的安 ...
- Android学习之SQLite基础
1.新建MySQLiteHelper类继承自SQLiteOpenHelper public class MySQLiteHelper extends SQLiteOpenHelper { privat ...
- Windows Server 2012 任务管理器“性能”Tab页显示磁盘信息
最新文章:Virson's Blog Win+x,以管理员身份运行“命令提示符”(Cmd),输入diskperf -y,确定即可,如下图.
- listview item 动画
http://blog.csdn.net/lixiaodaoaaa/article/details/8284246 先看实现的效果如下: 演示效果如上: 上面的列表是GridView 要给这个Gr ...