常青树 发表于 2019-2-18 09:02:10

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]
查看完整版本: Linux的学习之旅