当前位置:   article > 正文

Linux文件权限与目录管理_列出权限非root的目录

列出权限非root的目录

目录管理

绝对路径和相对路径

绝对路径路径的全称:C:\Program Files\LGHUB\xxx.xx

比如说 LGHUB目录下的,这个xxx.xx文件,对于我们的相对配置就 /xxx.xx

cd      #切换目录命令
./      #当前目录
cd  ..  # 返回上一级目录
  • 1
  • 2
  • 3

image-20221214005950254

ls (列出目录)

参数

-a 参数: all ,  查看全部的文件,包括隐藏文件
-l 参数: 列出所有的文件,包含文件的属性和权限,没有隐藏文件
# 所有Linux参数可以组合使用
  • 1
  • 2
  • 3

image-20221214010503686

cd (切换目录)

cd 目录名 (绝对路径都是以 / 开头,相对理解对于当前目录该如何寻找 …/ …/ )

image-20221214011237364

pwd (显示当前用户所在的目录)
[root@linux /]# pwd
/
[root@linux home]# pwd
/home
[root@linux home]# cd /home/csqstudent/
[root@linux csqstudent]# pwd
/home/csqstudent
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
mkdir (创建一个目录)
[root@linux csqstudent]# mkdir test      # 创建目录
[root@linux csqstudent]# ls
test
[root@linux csqstudent]# cd test/
[root@linux test]# cd ..
[root@linux csqstudent]# ls
test
[root@linux csqstudent]# mkdir -p test/test1/test2/test3/test4    # 递归创建目录
[root@linux csqstudent]# cd test/
[root@linux test]# ls
test1
[root@linux test]# cd test1/
[root@linux test1]# ls
test2
[root@linux test1]# cd test2/
[root@linux test2]# ls
test3
[root@linux test2]# cd test3/
[root@linux test3]# ls
test4
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
touch (创建一个文件)
[root@linux home]# touch csq.txt
[root@linux home]# ls
csqstudent  csq.txt
  • 1
  • 2
  • 3
rmdir (删除空目录)

rmdir 仅能删除空的目录,如果下面存在文件,需要先删除文件,递归删除多个目录 -p 参数即可

[root@linux csqstudent]# mkdir test111
[root@linux csqstudent]# ls
test  test111
[root@linux csqstudent]# rmdir test111/
[root@linux csqstudent]# ls
test
[root@linux csqstudent]# rmdir test/test1/test2/test3/test4/
[root@linux csqstudent]# ls
test
[root@linux csqstudent]# rmdir -p test/test1/test2/test3/test4/
[root@linux csqstudent]# ls

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
cp (复制文件或者目录)

cp 原来的地方 新的地方

部分参数:

-f :为强制 (force) 的意思,若有重复或其它疑问时,不会询问使用者,而强制复制;

-p :连同档案的属性一起复制过去,而非使用预设属性;

-r :递归持续复制,用于目录的复制行为;

-v : 显示执行时的详细工作内容。

# 普通文件复制
[root@linux home]# ls
csq  csqstudent  wenjian.txt
[root@linux home]# cp wenjian.txt csqstudent  # 拷贝文件至目录
[root@linux home]# cd csqstudent/
[root@linux csqstudent]# ls
test  wenjian.txt
[root@linux csqstudent]# cd ..
[root@linux home]# cp wenjian.txt csqstudent/   # 如果文件重复,就选择覆盖(y)或者放弃(n)
cp:是否覆盖"csqstudent/wenjian.txt"? y
[root@linux home]# 

# 目录复制
[root@linux home]# mkdir iammulu     #创建目录
[root@linux home]# ls
csq  csqstudent  iammulu  wenjian.txt
[root@linux home]# cp iammulu csqstudent    # 移动目录发现移不动
cp: 略过目录"iammulu"
[root@linux home]# ls csqstudent/
test  wenjian.txt
[root@linux home]# cp -rf iammulu csqstudent    #强制移动并且把目录下所有文件 复制至csqstudent目录下面
[root@linux home]# ls csqstudent/
iammulu  test  wenjian.txt

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
rm (移除文件或者目录)

