您的位置:首页 > 其它

第三天上课内容&总结

2016-07-27 23:38 183 查看
执行命令本身的三种方式
\COMMAND
'COMMAND'
通过which查 用绝对路径执行命令





man 也有文件路径,
man的配置文件 /etc/man.config (centos6.8)
/etc/man_db.conf (centos7.2)




像执行一个man ls 命令 他怎么找到ls 的第一章节帮助呢?
正常情况下是我们可以通过whereis ls 执行查看ls的帮助文件的路径如下图,





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





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




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

静态库文件.a
动态库.so
2,3,9开发相关的,不需要了解



whatis 查看命令的基本帮助,可以知道man的章节
whatis 数据库默认是不存在的,刚装完系统可能会没有,centos6.8执行命令makewhatis (centos7.2执行mandb)
man -a COMMAND 选项列出该命令的所有的章节,看完一个后q键退出进入下一个章节





man -f 相当于whatis



man搜索是重点
对于内部命令来说,如果用help 查找命令帮助文档不全的化,可以到bash里面去找,man bash
打开后,里面存放的是bash的相关内容,以及内部命令的帮助文档
man -k password 在whatis数据库里面查找所有包含password字符(string)的信息








shutdown -h




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








第一种方法,直接修改.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)时,执行该文件.



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





就是上述\r \m 参数怎么查找呢???
通过man帮助,


然后 再man 8 mingetty(7.2找不到相应的帮助)
找到相应的\
然后再修改/etc/issue配置文件即可




history

historysize存放在/etc/profile 文件(可以修改历史命令的条数)是针对所有用户的
之前的命令历史是放在一个.bash_history的文件里,当前登录的用户使用的命令历史是放在内存中的,需要exit正常退出(不正常退出会丢失数据),则内存的内容会写到上述文件里,再此查看就可以查到
不同用户的历史不一样的
文件是当前用户的home下的.bash_history





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









!!表示上一条命令
ctrl+p调用上一条命令
利用上下键
!-1
以上四种方式均为执行上一条命令
ctrl+r string 搜索最近的包含string的历史
按esc松手再按点号 快捷键找出上一条命令执行的参数
!$也可以(多个参数的化,!$调用的是最后一个参数,$的含义是命令的结束)
alt+. alt+点号在虚拟机上可以(Xshell不行)
!^ 调用第一个参数
!:N调用第几个参数
!*调用所有的参数




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





先删文件再修改历史
history -c 相当于将HISTSIZE=0(仅对当前有效),退出够仍会记录1000条
history -d 删除指定行数的命令
history -a 将内存的历史命令写到历史文件中,正常退出登录就可以,不想退出就执行-a选项





两个比较,来理解,比如重新开一个终端并且是同一个用户登录,这时候执行一些命令后,然后执行history -a
将当前的历史列表放在了历史文件中了,然后再回到之前的终端,使用history -r 选项他会重新读历史文件,然后把历史文件的内容附加到当前的历史列表里,不管有没有重复的,使用history会发现历史列表明显增加很多,而使用history -n 的化,同样他也去读历史文件,但是他会和自己当前的历史列表做比较,不会重复读取,只会把自己没有的历史附加到当前的历史列表中





如果我记不得命令历史文件叫什么了
直接使用history -w XXX




可以伪造历史
或者修改文件




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

echo $HISTFILE查看当前用户的历史文件路径
找到之后也可以利用nano修改




如果内部命令的help不够详细,就到man bash
然后用/string查找字符串




(配置文件)新增并修改历史文件,用nano编辑,不用默认的./.bash_history文件存放历史








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




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



不管是否连续出现重复的命令就要删除


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

export 变量名=“值” 会将该变量变为环境变量
以上变量从 man bash 里面搜HISTCONTRL 查看帮助
用help history 查询帮助内容不够详细



HISTCONTROL 多个参数用冒号隔开




reset 命令结束乱码界面




文件系统

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

老版本里面的普通用户登录查看PATH路径是找不到sbin的是属于管理类的命令,正常情况下是不能执行的没有足够的权限,但是有个缺陷就是使用绝对路径,我不用去找你的PATH路径,直接绝对路径是可以执行管理类的命令
但是6,7在这已经做出改善,尽管PATH路径有/sbin 的路径,你用普通用户是执行不了管理命令的
centos6和7目录结构共有的是属于标准目录结构
不是共有的,就不属于标准的目录结构
查看内核文件的大小/boot

块设备 随机访问 biock ,有缓存
character 字符设备 顺序访问,无缓存
空设备



/dev/null /dec/zero
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: