博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
五周第四次课(4月23日)
阅读量:6440 次
发布时间:2019-06-23

本文共 3222 字,大约阅读时间需要 10 分钟。

8.6 管道符和作业控制

| 管道符,把前面命令输出的结果交给后面的命令

[root@aiker02 ~]# cat ls.txt | wc -l6
[root@aiker02 ~]# ls | wc -l13

ctrl z 暂停一个任务

[root@aiker02 ~]# toptop - 23:15:20 up 5 days,  9:23,  2 users,  load average: 0.00, 0.01, 0.05Tasks:  70 total,   2 running,  68 sleeping,   0 stopped,   0 zombie%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 stKiB Mem :  1883724 total,   478788 free,    72408 used,  1332528 buff/cacheKiB Swap:        0 total,        0 free,        0 used.  1612380 avail Mem   PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                  993 root      20   0  130716  13372   8364 S  0.3  0.7  14:49.25 AliYunDun                  1 root      20   0  125140   3648   2440 S  0.0  0.2   1:26.27 systemd      [1]+  Stopped                 top

jobs 查看后台的任务

[root@aiker02 ~]# jobs
[1]+ Stopped top
bg[id] 把任务调到后台
[root@aiker02 ~]# bg 1<br/>[1]+ top &
fg[id] 把任务调到前台
fg 1
sleep 5 暂停5s

[root@aiker02 ~]# sleep 5[root@aiker02 ~]#

命令后面加& 直接丢到后台

[root@aiker02 ~]# top &<br/>[1] 13841

五周第四次课(4月23日)

8.7/8.8 shell变量

PATH,HOME,PWD,LOGNAME

env命令

[root@aiker02 ~]# envXDG_SESSION_ID=54517HOSTNAME=aiker02TERM=linuxSHELL=/bin/bashHISTSIZE=1000

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

[root@aiker02 ~]# set
自定义变量a=1
[root@aiker02 ~]# a=1<br/>[root@aiker02 ~]# echo $a<br/>1
注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名须遵循如下规则:

命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。

中间不能有空格,可以使用下划线(_)。
不能使用标点符号。
不能使用bash里的关键字(可用help命令查看保留关键字)。
变量类型

运行shell时,会同时存在三种变量:

1) 局部变量 局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。

2) 环境变量 所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。
3) shell变量 shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行
全局变量export b=2 全局变量有继承属性,但上级shell不生效,子shell和下级shell生效

8.9 环境变量配置文件

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

/etc/bashrc 用户不用登录,执行shell就生效
~/.bashrc
自定义
~/.bash_profile
用户下
~/.bash_history
命令行历史
~/.bash_logout
登出执行
修改后如果想立即生效,使用. file 或者 source file**

PS1='[\033[01;32m]\u@\h[\033[00m]:[\033[01;36m]\w[\033[00m]\$ ' 修改命令行提示符格式

bash_profile和bashrc区别

【.bash_profile 与 .bashrc 的区别】

.bash_profile is executed for login shells, while .bashrc is executed for interactive non-login shells.

【login shell 与 non-login shell 的区别】

1、当你直接在机器login界面登陆、使用ssh登陆或者su切换用户登陆时,.bash_profile 会被调用来初始化shell环境
Note:.bash_profile文件默认调用.bashrc文件
.bash_profile中有如下内容
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
2、当你不登陆系统而使用ssh直接在远端执行命令,.bashrc 会被调用
3、当你已经登陆系统后,每打开一个新的Terminal时,.bashrc 都会被再次调用。

【故】若要配置环境变量之类,最保险是写在 .bashrc 文件中。因为不管是登陆还是不登陆,该文件总会被调用!

Linux 系统添加操作记录审计

Linux系统自带的history命令用户有自行删除权限,那怎么设置可以让用户的操作记录实时记录,并保证普通用户无权删除呢?本文教你一招

1.建立文件夹

mkdir -p /usr/local/shellrecord/records/ chmod 777 /usr/local/shellrecord/records/chmod +t /usr/local/shellrecord/records/

2.vim /etc/profile 在最后添加下面的代码

[root@aiker02 ~]# vim /etc/profile

if [ ! -d  /usr/local/shellrecord/records/${LOGNAME} ]thenmkdir -p /usr/local/shellrecord/records/${LOGNAME}chmod 300 /usr/local/shellrecord/records/${LOGNAME} fi export HISTORY_FILE="/usr/local/shellrecord/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'

转载于:https://blog.51cto.com/235571/2104210

你可能感兴趣的文章
AR头显要上天!欧洲太空总署或用HoloLens维修太空站
查看>>
沃尔玛建立自家的人工智能网络,抗衡竞争对手亚马逊
查看>>
Mysql备份与还原及优化方法
查看>>
linux常用命令和选项
查看>>
sed 学习笔记(未完成)
查看>>
Eclipse保存验证JS缓慢
查看>>
2017 JMP Discovery Summit China圆满落幕
查看>>
9 Easy Steps for Successful Data Migration
查看>>
人工智能,不止于技术的革命--WOT2017全球创新技术峰会开幕
查看>>
mysql 在大型应用中的架构演变
查看>>
ibm系列文章 --> Windows 到 Linux 之旅
查看>>
全备份失败后,如何手工清除exchange日志文件,附微软KB
查看>>
java如何连接mysq之源码l讲解
查看>>
企业运维笔试考题(1)
查看>>
Mysql修改存储过程相关权限问题
查看>>
4.2权限管理
查看>>
彻底理解ThreadLocal
查看>>
Node.js~ioredis处理耗时请求时连接数瀑增
查看>>
企业如何走出自己的CRM非常之道?
查看>>
整合看点: DellEMC的HCI市场如何来看?
查看>>