第二周学习总结

写在最前

通过上一周对计算机系统、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

相关推荐

  • 操作系统文件管理

      在现代计算机系统中,要用到大量的程序和数据,因内存容量有限,且不能长期保存,故而平时总是把它们以文件的形式存放在外存中,需要时再随时将它们调入内存。如果由用户直接管理外存上的文件,不仅要求用户熟悉外存特性,了解各种文件的属性,以及它们在外存上的位置,而且在多用户环境下,还必须能保持数据的安全性和一致性。显然,这是用户所不能胜任、也不愿…

    Linux干货 2015-04-13
  • 第一次发微博

    第一次申请微博,第一次发微博,觉得很难

    Linux干货 2017-01-06
  • linux命令速记技巧

    linux命令速记技巧 linux命令有一定的命名规则,一个正常的coder在编码的过程中都会考虑命名的语义化,开发者对函数的命名一定也尽量遵循这个规律.了解目录所对应的英文全称有助于自己的记忆,理解记忆获得知识的留存率要远大于死记硬背.如果英文基础太差,小编建议先学好英文基本功再来学习这些命令. 命令的中文对照 命令 英文全称 中文释义 ls list 列…

    Linux干货 2017-03-25
  • httpd 2.2(Apache Web服务器)

    apache (Web服务器) 简介: Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中。    Apache HTTP服务器是一个模块化的服…

    Linux干货 2016-03-30
  • find命令浅谈

    本章内容   使用locate命令 使用find命令 使用Gnome搜索工具 压缩和解压缩工具 文件查找 在文件系统上查找符合条件的文件; 文件查找:locate, find 非实时查找(数据库查找):locate 实时查找:find locate 查询系统上预建的文件索引数据库 /var/lib/mlocate/mlocate.db 依…

    Linux干货 2016-08-15
  • linux常见命令示例

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 ############################################################################# cp -ar /etc/skel/ /home/tuser1 [ro…

    Linux干货 2017-12-25

评论列表(1条)

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

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