Linux基础命令基本使用(gzip、bzip2、zip、unzip、tar、scp、rsync、chmod、chown、setfcal、chattr)

Linux基础命令基本使用(gzip、bzip2、zip、unzip、tar、scp、rsync、chmod、chown、setfcal、chattr)

环境:Server1(172.20.26.167),Server2(172.20.26.198)

操作系统:CentOS 7.6

登录172.20.26.167服务器,在boot目录下,使用dd命令 创建一个解压缩文件jfedu,方便实验

dd if=/dev/zero of=jfedu bs=1M count=100

1、gzip 压缩命令

(1)gzip jfedu 压缩jfedu100M的文件,压缩后文件jfedu.gz大小为100k,并删除源文件。

(2)使用gzip -d 解压缩jfedu.gz 文件,并删除源压缩包文件jfedu.gz

(使用gunzip 解压缩jfedu.gz文件,并删除源压缩包文件jfedu.gz 效果是一样的)

(3)如果压缩后要保留源文件jfedu,使用gzip -c  把文件重定向到压缩文件里,命令如下:

gzip -c jfedu > jfedu.gz

(4)压缩目录

  使用mkdir 创建一个文件夹,把一些文件放到这个文件夹里

mkdir wordpress 创建worddpress 文件夹

然后把fstab 和passwd 文件拷贝到worddpress 文件夹里

cp /etc/fstab wordpress

cp /etc/passwd wordpress

(5)将wordpress文件夹下的文件(fstab、passwd)递归压缩,删除源文件,而不是把wordpress这个文件夹压缩,

gzip -r wordpress/

ll wordpress/

(6)解压缩:将wordpress文件夹下的文件(fstab.gz、passwd.gz)递归解压缩,删除源压缩文件(fstab.gz、passwd.gz)

gzip -dr wordpress/

ll wordpress/

2、bzip2 压缩

(1) bzip2 jfedu   用bzip2 命令将jfedu文件压缩,压缩力度比gzip大,把100M的文件压缩成100字节的文件

(2)bzip2 -k jfedu  压缩文件jfedu并保留源文件jfedu

(3)bzip2解压缩

bzip2 -d jfedu.bz2  解压jfedu.bz2压缩文件,并删除源压缩文件jfedu.bz2

3、zip 压缩命令:可以压缩目录,并且不删除源文件

格式: zip 压缩后的文件名 要压缩的文件名

zip jfedu.zip jfedu

将wordpress 目录压缩成wordpress.zip文件,源文件保留:

zip -r wordpress.zip wordpress/  

移除源文件: -m(move)

zip -rm wordpress.zip wordpress/    

4、unzip解压,不删除源压缩文件

   unzip  jfedu.zip

5、tar命令

  是归档工具,用来打包和备份;

打包是指将一大堆文件或目录变成一个总的文件;

压缩则是将一个大的文件通过一些压缩算法变成一个小文件。

格式:tar -cf 归档后的文件名 要归档的文件1 要归档的文件2

例如:

tar -cf  j_w.tar jfedu wordpress.zip  将文件jfedu wordpress.zip 打包成j_w.tar文件

再用gzip 命令对j_w.tar包进行压缩

gzip j_w.tar

其实可以用一条命令完成打包和压缩

tar -czf j_w.tar.gz jfedu wordpress.zip

tar xf j_w.tar.gz  解压缩j_w.tar.gz文件

6、scp 命令

scp是用加密的方式在本地主机和远程主机之间复制文件。( cp + ssh)

例如:将jfedu.gz 文件复制到远程服务器172.20.26.198的tmp目录下

scp jfedu.gz 172.20.26.198:/tmp/

或者

scp jfedu.gz root@172.20.26.198:/tmp/

到172.20.26.198服务器上查阅jfedu.gz文件

复制目录

scp -r wordpress root@172.20.26.198:/tmp/

到172.20.26.198服务器上查阅wordpress文件下是否有 fstab、passwd 文件

扩展:

如果是要禁止所有用户(包括root)都不能使用scp命令

最简单的办法是chmod  000 /usr/bin/scp

也可以参考下图例子,vi /etc/sudoers在sudoers 里添加 !/usr/bin/scp

这些都是禁止运行的命令,照着添加其他命令即可。

7、rsync命令

rsync是远程数据同步工具,它传送两个文件的不同部分,而不是每次都整份传

送,因此速度相当快。

需要注意:本地与远程服务器都需要安装好rsync软件包。

将jfedu 文件同步到tmp 目录下:

rsync -av jfedu /tmp/

stat /tmp/jfedu 查看文件的状态

同步wordpress目录的文件到tmp目录下,并且tmp里的文件与wordpress里的文件一致

rsync -av --delete wordpress/ 172.20.26.198:/tmp/  同步的文件的时间属性一致。

本机(172.20.26.167)wordpress 目录下的fstab、passwd

172.20.26.198服务器上的tmp目录下的fstab、passwd

同步wordpress目录到172.20.26.198的tmp目录下,要注意的是,wordpress 后面没有/,否则只同步目录的文件而不同步该目录

