文件编辑器vi/vim
vi/vim是Linux中的文本编辑工具,vim的功能比vi要强大许多。
进入文本编辑器:vim $filename
文本编辑器有4种工作模式:
使用vim命令后首先进入的是命令模式,在此模式按i键即进入编辑模式,按esc键则从编辑模式退出到命令模式,按英文冒号:即进入尾命令模式按Enter键退出到命令模式,按ctr+v进入可视快模式,esc键则退出到命令模式。
命令行模式
gg 光标回到页首 G 光标回到页尾 yy 复制光标所在行 3yy 复制三行 yy3 光标所在行复制3次 p 粘贴到光标所在行的下一行 P 粘贴到光标所在行的上一行 D 删除光标位置到所在行行尾 dd 删除光标所在行 4dd 删除4行,包括光标所在行 dgg 删除光标所在行到页首 dG 删除光标所在行到页尾 u 撤销上一步操作 ctrl + r 恢复 r 替换字符 x 删除光标所在处的字符 /关键字 ?关键字
编辑模式
i #进入编辑模式,光标位置不变 I #进入编辑模式,光标位置回到行首 a #进入编辑模式,光标位置后移一位 A #进入编辑模式,光标位置移动到行尾 o #进入编辑模式,光标位置移动到下一行(向下另起一行,相当于回车) O #进入编辑模式,光标位置移动到上一行(向上另起一行)
尾命令模式
输入一个英文的冒号: w 保存 q 退出 w! 强制保存 q! 强制退出 wq 保存并退出 wq! 强制保存并退出 x 保存并退出 x! 强制保存并退出 X 加密 取消密码 :set key= 将文件另存(另存为) 语法----> :w 存储到当前文件 :w #另存为/tmp/aaa.txt :1,3 w /tmp/2.txt #从1-3行的内容另存为/tmp/2.txt 关键字替换 注释:%表示替换所有行 g表示行内所有关键字 :s/old/new/ 替换光标所在行匹配到的第一个关键字 :s/old/new/g 替换光标所在行匹配到的所有的关键字 :%s/old/new/ 替换每一行匹配到的第一个关键字 :%s/old/new/g 替换所有的匹配到的关键字 :5,8s/old/new/g 指定范围替换 :9s/old/new/g 替换指定行的关键字 设置行号 :set nu 取消行号 :set nonu 制表符的长度 :set ts=4 设置行标线 :set cursorline 设置列标线 :set cuc
可视块模式
批量加注释: vim filename ctrl+v===>上下键选中所需注释内容==>Shift+i===>#====>ESC :wq shift+v #进入可视行模式
用户管理
Linux又一大特性:多用户,多任务。即在同一台Linux系统上可以有多个用户同时登录,并且每个用户都可以各自执行任务,而互不影响。
在Linux系统中用户分为三类:
超级管理员:拥有系统的最高权限,一般为用户名为root,uid 为0
系统用户:也被称为'伪用户';作用是支撑系统运行,方便管理,是无法登录系统的,uid小于1000
普通用户:有权限限制,只能对自己目录下的文件进行操作,可以登录系统。uid 大于1000,登陆shell是/bin/bash。
注:每个用户在被创建时都会在系统中创建一个同名的组
用户了解
Users and groups:
系统上的每个进程(运行的程序)都是作为特定用户运行的
. Every file is owned by a particular user.
每个文件是由一个特定的用户拥有 .
. Access to files and directories are restricted by user.
访问文件和目录受到用户的限制
用户组管理
用户组添加
添加用户组:groupadd $groupname 添加用户组并指定gid:groupadd -g 1234 $groupname
用户组查看
所有的用户组信息都存放在/etc/group文件中
查看所有用户组:cat /etc/group 查看单个用户组信息/判断用户组是否存在:grep '$groupname' /etc/group
删除用户组
不能删除用户主组
删除用户组:groupdel $groupname
修改用户组
修改用户组uid
修改用户组uid:groupmod -u 1242 $groupname
/etc/group文件内容了解:
以:分割为4个部分 ----> 组名:组密码占位符:gid:组成员
用户管理
用户添加
添加用户:useradd $username
在创建用户时,也会在系统中创建一些文件:
/etc/passwd ---->查看账户是否存在的文件 /home/ ---->用户的家目录,每创建一个用户会在/home目录下面创建对应的家目录 /etc/shadow --->用户的密码文件,影子文件 /var/mail/ ---->系统邮箱,会在该目录下创建同名文件 /etc/group ---->同名组
查看用户
所有的用户信息都存放在/etc/passwd文件中
查看用户:cat /etc/passwd
/etc/passwd文件了解:
以:分割为7个部分 ---->用户名:密码占位符:uid:主组gid:文件描述:文件家目录:登陆shell
用户标识号--->(uid)是一个整数,系统内部用它来标识用户。通常用户标识号的取值范围是0~65535。0是超级用户root的标识号
登陆shell--->是用户登陆到界面的第一个命令,开启一个shell。
判断用户是否存在:id $username 查看现在登陆的用户:whoami / who / w
w命令详解:
第一行以空格为分隔,分别代表:
执行w命令的时间 系统是否开启 系统运行时间 当前有几个用户 cpu负载率 load average: 0.00, 0.01, 0.05 cpu负载率:一分钟内,五分钟内,十五分钟内
用户添加(带参数)
添加用户并指定uid:useradd -u 1008 $username 添加用户并指定shell:useradd -s /sbin/nologin $username 添加用户并指定附加组:useradd -G $username $groupname #会覆盖原有的附加组 添加用户并指定附加组:useradd -aG $username $groupname #不会覆盖原有的附加组 添加用户并且不创建用户家目录:useradd -M $username
删除用户
删除用户:userdel $username #此方法删除,用户的家目录以及系统邮箱的信息任会保留 删除用户并删除与用户相关的所有文件:userdel -r $username 强制删除用户,即使用户当前已登录:userdel -f $username
修改用户密码
root用户修改普通用户密码:passwd $username #不需要提供原密码 root用户修改自己的密码:passwd 普通用户修改自己的密码:passwd #需要提供原密码
用户操作
usermod -u 1231 $username 修改用户uid usermod -s /sbin/nologin $username 修改用户登陆shell usermod -aG 添加用户到附属组 usermod -g 指定主组 usermod -G 指定附加组,会覆盖其他的附加组
组成员管理
只针对已存在用户
为组添加用户:gpasswd -a $username $groupname 为组添加多个用户:gpasswd -M $username,$username1 $groupname #会覆盖组内原有成员 从组内删除用户:gpasswd -d $username $groupname