回顾:
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,whereis,who,w,alias,unalias
命令历史:history
文件类型:-,d,b,c,l,p,s
Linux基础知识:
bash的基础特性:
命令补全:
shell程序在接收到用户执行命令的请求,分析完成之后,最左侧的字符串会被当作命令;
命令处理机制:
查找内部命令:
根据PATH环境变量中设定的目录,自左而右逐个搜索目录下的文件名;
给定的打头字符串如果能唯一标识某命令程序文件,则直接补全;
不能唯一标识某命令程序文件,再击tab键一次,会给出列表;
路径补全:
在给定的起始路径下,以对应路径下的打头字串来逐一匹配起始路径下的每个文件;
tab:
如果能唯一标识,则直接补全;
否则,再一次tab,给出列表;
目录管理类的命令:
mkdir,rmdir
mkdir:make directory
mkdir [OPTIONS]... DIRECTORY...
-p:自动按需创建父目录;
-v:verbose,显示详细过程;
-m MODE:直接给定权限;
注意:路径基名方为命令的作用对象;
rmdir:remove empty directories
rmdir [OPTIONS]... 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}
问题2:如何创建a_c,a_d,b_c,b_d
# mkdir -pv {a,b}_{c,d}
bash的基础特性之:命令行展开
~:自动展开为用户的家目录,或指定的用户的家目录;
{}:可承载一个逗号分隔的路径列表,并能够将其展开为多个路径;
例如:/tmp/{a,b}相当于/tmp/a /tmp/b
问题3:创建如下目录结构:
/tmp/mysysroot/
bin
sbin
etc
sysconfig
network-scripts
usr
bin
sbin
local
bin
sbin
etc
lib
lib
lib64
var
cache
log
run
# mkdir -pv /tmp/mysysroot/{bin,sbin,etc/sysconfig/network-scripts,usr/{bin,sbin,local/{bin,sbin,etc,lib},lib,lib64},var/{cache,log,run}}
tree命令:
tree [options] [directory]
-L level:指定要显示的层级;
bash的基础特性:命令的执行状态结果
命令执行的状态结果:
Bash通过状态返回值来输出此结果;
成功:0
失败:1-255
命令执行完成之后,其状态返回值保存于bash的特殊变量$?中;
命令正常执行时,有的还回有命令返回值;
根据命令及其功能不同,结果各不相同;
引用命令的执行结果:
$(COMMAND)
或`COMMAND`
bash的基础特性:引用
强引用:''
弱引用:""
命令引用:``
bash基础特性:快捷键
Ctrl+a:跳转至命令行行首
Ctrl+c:跳转至命令行尾
Ctrl+u:删除行首至光标所在处之间的所有字符;
Ctrl+k:删除光标所在处至行尾的所有字符;
Ctrl+l:清屏,相当于clear
文件查看类命令:cat,tac,head,tail,more,less
分屏查看命令:more和less
more命令:
more FILE
特点:翻屏至文件尾部后自动退出;
less命令:
less FILE
head命令:
查看文件的前n行:
head [options] FILE
-n #:
-#
tail命令:
查看文件的后n行:
tail [options] FILE
-n #:
-#
-f:查看文件尾部内容结束后不退出,跟随显示新增的行;
stat命令:
stat - display file system status
stat FILE...
文件:两类数据
元数据:metadata
数据:data
时间戳:
Access: 2018-03-15 22:42:03.302314347 +0800
Modify: 2018-03-15 22:41:59.226314069 +0800
Change: 2018-03-15 22:41:59.226314069 +0800
Birth: -
touch命令:
touch - change file timestamps
touch [options]... FILE...
-c:指定的文件路径不存在时不予创建;
-a:仅修改access time;
-m:仅修改modify time;
-t STMP:
[[CC]YY]MMDDhhmm[.ss]