回顾:
FHS、命令及bash命令历史
FHS:
/bin, /sbin, /lib, /lib64, /etc
/home, /root
/boot
/media, /mnt
/proc, /sys
/tmp
/srv
/opt
/dev
/usr
Bin, sbin, lib, lib64, share, local, include, …
/var
cache, lib, log, ….
命令: which whersis, who, w, alias, unalias
命令历史: history
bash的基础特性:
命令补全:
Shell程序在接收到用户执行命令的请求,分析完成之后, 最左侧的字符串会被当作命令:
命令查找机制:
查找内部命令:
根据PATH环境变量中设定的目录, 自左而右逐个搜索目录下的文件名:
给定的打头字符串如果能唯一标识某命令程序文件,则直接补全:
不能唯一标识某命令程序文件,再单击tab键一次,会出现列表:
路径补全:
在给定的起始路径下,以对应路径下的打头字符串逐一匹配起始路径下的每个文件:
Tab:
如果能唯一标识,则直接补全:
否则,再一次tab,给出列表:
目录管理类命令:
mkdir, rmdir
mkdir – make directories
mkdir [option]…DIRECTORY…
-p:自动按需创建父目录:
-v: verbose,显示详细过程:
-m: MODE:直接给定权限:
注意:路径基名方为命令的作用对象: 基于之前的路径必须存在:
rmdir – remove empty directories
rmdir [OPTION]… DIRECTORY…
-p:删除某目录后, 如果其父目录为空, 则一并删除之:
-v:显示过程:
问题1:如何创建/tmp/x/y1, tmp/x/y2, /tmp.x/y1/a, /tmp/x/y1/b?
mkdir -pv /tmp/x/{y1/{a,b},y2}
mkdir:已创建目录 “/tmp/x”
mkdir:已创建目录 “/tmp/x/y1”
mkdir:已创建目录 “/tmp/x/y1/a”
mkdir:已创建目录 “/tmp/x/y1/b”
mkdir:已创建目录 “/tmp/x/y2”
问题2:如何创建a_c, a_d, b_c, b_d?
mkdir -pv {a,b}_{c,d}
mkdir:已创建目录 “a_c”
mkdir:已创建目录 “a_d”
mkdir:已创建目录 “b_c”
mkdir:已创建目录 “b_d”
问题3:创建如下目录结构:
/tmp/mysysroot/
──bin
├──etc
│ └── sysconfig
│ └── network-scripts
├──sbin
├──user
│ ├── bin
│ ├── lib
│ ├── lib64
│ ├── local
│ │ ├── bin
│ │ ├── etc
│ │ ├── lib
│ │ └── sbin
│ └── sbin
└──var
├──cache
├──log
└──run
mkdir -pv /tmp/mysysroot/{bin,sbin,etc/sysconfig/network
-scripts,user/{bin,sbin,local/{bin,sbin,etc,lib},lib,lib64},var/{cache,log,run}}
bash的基础特性之: 命令行展开
~:自动展开为用户的家目录, 或指定的用户的家目录:
{}:可承载一个以逗号分隔的路径列表, 并能够将其展开为多个路径:
例如: /tmp/{a,b}相当于 /tmp/a /tmp/b
tree命令:
tree [option] [directory]
-L level:指定要显示的层级:
bash的基础特性: 命令的执行状态结果:
成功: 0
失败: 1-255
命令执行完成之后,其状态返回值保存于bash的特殊变量$?中:
命令正常执行时,有的还回有命令返回值:
根据命令及其功能不同,结果各不相同:
引用命令的执行结果:
$(COMMAND)
或`COMMAND`
bash的基础特性: 引用
强引用:‘’
弱引用:“”
命令引用: “
bash的基础特性: 快捷键
Ctrl+a:跳转至命令行首
Ctrl+e:跳转至命令行尾
Ctrl+u:删除行首至光标所在处之间的所有字符:
Ctrl+k:删除光标所在处至行尾的所有字符:
Ctrl+l:清屏, 相当于clear
文本查看命令: cat, tac, head, tail, more, less
分屏查看命令: more less
more命令:
more FILE
特点:翻屏至文件尾部后自动退出:
less命令:
less FILE
head命令:
查看文件的前n行:
head [option] FILE
-n #
-#
tail命令:
查看文件的后n行:
Tail [option] FILE
-n #
-#
-f:查看文件尾部内容结束后不退出, 跟随显示新增的行:
stat命令:
stat – display file or file system status
stat FILE…
文件:两类数据
元数据: metadate
数据: data
时间戳:
Access time: 2018-03-30 09:22:18.848259259 -0400
Modify time: 2018-03-30 09:20:42.788259296 -0400
Change time: 2018-03-30 09:20:42.788259296 -0400
touch命令:
touch – change file timestamps
touch [OPTION]… FILE…
-c:指定的文件路径不存在时不予创建:
-a:仅修改access time:
-m:仅修改modify time:
-t: STAMP
[[CC]YY]MMDDhhmm[.ss]
��|a,f]