Linux学习笔记之二(文件管理上)



Linux学习笔记之二(文件管理上)

目录结构

Linux学习笔记之二(文件管理上)

Linux和windows最重要的一个区别就是Linux是单根形式,而在windows下每一个磁盘都是一个根目录(我觉得说每一个卷其实更好)。我们看如果在C盘

Linux学习笔记之二(文件管理上)

根目录就是C:\,在D盘呢又是D:\

Linux学习笔记之二(文件管理上)

到这里我们就稍微理解了在windows命令行里换盘的操作,如下

Linux学习笔记之二(文件管理上)

直接输入D:根目录就会切到D,输入e:也是一样,这个冒号不能少。这里我指出的是文件夹可不是这么进的,文件夹用的还是cd 命令,直接输入盘符是切换根目录的操作

Linux学习笔记之二(文件管理上)

上面的cmd操作就是一个补充而已,我联想了一下,不用太在意。视频里的centos版本和我们安装的还是不一样的。我们来看一看变了没有,看到呢还是有一些不同,不过我们下面就介绍一些主要的目录。

Linux学习笔记之二(文件管理上)

来说一下这几个颜色的含义,深蓝色代表的是文件夹,boot,home,usr都是这个颜色,浅蓝色其实也是文件夹,但是它相当于windows里的快捷方式,是一种链接文件,那么bin,lib,lib64,sbin真正的位置在哪里呢?

Linux学习笔记之二(文件管理上)


Linux学习笔记之二(文件管理上)

我们看到有几个虚线指向的就是真正所在地,bin指向了/usr/bin其它也是类似。我们还可以看到上面tmp的颜色也不一样,但是它就是真实所在地,只不过它存的东西特别。具体的其他颜色含义呢,看下图:

Linux学习笔记之二(文件管理上)


Linux学习笔记之二(文件管理上)

数字代表的含义也会显示出来:

Linux学习笔记之二(文件管理上)


Linux学习笔记之二(文件管理上)

我们看看背景颜色是42是什么意思,你可以去上面看看tmp的颜色。

Linux学习笔记之二(文件管理上)

虽然这个含义我们暂时看不太懂。但是我们知道怎么去找了。然后呢,你们应该也发现了,bash的提示符是不是会出现一个~号呢?这是什么意思呢?

Linux学习笔记之二(文件管理上)

这个~是家的意思,我们用pwd(print working directory)可以看到当前的目录。我就来解读一下这段命令吧,第一次pwd的时候,用户是lcl,而且提示符那里是~,那么显示的就是lcl的家,在/home/lcl,然后切换用户到root,这个时候呢文件路径还在/home/lcl这里。cd后面什么都不加的意思呢,就是回家,我们下一行看到了变化。

Linux学习笔记之二(文件管理上)

我们看到lcl就变成了~,至于为什么上一个只显示lcl呢这是因为上一讲就说过,这里只显示最后一级目录。好,命令已经解读完了,那么我们现在知道了root的家就在根目录下的/root,而普通用户的家在哪里呢?在/home/用户名,/home我们可以理解为普通用户居住的小区。我们前面执行过一个建立a1-a10用户的shell 脚本还记得吗?所以呢/home下就有这么多文件夹,~可以说是一个变量,用户不一样,家不一样。

Linux学习笔记之二(文件管理上)

为了便于理解这个家的概念,我们会用windows作辅助讲解。下面就是windows用户的家,这里补充一点,比如说你现在是用Administrator,桌面上有的东西,你用lenovouser登陆可能就看不到了。

Linux学习笔记之二(文件管理上)

当然呢?其实普通用户的家也不一定在/home/,是可以改变的,不过默认是在/home,这些家里存放的都是一些私有的东西,需要一定权限才可以访问,就像你有你家钥匙才能进去你家(其它非正常方法除外)。

我们下面一个一个认识一下这些目录。

/bin和/sbin

Linux学习笔记之二(文件管理上)

bin里面存放有很多命令,这些命令是普通用户的权限就可以使用的。

Linux学习笔记之二(文件管理上)


Linux学习笔记之二(文件管理上)

我们可以直接试一下。

Linux学习笔记之二(文件管理上)

这里顺便说一下,bin就是binary的意思就是二进制。sin里是管理员才有权限用的命令。如果你想知道命令在哪里,可以用which命令。

Linux学习笔记之二(文件管理上)

我们看到普通用户是没办法找到useradd这个命令的,显示了no useradd,这就是没有权限,只有root才可以找到,当然也可以调用useradd。然后这里需要指出的是,和视频是有不同的,我用的Centos比较新,和视频里是不一样的。

Linux学习笔记之二(文件管理上)

这个应该是which默认的用法变了,我们来看一下。

