Linux02:Vim使用及账号、磁盘、进程管理(狂神说)

五、Vim编译器

1.什么是vim编译器

  • Vim相当于vi的升级版
  • Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
  • 简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。
  • vim 则可以说是程序开发者的一项很好用的工具。
  • 所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在。
  • 连 vim 的官方网站 (http://www.vim.org) 自己也说 vim 是一个程序开发工具而不是文字处理软件。
  • vim 键盘图:

Linux02:Vim使用及账号、磁盘、进程管理(狂神说)

2.三种使用模式(重要)

基本上 vi/vim 共分为三种模式,分别是 命令模式(Command mode), 输入模式(Insert mode)和 底线命令模式(Last line mode)。这三种模式的作用分别是:

  1. 命令模式: 用户刚刚启动 vi/vim,便进入了命令模式。 此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时 按下i,并不会输入一个字符,i被当作了一个命令。 以下是常用的几个命令:
  2. i 切换到输入模式,以输入字符。
  3. x 删除当前光标所在处的字符。
  4. : 切换到底线命令模式,以在最底一行输入命令。如果是编辑模式,需要先退出编辑模式 (ESC)
  5. 输入模式: 在命令模式下按下i就进入了输入模式。 在输入模式中,可以使用以下按键:
  6. 字符按键以及Shift组合,输入字符
  7. ENTER,回车键,换行
  8. BACK SPACE,退格键,删除光标前一个字符
  9. DEL,删除键,删除光标后一个字符
  10. 方向键,在文本中移动光标
  11. HOME/ END,移动光标到行首/行尾
  12. Page Up/ Page Down,上/下翻页
  13. Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
  14. ESC,退出输入模式,切换到命令模式
  15. 底线命令模式 在命令模式下按下:(英文冒号)就进入了底线命令模式。 底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。 在底线命令模式中,基本的命令有(已经省略了冒号):
  16. q 退出程序
  17. w 保存文件 按ESC键可随时退出底线命令模式。

简而言之,我们可以将这三种模式视为以下图标:

[En]

In a nutshell, we can think of these three patterns as the following icons:

Linux02:Vim使用及账号、磁盘、进程管理(狂神说)

测试

Linux02:Vim使用及账号、磁盘、进程管理(狂神说)

完整的演示说明

新建或者编辑文件,按 i 进入编译模式,编写内容,编写完成后退出编辑模式,esc,退出之后进入底线命令模式

:wq保存退出!

3.Vim按键说明(需要时查询)

第一部分:一般模式可用的光标移动、复制粘贴、搜索替换等

移动光标的方法 11 h 或 向左箭头键(←) 光标向左移动一个字符 j 或 向下箭头键(↓) 光标向下移动一个字符 k 或 向上箭头键(↑) 光标向上移动一个字符 l 或 向右箭头键(→) 光标向右移动一个字符 [Ctrl] + [f] 屏幕『向下』移动一页,相当于 [Page Down]按键 (常用) [Ctrl] + [b] 屏幕『向上』移动一页,相当于 [Page Up] 按键 (常用) [Ctrl] + [d] 屏幕『向下』移动半页 [Ctrl] + [u] 屏幕『向上』移动半页 + 光标移动到非空格符的下一行 – 光标移动到非空格符的上一行 n< space> 那个 n 表示『数字』,例如 20 。按下数字后再按空格键,光标会向右移动这一行的 n 个字符。(数字 + 空格) 0 或功能键[Home] 这是数字『 0 』:移动到这一行的最前面字符处 (常用) $ 或功能键[End] 移动到这一行的最后面字符处(常用) H M 光标移动到这个屏幕的中央那一行的第一个字符 L 光标移动到这个屏幕的最下方那一行的第一个字符 G 移动到这个档案的最后一行(常用) nG n 为数字。移动到这个档案的第 gg 移动到这个档案的第一行,相当于 1G 啊!(常用) n< Enter> n 为数字。光标向下移动 n 行(常用) 搜索替换 /word 向光标之下寻找一个名称为 word 的字符串。例如要在档案内搜寻 vbird 这个字符串,就输入 /vbird 即可!(常用) ?word 向光标之上寻找一个字符串名称为 word 的字符串。 n 这个 n 是英文按键。代表重复前一个搜寻的动作。举例来说, 如果刚刚我们执行 /vbird 去向下搜寻 vbird 这个字符串,则按下 n 后,会向下继续搜寻下一个名称为 vbird 的字符串。如果是执行 ?vbird 的话,那么按下 n 则会向上继续搜寻名称为 vbird 的字符串! N 这个 N 是英文按键。与 n 刚好相反,为『反向』进行前一个搜寻动作。例如 /vbird 后,按下 N 则表示『向上』搜寻 vbird 。 删除、复制与粘贴 x, X 在一行字当中,x 为向后删除一个字符 (相当于 [del] 按键), X 为向前删除一个字符(相当于 [backspace] 亦即是退格键) (常用) nx n 为数字,连续向后删除 n 个字符。举例来说,我要连续删除 10 个字符, 『10x』。 dd 删除游标所在的那一整行(常用) ndd n 为数字。删除光标所在的向下 n 行,例如 20dd 则是删除 20 行 (常用) d1G 删除光标所在到第一行的所有数据 dG 删除光标所在到最后一行的所有数据 d$ 删除游标所在处,到该行的最后一个字符 d0 那个是数字的 0 ,删除游标所在处,到该行的最前面一个字符 yy 复制游标所在的那一行(常用) nyy n 为数字。复制光标所在的向下 n 行,例如 20yy 则是复制 20 行(常用) y1G 复制游标所在行到第一行的所有数据 yG 复制游标所在行到最后一行的所有数据 y0 复制光标所在的那个字符到该行行首的所有数据 y$ 复制光标所在的那个字符到该行行尾的所有数据 p, P p 为将已复制的数据在光标下一行贴上,P 则为贴在游标上一行!举例来说,我目前光标在第 20 行,且已经复制了 10 行数据。则按下 p 后, 那 10 行数据会贴在原本的 20 行之后,亦即由 21 行开始贴。但如果是按下 P 呢?那么原本的第 20 行会被推到变成 30 行。(常用) J 将光标所在行与下一行的数据结合成同一行 c 重复删除多个数据,例如向下删除 10 行,[ 10cj ] u 复原前一个动作。(常用) [Ctrl]+r 重做上一个动作。(常用)

第二部分:一般模式切换到编辑模式的可用的按钮说明

进入输入或取代的编辑模式 i, I 进入输入模式(Insert mode):i 为『从目前光标所在处输入』, I 为『在目前所在行的第一个非空格符处开始输入』。(常用) a, A 进入输入模式(Insert mode):a 为『从目前光标所在的下一个字符处开始输入』, A 为『从光标所在行的最后一个字符处开始输入』。(常用) o, O 进入输入模式(Insert mode):这是英文字母 o 的大小写。o 为『在目前光标所在的下一行处输入新的一行』;O 为在目前光标所在处的上一行输入新的一行!(常用) r, R 进入取代模式(Replace mode):r 只会取代光标所在的那一个字符一次;R会一直取代光标所在的文字,直到按下 ESC 为止;(常用) [Esc] 退出编辑模式,回到一般模式中(常用)

第三部分:一般模式切换到指令行模式的可用的按钮说明

指令行的储存、离开等指令 :w 将编辑的数据写入硬盘档案中(常用) :w! 若文件属性为『只读』时,强制写入该档案。不过,到底能不能写入, 还是跟你对该档案的档案权限有关啊! :q 离开 vi (常用) :q! 若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案。注意一下啊,那个惊叹号 (!) 在 vi 当中,常常具有『强制』的意思~ :wq 储存后离开,若为 :wq! 则为强制储存后离开 (常用) ZZ 这是大写的 Z 喔!若档案没有更动,则不储存离开,若档案已经被更动过,则储存后离开! :w [filename] 将编辑的数据储存成另一个档案(类似另存新档) :r [filename] 在编辑的数据中,读入另一个档案的数据。亦即将 『filename』 这个档案内容加到游标所在行后面 :n1,n2 w [filename] 将 n1 到 n2 的内容储存成 filename 这个档案。 :! command 暂时离开 vi 到指令行模式下执行 command 的显示结果!例如 『:! ls /home』即可在 vi 当中看 /home 底下以 ls 输出的档案信息! :set nu 显示行号,设定之后,会在每一行的前缀显示该行的行号 :set nonu 与 set nu 相反,为取消行号!

以上分数需要熟练掌握!

[En]

The above marks need to be proficient!

六、账号管理

1.简介

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

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

[En]

On the one hand, users’ accounts can help system administrators track users who use the system and control their access to system resources; on the other hand, they can also help users organize files and provide security protection for users.

每个用户帐户都有唯一的用户名和密码。

[En]

Each user account has a unique user name and password.

用户在登录时输入正确的用户名和密码后,即可进入系统和自己的主目录。

[En]

After users type the correct user name and password when logging in, they can enter the system and their own home directory.

要实现用户账号管理,需要完成的主要任务如下:

[En]

To realize the management of user accounts, the main tasks to be completed are as follows:

  • 添加、删除和修改用户帐户。
    [En]

    add, delete and modify user accounts.*

  • 用户口令的管理。
  • 用户组的管理。

2.用户账号的管理

用户账号的管理主要涉及用户账号的添加、修改和删除。

[En]

The management of user accounts mainly involves the addition, modification and deletion of user accounts.

添加用户账号就是在系统中创建一个新账号,然后为新账号分配用户号、用户组、主目录和登录Shell等资源。

2.1添加账号 useradd

语法 : useradd -命令 添加用户

参数说明:

-c comment 指定一段注释性描述。
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
-g 用户组 指定用户所属的用户组。
-G 用户组,用户组 指定用户所属的附加组。
-m 使用者目录如不存在则自动建立。
-s Shell文件 指定用户的登录Shell。
-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
[root@localhost home]# useradd -m jihu1  #创建一个用户
[root@localhost home]# ls
f2  f3  jihu  jihu1  jihu.txt  lost+found  test2  test4

2.2删除用户 userdel

userdel -r 用户名 删除用户的时候将他的目录页一并删掉!

[root@localhost home]# userdel -r jihu1
[root@localhost home]# ls
f2  f3  jihu  jihu.txt  lost+found  test2  test4

2.3修改用户 usermod

修改用户usermod 对应修改的内容 修改那个用户

[root@localhost home]# usermod -d /home/233 jihu1

修改后只需检查配置文件即可!

[En]

Just check the configuration file after modification!

查看命令: cat /etc/passwd

Linux02:Vim使用及账号、磁盘、进程管理(狂神说)

2.4切换用户 su

语法 : su username [username是你的用户名]

root用户

Linux02:Vim使用及账号、磁盘、进程管理(狂神说)

1.切换用户的命令为: su username [username是你的用户名]

2.从普通用户切换到root用户,还可以使用: sudo su

Linux02:Vim使用及账号、磁盘、进程管理(狂神说)

3.在终端输入exit或logout或使用快捷方式ctrl+d,可以退回到原来用户,其实ctrl+d也是执行的exit命令

4.在切换用户时,如果想在切换用户之后使用新用户的工作环境,可以在su和username之间加-,例如:【su – root】

5.$表示普通用户,#表示超级用户,也就是root用户

修改主机名称:

[root@jihu ~]# hostname  #查看主机名
jihu
[root@jihu ~]# hostname jihu  #修改主机名,修改完毕后重新连接即可

3.用户的密码设置

我们一般通过root创建用户的时候! 要配置密码!

Linux上输入密码是不会显示的,正常输入就可以了。

如果是 超级用户的话:

passwd username:
new password:
re password:

如果是 普通用户

passwd
(current) UNIX password:
new password:  #密码不能太过于简单!
re  password:

锁定账号!

root,比如张三辞职了! 冻结这个账号,一旦冻结,这个人就登录不上系统了。

passwd -l jihu  #锁定之后这个用户就不能登录了!
passwd -d jihu  #没有密码也不能登录!

4.用户组管理

属主 、 属组

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

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

4.1 创建一个用户组 groupadd

[root@jihu home]# groupadd jihu1
[root@jihu home]# cat /etc/group
tcpdump:x:72:
jihu:x:1000:jihu
jihu2:x:1001:
jihu1:x:1002:

创建完用户组后可以得到一个组的id,这个id是key指定的! ‘-g 520’,如果不指定就是自增1

groupadd -g 520

4.2 删除用户组 groupdel

groupdel jihu1
cat /etc/group

4.3 修改用户组的权限信息和名字 groupmod -g -n

groupmod -g 666 -n newjihu1 jihu1

Linux02:Vim使用及账号、磁盘、进程管理(狂神说)

用户如果要切换用户组怎么办?

#登录当前用户   jihu
$ newgrp  root

5.拓展:文件的查看(了解)

5.1 /etc/passwd

&#x7528;&#x6237;&#x540D;:&#x53E3;&#x4EE4;&#xFF08;&#x5BC6;&#x7801;&#xFF0C;&#x4E0D;&#x53EF;&#x89C1;&#x6240;&#x4EE5;&#x4E3A;X&#xFF09;:&#x7528;&#x6237;&#x6807;&#x8BC6;&#x53F7;:&#x7EC4;&#x6807;&#x8BC6;&#x53F7;:&#x6CE8;&#x91CA;&#x6027;&#x63CF;&#x8FF0;:&#x4E3B;&#x76EE;&#x5F55;:&#x767B;&#x5F55;Shell

Linux02:Vim使用及账号、磁盘、进程管理(狂神说)

5.2 /etc/shadow

/etc/shadow中的记录行与/etc/passwd中的一一对应,它由pwconv命令根据/etc/passwd中的数据自动产生

它的文件格式与/etc/passwd类似,由若干个字段组成,字段之间用”:”隔开。这些字段是:

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

5.3 /etc/group

  • 用户组的所有信息都存放在/etc/group文件中。
  • 将用户分组是Linux 系统中对用户进行管理及控制访问权限的一种手段。
  • 每个用户属于一个用户组;一个组中可以有多个用户,也可以一个用户属于不同的组。
    [En]

    each user belongs to a user group; there can be multiple users in a group, or a user can belong to a different group.*

  • 当一个用户同时是多个组中的成员时,在/etc/passwd文件中记录的是用户所属的主组,也就是登录时所属的默认组,而其他组称为附加组。
  • 用户要访问属于附加组的文件时,必须首先使用newgrp命令使自己成为所要访问的组中的成员。
  • 用户组的所有信息都存放在/etc/group文件中。此文件的格式也类似于/etc/passwd文件,由冒号(:)隔开若干个字段,这些字段有:
组名:口令:组标识号:组内用户列表
  1. 组名:是用户组的名称,由字母或数字构成。与/etc/passwd中的登录名一样,组名不应重复。
  2. 口令:字段存放的是用户组加密后的口令字。一般Linux 系统的用户组都没有口令,即这个字段一般为空,或者是*。
  3. 组标识号:与用户标识号类似,也是一个整数,被系统内部用来标识组。
  4. 组内用户列表:是属于这个组的所有用户的列表/b],不同用户之间用逗号(,)分隔。这个用户组可能是用户的主组,也可能是附加组。

