Linux-vim编辑器以及权限-04

news2024/9/24 9:23:56

        我们为什么要把这两个单独拎出来讲呢?大家应该需要知道权限是什么,我们的linux是多用户多任务的,所以可能有许多用户可以操作,万一他们把重要的文件删了呢,所以要给他设置权限,而我们的vim编辑器也是非常重要的,用来编辑我们的文本信息,第二章我们讲到了vi,他们两个有什么区别?

1、vim的使用

1、vi与vim的区别

vi与vim都是强大的文本编辑器,但它们在功能、兼容性和使用场景上存在一些区别。以下是vi与vim的主要区别:

1. 功能差异

  • 撤销功能:在vi编辑器中,按u键只能撤销上次命令;而在vim中,可以无限制地撤销,即可以撤销多次编辑操作,这使得vim在编辑过程中更为灵活和方便。
  • 多平台支持:vi编辑器通常只能在Unix系统中运行,而vim不仅可以在Unix系统上运行,还可以在Windows、macOS等多操作系统平台上运行,具有更强的跨平台兼容性。
  • 代码高亮:vim编辑器支持使用不同的颜色来高亮显示代码,这使得代码阅读更为直观和方便,有助于编程人员快速识别和理解代码结构。
  • 插件和定制性:vim编辑器允许用户通过配置文件(如.vimrc)和庞大的插件库(如Pathogen、Vundle、Vim-plug等)来定制编辑器的行为和功能,如键位映射、插件安装、界面主题等,而vi编辑器的定制性相对较弱。

2. 使用模式

  • vi的模式:vi编辑器主要有三种模式:插入模式、命令模式和低行模式。在插入模式下可以输入文本,命令模式下可以移动光标、删除字符等,低行模式则可以保存文件、退出编辑器或设置编辑器的某些参数。
  • vim的模式:vim编辑器在vi的基础上增加了一种可视模式,使得用户可以通过类似于鼠标选择的方式来选择文本,进行复制、粘贴等操作。因此,vim一共有四种模式:正常模式(Normal-mode)、插入模式(Insert-mode)、命令模式(Command-mode)和可视模式(Visual-mode)。

3. 使用场景

  • vi:由于vi编辑器只能在Unix系统中运行,且功能相对较为基础,因此它更适合于Unix系统的文本编辑和简单编程任务。
  • vim:vim编辑器不仅具有更强的跨平台兼容性和更丰富的功能,还允许用户通过定制和插件来扩展其功能,因此它更适合于复杂的编程任务和多平台开发环境。

综上所述,vim可以视为vi的升级版本,它在vi的基础上增加了许多新特性和功能,使得文本编辑和编程任务更加高效和方便。然而,对于只需要进行简单文本编辑的用户来说,vi编辑器仍然是一个不错的选择。

2、vim基本使用

首先我们使用的默认是vi命令,因为我们的镜像是最小版,什么都没有下载,所以接下来需要下载一下vim,  yum -y install vim 下载vim,vim是vi的升级版,我们第二章使用vi来进行编写配置文件

1.vim的状态

基本上vim可以分为三种状态,分别是命令模式 (command mode)、插入模式 (Insert mode) 和底行模式 (last line mode)

  • 命令行模式:控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last

  • 插入模式:也称为编辑文本模式 只有在Insert mode下,才可以做文字输入,按 「ESC」键可回到命令行模式。

  • 底行模式: 将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号等。

不过一般我们在 使用时把vim简化成两个模式,就是将底行模式 (last line mode)也算入命令行模式command mode)。

命令模式:

  我们的vim是文本编辑器,所以他的命令是 vim 文件名

映入眼帘的就是我们的命令模式,可以输入命令来操作,但是就是无法编写

 编辑模式:

  如果要进入编辑模式,直接输入i就到了我们的编辑模式 i (insert)

底行模式 :

 当我们在编辑模式中时,要想退出编辑模式,需要按下esc按键,会返回到命令模式,再按下 : 就到了我们的底行模式

2.常用命令

   输入命令时需要在命令模式下才会生效

   插入命令

    i 在光标前插入,光标在哪就会在哪的前面插入

   I 在光标当前行开始插入

 a 在光标后插入 与 i 相反

A 在光标当前行末尾插入 与 I 相反

定位命令

: 开头是底行命令

:set nu 显示行号

:set nonu 取消行号

gg 到文本的第一行

G 到文本的最后一行