Linux学习笔记之二(文件管理上)

前面只写which也没有问题,这里显示的是链接,这里应该是新版本做的改动,对我们学习影响不大,我们知道/bin是/usr/bin的链接,/sbin是/usr/sbin的链接,真正的文件在/usr/bin,还有/bin里面是低权限,也就是普通用户就可以使用的命令,/sbin里的命令需要高权限,root才可以使用,就可以了。

/dev

Linux学习笔记之二(文件管理上)

dev里面放的是设备,有句话是这么说的,Linux一切皆文件,设备当然也是,叫做设备文件。

/dev/sda就是我们虚拟机虚拟的硬盘,sda1是其中的一个分区。

Linux学习笔记之二(文件管理上)

值得提醒的是/dev/sda为什么是permisson denied呢?因为设备文件不是一个命令,是不可以直接执行的,我们只能对它做一些操作,比如ll。

Linux学习笔记之二(文件管理上)

值得说的是sd*这个*是一个通配符,我们前面安装completion就用到过,当时打的是com*,这个在window搜索文件的时候?代表一个任意字符,*代表可以是任意个任意字符(前面说的任意一定是由范围的,不过很多应该都可以),*和正则表达式中的意义不同,这里先不扯了。这里主要是强调设备都放在/dev里。tty是终端的意思。

Linux学习笔记之二(文件管理上)

我们目前远程连接虚拟机的这台电脑就是一个终端。

Linux学习笔记之二(文件管理上)

我们打ls之所以结果会显示在屏幕上其实是因为这些信息写在了/dev/pts/0里面,

黄色是什么意思呢?我们可以稍微看一下。

Linux学习笔记之二(文件管理上)

严格来说呢,其实这些文件是快设备驱动程序。不过呢,一切皆文件确实是linux的哲学或者说核心思想。

/proc

Linux学习笔记之二(文件管理上)

proc这里面存放的都是一些进程信息。上面说是虚拟的,怎么体现呢?du是查看大小的一个命令。

Linux学习笔记之二(文件管理上)

我们看到/etc是30M,/proc报错了,最后统计结果是0。关于进程呢?

Linux学习笔记之二(文件管理上)


Linux学习笔记之二(文件管理上)

也可以到https://www.zhihu.com/question/25532384。

Linux学习笔记之二(文件管理上)


Linux学习笔记之二(文件管理上)

这里面每一个数字里都存着一个进程的信息,当然还有一些其它的文件,是不带数字的。

Linux学习笔记之二(文件管理上)

我们可以敲一条命令看看某个进程的号码,然后可以去看这个进程的相关信息。

Linux学习笔记之二(文件管理上)

如果把某个进程关掉呢?对应号码的文件夹就会消失,如果新建一个进程,/proc就会出现一个带号码的文件夹了。那么谈到这里,应该有一件事我们要明白,那就是/proc里这些进程的信息是存在内存里的,而不是磁盘,关掉这个应用,应用的进程就没了,而应用确实是存在磁盘上的,,应用存在磁盘上而进程的信息是存在内存里的,说的有点多了。我们优化进程和内核的一些东西都要来/proc里优化,这一讲我们也只是先见一见。

/usr

Linux学习笔记之二(文件管理上)

这个图里写的很清楚了,/usr/lib和/usr/lib64是一些软件调用的库文件。

/boot

Linux学习笔记之二(文件管理上)

千万不要作死去删图中的kernel内核,你懂的。启动的时候grub会加载我们的内核。

/etc,/lib和/lib64

Linux学习笔记之二(文件管理上)

/etc是重点需要去关注的,里面都是一些可以编辑的文件,网络设置啊,ssh相关的文件都在这里面。

Linux学习笔记之二(文件管理上)


Linux学习笔记之二(文件管理上)

/lib和/lib64是开发人员要用的,我们不关注。

/tmp和/var

Linux学习笔记之二(文件管理上)

什么叫全局可写呢?每一个进程和用户都可以写。

Linux学习笔记之二(文件管理上)


Linux学习笔记之二(文件管理上)

log是一些日志文件。上面的内容都是来自https://www.bilibili.om/video/av18945696/?p=6,不懂的可以去看。

说了这么久的远程操作,这玩意靠谱吗?对比一下咯:

Linux学习笔记之二(文件管理上)

虚拟机和Xshell里的颜色略有差别。

Linux学习笔记之二(文件管理上)

这里呢顺便说一下Xshell怎么调字的大小。

Linux学习笔记之二(文件管理上)

后面会讲云主机,这个很好用。虽然上面说的是Centos,不过所有的Linux的基本的目录结构差不太多,会有一些小的差异。

文件定位路径

Linux学习笔记之二(文件管理上)


Linux学习笔记之二(文件管理上)

