当前位置: 首页 > news >正文

常用vim命令和vim基本使用及Linux用户的管理,用户和组相关文件

常用vim命令和vim基本使用及Linux用户的管理,用户和组相关文件

    • 1. vim 的基本介绍和使用
      • 1.1 vim的三种模式
      • 1.2 常用vim命令【小白】
      • 1.3 Vim键盘图:
    • 2. Linux用户管理
      • 2.1 添加用户
      • 2.2 删除用户
      • 2.3 修改账号
    • 3. Linux系统用户组的管理
    • 4. 用户和组相关文件
      • 4.1 /etc/passwd 文件
      • 4.2 /etc/shadow 文件
      • 4.3 /etc/group文件

1. vim 的基本介绍和使用

在这里插入图片描述

Linux内置vi文本编辑器。Vim具有程序编辑的能力,可以看作是vi的增强版,可以主动的以字体颜色辨别语法的正确性,方便程序设计,代码补全,编译以及错误跳转等方便编程的功能特别丰富。

Vim 是从 vi 发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。

简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 vim 则可以说是程序开发者的一项很好用的工具。

1.1 vim的三种模式

  1. 正常模式:vim编辑器的默认模式,在一打开文件时即为这个模式。通过上下左右键移动光标和相关指令,完成删除复制粘贴字符的操作。
  2. 插入模式:按下 i,I,o,O,a,A,r,R等任何一个字母后才会进入编辑模式。
  3. 命令行模式: 输入 esc + : , (esc键和冒号)。在命令行模式下可以输入相关指令,完成读取,存储,替换,退出vim,显示行号…

在这里插入图片描述

利用Vim进行文件编写,通过vim后面指定文件名和类型即可

vim 文件名.文件类型

1.2 常用vim命令【小白】

在命令模式下使用,行号可有可无,如果没有则是指定当前行,有的话就是从光标当前往下找指定的行数,然后一并进行操作。

比如:20 yy 意思为从当前行往下找,一共20行都进行复制。

  1. 复制 [行号] yy,粘贴[行号] pp,删除[行号] dd

  2. 撤销:u,u 可以撤销上一步,就像windows中的 ctrl+z

  3. 行号:在命令模式下,通过 :set nu 可以显示行号 ,:set nonu 取消显示行号。

  4. 定位:在一般模式下,通过G将光标定位到文件末尾,gg将光标定位到文件开头。在命令行模式下,通过行号 shift+g可以定位到指定的文件行。

  5. 查找:/关键字,文件中搜索某个关键字可以通过这个指令来完成(在一般模式和命令模式下完成),然后如果找到多个重名关键字可以通过n来进行查找下一个。

  6. 保存:命令行模式下:wq,保存并且退出,:q退出,:w保存写入,:q!不保存然后直接退出。

1.3 Vim键盘图:

在这里插入图片描述

2. Linux用户管理

Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。

用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。

每个用户账号都拥有一个唯一的用户名和各自的口令。

用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。

实现用户账号的管理,要完成的工作主要有如下几个方面:

  • 用户账号的添加、删除与修改。
  • 用户口令的管理。
  • 用户组的管理。

2.1 添加用户

添加新的用户,通过指令useradd 选项 用户名的方式来进行用户添加。

useradd 选项 用户名#选项的参数值可以是:
# -c comment 指定一段注释性描述。
# -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
# -g 用户组 指定用户所属的用户组。
# -G 用户组,用户组 指定用户所属的附加组。
# -s Shell文件 指定用户的登录Shell。
# -u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。# tip:选项参数可以不写

选项列表:

在这里插入图片描述

在Linux中,/home目录为存放普通用户的主目录,Linux中的每个用户都有一个自己的目录,一般目录名就是该用户的账号名。

例子:使用shell为Linux添加一个用户,并且查看其用户目录

首先,我们查看当前Linux中的用户都存在那些用户

cd /home/	# 目录切换到普通用户的主目录
ls 	# 查看当前普通用户都存在哪些用户

然后进行用户添加,添加名为fish的用户

useradd fish

在这里插入图片描述

为fish用户设定密码(注意这里记得看清楚用户名,如果不输入用户名的话默认是对当前用户执行)

passwd fish

在这里插入图片描述

2.2 删除用户

