管道符、shell、环境变量配置文件

8.6 管道符和作业控制

1、# cat 1.txt |wc -l
#cat 1.txt |grep 'aaa'
#ls |wc -l查看当前目录文件个数
#find / -name *.conf |wc -l查看搜索出来的文件个数
2、ctrl + z 暂停任务回到命令窗口
3、# fg恢复暂停命令
4、# jobs命令可以将停止的任务列出来,# fg 1fg 2可以将相应的任务恢复到当前状态,# bg是将命令在后台运行
5、# sleep 1000 & 直接将命令运行在后台
6、#vmstat 1 vmstat详解,点此进入链接
7、#ps aux查看进程

8.7/8.8 shell变量

1、变量
①、PATH
②、HOME
③、PWD
④、LOGNAME
2、# env可以输出系统中的环境变量,变量都为大写
3、# set查看系统和自定义变量
4、# a=111 自定义变量a=111
·变量名规则:字母、数字、下划线,首位不能为数字
·变量值有特殊符号时需要用单引号括起来
5、变量的累加

[root@ajianglinux-01 ~]# a=1
[root@ajianglinux-01 ~]# b=2
[root@ajianglinux-01 ~]# echo $a$b
12
[root@ajianglinux-01 ~]# c=a"$b"c
[root@ajianglinux-01 ~]# echo $c
a2c

6、全局变量export b=2,全局变量是本级以及子级等shell生效,本级的父级不生效, 局部变量只能在一级shell中生效
bash命令进入子级shell

[root@ajianglinux-01 ~]# bash

7、pstree命令需要安装一下包

[root@ajianglinux-01 ~]# yum install -y psmisc
[root@ajianglinux-01 ~]# 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
        │      ├─sshd───bash
        │      └─sshd───bash───bash
        ├─systemd-journal
        ├─systemd-logind
        ├─systemd-udevd
        ├─tuned───4*[{tuned}]
        └─vmtoolsd───{vmtoolsd}

8、# echo $SSH_TTY查看自己通过终端登录
查看在哪个TTY下可以用以下命令

[root@ajianglinux-01 ~]# echo $SSH_TTY
/dev/pts/2

9、unset变量

[root@ajianglinux-01 ~]# export ajiang=linux
[root@ajianglinux-01 ~]# echo $ajiang
linux
[root@ajianglinux-01 ~]# bash
[root@ajianglinux-01 ~]# echo $ajiang
linux
[root@ajianglinux-01 ~]# unset ajiang
[root@ajianglinux-01 ~]# echo $ajiang

10、shell实际为一个进程,# bash 再次打开一个shell进程,通过# pstree查看在哪个进程中

8.9 环境变量配置文件

1、/etc/profile 用户环境变量,交互,登录才执行
2、/etc/bashrc 用户不用登录,执行shell就生效
3、~/.bashrc 用户家目录下都有.bashrc、.bash_profile
4、~/.bash_profile
5、~/.bash_history
6、~/.bash_logout用来定义用户退出时,所需要做的操作
7、echo $PS1在/etc/bashrc中定义的, PS1='[\033[01;32m]\u@\h[\033[00m]:[\033[01;36m]\w[\033[00m]$'

[root@ajianglinux-01 etc]#PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;36m\]\w\[\033[00m\]\$'
root@ajianglinux-01[:/etc#cd 
root@ajianglinux-01[:~#

8、echo $PS2

root@ajianglinux-01[:~#echo $PS2
>
root@ajianglinux-01[:~#for i in `seq 1 10`
> do 
> echo $i
> done
1
2
3
4
5
6
7
8
9
10
root@ajianglinux-01[:~#

9、.bash_profile用户登录的时候例如打开终端输入IP、port、用户名密码,就会自动加载用户家目录下的.bash_profile
10、.bashrc 执行shell脚本的时候就会自动调用.bashrc里边的配置
11、.和source作用一样,都是加载文件中的配置

扩展

bashrc和bash_profile的区别http://www.apelearn.com/bbs/thread-7719-1-1.html
简易审计系统:http://www.68idc.cn/help/server/linux/2014042190951.html
关于PROMPT_COMMAND环境变量的含义:http://www.linuxnote.org/prompt_command-environment-variables.html

猜你喜欢

转载自my.oschina.net/u/3803446/blog/1800097