zl程序教程

您现在的位置是:首页 >  系统

当前栏目

Linux学习笔记-文件处理和权限命令

2023-09-14 09:06:37 时间

文件处理命令

touch

名称:touch
所在路径:/bin/touch
执行权限:所有用户
语法:touch[文件名]
功能描述:创建空文件

[root@localhost tmp]# mkdir a
[root@localhost tmp]# touch /tmp/a/b.txt
[root@localhost tmp]# touch t.txt
[root@localhost tmp]# ls
a                 systemd-private-3a13c84be30540cf8c9aa032e5f76ba0-vmtoolsd.service-O4mYxW  yum.log
jps.txt           systemd-private-72347dcd610e454abc47df15e5885dce-vmtoolsd.service-rwgKA3
ks-script-YpfpfJ  t.txt
#如果有空格则会创建两个文件,这种情况需要用双引号引起来,不过不推荐含有空格
#的文件名
[root@localhost tmp]# touch program files
[root@localhost tmp]# ls
a        ks-script-YpfpfJ                                                          systemd-private-72347dcd610e454abc47df15e5885dce-vmtoolsd.service-rwgKA3
files    program                                                                   t.txt
jps.txt  systemd-private-3a13c84be30540cf8c9aa032e5f76ba0-vmtoolsd.service-O4mYxW  yum.log
[root@localhost tmp]#

cat

名称:cat
命令所在目录:/bin/cat
执行权限:所有用户
语法:cat[文件名]
功能描述:显示文件内容
-n显示行号

[root@localhost tmp]# cat /etc/issue
\S
Kernel \r on an \m

[root@localhost tmp]# cat -n /etc/issue
     1  \S
     2  Kernel \r on an \m
     3

tac

命令名称:tac
所在路径:/usr/bin/tac
执行权限:所有用户
语法:cat[文件名]
功能描述:显示文件内容(反向列式)


[root@localhost tmp]# tac /etc/issue

Kernel \r on an \m
\S

more

命令名称:more
所在路径:/bin/more
执行权限;所有用户
语法:more[文件名]
(空格)或f 翻页
(Enter) 换行
q或Q 退出
功能描述:分页显示文件内容。

[root@localhost tmp]# more /etc/services
# /etc/services:
# $Id: services,v 1.55 2013/04/14 ovasik Exp $
#
#内容太多,执行上述语法可以执行相应操作

less

命令名称:less
所在路径:/bin/less
执行权限;所有用户
语法:less[文件名]
功能描述:分页显示文件内容。(可向上翻页)
不仅使用more的命令,还可以使用上下箭头换行,pageup和pagedown换页
,另外输入/可以进行查找,按n查找下一处。shift+n上一处

命令名称:head
所在路径:/usr/bin/lhead
执行权限;所有用户
语法:head[文件名]
功能描述:显示文件前几行。
-n 指定行数(默认前10行)

#查看前4行。
[root@localhost tmp]# head -4 /etc/services
# /etc/services:
# $Id: services,v 1.55 2013/04/14 ovasik Exp $
#
# Network services, Internet style

tail

命令名称:tail
所在路径:/usr/bin/lhead
执行权限;所有用户
语法:tail[文件名]
功能描述:显示文件后几行。
-n 指定行数(默认后10行)
-f 动态显示文件末尾内容(适合监控日志)

链接命令

ln

名称:ln
英文原义:link
命令所在路径:/bin/ln
执行权限:所有用户
语法:ln -s [原文件][目标文件]
-s 创建软链接(不加-s是硬链接)
功能描述:生成链接文件

软链接:

[root@localhost tmp]# ln -s /etc/issue /tmp/issue.soft
[root@localhost tmp]# ls -l /etc/issue
-rw-r--r--. 2 root root 23 11月 30 2016 /etc/issue
[root@localhost tmp]# ls -l /tmp/issue.soft
lrwxrwxrwx. 1 root root 10 8月  30 21:55 /tmp/issue.soft -> /etc/issue

lrwxrwxrwx(特点:l开头,3个rw)
上面的l就是软链接的意思,后面的读写权限,并不是原文件的权限,所有的软链接的权限都这样,其特征类似windows的快捷方式。
/tmp/issue.soft -> /etc/issue
同时可知,软链接指向原文件的路径。i结点和原文件不一致。

硬链接
[root@localhost tmp]# ls -l /tmp/issue.hard
-rw-r--r--. 2 root root 23 11月 30 2016 /tmp/issue.hard

