vim文本编辑器,Linux常见压缩工具

一、vi,vim编辑器

vi编辑器是所有Unix及Linux系统下标准的编辑器,所有的Unix Like 系统都会内建 vi 文本编辑器,其他的文本编辑器则不一定会存在,因此一定要熟悉vi编辑器,vim是升级版的vi,它具有语法着色功能。
vi ===> vim,以下是对vim的详细介绍,一共分为三种模式:命令模式、输入模式、末行模式
在这里插入图片描述
1.1 命令模式

光标移动
h:左
l:右
j:下
k:上
数字 +h/l/j/k :移动多少格

w :跳到下一个单词的开头
e: 跳到下一个单词的末尾
b: 跳到上一个单词的开头
数字 + w/e/b :跳多少个单词

PgDn 、CTRL + F 向下翻页
PgUp、CTRL + B 向上翻页

  • 在一行中
    行首:home,0,^ ( 0,home,调到最前面, ^,略过首行空格 )
    行尾:end,$

  • 在行间
    gg :跳到首行
    Shift + g 跳到尾行
    :set nu(设置行号)
    行号 + gg 跳到指定行

删除
x,delete 删除光标所在的字符
dd 删除此行
数字 + dd 删除当前行开始后的几行
行间之间的删除 光标之后 D,d +$
光标之前 d + ^

复制
yy 复制光标所在行
数字 + yy 复制光标及光标一下的几行

粘贴
p 粘贴到下面
P 粘贴到上面

查找
/要查找的内容 光标所在位置从上到下
?要查找的内容 光标所在位置从下到上

替换
r : 替换光标所在字符
R:整体替换字符 (ESC退出)

撤销
u:撤销一次操作
数字u:撤下多次操作
Ctrl+r :重复上一次操作

可视化
v:按照字符选择
V:安装矩形选择,(选一行)
(补充)ctrl +v (安装字符选,可以上下左右调整所选区域大小)

1.2 命令模式 ------>编辑模式

i/I : i 光标前 ,I行首
a/A :a 光标后,A行尾
o/O :o 光标下一行,O光标上一行

1.3 末行模式

:wq(保存并退出)
:w(保存)
: w /文件路径/文件名 (另存为其他文件)

:e /文件路径/文件名 打开一个新的文件进行编辑

:r /文件路径/文件名 读入一个文件内容
(:r /etc/passwd)

:s /old/new/ 将当前行中查找到第一个字符“old”替换为“new”
:s /old/now/g 将当前行中查找到的所有“old”字符串替换为“new”
:行号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:忽略大小写)

:! + shell命令 在文档中执行shell命令。

1.4 打开文件

vim
vim + 行号
vim +/关键字
上次文件保存时光标所在位置

1.5关闭文件
:q 退出
:ZZ 命令模式关闭文件

.vimrc 配置在用户的家目录下,/home/user1/
set nu
set ai
/etc/vimrc 配置全局

二、压缩与解压缩

目前我们使用的计算机系统是使用bytes单位计量的,但是实际上,计算机中最小的计量单位是bits,1 byte = 8 bits,记录一个数字1的时候是如何来记录的?一个空格代表一个bit,1byte就是8个空格子,当我们在存放数字1的时候,根据二级制计数,在这里存放的是00000001,7个0一个1,实际上前面7个0都是空的,但是由于要满足我们操作系统的存取方式,必须以8位为单位存储,所会造成有一些空间并没有填满。压缩就是将这些没有使用到的空间丢出来,让文件的占用空间变小,这就是压
缩技术。
解压缩技术就是将压缩完的数据还原成未压缩的状态。
压缩比就是指压缩后与压缩前的文件所占用磁盘空间的大小比值。
在这里插入图片描述
2.1 zip、unzip