这里的文件路径啊,绝对和相对路径啊,我就不写了,应为比较简单,可以去看https://www.bilibili.com/video/av18945696/?p=7,从18分开始看。

这里我还是稍微说一点吧,/home/alice/file1是绝对路径这毫无疑问,/abc/file5也是,而abc/file5是一个相对路径,它的绝对路径取决于当前路径。如果pwd是/,那么直接ls tmp看的就是/tmp,如果pwd是/var那么ls tmp看的及时/var/tmp。

Linux学习笔记之二(文件管理上)

还值得提到的是.和..这两个目录。.其实可以替换为pwd,也就是当前目录,而..呢是上级目录。这个cmd里也有。

Linux学习笔记之二(文件管理上)

不过呢?linux多了一个~,这个前面也讲过,不同的用户~是不一样的。

Linux学习笔记之二(文件管理上)


Linux学习笔记之二(文件管理上)

我们可以~用户去指定用户的家,不加用户就是当前用户。还有Linux里cd什么不加是直接回家。下面是一个我们早就用烂了的命令change directory。

Linux学习笔记之二(文件管理上)

cd -是返回上次目录。

Linux学习笔记之二(文件管理上)

还需要指出的是cd 后面是不能跟三个点或者更多的(除非有这样的文件),那么为什么可以跟两个点和一个呢?因为确实有这样的隐藏文件夹。

Linux学习笔记之二(文件管理上)

你可以创建三个点,四个点,不过这没有意义,不是你想要的结果。

Linux学习笔记之二(文件管理上)

还有一个零碎的只是吧,自动补齐的路径一般后面会有/这是因为它不确定你是否输完了路径,这个带着也没关系的。

Linux学习笔记之二(文件管理上)

文件管理

这里先说一些命令,touch是创建一个空文件,mkdir是创建一个文件夹,cp是复制文件,移动用mv(move),rm是删除文件,查看文本文件是cat和cat less(看内容比较多的文件)。head -10可以看前10行,tail -10可以看结尾。tail -f可以动态查看结尾。

Linux学习笔记之二(文件管理上)


Linux学习笔记之二(文件管理上)

grep是过滤的,这个命令很有用的。

Linux学习笔记之二(文件管理上)

上面的命令我觉得大家现在都可以通过help来学会如何使用了,下面讲如何编辑文件呢?

Linux学习笔记之二(文件管理上)

需要指出的是gedit是需要有UI的,也就是图形界面,很像记事本。

Linux学习笔记之二(文件管理上)


Linux学习笔记之二(文件管理上)

我们直接用下面的vim和nano。我们先把vim装好。

Linux学习笔记之二(文件管理上)

下面就可以利用vim打开或者创建一个文件,如果文件已存在,就是打开,不存在就是创建。

Linux学习笔记之二(文件管理上)

这么输就会弹出一个编辑窗口。

Linux学习笔记之二(文件管理上)

在这个窗口你可以进行编辑。我们先保存并退出(:wq或者:x)看一下。

Linux学习笔记之二(文件管理上)

就有了这个文件了。下面先来简单讲一下vim,进入编辑界面以后,按i,左下角会出现一个INSERT,表示我们现在是插入模式,你就可以在这里面写东西了。

Linux学习笔记之二(文件管理上)

如何保存呢?保存要先按esc退到扩展命令模式,然后输入:wq或者:x然后回车就是保存并退出了,拖出来以后我们看一看文件的内容。(冒号一定是英文的冒号)

Linux学习笔记之二(文件管理上)


Linux学习笔记之二(文件管理上)

当然上面只是vim的简单用法,下面是复杂一点的,但很有用。

Linux学习笔记之二(文件管理上)

一开始进入vim是命令模式,它是其它模式的桥梁。按i进入了INSERT模式,怎么保存呢?先按esc进入扩展命令模式,然后输格式:wq或者:x是保存并退出,只想保存不想退出呢?输:w,:q是退出

Linux学习笔记之二(文件管理上)

如果你改变了文本内容,:q会提示你上面,这时候是扩展命令模式,你可以输:q!强制退出,也可以输入:w保存或者其它命令,比如i进入插入模式。当然其实命令模式下,也即是刚进入vim的时候,也是可以输:wq,:q这些命令的。这里要说明一点,不要保留windows操作的习惯,比如windows里Ctrl+s是保存,在这里呢?Ctrl+s相当于锁屏,就是屏幕显示的东西不动了,这时候你输入Ctrl+q就可以了。Ctrl+s是禁止屏幕输出,Ctrl+q允许屏幕输出,,这里Ctrl+s输进去的内容确实输进去了,不过屏幕没显示,Ctrl+q就可以看到了。

Linux学习笔记之二(文件管理上)