rsync -av wordpress 172.20.26.198:/tmp/ 

 到172.20.26.198服务器上查看wordpress文件的同步情况,连同wordpress目录及目录下的文件都已同步的tmp下

这要注意与scp 命令相区别,scp 加不加/都是把目录及目录下的文件都同步过去

scp -r wordpress/ 172.20.26.198:/tmp/  与scp -r wordpress 172.20.26.198:/tmp/ 是一样的

scp -r wordpress/ 172.20.26.198:/tmp/

172.20.26.198服务器上:

scp -r wordpress 172.20.26.198:/tmp/

172.20.26.198服务器上:

rsync 更多的帮助内容,使用rsync --help 查看

8、chmod命令 :变更文件或目录的权限

   u 用户user,文件或目录的所有者。

g 用户组group,文件或目录所属群组

o 其它用户others

a 所有用户all,系统默认使用此项

+ 添加某些权限

- 取消某些权限

= 设置文件的权限为给定的权限

r 表示可读权限

w 表示可写权限

x 表示可执行权限

 文件准备:

mkdir -p /data/  创建data目录

cp /etc/fstab . 将fstab 文件拷贝到data目录下

cd /data  进入data目录

ll -h  即可看到fstab 前面10个信息,第一个-代表fstab是个文件,后面9个表示文件属性,每三个分为一组,rw-代表用户的权限,中间的r--代表组的权限,后面的r--代表其他人的权限,第一个root 表示fstab文件的所有者,第二个root表示fstab文件的属组

其他用户没有写的权限

只有只读权限,不能写入,q!退出

可以对其他人赋予写的权限即可

  1. 对普通文件授权:

chmod o+w fstab  或者chmod o=rw fstab  将其他人赋予fstab文件写的权限

jfedu2 用户也可以有写的权限,如下图:

chmod o-w fstab  或者 chmod o=r fstab  将其他人赋予fstab文件只读的权限

chmod a+x fstab  给所有人添加可执行权限

chmod a-x fstab  去掉所有人的可执行权限

  1. 对目录进行授权,R表示递归

chmod -R o+w jfedu/  递归赋予其他人的写权限

chmod -R o-w jfedu/   取消其他人写的权限

将目录权限设置为其他用户可写,这时普通用户是可以进入到目录中任意删除,修改文件名(即使不是自己的文件),对文件的其他用户权限为不可写的文件也可以强制保存,这种操作很危险。

父目录其他用户没有可写权限,其下子文件只有可写才有写入权限,但不具备删除,修改文件名权限。

  1. 设置权限suid和sgid,使用权限组合“u+s”设置文件的用户的ID位,使文件在执行阶段具有文件所有者的权限;“g+s” 设置组ID位,任何用户在此目录下创建的文件都具有和该目录所属的组相同的组。

例如netstat -nltp 命令查看端口状态

普通用户无法查到PID/Program name 的信息

我们可以查到netstat 的路径以及所有者

which netstat

ll /usr/bin/netstat

chmod u+s /usr/bin/netstat  让jfedu2用户以root身份来执行netstat命令

在到其他用户jfedu2 中执行netstat –nltp ,即可查看到PID/Program name 的信息

chmod g+s /data/   root 添加/data/ 的g+s权限

chmod o+w /data/  赋予其他人可写权限

data 下其他用户创建的文件passwd也具有root 属组的权限

  1. 设置t权限:对目录设置特殊权限,用户只能删除自己的文件。

chmod o+w,o+t /data/

/tmp 目录即是这样的权限的目录,大家可以使用,也只能删除自己的文件,不能删除别人的文件

9、chown命令

  改变fstab的所有者,让jfedu用户也能写,还能保留其他人还是制只读权限:

chown jfedu fstab

Fstab的所有者已经是Jfedu用户,并已有写的权限

也可以将fstab的所有者和属组都改为jfedu

chown jfedu:jfedu fstab  或者 chown jfedu. fstab

再将fstab的所有者和属组都改为root

chown root. fstab

递归授权,将jfedu目录里所有文件的所有者和属组都改为root

10、setfcal命令

fstab 文件除了root 用户有可读写权限外,jfedu也需要可读写权限

setfacl -m u:jfedu:rw fstab   设置添加fstab的控制列表

getfacl fstab   查看控制列表信息

jfedu 用户拥有可读写的权限

而jfedu2用户仍然没有写权限

setfacl -m u:jfedu:- fstab   设置取消jfedu用户对fstab的控制

setfacl -b fstab  取消所有的设置

批量修改acl规则:通过acl.txt 文件提前将用户的权限写好

setfacl -M acl.txt fstab

getfacl fstab

setfacl -b fstab  取消所有

临时降低权限

setfacl -m mask::r acl.txt

11、chattr命令

chattr +a passwd   修改passwd文件的属性

lsattr passwd 查看

chattr -a passwd  取消修改passwd文件的属性

chattr +i passwd  完全限制系统中某个关键文件(如:passwd),不能被修改,删除

lsattr passwd  查看

chattr -i passwd  取消锁定

也作用于目录

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lqcbj_IT老混混

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值