linux文件操作学习2
2016-01-13 13:09
543 查看
前言:
前面学习了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.txta+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.txtu-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.txtg-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.txto-r表示文件的其他用户组去掉刻度的权限
[root@xianzan dir]# chmod 777 test.txt [root@xianzan dir]# ll test.txt -rwxrwxrwx. 1 root root 0 1月 13 10:19 test.txt777表示所用户、用户组,其他用户组的文件权限都为可读、可写、可执行。
其他权限: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:
相关文章推荐
- Linux 下 Sublime Text 2 破解
- 虚机下unbuntu的显示大小问题
- Linux文件权限所代表的数字
- [CUDA]关于centos如何安装cuda driver
- Linux 技巧:让进程在后台可靠运行的几种方法
- Linux相关问题
- 在linux下编译安装python3.5.1问题解决
- Linux 分区和目录解析
- Linux 分区和目录
- Linux分区
- Linux下控制(统计)文件的生成的C代码实现
- ECS Linux下解压rar格式的压缩文件
- VMware安装Centos时看不到“下一步”按钮
- Linux 端口管理
- Linux kill 杀死指定进程
- linux命令每天必学(15)之tail 命令
- centos7.1 部署环境
- centos 7 下安装pandas的小问题
- linux中断流程详解
- Linux目录结构