删除用户通过指令 userdel 选项 用户名(选项与useradd命令是一致的),删除用户可以分为,删除用户账号和删除用户账号及用户目录。

仅删除用户账号:userdel 用户名,删除用户账号及用户目录userdel -r 用户名

例子:删除一个用户账号其名为fish,删除一个用户账号及用户目录,其名为demo,然后对其home目录进行查看。

userdel fish # 只删除fish的用户账号
ls # 进行查看
userdel -r demo # 删除demo用户的账号及用户目录
ls # 进行查看

在这里插入图片描述

2.3 修改账号

修改在用户账号的信息使用usermod命令,其格式为usermod 选项 用户名

例子:创建一个用户past,将其用户目录指定为pastTest,然后再通过usermod命令将用户目录改为past目录。

创建用户past,并且将其用户目录指定为pastTest

useradd past -d /home/pastTest # 新增用户past指定其用户目录为pastTest
cd /home/  # 切换到home目录下
ls # 查看home下的普通用户目录

在这里插入图片描述

使用cat /etc/passwd命令查看用户的详细信息,可见past用户的用户目录在pastTest。

cat /etc/passwd

在这里插入图片描述

修改用户past的用户目录为past,然后进行查看

usermod -d /home/past/ past # usermod 选项 用户
cat /etc/passwd # 查看用户的详细文件信息

在这里插入图片描述

3. Linux系统用户组的管理

每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。

用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。

用户组其实类似于角色这一个概念,系统可以对有共性/权限的多个用户进行统一的管理。

语法格式:新增用户组=>groupadd 组名,删除用户组=>groupdel 组名,修改用户组=>usermod -g 用户组 用户名

例子:创建两个用户dog,cat将他们的组名设置为animal.

groupadd animal # 创建一个animal的用户组
useradd -g animal dog # 语法格式 useradd -g 用户组 用户名  (将dog用户添加到animal用户组中)
useradd -g animal cat 

在这里插入图片描述

使用cat /etc/passwd命令,查看用户信息

在这里插入图片描述

使用cat /etc/group命令,查看组名信息

4. 用户和组相关文件

4.1 /etc/passwd 文件

/etc/passwd文件是用户管理工作涉及的最重要的一个文件,Linux系统中的每个用户都在/etc/passwd文件中有一个对应的记录行,它记录了这个用户的一些基本属性。

用户的配置文件,记录用户的各种信息。

每行的含义:用户名:口令:用户标识号:组标识号:注释信息描述:主目录:登录Shell

例如:

robin:x:1000:1000:robin:/home/robin:/bin/bash

4.2 /etc/shadow 文件

口令的配置文件。

每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

例如:

robin:$6$zzbJ.SeyxtEs.Sz7$fZ4wz8x18OeeHghwYk0zO7/muOSRPt2djNdXXHO54hMTjlik4MhEoqmF505Cfw1wTZbkERBYgVBhLh/6hvnKh0:19402:0:99999:7:::

4.3 /etc/group文件

组的配置文件,记录Linux包含的组的信息。

每行的含义: 组名:口令:组标识号:组内用户列表

例如:

robin:x:1000:

相关文章:

常用vim命令和vim基本使用及Linux用户的管理,用户和组相关文件

常用vim命令和vim基本使用及Linux用户的管理,用户和组相关文件1. vim 的基本介绍和使用1.1 vim的三种模式1.2 常用vim命令【小白】1.3 Vim键盘图:2. Linux用户管理2.1 添加用户2.2 删除用户2.3 修改账号3. Linux系统用户组的管理4. 用户和组相关文件4.1 …...

阿里云服务器部署前后端分离项目

阿里云服务器部署 【若依】 前后端分离项目 文章目录一、域名解析二、服务器操作系统置空三、部署方式四、需安装环境配置五、Linux服务器安装相应内容(具体安装步骤)(一)安装JDK(3种方式)使用Yum安装&…...

内核经典数据结构list 剖析

前言:linux内核中有很多经典的数据结构,list(也称list_head)为其中之一,这些数据结构都是使用C语言实,并且定义和实现都在单独的头文件list.h中。可以随时拿出来使用。list.h的定义不同linux发行版本路径不同,我们可以在/usr/incl…...

华为OD机试 - 考优选核酸检测点(Python)| 真题+思路+考点+代码+岗位

