linux系统管理(2)

一、历史命令#history(详细)
1、为什么保存历史命令?
方便命令操作,方便查看系统上执行过的命令,当发生错误是,可以查看自己执行过什么命令,从而知道错误的原因
2、查看历史命令 #hello 在这里插入图片描述
…历史命令将保存在用户家目录下的 .bash_history 文件中:
[root@localhost ~]# vim .bash_history
…不同用户拥有独立的历史命令
…历史命令默认不会立即写入文件,当bash程序退出时,写入文件
…保持历史命令存在安全隐患,系统默认保存1000条历史命令
#echo $HISTSIZE 改命令可查看历史命令保存条数,我的是修改过的,所以显示为500,如图在这里插入图片描述
3、修改历史命令保存条数
临时修改历史命令保存条数可直接输入命令#HISTSIZE=500,即将历史命令保存条数修改为500条,改命令不会被保存;
永久性修改命令条数 #vim /etc/profile ,然后在打开的页面里修改在这里插入图片描述
然后esc键,:wq 回车,我修改为50,然后输入 # source /etc/profile ,加载更改后的文件 ,然后重启虚拟机,输入# echo $HISTSIZE 在这里插入图片描述
4、如何给历史命令添加时间
和修改历史保存命令条数的步骤是一样的
先# vim /etc/profile ,然后输入HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S "然后
# source /etc/profile 在这里插入图片描述
输入命令#history,如下图即修改完毕

在这里插入图片描述
5、关于 help history
当我们输入#heip history命令时会出现关于命令history的官方解释,如下图所示:在这里插入图片描述
这个是自己的理解,更容易理解…别管字迹
在这里插入图片描述
HISTTIMEFORMAT=date HISTTIMEFORMAT:打印时间戳在这里插入图片描述
HISTFILESIZE=1024 HISTFILESIZE:限制历史命令文件大小 在这里插入图片描述
!60 意思是直接执行历史命令第60条在这里插入图片描述
!!再一次执行上一次的命令在这里插入图片描述
二、bash的别名机制
alias vimif=“vim /etc/sysconfig/network-scripts/ifcfg-ens32” #定义别名,,就是将vim /etc/sysconfig/network-scripts/ifcfg-ens32起个别名叫vimif,此时可以直接执行命令vimif,和执行vim /etc/sysconfig/network-scripts/ifcfg-ens32的效果是一样的在这里插入图片描述
\vimif 还原别名的真实含义,说明vimif只是别名,还原命令本身,在这里插入图片描述
unalias 表示取消别名,unalias vimif表示取消了vimif的别名含义
三、bash的变量
变量是计算内存的单元,其中存放的值可以改变,当Shell脚本需要保存一些信息时,如一个文件名或是一个数 字,就把它存放在一个变量中。每个变量有一个名字,所以很容易引用它。使用变量可以保存有用的信息,是系统获 知用户相关设置,变量也可以用于保存暂时信息
在Linux系统中 变量分为了本地变量,局部变量,环境变量 本地变量:生效范围为当前shell进程中的某代码片段,通常指函数
vim test.sh
name=daidai
sh test.sh
echo $name在这里插入图片描述
此时我们发现用echo执行不出,用sh可以,这就是本地变量

局部变量:又称标准变量或普通变量,指生效范围为当前shell进程;对当前shell之外的其它shell进程,包括当 前shell的子shell进程均无效
此时我们在伪终端2上定义name=daidai,用echo输出有结果;在这里插入图片描述
在终端1上执行没有结果;在这里插入图片描述
环境(全局)变量:生效范围为当前shell进程及其子进程
export name=daidai 全局变量定义在这里插入图片描述
四、特殊重要符号
1、管道
管道符号 “|”
Linux 管道使用竖线|连接多个命令,这被称为管道符,Linux 管道的具体语法格式如下:command1 | command2
command1 | command2 [ | commandN… ]
当在两个命令之间设置管道时,管道符|左边命令的输出就变成了右边命令的输入。只要第一个命令向标准输出写入,而第二个命令是从标准输入读取,那么这两个命令就可以形成一个管道。大部分的 Linux 命令都可以用来形成管道。
这里需要注意,command1 必须有正确输出,而 command2 必须可以处理 command2 的输出结果;而且 command2 只能处理 command1 的正确输出结果,不能处理 command1 的错误信息
2、重定向
标准输出:1
标准输入;0
错误输出:2
输入重定向:>
输出重定向:<
例如:此时我们将“ll -T”重定向到file中,不可以用ll -T file,而是要用ll -T 2>file,必须加标识符 在这里插入图片描述

      **正确输出:** 1> 1>> 等价于 > >> 输出重定向。相对于输入重定向来说,输出重定向更常用,输出重定向使用户能 把一个命令的输出重定向到一个文件里,而不是显示在屏幕上,这种功能使用于多种情况,例如,如果某个命令的输 出很多,在屏幕上不能完全显示,即可把他重定向到一个文件中,稍后在用文本编辑器来打开这个文件
 例如: date 1> date.txt     >表示添加
    date >> date.txt       >>表示追加
    
  如图,错误输出会被输出到屏幕上,正确输出会输入到文件里

