Linux的文件系统层级结构标准FHS

Linux的学习之旅_第1张图片

  • /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[OPTION]...[+FORMAT]or: date[-u|--utc|--universal][MMDDhhmm[[CC]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] [n]
history -anrw [filename]
history -ps arg [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