:n 到文本的第n行

撤销命令

u 取消上一步操作  (撤销)

删除命令

x 删除光标所在字符 ======》可以使用u来进行撤销一下

nx 删除光标所在处后n个字符 

dd 删除光标所在行

ndd删除n行

翻页

光标的移动除了键盘上的上下左右键.也可以是小写模式下,按键盘上的"h,j,k,l",

"ctrl+b":屏幕往后移动一页

"ctrl+f":屏幕往前移动一页

"ctrl+u":屏幕往后移动半页

"ctrl+d":屏幕往前移动半页

"G"移动到文章的最后.

"$"符号将光标移动到行尾

"^"将光标移到行头

"w":将光标移到下一行头

b":跟"w"相反.移到上一行行头

"e":将光标移到下一行尾

复制

 注意:所有与"y"有关的复制命令都必须与"p"配合才能完成复制与粘贴功能。将缓冲区内的字符贴到光标所在位置。

「yw」:将光标所在之处到字尾的字符复制到缓冲区中。

 复制一个字符,使用p进行粘贴

「yy」:复制光标所在行到缓冲区。

「#yy」:例如,「6yy」表示拷贝从光标所在的该行"往下数"6行文字。

  与ndd一样,当前行之后n行被复制

退出命令

 :q 退出

:wq 保存并退出

:q! 强制退出

:wq! 保存并强制退出

2.权限 

1.文件权限

由于Linux是一个多人多任务的系统,因此经常会出现同一台机器同时有多个人进行操作,为了考虑每个人的隐私权以及每个人喜好的工作环境,所以文件的权限归属就至关重要。

​ 为了保障系统的安全性和文件的隐私性,一个文件针对不同权限的账户有着不同的权限,如下图

 ​​​​

如图所示,文件权限是由一个字符串所表示,其所代表的含义为

其中,文档类型有如下表示方法:

  • d :目录,例如上表档名为『.gconf』的那一行;

  • —:文档,例如上表档名为『install.log』那一行;

  • l :连结档(link file);b :装置文件里面的可供储存的接口设备(可随机存取装置);

  • c : 装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。

    权限由rwx三个字幕表示,分别表示为可读、可写、可执行,如果没有该权限,则用“ - ”表示,对于目录来说,必须有x权限,否则无法读取目录内容  

如果文件名前面有“ . ”,则表示这个文档或目录是隐藏的 

2.用户和用户组

分类

  • 超级用户:root

  • 普通用户

查看用户信息

cat /ect/passwd

这些是所有用户的信息,

  注意:

    在linux中,超级管理员root的用户编号一定为0

    密码是一个单向加密过的字符串

用户操作

创建用户:

useradd xxx //创建一个名为xxx的用户

该命令执行后   

    1.会在/etc/passwd文件中添加xxx用户的信息

    2.会在/etc/group文件中添加一个名为xxx的用户组信息

passwd xxx //为xxx用户设置密码

useradd可以使用的参数包含

-d:设置该用户的home目录,默认在home/用户名

例如:useradd -d /home/helloworld hello //新建hello用户,并且将其home目录设置为/home/helloworld

-u:设置其userid,默认自动生成

例如:useradd -u 668 hello //新建一个hello用户,将他的id设置为668

-g:设置其主组,默认自动添加一个同名的用户组

例如:useradd -g root hello //新建一个hello用户,并将其假如root组

-m:生成home目录的文件夹

例如:useradd -m hello //新建一个hello用户,并且在默认位置申城一个hello文件夹(/home/hello),并且将/etc/skel下的文件复制到该目录下

修改用户信息

usermod 参数 用户名

  该命令可以使用的参数包括

-l //修改新用户名

例如:usermod -l helloworld hello 将hello用户名改为helloworld,但其home目录不改变

-u //修改用户的userid

例如:usermod -u 888 hello 将hello的userid改为888

-d //修改用户的home目录,不声明,默认在/home/用户名

-g //修改用户的主用户组,不声明,创建同名的用户组

-L //锁定用户,使其不能登录

-U //解除锁定

删除用户

userdel 参数 用户名

  可使用参数

-r 删除用户的同时将其home目录也删掉

用户组操作

创建用户组  

groupadd 组名

修改用户组

groupmod -n 新组名 旧组名 //修改组名

groupmod -g 新组id 旧组id 修改组ID

删除用户组

groupdel 组名

3.权限管理

