网站内部链接,海口模板网站建站,正邦设计公司招聘信息,简洁的中文wordpress模板登录系统输入用户名和密码以后#xff0c;会显示给我们一个命令提示符#xff0c;就意味着我们在这里就可以输入命令了#xff0c;给一个命令#xff0c;这个命令必须要可执行#xff0c;那问题是我的命令怎么去使用#xff0c;命令格式有印象吗#xff1f;在命令提示符… 登录系统输入用户名和密码以后会显示给我们一个命令提示符就意味着我们在这里就可以输入命令了给一个命令这个命令必须要可执行那问题是我的命令怎么去使用命令格式有印象吗在命令提示符下我们首先是命令吧command后面可以带什么参数对吗options再后面是arguments我们把它称为叫参数这是选项。选项有可能会有多个参数也有可能会有多个有的命令可能不能带参数有的命令可能没有选项这是各不相同的我们这里给的仅是一个通用的架构或者是一个常见的应用格式而且之前提到过选项有两种格式有所谓的短选项和长选项的概念短选项是可以合并的还有长选项。然后是参数对吧选项是用来干什么的 修改命令的执行特性的对不对而参数呢指定命令的作用对象的这个命令对谁进行生效所以大家一定要理解他们彼此间的意义那如果说有多个选项或者有多个参数的话那命令选项参数彼此之间必须要使用空格隔开这是我们的基本使用格式当然此前如果使用此内容不太多的话很容易犯这种错误老是忘了加空格。 好了这里还需要交代的是在命令当中有些选项是可以带参数的注意选项的参数和命令参数是两码事这个还需要注意有些选项我再说一遍有些选项是可以带参数的回头讲到的时候再做具体说明。好那比如之前我曾经输入这样的命令给了个ls回车还记得吧这又是个简写的命令叫做list所以简写为ls那是表示什么意思呢列表列出的意思对吗OK列出列表那因此它能够列出你所指定目录下的所有的子目录或者文件列出指定路径下的所有目录或者文件的当然也包括子目录其实目录也是文件以后讲到了。 当然在Windows当中我们通常把它称为叫文件夹对吧OK那文件夹是个什么玩意儿 那文件夹就是文件夹呗是不是那因此在你想象出来目录是不是是一个容器对吗它里边可以放文件的对不对事实上完全不是这么回事。目录它不是文件夹这是Windows给你的误导它仅仅是个路径映射而已回头讲到文件系统的时候再细细说明为什么目录到底是什么东西将来就会明白为什么需要缓存目录将来要提升系统的话为什么需要去调整这些可以缓存的空间大小等等。 这些概念都是一体的。好那所以再说一遍先知道其实目录也是文件。它其实也是一种文件只不过这种文件比较独特它是一种路径映射文件这里又提到了路径当然对各位来讲路径应该很多很容易理解是吧路径指的是什么路径是从指定起始点到目的地所经过的位置。 所经过的什么位置我们就把它称为叫路径。当然路径在我们现实生活中用这种方式来进行描述很容易理解那在系统上为什么要用到路径的概念为什么要用到路径呢其实也很容易理解这只是为了能够实现层次化文件管理的一种机制。想象一下如果说把全国人民放在同一个范围内进行编号标识的话引用起来是不是非常非常麻烦所以我们把全国人民分成了各个区域 把全国分成了各个区域河南浙江上海等等每个区域下还有子区域子区域还有子子区域 子又生孙孙又生子是不是大概就是这个概念。 那为什么要划分这么多区域呢层次型的结构可以实现很快的、利用非常短的路径去快速追溯一个目标。再举个简单例子比如说我在磁盘上放了十万个文件从中找出一个叫做jerry的文件需要花多长时间去找想过这个问题吗一共有十万个文件其中有一个叫做jerry当去找的时候压根就不知道这个文件在什么位置是不是那就意味着必须要遍历从第一个开始找如果很幸运那第一个很可能就是如果足够不幸的话最后一个才是。是吧那我们查找文件的平均时间是非常长的平均下来要查找五万次才能找到这个文件但是我们如果层次化管理的话有什么好处呢比如说首先画成26个目录以某个字母开头的就放在这个目录里边那因此当我们去找jerry的时候你只要找到j的目录是不是就OK了而在j目录里边假如说只有一万个这是不是简单多了能理解概念吗所以这就是层次化管理的好处。 那既然有了层次化那就意味着我们要标识某一个文件就从顶开始全部的文件底下找到j那个目录然后再找到e开头的那个子目录r开头那个子子目录这不是jerry吗是不是这个道理啊最终才能找到jerry。从而我们去标识某一个文件的时候它的速度就非常非常快了这就是所谓的为什么要实现层次化文件管理而这样一个层次化文件管理的机制我们把它称为文件系统file system。 普天之下莫非王土率土之滨莫非王臣就这个道理那因此在整个linux上所有的文件肯定都属于当前系统的对吗那因此它有个制高点从这个位置开始你能找到所有文件这就我们的最大范围在这个范围内我们有很多的子目录子目录里边有子子目录对不对如下图 但是用这种方式去理解的话可能看起来结构不够明晰。因此linux的目录结构通常把它称为叫树状目录结构倒置的树状最上头的把它称为叫根A称之为叫根向下的有一级子目录二级子目录等等如下图 那要找到某一个特定文件怎么去找如何去找某一个特定文件比如说像这个D文件D的位置注意有的节点可以分叉像这里有的节点不能分叉对吗像可以分叉的节点把它称为叫目录可以理解吗它是个路径而不能分叉的节点把它称为叫文件D是个叶子结点。 那因此我们要找到这个文件就意味着从A到这个一级子目录到二级子目录是不是就可以找到这个文件了OK这种表示从根开始往下找的一种机制这种把它称为叫绝对路径对吧叫做绝对路径。因为无论如何我从根这里开始找一定会能找到你想要找的文件那什么叫相对路径呢有绝对就有相对。OK事实上任何时候当你登录系统以后你一定会处在某个目录当中。比方说我打开Windows默认就处在桌面上对不对桌面是不是一个目录是桌面其实也是一个目录。所以你只要登录系统以后无时无刻或者每时每刻都处在某个目录。这个目录我们把它称为叫做当前目录也叫工作目录。一定要理解目录的概念。登录系统以后在每一个时刻都一定处在某个目录上。这个我们把它称为叫working directory。我们称为叫工作目录或者叫当前目录current directory。那仍然以上图为例比如说你此刻站在C位置我让你去找D文件你还非得从根去找有必要没有因为它在当前目录下是不是就有啊能明白了吗所以什么叫相对路径相对于当前所处位置的路径我们把它称为叫相对目录。那很显然问题是如果你站E位置的话能不能相对啊也能只不过你得先回到B位置最起码的回到它从根到D位置上所要经过的某一个点上才行那所以相对一定是在从根到目的地中间这个路径上的某个节点上你有这个位置否则的话你是无法相对的。OK所以你站在D位置去相对是相对不过去的除非你倒回来先倒到B位置倒到最近的那个位置上才能进行相对这种把它称为叫相对路径。 好这就我们整个linux的文件系统的大体上的一个结构描述当然这些一级子目录二级子目录尤其是一级子目录在Linux系统上它有一个规定,必须要存在这么多个一级字母不知道大家有没有留意过无论使用ubuntu或debian里面有些目录是必然会有的什么bins、sbin等等。 为什么会有这是linux标准委员会当中曾经定义了一个规范叫做fhssystem hierarchy standard叫文件系统层级结构标准。它里边规定了有些目录是必须存在而且这些目录下要放什么样类别的文件后面会详细的去讲一个一个去解释这些目录下都有什么文件因为这些目录是标准化的所以我必须得记得住回头再说但不管怎么讲应该知道它是一种层级化的结构就OK。好我这里先给大家预留一个问题比如说文件名是不是文件的数据文件名是不是文件的数据每一个文件是不是都有名字啊都有大小都有权限很多属性对不对这些东西它也是数据对吧但这些数据是不是文件本身的数据对于一个人来讲这个人的体重年龄性别身高名字等各种属性是不是一个人的组成部分不是那它又存储在什么地方了呢那想象一下我们要在文件系统上存储一个文件这文件通常我们是不是都使用名字去找的一个文件打开以后我们要往里边存很多数据那你想过没有文件名放在什么地方文件的内容放到什么地方了你考虑过这些问题吗文件的名字在哪里文件的数据又在哪里先存有这个疑问后面会细讲文件系统。好但不管怎么讲我们现在知道怎么去找一个文件路径或者说什么是文件路径就可以了那于是我们就能理解ls这个命令了如下图 那我使用ls直接回车不跟任何参数也没有任何选项没有选项就意味着它以ls的默认方式进行工作对不对那没有参数呢ls就列出指定路径下的文件或者子目录的等等。那现在我没指定怎么办它是不是也有默认值啊默认指的叫缺省有的地方把它叫缺省有的地方把它叫默认对ls而言默认就显示当前目录下的文件。 当前目录那当前目录是哪个目录呀我们有另外一个命令叫做pwdprint working directory 或者叫printing都可以。显示工作目录显示当前目录所以叫pwd那因此我们在这里执行一下pwd如下图 它就能显示你当前在哪个路径下看到了吗对linux而言最顶级这个目录用斜线来表示最顶级这个用斜线来表示大家记得而后各路径之间的分割符也使用斜线注意这叫斜线Windows使用的叫反斜线不知道Windows为什么非要标新立异大家应该知道有一句话叫做丑人多作怪是吧那恐怕Windows就是这样一个思想。好那所以像这里的这个路径就表示根目录下的root根下面直接有个root这是一级子目录。那因此我们ls和ls root指的是不是同一个意思了内容是一样的这列出来的都是文件名称用蓝色显示的是目录是目录的属性如果显示为绿色的话通常指的是它有执行权限。当然还有很多其他颜色常用的颜色有六种回头会介绍以及怎么去显示颜色。好这是ls当然ls有很多的其他的辅助性的功能比如说我们可以使用很多选项来定义比如像之前用到的 -l其实表示就是long long叫做长格式长格式的意思就表示显示完整信息都来看我们使用-l和不使用-l有什么区别呢如下图 ls 只显示文件名而使用ls -l以后会显示文件的很多属性看到了吗这些属性我先做一个简单介绍注意第一列是十位看到了吧这是十位最左侧这一位是文件类型注意这个类型指的不是内容类型而只是文件本身的属性上能够区别的类型好我先说一遍回头讲文件系统再说一遍啊文件类型对linux而言有这样几种要记住了如果显示为横线就表示这是一个普通文件就是一个常见的文件事实上它应该用f来表示只不过这里使用横线来表示了是个file。如果显示为d这表示这是个目录文件。如果显示为b就表示这是一个块设备文件。b就叫block后面会讲什么是块设备先知道就行。然后是c这表示是一个字符设备文件c就叫character。它还可能是l这表示是链接文件但是这里指的是符号链接链接文件有两种叫symbolic file link 称为叫符号链接也叫软链接文件。如果看到是p的话这表示这是个管道文件命名管道把它称为叫pipe就是烟斗那个管道。如果是s这表示这是一个套接字文件比如socket先记下来就OK回头再解释这东西是什么东西都是什么好这是我们的常见文件类型那由此来看这里这横线表示普通文件对不对这d就表示目录其他的就不再解释当然应该知道在dev目录下有很多设备文件你看如下图 很多c开头的看到了吧还有l开头的还有d开头的c开头的刚才说过叫字符设备在tmp目录下有些情况下你可能会看到s开头的文件套接字文件它的颜色好奇怪是吧。 好这是ls -l杠l选项所显示内容的第一列的第一个字符我们把它称为叫文件类型。再看后面这九个这是九个位这九个位表示是文件的权限叫文件的modemode叫模型或者叫模式都行实际上它指的是权限第二个位开始叫文件权限一共有九位这九位里边是每三位一组至于它们是什么回头再说先知道就行了每三位一组而且每一组里边都分别是rwx就是读写执行三种权限。r表示读w表示写x表示执行如果没有这个对应的权限就得用横杠来表示就表示没这个位没这个权限比如说写成rw-代表什么意思能读能写不能执行能理解了吧OK那r--就表示能读不能写也不能执行就表示这意思。所以每三位一组那个位上没有的话就用横线来表示那由此---就表示什么都没有是不是好这九位是权限回头再细细解释下面这个叫做文件被硬链接的次数是文件硬链接的次数好那至于这些次数为什么是一有的为什么是二能不能把它增加等等后面都会解释现在不说了下一列就是第三列是文件的所有者文件的所有就是文件归谁所有OK文件的属主也叫owner就是拥有者。那对应下一列就是文件的属组OK文件的属组叫group它属于哪个组用户是可以有用户组的那组和用户到底有没有用以及什么是进程的安全上下文后面会有解释。 好再向后第5列是文件大小把它称叫size文件的size单位是字节默认单位是字节 再向后一个第6列这是一个注意啊这是个时间或者叫时间戳把它称为叫timestamp 每一个文件都有三个时间戳包括最近一次被访问的时间最近一次被修改的时间最近一次被改变的时间修改和改变有区别吗每一个文件都有三个时间戳这里显示的是最近一次被修改的时间对修改的时间注意刚才说过有三个时间戳对吧第一个是访问访问很容易理解 就是读里边内容我们打开访问了比方使用cat等命令后面会有介绍访问把它称为叫access修改我们把它称为叫modify而还有一个我们称为叫改变称为叫change。修改和改变有什么区别这个很容易理解一个文件它有两种数据一种是文件自身的数据另外一种是文件的属性数据属性数据也叫元数据先记住这个概念文件的属性数据也叫元数据叫做metadata把它翻译成叫元数据就这个元表示根本的。而修改指的是改变了文件的内容改变指的是改变了文件的属性或者叫原数据。明白了吗很奇怪莫非不改变文件内容文件属性会不会修改文件内容没有动但是把文件名改了属性是不是修改了就像一个人一样人改改名和掉了一只胳膊那是两码事对吗好这是时间戳那由此知道第6列是最近一次被修改也就是它的内容发生了改变的时间文件内容发生改变。最后一列不用解释了这是文件名就是文件是什么这是-l的显示结果再说一遍这是常识以后用linux几乎每一次都有可能要用到的。好有没有发现当使用-l的时候这个文件的大小像是字节对不对事实上有时候经常希望把它显示为单位比方说M啊、k啊或者g啊什么之类的更容易识别这可以用到另外一个选项叫做 -hh表示叫human readable就人类容易识别的人类可读的那所以它说白了就是做单换算的默认是b可能会把它转换成KB、Mb、gb什么之类的那因此-l-h就可以一块来用了我们来看ls -l -h当然我说过可以和一起是吧ls -lh短选项合并如下图 在Windows里边应该知道文件可以有隐藏属性的对吗隐藏就意味着我们平时是看不到它的除非把它的隐藏属性给它或者把它的能够让我的目录显示的时候显示那些隐藏属性对不对那实际上ls也能支持常用的选项叫做-a表示all显示所有文件但是对linux而言隐藏文件是用点号开头的隐藏文件以点号开头那所以这里表示显示以点开头的隐藏文件。比如使用ls -a会发现会多出来很多文件的这些文件都是点开头的有两个特殊的一个叫点一个叫点点还有其他的以点开头的如下图 点和点点是什么呢而且发现点还是有蓝色的是不是我说个蓝色是什么目录是吧那因此点表示当前目录那点点呢表示当前目录的上一级目录所以来看用ls . 是一个效果如下图 看到了吧虽然点本身没显示出来ls . 它也表示显示当前路的。那猜一猜ls .. 呢显示的上级目录上级目录是根目录就是根目录下的所有目录表示父目录如下图 如果我们使用-A来显示的话大写的a就表示显示所有隐藏文件但是不包含 . 和 .. 来看一下点和点点就没了如下图 但是隐藏文件也会显示了看到吗这是A和a的区别。 我这里显示 ls /root如下图 发现它显示root目录下的内容是不是那如果想显示root本身的属性怎么办ls -l root我想想看一下root这个目录自身的数据、权限、最近一次的修改时间等怎么看有个选项叫杠d显示目录自身属性的比如像刚才仍然这里ls -ld 一块来用就显示root自身属性了如下图 之前说过我们识别用户是靠用户名而计算机是把它转换成数字来识别的对不对文件名也是如此我们用户或者我们作为计算机的使用者来讲以名字来记忆文件可能更容易但是机器识别靠数字更简单所以每一个文件都有一个唯一的数字标识符这叫文件的inode叫文件的结点 也叫文件的索引节点把它称为叫index node 简写为inode那很显然刚刚说过既然每一个文件都有一个索引节点它每个节点应该都有对应的号码 有一个对应的号码那因此我们要想显示文件的一个号码的话就使用 -i 选项-i 选项显示文字的索引结点号的注意这个东西对我来讲是很关键的如下图 每个文件前面是不是有数字的这叫索引结点好不知道大家有没有留意到当使用ls命令的时候你会发现这个文件是按照文件名在字母表中的次序进行排列的、连续的看到了吗而且是升序排序的那使用ls -r看效果是什么如下图
完全反过来了看到了吗好所以小r刚看到了逆序显示文件逆序显示。那大R是干什么的叫递归显示ls -R如下图 以后我们会经常用这个单词递归叫recursive或者叫recursion都行。recursive 表示递归显示什么叫递归啊ls的时候它只显示这个子目录对不对子目录中有什么内容显示不显示不显示的而加-R它不但显示子目录每个子目录中有什么只不过这个子目录是空的子目录中的内容也予以显示的如果子目录中还有子目录子子目录中内容也会显示叫递归。当然大家应该知道递归是相当消耗资源的这个要知道比方说一个文件下面有上万个小文件这样一递归内存中大量的内存都用来显示这个文件了因为所有的数据要显示首先要先到内存好-R叫递归显示。 那事实上ls还有很多其他选项先不说了大致常用到的就这么多这也是我们最最常用的命令。