08.VIM文本编辑器
命令行界面下的文本编辑工具,做一些文本处理的工作。在Linux中应用中Vi和VIM应用最广泛。 BIll Joy在1976年写了VI的前身ex,
在91年Bram Moolenaar基于VI进行了改进,同时发布了对VI的改进版本,即是Vim,几乎所有的系统都兼容。
VIM不是普通意义上的文本编辑器,被广泛的应用在文本编辑,文本处理,代码开发等用途。 Linux中知名的文本编辑器还有emacs,他的功能比vim还要强大。
通过Vim命令可以启动Vim
一般情况下,使用Vim 目标路径 的形式使用VIm,如果这个文件存在Vim会打开这个文件,如果这个文件不存在Vim会自动创建这个文件。
Vim拥有代码高亮的表现形式,基本上比较强大的文本编辑器都拥有代码高亮的形式。
Vim有三种模式:1.命令模式(Vim启动之后默认存在于命令模式,或者在其他模式中使用ESC,可以返回命令模式,在命令模式中可以采用复制,移动,粘贴等功能,在这个模式下只接受特定的字母) 2.插入模式(可以自由的输入内容,进入方式例如i)
3.ex模式(在命令模式下才可以进入,使用:,光标会移动到底下,可以保存或者退出之类的。)
常见的命令模式下的指令(i在光标前插入文本,o在当前行的下面插入新行,dd删除整行,yy将当前行的内容放入缓冲区(复制当前行),n+yy将n行的内容放入缓冲区(复制n行),p将缓冲区中的文本放入光标后(粘贴),u撤销上一个操作,r替换当前字符,/查找关键字)
常见的EX模式命令(:w 保存当前修改。:q退出-如果没有保存系统不会允许你退出。:q!强制退出。:x保存并推出,相当于:wq。set nu显示行号。:!系统命令 执行一个系统命令,执行系统命令后按回车则返回Vim编辑界面,:sh切换到命令行,按cirl+D则返回Vim模式)。*总结一下!很重要,!的意思就是强制执行命令。
1
11文件系统
上接笔记本
查看文件系统的相关信息-DUMPE2FS
使用命令dumpe2fs可以用来查看分区的文件系统信息
例如:dumpe2fs /dev/sda2 查看/dev/sda2下的sda2的文件系统的详细信息 PS:这个命令几乎在会在对文件系统做微调的时候才会去使用。
*(重要)JOURNAL日志系统
带日志的文件系统(ext3.ext4)又有将强的稳定性,再出现错误时可以进行恢复。
使用带日志的文件系统,文件系统会使用一个叫做“两阶段提交”的方式进行磁盘操作,当进行磁盘操作时,文件系统进行以下操作。
1文件系统将准备执行的事物的具体内容写入日志 2文件系统进行操作
3操作成功后,将事物的具体内容从日志中删除
这样做的好处是,当事务执行的时候如果出现意外(譬如断电或磁盘故障等),可以通过查询日志进行恢复操作。缺点是会丧失一定的性能(额外的日志读写操作)。在操作故障的时候可以直接读取日志进行恢复或者了解在当时都进行了什么内容的操作。(PS:个人理解:我觉得应该开启日志功能,不管怎么样,至少稳妥,一旦出了问题补救起来会比较容易。)
硬盘的标签(应该就是卷标,这个人猜测,完全不确定) 命令e2label可以用来为文件系统添加标签
e2label /dev/sda2 显示sda2的系统标签(如果没有显示则说明这个硬盘的标签是空的,没有标签,这时候我们就可以给他打上一个标签)
e2label /deb/sda2 GAILUN的系统标签设置为GAILUN(如果装了中文输入法,也可以中文,但是不建议)
PS:虽然是无所谓大小写,但是建议大写,约定俗成,而且打了标签比较容易管理。 使用FSCK来检查并修复损坏的文件系统
命令fsck用来检查并修复损坏的文件系统(检查前文件系统必须卸载内部挂在的文件 fsck /dev/sda2
使用-y参数不提示而直接进行修复
默认fsck会自动判断文件系统类型,如果文件系统损坏较为严重,请使用-t参数指定文件系统类型。
2
对于识别为文件的损坏数据(即文件系统无记录),fsck会将该文件放入lost+found目录(每一个格式化了的磁盘都会有一个Lost +found,用于存放已经恢复但找不到记录的数据)。(PS:这个不是很懂,还需要进一步看视频和读书来补完对峙一部分的理解) 系统启动时会对磁盘进行fsck操作。
*12挂载(十分重要)
磁盘或分区创建好文件系统后,需要挂载到一个目录才能使用。
Windows或Mac系统会进行自动挂载,一旦创建好文件系统后就会自动挂载到系统上,windows上称之为C盘、D盘等。
Linux需要手工进行挂载操作或配置系统进行自动挂载。挂在在根目录下的mnt目录。 通过mount命令将格式化好的磁盘或分区挂载到一个目录上(需要root权限) 例如:sdb1
(已经创建好文件系统的磁盘) 命令:mount /dev/sdb1 /mnt/
可以用不带参数的命令查看已经挂载好的磁盘(例如:/dev/sdb2 on /(挂载的位置-本磁盘使用的是/所以表示直接挂载在根分区上了) type ext4(rm))
常用参数:-t指定文件系统的类型;-o 指定挂载选项(ro-只读,rw-读写以只读或读写形式挂载(例如:mount -o remount重新挂载,多个命令使用逗号分隔 ro只读形式 /dev/sdb1 /mnt/挂载目录位置),默认是rw,
sync代表不使用缓存,而是对所有操作直接写入磁盘,async代表使用缓存,默认是async
,noatime代表每次访问文件时不更新文件的访问时间,atime代表每次访问文件时更新文件的访问时间,remount重新挂载文件系统) 挂载的卸载或弹出
使用umount命令用来卸载已挂载的文件系统 命令格式:umount 文件系统/挂载点
umount /dev/sda3(文件系统) == umount /mnt(挂载点)
如果出现device is budy报错,则表示该文件系统正在被使用,无法卸载,可以通过以下命令查看使用文件的进程: fuser –m /mnt
也可使用命令lsof查看正在被使用的文件: lsof /mnt自动挂载
配置文件/etc/fstab用来定义需要自动挂载的文件系统,fstab中每一行代表一个挂载配置,格式如下: /dev/sda3
/mnt ext4 defaults 0 0
挂载点
文件系统
挂载选项 dump、fsck相关选项
需要挂载的设备
如果写了卷标也可以使用卷标来代替需要挂载的设备
3
PS:对磁盘进行任何操作的时候一定要将挂载取消掉,不能再挂载状态下对磁盘文件系统或参数进行修改
*14Linux的用户和组(十分重要)
当我们使用Linux时,需要以一个用户的身份登录,一个进程也需要以一个用户的身份运行,用户限制使用者或进程可以使用、不可以使用那些资源。 组用来方便组织管理用户。
·每个用户拥有一个UserID,操作系统实际使用的是用户ID,而非用户名。
·每个用户属于一个主组,属于一个或多个附属组。(主组和附属组其实并不会有太大的区别) ·每个组拥有一个GroupID。
·每个进程以一个用户身份运行,并受该用户可访问的资源限制。(用户可以访问,进程就可以访问) ·每个可登录用户拥有一个指定的shell(命令行,图形界面,一般来说默认为BASH)。
用户的ID是32位的,从0开始,但是为了和老操作系统16位兼容而言,用户的ID通常限制在60000以下
用户分为3种类型:root(ID为0,root不一定非要叫Root,但是ID为0的用户就是Root用户) 系统用户(ID:1-499)为某些程序或者某些服务而创建的,没有也不需要登陆shell,作为进程去使用的
普通用户(ID:500以上)
系统中的文件都有一个所属用户及所属组。 (使用ID命令可以显示当前的用户信息,PS:uid用户ID,gid组ID,groups=附属组ID) 使用passwd命令可以修改当前用户密码。
和用户信息相关的配置文件(root用户权限才能自由的修改)
/etc/passwd -保存用户信息 (很多用户都会读取Passwd文件,所以将用户密码单独列出成为了一个文件,文件内容分很多部分,每一部分用:隔开,第一部分是用户名,第二部分是用户密码,第三部分是用户ID,四组ID 五描述信息有的地方会写电话号码六用户的家目录六登陆的shell) /etc/shadow -保存用户密码(加密后的,第一部分是用户名,第二部分是密码,如果是!!表明该用户没有设置密码,通过暴力破解可以说没有绝对安全的密码,但是相对比较安全) /etc/group -保存组信息 (组名,组密码 现在基本已经不用了)
查看登录的用户(有约定俗称的习惯,命令越长显示的信息越短,命令越短信息越多) 命令whoami显示当前用户
命令who显示有哪些用户已经登录系统
命令w显示有哪些用户已经登录并且在干什么 (能显示正在寻运行的程序或进程) 如何创建一个用户
4
使用 useradd 用户名 例如useradd che 则该叫che的用户已经创建了 这个命令会执行以下操作:
1、在/etc/passwd中添加用户信息
2、如果使用passwd命令创建密码,则将密码加密保存在/etc/shadow中 3、为用户建立一个新的家目录/home/che
4、将/etc/skel中的文件复制到用户的家目录中 (通常会放一些用户配置文档或说明手册) 5、建立一个与用户用户名相同的组,新建用户默认属于这个同名组
*(万分重要)命令useradd支持以下参数 (用户分组这个部分是更加的重要)
-d 家目录 -s 登录shell
-u userid
-g 主组
-G 附属组(最多31个,用”,”分割)
也可通过直接修改/etc/passwd的方式实现,但是不建议 (因为有可能会出错从而造成系统不稳定) ·命令usermod用来修改用户信息 usermod 参数 username ·命令usermod支持以下参数:
-l 新用户名 -G 用户所属附属组 -u 新userid -L 锁定用户使其不能登录
-d 用户家目录位置 -U 解除锁定 -g 用户所属主组 ·命令userdel用以删除指定用户: userdel che (保留用户的家目录)
userdel –r che (同时删除用户的同时删除的家目录)
几乎所有操作系统都有组的概念, 通过组,我们可以更加方便的归类、管理用户。一般来讲,我们使用部门、职能或地理区域的分类方式来创建使用组。 ·每个组都有一个组ID ·组信息保存在/etc/group中
·每个用户拥有一个主组,同时还可以拥有最多31个附属组 命令groupadd用以创建组: groupadd linuxcast 命令groupmod用以修改组信息
groupmod –n newname oldname 修改组名
5
百度搜索“70edu”或“70教育网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,70教育网,提供经典综合文库Linux学习笔记 -在线全文阅读。
相关推荐: