1.bash的基础特性(1)命令历史history环境变量HISTSIZE 命令历史记录的条数HISTFILE .bash_historyHISTFILESIZE 命令历史记录历史的条数history -d OFFSET(偏移量,也就是编号第几) 删除编号第几的历史命令history -c清空命令历史history -a 将缓存中的命令历史 追加到文件中
!编号 重复执行编号对应的历史命令
!!
!字符
!$ 调用上一条命令的最后一个参数
控制命令历史记录方式的 环境变量
HISTCONTROL
默认值
ignoredups 忽略重复的命令,连续且相同为重复
其他两个值
ignorespace 忽略所有以空白开头的字符
ignoreboth 以上两个的功能都生效
(2)命令补全
bash执行命令
内部命令
外部命令:bash根据环境变量PATH所定义的路径,自左向右在某个 路径中搜寻匹配字符的 可执行文件
直接补全:Tab键,用户给定的字符串只有一条唯一对应的命令
(当用户给定的字符为开头的对应文件不唯一,则需要多给一些提示 字符,或者再次Tab,以列表形式显示所有符合的文件)
(3)路径补全
把用户给出的字符串当作路径开头,并且在其上级目录之下,搜素 以给定的字符串开头的文件
如果唯一,则直接补全
否则,再次Tab,以列表显示
(4)命令行展开
~ :展开后为用户的家目录
{} :可以承载一个以逗号为分割的列表,并且将其展开为多个路径
例如 /tmp/{a,b} /tmp/a /tmp/b
/tmp/(a,b)/hi /tmp/a/hi /tmp/b/hi
(5)命令的执行状态结果
成功或者失败
bash使用特殊变量 $? 保存最近一条命令的执行状态结果
0 成功
1-255 失败
2.修改环境变量值的方式export 变量名 = “值”变量赋值 把赋值符号后面的数据存储于变量名指向的内存空间注意:这个方式所做的修改,只对当前进程有效,退出后再登录,则恢复用来
3.命令管理类命令cd pwd lsmkdir rmdir
mkdie创建目录 mkdir /a/b/c 这个命令要创建c目录,但是a,b必须存在,不 存在则失败
mkdir [options] /a
mkdir [options] /a /ab /c 这两个形式都可以
选项
-p 连带不存在的父级也一起创建,若父级存在,不报错
-v 显示创建过程,详细信息
-m MOOE 创建目录是可以直接指定权限
rmdir 删除空目录,有内容的会删除失败
rmdir -p /tap/text/x/y
执行过程中,y为空则删除y,此时x空,则删除text,类推
tree /a/b 显示b下的层级结构
-d 只显示目录
-L level 指定显示的层级数目
-p 只显示指定匹配到的路径
4.文本文件查看的命令cat tac more less tail head
more
-d 显示翻页和退出提示
head
-c # 指定显示前#个字节
-n # 指定显示前#行内容 可以简单写为 -#
head命令 本身默认显示前10行内容
tail
与head用法类似,不过是最后几行,最后几个字节
tail -f 目录 显示默认的最后10行,但是不退出,实时更新,跟踪显示文件的新追加内容
ctrl + c 可以退出
5.文件的时间戳管理工具
touch
文件由两部分 元数据 metadata
数据 data
用命令stat 查看文件的状态
三个时间戳:
access time 最近的访问时间 简写为atime (读文件内容 cat)
modify time 最近的修改时间 简写为mtime(修改文件内容)
change time 最近的改变时间 简写为ctime (改变文件元数据)
touch [OPTION] FILE
-a 只改访问时间
-m 只改修改时间
-t STAMP
[ccYYMMDDhhnn][.ss] 修改为指定具体时间
如果文件不存在,touch /a/b 则直接创建,时间戳为当前时间
-c选项 意为先检测是否存在,不存在则不创建