linux查看帮助及文件系统
内容:
查看帮助手册
history命令
文件系统与目录结构
路径
ls命令
查看帮助手册:
whatis
command --help
man
info
本地帮助文档/usr/share/doc/
官方在线文档
其他网站和搜索
whatis:
显示命令的简短描述
每晚使用一个数据库更新
刚安装后不可立即使用
可使用makewhatis(CentOS6)或mandb(CentOS7)制作数据库
whatis command
内部命令和外部命令使用帮助手册是不一样的
内部命令:help command
man bash
外部命令:
1.command --help
2.man command
3.info command
4.程序的自身的帮助文档:README INSTALL Changelog
5.程序的官方文档
6.发行版的官方文档
7.Goole
--help选项:
显示用法总结和参数列表
显示常用的,并非所有的
ls --help
练习:
显示当前日期,格式:2016-08-08
指令:date +%Y-%m-%d
显示前天是星期几:
指令:
date -d "-2day" +%A
date -d "-2day" +%a
设置当前日期为2008-08-08 08:00
指令:
date -s "2008-08-08 08:00" "+%Y-%m-%d %H:%M"
man命令:
提供命令帮助手册
手册页存放在/usr/share/man
几乎每个命令都有man的页面
man页面分组为不同的章节
man命令的配置文件存放路径:/etc/man.config或者man_db.conf
MANPATH /PATH/TO/SOMEWHERE:指明手册文件搜索位置
man -M /PATH/TO/SOMEWHERE COMMAND:到指定位置下搜索COMMAND命令的手册页并显示
man章节:
用户命令
系统调用
C库调用
设备文件及特殊文件
配置文件格式
游戏
杂项
管理类的命令
Linux内核API、
[]:为可选内容
<>:为必选内容
a|b:为二选一,或的意思
...:同一内容可出现多次
man命令的控制翻页指令:
space空格键:向下翻页
Page Up和Page Down:表示向上翻一行和向下翻一行
enter回车键:向下翻一行
/word:搜寻关键字
Home:去第一页
End:去最后一页
/string:向下搜寻string
?string:向上搜寻string
n,N:利用/和?搜寻字串是,n来继续下一个搜索(从上往下)
N来搜索上一个搜索(从下往上)
q:结束man
#:跳转至第#行
ctrl+V,ctrl+F,ctrl+f:向文件尾部翻屏
b,ctrl+B:向文件首部翻屏
d,ctrl+D:向文件尾部翻半屏
u,ctrl+U:向文件首部翻半屏
ctrl+N, e,ctrl+E,j ,ctrl+J:向文件尾部翻一行
ctrl+Y, y,ctrl+P,p ,k ,ctrl+K:向文件首部翻一行
1G:回到文件首部
G:翻至文件尾部
练习:
字符终端登录时,显示当前登录终端号,主机名和当前时间
字符终端登录时,以上信息都是在配置文件/etc/issue中,要显示以上信息,则需修改/etc/issue中的内容,
man issue查看如何修改issue中文件内容,在帮助文档中并没有如何修改,但是最后给了提示信息”see also“
然后查找到了 man mingetty中issue中的一些参数
根据以上内容,要显示登录终端号为选项\l,主机名为:\n,当前时间为:\d
在/etc/issue加入\l,\n,\t,选项,看下效果,exit退出后,重新登录
执行成功,登录时显示了登录终端号,主机名,当前时间
今天17:30自动关机
指令:shutdown -h 17:30
以上指令经过实践可以成功执行
man有9个章节同一个命令可能在多个章节中都有,
搜索指定的章节
man -# command (#为章节数)
通过本地文档获取帮助
/usr/share/doc/目录:
多数安装了软件包的子目录,包括了这些软件按的相关原理说明
不适合其他地方的文档位置
配置文件范例
HTML/PDF/格式的文档
授权书详情
通过在线文档获取帮助:
第三方程序官方文档
通过发行版官方的文档光盘或者网站可以获得
安装指南
部署指南
虚拟化指南
-
红帽知识库和官方在线文档
网站和搜索:
搜索技巧:
Openstack file :pdf
rhca site:redhat.com、doc
补全histoy:
bash的基础特性:
命令历史:shell进程护在其会话中保存此前用户提交执行过的命令
指令: history
HISTSIZE:shell进程可保留的命令历史的条数
HISTFILE:持久保存命令历史的文件;
.bash_history
HISTFILESIZE:命令历史文件的大小(数量?)
-c:清空命令历史;
-d offset:删除指定命令历史
-#:显示最近#条历史
-a:追加本次会话新执行的命令历史列表至历史文件
-n:读历史文件中未读过的行到历史列表
-r:从文件读取命令历史至历史列表中
-w: 把历史列表中的命令追加至历史文件中
-p:展开历史参数成多个行,但不存在历史列表中
-s:展开历史参数成一行,附加在历史列表后
history n :显示最近的n条命令;
调用命令历史列表中的命令:
!n:历史中的第n条命令
!!:最近的一次命令
!STRING:再次执行命令历史列表中最近一个以STRING开头的命令
注意:命令的重复执行有时候需要依赖于幂等性
调用上一条命令的最后一个参数:
快捷键:ESC然后 .
字符串:!$
HISTSIZE:命令历史记录的条数
HISTFILE:指定历史文件,默认为~/.bash_history
HISTFILESIZE:命令历史文件记录历史的条数
HISTIMEFORMAT="%F %T"显示时间
HISTIGNORE="str1:str2:.."忽略string1,string2历史,可跟多个历史用:隔开
变量设置为忽略ls后,在使用ls命令,在命令历史中不显示ls命令
控制命令历史的记录的方式:
环境变量:HISTCONTROL
ignoredups:忽略重复的命令:
ignorespace:忽略以空白字符开头的命令
ignoreboth:以上两者同时生效
export 变量名=”值“
存放在:/etc/profile或者~/.bash_profile
重复前一个命令:
1.重复前一个命令使用上方向键,回车执行
2.按!!回车执行
3.输入!-1回车执行
4.ctrl+p回车执行
!字符串:重复前一个此字符串开头命令
!num:history命令出输出中要序号,重复此num对应命令
!?:重复前一个包含此字符串的命令
重复n个命令之前的那个命令
键入ctrl+r来在命令历史中搜索
重新调用前一个命令中的最后一个参数:
!$
Esc + .:按下Esc松开,然后按下.键
alt+.:和上面不同,同时按住alt和.键
调用历史参数:
调用上一条
command !^:利用上一个命令的第一个参数做command的参数
command !$:利用上一个命令的最后一个参数做command的参数
command !*:利用上一个命令的全部参数做command的参数
command !:n :利用上一个命令的第n个参数做command的参数
调用第n条
!n:^ 调用第n条命令的第一个参数
!n:$ 调用第n条命令的最后一个参数
!m:n 调用第m条命令的第n个参数
!n:* 调用第n条命令的所有参数
!string:^ 从命令历史搜索已string开头的命令,并获取它的第一个参数
!string:$ 从命令历史搜索已string开头的命令,并获取它的最后一个参数
!string:n 从命令历史搜索已string开头的命令,并获取它的第n个参数
!string:* 从命令历史搜索已string开头的命令,并获取它的所有参数
文件系统与目录结构:
通常我们描述文件系统是一个倒置的树状结构,如下图
文件系统:
文件和目录被组织成一个单根倒置树结构
文件系统从根下开始,用“/ ”表示
跟文件系统(rootfs):root filesystem
名称是大小写敏感==》此句话有误
以.开头的文件为隐藏文件
路径分隔的/
文件有两类数据:
元数据:metadate
数据:date
8.文件系统分层结构;LSB Linux Standdrd Base
9.FHS:(Filesystem Hierarchy Stanndrad)
文件名规则:
-
包括路径在内的文件名称最长4095个字节,用/分隔的路径不能超过255个字节
蓝色为目录文件,
绿色为可执行文件
红色为压缩文件
浅蓝色为链接文件
灰色为其他文件
2.除了斜杠和NUL,所有的字符都有效。但使用特殊字符的目录名和文件不推荐使用,有些字符需要用引号来引用他们
3.标准Linux文件系统(如ext4),文件名称大小写敏感。
如:abc aBc Abc此三个文件不是同一个文件
备注:fat文件系统不是大小写敏感
文件系统结构:
/boot:引导文件存放目录,内核文件(vmlinuz),引导加载器(bootloader,grub)都存放于此目录
/bin:供所有用户使用的基本目录;不能关联至独立分区,OS启动即会用到的程序
/sbin:管理类的基本命令;不能关联至独立分区,OS启动即会用到的程序
/sbin:只有管理员使用 /bin:普通用户使用
4./lib:启动时程序依赖的基本共享库文件以及内核模块文件(/lib/modules)
5./lib64:专用于x86_64系统上的辅助共享文件库存放位置
6./etc:配置文件目录
7./home/USERNAME:普通用户家目录
8./root:管理员家目录
9./media:便携式移动设备挂载点
10./mnt:临时文件系统挂载点
11./dev:设备文件及特殊文件存储位置
b:block device,块设备 随机访问(类似硬盘)
c:character device 字符设备 线性访问(顺序访问),逻辑存在,但并不真实存在(zero)
12./opt:第三方应用程序的安装位置
13./srv:系统上运行的服务遇到的数据
14./tmp:临时文件存储位置
15/usr:universal shared,read-only date
bin:保证系统拥有完整功能而提供的应用程序(普通用户)
sbin:保证系统拥有完整功能而提供的应用程序(管理员)
lib:32位使用
lib64:只存在64位系统
include:C程序的头文件(header files)
share:结构化独立的数据,例如doc,man
local:第三方应用程序的安装位置
bin,sbin,lib,lib64,etc,share
16/var:variable date files
cache:应用程序缓存数据目录
lib:应用程序状态信息数据
local:专用于为/usr/local下的应用程序存储可变数据
lock:锁文件
log:日志目录及文件
opt:专用于为/opt下的应用程序存储可变数据
run:运行中的进程相关数据,通常用于存储进程pid文件
spool:应用程序数据池
tmp:保存系统两次重启之间产生的临时数据
17./proc:用于输出内核与进程信息相关的虚拟文件系统
18./sys:用于输出当系统上硬件设备相关信息的虚拟文件系统
19./selinux:security enhanced Linux,selinux相关的安全策略等信息的存储位置
Linux上的应用程序的组成部分
二进制文件:/bin,//sbin,/usr/bin,/usr/sbin, /usr/local/bin ,/usr/local/sbin
库文件:/lib,/lib64,/usr/lib,/usr/lib64,/usr/local/lib,/usr/local/lib64
配置文件:/etc,/etc/DIRECTORY, /usr/local/etc
帮助文件:/usr/share/man, /usr/share/doc,/usr/local/share/man,/usr/local/share/doc
linux文件类型:
-:表示普通文件
d:目录文件
b:块设备
c:字符设备
l:符号链接文件
p:管道文件pipe
s:套接字文件socket
centos6和centos7上目录改变
/bin和/usr/bin /sbin和/usr/sbin /lib和/usr/lib /lib64和/usr/lib64
在 centos7上
/bin是个链接文件,指向/usr/bin,所以在centos7上/bin和/usr/bin就是同一个文件
centos6:
在centos6上这些则代表两个文件
路径:
1.绝对路径
从根目录开始
完整的文件的位置路径
可用于任何想制定一个文件名得时候
2.相对路径
不从根目录开始
指定相对于当前工作目录或某目录的位置
可以作为一个简短的形式指定一个文件名
cd:切换工作目录
绝对路径和相对路径都可以
cd /etc
到上一级目录:
cd..
到家目录:
cd
到上一次的工作目录:
cd -
相关的环境变量:
PWD:保存了当前目录路径
PWD=/etc
OLDPWD:上一次所在目录路径
ls命令:用来列出当前目录或指定目录的内容
ls 选项 file或者dis
常用选项:
命令中各选项的含义如下:
- a 显示指定目录下所有子目录与文件,包括隐藏文件。
- A 显示指定目录下所有子目录与文件,包括隐藏文件。但不列出“.”和 “..”。
- b 对文件名中的不可显示字符用八进制逃逸字符显示。
- c 按文件的修改时间排序。
- C 分成多列显示各项。
- d 如果参数是目录,只显示其名称而不显示其下的各文件。往往与l选项一起使 用,以得到目录的详细信息。
- f 不排序。该选项将使lts选项失效,并使aU选项有效。
- F 在目录名后面标记“/”,可执行文件后面标记“*”,符号链接后面标记 “@”,管道(或FIFO)后面标记“|”,socket文件后面标记“=”。
- i 在输出的第一列显示文件的i节点号。
- l 以长格式来显示文件的详细信息。这个选项最常用。
每行列出的信息依次是: 文件类型与权限 链接数 文件属主 文件属组 文件大小 建立或最近修改的时间 名字
对于符号链接文件,显示的文件名之后有“―〉”和引用文件路径名。
对于设备文件,其“文件大小”字段显示主、次设备号,而不是文件大小。
目录中的总块数显示在长格式列表的开头,其中包含间接块。
- L 若指定的名称为一个符号链接文件,则显示链接所指向的文件。
- m 输出按字符流格式,文件跨页显示,以逗号分开。
- n 输出格式与l选项相同,只不过在输出中文件属主和属组是用相应的UID号和 GID号来表示,而不是实际的名称。
- o 与l选项相同,只是不显示拥有者信息。
- p 在目录后面加一个“/”。
- q 将文件名中的不可显示字符用“?”代替。
- r 按字母逆序或最早优先的顺序显示输出结果。
- R 递归式地显示指定目录的各个子目录中的文件。
- s 给出每个目录项所用的块数,包括间接块。
- t 显示时按修改时间(最近优先)而不是按名字排序。若文件修改时间相同,则 按字典顺序。修改时间取决于是否使用了c或u选顶。缺省的时间标记是最后一次修 改时间。
- u 显示时按文件上次存取的时间(最近优先)而不是按名字排序。即将-t的时间 标记修改为最后一次访问的时间。
- x 按行显示出各排序项的信息。
小练习:
1.只显示某目录下隐藏文件
思路如下:
--ignore=PATERN:表示不显示能符合匹配条件的文件
所有隐藏文件都是以.开头的,
所以我们要忽略调不会以.开头的文件 ==> [^.]*
指令如下:ls -a --ignore='[^.]*'
效果如下:
只显示某目录下目录列表:
思路:我们知道目录文件一般为蓝色,我开始想用颜色来筛选,但是没找到相关的选项,而且文件颜色是可以改的,蓝色只是默认颜色,并不是规定一定要设置成蓝色,
查找帮助是看到了-F选项,
- F 在目录名后面标记“/”,可执行文件后面标记“*”,符号链接后面标记 “@”,管道(或FIFO)后面标记“|”,socket文件后面标记“=”。
那么只要筛选出不带/的就可以达到目的
指令如下:
ls -la --indicator-style='file-type' */
ls -la -F */
-F=--indicator-style
效果如下: