一、命令历史:
成都创新互联公司成立于2013年,我们提供高端重庆网站建设、成都网站制作、成都网站设计、网站定制、营销型网站建设、小程序制作、微信公众号开发、成都网站推广服务,提供专业营销思路、内容策划、视觉设计、程序开发来完成项目落地,为成都纱窗企业提供源源不断的流量和订单咨询。
命令:history 历史文件:.bahs_history
说明:用户登陆之后命令都是保存在内存中,用户exit登出后,会将内存中的命令保存到.bash_history中。
常用命令选项:
-c:清除内存中的所有历史命令
-d:删除指定编号为#的命令
#:显示最近的#条命令
-s:创建一个不执行的命令到历史列表中去(假的)
-a:将历史列表中的命令历史读取到历史文件中(追加新增加的命令)
-n:将历史文件中的命令读取到历史列表中(只读取新增加的)
-r:读历史文件中的命令到历史列表中去(读取所有的,因此可能会出现重复的)
-w:读取列表中的命令到历史文件中去(读取所有的,因此可能会出现重复的)
常用变量及选项:
HISTSIZE:定义历史列表中可以保存的变量的总数,默认为1000
HISTFILESIZE:定义历史文件中的可以保存的变量的总数,默认为1000
HISTCONTROL:ignoredups忽略重复的命令(连着两条一样的),默认值
ignorespace忽略开头为空格的命令
ignoreboth 包括上述两个选项
erasedups 忽略重复的命令
HISTTIMEFORMAT=“%F %T”:显示命令的执行时间。
HISTIGNORE:忽略命令到命令历史中去
上述帮助的获取方法:man bash -> /HISTCONTROL
获取历史命令:
!!:获取上一条命令
!# :获取第#条命令
!char:获取最近一条以char开头的命令
!?go:获取最近一条包含go字符的命令
ctrl+r:搜索历史命令,匹配最近的
获取历史命令参数:
!^:获取上一条命令的第一个参数
!$:获取上一条命令的最后一个参数
!:#:获取上一条命令中的第#个参数
!#:*:获取第#条命令中的所有参数
!#:^:获取第#条命令中的第一个参数
!char:^:获取以char开头命令的第一个参数
!char:$:获取以cahr开头命令的最后一个参数
注意:HIST*这些参数如果只是在命令行中则是临时生效,重启后会失效,也可以写到.bash_profile文件中(仅对某一用户有效),默认是写在/etc/profile中(全局有效),由此可以看出个人的优先级高于全局的。
二、文件系统及目录结构
文件系统名称不区分大小写(vfat系统除外)
文件有两类数据:
元数据:metadate inode 权限、大小、属主、属组、时间等信息。
数据:date block 文件中的内容
根据颜色识别:
蓝色:目录文件
绿色:可执行的文件
红色:压缩文件
浅蓝色:链接文件
粉色:套接字文件
灰色:其他文件
文件系统结构:
/boot:放置引导程序,内核文件
/etc:放置配置文件
/bin:普通用户执行的二进制文件
/dev:放置设备文件
block:块设备,随机执行,有缓存
char:字符设备 顺序执行 无缓存
/home:家目录
/sbin:管理员执行的二进制文件
/local/sbin:第三方安装的软件
/tmp:临时文件
/usr:一般共享的只读文件
/bin:给某一用户提供可执行的二进制文件
/share:结构化独立的数据,如man 、doc等
/var:频繁发生变化的文件
cache:应用程序缓存数据目录
lib:应用程序状态信息数据
log:日志文件
run:运行中的进程相关数据,常用语存数进程pid文件
/mnt:临时挂载文件
/media:挂载点,常用于挂载光盘
/proc:用于输出内核信息与进程信息相关的虚拟文件系统
/sys:用于输出当前系统的硬件设备相信息虚拟文件系统
/selinux:相关安全策略等信息的存放位置
绝对路径:以根目录开始,顺序查到文件路径
相对路径:不以根目录开始,以当前目录开始查到到文件的路径。
cd ..进去上一个路径
cd - 返回以前的路径
cd - 进入你的家目录
三、ls的用法:
-A:不显示“.”和 “..”文件
-a:显示所有文件
-d:显示目录本身
-l:长格式显示,显示元数据
-h:以人类易看懂的方式显示
-1:将所有文件放到1行里显示
-S:按照从大到小的顺序显示
-Sr:按照从大到小的顺序显示
--time=atime:不显示修改时间,显示访问时间
-utl:根据时间按照从新到旧的顺序显示 根据atime排序
-ctl:根据时间按照从新到旧的顺序显示 根据ctime排序
-U:不排序,按文件存放顺序显示
四、查看文件状态
命令:stat file
atime:访问时间 ->读时间
mtime::修改时间 ->内容改变 ll 显示的是修改时间mtime
ctime:改变时间->指的是元数据改变(权限 名字 属组主等)
要修改不一定必须访问 echo xxx >> f1 修改了内容没有访问
锁定文件时间:chattr +A file 文件时间不会改变了
cat 不会改变atime 如果atime已经是一天以上了 会改变,如果atime比mtime时间要老也会变
作业:
只显示某目录下隐藏文件
ls -ad .*
只显示某目录下目录列表
ll -ad */