七、磁盘管理

1.概述

  • Linux磁盘管理好坏直接关系到整个系统的性能问题。
  • Linux磁盘管理常用命令为 df、du。
  • df :列出文件系统的整体磁盘使用量
  • du:检查磁盘空间使用量

df 命令

Linux02:Vim使用及账号、磁盘、进程管理(狂神说)

du 命令

Linux02:Vim使用及账号、磁盘、进程管理(狂神说)

挂载 : mount

Linux02:Vim使用及账号、磁盘、进程管理(狂神说)

卸载 : umount -f [挂载位置] 强制卸载

八、进程管理

Linux中一切皆文件

(文件:读写执行(查看,创建,删除,移动,复制,编辑),权限:(用户,用户组),系统:(磁盘,进程))

基本概念

  1. 在Linux中,每一个程序都是有自己的一个进程,每一个进程都有一个id号!
  2. 每一个进程呢,都会有一个父进程!
  3. 进程可以有两种存在方式:前台!后台运行!
  4. 一般的话服务都是后台运行的,基本的程序都是前台运行的!

命令

ps 查看当前系统中正在执行的各种进程的信息!

ps -xx:

  • -a,显示当前终端运行的所有的进程信息(当前的进程)
  • -u,以用户的信息显示进程
  • -x,显示后台运行进程的参数
