码迷,mamicode.com
首页 > 其他好文 > 详细

管道符、作业控制、变量、定义全局变量、环境变量

时间:2018-01-12 01:31:16      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:符号   obs   code   logout   lld   后台   生效   vmtools   家目录   

管道符

符号|:管道符,将前面的命令交给后面的命令;

实验1:统计1.txt的段落长度;
cat 1.txt |wc -l

[root@shu-test abc]# cat 1.txt |wc -l
2
[root@shu-test abc]#

实验2:查看2.txt文件,将文件中包含r的字符串打印出来;
cat 2.txt |grep ‘r‘

[root@shu-test abc]# cat 2.txt|grep ‘r‘
r111111
r
r
r
[root@shu-test abc]#

作业控制

当运行进程时,可以使它后台暂停(ctrl+z),然后使用bg命令后台活动,使用fg命令恢复它;相当于Windows tab+Alt键;

例如:vim 2.txt 使用ctrl+z暂停

[root@shu-test abc]# vi 2.txt
[1]+  已停止               vi 2.txt
[root@shu-test abc]#

fg命令:

恢复或切换到前台,多个后台可以使用fg [序列号] 来实现调回;

[root@shu-test abc]# fg
vi 2.txt
[root@shu-test abc]#

jobs命令:

查询中断作业,后台运行;

[root@shu-test abc]# jobs
[1]-  已停止               vim 2.txt
[2]+  已停止               vim 3.txt

bg命令:

后台活动作业,必须在暂停后才能bg切换到后台活动;

root@shu-test abc]# jobs
[1]   已停止               vim 2.txt
[2]-  已停止               vim 3.txt
[3]+  已停止               vim a.txt
[root@shu-test abc]# bg
[3]+ vim a.txt &
[root@shu-test abc]# fg 3
vim a.txt
[root@shu-test abc]#

变量

常见的变量:

  • PATH:决定shell在哪些目录下寻找命令和程序;
  • HOME:家目录;
  • PWD:当前目录;
  • LOGNAME:当前用户名称;

env命令:

查看常见变量;

set命令:

查看全部系统以及自己定义变量;

变量名规则:字母、数字、下划线,首位不能数字;
变量值有特殊符号需要用单引号‘@@@’ 字符串
变量的累加使用双引号

实验1:特殊符号变量,必须加单引号;

[root@shu-test abc]# a=‘a$bc‘
[root@shu-test abc]# echo $a
a$bc
[root@shu-test abc]#

实验2:变量的累加,使用双引号才能将$b的变量值显示出来;

[root@shu-test abc]# echo $a
a$bc
[root@shu-test abc]# echo $b
2
[root@shu-test abc]# c="a$b"
[root@shu-test abc]# echo $c
a2
[root@shu-test abc]#

定义全局变量:

格式:
export [变量名]=[变量值]

[root@shu-test abc]# export aaa=123
[root@shu-test abc]# echo $aaa
123
[root@shu-test abc]#

取消全局变量:

格式:
unset [变量名]

[root@shu-test abc]# echo $aaa
123
[root@shu-test abc]# unset aaa
[root@shu-test abc]# echo $aaa
[root@shu-test abc]#

pstree

pstree命令需要安装psmisc包;

yum install psmisc

查看当前所在bash

[root@shu-test abc]# pstree
systemd─┬─NetworkManager───2*[{NetworkManager}]
        ├─VGAuthService
        ├─agetty
        ├─auditd───{auditd}
        ├─chronyd
        ├─crond
        ├─dbus-daemon───{dbus-daemon}
        ├─firewalld───{firewalld}
        ├─lvmetad
        ├─master─┬─pickup
        │        └─qmgr
        ├─polkitd───5*[{polkitd}]
        ├─rsyslogd───2*[{rsyslogd}]
        ├─sshd───sshd───bash───pstree
        ├─systemd-journal
        ├─systemd-logind
        ├─systemd-udevd
        ├─tuned───4*[{tuned}]
        └─vmtoolsd───{vmtoolsd}
[root@shu-test abc]#

进入新bash

bash

[root@shu-test abc]# bash
[root@shu-test abc]# pstree
systemd─┬─NetworkManager───2*[{NetworkManager}]
        ├─VGAuthService
        ├─agetty
        ├─auditd───{auditd}
        ├─chronyd
        ├─crond
        ├─dbus-daemon───{dbus-daemon}
        ├─firewalld───{firewalld}
        ├─lvmetad
        ├─master─┬─pickup
        │        └─qmgr
        ├─polkitd───5*[{polkitd}]
        ├─rsyslogd───2*[{rsyslogd}]
        ├─sshd───sshd───bash───bash───pstree
        ├─systemd-journal
        ├─systemd-logind
        ├─systemd-udevd
        ├─tuned───4*[{tuned}]
        └─vmtoolsd───{vmtoolsd}
[root@shu-test abc]#

退出


exit

环境变量

全局的变量(针对所有用户):

  • /etc/profile :用户换机变量、交互、登录才执行;
  • /etc/bashrc : 用户不用登录、执行shell就生效;

用户home变量文件(只针对当前用户):

  • ~/.bashrc:登录或每次打开新的shell时,执行该文件。一般自定义变量写这里;
  • ~/.bash_profile:定义用户个人话路径与房价变量文件每次,当用户登录时,改文件仅仅执行一次;
  • ~/.bash_history :记录历史命令;
  • ~/.bash_logout:退出shell时,执行该文件。可以进行一些清理的工作;

~ 代表家目录

PS1变量

当我们登录系统后,命令的最左边会显示:

[root@shu-test abc]#
[root@shu-test abc]#

怎样控制这个显示,那么就要说到PS1变量;
PS1变量定义在 /etc/bashrc 文件下面;

[root@shu-test abc]# echo $PS1
[\u@\h \W]\$
[root@shu-test abc]#
  • u@:代表用户名
  • h:代表hostname
  • W:代表最后一个路径

注意:可将大W改小w 显示绝对完全路径

实验1:修改显示为绝对路径;

[root@shu-test abc]# echo $PS1
[\u@\h \W]\$
[root@shu-test abc]# PS1=‘[\u@\h \w]\$ ‘
[root@shu-test ~/abc]# cd /etc/sysconfig/
[root@shu-test /etc/sysconfig]#

管道符、作业控制、变量、定义全局变量、环境变量

标签:符号   obs   code   logout   lld   后台   生效   vmtools   家目录   

原文地址:http://blog.51cto.com/shuzonglu/2060044

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!