先来详解一下命令模式:

Linux学习笔记之二(文件管理上)

hjkl是什么用处呢?h是向左,l是向右,j是下,k是上。主要是保持手在主键盘区,不用跑到小键盘区,打字速度更快。0是到这一行的开头,$这个是不是很熟悉呢?在正则那里见过,$是到这一行的结尾gg可以定位到文章第一行 开头,G是定位到最后一行的开头,这里我要说一下如何打大写字母,打大写字母不要用大写锁,shift+小写字母即可打出大写,如果你按了大写锁,shift+大写字母就会是小写了。数字G可以移动到指定行的开头处。光标移动有什么用呢?在修改大文件的时候很有用,因为你不是用鼠标去确定光标的。那么下面搜索的方式会更快。什么叫做搜索呢?/表达式就是。我们来举一个例子,下面是我新建的一个文件。

Linux学习笔记之二(文件管理上)

我们来试一下。查找a,在命令模式下输入/a回车,光标是那个绿色的,会自动定位到第一个找到的位置,按n是下一个,shift+n也就是大写的N是上一个,查找呢是循环的。

Linux学习笔记之二(文件管理上)

并且这个查找是可以用正则表达式的,在python那么我已经讲过了正则,这里不会再讲的,不过不用担心,视频里的老师后面会讲,我会给你一个视频范围。这里先带学过的复习一下正则。\^d就是以d开头的某一行,下面是输入/^c的结果。

Linux学习笔记之二(文件管理上)

,/txt$是以txt结尾的某一行。输入/c$就显示了not found,这个光标是上次遗留的定位。

Linux学习笔记之二(文件管理上)

其实命令模式也可以编辑文件的。

Linux学习笔记之二(文件管理上)

yy是复制当前行,3yy呢是复制当前行加上当前行下面的两行。ygg是复制从开头到你输入这跳命令前的光标作在行。输入ygg。

Linux学习笔记之二(文件管理上)

然后在这一行按p,也就是粘贴。

Linux学习笔记之二(文件管理上)

结果是:

Linux学习笔记之二(文件管理上)

我们看到粘贴在了add的下一行。那么yG就不演示了,其实还是有y2G就是复制第二行到光标所在行(输入命令前)。d删除是类似的。其它的也很好理解,就不演示了。

Linux学习笔记之二(文件管理上)

前面我们没有讲可视模式,,为什么会有可视模式呢?因为上面其实我们无法直接看到选的是哪几行,只能自己去记。而可视模式就提供了给你看的机会。注意可视模式具体有三种。参看上图。先来演示一下V,进入以后,光标在第一行。按下或者j就可以一直往下一行,选中的以灰色显示。

Linux学习笔记之二(文件管理上)

然后呢?按V或者esc退出到命令模式按p粘贴就可以了。

Linux学习笔记之二(文件管理上)

如果你想从第二行开始复制呢?这时候就要在命令模式把光标定位到第二行再开始操作。

Linux学习笔记之二(文件管理上)

那么块可视呢?基本一样,只是选中的不再是行,而是一块矩形。

Linux学习笔记之二(文件管理上)

小v的话更*一点。

Linux学习笔记之二(文件管理上)

值得说的是因为可视模式是有范围的,所以复制只需要按y,删除直接d就可以对选中的内容做相应操作了。还有一点也很有用。有什么用呢?比如我要在选中的几行前都加一个#,怎么办呢?

Linux学习笔记之二(文件管理上)

这时候呢?我们按I(注意是大写I)在块的前面插入字符,然后esc即可。

Linux学习笔记之二(文件管理上)

操作完成后效果:

Linux学习笔记之二(文件管理上)

注意是在块操作模式下,其它模式有没有呢?至少我现在最新版的vim是亲测没有。当然这个做法看起来是批量注释,但是其实批量注释是有更好的办法的。

Linux学习笔记之二(文件管理上)

其实呢?在命令模式下输入:就是进入了扩展命令模式,也就是说其实我们插入模式或者可视模式退出来一直都是命令模式,只有打了:才进入了扩展命令模式。扩展命令模式还有替换功能

Linux学习笔记之二(文件管理上)

这必须在扩展命令模式下%表示全文,你也可以指定范围1,4是一到四行,2,$是2到最后一行。

然后紧跟s是查找的意思。#old#new#g,old是老字符串,new是替换的字符串,最后的g是全局都替换。这里要说的是#可以用/代替。

Linux学习笔记之二(文件管理上)

效果:

Linux学习笔记之二(文件管理上)

需要提醒的是前面的范围必须加,不然会报错,还有后面的g(global)不加的话只会替换行首的,中间是不会换的,还有在扩展命令模式是可以上下键查找历史命令的。

