第九课预习笔记

8.1 shell介绍
8.2 命令历史
8.3 命令补全和别名
8.4 通配符
8.5 输入输出重定向
8.6 管道符和作业控制
8.7/8.8 shell变量
8.9 环境变量配置文件
扩展
bashrc和bash_profile的区别 http://ask.apelearn.com/question/7719


Linux shell 基础

查看是否安装zsh和ksh


命令历史

历史命令保存在用户家目录下的.bash_history文件中

使用history查看之前的历史命令

 

查看最多可以存多少条

history -c 清空内存中的命令缓存,但是不会删除.bash_history

修改最大历史命令数量

可以改成5000

发现并没有生效

需要source一下,才能生效。

查看命令运行的具体时间

从另外一个终端查看这个变量,发现没有生效。说明只对当前终端生效,如果想对所有终端生效。可以编辑配置文件/etc/profile

然后source一下

从新打开一个终端,成功!

 万一别人删除了这个文件,就看不到过去的命令了,那么怎么办呢?可以赋予此文件一个a权限,只能追加。

如果没有logout或者exit退出,而是直接关闭终端的话,那么内存中的命令,不会全部保存到.bash_history中。

!!表示最后一条命令

!n表示运行指定一条命令

例如

!echo表示从命令历史中的最后一条开始,往前找以echo开头的命令。

 


命令补全和别名 

若命令是唯一的,按一下tab键就可以补全

若不是唯一,按一下tab键没有反应,按两下可以列出所有以此开头的所有命令。

tab一下,自动补全。

安装一个参数补全的包,重启生效。

重启后,查看包已经安装好

成功实现参数补全

如果命令太长,可以使用alias重命名

用户家目录下的.bashrc下有三条

但是这些远远不够,还有一些存在于/etc/profile.d/下 

取消自定义别名


通配符

*表示通配,不限制长度

 ?表示通配一个字符

[0-9] 指定数字范围,作用和[0123456789]一样

还有[a-z] [A-Z]。

{0,1,2,3,4}花括号需要用逗号间隔开来

>把前面正确内容覆盖到后面文件

  2>错误信息覆盖到后面文件

>>把前面正确内容追加到后面文件 

2>>错误信息追加到后面文件

>+2> == &> 把正确和错误的信息都覆盖到后面文件

&>>把正确和错误的信息都追加到后面文件

 

也可以将正确和错误信息分开输出到不同文件中

< 输入重定向


管道符和作业控制

管道符的作用是将前方的结果输出给后方

统计1.txt有多少行

过滤1.txt中包含root的信息

暂停一个任务

fg 继续执行暂停的任务

列出停止的任务

继续某一个任务

可以使用bg命令后台运行

命令后加入&,表示直接在后台运行此命令

在其余终端,无法查看当前终端的后台任务

但是可以在其他终端通过 ps aux |grep sleep查看到进程


shell变量

env获取系统变量

set也可以查看变量,除系统自带的以外,还有用户自定义的变量。

自定义变量

变量名规则:字母、数字和下划线都可以,但是首位不能是数字

变量值如果有特殊符号,需要用单引号括起来。

那么能不能用双引号呢?有时候会出问题

所以这里用单引号。

变量的叠加的时候用双引号

对比单引号和双引号的区别。

单引号中的内容不变,不识别为变量。双引号中的内容可以识别为变量。

w查看当前系统有哪些用户登录

找到自己是哪个终端登录的

在1终端中定义一个变量

在2终端中不生效

pstree是linux很有用的一个命令,可打印系统当前各个进程父子关系

首先安装pstree,然后使用此命令

在1终端中做如下设置,可以使1终端的子shelle也可以显示这个变量

但是在2终端中还是无法查看此变量。

只对红框内的bash生效

对红框下方的shell不起作用。

而且对同一终端中,变量是从父shell往子shell生效。

如果在子shell中定义变量,那么在父shell中并不生效。

取消变量

全局变量只在子shell中生效,如何打开子shell呢,直接运行bash命令。


环境变量配置文件

 编辑用户的.bash_profile,变量只对该用户生效。

source和.的作用一样,但是不能放在sh 后面 只能放在最前面

系统的环境变量有两大类:一个是系统层次的,即/etc下的。另一个是用户层次的,即用户家目录下的.bash_profile或.bashrc。

.bash_profile是用户登录时,自动加载profile,profile会自动调用.bashrc

.bashrc用户无需登录,可以在系统中执行shell脚本,执行时可以自动调用.bashrc中的配置。

用户在logout时候执行哪些命令

PS1在/etc/bashrc中定义 

root是用户名 localhost是主机名 ~是所在目录

格式如下

将W改为w

所在目录变为绝对路径

也可以不加[]

也可以改成<>

还可以带颜色显示

用户登录进来就是PS1。除了PS1还有PS2。

执行某些命令的时候会进入此状态

也可以重定义PS2

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值