一,vi/vim
1,命令模式:
(1)光标移动
光标向左移动 | h |
光标向右移动 | i |
光标向上移动 | j |
光标向下移动 | k |
从光标位置跳到下一个单词的的开头 | w |
从光标位置跳到下一个单词的的尾部 | e |
从光标位置跳到上一个单词的的开头 | b |
注:数字+h/l/j/k:表示移动多少格(不按字节跳动)
数字+w/e/b: 跳到多少个单词
(2)翻页
向下翻页 | ctrl+f 或 pgdn |
向上翻页 | ctrl+b 或 pgup |
(3)在一行中光标移动
跳到光标所在行行首 | home 或 0 或 ^ |
跳到光标所在行行尾 | end 或 $ |
注:^在跳到行首时会略过首行空格,home和0不会。
(4)在行间光标移动
光标跳到首行 | gg |
光标跳到尾行 | shift+g |
光标跳到指定行 | 行号+gg |
注:生成行号—: set nu
去掉行号—: set nonu
(5)删除
删除一整行 | dd |
删除从当前行开始后的几行 | 数字+dd |
删除光标所在的字符 | x 或 delete |
删除光标所在行光标后的字符 | D 或 d+$ |
删除光标所在行光标前的字符 | d+^ |
(6)复制
复制光标所在行 | yy |
复制光标及光标以下的几行 | 数字+yy |
(7)粘贴
粘贴在光标所在行的下一行 | p |
粘贴在光标所在行的上一行 | P |
(8)查找
光标所在位置从上往下查找 | / 要查找的内容 |
光标所在位置从下往上查找 | ? 要查找的内容 |
(9)替换
替换光标所在字符 | r |
替换所有一样的字符 | R |
(10)撤销
撤销一次操作 | u |
撤销多次操作 | 数字 u |
(11)恢复
恢复上一次的操作 | ctrl+r |
2,编辑模式
(1)i光标前,I光标所在行首
(2)a光标后,A光标所在行最后
(3)o光标所在行下一行,O光标所在行上一行
3,末行模式
(1):e /文件路径 /文件名 打开一个新文件编辑(如::e/root/test)
(2):r /文件路径 /文件名 读入一个文件内容(如::r /root/test)
(3):s /old/new/ 替换光标所在行第一个匹配的字段
:s /old/new/g 替换光标所在行所有的字段
行号1,行号2 s/old/new/ 指定行间所在行的第一个匹配的字段
行号1,行号2 s/old/new/ g 指定行间所在行的所有字段
% s/old/new/ 替换全文所有行的第一个匹配的字段
% s/old/new/g 替换全文所在行的所有字段
% s/old/new/gc C:提示用户是否替换
% s/old/new/gci i:忽略大小写
(4):w /文件路径/文件名(文件不存在创建,文件存在加!强制执行,文件被覆盖)
(5):!+shell命令 在文档中执行shell命令。
4,打开文件
(1)vim + 行号 文件名 打开文件的第几行
(2)vim + /关键字 文件名 打开文件关于关键字的
5,关闭文件
ZZ,命令模式关闭文件
二,压缩和解压缩
1,zip和unzip(原文件存在)
(1)zip
<1>,zip 压缩文件名 要被压缩的文件名(压缩后源文件保留)
[root@demo3 ~]# zip test.zip test
<2>,zip -m 文件1.zip 文件2 把文件2添加到文件1.zip
[root@demo3 ~]# zip -m test.zip test1
<3>,zip -d 文件1.zip 文件2 把test2从test1.zip删除
<4>,zip test1.zip *.txt -x test10.txt 除test10外,将所有.txt压缩
<5>,zip -r /dir递归压缩
(2)unzip
<1>,unzip 压缩文件名
<2>,unzip 文件.zip -d 位置 解压目录
<3>,unzip -v 文件.zip 不解压,查看压缩内容
2,gzip和gunzip
(1)gzip
<1>,gzip 被压缩的文件名,压缩后源文件不保留
[root@demo3 ~]# gzip file
<2>,gzip -c 被压缩文件 > 被压缩文件.gz 压缩保留源文件
<3>,gzip -r 目录 压缩了目录下的所有内容
[root@demo3 ~]# gzip -r test
(2)gunzip
<1>,gunzip 文件.gz 解压
<2>,gunzip -c 文件.gz >地址 解压到指定地址,并保留源文件
[root@demo3 ~]# gunzip -c messages.gz > /root/file
<3>,zless 文件.gz 不解压查看
[root@demo3 ~]# zless file.gz
注:gunzip===gzip -d
3,bzip2和bunzip2
(1)bzip2
<1>,bzip2 被解压的文件名,压缩后源文件不保留
[root@demo3 ~]# bzip2 file
<2>,bzip2 -c 文件> 文件.bz2 压缩保留源文件
(2)bunzip2
<1>,bunzip2 文件.bz2 解压
<2>,bzcat 文件.bz2 不解压查看
[root@demo3 ~]# bzcat file.bz2
注:bunzip ====bzip -d
4,xz和unxz
(1)xz(在使用前要先安装——yum install xz)
<1>,xz 被解压的文件名,压缩后源文件不保留
<2>,xz 目录/* 压缩目录下的文件
[root@demo3 ~]# xz test/*
(2)unxz
<1>,unxz 文件.xz 解压文件
<2>,xz -d 文件.xz
<3>,xz -d 目录/*
<4>,xzcat 文件.xz 查看压缩后的文件内容
[root@demo3 ~]# xzcat file.xz
注:unxz=====xz -d
练习:完成以下任务
1、新建系统组mariadb, 新建系统用户mariadb, 属于mariadb组,要求其没有家目录,且shell为/sbin/nologin;尝试root切换至用户,查看其命令提示符;
2、新建GID为5000的组nebulaedu,新建用户gentoo,要求其家目录为/users/gentoo,密码同用户名;
3、新建用户fedora,其家目录为/users/fedora,密码同用户名;
4、新建用户www, 其家目录为/users/www;删除www用户,但保留其家目录;
5、为用户gentoo和fedora新增附加组nebulaedu;
6、复制目录/var/log至/tmp/目录,修改/tmp/log及其内部的所有文件的属组为nebulaedu,并让属组对目录本身拥有写权限
1, [root@demo3 ~]# groupadd -r mariadb
[root@demo3 ~]# useradd -r -M -g mariadb mariadb
[root@demo3 ~]# usermod -s /sbin/nologin mariadb
[root@demo3 ~]# su mariadb
This account is currently not available.(切换不进去)
2, [root@demo3 ~]# groupadd -g 5000 nebulaedu
[root@demo3 ~]# useradd -d /users/gentoo gentoo
[root@demo3 ~]# passwd gentoo
3, [root@demo3 ~]# useradd -d /users/fedora fedora
[root@demo3 ~]# passwd fedora
4, [root@demo3 ~]# useradd -d /users/www www
[root@demo3 ~]# userdel www
5, [root@demo3 ~]# usermod -G nebulaedu gentoo
[root@demo3 ~]# usermod -G nebulaedu fedora
6, [root@demo3 ~]# cp -r /var/log /tmp
[root@demo3 tmp]# chown -R :nebulaedu /tmp/log
[root@demo3 tmp]# chmod -R g+rwx /tmp/log
研发部开发人员David和Peter属于组A,行政部人员Jack和Mike属于组B;
1.建立目录“/project_a”,该目录里面的文件只能由研发部开发人员读取、增加、删除、修改以及执行,其他用
户不能对该目录进行任何的访问操作;并要求在此目录下创建的文件研发组内成员可以互相访问
2.建立目录“/project_b”,该目录里面的文件只能由行政部人员读取、增加、删除、修改以及执行,其他用户不
能对该目录进行任何的访问操作;要求在此目录下创建的文件行政部人员只能删除自己的文件,不得删除其他人员文件
1, [root@demo3 tmp]# groupadd A
[root@demo3 ~]# mkdir /project_a
[root@demo3 ~]# chown :A /project_a
[root@demo3 ~]# chmod 770 /project_a
2, [root@demo3 ~]# mkdir /project_b
[root@demo3 ~]# groupadd B
[root@demo3 ~]# chown :B /project_b
[root@demo3 ~]# chmod 770 /project_b
[root@demo3 ~]# chmod 1770 /project_b