vim
vim是命令行下的文本编辑器,有三种工作模式:一般模式,编辑模式,命令行模式
vim filename 进入一般模式,在一般模式下可以进入编辑模式来编辑文本(i),进入命令行模式来保存文本退出vim(:w保存,:q退出,wq保存并退出),按esc键退出编辑模式及命令行模式进入一般模式,一般模式作为中介。
vim常见命令
1 . 编辑模式vim刚启动的时候,一般处于指令模式,可以利用以下命令进入编辑模式。
①插入模式(insert):i, I
②插入模式(append):a , A
③插入模式(open): o , O
④替换模式(replace):r, R
注意:按【Esc】键退出编辑模式,回到一般模式中。
- 一般模式下的快捷键
移动光标:h, j, k, l, H, M, L,G, 1G, nG, n, n[Enter], 0或者【Home】,
$或者【End】删除、复制与粘贴:x相当于【Del】,X,nx,dd,ndd,d1G,dG,d , d 0 , y y , n y y , y 1 G , y G , y 0 , y ,d0,yy,nyy,y1G,yG,y0,y ,d0,yy,nyy,y1G,yG,y0,y,
p为将已复制的数据在光标下一行粘贴,
P为将已复制的数据在光标上一行粘贴
u:复原前一个操作
【Ctrl】+r:重做上一个操作
. :重复前一个操作
查找与替换:/word ?word n N
:n1,n2s/word1/word2/g
:1,$s/word1/word2/g
- 1,$s/word1/word2/gc
3 . 命令行模式下的按钮说明
:w
:w!
:q
:q!
:wq
ZZ 存盘退出
:w [filename] 另存为filename
:r [filename]
:n1,n2 w [filename]
:! Command 例如: :! ls /home
:set nu 设置行号
:set nonu 取消行号
文件救援
当在编辑文件时突然退出了终端,再打开时会有一个filename.txt.swp文件,可以恢复原来的文件,注意恢复后要删除swap文件
[zcy@localhost ~]$ ls -a
. .bash_history .cache .ICEauthority .viminfo 图片 桌面
.. .bash_logout .config .local 公共 文档
1.txt .bash_profile .esd_auth .mozilla 模板 下载
.2.txt.swp .bashrc .gnupg .ssh 视频 音乐
[zcy@localhost ~]$ vim 2.txt
[zcy@localhost ~]$ rm .2.txt.swp
[zcy@localhost ~]$ ls -a
. .bash_history .cache .ICEauthority .viminfo 图片 桌面
.. .bash_logout .config .local 公共 文档
1.txt .bash_profile .esd_auth .mozilla 模板 下载
2.txt .bashrc .gnupg .ssh 视频 音乐
[zcy@localhost ~]$ vim 2.txt
多窗口编辑
:sp 同一个文件显示在两个窗口中
:sp filename 在新窗口启动另一个文件
不同窗口切换:【Ctrl】+w+Ÿ或者【Ctrl】+w+
ni hao pnanff
~
~
~
~
~
~
~
2.txt 1,1 全部
hello!
~
~
~
~
~
~
1.txt 2,3 底端
hello!
~
~
~
~
~
~
1.txt 2,1 底端
多文件编辑
我们可以使用 vim后面同时接好几个文件来开启多文件同时编辑的功能。
:n 编辑下一个文件
:N 编辑上一个文件
:files列出目前vim 开启的所有文件
[zcy@localhost ~]$ vim 1.txt 2.txt
块选择(Visual Block)
一般模式下,光标停在要选的字符前,按下 v 键盘右移键选择字符,V 选择行,Ctrl+v选择区块
y 复制 p粘贴 d删除
用户账户和组账户
用户账户
Linux里用户账户分三类:超级账户root,UID=0;系统账户,UID 1~999;普通账户,UID 1000~65535
相关命令
1.useradd命令
格式: useradd [选项] <用户名>
功能:新建用户账号,只有超级用户才有使用此命令的权限。
选项:
-u 用户ID 指定用户UID
-g 组ID或组名 指定新用户的主组
-G 组ID或组名 指定新用户的附加组
-d 主目录 指定新用户的主目录
-s 登录shell 指定新用户使用的shell,默认为/bin/bash
-e 有效期限 指定用户的登录失效时间,例如:11/30/2012
-f 缓冲天数:设置在密码过期后多少天关闭该帐号
-c 备注 为账户加上备注
-m 默认主目录 自动创建与用户名同名目录
-n 取消建立以用户名称为名的组
-r 建立系统帐号
注意:由于新增加的用户还未设置密码,因此还不能使用该用户的帐号登录系统。
- passwd命令
格式: passwd [选项] [用户名]
功能:设置、修改用户的口令以及口令的属性
选项:
-d (delete) 删除用户的口令,则该用户账号无需口令即可登录。
-l (lock) 锁住口令。
-u (unlock) 恢复禁用用户账号。
-S (status) 显示指定用户账号的状态
注意:系统管理员可以设置所有用户的密码,普通用户只能修改自己的密码。
3.usermod命令
格式:usermod [选项] <用户名>
功能:修改用户的属性信息,只有超级用户才可以使用该命令。
选项:
-g 组ID或组名 指定新用户的主组
-G 组ID或组名 指定新用户的附加组
-d 主目录 指定新用户的主目录
-s 登录shell 指定新用户使用的shell,默认为bash
-e 有效期限 指定用户的登录失效时间
-u 用户ID 指定用户UID
-c 全名 指定用户全称
-f 缓冲天数 指定口令过期后多久将关闭此账号
-l 用户名 指定用户的新名称
-L 用户名 锁定用户密码,使密码无效
-U 用户名 解除密码锁定。
注意:usermod命令与useradd命令的区别在于 usermod命令可以修改用户名且在禁用和恢复账号功能上,命令usermod不等同于 passwd。
4.userdel命令
格式:userdel [选项] <用户名>
功能:删除指定的用户账号,只有超级用户才能使用该命令。
选项:
-r 用于删除用户的Home目录和邮件
-f 强制删除用户登录目录及目录中的所有文件
注意:正在使用系统的用户不能被删除,必须先终 止该用户的所有进程才能删除该用户。
5.成批添加用户:newusers
第一步:先建立文本文件:n_user.txt
201200824101:student:701:701:lining:/home/201200824101:/bin/bash
201200824102:student:702:702:chenmeng:/home/201200824102:/bin/bash
201200824103:student:703:703:niuliyue:/home/niuliyue:/bin/bash
201200824104:student:704:704:zhengzhenzhen:/home/zhangzhenzhen:/bin/bash
第二步:执行命令newusers n_user.txt
6.成批修改口令:chpasswd
第一步:先建立文本文件:n_uspw.txt
201200824101:824101
201200824102:824102
201200824103:824103
201200824104:824104
第二步:执行命令chpasswd<n_uspw.txt
7.其他的shell命令
1)id命令
格式:id [选项] [用户名]
功能:查看一个用户的UID和GID
选项:
-g 显示用户的主组的GID
-G 显示用户所有组的GID
-u 只显示UID
2 )whoami命令
格式:whoami
功能:用于显示当前用户的名称。
3)su命令
格式:su [-] [用户名]
功能:转换当前用户到指定的用户账号。
选项:
- 在转换当前用户的同时转换用户工作环境;
用户名 若不指定用户名则转换当前用户到 root。
用户账户管理文件包括:
1、用户账户文件:/etc/passwd
2、用户影子文件:/etc/shadow
root 用户才有权限查看修改影子文件
组账户管理
将属性相同的用户放入同一组中,便于统一管理,但不能登录计算机。
组账户管理文件包括:
组账户文件 /etc/group
[root@localhost ~]# cat /etc/group
root:x:0:
组账户文件 组名 组口令 组ID 组内用户列表
组影子文件 /etc/gshadow
[root@localhost ~]# tail -n1 /etc/gshadow
linuxgroup:!:zcy:zz
组名 组口令 组管理员 组内成员
相关命令
gpsasswd 对组内成员的操作
[zcy@localhost root]$ gpasswd
用法:gpasswd [选项] 组
选项:
-a, --add USER 向组 GROUP 中添加用户 USER
-d, --delete USER 从组 GROUP 中添加或删除用户
-h, --help 显示此帮助信息并推出
-Q, --root CHROOT_DIR 要 chroot 进的目录
-r, --delete-password remove the GROUP's password
-R, --restrict 向其成员限制访问组 GROUP
-M, --members USER,... 设置组 GROUP 的成员列表
-A, --administrators ADMIN,... 设置组的管理员列表
groupadd linuxgroup 创建组
groupmod -n newg linuxgroup 组名重命名
groupdel newg 删除组