zip命令:
zip是个使用广泛的压缩程序,文件经它压缩后会另外产生具有".zip"扩展名 的压缩文件
zip 压缩文件名(test.zip) 要被压缩的文件名字
zip -m test1.zip test2.txt 把test2 添加到test1.zip
zip -d test1.zip test2.txt 把test2从test1.zip删除掉
zip test1.zip *.txt -x test10.txt 除test10以外,将所有。txt的压缩
zip -r /dir 递归压缩

unzip命令:
unzip为.zip压缩文件的解压缩程序
unzip test1.zip
unzip test1.zip -d /压缩目录
unzip -v test1.zip 不解压,查看压缩内容。

2.2 gzip、gunzip

gzip命令用来压缩文件。gzip是个使用广泛的压缩程序,文件经它压缩过后,其名称后面会多处“.gz”扩展名。
gzip是在Linux系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用。gzip不仅可以用来压缩大的、较少使用的文件以节省磁盘空间,还可以和tar命令一起构成Linux操作系统中比较流行的压缩文件格式。据统计,gzip命令对文本文件有60%~70%的压缩率。

gzip 被压缩的文件名 ,压缩后,源文件不保留
gzip -c > test.txt test.txt.gz 压缩,保留源文件
gzip -r 目录 压缩了目录下的所有内容。

gunzip test.txt.gz
gunzip -c test.txt.gz > /root/test.txt 解压缩到特定目录,并且保留源文件
gunzip === gzip -d

不解压查看
[root@localhost test1]# zless test5.txt.gz

2.3 bzip2,bunzip2

bzip2命令用于创建和管理(包括解压缩)“.bz2”格式的压缩包

bzip2 被压缩的文件名 ,压缩后,源文件不保留
bzip2 -c test.txt > test.txt.bz2 压缩,保留源文件
bunzip2 test.txt.bz2
bunzip2 === bzip2 -d
不解压查看
[root@localhost test1]# bzcat test5.txt.bz2

2.4 xz、unxz