硬链接特性
:拷贝命令cp -p+同步更新
如果原文件删除了,软链接找不到文件会报错,而硬链接没有影响。i结点和原文件一致。

权限命令

chmod

名称:chmod
英文原义:change the permissions mode of a file
命令所在路径:/bin/chmod
执行权限:所有用户
语法:chmod [{ugoa}{+-=}{rwx}][文件或目录]
[mode=421][文件或目录]
-R 递归修改
功能描述:改变文件或目录权限。
u所有者 g所属组 o其他人 a所有人。
+是加权限 -是减权限。

[root@localhost tmp]# chmod g=rwx a
[root@localhost tmp]# chmod g+w,o-r a
[root@localhost tmp]# chmod u+x a

以上仅供参考,一般用下面数字的方式添加权限。
r=4(读)
w=2(写)
x=1(执行)
加在一起7
rwx rw- r--
7 6 4

[root@localhost tmp]# chmod 777 a
[root@localhost tmp]# cd a
[root@localhost a]# ls -ld
drwxrwxrwx. 2 root root 19 8月  30 21:25 .
[root@localhost a]# cd ..
[root@localhost tmp]# chmod 111 a
[root@localhost tmp]# cd a
[root@localhost a]# ls -ld
d--x--x--x. 2 root root 19 8月  30 21:25 .\

[root@localhost a]# chmod 532 /tmp/a
[root@localhost a]#
下面是递归修改,改变目录及其下面所有文件。
[root@localhost tmp]# chmod -R 777 a
[root@localhost tmp]# cd a
[root@localhost a]# ls -lh
总用量 0
-rwxrwxrwx. 1 root root 0 8月  30 22:24 b.txt

以上只是练习一般没有532这种奇葩权限。。。
上述都是针对文件的解释,如果是操作文件夹才是的rwx的含义如下:
r:可以列出目录中的内容
w:可以在目录中创建,删除文件
x:可以进入目录
对于目录的权限比较的烧脑,比如:有r权限一定要x权限,因为都能看文件了当然是已经进入目录咯,其他情况类推。

权限管理命令

chown

名称:chown
英文原义:change file ownership
命令所在路径:/bin/chown
执行权限:所有用户
语法:chown[用户][文件或目录]
功能描述:改变文件或者目录的所有者
chown cxa feiq 改变文件feiq的所有者为cxa(前提存在cxa这个用户)


[root@localhost a]# ls -lh
总用量 0
-rwxrwxrwx. 1 root root 0 8月  30 22:24 b.txt
[root@localhost a]# chown cxa b.txt
[root@localhost a]# ls -lh
总用量 0
-rwxrwxrwx. 1 cxa root 0 8月  30 22:24 b.txt

chgrp

名称:chgrp
英文原义:change file group ownership
命令所在路径:/bin/chgrp
执行权限:所有用户
语法:chgrp[用户组][文件或目录]
功能描述:改变文件或者目录的所属组

[root@localhost a]# ls -lh
总用量 0
-rwxrwxrwx. 1 cxa root 0 8月  30 22:24 b.txt
[root@localhost a]# chgrp cxa b.txt
[root@localhost a]# ls -lh
总用量 0
-rwxrwxrwx. 1 cxa cxa 0 8月  30 22:24 b.txt
#使用groupadd添加一个组dj。
[root@localhost a]# groupadd dj
[root@localhost a]# chgrp dj b.txt
[root@localhost a]# ls -lh
总用量 0
-rwxrwxrwx. 1 cxa dj 0 8月  30 22:24 b.txt

umask

名称:umask
英文原义:the user file-creation mask
命令所在路径:shell内置命令
执行权限:所有用户
语法:umask[-S]
-S 以rwx形式显示新建文件缺省权限
功能描述:显示,设置文件的缺省权限


[root@localhost a]# umask -S
u=rwx,g=rx,o=rx
[root@localhost a]# mkdir lamp
[root@localhost a]# ls -ld lamp
drwxr-xr-x. 2 root root 6 8月  30 22:42 lamp
[root@localhost a]# touch r.txt
[root@localhost a]# ls -ld r.txt
-rw-r--r--. 1 root root 0 8月  30 22:42 r.txt

根目录下执行umask

[root@localhost /]# umask
0022
0 特殊权限(后面会提)
022 --- -w- -w-
777 rwxrwxrwx
022 --- -w- -w-
--------------------
755 rwxr-xr-x 目录(这个实际是上面的逻辑与(即相同的-)算出来的)
    rw-r--r-- 文件

注意:缺省创建的文件是不能具有可执行权限的。