Linux学习笔记之二(文件管理上)
Linux学习笔记之二(文件管理上)

目录结构

Linux学习笔记之二(文件管理上)

Linux和windows最重要的一个区别就是Linux是单根形式,而在windows下每一个磁盘都是一个根目录(我觉得说每一个卷其实更好)。我们看如果在C盘

Linux学习笔记之二(文件管理上)

根目录就是C:\,在D盘呢又是D:\

Linux学习笔记之二(文件管理上)

到这里我们就稍微理解了在windows命令行里换盘的操作,如下

Linux学习笔记之二(文件管理上)

直接输入D:根目录就会切到D,输入e:也是一样,这个冒号不能少。这里我指出的是文件夹可不是这么进的,文件夹用的还是cd 命令,直接输入盘符是切换根目录的操作

Linux学习笔记之二(文件管理上)

上面的cmd操作就是一个补充而已,我联想了一下,不用太在意。视频里的centos版本和我们安装的还是不一样的。我们来看一看变了没有,看到呢还是有一些不同,不过我们下面就介绍一些主要的目录。

Linux学习笔记之二(文件管理上)

来说一下这几个颜色的含义,深蓝色代表的是文件夹,boot,home,usr都是这个颜色,浅蓝色其实也是文件夹,但是它相当于windows里的快捷方式,是一种链接文件,那么bin,lib,lib64,sbin真正的位置在哪里呢?

Linux学习笔记之二(文件管理上)


Linux学习笔记之二(文件管理上)

我们看到有几个虚线指向的就是真正所在地,bin指向了/usr/bin其它也是类似。我们还可以看到上面tmp的颜色也不一样,但是它就是真实所在地,只不过它存的东西特别。具体的其他颜色含义呢,看下图:

Linux学习笔记之二(文件管理上)


Linux学习笔记之二(文件管理上)

数字代表的含义也会显示出来:

Linux学习笔记之二(文件管理上)


Linux学习笔记之二(文件管理上)

我们看看背景颜色是42是什么意思,你可以去上面看看tmp的颜色。

Linux学习笔记之二(文件管理上)

虽然这个含义我们暂时看不太懂。但是我们知道怎么去找了。然后呢,你们应该也发现了,bash的提示符是不是会出现一个~号呢?这是什么意思呢?

Linux学习笔记之二(文件管理上)

这个~是家的意思,我们用pwd(print working directory)可以看到当前的目录。我就来解读一下这段命令吧,第一次pwd的时候,用户是lcl,而且提示符那里是~,那么显示的就是lcl的家,在/home/lcl,然后切换用户到root,这个时候呢文件路径还在/home/lcl这里。cd后面什么都不加的意思呢,就是回家,我们下一行看到了变化。

Linux学习笔记之二(文件管理上)

我们看到lcl就变成了~,至于为什么上一个只显示lcl呢这是因为上一讲就说过,这里只显示最后一级目录。好,命令已经解读完了,那么我们现在知道了root的家就在根目录下的/root,而普通用户的家在哪里呢?在/home/用户名,/home我们可以理解为普通用户居住的小区。我们前面执行过一个建立a1-a10用户的shell 脚本还记得吗?所以呢/home下就有这么多文件夹,~可以说是一个变量,用户不一样,家不一样。

Linux学习笔记之二(文件管理上)

为了便于理解这个家的概念,我们会用windows作辅助讲解。下面就是windows用户的家,这里补充一点,比如说你现在是用Administrator,桌面上有的东西,你用lenovouser登陆可能就看不到了。

Linux学习笔记之二(文件管理上)

当然呢?其实普通用户的家也不一定在/home/,是可以改变的,不过默认是在/home,这些家里存放的都是一些私有的东西,需要一定权限才可以访问,就像你有你家钥匙才能进去你家(其它非正常方法除外)。

我们下面一个一个认识一下这些目录。

/bin和/sbin

Linux学习笔记之二(文件管理上)

bin里面存放有很多命令,这些命令是普通用户的权限就可以使用的。

Linux学习笔记之二(文件管理上)


Linux学习笔记之二(文件管理上)

我们可以直接试一下。

Linux学习笔记之二(文件管理上)

这里顺便说一下,bin就是binary的意思就是二进制。sin里是管理员才有权限用的命令。如果你想知道命令在哪里,可以用which命令。

Linux学习笔记之二(文件管理上)

我们看到普通用户是没办法找到useradd这个命令的,显示了no useradd,这就是没有权限,只有root才可以找到,当然也可以调用useradd。然后这里需要指出的是,和视频是有不同的,我用的Centos比较新,和视频里是不一样的。

Linux学习笔记之二(文件管理上)

这个应该是which默认的用法变了,我们来看一下。

Linux学习笔记之二(文件管理上)