-f :忽略不存在的文件,不会出现警告,强制删除

-r :递归删除目录

-v :显示rm执行时的详细工作内容。

rm -rf / # 系统中所有的文件就被删除了 ,删库跑路就是这么操作的
  • 1
[root@linux csqstudent]# ls
iammulu  test  wenjian.txt
[root@linux csqstudent]# rm -rf wenjian.txt 
[root@linux csqstudent]# ls
iammulu  test
  • 1
  • 2
  • 3
  • 4
  • 5
mv (移动文件,重命名文件)

参数

   -f, --force
          覆盖前永不提示

   -i, --interactive
          覆盖前提示

   -u, --update
          只移动更老的或者标记新的非目录

   -v, --verbose
          说明完成了什么
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
[root@linux home]# ls
csq  csqstudent  iammulu
[root@linux home]# mv iammulu  ilovecsq     # 重命名文件夹
[root@linux home]# ls
csq  csqstudent  ilovecsq
[root@linux home]# mv ilovecsq csqstudent   # 移动文件
[root@linux home]# ls csqstudent/
iammulu  ilovecsq  test
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

文件基本属性

看懂文件属性

Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定

在Linux中我们可以使用 ll 或者 ls -l 命令来显示一个文件的属性以及文件所属的用户和组,如:

image-20221214181254822

实例中,boot文件的第一个属性用“d“表示,”d“在Linux中代表该文件是一个目录文件。

在Linux中第一个字符代表这个文件是目录,文件或链接文件等等:

  • 当为[d]则是目录;
  • 当为[ - ]则是文件;
  • 若是[ l ]则表示为链接文档(like file)
  • 若是[ b ]则表示为装置文件里面的可供存储的接口设备(可随机存取装置):
  • 若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)

接下来的字符中,以三个为一组,且均为[rwx]的三个参数的组合。

其中,[r]代表可读(read),[w]代表可写(write),[x]代表可执行(execute)。

要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]而已

每个文件的属性由左边第一部分的10个字符来确定(如下图):

img

从左至右用0~9这些数字来表示。

第0位确定文件类型,第1-3位确定属主(该文件的所有者)拥有该文件的权限。第4-6位确定属组(所有者的同组用户)拥有该文件的权限,第7-9位确定其他用户拥有该文件的权限。

其中:

1、4、7 位表示读权限,如果用”r“字符表示,则有读权限,如果用”-“字符表示,则没有读权限;

2、5、8 位表示写权限,如果用 w 字符表示,则有写权限,如果用 - 字符表示没有写权限;

3、6、9 位表示可执行权限,如果用 x 字符表示,则有执行权限,如果用 - 字符表示,则没有执行权限。

对于文件来说,它都有一个特定的所有者,也就是对该文件具有所有权的用户。

同时,在Linux系统中,用户是按组分类的,一个用户属于一个或多个组。

文件所有者以外的用户又可以分为文件所有者的同组用户和其他用户。
因此,Linux系统按文件所有者、文件所有者同组用户和其他用户来规定了不同的文件访问权限。

在以上实例中,bin文件是一个链接文档,属主和属组都位root

修改文件属性
chgrp 更改文件属组
chgrp [-R] 属组名 文件名
# 实例
[root@linux home]# ls -l
总用量 0
drwx------. 8 csq  csq  224 1214 09:51 csq
drwxr-xr-x. 5 root root  49 1214 10:09 csqstudent
[root@linux home]# chgrp -R root csq
[root@linux home]# ls -l
总用量 0
drwx------. 8 csq  root 224 1214 09:51 csq
drwxr-xr-x. 5 root root  49 1214 10:09 csqstudent
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

-R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改。

chown:更改文件属主或属组
chown [-R] 属主名 文件名
chown [-R] 属主名或属组名  文件名
[root@linux home]# chown -R root csq
[root@linux home]# ls -l
总用量 0
drwx------. 8 root root 224 1214 09:51 csq
drwxr-xr-x. 5 root root  49 1214 10:09 csqstudent
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
chmod:更改文件权限
chmod [-R] xyz  文件或目录
  • 1

