bash的基础特性
(1)命令历史
history
HISTSIZE : 命令历史记录的条数:
HISTSIZE : ~ /.bash_history
HISTFILESIZE: 命令历史文件记录的条数:
history -d OFFSET
-c
history #: 显示历史最近的#条命令:
-a :手动追加当前会话缓冲区的命令历史 至历史文件中:
调用历史中的命令:
!#:重复执行第#条指令:
!!:
!l:
调用上一条命令最后一个参数:
!$
ESC .
Alt+.
控制命令历史的记录方式:
环境变量 :HISTCONTRO
ignredups: 忽略重复的命令: 连续其相同方为"重复":
ignorespace : 忽略所有空格开头的命令:
ignoreboth: ignredups, ignorespace
修改环境变量值的方式: export 变量名“值”
变量赋值: 把赋值符号后面的数据存储于变量名指向内存空间:
(2)命令补全
bash执行命令:
内部命令:
外部命令: bash根据PATH环境变量定义的路径,自左而右在每个路径搜寻以给定命令命名的文件,第一次找到即为要执行的命令:
直接补全: Tab 用户给定的字符窜只有一条唯一对应的命令:
用户给定的字符串为开头对应的命令不唯一,则再次Tab会给出列表:
(3)路径补全
把用户给出的字符串当做路径开头,并在其指定上级目录搜索指定的字符串开头的文件名:
如果唯一 : 则直接补全:
否则:在次Tab ,给出列表:
(4)命令行展开
~:展开为指定用户的主目录
~:USERNAME: 展开为指定用户的主目录
{}:可承载一个以逗号分隔的列表,并将其展开为多个路径
/tmp/{a,b} ~ /tmp/a , /tmp/b
/tmp/{tom,jerry}/hi ~ /tmp/tom/hi ,/tmp/jerry/hi
(5)命令执行结果状态
成功
失败
bash使用特殊变量$?保存最近一条命令的执行状态结果
0:成功
1-255:失败
程序执行有两类结果
程序的返回值:
程序的执行状态结果:
目录管理命令:
cd,pwd。ls,
mkdir ,rmdir ,tree
mkdir /etc/a/b/c/d
mkdir [options] /path/to/somewhere
-p:存在于不报错,且可自动创建所需的各目录:
-v:显示详细信息
-m MOOE:创建目录时直接指定权限:
tree:
-d :显示目录
-L level: 指定显示的层级数目
-p pattern: 只显示由指定pattern匹配到路径:
rmdir: 删除空目录
rmdir [OPTION]... DIRECTORY...
-v显示过程
练习:(1) 如何创建/tmp/x/y1 ,/tmp/x/y1/a , /tmp/x/y2/b /tmp/x/y2/a /tmp/x/y2/b
mkdir /tmp/x/{y1,y2}/{a,b}
(2) 如何创建x_m y_m x_n y_n
mkdir -v {x,y}_{m,n}
(3) 如何创建 /tmp/bin, /tmp/usr /tmp/usr/bin /tmp/usr/sbin
mkdir -p /tmp/{bin,sbin,usr/{bin,sbin}}
文本文件查看类命令:
cat,tac
more , less, tail,head
more
more [OPTION] FILE....
-d:显示翻页及退出提示:
less
less [OPTIONS...] FILE ....
head
head [OPTIONS...] FILE ....
-c#:指定获取前#字节
-n#:指定获取前#行
-#
tail
tail [OPTIONS...] FILE ....
-c#:指定获取前#字节
-n#:指定获取前#行
-#
-f:跟踪显示文件新追加的内容:
文件的时间搓管理工具
touch
文件metadata date
查看文件状态:stat
三个时间
Access: 2016-09-19 17:07:14.338002716 -0400 访问时间 简写atime 读取文件内容
Modify: 2016-09-02 07:27:35.328278508 -0400 修改时间 mtime 改变文件内容 (数据)
Change: 2016-09-02 07:27:35.330278499 -0400 访问时间 ctime 元数据发生改变
touch命令:
touch [OPTION] FILE....
-a:only atime
-m :only mtime
-t STAMP:
[CC]YY]MMDDhhmm[.ss
-c:如果文件不存在则不予创建