Linux的学习之旅
Linux的文件系统层级结构标准FHS[*]/etc=====和主机相关的系统配置文件 edit the configure
[*]/home=====用户家目录
[*]/usr======二层分层的目录。默认是最大的。
[*]/dev=====设备文件
[*]/media======挂载点和可移动的设备,
[*]/mnt=====临时挂载点
[*]/var=======可变化的数据,
[*]/lib=====基本共享库和内核模块
[*]/lib64======
[*]/boot======静态文件,启动加载器,引导计算机的相关文件
[*]/root=====root用户的家目录
[*]/bin/binary======基本二进制命令工具
[*]/sbin=====基本系统二进制命令工具
[*]/opt======第三方软件包
[*]/tmp======临时文件
[*]/srv======被你的系统服务提供的数据存放在这
[*]/run======7在/下,6在/var下是系统运行中的一些数据
[*]/sys=====存放硬件相关信息
[*]/proc======= 存放 的是进程信息,对应的是内存数据。内存中的壮态信息。是一个虚拟内存。
Centos7和Centos6的一级目录的区别
centos 7:/run
centos 6:/var/run /lost-found /misc /net /selinux
lost-found=======在6里面,只要是分区下都有这个目录
有点像收容所,比如说系统运行过程中,忽然断电,有些文件因为断电的原因导致它无法识别原来是在哪个目录下,找不着了,不知道自己在哪了。就会回到这个目录
/misc /net=======在7上要装软件包,并不是没有。
systemctl start autofs======只是临时启动,手工启动
systemctl enable autofs======开机时自动启动
/misc下的cd目录也可以挂光盘。
/selinux========在7上没有这个目录而已,但功能有
Linux哲学思想
[*]一切皆文件
[*]小型单一用途的程序
[*]组合小程序完成复杂任务
[*]尽量避免捕获用户接口
[*]配置文件保存成纯文本格式
终端Terminal
[*]物理终端:系统出故障,单用户壮态, 物理控制台console表示为/dev/console
[*]伪终端:用CRT连,Xshell。 /dev/pts/#
[*]虚拟终端:一个主机模拟多个终端。默认是1-6. /dev/tty#
[*]串行终端:通过串行线连接自己的电脑。(像思科华为连在自己的上机上) /dev/ttyS#
[*]……
终端相关命令
tty:显示当前的终端
Whoami命令
whoami: 显示当前登录有效用户
who: 系统当前所有的登录会话
w: 系统当前所有的登录会话及所做的操作
命令帮助
Whatis显示命令的简短描述
使用数据库
刚安装后不可立即使用
makewhatis | mandb制作数据库
whatis cal 或 man -f cal
如果刚装好系统和刚运行,敲whatis这个命令是不会显示的。要依赖数据库
whatis cmd=======告诉你这个命令是干什么的
数字后带P的和开发相关,运维不用管
whatis要显示命令的简单说明要依赖数据库
内部命令:help COMMAND
man bash
外部命令:
(1) COMMAND --help
COMMAND -h
(2) 使用手册(manual)
man COMMAND
(3) 信息页
info COMMAND
(4) 程序自身的帮助文档
README
INSTALL
ChangeLog
(5) 程序官方文档
官方站点:Documentation
(6) 发行版的官方文档
(7) Google
示例
date--help
Usage:date...[+FORMAT]or: date[-u|--utc|--universal]YY][.ss]]
[*][]表示可选项
[*]CAPS或表示变化的数据
[*]...表示一个列表
[*]x |y| z的意思是“x或y或z“
[*]-abc的意思是-a -b –c
[*]{ } 表示分组
man命令
man命令帮助的文件手册页放在/usr/share/man
几乎每个命令都有man的“页面”
man页面分组为不同的”章节“统称为Linux手册
man命令的配置文件:/etc/man.config | man_db.conf
MANPATH /PATH/TO/SOMEWHERE: 指明man文件搜索位置
man -M/PATH/TO/SOMEWHERE COMMAND: 到指定位置下搜索COMMAND命令的手册页并显示
中文man需安装包man-pages-zh-CN
whereis cmd=======查出命令所在的路径以及man帮助相关文档的路径(是在man的配置文件里查看)
查出的文档是压缩的文件,不能直接打开。用man命令打开时,自动帮你解压缩以文档的形式展现出来。
为什么一敲man就能把帮助打开呢???实际上它打开的是对应的man帮助文档。从一个路径里去搜。
这有一个潜在的问题:将来我们自己手工去装一个三方软件,结果把man帮助放在了自己编写的一个目录下,man帮助就打不开了,自己需要手工的添加一条路径到man的配置文件里去。
man帮助一般查外部命令
外部命令它是磁盘上的一个文件
安装这个外部命令的时候,还会自动安装一些man帮助的文档
当我们man外部命令的时候,是从文档里列出的信息。
man章节
1:用户命令
2:系统调用
3:C库调用
4:设备文件及特殊文件
5:配置文件格式
6:游戏
7:杂项
8:管理类命令
9:Linux内核API
帮助手册中的段落说明:
NAME 名称及简要说明
SYNOPSIS 用法格式说明]
[]可选内容
必选内容
a | b二选一
{ }分组
...同一内容可出现多次
DESCRIPTION 详细说明
OPTIONS 选项说明
EXAMPLES 示例
FILES 相关文件
AUTHOR 作者
COPYRIGHT版本信息
REPORTING BUGS bug信息
SEE ALSO 其它帮助参考
man 帮助
查看man手册页 man [章节] keyword
列出所有帮助 man -a keyword
搜索man手册 man -k keyword 列出所有匹配的页面
使用whatis数据库
相当于whatis man -f keyword
打印man帮助文件的路径 man –w [章节] keyword
man帮助 /string向下搜索 ?string向上搜索 n同向 N反向
info帮助 n下p上u向上移一层
命令的历史
命令历史文件保存你输入的命令历史。可以用它来重复执行命令
登录shell时,会读取命令历史文件中记录下的命令~/.bash_history
登录进shell后新执行的命令只会记录在缓存中;这些命令会用户退出时“追加”至命令历史文件中
重复前一个命令有4种方法
!! Ctrl+p !! !-1
语法格式
history [-c] [-d offset]
history -anrw
history -ps arg
[*]-c 清内存,
[*]-d n 清除第n个命令
[*]n 显示最近n条历史
[*]-a 追加本次 会话新执行的命令到历史文件
[*]-r 历史文件附加到历史列表,是累加,
[*]-w 保存历史列表到指定历史文件中
[*]-n 历史文件未读的行 读到时历史列表中
[*]-p cmd 内存不记,后面的命令加上单引号命令才执行
[*]-s cmd 可以做假
命令历史的$环境变量
HISTSIZE:命令历史记录的条数
HISTFILE:指定历史文件,默认为~/.bash_history
HISTFILESIZE:命令历史文件记录历史的条数HISTTIMEFORMAT=“%F %T “ 显示时间
*HISTIGNORE=“str1:str2:…“** 忽略str1命令,str2开头的历史
控制命令历史的记录方式:
环境变量:HISTCONTROL
ignoredups默认,忽略重复的命令,连续且相同为“重复”
ignorespace忽略所有以空白开头的命令
ignoreboth相当于ignoredups, ignorespace的组合
erasedups删除重复命令
export 变量名=“值”
存放在/etc/profile或~/.bash_profile
页:
[1]