Linux文件权限有两种设置方法,一种是数字,一种是字符。

Linux文件的基本权限就有九个,分别是owner/group/others三种身份各有自己的read/write/execute权限

先复习以下刚刚上面提到的数据:文件的权限字符位:[-rwxrwxrwx],

这九个权限是三个三个一组的!其中,我们可以使用数字来代表各个权限,各个权限的分数对照表如下:

r:4   w:2   x:1
  • 1

每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限位: [-rwxrw-r–]分数则是:

  • owner = rwx = 4 + 2 + 1 = 7
  • group = rw- = 4 + 2 + 0 = 6
  • others = r-- = 4 + 0 + 0 = 4
# 数字修改权限
[root@linux csq]# chmod 777 wenjian.txt  #可读可写可执行
[root@linux csq]# ls -l
drwxr-xr-x. 2 csq csq 28 1214 08:45 test
-rwxrwxrwx. 1 csq csq  0 1214 09:41 wenjian.txt

# 字符修改权限 可用 ”+“”-“来增加删除权限rwx
[root@linux csq]# ls -l
drwxr-xr-x. 2 csq csq 28 1214 08:45 test
-rwxrwxrwx. 1 csq csq  0 1214 09:41 wenjian.txt
[root@linux csq]# chmod -x wenjian.txt  # 减去文件属主属组其他人的执行权限 
[root@linux csq]# ls -l
drwxr-xr-x. 2 csq csq 28 1214 08:45 test
-rw-rw-rw-. 1 csq csq  0 1214 09:41 wenjian.txt
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

文件内容查看

Linux系统中使用以下命令查看文件的内容:

cat
#由第一行开始显示文件内容
[root@linux network-scripts]# cat ifcfg-lo 
DEVICE=lo
IPADDR=127.0.0.1
NETMASK=255.0.0.0
NETWORK=127.0.0.0
# If you're having problems with gated making 127.0.0.0/8 a martian,
# you can change this to something else (255.255.255.255, for example)
BROADCAST=127.255.255.255
ONBOOT=yes
NAME=loopback
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
tac
#从最后一行开始显示,可以看出tac是cat的倒写!
[root@linux network-scripts]# tac ifcfg-lo 
NAME=loopback
ONBOOT=yes
BROADCAST=127.255.255.255
# you can change this to something else (255.255.255.255, for example)
# If you're having problems with gated making 127.0.0.0/8 a martian,
NETWORK=127.0.0.0
NETMASK=255.0.0.0
IPADDR=127.0.0.1
DEVICE=lo
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
nl
# 显示的时候,顺道输出行号! 就是看代码的时候,希望显示行号的时候用
[root@linux network-scripts]# nl ifcfg-lo 
     1	DEVICE=lo
     2	IPADDR=127.0.0.1
     3	NETMASK=255.0.0.0
     4	NETWORK=127.0.0.0
     5	# If you're having problems with gated making 127.0.0.0/8 a martian,
     6	# you can change this to something else (255.255.255.255, for example)
     7	BROADCAST=127.255.255.255
     8	ONBOOT=yes
     9	NAME=loopback

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
more

一页一页的显示文件内容。用于较多文字的文件内容(空格翻页,enter代表向下看一行,:f行号,退出用q命令)

image-20221214232220935

less

与more类似 ,但是比more更好的是,它可以往前翻页!(空格翻页,pageDown和pageUp是快速向下向上翻页,上下键代表翻动页面!退出用q命令,查找字符串 /要查询的字符,向上查询使用 ?要查询的字符串,n继续寻找下一个,N向上寻找)