前面只写which也没有问题,这里显示的是链接,这里应该是新版本做的改动,对我们学习影响不大,我们知道/bin是/usr/bin的链接,/sbin是/usr/sbin的链接,真正的文件在/usr/bin,还有/bin里面是低权限,也就是普通用户就可以使用的命令,/sbin里的命令需要高权限,root才可以使用,就可以了。

/dev

Linux学习笔记之二(文件管理上)

dev里面放的是设备,有句话是这么说的,Linux一切皆文件,设备当然也是,叫做设备文件。

/dev/sda就是我们虚拟机虚拟的硬盘,sda1是其中的一个分区。

Linux学习笔记之二(文件管理上)

值得提醒的是/dev/sda为什么是permisson denied呢?因为设备文件不是一个命令,是不可以直接执行的,我们只能对它做一些操作,比如ll。

Linux学习笔记之二(文件管理上)

值得说的是sd*这个*是一个通配符,我们前面安装completion就用到过,当时打的是com*,这个在window搜索文件的时候?代表一个任意字符,*代表可以是任意个任意字符(前面说的任意一定是由范围的,不过很多应该都可以),*和正则表达式中的意义不同,这里先不扯了。这里主要是强调设备都放在/dev里。tty是终端的意思。

Linux学习笔记之二(文件管理上)

我们目前远程连接虚拟机的这台电脑就是一个终端。

Linux学习笔记之二(文件管理上)

我们打ls之所以结果会显示在屏幕上其实是因为这些信息写在了/dev/pts/0里面,

黄色是什么意思呢?我们可以稍微看一下。

Linux学习笔记之二(文件管理上)

严格来说呢,其实这些文件是快设备驱动程序。不过呢,一切皆文件确实是linux的哲学或者说核心思想。

/proc

Linux学习笔记之二(文件管理上)

proc这里面存放的都是一些进程信息。上面说是虚拟的,怎么体现呢?du是查看大小的一个命令。

Linux学习笔记之二(文件管理上)

我们看到/etc是30M,/proc报错了,最后统计结果是0。关于进程呢?

Linux学习笔记之二(文件管理上)


Linux学习笔记之二(文件管理上)

也可以到https://www.zhihu.com/question/25532384。

Linux学习笔记之二(文件管理上)


Linux学习笔记之二(文件管理上)

这里面每一个数字里都存着一个进程的信息,当然还有一些其它的文件,是不带数字的。

Linux学习笔记之二(文件管理上)

我们可以敲一条命令看看某个进程的号码,然后可以去看这个进程的相关信息。

Linux学习笔记之二(文件管理上)

如果把某个进程关掉呢?对应号码的文件夹就会消失,如果新建一个进程,/proc就会出现一个带号码的文件夹了。那么谈到这里,应该有一件事我们要明白,那就是/proc里这些进程的信息是存在内存里的,而不是磁盘,关掉这个应用,应用的进程就没了,而应用确实是存在磁盘上的,,应用存在磁盘上而进程的信息是存在内存里的,说的有点多了。我们优化进程和内核的一些东西都要来/proc里优化,这一讲我们也只是先见一见。

/usr

Linux学习笔记之二(文件管理上)

这个图里写的很清楚了,/usr/lib和/usr/lib64是一些软件调用的库文件。

/boot

Linux学习笔记之二(文件管理上)

千万不要作死去删图中的kernel内核,你懂的。启动的时候grub会加载我们的内核。

/etc,/lib和/lib64

Linux学习笔记之二(文件管理上)

/etc是重点需要去关注的,里面都是一些可以编辑的文件,网络设置啊,ssh相关的文件都在这里面。

Linux学习笔记之二(文件管理上)


Linux学习笔记之二(文件管理上)

/lib和/lib64是开发人员要用的,我们不关注。

/tmp和/var

Linux学习笔记之二(文件管理上)

什么叫全局可写呢?每一个进程和用户都可以写。

Linux学习笔记之二(文件管理上)


Linux学习笔记之二(文件管理上)

log是一些日志文件。上面的内容都是来自https://www.bilibili.om/video/av18945696/?p=6,不懂的可以去看。

说了这么久的远程操作,这玩意靠谱吗?对比一下咯:

Linux学习笔记之二(文件管理上)

虚拟机和Xshell里的颜色略有差别。

Linux学习笔记之二(文件管理上)

这里呢顺便说一下Xshell怎么调字的大小。

Linux学习笔记之二(文件管理上)

后面会讲云主机,这个很好用。虽然上面说的是Centos,不过所有的Linux的基本的目录结构差不太多,会有一些小的差异。

文件定位路径

Linux学习笔记之二(文件管理上)


Linux学习笔记之二(文件管理上)

