Linux基础 第五天

历史命令(history)补充

history -c : 删除所有条目,从而清空历史列表。(清空的是内存中加载的历史列表,文件中保存的历史列表不受影响)
history -d 401 : 从指定位置删除历史列表。(同上效果)
history -r : 读取历史文件并将内容追加到历史列表中。
history -a : 将当前绘画的历史行追加到历史文件中。
history -n : 从历史文件中读取所有未被读取的行。
history -w :将当前历史写入到历史文件中,并追加到历史列表中。
history -p `` : 对每一个ARG参数展开历史并显示结果,而不存储到历史列表中。
history -s`` :以单条记录追加ARG到历史列表中。
HISTFILE="/.nihao" :记录历史命令和文件名(并不在/目录下创建一个 .nihao文件,且只是在内存中修改此变量,当系统重启后,此变量值会恢复为默认变量值“/root/.bash_history”)。

HISTTIMEFORMAT= ` date  `:

打印时间戳,显示列表历史命令的时候会显示什么时间使用的历史变量。
HISTFILESIZE=1024 : 限制历史命令文件大小
HISTSIZE=1000 : 保存历史条目设置为1000.
HISTCONTROL = ignorespace :历史命令不保存有空格开头的命令

快捷命令

!58 :当已知历史命令中的第58个命令是什么,并且想要使用它时,可以不用重复输入命令,使用此命令,就意味着在命令行输入第58行的命令并且执行它。
!! :执行历史命令中的上一条命令(对于history -p执行的命令并不会执行)。
!if : 执行历史命令中以“if”开头的命令,如历史命令执行过 ifconfig 。
.+ ESC :取出上一条参数到命令行(若是:命令 参数 的形式,取出的是参数;若是:命令 的形式,取出的是命令;若是:命令 参数1 参数2 ,取出的是参数2)

!$ : 取出上一条参数并执行
echo $_ :打印出上一条命令的参数

别名机制

alias vimif="vim /etc/sysconfig/network-scripts/ifcfg-ens32" : 定义别名。定义别名以后,就可以在命令行中输入别名执行。(可用tab补全命令)
\ls :还原命令本身(ls就是一个别名。ls=ls --color=auto。使用\还原命令后,color=auto将不执行)
还原命令
unalias vimif :取消定义的别名

变量*

本地变量:作用域, shell进程中的某代码片段。(只能在某个代码中才会显示或被使用)
vim test.sh
#name=xuankui
echo $name

局部变量:又称标准变量或普通变量 :作用域:当前shell(bash)进程,对其子进程无效
name=wangzhe
环境(全局)变量:生效范围为当前shell(bash)进程及其子进程。
export name=wangzhe 全局变量定义

特殊符号

1) | —> 管道
“|” —》进程()–(独占内存空间)
进程间通信的方式:
a. 管道:上一个进程的标准输出作为下一个进程的标准输入。
b. 共享内存:
c. 消息队列:kafka,rabbitmq,rocketmq
d. socket :
在这里插入图片描述
使用cat命令可以输出test.sh的内容,管道“|”传输test.sh的值给grep,传输的值经过grep的过滤,只输出有“nihao”的所在行的内容。

2)文件描述符

文件描述符是非负整数。内存
内核利用文件描述符来访问文件。
打开现存文件或新建文件时,内核会返回一个文件描述符。
读写文件也需要使用文件描述符来指定待读写的文件。
每一个进程都有【文件描述符】

需要先下载一个程序:

yum install httpd

并且启动一个服务:

systemctl start httpd

然后查看进程:
在这里插入图片描述
系统级别最大可使用的文件描述符:
在这里插入图片描述

vim /etc/security/limits.conf 
#<domain>      <type>  <item>         <value>
#
#*               soft    core            0
#*               hard    rss             10000
#@student        hard    nproc           20
#@faculty        soft    nproc           20
#@faculty        hard    nproc           50
#ftp             hard    nproc           0
#@student        -       maxlogins       4

