执行命令本身的三种方式 

\COMMAND

'COMMAND'

通过which查 用绝对路径执行命令


第三天上课内容&总结_history



man 也有文件路径,

man的配置文件  /etc/man.config  (centos6.8)

/etc/man_db.conf  (centos7.2)

第三天上课内容&总结_文件系统_02


像执行一个man  ls  命令  他怎么找到ls 的第一章节帮助呢?

正常情况下是我们可以通过whereis ls 执行查看ls的帮助文件的路径如下图,


第三天上课内容&总结_history_03


该文件是放在/usr/share/man下面的,在man的配置文件中设定了man命令的PATH路径(可以通过vim /etc/man.config)


         第三天上课内容&总结_man_04




vim  /etc/man_db.conf  (centos7.2)

第三天上课内容&总结_文件系统_05


man ls 命令一执行,就会根据配置文件下的路径去找对应ls命令文件的帮助文件(因为外部命令的帮助文件均放在以上的路径下)


静态库文件.a

动态库.so

2,3,9开发相关的,不需要了解


第三天上课内容&总结_文件系统_06

whatis 查看命令的基本帮助,可以知道man的章节

whatis 数据库默认是不存在的,刚装完系统可能会没有,centos6.8执行命令makewhatis (centos7.2执行mandb)

man -a  COMMAND 选项列出该命令的所有的章节,看完一个后q键退出进入下一个章节



第三天上课内容&总结_文件系统_07


man  -f 相当于whatis

第三天上课内容&总结_history_08


man搜索是重点

对于内部命令来说,如果用help 查找命令帮助文档不全的化,可以到bash里面去找,man bash 

打开后,里面存放的是bash的相关内容,以及内部命令的帮助文档

man -k password 在whatis数据库里面查找所有包含password字符(string)的信息


第三天上课内容&总结_man_09

第三天上课内容&总结_history_10


shutdown -h

第三天上课内容&总结_文件系统_11


运行shutdown -h 9:54 "system will halt"后,centos6.8会出现一直运行该命令,做不了其他事,但是centos7.2可以通过按回车键,就可以继续操作,若该命令后面加一个& 表明在后台运行该命令,不会影响继续操作

第三天上课内容&总结_man_12



第三天上课内容&总结_history_13


第一种方法,直接修改.bash_profile(查一下该文件是干什么用的)

/etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.
并从/etc/profile.d目录的配置文件中搜集shell的设置.
/etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.
~/.bash_profile:每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该
文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件.

~/.bashrc:该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该
该文件被读取.
~/.bash_logout:当每次退出系统(退出bash shell)时,执行该文件.

第三天上课内容&总结_history_14


  第二种方法就是 修改配置文件/etc/issue  


                    第三天上课内容&总结_文件系统_15


就是上述\r  \m  参数怎么查找呢???

通过man帮助,

第三天上课内容&总结_man_16

然后 再man 8 mingetty(7.2找不到相应的帮助)

找到相应的\   

然后再修改/etc/issue配置文件即可

第三天上课内容&总结_history_17


history

historysize存放在/etc/profile 文件(可以修改历史命令的条数)是针对所有用户的

之前的命令历史是放在一个.bash_history的文件里,当前登录的用户使用的命令历史是放在内存中的,需要exit正常退出(不正常退出会丢失数据),则内存的内容会写到上述文件里,再此查看就可以查到

不同用户的历史不一样的

文件是当前用户的home下的.bash_history


第三天上课内容&总结_man_18


!shut 执行以shut开头的命令历史,执行最近的


第三天上课内容&总结_文件系统_19




第三天上课内容&总结_history_20


!!表示上一条命令

ctrl+p调用上一条命令

利用上下键

!-1

以上四种方式均为执行上一条命令

ctrl+r  string  搜索最近的包含string的历史

按esc松手再按点号 快捷键找出上一条命令执行的参数

!$也可以(多个参数的化,!$调用的是最后一个参数,$的含义是命令的结束)

alt+.   alt+点号在虚拟机上可以(Xshell不行)

!^  调用第一个参数

!:N调用第几个参数

!*调用所有的参数


第三天上课内容&总结_history_21

修改自己的用户的HISTSIZE=0   到当前用户的 ~/.bash_history文件里面修改

修改所有人的  到/etc/profile


第三天上课内容&总结_history_22



先删文件再修改历史

history -c 相当于将HISTSIZE=0(仅对当前有效),退出够仍会记录1000条

history -d 删除指定行数的命令

history  -a 将内存的历史命令写到历史文件中,正常退出登录就可以,不想退出就执行-a选项


第三天上课内容&总结_man_23


两个比较,来理解,比如重新开一个终端并且是同一个用户登录,这时候执行一些命令后,然后执行history -a  

将当前的历史列表放在了历史文件中了,然后再回到之前的终端,使用history -r 选项他会重新读历史文件,然后把历史文件的内容附加到当前的历史列表里,不管有没有重复的,使用history会发现历史列表明显增加很多,而使用history -n 的化,同样他也去读历史文件,但是他会和自己当前的历史列表做比较,不会重复读取,只会把自己没有的历史附加到当前的历史列表中



第三天上课内容&总结_history_24


如果我记不得命令历史文件叫什么了

直接使用history -w XXX



第三天上课内容&总结_history_25

可以伪造历史

或者修改文件


第三天上课内容&总结_文件系统_26

执行 history -s rm -rf /

并不会执行后面的命令,但是会把后面的命令写到历史列表里面,相当于伪造



echo $HISTFILE查看当前用户的历史文件路径

找到之后也可以利用nano修改

第三天上课内容&总结_history_27



如果内部命令的help不够详细,就到man bash

然后用/string查找字符串

第三天上课内容&总结_文件系统_28



(配置文件)新增并修改历史文件,用nano编辑,不用默认的./.bash_history文件存放历史第三天上课内容&总结_man_29






第三天上课内容&总结_man_30

第三天上课内容&总结_man_31

注意是反向单引号`hostname`的用法




第三天上课内容&总结_文件系统_32

忽略以空格开头的命令历史


第三天上课内容&总结_history_33不管是否连续出现重复的命令就要删除


上述变量如果需要对当前用户或者所有用户永久生效 需要到配置文件中增加需要的功能(/etc/profile或~/.bash_profile)

export 变量名=“值”  会将该变量变为环境变量

以上变量从 man bash 里面搜HISTCONTRL 查看帮助

用help history 查询帮助内容不够详细

第三天上课内容&总结_history_34

HISTCONTROL  多个参数用冒号隔开

第三天上课内容&总结_history_35


reset 命令结束乱码界面

第三天上课内容&总结_文件系统_36


文件系统



centos 6,7和之前老版本的文件的安全性问题  


老版本里面的普通用户登录查看PATH路径是找不到sbin的是属于管理类的命令,正常情况下是不能执行的没有足够的权限,但是有个缺陷就是使用绝对路径,我不用去找你的PATH路径,直接绝对路径是可以执行管理类的命令

但是6,7在这已经做出改善,尽管PATH路径有/sbin 的路径,你用普通用户是执行不了管理命令的

centos6和7目录结构共有的是属于标准目录结构

不是共有的,就不属于标准的目录结构

查看内核文件的大小/boot


块设备 随机访问  biock ,有缓存

character 字符设备 顺序访问,无缓存

空设备


/dev/null   /dec/zero