在这里插入图片描述
**错误输出:**错误输出和正确输出的执行步骤基本是一样的,正确输出是把错误的输出到屏幕上,正确的输入到文件里,而错误输出是将数字1换成2,“>" ">>"的表示含义是一样的,但是将正确输出输出到屏幕上将错误输出输入到文件里去。
正确输出和错误混合输出:&>
[标准输出和错误输出都打印到一个文件里去:
在这里插入图片描述
正确输出和错误输出都输入到相同位置:2>&1
例如1: 先# tar czvf etc.tar.gz /etc/ >file 2>&1,然后用
cat file查看
例如2:# ls /home/ /aaaa > list.tct 2>&1
# cat list.t

dd if=/dev/zero of=/file3 bs=1024 count=20,此处的if和of分别表示输入和输出,#/dev/zero,是一个输入设备在这里插入图片描述
#/dev/null------它是空设备,也称为位桶(bit bucket),外号叫无底洞,你可以向它输出任何数据,它通吃,并且不 会撑着!任何写入它的输出都会被抛弃。如果不想让消息以标准输出显示或写入文件,那么可以将消息重定向到位桶
ls;date >/dev/null 2>&1

ll -T 2> file #表示将错误输出输入到文件file中
ll -T 2>> file #表示将错误输出追加到文件file中
ll > file #表示将该命令输出重定向到file中
ll 1>> file #将该命令的标准输出追加到file中
ll >>file#将该命令的标准输出追加到file中

文件描述符
在Linux系统中一切皆可以看成是文件,文件又可分为:普通文件、目录文件、链接文件和设备文件。文件描述符(file descriptor)是内核为了高效管理已被打开的文件所创建的索引,其是一个非负整数(通常是小整数),用于指代被打开的文件,所有执行I/O操作的系统调用都通过文件描述符。程序刚刚启动的时候,0是标准输入,1是标准输出,2是标准错误。如果此时去打开一个新的文件,它的文件描述符会是3
内核(kernel)利用文件描述符(file descriptor)来访问文件。文件描述符是非负整数。打开现存文件或新建文件时,内核会返回一个文件描述符。读写文件也需要使用文件描述符来指定待读写的文件。
首先cd /proc/,然后用ls查看,会发现每个进程都有一个问了描述符列表在这里插入图片描述
也可以下载一个apache
[root@client ~]# yum install httpd #下载程序
[root@client ~]# systemctl start httpd #启动服务
[root@client ~]# ps -ef |grep httpd #查看进程
[root@client ~]# cat /proc/7919/fd/在这里插入图片描述
Linux对文件描述符的限制有两个级别,分别是用户级别和系统级别:
系统级别:cat /proc/sys/fs/file-max在这里插入图片描述
用户级别: ulimit -n在这里插入图片描述
限制资源使用的配置文件是:
vim /etc/security/limits.conf 在这里插入图片描述

第一列表示用户和用户组(@开头)
第二列表示软限制还是硬限制。
hard和soft的区别: soft是一个警告值,而hard则是一个真正意义的阀值,超过就会报错,一般情况下都是设为同一个值。
第三列表示限制的资源类型。
core是内核文件,nfile是文件描述符,nproc是进程,一般情况下只限制文件描述符数和进程数就够了
第四列表示限制的最大值。
查看系统当前打开的文件描述符数量:
cat /proc/sys/fs/file-nr
在这里插入图片描述
第一个数表示当前系统分配后已使用的文件描述符数,
第二个数表示分配后未使用的(内核2.6版本中这个值总是为0,这并不是一个错误,它意味着已经分配的文件描述符总会被使用),
第三个数等于最大值file-max。

查看某个进程打开的文件描述符数量
安装命令:yum install lsof -y 在这里插入图片描述
查看命令:lsof -p 2896 |wc -l
在这里插入图片描述
. 点号
在Linux中点号代表当前目录
… 双点号
双点号代表上一级目录

;分号
LInux 在执行多条命令时,用分号分开,顺序地独立执行各条命令, 彼此之间不关心是否失败, 所有命令都会
执行
例如:在这里插入图片描述

&& 存在逻辑判断,前一个命令执行成功,后一个命令才会执行在这里插入图片描述

|| 存在逻辑判断,前一个命令执行不成功,后一个命令也会执行在这里插入图片描述
``: 解析shell命令在这里插入图片描述
‘’: 强引用,所见即所得在这里插入图片描述
“”: 弱引用,会解析变量在这里插入图片描述
“echo 出入时对于转义不受强引弱引的限制,与echo的“-e”参数有关”在这里插入图片描述
{} 大括号
做扩展,或者构建代码块
在这里插入图片描述

  • : 匹配任意长度的任意字符,表示通配的作用
    ll |grep “[0-9].txt
    ll |grep ".
    .txt”
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值