bash的基础特性:
(1)命令历史
history
环境变量:
HISTSIZE:命令零食记录的条数;
HISTFILE:~/.bash_history;
HISFILESIZE:命令历史文件记录历史的条数;
history -d OFFSET
-c
history #:显示历史中最近的#条命令;
-a:手动追加当前会话缓冲区的命令历史至历史文件中;
调用历史中的命令:
!#:重复执行第#条指令;
!!:
!string:
调用上一条命令的最后一个参数:
!$:
ESC,.
Alt+.
控制命令历史的记录方式:
环境变量:HISTCONTROL
ignoredups:忽略重复的命令;连续且相同方为“重复”;
ignorespace:忽略所有以空白开头的命令;
ignoreboth:ignoredups,ignorespace;
修改环境变量的方式:export 变量名=“值”
变量赋值:把赋值符号后面的数据存储于变量名指向内存空间;
(2)命令补全
bash执行命令:
内部命令:
外部命令:bash根据PATH环境变量定义的路径,自左而右在每个路径搜寻以给定命令名命名的文件,第一次找到即为要执行的命令;
直接补全: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
mkdir [option] /path/to/somewhere
-p 递归创建
-v 显示详细信息
-m MODE:创建目录是直接指定权限;
tree:
-d:只显示目录
-L level:指定显示的层级数目
-P pattern:只显示由指定pattern匹配到的路径;
rmdir :删除空目录
rmdir [option]...DIRECTORY...
-v:显示过程
练习:(1)如何创建/tmp/x/y1,/tmp/x/y2,/tmp/x/y1/a,/tmp/x/y1/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 {x,y}_{m,n}
(3)如何创建/tmp/bin/,/tmp/sbin,/tmp/usr,/tmp/usr/bin,/tmp/usr/sbin
mkdir -p /tmp/{bin,sbin.usr/{sbin,bin}}
文本文件查看类命令:
cat,tac
more,lee,tail,head
more
more [OPTIONS...] FILE...
-d:显示翻页及退出提示
less
less [OPTIONS...]... FILE...
head
head [OPTION]...[FILE]...
-c #:指定获取后#字节
-n #: 指定获取后#行
-#:
tail
tail [OPTION]...[FILE]...
-c #:指定获取后#字节
-n #: 指定获取后#行
-#:
-f :跟踪显示文件新追加的内容;
文件的时间戳管理工具:
touch
文件:metadate,date
查看文件状态:stat
三个时间戳:
access time: 访问时间---atime,读取文件内容
modify time: 修改时间---mtime,改变文件内容(数据)
change time: 改变时间---ctime,元数据发生改变
touch命令:
touch [OPTION]...[FILE]...
-a:only atime
-m: only mtime
-t STAMP:
[[CC]YY]MMDDhhmm[.ss]
-c:如果文件不存在,则不予创建