第二周学习总结

写在最前

通过上一周对计算机系统、Linux发展的学习,我们认识到了Linux是一个一切皆文件的内核系统。那么怎样去操作系统上的各文件来达到你想要的目的呢?今天的总结就是帮助我们更快的达成目标。

文件管理类命令的分类

对于这类命令主要分为两类:

操作类:touch、cp、mv

查看类:cat、tac、head、tail、less、more

touch

功能描述:创建新的空文件或更改文件的时间戳。

语    法:touch [OPTION]… FILE…

选    项:

  • -c:指定的文件路径不存在时不予创建;
  • -a:仅修改access time;
  • -m:仅修改modify time;
  • -t [[CC]YY]MMDDhhmm[.ss],其后跟上指定的时间;

实    例:

11

通过使用touch命令修改访问时间:touch -a -t 1712141414.14 linux.txt 

得到如下结果:

222

扩    展:细心的你可能会发现上面截图中有一个stat命令,那么stat命令输出的都是什么文件的什么信息呢?其实文件主要由两类数据组成:元数据和数据,元数据主要是用于描述文件的属性信息,使用stat命令显示的全部是文件的元数据,而数据信息则是文件的具体内容数据,可以通过上述命令中的cat查看。上图所显示的信息中:

  • File:当前文件的文件名;
  • Size:当前文件的文件大小;
  • Device:存储在那个设备上;
  • Inode:文件的Inode号码;
  • Linkes:文件当前的链接数;
  • Access:访问权限;
  • Uid:属主ID号码;
  • Gid:属组ID号码;
  • Access time:最近一次文件的访问时间;
  • Modify time:最近一次文件的内容被修改时间;
  • Change time:最近一次文件的状态被改变的时间;

cp

功能描述:复制文件或目录。

语    法:cp [OPTION]… SOURCE DEST

选    项:

  • -a:此参数的效果相当于同时使用dpR参数;
  • -d:复制符号链接本身,而非其指向的源文件;
  • -f:强制进行复制;
  • -i :交互式复制,有提示信息;
  • -R、-r:递归复制目录;将目录下的文件一并复制过去;
  • -p:保留源文件所有者的属性;

mv

功能描述:移动或重命名文件、目录。

语    法:mv [OPTION]…  SOURCE DEST

选    项:

  • -f:强制进行覆盖;
  • -i :交互式覆盖,有提示信息

cat

功能描述:读取文件并打印到标准输出。

语    法:cat [OPTION]… [FILE]…

选    项:

  • -n:对输出的行数进行编号;

tac

功能描述:读取文件并逆序打印到标准输出。

语    法:tac [OPTION]… [FILE]…

选    项:

333

head

功能描述:输出文件的开头部分内容,默认显示10行。

语    法:head [OPTION]… FILE…

选    项:

  • -c <字符数>:指定显示头部内容的字符数;
  • -n <数字>:指定显示头部内容的行数;

more

功能描述:按页浏览文本文件的内容,只能向后翻页。

语    法:more [options] file […]

选    项:

  • – <数字>:指定每屏显示的行数;

less

功能描述:按页浏览文本文件的内容,可以向前或向后翻页。

语    法:less [OPTION]… FILE…

选    项:

  • -e:文件内容显示完毕后自动退出;
  • -N :每行行首显示行号;

 bash特性

在Linux中,bash的其中一个工作特点叫做没有返回信息通常是最好的信息。这里并不是说真的没有返回结果,其实每条命令执行完成之后,其状态返回值都保存于bash的特殊变量$?中,通过echo $?的值即可查看上一条指令是否执行成功,成功的话,值肯定是0,如果值是1-255之间的任何一个数字,都表示上条指令没有执行成功。此处需要注意的是一定$?只表示上一次的状态返回值。

此外,在bash中,还有一个重要的命令行展开特性,通过此特性,可以极大的节省时间,提高工作效率。

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

例如:(1)、创建/tmp目录下的:a_c,a_d,b_c,b_d

201

结果如下显示:

202

(2)、创建如下目录结构:

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
├── locak
├── log
└── run

使用命令行展开方式创建,实现方法为:(由于篇幅的原因,删除了部分输出信息)

203

结果显示如下:

204

其实bash还有很多特性,比如下面将要介绍的也是在实际中可能会用到的,那就是命令别名、命令引用。命令别名主要有两个好处,第一就是对一些危险的命令使用别名,可以起到提示的作用,第二就是命令或者路径很长时,使用别名可以提高效率。别名的设置也很简单,主要有三种方式:

  1. 命令行编辑别名alias,alias ‘COMMAND’=’alias’    此种方法只对当前用户在当前回话中有效;
  2. 要想永久生效,必须修改配置文件,编辑用户家目录下的 .bashrc文件,添加别名,然后重新读取配置文件生效;
  3. 要想所有用户都生效,则要编辑/etc/bashrc文件添加别名,然后重新读取配置文件生效;