改变文档(目录)的所有者(所有组)

  改变文档所有者 - chown命令(change owner),可使用参数 -R使得其子目录也同时修改

  改变文档所有组 - chgrp命令 (change group),可使用参数 -R使得其子目录也同时修改

  也可以使用

chown username:group 文件名

  来同时修改文档或目录的拥有者和所在组

修改执行权限

r:读 w:写 x:执行 -:没有

chmod命令

chmod 参数 文件名

可以使用如下方法直接设置文件的权限

\1. 直接设置代表权限的数字chmod 777(对应权限的数字) 文件名

(1) 所有者|组|其他用户

(2) 4(r) 2(w) 1(x)

(3) 7(4+2+1)5(4+1)5(4+1)

7(用户)5(用户组)5(其他用户)

\2. 给文件添加或减去某些权限

(1) 所有者(u) 组(g) 其他用户(o) 全部(a)

(2) +新增 -撤销

chmod u+w 文件名 给user用户加上w权限

chmod g-r 文件名 将group中的r权限去掉

chmod a+x 文件名 给user、group、other全部加上x权限

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1993415.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

并行训练技术概述

继续开一个新专栏,这里主要收集一些并行训练的相关内容。 文章目录 并行/分布式训练概述为什么需要?如何实施? 并行/分布式训练概述 首先想要说明的是,并行训练和分布式训练的概念其实都能讲,但前者可能更侧重于技术实…

李晨晨的嵌入式学习 DAY21