head
# 只看头几行
-n 参数 要看多少行
[root@linux home]# head -n 10 csq.txt 
Linux操作系统的诞生、发展和成长过程始终依赖着五个重要支柱:Unix操作系统、MINIX操作系统、GNU计划、POSIX标准和Internet网络。
...
......
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
tail
#  只看尾巴几行
-n 参数 要看多少行
[root@linux home]# tail -n 20 csq.txt
Linux已经成为工作、娱乐和个人生活等多个领域的支柱,人们已经越来越离不开它。在Linux的帮助下,技术的变革速度超出了人们的想象,Linux开发的速度也以指数规模增长。因此,越来越多的开发者也不断地加入开源和学习Linux开发的潮流当中。在这个过程之中,合适的工具是必不可少的,可喜的是,随着Linux的发展,大量适用于Linux的开发工具也不断成熟。  
...
.....
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
man

你可以使用 man [命令]来查看各个命令的使用文档

image-20221214234146362

od
od 命令用于查看文件的二进制内容,常用于调试和数据分析。它可以按照不同的格式显示文件内容,如八进制、十六进制等。其基本语法如下:

od [选项] 文件名

选项
-a:显示全部内容。
-t:指定显示的格式,如 -tx1 表示十六进制格式,每个字节占据一行。
-c:以字符的形式显示文件内容。
-x:以十六进制的形式显示文件内容。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

例如,查看一个文件的八进制内容

od -b filename
  • 1
file(文件类型查看)
file 命令是 Linux 系统中常用的命令之一,用于识别文件类型。

具体的语法格式如下:
file [选项] 文件名

选项:
-b:只输出文件类型,不输出文件名。
-i:输出 MIME 类型。
-L:对符号链接解析。
-z:对压缩文件进行解压缩后再进行文件类型判断。
-k:对 Core 文件进行分析。
--mime-encoding:输出 MIME 编码。
--mime-type:输出 MIME 类型。
--mime:输出 MIME 类型和编码。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

例如,查看一个文件的类型:

file filename
  • 1

输出结果为:

filename: ASCII text
  • 1

表示该文件是 ASCII 文本文件。如果使用 -b 选项,则只输出文件类型,不输出文件名:

file -b filename
  • 1

输出结果为:

ASCII text
  • 1

Linux硬链接和软链接

Linux的链接分为两种:硬链接、软链接

==硬链接:==A—B 假设B是A的硬链接,那么他们两个指向了同一个文件!运行一个文件拥有多个路径,用户可以通过这种机制建立硬链接到一些重要文件上,防止误删!

==软链接:==就是类似Windows下面的快捷防守,删除源文件,快捷方式也访问不了!

创建连接 ln 命令

echo 输入字符串,也可以输入到文件中

[root@linux csq]# touch f1    #创建一个f1文件
[root@linux csq]# ln f1 f2    #创建一个硬链接 f2
[root@linux csq]# ls
f1  f2
[root@linux csq]# ll
总用量 0
-rw-r--r--. 2 root root 0 1215 00:52 f1
-rw-r--r--. 2 root root 0 1215 00:52 f2
[root@linux csq]# ln -s f1 f3  #创建一个软链接(符号链接) f3
[root@linux csq]# ls
f1  f2  f3
[root@linux csq]# ll 
总用量 0
-rw-r--r--. 2 root root 0 1215 00:52 f1
-rw-r--r--. 2 root root 0 1215 00:52 f2
lrwxrwxrwx. 1 root root 2 1215 00:55 f3 -> f1
[root@linux csq]# echo "i love xuexi Linux" >> f1      #给f1文件写入一些字符串
[root@linux csq]# ls
f1  f2  f3
[root@linux csq]# cat f1    #查看f1
i love xuexi Linux
[root@linux csq]# cat f2    #查看f2
i love xuexi Linux
[root@linux csq]# cat f3    #查看f3
i love xuexi Linux 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

删除f1之后,查看 f2 和 f3 的区别

# 删除f1查看链接情况
[root@linux csq]# rm -rf f1
[root@linux csq]# ls
f2  f3
[root@linux csq]# cat f3   # (软链接、符号链接)快捷方式失效了!
cat: f3: 没有那个文件或目录
[root@linux csq]# cat f2    # 硬链接还在
i love xuexi Linux
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/73723
推荐阅读
相关标签
  

闽ICP备14008679号