这里的文件路径啊,绝对和相对路径啊,我就不写了,应为比较简单,可以去看https://www.bilibili.com/video/av18945696/?p=7,从18分开始看。

这里我还是稍微说一点吧,/home/alice/file1是绝对路径这毫无疑问,/abc/file5也是,而abc/file5是一个相对路径,它的绝对路径取决于当前路径。如果pwd是/,那么直接ls tmp看的就是/tmp,如果pwd是/var那么ls tmp看的及时/var/tmp。

Linux学习笔记之二(文件管理上)

还值得提到的是.和..这两个目录。.其实可以替换为pwd,也就是当前目录,而..呢是上级目录。这个cmd里也有。

Linux学习笔记之二(文件管理上)

不过呢?linux多了一个~,这个前面也讲过,不同的用户~是不一样的。

Linux学习笔记之二(文件管理上)


Linux学习笔记之二(文件管理上)

我们可以~用户去指定用户的家,不加用户就是当前用户。还有Linux里cd什么不加是直接回家。下面是一个我们早就用烂了的命令change directory。

Linux学习笔记之二(文件管理上)

cd -是返回上次目录。

Linux学习笔记之二(文件管理上)

还需要指出的是cd 后面是不能跟三个点或者更多的(除非有这样的文件),那么为什么可以跟两个点和一个呢?因为确实有这样的隐藏文件夹。

Linux学习笔记之二(文件管理上)

你可以创建三个点,四个点,不过这没有意义,不是你想要的结果。

Linux学习笔记之二(文件管理上)

还有一个零碎的只是吧,自动补齐的路径一般后面会有/这是因为它不确定你是否输完了路径,这个带着也没关系的。

Linux学习笔记之二(文件管理上)

文件管理

这里先说一些命令,touch是创建一个空文件,mkdir是创建一个文件夹,cp是复制文件,移动用mv(move),rm是删除文件,查看文本文件是cat和cat less(看内容比较多的文件)。head -10可以看前10行,tail -10可以看结尾。tail -f可以动态查看结尾。

Linux学习笔记之二(文件管理上)


Linux学习笔记之二(文件管理上)

grep是过滤的,这个命令很有用的。

Linux学习笔记之二(文件管理上)

上面的命令我觉得大家现在都可以通过help来学会如何使用了,下面讲如何编辑文件呢?

Linux学习笔记之二(文件管理上)

需要指出的是gedit是需要有UI的,也就是图形界面,很像记事本。

Linux学习笔记之二(文件管理上)


Linux学习笔记之二(文件管理上)

我们直接用下面的vim和nano。我们先把vim装好。

Linux学习笔记之二(文件管理上)

下面就可以利用vim打开或者创建一个文件,如果文件已存在,就是打开,不存在就是创建。

Linux学习笔记之二(文件管理上)

这么输就会弹出一个编辑窗口。

Linux学习笔记之二(文件管理上)

在这个窗口你可以进行编辑。我们先保存并退出(:wq或者:x)看一下。

Linux学习笔记之二(文件管理上)

就有了这个文件了。下面先来简单讲一下vim,进入编辑界面以后,按i,左下角会出现一个INSERT,表示我们现在是插入模式,你就可以在这里面写东西了。

Linux学习笔记之二(文件管理上)

如何保存呢?保存要先按esc退到扩展命令模式,然后输入:wq或者:x然后回车就是保存并退出了,拖出来以后我们看一看文件的内容。(冒号一定是英文的冒号)

Linux学习笔记之二(文件管理上)


Linux学习笔记之二(文件管理上)

当然上面只是vim的简单用法,下面是复杂一点的,但很有用。

Linux学习笔记之二(文件管理上)

一开始进入vim是命令模式,它是其它模式的桥梁。按i进入了INSERT模式,怎么保存呢?先按esc进入扩展命令模式,然后输格式:wq或者:x是保存并退出,只想保存不想退出呢?输:w,:q是退出

Linux学习笔记之二(文件管理上)

如果你改变了文本内容,:q会提示你上面,这时候是扩展命令模式,你可以输:q!强制退出,也可以输入:w保存或者其它命令,比如i进入插入模式。当然其实命令模式下,也即是刚进入vim的时候,也是可以输:wq,:q这些命令的。这里要说明一点,不要保留windows操作的习惯,比如windows里Ctrl+s是保存,在这里呢?Ctrl+s相当于锁屏,就是屏幕显示的东西不动了,这时候你输入Ctrl+q就可以了。Ctrl+s是禁止屏幕输出,Ctrl+q允许屏幕输出,,这里Ctrl+s输进去的内容确实输进去了,不过屏幕没显示,Ctrl+q就可以看到了。

Linux学习笔记之二(文件管理上)

先来详解一下命令模式:

