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)

大家都在看

  • 服务管理与通信,基础原理分析

    涉及轻微的源码展示,可放心参考; 一、基础简介 服务注册发现是微服务架构中最基础的能力,下面将从源码层面分析实现逻辑和原理,在这之前要先来看下依赖工程的基础结构,涉及如下几个核心组…

    Linux 2023年6月14日
    0163
  • WPF 制作一个占用文件的测试工具

    我在开发软件进行测试时,需要测试拖入的文件被占用时软件的行为,于是就做了一个文件占用工具,此工具可以将某个文件进行占用,以及获取某个文件被哪个进程占用 先给大家看一下效果: 以上是…

    Linux 2023年6月6日
    0148
  • 【证券从业】金融基础知识-第四章 股票02

    注1:后续学习并整理到第八章,全书完结后再合并成一个笔记进行源文件分享 注2:本章内容巨多,大约分为两篇文章记录消化 posted @2022-06-06 02:11 陈景中 阅读…

    Linux 2023年6月13日
    0136
  • MySQL的约束

    主键约束 能够唯一确定一张表中的一条记录,通过给某个字段添加约束,就可以使得该字段不重复且不为空 create table user( id int primary key, na…

    Linux 2023年6月7日
    0106
  • 【已解决】linux centos7系统磁盘扩容

    第一步要手动加硬盘(我的操作是在20G的基础上加了30G) [reliable@hadoop102 ~]$ su root密码: 查看当前磁盘挂载情况: [root@hadoop1…

    Linux 2023年5月27日
    0136
  • 一步一图带你深入剖析 JDK NIO ByteBuffer 在不同字节序下的设计与实现

    让我们来到微观世界重新认识 Netty 在前面 Netty 源码解析系列 《聊聊 Netty 那些事儿》中,笔者带领大家从宏观世界详细剖析了 Netty 的整个运转流程。从一个网络…

    Linux 2023年6月6日
    0138
  • linux系统编码修改

    查看当前系统默认采用的字符集locale 查看系统当前编码echo $LANG如果输出为:en_US.UTF-8 英文zh_CN.UTF-8 中文 查看系统是否安装中文字符集loc…

    Linux 2023年6月6日
    0125
  • USB_ModeSwitch for Android 7

    测试步骤: 2.运行命令 adb shell usbmodeswitch -W -v 12d1 -p 1f01 -M ‘555342431234567800000000…

    Linux 2023年6月7日
    096
  • Centos7 离线安装K3s

    1、安装前准备 github地址:https://github.com/k3s-io/k3s/releases k3s二进制文件:k3s下载地址:github地址 / 百度网盘地址…

    Linux 2023年6月7日
    0159
  • 读软件测试艺术感悟

    断断续续的看,总觉得好像是漏掉了什么,而且一直 想着还有什么事情未做,却静不下心来去细品 开篇用自测评价测试,举例三角形例子写出等价类边界值的方法给测试人员举一个例子,更好的使测试…

    Linux 2023年6月8日
    0124
  • 使用ssh连接到centos7中docker容器

    任务: 使用ssh连接到centos7中docker容器 实验步骤: 如图,首先用真机ping容器(容器事先安装了常用的软件,具体步骤请看上一篇) 然后用容器ping真机以及外网,…

    Linux 2023年5月27日
    0113
  • 数字图像处理

    1. 图像的基本概念 连续图像:二维坐标系上连续变化的图像,图像的像点无限稠密。 离散图像:用数字序列表示的图像,像素是组成图像的基本单位。 1.1 图像数字化采样 图像经过采样与…

    Linux 2023年6月14日
    0109
  • 嵌入式软件开发之程序架构设计-任务调度

    1 前言 在嵌入式MCU软件开发过程中,程序任务调度架构的搭建尤为重要,直接关系到该程序能支持多少功能(随着功能越多系统响应能力越弱,好的任务调度架构能够在保持相同的系统响应能力前…

    Linux 2023年6月7日
    0153
  • 我为儿子开发的第一款Android App,用于九九乘法练习

    用一天时间在macbook上安装好了Android Studio For Mac,注意dl.google.com只支持电信网络下载,家里宽带如果是移动或者联通的,使用AS下载And…

    Linux 2023年6月14日
    0126
  • dotnet诊断工具记录

    CPU爆高(cpu陡增,比如正常运行一般是x%的cpu,突然到了20% 30%甚至更高) 调试高 CPU 使用率 dotnet tool install –global dotn…

    Linux 2023年6月7日
    0122
  • jquery ajax提交数据给后端

    大家好,今天铁柱兄给大家带一段jquery ajax提交数据给后端的教学。 初学javaweb的同学前端提交数据基本上都是用form表单提交,这玩意儿反正我是觉得不太好玩。而Jav…

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