zoukankan      html  css  js  c++  java
  • 渣渣小本求职复习之路每天一博客系列——Unix&Linux入门(3)

      前情回顾:在昨天的博客里,我们先是介绍了命令行和联机帮助页,然后又了解了一下什么是用户和组以及一些相关的知识。

      今天早上收到某公司的拒信,刚开始那几分钟心情真的是很糟糕,因为终面完了之后我自己感觉至少有百分之八十的可能性能拿到offer。很快就释然了,我其实是知道哪里没做好的。第一,自己做过的项目准备不足,没能够主动地要点地介绍给面试官,以致于面试官很可能误会我做的项目都是打酱油,实际参与经验不足;第二,技术面试虽然不算过硬尚且过得去,但是HR面无准备无技巧无经验,事先对面试公司了解不够充分,没能结合自己的职业规划谈为什么要选择对方以及对方为什么要选择自己。这两个点,都相当致命。

      我在笔记本上写下:失败会看到许多成功时未能看到的东西。

      没关系,博客还得继续,学习还得继续,生活还得继续。废话少说,让我们开始今天的内容吧,不知道有没有童鞋每天都会看我的博客呢?有的话在评论里吼一声哟。

    ———————————————————————————闲聊结束——————————————————————————

      第四章:文件系统

      文件系统呢,是Unix的一个组件,作用是能够让用户查看、组织以及保护存储设备上的文件和目录并与其进行交互。

      第一节:文件系统基础

      文件系统是多个文件的逻辑集合,它位于分区或磁盘上。分区是信息的容器,如果需要的话,它可以包含整个硬盘。一个分区通常只包含一个文件系统,例如一个分区包含根(/)文件系统而另外一个分区包含/home文件系统。每个分区上包含一个文件系统,这种组织方式允许对不同的文件系统进行逻辑维护和管理。这些分区对用户是不可见的。在Unix系统上,用户可以轻易地在任意数量的文件系统之间进行切换,甚至不知道自己已经一个文件系统转换到了另外一个文件系统。

      在Unix中,任何软硬件都被视为文件,包括物理驱动器,如DVD-ROM、USB驱动、软驱等。通过使用文件系统,Unix能够在处理资源时保持一致,并且用户在与系统进行交互时能够采用一致的方式。

      值得注意的是,在Unix中,每个文件和目录都是从根目录开始的,根目录通常表示成/。下面,我们来看看,根目录下有哪些子目录

      除了记住根目录是文件系统的基础之外,我们还可以了解一些在大多数Unix系统上通常存在着的核心目录。这些目录有特殊的作用,通常都会保存相同类型的信息以便定位文件。下面简单地介绍几个最重要的目录——

    • /:根目录中只包含文件结构的顶层所需要的那些目录。根目录下不必要的子目录会搅乱系统,使管理更加困难,而且根据系统的版本,可能会占用分配给/的空间。
    • bin:通常包含二进制(可执行的)文件,这些文件对系统的使用非常关键。它通常还会包含基本系统程序,如vi、passwd和sh。
    • boot:包含用于启动系统的文件
    • dev:包含设备文件,通常包括cdrom(CD-ROM驱动器)、eth0(以太网接口)和fd0(软驱)。(在不同的Unix系统中,设备的命名通常是不同的)
    • etc:包含系统配置文件,如host(包含与主机解析有关的信息)和shadow(包含加密后的口令)
    • home:包含用户和其他账户的主目录
    • lib:包含共享的库文件,有时候还包含与内核相关的其他文件

      第二节:路径和大小写

      说到路径,每个文件都有一个绝对路径和一个相对路径。什么是绝对路径呢?绝对路径是指文件在文件系统中的准确位置,如/etc/passwd。相对路径是什么呢?是指相对于用户当前位置的一个文件或目录的位置。举个例子,如果用户在/etc目录下,则/etc/passwd的相对路径是passwd,因为它和用户在相同的目录下。

      Unix是区分大小写的操作系统,这就意味着文件或目录名的大小写是有区别的。例如,/LevenYes和/levenyes是两个不同的目录。跟Windows系统和DOS系统一样,Mac OS X系统是不区分大小写的,所以在Mac和其他的Unix系统之间传输文件时,应该注意这一点,以免造成不必要的失误。

      第三节:文件系统导航

      了解了一些文件系统的基础知识之后,我们再来看看如何才能找到所需要的文件。下面先列出几个常用的命令:

    • cat:Concatenate,显示一个文件
    • cd:change directory,转到指定的目录
    • cp:Copy,转到指定的目录
    • file:显示该文件的文件类型
    • head:显示文件的开始部分
    • less:从开头或结尾开始浏览整个文件
    • ls:列出用户有权访问的任何目录的内容
    • mkdir:Make directory,创建指定的目录
    • more:从头到尾浏览一个文件
    • mv:Move,移动文件/目录的位置或者重命名一个文件/目录
    • rm:Remove,删除文件
    • rmdir:Remove directory,删除目录
    • tail:显示文件的结尾部分
    • touch:创建一个空文件或者修改一个现有文件的属性

      光列举明显是不够的,上面那些命令童鞋们可以多试试,看看效果如何。还可以利用我们上一篇刚学到的联机帮助页,详细了解命令的选项以及其他说明。下面,我们将重点研究下面几个指令。

      第一个指令:pwd

      一开始来个比较简单的,pwd的作用就是显示用户在文件系统中的当前位置。pwd命令没有参数,只需要在命令行输入pwd即可,如下图:

      用户知道自己在文件系统中的位置这一点非常重要,因为,当用户以为自己是某个目录下,而实际上却是在另一个目录下时,他运行的某些命令可能会给系统造成严重的损害。例如,我们用root账户想要删除某个目录里的所有内容,本想删除目录A,结果没想到自己还在某系统目录下,一激动就··· ···大家自行想象,后果会有多么严重。

      第二个指令:which和whereis

      which和whereis命令帮助查找那些已经知道名字但是不知道位置的文件。将文件名作为参数,which只在用户的PATH所指定的文件中查找。例如我们最常用的ls命令,其实也是一个文件。而where,则会显示出该命令的所有位置。另外,我们还可以使用echo命令,显示所提供参数的内容,例如PATH。见下图

      第四节:文件和目录权限

      Unix系统安全的第一道防线就是文件的权限。Unix权限的基本类型有读、写和执行权限。

      下面,我们使用ls -l命令来查看一个目录下的权限情况:

      看到上图标记的一条记录,第一个字符是用来表示文件类型的,d表示目录文件。而第2个到第10个字符则是用来记录权限的,分成3组,每组有3个字符,组中每个位置对应一个指定的权限,其顺序为:读、写、执行。第一组(2~4)表示文件所有者的权限(该记录为root)。第2组表示文件所属组的权限(该记录为root)。最后一组表示“其他”的权限。

      第五节:修改权限

      刚才讲了文件与目录的权限,那么如果我们要修改它们,可以使用chmod(change mode)命令。这条命令有两种使用的方式:符号模式和绝对模式。

      符号模式,对于初学者来说,应该是最简单的方法了。文件权限的第一个集合(ls -l命令输出的第2-4个字符)用字母u来表示,代表用户;第二个集合(字符5-7)用g来表示,代表组;最后一个集合(字符8-10)用o来表示,代表其他任何人(其他)。还可以使用-a选项同时对所有3个组进行授权或者删除其权限。我们看看下图:

      我新建了一个名为testdir的目录,再依次运行示例中的命令(将testfile改为testdir),看看权限的变化情况。

      我们还可以将这些命令合并在一起执行(用逗号隔开):chmod o+wx,u-x,g=r-x testdir  。

      再简单讲讲绝对模式如何使用chmod。每一组的rwx,如果该位取-(无权限)则为0,若取r(w、x)则为1。那么rwx为111=7,r-x则为5,---则为零,如此类推。那么语法就是chmod abc testdir(a、b、c表示的都是数字)。

      第六节:创建、修改和删除文件

      要在文件系统中复制某个文件,可以使用cp命令。如果是移动文件的话,则可以用mv命令。

      如果要创建一个空文件,可以使用touch命令。如果在一个现有文件上使用touch命令,将更新它的最后修改时间,但是如果将该命令与一个新的文件名一起使用,则创建一个空文件。该命令的语法是touch filename。

      删除命令用rm(remove)命令,有两个主要的选项是-f和-r。-f选项使rm命令强行删除一个文件,而不会询问是否真的想删除这个文件,使得rm命令只是执行删除的操作而不会产生任何的输出。-r选项使得rm命令能够进入到所指定目录的任意子目录中取,这时rm命令的参数是一个目录名。

      

      今天就到这里,其实文件系统还有一些内容没有讲到,例如链接、基本的文件系统管理等,在之后会有所补充。

    —————————————————————————倒数第五天————————————————————————

      昨天一个同学貌似跟家里吵架,我在旁边大气不敢喘。

    1.家家有本难念的经,哪个家里没点事儿,希望他能尽快跟家人和好。

    2.他工作早就定了,非常不错,BAT级别的,女友也找到了跟他一个城市的工作,一切看起来都很顺利。我并不是羡慕嫉妒恨,他跟家里吵架我就在一边乐。而是想告诉自己,每个人都有每个人的烦恼,每个人都有每个人的快乐。没必要羡慕别人,也没必要瞧不起别人,过好自己的日子就好了。

    3.人生就这么短短几十年,开心是过,不开心也是过。出任CEO,迎娶白富美,走向人生巅峰并不一定就是好,尽力让自己和身边的人开心才是应该做的事,我认为。  

  • 相关阅读:
    kuryr环境搭建
    使用docker搭建kafka环境
    记一次解决curl https证书问题
    一篇精彩的洗地文
    个人知识管理利器wiz
    Markdown写作
    用Bottle开发web程序(二)
    用Bottle开发web程序(一)
    Magnum Kubernetes源码分析(二)
    DVWA(九):File Upload 全等级文件上传
  • 原文地址:https://www.cnblogs.com/levenyes/p/3421990.html
Copyright © 2011-2022 走看看