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)

大家都在看

  • Tmux 配置

    前面提到的窗口管理只是 tmux 功能的一小部分,另一个很有用的功能就是,连接到远程主机之后,一旦断开,那么当前账户登录的任务就被取消了,但是使用 tmux 可以在断开之后继续工作…

    Linux 2023年6月7日
    093
  • OSI模型 TCP/IP协议

    系统中每打开一个程序,系统会自动分配一个端口号(0~65535) 端口号:来区分应用程序 网络层:传给哪台主机 加入ip地址(源发出去的地址 目:目的地址)选路 数据链路层:mac…

    Linux 2023年6月6日
    094
  • tqdm和zip组合使用时无法显示进度条-解决办法

    问题 单独对于可迭代对象iterator使用tqdm时,结合循环就可以在终端显示进度条, 以直观展示程序进度,如下: from tqdm import tqdm textlist …

    Linux 2023年6月7日
    0118
  • Redis 优化之 tcp-backlog

    tcp-backlog:511 此参数确定了TCP连接中已完成队列(完成三次握手之后)的长度, 当然此值必须不大于Linux系统定义的/proc/sys/net/core/soma…

    Linux 2023年5月28日
    0108
  • 记一次vcenter连接esxi失败问题排查(443端口不通)

    vecenter错误 esxi宿主机重启后,vcenter连接esxi提示超时,使用vmware客户端连接esxi也提示超时,开始介入排查。 故障排查 如何进入命令终端 运行alt…

    Linux 2023年6月14日
    076
  • 用 shell 脚本做自动化测试

    项目中有一个功能,需要监控本地文件系统的变更,例如文件的增、删、改名、文件数据变动等等。之前只在 windows 上有实现,采用的是 iocp + ReadDirectoryCha…

    Linux 2023年6月6日
    080
  • 一文聊透 Netty IO 事件的编排利器 pipeline | 详解所有 IO 事件的触发时机以及传播路径

    欢迎关注公众号:bin的技术小屋,本文图片加载不出来的话可查看公众号原文 本系列Netty源码解析文章基于 4.1.56.Final版本 1. 前文回顾 在前边的系列文章中,笔者为…

    Linux 2023年6月6日
    096
  • 我最鄙视的程序员

    今天在技术群里看到关于优秀程序员特质的话题,让我想起多年前的一个同事,一个我最鄙视的程序员。 他的名字叫李伟(化名),是入职没多久的员工,我所在的开发二组和他在的一组,以前没有过工…

    Linux 2023年6月6日
    088
  • Java高级

    抽象类和抽象方法 1.定义 随着继承层次中一个个新子类的定义,类变得越来越具体,而父类则更一般,更通用。 类的设计应该保证父类和子类都能够共享特征。 有时候将一个父类设计的非常抽象…

    Linux 2023年6月13日
    0110
  • zabbix自定义监控(当会话登录超过三个就报警)

    安装过程在此省略。 1.agent端去修改配置文件 2.调用自定义内容 vim /etc/zabbix/zabbix_agentd.d/login.conf UserParamet…

    Linux 2023年6月6日
    086
  • CentOS 文本编辑器

    Linux 终端的文本编辑器中,较著名的有:Nano、Vim、Emacs。其它文本编辑器还有 Gedit、Sublime,Atom 等等。 1.1、基础命令 nano:打开 nan…

    Linux 2023年6月8日
    0111
  • 百度云虚拟主机BCH安装PHP框架CodeIgniter

    注意:fastcgi_param SCRIPT_FILENAME /home/bae/app/index.php;这一项中的路径,这个百度云虚拟主机的手册有说明。 将该配置文件(b…

    Linux 2023年6月13日
    0105
  • mycat数据库集群系列之mycat读写分离安装配置

    最近在梳理数据库集群的相关操作,现在花点时间整理一下关于mysql数据库集群的操作总结,恰好你又在看这一块,供一份参考。本次系列终结大概包括以下内容:多数据库安装、mycat部署安…

    Linux 2023年6月14日
    0126
  • centos进入rescue 失败

    环境:centos7 在机械盘 win10在固态盘 场景:centos7 中/etc/grub.d/下的30_os_prober 脚本删掉后导致 grub2 列举不出别的磁盘上系统…

    Linux 2023年6月6日
    094
  • shell 配置文件节约空间

    shell 配置文件节约空间 sed 读取一个配置文件的的多个变量 Original: https://www.cnblogs.com/hshy/p/16451927.htmlAu…

    Linux 2023年5月28日
    083
  • histogram的类型详解

    采样点 每隔指定的时间会采集并上报一次数据,称为采样点。 请注意这里采集的是当前瞬间的数据 count 对采样点的 次数累计和(count) bucket 对采样点的 次数进行统计…

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