第一列表示用户和用户组(@开头)
第二列表示软限制还是硬限制。(hard和soft的区别: soft是一个警告值,而hard则是一个真正意义的阀值,超过就会报错,一般情况下都是设为同一个值。)
第三列表示限制的资源类型。
core是内核文件,nfile是文件描述符,nproc是进程,一般情况下只限制文件描述符数和进程数就够了
第四列表示限制的最大值。

查看系统当前打开的文件描述符数量

cat /proc/sys/fs/file-nr 
1280	0	95095

第一个数表示当前系统分配后已使用的文件描述符数,
第二个数表示分配后未使用的(内核2.6版本中这个值总是为0,这并不是一个错误,它意味着已经分配的文件描述符总会被使用),
第三个数等于最大值file-max。

要查看某个进程打开的文件描述符数量需要先安装一个软件(需要先知晓该进程的)
yum install lsof -y
然后使用代码 :lsof -p 7919 |wc -l
就可以显示出文件描述符的数量

156

Linux 提供了三种I/O设备
标准输入:0(一般指键盘、鼠标、等输入设备的输入)
标准输出: 1
错误输出(标准错误): 2
0、1、2是文件描述符

重定向:重定向就是不适用系统的标准输入端口,标准输出端口和标准错误输出端口,而进行重新的指定。所以重定向分为输入、输出和错误重定向,通常情况下重定向到一个文档。
输入重定向 >
输出重定向 <
例如:在这里插入图片描述
此时ll命令的内容重定向输出到file2文件中,并且此重定向输出是标准输出,所以在“>”前加了数字1。

在这里插入图片描述
此时 ll -T 是一个错误输出,所以重定向输出到文件file3时,需要在“>”前加一个2才能输出到file3中。
在这里插入图片描述
将file2文件中的内容重定向输入到cat命令中。
在这里插入图片描述“>>”表示追加重定向输出,即不覆盖文件的原内容,将命令产生的新内容输出到文件文件的原内容之后。

tar czvf etc.tar.gz /etc/   1>file 2>error

此时这个命令会产生一堆标准输出和标准错误,“1>file”是将标准输出的内容重定向输出到file文件中,“2>error”则是将标准错误的内容重定向输出到error文件中。

tar czvf etc.tar.gz /etc/ >file 2>&1

将标准错误的内容通过标准输出打印到文件中。

ls;date >/dev/null 2>&1 

“;”表示分割,两个命令都执行。
/dev/null 是空设备,也称为位桶(bit bucket),可以向他输出任何数据。任何写入它的输出都会被抛弃,如果不想让消息以标准输出显示或写入文件,那么可以将信息重定向到位桶

/dev/zero 是一个输入设备,可以用他来初始化文件,该设备无穷尽地提供0
在这里插入图片描述

命令的拼接

; 不存逻辑判断,即使前一个命令执行失败,后面的命令依然执行

 ls -T;echo "123"

在这里插入图片描述
如上图所示,两个命令都输出出来了,只是一个是标准错误,一个是标准输出

&& 存在逻辑判断,前一个命令执行成功,后一个命令才会执行

 ls -T&&echo "123"

在这里插入图片描述
当前一个命令是标准错误时,后一个命令就不执行了。

|| 存在逻辑判断,前一个命令执行不成功,后一个命令也会执行

ls -T || echo "123

在这里插入图片描述
当前一个命令是标准错误时,后一个命令依然会执行。

``: 解析shell命令

在这里插入图片描述
原本echo是输出后一个参数(即打印date这四个字母),但是date加了反引号后,就会执行date命令
'': 强引用,所见即所得

"": 弱引用,会解析变量
在这里插入图片描述
在这里插入图片描述
(date是命令,不是变量。)

“echo 出入时对于转义不受强引弱引的限制,与echo的“-e”参数有关”(转义指的是\n之类转义字符)
在这里插入图片描述

{}

cp cy.txt cy.txt.bak 

使用命令cp复制cy.txt文件 ,保存为cy.txt.bak文件

cp cy.txt{,.bbk} 

效果等同于cp cy.txt cy.txt.bak 命令

 cp cy{.txt,.hehe}

使用命令cp复制cy.txt文件 ,保存为cy.hehe文件

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值