今天主要也是对昨天学习的进行了补充 一,时间函数 1.time函数 函数原型:time_t time(time_t *tloc); 功能:获取当前时间(自1970年1月1日(称为Unix纪元或Epoch)以来的秒数,即Unix时间戳&#x…

群晖NAS安装Video Station结合内网穿透实现远程访问本地存储的影音文件

文章目录 前言1.使用环境要求:2.下载群晖video station:3.公网访问本地群晖video station:4.公网条件下访问本地群晖video station5.公网条件下使用移动端(安卓,ios等系统)访问本地群晖video station 前言 …

使用 Arduino 串行绘图仪可视化实时数据

使用 Arduino 串行绘图仪可视化实时数据 Using The Arduino Serial Plotter To Visualize Real Time Data 参考: Arduino Docs: Using the Serial Plotter Tool (IDE v2) Arduino Docs:使用串行绘图仪工具 (IDE v2) The ADC-10-…

8.1 迭代器的概念与使用:走进 Python 的迭代世界

欢迎来到我的博客,很高兴能够在这里和您见面!欢迎订阅相关专栏: 工💗重💗hao💗:野老杂谈 ⭐️ 全网最全IT互联网公司面试宝典:收集整理全网各大IT互联网公司技术、项目、HR面试真题.…

jwt伪造身份组组组合拳艰难通关

前言 现在的攻防演练不再像以往那样一个漏洞直捣黄龙,而是需要各种组合拳才能信手沾来,但是有时候使尽浑身解数也不能诚心如意。 前期信息收集 首先是拿到靶标的清单 访问系统的界面,没有什么能利用的功能点 首先进行目录扫描,…

IO/作业/2024/8/8

1第一题 #include <sys/stat.h> #include <fcntl.h> #include <pthread.h> #include <semaphore.h> #include <wait.h> #include <signal.h> #include <sys/socket.h> #include <arpa/inet.h> #include <sys/socket.h>…

如何禁用外来U盘,保护企业电脑不被“插”一刀?

在数字时代&#xff0c;U盘就像是随身携带的小型保险箱&#xff0c;但它也可能变成一个潜伏的危险品。想象一下&#xff0c;有一天你的同事无意间把一个带有病毒的U盘插进了你的电脑&#xff0c;结果你辛辛苦苦做出来的项目文件就那么瞬间被格式化了…… 为了避免这种情况的发…

CUTLASS 2.x CUTLASS 3.x Intro 学习笔记

CUTLASS GEMM模板中有大量可以调节和设置的模板参数&#xff0c;这些参数的设置会高度影响Kernel性能。这个分享将为大家介绍从2.x到3.x&#xff0c;CUTLASS kernel实现的变化&#xff0c;这些参数的原理和选择的最佳实践。Slides来自BiliBili NVIDIA英伟达频道 上传的《Tensor…

python-热杆上的蚂蚁(赛氪OJ)

[题目描述] 有一个不断升温的杆子&#xff0c;上面有若干个蚂蚁&#xff0c;蚂蚁们需要尽快爬出这个杆子&#xff0c;否则就会因为高温而被烧死。 这里假设每只蚂蚁行走的最大速度是 1cm/s 。 当一只蚂蚁走到杆的尽头时&#xff0c;就会立即从秆上掉落&#xff0c;从而逃离热杆…

两种企业总体业务流程架构模式的比较分析

在之前的关于企业业务流程规划的系列文章中&#xff0c;我们分别对企业业务流程规划的价值、原则&#xff0c;以及如何应用企业的业务流程架构等做了充分的阐述&#xff0c;今天我们将对两种常见的企业总体业务流程架构模式进行比较分析。 我们在辅导企业做业务流程规划和总体…

Python打开JSON/CSV文件的正确方式

前言 我们在使用python的过程中&#xff0c;经常需要它完成一些数据处理的工作&#xff0c;其中尤以json/csv文件为常见。今天&#xff0c;博主针对UnicodeDecodeError异常进行试验&#xff0c;因为这个是新手最容易犯错的地方。 Q&#xff1a;如何应对 UnicodeDecodeError 读…

(el-Time-Picker)操作(不使用 ts):Element-plus 中 TimePicker 组件的使用及输出想要时间格式需求的解决过程

Ⅰ、Element-plus 提供的 TimePicker 时间选择器组件与想要目标情况的对比&#xff1a; 1、Element-plus 提供 TimePicker 组件情况&#xff1a; 其一、Element-ui 自提供的 TimePicker 代码情况为(示例的代码)&#xff1a; // Element-plus 提供的组件代码: <template>…

七、1 ADC模数转换器介绍+有关知识点

目录 1、介绍 &#xff08;1&#xff09;ADC&#xff0c;模拟信号转换为数字信号 &#xff08;2&#xff09;DAC和PWM&#xff0c;数字信号转换为模拟信号 &#xff08;3&#xff09;ADC的两个关键参数 &#xff08;4&#xff09; &#xff08;5&#xff09; &#xff08…

深度学习代码运行RuntimeError:No such operator torchvision::nms解决方案

RuntimeError: No such operator torchvision::nms解决方案 跑代码的时候碰到了"RuntimeError: No such operator torchvision::nms"&#xff0c;找到的资料显示大多是"torch"和"torchvision"版本不匹配&#xff0c;让二者版本一致即可解决。但我…

抱抱脸自动下载模型地址

HuggingFace模型自动下载找保存地址 问题&#xff1a;OSError: Incorrect path_or_model_id: THUDM/cogvlm2-llama3-chat-19B/model.safetensors.index.json. Please provide either the path to a local folder or the repo_id of a model on the Hub. 解决&#xff1a;MODEL_…

多叉树的深度优先遍历(以电话号码的字母组合为例)

在我们的座机上&#xff0c;都有这种数字与字母对应的按键。 以此为例&#xff0c;讲解多叉树的深度优先遍历 问题 给定一个仅包含数字 2-9 的字符串&#xff0c;返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下&#xff08;与电话按键相同…

奥运新项目带来新增长,小众运动攀岩相关商品成交额同比增长 160%

巴黎奥运会临近收官&#xff0c;中国健儿在乒乓球、网球、跳水、游泳等众多项目中表现出色&#xff0c;不仅吸引了全球目光&#xff0c;更在国内掀起了一股强劲的“奥运热”。抖音电商数据显示&#xff0c;7月20日-8月2日“热力先锋季”主题活动期间&#xff0c;抖音电商体育类…

“名字说我俩挺配的”:解锁姓名背后的神秘共鸣,带你玩转名字魔法!

引言&#xff1a;从姓名中挖掘灵魂共鸣 大家好&#xff0c;欢迎来到“姓名共鸣者”的世界&#xff01;不管你是想知道自己的名字和暗恋对象的名字有多配&#xff0c;还是好奇自己和某个历史人物之间的缘分&#xff0c;或者只是想找点乐子&#xff0c;“姓名共鸣者”都能满足你…

[qt] 数据库基本概念

一 数据和数据库 1.1 数据 数据可以是被计算机接受处理和处理的符号。可以有数字、文字、表格、图形、图像和声音等 1.2 数据库 顾名思义就是存放数据的仓库 1.2.1 特点 数据按照数据模型组织&#xff0c;是高度结构化的&#xff0c;可供多个用户共享并且具有一定的安全性…