xz 被压缩的文件名 ,(压缩后源文件不保留)
xz dir/*

unxz test.txt.xz
xz -d test.txt.xz
xz -d dir/*

xzcat test.txt.xz 查看压缩后的文件内容

三、用户与用户组习题

1、新建系统组mariadb, 新建系统用户mariadb, 属于mariadb组,要求其没有家目录,且shell为/sbin/nologin;尝试root切换至用户,查看其命令提示符;

[root@node1 ~]# groupadd -r mariadb
[root@node1 ~]# useradd -g mariadb -s /sbin/nologin -M mariadb
[root@node1 ~]# su - mariadb
su: warning: cannot change directory to /home/mariadb: No such file or directory
This account is currently not available.

2、新建GID为5000的组nebulaedu,新建用户gentoo,要求其家目录为/users/gentoo,密码同用户名

[root@node1 ~]# groupadd -g 5000 nebulaedu
[root@node1 ~]# mkdir /users/
[root@node1 ~]# useradd -d /users/gentoo gentoo
[root@node1 ~]# passwd gentoo
Changing password for user gentoo.
New password:
BAD PASSWORD: it is based on a dictionary word
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.

3、新建用户fedora,其家目录为/users/fedora,密码同用户名;

[root@node1 ~]# useradd -d /users/fedora fedora
[root@node1 ~]# passwd fedora
Changing password for user fedora.
New password:
BAD PASSWORD: it is based on a dictionary word
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.

4、新建用户www, 其家目录为/users/www;删除www用户,但保留其家目录;

[root@node1 ~]# useradd -d /users/www www
[root@node1 ~]# userdel www
[root@node1 ~]# id www
id: www: No such user
[root@node1 ~]# ll -d /users/www
drwx------. 2 503 503 4096 Jul 31 18:27 /users/www

5、为用户gentoo和fedora新增附加组nebulaedu;

[root@node1 ~]# usermod -G nebulaedu gentoo
[root@node1 ~]# usermod -G nebulaedu fedora
[root@node1 ~]# id gentoo
uid=501(gentoo) gid=501(gentoo) groups=501(gentoo),5000(nebulaedu)
[root@node1 ~]# id fedora
uid=502(fedora) gid=502(fedora) groups=502(fedora),5000(nebulaedu)

6、复制目录/var/log至/tmp/目录,修改/tmp/log及其内部的所有文件的属组为nebulaedu,并让属组对目录本身拥有写权限

[root@node1 ~]# cp -r /var/log /tmp/
[root@node1 ~]# ll -d /tmp/log
drwxr-xr-x. 3 root root 4096 Jul 31 18:42 /tmp/log
[root@node1 ~]# chown -R :nebulaedu /tmp/log
[root@node1 ~]# ll /tmp/log
total 1192
-rw-------. 1 root nebulaedu 2368 Jul 31 18:42 anaconda.ifcfg.log
-rw-------. 1 root nebulaedu 22108 Jul 31 18:42 anaconda.log
-rw-------. 1 root nebulaedu 31756 Jul 31 18:42 anaconda.program.log
-rw-------. 1 root nebulaedu 129537 Jul 31 18:42 anaconda.storage.log
-rw-------. 1 root nebulaedu 148744 Jul 31 18:42 anaconda.syslog
-rw-------. 1 root nebulaedu 26433 Jul 31 18:42 anaconda.xlog
-rw-------. 1 root nebulaedu 27507 Jul 31 18:42 anaconda.yum.log
drwxr-x—. 2 root nebulaedu 4096 Jul 31 18:42 audit
-rw-r–r--. 1 root nebulaedu 1296 Jul 31 18:42 boot.log
-rw-------. 1 root nebulaedu 0 Jul 31 18:42 btmp
-rw-------. 1 root nebulaedu 1818 Jul 31 18:42 cron
-rw-r–r--. 1 root nebulaedu 88484 Jul 31 18:42 dmesg
-rw-r–r--. 1 root nebulaedu 88484 Jul 31 18:42 dmesg.old
-rw-r–r--. 1 root nebulaedu 179655 Jul 31 18:42 dracut.log
-rw-r–r--. 1 root nebulaedu 147168 Jul 31 18:42 lastlog
-rw-------. 1 root nebulaedu 756 Jul 31 18:42 maillog
-rw-------. 1 root nebulaedu 380075 Jul 31 18:42 messages
-rw-------. 1 root nebulaedu 5342 Jul 31 18:42 secure
-rw-------. 1 root nebulaedu 0 Jul 31 18:42 spooler
-rw-------. 1 root nebulaedu 0 Jul 31 18:42 tallylog
-rw-r–r--. 1 root nebulaedu 16128 Jul 31 18:42 wtmp
-rw-------. 1 root nebulaedu 202 Jul 31 18:42 yum.log
[root@node1 ~]# chmod g+w /tmp/log
[root@node1 ~]# ll -d /tmp/log
drwxrwxr-x. 3 root nebulaedu 4096 Jul 31 18:42 /tmp/log

研发部开发人员David和Peter属于组A,行政部人员Jack和Mike属于组B;

1.建立目录“/project_a”,该目录里面的文件只能由研发部开发人员读取、增加、删除、修改以及执行,其他用户不能对该目录进行任何的访问操作;并要求在此目录下创建的文件研发组内成员可以互相访问

[root@node1 ~]# groupadd A
[root@node1 ~]# groupadd B
[root@node1 ~]# useradd -G A David
[root@node1 ~]# useradd -G A Peter
[root@node1 ~]# useradd -G B Jack
[root@node1 ~]# useradd -G B Mike
[root@node1 ~]# mkdir /project_a
[root@node1 ~]# chgrp A /project_a
[root@node1 ~]# chmod 770 /project_a

2.建立目录“/project_b”,该目录里面的文件只能由行政部人员读取、增加、删除、修改以及执行,其他用户不能对该目录进行任何的访问操作;要求在此目录下创建的文件行政部人员只能删除自己的文件,不得删除其他人员文件

[root@node1 ~]# mkdir /project_b
[root@node1 ~]# chgrp B /project_b
[root@node1 ~]# chmod 1770 /project_b

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值