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

news2024/12/29 11:20:32

常用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:

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

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

相关文章

RuoYi-Vue部署(Nginx+Tomcat)

环境搭建RuoYi-Vue搭建、Linux安装Nginx、Linux安装JDK8、Linux安装MySql8、Linux安装Redis、Linux安装Tomcat9前端打包 1.ruoyi-ui鼠标右键-->打开于终端2.安装依赖:npm install --registryhttps://registry.npm.taobao.org-->node_modules3.编译打包&#x…

中国天气——西风带环流和寒潮

中国天气——西风带环流和寒潮 一. 西风环流概述 1. 概念 西风带:中高纬度地区平均水平环流在对流层盛行西风,称之为西风带西风带波动:西风带围绕极涡沿纬圈运动,平均而言表现为冬季三槽三脊,夏季四槽四脊&#xff…

盘点八个简单易上手的前端低代码框架项目

低代码近年来做为前端市场上火爆到不行的项目,其热度也是长久不衰,本文就为大家盘点了8个简单易上手的前端低代码框架项目,并各自都附上了体验链接,欢迎大家前往体验哦~~~~ 1. Appsm…

elementUI-plus虚拟表el-table-v2 checkbox删除后,下一个复选框又被选中且无法删除

虚拟表种设置了checkbox,但是删除时,发现删除后,下一个checkbox自动被选中,且删除时,报错找不到id没有设置row-key每行的 key 值,如果不提供,将使用索引 index 代替2.row-key值设置成什么值&…

openwrt开发板与ubuntu nfs挂载

1.ubuntu需要安装nfs服务 sudo apt-get install nfs-common nfs-kernel-server2.修改 /etc/exports文件: /home/test *(rw,nohide,insecure,no_subtree_check,async,no_root_squash) 前面是挂载的目录,后边是相应权限 rw:读写 insecure&am…

Is ChatGPT a general-purpose natural language processing task solver?

声明:平时看些文章做些笔记分享出来,文章中难免存在错误的地方,还望大家海涵。搜集一些资料,方便查阅学习:http://yqli.tech/page/speech.html。语音合成领域论文列表请访问http://yqli.tech/page/tts_paper.html&…

Android常用9种自动化测试框架对比,Appium有哪些优势?

随着移动终端的普及,手机应用越来越多,也越来越重要。 App的回归测试用例数量也越来越多,全量回归也越来越消耗时间。移动 APP自动化测试 的难点移动 APP的UI自动化测试长久以来一直是一个难点,难点在于UI的”变”, 变化导致自动化…

【数据结构】动态顺序表的接口实现(附图解和源码)

动态顺序表的接口实现(附图解和源码) 文章目录动态顺序表的接口实现(附图解和源码)前言一、定义结构体二、每一个接口的实现原理(附图解)1.初始化顺序表2.增容顺序表3.尾插数据4.删除顺序表信息&#xff08…

git rebase 和 git merge,实际工作使用

概述 git rebase是用来处理git merge命令所处理的同样的问题。 这两个命令都用于把一个分支的变更整合进另一个分支——只不过他们达成同样目的的方式不同。 场景,你在feature分支上开,另一位团队成员更新了main分支。这将会造成一个分叉的提交历史&am…

【Java|多线程与高并发】详解start()方法和run()方法的区别

文章目录前言1.start()方法和run()方法2.不能两次调用start()方法3.线程的执行是随机的start()方法和run()方法的执行顺序不一定相同4.run()方法由JVM调用public Thread(Runnable target)中的target前言 本篇文章主要讲解以下几个问题: start()方法和run()方法的区别与联系为…

python cartopy绘制扇形区域图/cartopy绘制北极部分区域

问题 当绘图时,往往并不需要绘制整块区域,而是想聚焦于局部地区,此时我们需要绘制扇形图。 在cartopy中,只提供普通正方形的框架,如果我们需要其他,边界,需要自己去绘制,最常见的是…

程序分析与神经网络后门

原文来自微信公众号“编程语言Lab”:程序分析与神经网络后门 搜索关注“编程语言Lab”公众号(HW-PLLab)获取更多技术内容! 欢迎加入编程语言社区 SIG-程序分析,了解更多程序分析相关的技术内容。 加入方式:…

Nginx常用命令及具体应用(Linux系统)

目录 一、常用命令 1、查看Nginx版本命令,在sbin目录下 2、检查配置文件的正确性 3、启动和停止Nginx 4、查看日志,在logs目录下输入指令: 5、重新加载配置文件 二、Nginx配置文件结构 三、Nginx具体应用 1、部署静态资源 2、反向代…

MacOS Pytorch 机器学习环境搭建

学习 Pytorch ,首先要搭建好环境,这里将采用 Anoconda Pytorch PyCharm 来一起构建 Pytorch 学习环境。 1. Anoconda 安装与环境创建 Anoconda 官方介绍:提供了在一台机器上执行 Python/R 数据科学和机器学习的最简单方法。 为什么最简单…

springmvc考研交流平台 java ssm mysql

随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,考研交流平台当然也不能排除在外,从备考资料、课程学习的统计和分析,在过程中会产生大量的、各种各样的…

头戴式耳机适不适合跑步、最好用的跑步耳机推荐

现在爱好运动、重视健康的人越来越多,并且这部分群体呈现几何级增长,而这其中又有很多人喜欢边跑步时边听音乐,所以现如今跑步时听音乐是基本上已经成为很多运动人士的刚性需求。但实际上真正适合运动跑步的耳机并不多,我跑步差不…

程序员的自我修养第七章——动态链接 (下)

接上一篇。 7.3 地址无关代码 对于现代机器来说,引入地址无关代码并不麻烦,我们展示下各种模型的地址引用方式: 1. 模块内部函数调用 2. 模块内部的数据访问,如全局变量、静态变量。 3. 模块外部的函数调用,跳转。 4.…

【算法基础】字典树(Trie树)

一、Trie树原理介绍 1. 基本概念 Trie 树,也叫“字典树”。顾名思义,它是一个树形结构。它是一种专门处理字符串匹配的数据结构,用来解决在一组字符串集合中快速查找某个字符串的问题。【高效存储和查找字符串集合的数据结构】,存储形式如下: 2. 用数组来模拟Trie树的…

SpringBoot 启动配置文件加载和参数配置修改问题

SpringBoot 配置文件修正和参数覆盖SpringBoot 配置文件加载和参数覆盖1、SpringBoot 配置文件加载1.1、修改application.properties的参数几种方式1.2、方法一:直接CMD1.3、方法二:系统变量配置1.4、方法三:程序运行配置1.5、方法四&#xf…

【从零开始学C语言】知识总结一:C语言的基本知识汇总

C语言期末知识点总结 C语言期末试题(附答案)选择题编程题 2022C语言知识点大全【详细、必备】 C语言期末大作业-学生成绩管理系统(完整源码设计报告) C语言期末作业(15个)-货物管理系统、歌曲信息管理系…