Linux学习笔记之二(文件管理上)

hjkl是什么用处呢?h是向左,l是向右,j是下,k是上。主要是保持手在主键盘区,不用跑到小键盘区,打字速度更快。0是到这一行的开头,$这个是不是很熟悉呢?在正则那里见过,$是到这一行的结尾gg可以定位到文章第一行 开头,G是定位到最后一行的开头,这里我要说一下如何打大写字母,打大写字母不要用大写锁,shift+小写字母即可打出大写,如果你按了大写锁,shift+大写字母就会是小写了。数字G可以移动到指定行的开头处。光标移动有什么用呢?在修改大文件的时候很有用,因为你不是用鼠标去确定光标的。那么下面搜索的方式会更快。什么叫做搜索呢?/表达式就是。我们来举一个例子,下面是我新建的一个文件。

Linux学习笔记之二(文件管理上)

我们来试一下。查找a,在命令模式下输入/a回车,光标是那个绿色的,会自动定位到第一个找到的位置,按n是下一个,shift+n也就是大写的N是上一个,查找呢是循环的。

Linux学习笔记之二(文件管理上)

并且这个查找是可以用正则表达式的,在python那么我已经讲过了正则,这里不会再讲的,不过不用担心,视频里的老师后面会讲,我会给你一个视频范围。这里先带学过的复习一下正则。\^d就是以d开头的某一行,下面是输入/^c的结果。

Linux学习笔记之二(文件管理上)

,/txt$是以txt结尾的某一行。输入/c$就显示了not found,这个光标是上次遗留的定位。

Linux学习笔记之二(文件管理上)

其实命令模式也可以编辑文件的。

Linux学习笔记之二(文件管理上)

yy是复制当前行,3yy呢是复制当前行加上当前行下面的两行。ygg是复制从开头到你输入这跳命令前的光标作在行。输入ygg。

Linux学习笔记之二(文件管理上)

然后在这一行按p,也就是粘贴。

Linux学习笔记之二(文件管理上)

结果是:

Linux学习笔记之二(文件管理上)

我们看到粘贴在了add的下一行。那么yG就不演示了,其实还是有y2G就是复制第二行到光标所在行(输入命令前)。d删除是类似的。其它的也很好理解,就不演示了。

Linux学习笔记之二(文件管理上)

前面我们没有讲可视模式,,为什么会有可视模式呢?因为上面其实我们无法直接看到选的是哪几行,只能自己去记。而可视模式就提供了给你看的机会。注意可视模式具体有三种。参看上图。先来演示一下V,进入以后,光标在第一行。按下或者j就可以一直往下一行,选中的以灰色显示。

Linux学习笔记之二(文件管理上)

然后呢?按V或者esc退出到命令模式按p粘贴就可以了。

Linux学习笔记之二(文件管理上)

如果你想从第二行开始复制呢?这时候就要在命令模式把光标定位到第二行再开始操作。

Linux学习笔记之二(文件管理上)

那么块可视呢?基本一样,只是选中的不再是行,而是一块矩形。

Linux学习笔记之二(文件管理上)

小v的话更*一点。

Linux学习笔记之二(文件管理上)

值得说的是因为可视模式是有范围的,所以复制只需要按y,删除直接d就可以对选中的内容做相应操作了。还有一点也很有用。有什么用呢?比如我要在选中的几行前都加一个#,怎么办呢?

Linux学习笔记之二(文件管理上)

这时候呢?我们按I(注意是大写I)在块的前面插入字符,然后esc即可。

Linux学习笔记之二(文件管理上)

操作完成后效果:

Linux学习笔记之二(文件管理上)

注意是在块操作模式下,其它模式有没有呢?至少我现在最新版的vim是亲测没有。当然这个做法看起来是批量注释,但是其实批量注释是有更好的办法的。

Linux学习笔记之二(文件管理上)

其实呢?在命令模式下输入:就是进入了扩展命令模式,也就是说其实我们插入模式或者可视模式退出来一直都是命令模式,只有打了:才进入了扩展命令模式。扩展命令模式还有替换功能

Linux学习笔记之二(文件管理上)

这必须在扩展命令模式下%表示全文,你也可以指定范围1,4是一到四行,2,$是2到最后一行。

然后紧跟s是查找的意思。#old#new#g,old是老字符串,new是替换的字符串,最后的g是全局都替换。这里要说的是#可以用/代替。

Linux学习笔记之二(文件管理上)

效果:

Linux学习笔记之二(文件管理上)

需要提醒的是前面的范围必须加,不然会报错,还有后面的g(global)不加的话只会替换行首的,中间是不会换的,还有在扩展命令模式是可以上下键查找历史命令的。

Linux学习笔记之二(文件管理上)