其次命令的引用在实际中也会经常遇到,那么怎么引用呢,其实也很简单,用法为:$(COMMAND)或`COMMAND`,注意此处为反引号。说了这么多,那来个例子练练手吧:在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。综合前面的知识,我想此处你肯定不能用touch创建时自己敲上去时间,如果你真是这样创建,那么前面的内容就算白讲了,因为此处tfile后明显是个时间,因此可以用date表示,综合上面的命令替换,是不是感觉有点思绪了呢?答案就是这样的:

touch tfile-`date +”%Y-%m-%d-%H-%M-%S”`是不是觉得还是挺简单的。

说完了上面的内容,下面来说说bash的文件名通配,很多时候我们想要查找一些特定格式名称的文件,这时文件名通配就非常有用了。常见的通配符有如下几种:

  • *:任意长度的任意字符;
  • ?:任意单个字符;
  • []:中括号范围内的单字符;
  • [^]:中括号以外的单字符;
  • 字符集合:
    [:space:] : 所有空白字符
    [:punct:] : 所有标点符号
    [:lower:] :所有小写字母
    [:upper:]:任意大写字母
    [:digit:]:任意数字
    [:alnum:]:任意数字、大小写字母
    [:alpha:]:任意大小写字母

bash特性练习

学习了上述bash的众多特性,如果在生产环境中给你如下问题,你是不是能搞定呢:

  1.  ls /var/l*[[:digit:]]*[[:lower:]]是什么意思?
  2. ls /etc/[[:digit:]]*[^[:digit:]]表示什么?
  3. ls /etc/[^[:alpha:]][[:alpha:]]*又表示什么?

根据上面内容的提示,我们可以将上述问题放到bash的文件通配符段落中查找答案,所以:

  1. 表示显示/var目录下,以1开头,中间跟了1个数字,以小写字母结尾的文件或目录;
  2. 表示显示/etc目录下,以数字开头,非数字结尾的文件或目录;
  3. 表示显示/etc目录下,以非大小写字母开头但紧跟着任意一个大写或小写字母的文件或目录;

其实吧,学习有时候就是你做完了上面的内容,肯定觉得要是再有几个练习一些该多好哇!哈哈哈,其实吧,下面还真有。有时间又觉得不错的话可以练习练习

  1. cp -r /etc/p*[^[:figit:]] /tmp/mytest1
  2. cp -r /etc/*.d /tmp/mytest2
  3. cp    /etc/[lmn]*.conf /tmp/mytest3

忙碌的一周又过去了,为了赶上其他小伙伴的进度,一天当做三天用,用四天的时间学完了两周的课程,接下来继续向前奔跑。

 

 

 

 

 

 

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

(0)
上一篇 2017-12-16 14:28
下一篇 2017-12-16 17:45

相关推荐

  • Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示

    目录与路径 相对路径与绝对路径 绝对路径:路径的写法【一定由根目录 / 写起】 /usr/share/doc 这个目录。 相对路径:路径的写法【不是由 / 写起】 由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成: 【cd ../man】这就是相对路径的写法。相对路径意指相对于当前的工作目录 cd (切换目录) . &n…

    Linux干货 2016-11-06
  • RPM总结(一)

    软件包基础软件包运行环境硬件、内核、应用程序的关系包管理器程序包管理器Linux不同系统上的包管理器RPM的优点rpm包命名方式一般源代码的命名rpm包的命名rpm包的分类与拆包包管理工具RPM包管理器:程序包管理器:获取程序包的途径:rpm包管理CentOS系统上使用rpm命令管理程序包:安装升级:降级降级实例more 软件包基础 包管理过程中,最常用的操…

    Linux干货 2016-08-24
  • 搭建lnmp实现动静分离

    LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。 (nginx主机)web 处理静态内容 172.16.250.149 (fpm server   mariad bserver)处理动态内容 172.16.253.131 以上为两台CentOS7.3主机 试验拓扑图如下:   ==…

    2017-07-22
  • HAProxy 入门及基础负载应用

    A、首介 。。。         HAProxy——开放源代码软件,是一款代理服务器和伪4层的负载均衡软件解决方案。基于TCP(第四层)和HTTP(第七层)应用的代理软件,支持高并发链接,它的工作模式可以将其简单而安全地整合到当前的服务架构中,同时可以保护你的WEB服务器不暴露到…

    Linux干货 2017-05-17
  • linux文件管理

    目录创建删除,软硬链接的区别和注意,file命令的使用,工作中遇到一些情况的处理方法

    2017-11-18
  • Hadoop集群配置

    通常,集群里的一台机器被指定为 NameNode,另一台不同的机器被指定为JobTracker。这些机器是masters。余下的机器即作为DataNode也作为TaskTracker。这些机器是slaves\ 官方地址:(http://hadoop.apache.org/common/docs/r0.19.2/cn/cluster_setup.ht…

    Linux干货 2015-06-03

评论列表(1条)

  • 马哥教育
    马哥教育 2018-01-07 17:18

    内容上有自己思考的部分很赞,继续加油~