11-linux文件操作

文件操作

一、文件类型和文件系统
1、文件类型

软、硬连接

  • 软链接可以指向目录,而硬连接不行

ln -s source_file softlink_file:软

ln source_file softlink_file:硬

2、目录结构

在这里插入图片描述

3、Linux文件系统常用目录说明:

/: Linux系统目录树的起点。

**/root:**系统管理员(也叫超级用户)的主目录。

**/boot:**这里存放的是启动Linux时使用的一些核心文件。

**/bin:**bin是binary的缩写。这个目录存放着使用者最经常使用的命令。例如cp、ls、cat等等。

**/home:**用户的主目录,比如说有个用户叫sy,那么他的主目录就是/home/sy。注意:root用户的目录不在这里,而在/root里。

**/dev:**dev是device(设备)的缩写。这个目录下是Linux所有的外部设备,在Linux中设备也是文件,使用访问文件的方法访问设备。例如:/dev/sda代表第一个物理SCSI硬盘。

**/lib:**这个目录里存放着系统最基本的动态链接共享库,其作用类似于Windows里的.dll文件。几乎所有的应用程序都需要用到这些共享库。

**/etc:**这个目录用来存放系统管理所需要的配置文件和子目录。

**/mnt:**这个目录在刚安装好系统时是空的,系统提供这个目录的目的是让用户临时挂载别的文件系统。/usr:这是最庞大的目录,我们要用到的应用程序和文件几乎都存放在这个目录下。

**/sbin:**s就是Super User的意思,也就是说这里存放的是系统管理员使用的管理命令和管理程序。/tmp:用来存放临时文件的地方。

**/var:**这个目录中存放着那些不断在扩充着的东西,为了保持/usr的相对稳定,那些经常被修改的目录可以放在这个目录下,系统的日志文件就在/var/log目录中。

**/proc:**这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。也就是说,这个目录的内容不在硬盘上而是在内存里。

二、文件和目录管理权限
1、10字图
  • R=5 W=2 X=1

在这里插入图片描述

2、修改权限命令
  • chmod 777 filename
  • 第二种通用

在这里插入图片描述

3、修改文件所有者

在这里插入图片描述

4、修改文件所有组

在这里插入图片描述

5、修改默认权限

在这里插入图片描述

6、文件隐藏属性

在这里插入图片描述

7、文件的三种特殊权限

1)**SUID:**Set UID (只对二进制程序有效,对shell script无效)

例如:ls –l /usr/bin/passwd

注意:当用户执行passwd命令的时候,需要修改/etc/shadow文件。

2)**SGID:**Set GID

例如:ls –l /usr/bin/locate

注意:当用户执行locate命令的时候,需要读取/var/lib/mlocate/mlocate.db文件。

3)**SBIT:**Sticky Bit (只对目录有效)

例如:ls –dl /tmp (当用户在该目录下创建文件或目录时,仅有自己与root才有权利删除该文件)

三、文件归档与压缩
1、常用命令

在这里插入图片描述

# 压缩  会更改源文件
bzip2 dic.tar
#查看压缩效果
bzip2 tv dic.tar.bz2
#解压
bunzip2 dic.tar.bz2
2、归档tar命令

在这里插入图片描述

# 打包   打包后的文件名  要打包的文件名
tar -cvf dic.tar dic/
#解包
tar -xvf dic.tar dic/

#选择性打包
tar -cvwf dic.tar dic/
#解包
tar -xvwf dic.tar dic/
四、查找文件,比较文件
1、find
# 查找/tmp目录下名为passwd的文件
find /tmp -name "passwd"
# 查找/tmp目录下名为passwd的文件  不区分大小写
find /tmp -iname "passwd"
# 查找/tmp目录下的目录:
find /tmp -type d
# 查找/tmp目录下大于100M的文件:
find /tmp -size +100M
•查找/tmp目录下属主为keyso的文件: find /tmp -user keyso
•查找/tmp目录下属组为keyso的文件: find /tmp -group keyso
•查找/tmp目录下UID为502的文件:	find /tmp -uid 502
•查找/tmp目录下GID为502的文件: 	find /tmp -gid 502
2、comm

comm [-1,2,3] filename1 filename2

选项 描述
-1 不显示在第一个文件出现的内容;
-2 不显示在第二个文件中出现的内容;
-3 不显示同时在两个文件中都出现的内容。
2.3 参数
文件1:指定要比较的第一个有序文件;
文件2:指定要比较的第二个有序文件。

3、diff

与comm相反

五、文件描述字与重定向
1、FD < >

0:标准输入 1:标准输出 2:错误输出

2、关闭输出

&-:全部关闭

n&-:指定n号关闭

3、实操
#  把文件内容中的小写字母改为大写
#! /bin/bash
if [ -e $1 ]
then
	exec 3<&0	#输入
	exec <$1	#从位置参数1输入
	exec 4>&1	#输出
	exec >$2	#输出到位置参数2
	cat $1 | tr 'a-z' 'A-z' # 读取位置参数1中的内容转化成大写
	exec 0<&3 3<&-		# 关闭标准输入
	exec 0>&4 4>&-		# 关闭标准输出
else
	echo "error"
fi
六、实际操作

1.新建用户user1,user2,user3。

useradd  user1

useradd  user2

useradd  user3 

2.在/tmp下新建文件夹test。

 mkdir  /tmp/tset

3.查看test文件夹的权限是多少?

755 

4.修改test文件夹的权限为777。

chmod  777  /tmp/test

5.分别使用user1、user2和user3在/tmp/test下新建文件:用户名.txt

su  user1 
touch  /tmp/test/user1.txt
exit

su  user2 
touch  /tmp/test/user2.txt
exit

su  user3 

touch  /tmp/test/user3.txt

exit

6.以user1身份看能否删除user2和user3的文件?

#user1可以删除user2和user3的文件 
su  user1

rm  /tmp/test/user2.txt  /tmp/test/user3.txt

exit

7.如何保证每个用户都可以在/tmp/test中新建文件,但只能删除自己的文件而不能删除别人的文件?

# 为/tmp/下的test文件夹设置特殊权限SBIT

8.修改/tmp/test的权限为1777

su  root

chmod  /tmp/test/1777

9.验证user1、user2和user3都可以在/tmp/test下新建、修改、删除自己的文件。

# user1可以删除自己的文件
su user1 

mv  /tmp/test/user1.txt   /tmp/test/user111.txt

rm  /tmp/test/user111.txt


10.以user1身份看能否删除user2和user3的文件?

#user1不能删除user2和user3的文件
rm  /tmp/test/user2.txt  /tmp/test/user3.txt
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值