bash的基础特性:
(1)命令历史:history
环境变量:
HISTSIZE:命令历史记录的条数
HISTFILE:~/.bash_history
HISTFILESIZE:命令历史文件记录历史的条数
控制命令历史的记录方式
环境变量:HISTCONTROL
ignoredups:忽略重复的命令:连续且相同方为“重复”
ignorespace:忽略所有以空白开头的命令
ignoreboth:ignoredups+ignorespace
修改环境变量值的方式:export 变量名="值"
变量赋值:把赋值符号后的数据存储于变量名指向的内存空间
(2)命令补全
bash执行命令:
内部命令:
外部命令:bash根据$PATH环境变量定义的路径,自左而右在每个路径搜寻以给定命令名命名的文件,第一次找到即为要执行的命令
直接补全:Tab:用户给定的字符串只有一条唯一对应的命令
以用户给定的字符串为开头对应的命令不唯一,则再次Tab会给出列表
(3)路径补全
把用户给出的字符串当作路径开头,并在其指定上级目录下搜索以指定的字符串开头的文件名
如果唯一,则直接补全
否则,再次Tab,给出列表
目录操作类命令:
cd,pwd,ls
mkdir,rmdir,tree
mkdir:创建目录
mkdir [options] /PATH/TO/SOMEWHERE
-p:存在并不报错,且可自动创建所需的各目录
-v:显示详细的信息
-m MODE:创建目录时直接指定权限
tree:显示目录层级结构
-d:只显示目录
-L level:指定显示的层级数目
-P pattern:只显示由指定pattern匹配到的路径
rmdir:删除空目录
rmdir [OPTION]... DIRECTORY...
-v:显示过程
(4)命令行展开
~:展开为用户的主目录
~USERNAME:展开为指定用户的主目录
{}:可承载一个以逗号分隔的列表,并将其展开为多个路径
/tmp/{a,b,c} == /tmp/a,/tmp/b,/tmp/c
(5)命令的执行结果状态
bash使用特殊变量$?保存最近一条命令的执行状态结果
成功:0
失败:1-255
程序执行有两类结果:
程序的返回值
程序的执行状态结果
练习:
(1)如何创建/tmp/x/y1,/tmp/x/y2,/tmp/x/y1/a,/tmp/x/y1/b,/tmp/x/y2/a,/tmp/x/y2/b
mkdir -p /tmp/x/y{1,2}/{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/{bin,sbin}}
文本文件查看类命令:
cat,tac
more,less,tail,head
more
less
head
head[OPTION]... [FILE]...
-c #:指定获取前#字节
-n #:指定获取前#行
-#:指定获取前#行
tail
tail [OPTION]... [FILE]...
-c #:指定获取后#字节
-n #:指定获取后#行
-#:指定获取后#行
文件的时间戳管理工具
touch
查看文件状态:stat
三个时间戳:
modify time:修改时间,mtime,修改文件里的内容(数据)
change time:改变时间,ctime,修改元数据
touch [OPTION]... FILE...
-a:only atime
-m:only mtime
-t STAMP:
[[CC]YY]MMDDhhmm[.ss]
-c:如果文件不存在,则不予创建