ps -aux 查看所有的进程
 ps -aux | grep mysql
 ps -aux | grep redis

|  在Linux这个叫做管道符  A|B
grep 查找文件中符合条件的字符串!

ps -ef:可以查看到父进程的信息

ps -ef | grep mysql  #看父进程我们一般可以通过目录树结构来查看!

#进程树
pstree  -pu
    -p  显示父id
    -u  显示用户组

Linux02:Vim使用及账号、磁盘、进程管理(狂神说)

结束进程:kill 杀掉进程

#语法:
    kill -9 进程的id

Original: https://www.cnblogs.com/yin-jihu/p/16040214.html
Author: 爲誰心殇
Title: Linux02:Vim使用及账号、磁盘、进程管理(狂神说)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/523972/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • bat-Windows的文件夹备份

    REM program:&#x7528;&#x4E8E;HTS&#x7684;Windows&#x673A;&#x5668;&#x5…

    Linux 2023年6月7日
    0109
  • redis订阅关闭异常解决

    redis订阅关闭异常解决 应用程序模块订阅redis运行一段时间出现一直重连Redis服务,日志如下: 2019-04-28 10:06:17,551 ERROR org.spr…

    Linux 2023年5月28日
    0120
  • CentOS7.6下Oracle19C RAC集群詳細搭建步驟

    CentOS7.6搭建RAC 1.系统环境配置 1.1概述 ​ 搭建两个节点的rac集群,其每个节点均有两个网卡,public网卡和private网卡。两个节点的主机名分别为rac…

    Linux 2023年6月13日
    084
  • X86 assembly guide

    This guide describes the basics of 32-bit x86 assembly language programming, covering a sm…

    Linux 2023年6月7日
    0150
  • 同城双活概述

    引言 同城双活,是年度最大的架构变更。同城容灾,对于生产的高可用保障,重大的意义和价值是不言而喻的。 用储总的话说,这么重要的架构工作,所有架构师都应该重点主导和参与。 同城双活,…

    Linux 2023年6月14日
    0133
  • 错误日志:Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener

    csharp;gutter:true; 错误日志如下:</p> <pre><code> ;gutter:true;[org.springfram…

    Linux 2023年6月7日
    0168
  • Linux Ubuntu 下载&安装 Java

    1. 下载 Java OpenJDK VS Oracle JDK ? 下载之前查了下资料,有 OpenJDK 和 Oracle JDK 两种: Java 最早由 SUN 公司发明,…

    Linux 2023年6月14日
    091
  • Python 定义类时候加括号和不加括号的区别

    新式类与经典类 只有python2.x 中有新式类和经典类的说法,而python3.x 没有,因为其默认都是新式类 python2.x 中默认都是经典类,只有显式的继承了objec…

    Linux 2023年6月7日
    087
  • [20220301]oracle如何定位使用library cache mutex.txt

    [20220301]oracle如何定位使用library cache mutex.txt –//这个问题实际上困扰我很久,我开始以为library cache buc…

    Linux 2023年6月13日
    0104
  • python实现Mysql数据库批量新增数据

    一、批量插入数据的场景 二、插入数据的工具选择 三、选择Python进行批量插入 Python实现批量插入Mysql数据库数据 一、批量插入数据的场景 在进行数据压力时需要进行大数…

    Linux 2023年6月14日
    099
  • 手套—牛客网

    left[i] 和right[i] 是匹配的数值 0 和 1 左边0个 右边1个 因为数据中有0这种数值 说明有不能匹配的手套。所以这些手套必须加上 避免没有全拿时 拿到了不匹配的…

    Linux 2023年6月13日
    0105
  • UWP 自定义密码框控件

    1. 概述 微软官方有提供自己的密码控件,但是控件默认的行为是输入密码,会立即显示掩码,比如 *。如果像查看真实的文本,需要按查看按钮。 而我现在自定义的密码控件是先显示你输入的字…

    Linux 2023年6月13日
    0100
  • pysimpleGui 之table使用

    (class) Table(values, headings=None, visible_column_map=None, col_widths=None, def_col_wid…

    Linux 2023年6月14日
    0108
  • cgroup-v1在android中的应用实现浅析

    本文档内容主要是分析android设备中cgroup v1实现了哪些控制器,他们有哪些子控制器以及如何配置这些控制器的。 我是使用红米Note4Plus的开发版本来调研分析的,手机…

    Linux 2023年6月7日
    0124
  • 设计模式——面向对象设计原则

    面向对象设计原则 都是为了高内聚低耦合原则。编程时基本都要遵守 分类原则:一种人只干一种事。 举例:(比较简单就不代码了) 人可以干的事情有很多:敲代码、唱歌、跳舞、打篮球&#82…

    Linux 2023年6月7日
    0172
  • Kubernetes 容器平台实战

    一、什么是Kubernetes? Kubernetes是容器集群管理系统,是一个开源的平台,可以实现容器集群的自动化部署,自动扩缩容,维护等功能. 通过Kubernetes可以做到…

    Linux 2023年6月14日
    0115
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球