LInux系统上的文件管理类型以及bash的基础特性

LInux系统上的文件管理类型以及bash的基础特性

  1. Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示
  2. bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示
  3. 文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。
  4. 如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?
  5. 显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。
  6. 显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。
  7. 显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。
  8. 在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。
  9. 复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
  10. 复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。
  11. 复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。

Linux上的文件管理类命令

cp命令:copy
  • 源文件–>目标文件
命令格式:
  • 单源复制:cp [OPTION]… [-T] SOURCE DEST
  • 多源复制:cp [OPTION]… SOURCE… DIRECTORY
  • 多源复制:cp [OPTION]… -t DIRECTORY SOURCE…
单源复制:
  • 如果DEST不存在,则事先创建此文件,并复制源文件的数据流填充到目标目录中
  • 如果DEST不存在,如果DEST是飞目录文件,则覆盖目标文件
  • 如果DEST是目录文件:则先在DEST目录下创建一个与源文件同名的文件,并复制其数据流
  • 多源复制:
  • 如果DEST不存在:错误
  • 如果DEST存在:
  • 如果DEST是非目录文件:错误
  • 如果DEST是目录文件:分别复制每一个文件至目标目录中,并保持原名
参数:
  • -i:交互式复制,覆盖之前提醒用户确认
  • -f:强制覆盖目标文件
  • -r/-R:递归复制目录,复制目录及目录中的内容到目标位置
  • -d:复制符号链接文件本身,而非其志祥的源文件
  • -a:递归复制目录,=dr,用语实现归档
  • –preserv=
  1. mode:权限
  2. owership:属主和属组
  3. timestamps:时间戳
  4. context:安全标签
  5. xattr:扩展属性
  6. links:符号连接
  7. all:上述所有属性
mv命令:move
命令格式:
  • mv [OPTION]… [-T] SOURCE DEST
  • mv [OPTION]… SOURCE… DIRECTORY
  • mv [OPTION]… -t DIRECTORY SOURCE…
参数:
  • -i:交互式复制
  • -f:强制覆盖
rm命令:remove
命令格式:
  • rm [OPTION]… FILE…
参数:
  • -i:交互式删除,提醒是否删除
  • -r:递归删除目录,并交互式删除
  • -f:强制删除
删除目录: rm-rf /PATH/TO/DIR
危险操作:rm -rf /(在centos6、7上默认是禁止操作)
注意:所有不用的文件建议不要直接删除,二十移动到某个专用目录;(模拟回收站)

命令执行状态返回值

bash通过状态返回值来输出此结果:
  • 成功:0
  • 失败:非0值(1~255)
  • 命令执行完成之后其状态返回值保存于bash的特殊变量$?中,可通过echo $?查看状态,但是不能隔命令,必须执行完后第一时间查询
  • 命令正常执行时,有的还有命令返回值:
  • 根据命令及其功能不能同,结果各不相同
  • 引用命令的执行结果:
  • $(COMMAND)或反引号 `COMMAND`

例如以当前时间作为目录名称创建名称

  • ~]# mkdir $(date +%T-%H-%M)

命令行展开

  • ~:自动展开为用户的家目录。或指定的用户的家目录
  • {}:可以承载一个以逗号分割的路径列表,并能够将其展开为多个路径

创建/tmp目录下的:a_c,a_d,b_c,b_d

20171212141134

  • ~]#mkdir  /tmp/{a,b}_{c,d}

创建/tmp/mylinux目录结构

20171212141019

  • ~]#mkdir -p /tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-scripts},lib/modules,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{lock,log,run}}
文件的元数据信息有哪些
文件:两类数据
  • 元数据:metadata
  1. access time:最近访问:2017-12-12 12:21:38.432021736 +0800
  2. modify time:最近更改:2017-12-12 12:21:38.432021736 +0800
  • 数据:data

查看文件元数据

stat FILENAME

修改时间戳的方式

touch [-amt] FILENAME
  • -a:仅修改access time
  • -m:仅修改 modify time
  • -t:修改时间
  • YYMMDDhhmm.ss
定义别名:
  • ~]# alias NAME=’COMMAND’
注意:只对当前shell进程有效
在命令中引用另一个命令的执行结果
  • 例如想在/tmp下创建一个以当前系统时间为名称的目录
  • ~]#mkdir /tmp/$(date +%T-%H-%M)
显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录
  • ~]#ls -d /var/l*[0-9]*[[:lower:]]
显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。
  • ~]#ls -d /etc/[0-9]*[^0-9]
显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。
  • ~]#ls -d /etc/[^a-z][a-z]*
在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。
  •  ~]# touch /tmp/tfile-$(date +%Y-%m-%d-%H-%M-%S)
复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
  •  ~]# cp -R /etc/p*[^0-9] /tmp/mytest1 $(mkdir -p /tmp/mytest1)
复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。
  • ~]# cp -R /etc/*.d /tmp/mytest2 $(mkdir -p /tmp/mytest2)
复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。

  •  ~]# cp /etc/[l-n]*.conf /tmp/mytest3 $(mkdir -p /tmp/mytest3)

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/89966

(1)
N28_北京_张鹏N28_北京_张鹏
上一篇 2017-12-11 22:55
下一篇 2017-12-12

相关推荐

  • shell脚本编写-3

    1、for循环 for 变量名 in  列表;do 循环体 done 执行机制:依次将列表中元素赋值给“变量名”;每次赋值后即执一次循环体;直到列表中元素耗尽循环结束 列表生成方式: (1) 直接给出列表 (2) 整数列表: (a){start..end} (b) $(seq [start [step]] end)  (3) 返回列表的命…

    Linux干货 2016-08-18
  • keepalived+nginx

    keepalived可以认为是VRRP协议在Linux上的实现,主要有三个模块,分别是core、check和vrrp。core模块为keepalived的核心,负责主进程的启动、维护以及全局配置文件的加载和解析。check负责健康检查,包括常见的各种检查方式。vrrp模块是来实现VRRP协议的。本文基于如下的拓扑图: 配置keepalived+nginx的方…

    Linux干货 2016-11-04
  • Linux用户与权限管理

    由于Linux是多用户、多任务系统,出于一些需要,当我们创建的文件希望对一部分用户开放,对一部分用户隐藏的时候应该怎么办呢?这样的话,就需要涉及到Linux系统中对用户以及对文件权限的管理。 一、相关文件 在Linux中,一切配置文件都是以文本文档的方式来保存的,同样用户的信息也保存在系统的一些文件中,其位置为/etc/passwd。此文件只有root用户具…

    Linux干货 2016-08-05
  • 第一周linux学习总结

    1、描述计算机的组成及其功能
    2、按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别
    3、描述Linux的哲学思想,并按照自己的理解对其进行解释性描述
    4、说明Linux系统上命令的使用格式;详细介绍ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用,并配合相应的示例来阐述
    5、如何在Linux系统上获取命令的帮助信息,请详细列出,并描述man文档的章节是如何划分的
    6、请罗列Linux发行版的基础目录名称命名法则及功用规定

    Linux干货 2017-12-04
  • 马哥教育网络班21期-第六周课程练习

    请详细总结vim编辑器的使用并完成以下练习题 vim编辑器的使用 vim模式:  a,编辑/命令模式;  b,insert/输入模式  c,末行模式 打开文件:  vim    [option]…    file…  +#:打开文件后,直接让光标…

    Linux干货 2016-08-22
  • N24期第四周作业

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 2、编辑/etc/group文件,添加组hadoop。 vim /etc/group,增加此行 3、手动编辑/etc/passwd文件新增一行,添加用户hadoop,其基本组ID为hadoop组的id号;其家目录为/home…

    Linux干货 2016-11-22

评论列表(1条)

  • 马哥教育
    马哥教育 2018-01-02 21:26

    很好,每一题都很用心。将题中涉及的知识点在日常运维中多加应用,争取尽快做到得心应手。