-
Bash的工作特性
bash通常是borne again shell的缩写,属于shell的一种;每次输入命令后,系统都会把命令执行的状态结果保存在一个特殊变量中,这个比变量用$?表示
捕获.PNG
当返回值为0时表示执行成功,返回值为非0时则是执行过程中出现异常或是非正常退出.(这个值的范围在1~255)
-
文件管理命令
1、rm 删除文件或者目录
-f:强制删除;
-i:互动模式;
-r:递归删除,常用在目录的删除;
2016-09-28_22-13-11.png
删除目录时要加-r参数,-i参数是删除文件的;当i和f一起用时,会强制删除,不会有互动。
2、cp 复制文件或目录
-a:相当于-pdr,归档备份(保存文档的所有原属性);
-f:强制的意思,若有重复的或其它疑问时,不会询问使用者;
-i:若目的文件已存在时,在覆盖钱会先询问是否覆盖;
-p:连同文件的属性一起复制过去,而非使用默认属性;
-r:递归持续复制,用于目录的复制行为;
2016-09-28_22-25-40.png
3、mv 移动文件与目录;重命名
2016-09-28_22-28-52.png
4、mkdir 创建新目录
-p:如果不存在父级目录,则按照需要递归创建目录,如果父级目录存在也不会报错
2016-09-28_22-28-52.png
5、ln 链接文件或目录
-s:软链接,对源文件建立符号连接
-b:删除,覆盖目标文件之前的备份
-d:建立目录的硬连接(或者用-F)
-f:强行建立文件或目录的链接,不论文件或目录是否存在
6、cd 切换目录
. 代表当前目录
.. 代表上一层目录
- 代表上次工作的目录
7、ls 查看文件和目录
-a:显示所有文件,包括隐藏文件
-l:详细列出文件的属性等信息
-d:仅列出目录本身,而不是列出目录内的文件数据
-
练习
(1)创建/tmp目录下的a_c、a_d、b_c、b_d
2016-09-28_22-28-52.png
(2)在/tmp/mylinux目录下创建目录树
2016-09-28_22-28-52.png
默认没有tree 这个指令需要装包(yum -y install tree)
(3)显示/var目录下所有以l揩油,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录
2016-09-28_22-28-52.png
(4)显示/etc/目录下以任意一个数字开头且以非数字结尾的文件或目录
2016-09-28_22-28-52.png
(5)显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录
2016-09-28_22-28-52.png
(6)在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22
2016-09-28_22-28-52.png
(7)复制/etc/目录下所有以p开头,以非数字结尾的文件或目录到、tmp、mytest1/目录中
2016-09-28_22-28-52.png
(8)复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中
2016-09-28_22-28-52.png
(9)复制/etc/目录下所有以 l 或 m 或 n 开头,以.conf结尾的文件至/tmp/mytest3目录中
2016-09-28_22-28-52.png
别名机制
alias:可以直接查看当前系统定义的所有别名条目
2016-09-28_22-28-52.png
alias 别名=“原始命令” 定义一向别名,但只是当前生效,如果要永久生效需要写入局部配置文件中:~/.bashrc;
unalias 撤销自定义别名
2016-09-28_22-28-52.png
shell引用
' ':强引用,变量替换不会进行
" ":弱引用,能执行变量替换
:命令替换,引用命令的执行结果(与$效果一样)
bash补全
bash补全的按键是TAB键,可以实现命令与路劲的补全,由/etc/bash_completion.d/下对应的脚本实现的。
命令补全:
shell程序在接受到用户执行命令的请求并分析完成之后,最左侧字符串将被当作命令去查找;
查找机智:
(1)查找内部命令;
(2)查找外部命令:
1、在$PATH变量所指定的各路劲下,在左而右逐个搜索各目录下的文件名;
2、指定的开头字符串如果能唯一表示某命令程序文件的文件名,则直接补全;
3、非唯一表示,再次按TAB则显示列表;
4、错误,没有任何命令可被此开头字符串标识。
文件的元数据信息
1、文件类型,权限,UID,GID
2、链接数
3、文件大小
4、时间戳
5、其它信息
通过stat查看
2016-09-28_22-28-52.png
用touch修改一个文件的时间戳
touch [-am] [文件]
touch -t [指定时间] [文件]
-a:只更改存储时间
-m:只更改修改时间
-t:自定义时间戳
网友评论