linux文件操作学习2

前言:

前面学习了linux文件操作的基础,主要是整体的认识了linux操作系统的目录结构和功能以及创建、查看、复制、剪切、目录或文件,接下来将更深入的学习文件的操作主要包括用户的管理,文件的查找。

文件的权限修改

[root@xianzan dir]# ls
[root@xianzan dir]# touch test.txt
[root@xianzan dir]# ll test.txt
-rw-r--r--. 1 root root 0 1月  13 10:19 test.txt
预备知识:

-rw-r--r--:

(-)为文件的属性:

d:表示目录;

-:表示文件;

b:块设备表示为装置文件中可供存储的接口设备;

c:字符设备,表示为装置文件中的串行设备,如键盘,鼠标;

s:表示该文件存放socket信息的,一般给process之前用来进行network socket存取通信使用的档案;

p:表示数据输送问价(FIFO,pipe),它的主要目的是为了解决多个程序同时存取一个文件时造成的错误。

后面9位(bit):

为文件的属性,每三位分为一组,分别为用户所有者、用户组、其他用户组的权限,其中他们权限的顺序都为:rwx,r(4)可读,w(2)可写,x(1)可执行。文件的最高权限为7(r+w+x),其他权限:6(r+w)、5(r+x)、3(w+x)。

补充:

Linux中I/O设备分为两类:字符设备块设备。两种设备本身没有严格限制,但是,基于不同的功能进行了分类。
(1) 字符设备:提供连续的数据流,应用程序可以顺序读取,通常不支持随机存取。相反,此类设备支持按字节/字符来读写数据。举例来说,键盘、串口、调制解调器都是典型的字符设备。
(2) 块设备:应用程序可以随机访问设备数据,程序可自行确定读取数据的位置。硬盘、软盘、CD-ROM驱动器和闪存都是典型的块设备,应用程序可以寻址磁盘上的任何位置,并由此读取数据。此外,数据的读写只能以块(通常是512B)的倍数进行。与字符设备不同,块设备并不支持基于字符的寻址。

总结一下,这两种类型的设备的根本区别在于它们是否可以被随机访问。字符设备只能顺序读取,块设备可以随机读取

1.chmod命令:

改变文件的权限

[root@xianzan dir]# chmod a+x test.txt
[root@xianzan dir]# ll test.txt 
-rwxr-xr-x. 1 root root 0 1月  13 10:19 test.txt
a+x表示所有的用户都加可执行的权限

[root@xianzan dir]# chmod u-x test.txt 
[root@xianzan dir]# ll test.txt 
-rw-r-xr-x. 1 root root 0 1月  13 10:19 test.txt
u-x表示文件的所有者去掉可执行的权限

[root@xianzan dir]# chmod g-r test.txt 
[root@xianzan dir]# ll test.txt 
-rw---xr-x. 1 root root 0 1月  13 10:19 test.txt
g-r表示文件的用户组去掉可读权限
[root@xianzan dir]# chmod o-r test.txt 
[root@xianzan dir]# ll test.txt 
-rw---x--x. 1 root root 0 1月  13 10:19 test.txt
o-r表示文件的其他用户组去掉刻度的权限
[root@xianzan dir]# chmod 777 test.txt 
[root@xianzan dir]# ll test.txt 
-rwxrwxrwx. 1 root root 0 1月  13 10:19 test.txt
777表示所用户、用户组,其他用户组的文件权限都为可读、可写、可执行。
其他权限:6(r+w)、5(r+x)、3(w+x)
如果想把文件夹下的所有的文件都改为相同的文件属性,包含文件夹在+R:

[root@xianzan ~]# chmod -R 666 dir
[root@xianzan ~]# ll dir
总用量 0
-rw-rw-rw-. 1 root root 0 1月  13 10:19 test.txt
[root@xianzan ~]# cd dir
[root@xianzan dir]# ll test.txt 
-rw-rw-rw-. 1 root root 0 1月  13 10:19 test.txt

2.添加用户和用户组:

预备知识:

在linux中,添加用户和用户组时,必须具备或获取root的权限。 此外 用户帐号,用户密码,用户组信息和用户组密码均是存放在不同的配置文件中的。所创建的用户帐号和其相关信息(密码除外)均是存放在/etc/passwd配置文件中。由于所有用户对passwd文件均有读取的权限,因此密码信息并未保存在该文件中,而是保存在/etc/shadow的配置文件中(主要的文件位置一定要记住,要记住,要记住)。

添加用户组:

[root@xianzan dir]# groupadd train
[root@xianzan dir]# tail /etc/group      //查看用用户组的信息
slocate:x:21:
xianzan:x:500:
train:x:501:

root@xianzan dir]# useradd user1
[root@xianzan dir]# tail -2 /etc/group   //tail -2 查看到时1 2行
train:x:501:
user1:x:502:
[root@xianzan dir]# tail -1 /etc/passwd   
user1:x:501:502::/home/user1:/bin/bash

创建用户的同时添加到用户组:

[root@xianzan dir]# useradd -g train user2
[root@xianzan dir]# tail -1 /etc/passwd
user2:x:502:501::/home/user2:/bin/bash
此外用户组的密码存放在/etc/gshadow

设置用户的密码:

[root@xianzan dir]# passwd user1
[root@xianzan dir]# tail -2 /etc/shadow
user1:$6$2OZXWG7J$6yJcmY79LMSMwpxtULxej9wGZUjPSTsuS/sMpQvmf0lCDzVGv7vGbhuYttUq0hATsS36i4IEqmFdYdLQveGMH.:16813:0:99999:7:::
user2:!!:16813:0:99999:7:::
密码是通过算法加密过
[root@xianzan dir]# passwd       //更改当前用户的密码


删除用户:

[root@xianzan dir]# userdel -r user2    //-r 删除用户登入目录以及目录中所有文件 若无-r 仅删除账号,不删除文件

删除组:

[root@xianzan dir]# groupdel train

3.sudo命令:

对于系统的管理我们必须使用超级用户root,如添加用户,修改网络,修改系统配
置等;而如果我们使用root帐号做事又很危险,如不小心输入下面命令:

[root@xianzan dir]# rm -rf /usr

当我们使用普通帐号登录时,只是偶尔有个别命令需要用root权限来执行,这时我们可以在该命令的前面加上sudo即可。当然,这需要使用root用户来配置/etc/sudoers文件,添

加该用户的支持

[user1@xianzan dir]$ sudo vim /etc/sudoers




4.chown命令:

用来修改文件的所有者和所属组,如果需要把文件夹下的所有文件都修改则加上-R参数

[user1@xianzan ~]$ touch txt
[user1@xianzan ~]$ ll txt
-rw-rw-r--. 1 user1 user1 0 1月  13 16:59 txt
[user1@xianzan ~]$ sudo groupadd group1             //创建用户组
[user1@xianzan ~]$ sudo useradd -g group1 user2     //创建用户并且添加用户组
[user1@xianzan ~]$ sudo chown user2 txt             //修改文件的所有者
[user1@xianzan ~]$ ll txt
-rw-rw-r--. 1 user2 user1 0 1月  13 16:59 txt
[user1@xianzan ~]$ sudo chown user2.group1 txt      //修改文件的用户组
[user1@xianzan ~]$ ll txt
-rw-rw-r--. 1 user2 group1 0 1月  13 16:59 txt

命令的查找:

[user1@xianzan ~]$ whereis vim
vim: /usr/bin/vim /usr/share/vim /usr/share/man/man1/vim.1.gz
[user1@xianzan ~]$ which vim
/usr/bin/vim

文件的查找:

locate命令从系统的数据库的目录中查找文件,而sudo updatedb建立整个系统目录文件的数据库与locate命令配合

[user1@xianzan ~]$ sudo updatedb
[user1@xianzan ~]$ locate ifconfig
/sbin/ifconfig
/usr/sbin/pifconfig
/usr/share/man/de/man8/ifconfig.8.gz
/usr/share/man/fr/man8/ifconfig.8.gz
/usr/share/man/man8/ifconfig.8.gz
/usr/share/man/man8/pifconfig.8.gz
/usr/share/man/pt/man8/ifconfig.8.gz

find命令:

可以方便查找,可以加路径查找

命令的格式:find [路径] [选项] [动作]
find /home/user1/ -iname "*.c" -exec rm -rf {} \;

[user1@xianzan ~]$ find -name hello.c
./hello.c
[user1@xianzan ~]$ touch hello.o goodbye.o
[user1@xianzan ~]$ find /home/user1/ -iname "*.c"
/home/user1/hello.c
/home/user1/good.c
[user1@xianzan ~]$ find -iname "*.o" -exec rm -rf {} \;
[user1@xianzan ~]$ ls
dir  good.c  hello.c  txt
文件内容查找:

grep命令:

grep的格式:grep [选项][文件名]

[user1@xianzan ~]$ grep user1 /etc/passwd
user1:x:501:502::/home/user1:/bin/bash
[user1@xianzan ~]$ grep -n user1 /etc/passwd
39:user1:x:501:502::/home/user1:/bin/bash
[user1@xianzan ~]$ sudo grep -v "#" /etc/inittab   //系统开机的级别
id:5:initdefault:





  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值