优选核酸检测点 题目 张三要去外地出差,需要做核酸,需要在指定时间点前做完核酸, 请帮他找到满足条件的核酸检测点。 给出一组核酸检测点的距离和每个核酸检测点当前的人数给出张三要去做核酸的出发时间 出发时间是 10 分钟的倍数 同时给出张三做核酸的最晚结束时间题目中…...

在魔改PLUS-F5280开发板上使用合封qsp iflash

文章目录引言硬件调整软件调整总结引言 由于目前灵动官网暂未发布正式版的PLUS-F5280开发板,可以使用现有的PLUS-F5270 v1.2开发板(下文简称PLUS-F5270开发版)替换为MM32F5280微控制器芯片,改装为PLUS-F5280开发板。本文记录了使…...

uni-app 瀑布流

效果图 一、组件 components/u-myWaterfall.vue <template><view class"u-waterfall"><view id"u-left-column" class"u-column"><slot name"left" :leftList"leftList"></slot></view&…...

华为OD机试 - 去除多余空格(Python)| 真题+思路+考点+代码+岗位

去除多余空格 题目 去除文本多余空格,但不去除配对单引号之间的多余空格。给出关键词的起始和结束下标,去除多余空格后刷新关键词的起始和结束下标。 条件约束: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oQABYuJD-1676475739950)(https://…...

MyBatis 二级缓存简单使用步骤

1、二级缓存使用 在 MyBatis 中默认二级缓存是不开启的&#xff0c;如果要使用需手动开启。在 mybatis-config.xml 配置文件中设置 cacheEnabled true &#xff0c;配置如下&#xff1a; <?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE c…...

kubeadmin kube-apiserver Exited 始终起不来查因记录

kubeadmin kube-apiserver Exited 始终起不来查因记录 [rootk8s-master01 log]# crictl ps -a CONTAINER IMAGE CREATED STATE NAME ATTEMPT POD ID POD b7af23a98302e …...

论文投稿指南——中文核心期刊推荐(工程材料学)

【前言】 &#x1f680; 想发论文怎么办&#xff1f;手把手教你论文如何投稿&#xff01;那么&#xff0c;首先要搞懂投稿目标——论文期刊 &#x1f384; 在期刊论文的分布中&#xff0c;存在一种普遍现象&#xff1a;即对于某一特定的学科或专业来说&#xff0c;少数期刊所含…...

【动态规划】背包问题题型及方法归纳

背包问题的种类 背包问题是在规定背包容量为j的前提下&#xff0c;每个物品对应的体积为v[i]&#xff0c;价值为w[i]&#xff0c;从物品0到物品i中选择物品放入背包中&#xff0c;找出符合某种要求的价值。 &#xff08;1&#xff09;背包问题种类 01背包&#xff1a;每种物…...

全球十大资质正规外汇期货平台排行榜(最新版汇总)

外汇期货简称为FxFut&#xff0c;是“Forex Futures”的缩写&#xff0c;是在集中形式的期货交易所内&#xff0c;交易双方通过公开叫价&#xff0c;以某种非本国货币买进或卖出另一种非本国货币&#xff0c;并签订一个在未来的某一日期根据协议价格交割标准数量外汇的合约。 …...

使用Paramiko时遇到的一些问题

目录 1.背景 2.问题合集 1&#xff09;“bash: command not found” 2&#xff09;Paramiko中正常的输入&#xff0c;却到了stderr&#xff0c;而stdout是空 3&#xff09;命令实际是alias 1.背景 在自动化脚本中&#xff0c;使用了库Paramiko&#xff0c;远程SSH到后台服…...

数据预处理(无量纲化、缺失值、分类特征、连续特征)

文章目录1. 无量纲化1.1 sklearn.preprocessing.MinMaxScaler1.2 sklearn.preprocessing.StandardScaler2. 缺失值3. 分类型特征4. 连续型特征数据挖掘的五大流程包括&#xff1a;获取数据数据预处理特征工程建模上线 其中&#xff0c;数据预处理中常用的方法包括数据标准化和归…...

【C#基础】C# 运算符总结

序号系列文章2【C#基础】C# 基础语法解析3【C#基础】C# 数据类型总结4【C#基础】C# 变量和常量的使用文章目录前言运算符1&#xff0c;算术运算符2&#xff0c;布尔逻辑运算符3&#xff0c;位运算符4&#xff0c;关系运算符5&#xff0c;赋值运算符6&#xff0c;其他运算符7&am…...

存储性能软件加速库(SPDK)

存储性能软件加速库SPDK存储加速存储性能软件加速库&#xff08;SPDK&#xff09;SPDK NVMe驱动1.用户态驱动1&#xff09;UIO2&#xff09;VFIOIOMMU&#xff08;I/O Memory Management Unit&#xff09;3&#xff09;用户态DMA4&#xff09;大页&#xff08;Hugepage&#xf…...

微服务(五)—— 服务注册中心Consul

一、引入依赖 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-consul-discovery</artifactId></dependency>二、配置yml文件 server:port: 8006spring:application:name: cloud-payment-con…...

冷冻电镜 - ChimeraX Density Map 密度图 操作

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://blog.csdn.net/caroline_wendy/article/details/129055160 由冷冻电镜所生成的Volume,需要观察其内部结构,使用ChimeraX进行操作。 加载Volumes,例如my_volume.mrc 效果如下: 高斯滤波 在命令行(Co…...

Matlab 点云旋转之轴角式

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 三维空间中表示旋转的方法有很多种,轴角式是其中非常经典的一种表示方式。虽然欧拉角表示旋转的方法很是常用,但欧拉角存在着万向锁这个问题,因此轴角式旋转在旋转使用中更为合适。其原理也很是明了,如下所述:…...

2023美赛数学建模资料思路模型

美赛我们为大家准备了大量的资料&#xff0c;我们会在比赛期间给大家分析美题目和相关的思路 全文都是干货&#xff0c;大家仔细阅读&#xff0c;资料文末自取&#xff01; 首先我们来看美赛23年题型的一个变化&#xff1a; 美赛23年题目变化&#xff1a; A题&#xff1a;连…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…...

376. Wiggle Subsequence

376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...

Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器

第一章 引言&#xff1a;语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域&#xff0c;文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量&#xff0c;支撑着搜索引擎、推荐系统、…...

三体问题详解

从物理学角度&#xff0c;三体问题之所以不稳定&#xff0c;是因为三个天体在万有引力作用下相互作用&#xff0c;形成一个非线性耦合系统。我们可以从牛顿经典力学出发&#xff0c;列出具体的运动方程&#xff0c;并说明为何这个系统本质上是混沌的&#xff0c;无法得到一般解…...

return this;返回的是谁

一个审批系统的示例来演示责任链模式的实现。假设公司需要处理不同金额的采购申请&#xff0c;不同级别的经理有不同的审批权限&#xff1a; // 抽象处理者&#xff1a;审批者 abstract class Approver {protected Approver successor; // 下一个处理者// 设置下一个处理者pub…...

【VLNs篇】07:NavRL—在动态环境中学习安全飞行

项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战&#xff0c;克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...

基于Java+MySQL实现(GUI)客户管理系统

客户资料管理系统的设计与实现 第一章 需求分析 1.1 需求总体介绍 本项目为了方便维护客户信息为了方便维护客户信息&#xff0c;对客户进行统一管理&#xff0c;可以把所有客户信息录入系统&#xff0c;进行维护和统计功能。可通过文件的方式保存相关录入数据&#xff0c;对…...

【JVM面试篇】高频八股汇总——类加载和类加载器

目录 1. 讲一下类加载过程&#xff1f; 2. Java创建对象的过程&#xff1f; 3. 对象的生命周期&#xff1f; 4. 类加载器有哪些&#xff1f; 5. 双亲委派模型的作用&#xff08;好处&#xff09;&#xff1f; 6. 讲一下类的加载和双亲委派原则&#xff1f; 7. 双亲委派模…...

LLMs 系列实操科普(1)

写在前面&#xff1a; 本期内容我们继续 Andrej Karpathy 的《How I use LLMs》讲座内容&#xff0c;原视频时长 ~130 分钟&#xff0c;以实操演示主流的一些 LLMs 的使用&#xff0c;由于涉及到实操&#xff0c;实际上并不适合以文字整理&#xff0c;但还是决定尽量整理一份笔…...

2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)

安全领域各种资源&#xff0c;学习文档&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具&#xff0c;欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...