管道符和作业控制、shell变量、环境变量配置文件、添加操作记录审计

一、 管道符和作业控制
1.     | 管道符 把前面一个文件的输出传递给下一个命令
[root@localhost ~]# cat 11.txt |grep root       #cat 11.txt的内容,并将结果传递给grep,过滤出带有root的行
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
2.  ctrl z  将进程暂停,放到后台
[root@localhost ~]# vim 11.txt      #编辑11.txt的时候按下 ctrl z,那么就会将vim这个命令放到后台
[1]+  已停止               vim 11.txt
3. jobs  列出停止的任务
[root@localhost ~]# vim 2.txt          #再编辑一个文件2.txt,并放到后台
[2]+  已停止               vim 2.txt
[root@localhost ~]# jobs                  #可以使用jobs列出停止的任务,目前有两个
[1]-  已停止               vim 11.txt
[2]+ 已停止               vim 2.txt
4.  fg  将任务回到前台并运行
[root@localhost ~]# fg 2        #使用fg+停止任务的ID就可以回到前台
vim 2.txt
5. bg  将任务放到后台并运行
[root@localhost ~]# vmstat 1           #运行命令vmstat 1
[1]+  已停止            vmstat 1               #使用 ctrl z暂停命令
[root@localhost ~]# bg 1                  # 使用bg将命令放到后台运行
[1]+ vmstat 1 &
[root@localhost ~]# jobs                   #使用jobs可以看到命令 vmstat 1在后台运行,带有"&"标志
[1]+  运行中               vmstat 1 &
6. 在命令后面加上&可以直接将任务放到后台运行
[root@localhost ~]# sleep 100&        在sleep 100后面加上&,命令直接到后台运行
[2] 2057
[root@localhost ~]# jobs
[1]+  已停止               vmstat 1
[2]-  运行中               sleep 100 &


二、shell变量
1. env     显示当前用户的环境变量
     set      用来显示本地变量
[root@localhost ~]# env
XDG_SESSION_ID=4
HOSTNAME=localhost.localdomain
SELINUX_ROLE_REQUESTED=
TERM=xterm
SHELL=/bin/bash
HISTSIZE=1000
.......
2. 自定义变量
    变量名规则:字母,数字,下划线,首字母不能是数字
    变量的值有特殊的符号时需要用单引号括起来,一般不要使用双引号
    当变量比较复杂的时候可以用多个双引号引起来
[root@localhost ~]# mm=333               #自定义一个变量mm
[root@localhost ~]# echo $mm
333

[root@localhost ~]# ss='a s d'              #变量含有特殊符号,比如空格的时候,最好用单引号 括起来
[root@localhost ~]# echo $ss
a s d

[root@localhost ~]# xx=1                     #变量的累加,直接引用即可
[root@localhost ~]# cc=2
[root@localhost ~]# nn=$xx$cc
[root@localhost ~]# echo $nn
12

3. 查看当前再哪个TTY上
[root@localhost ~]# echo $SSH_TTY
/dev/pts/3
4. export  定义全局变量,指向下的shell,不支持向上
[root@localhost ~]# export ss=123   # 定义一个全局变量ss=123
[root@localhost ~]# bash                    #进入一个子shell
[root@localhost ~]# echo $ss             #变量依然生效
123
5. unset   取消变量
[root@localhost ~]# echo $ss
123
[root@localhost ~]# unset ss     #取消ss的变量
[root@localhost ~]# echo $ss
[root@localhost ~]#


三、环境变量配置文件
1. 系统层次的环境配置文件:   /etc/profile    用户环境变量,交互,登陆才执行
                                              /etc/bashrc    用户不用登陆,执行shell就生效
    用户层次的环境配置文件:  .bash_logout    用户退出时需要做得操作
                                              .bash_profile   
                                              .bashrc
2. 变量 PS1   在/etc/bashrc里面定义
[root@localhost ~]# echo $PS1       #PS1是 用来设置[root@lx01 name1] 显示的,
[\u@\h \W]\$                                     # u表示用户,h表示hostname,W表示路径的最后一层
[root@localhost ~]# PS1='<\u@\h \w>\$ '      #更改PS1变量的内容
<root@localhost ~># cd /tmp/qw/333           #可以看到原来使用[],现在为<>,大写的W变为小写的w,路径显示由只显示最后一层变为全部显示
<root@localhost /tmp/qw/333>#

PS1有那些配置,或者说PS1里头都能配置些命令提示符的什么东西:
    \d :代表日期,格式为weekday month date,例如:"Mon Aug 1"
    \H :完整的主机名称。例如:我的机器名称为:fc4.linux,则这个名称就是fc4.linux
    \h :仅取主机的第一个名字,如上例,则为fc4,.linux则被省略
    \t :显示时间为24小时格式,如:HH:MM:SS
    \T :显示时间为12小时格式
    \A :显示时间为24小时格式:HH:MM
    \u :当前用户的账号名称
    \v :BASH的版本信息
    \w :完整的工作目录名称。家目录会以 ~代替
    \W :利用basename取得工作目录名称,所以只会列出最后一个目录
    \# :下达的第几个命令
    \$ :提示字符,如果是root时,提示符为:# ,普通用户则为:$

四、Linux 系统添加操作记录审计
     有时我们需要对线上用户操作记录进行历史记录待出现问题追究责任人,但Linux系统自带的history命令用户有自行删除权限
     可以设置可以让用户的操作记录实时记录,并保证普通用户无权删除呢,可以执行以下操作
<root@localhost /usr/local># mkdir -p /usr/local/records/
<root@localhost /usr/local># chmod 777 /usr/local/records/
<root@localhost /usr/local># chmod +t /usr/local/records/
<root@localhost ~># vim /etc/profile


将以下内容添加到 /etc/profile里面:

if [ ! -d  /usr/local/records/${LOGNAME} ]         #如果这个目录不存在就创建这个目录
then
        mkdir -p /usr/local/records/${LOGNAME}
        chmod 300 /usr/local/records/${LOGNAME}         
fi
export HISTORY_FILE="/usr/local/records/${LOGNAME}/bash_history"     #定义一个命令历史文件

export PROMPT_COMMAND='{ date "+%Y-%m-%d %T ##### $(who am i |awk "{print \$1\" \"\$2\" \"\$5}") #### $(history 1 | { read x cmd; echo "$cmd"; })"; } >>$HISTORY_FILE'

date "+%Y-%m-%d %T                                            #  年月日时间
(who am i |awk "{print \$1\" \"\$2\" \"\$5}"             # who am i命令的结果取第一段,第二段、第五段
history 1 | { read x cmd; echo "$cmd";}                   #显示最后一条命令







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值