Linux 文件 目录管理
Linux 文件
基本属性
Linux 系统是一种典型的多用户系统,为了保护系统的安全性,不同的用户拥有不同的地位和权限。Linux 系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。
可以使用命令:ll 或 ls –l 来显示一个文件的属性以及文件所属的用户和组,如图所示:
详细解析命令:ls -l 中显示的内容
使用命令:ll 或 ls –l 时,会显示一个文件的属性以及文件所属的用户和组等信息,对这些信息详细解析,如下所示:
drwxr-xr-x. 3 root root 101 9月 8 01:52 abrt
如图所示:从左至右的 10 个字符中,第 1 个字符确定文件类型,接下来的字符中,以三个为一组,均为 rwx 的三个参数的组合。
第 1 个字符确定文件类型,类型有如下几种:
- d 表示目录;
- - 表示文件;
- l 表示为链接文档(link file);
- b 表示为装置文件里面的可供储存的接口设备(可随机存取装置);
- c 表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。
第 2-4 位确定属主(该文件的所有者)拥有该文件的权限。其中, r 代表可读(read)、 w 代表可写(write)、 x 代表可执行(execute)。 需要注意的是,这三个权限的位置不会改变,如果没有权限,就会显示为减号 - 。
第 5-7 位确定属组(所有者的同组用户)拥有该文件的权限。
第 8-10 位确定其他用户拥有该文件的权限。
第 10 个字符之后的字符的意义可参考上面那张图,这里不再赘述。
文件的属主和属组
在Linux系统中,文件都有一个特定的所有者,也就是对该文件具有所有权的用户。同时,用户是按组分类的,一个用户属于一个或多个组。文件所有者以外的用户又可以分为 "文件所属组的同组用户" 和 "其他用户"。因此,Linux系统按 "文件所有者"、"文件所有者同组用户" 和 "其他用户" 来规定了不同的文件访问权限。
drwxr-xr-x. 3 root root 101 9月 8 01:52 abrt
在上面的实例中,abrt 文件是一个目录文件,属主和属组都为 root,属主有可读、可写、可执行的权限;与属主同组的其他用户有可读和可执行的权限;其他用户也有可读和可执行的权限。
但对于 root 用户而言,一般情况下,文件的权限对其不起作用。
更改文件属性
Linux 中通常使用以下两个命令来修改文件或目录的所属用户与权限:
- chown (change owner) : 修改所属用户与组。
- chmod (change mode) : 修改用户的权限。
chgrp(change group)
用于变更文件或目录的所属群组。语法:
chgrp [ * ] [--help] [--version] 属组名 文件或目录
chgrp [ * ] [--help] [--reference=<参考文件或目录>] [--version] 文件或目录
[ * ] 参数说明:
- -c 或 --changes:效果类似"-v"参数,但仅回报更改的部分。
- -f 或 --quiet 或 --silent: 不显示错误信息。
- -h 或 --no-dereference: 只对符号连接的文件作修改,而不改动其他任何相关文件。
- -R 或 --recursive: 递归处理,将指定目录下的所有文件及子目录一并处理。
- -v 或 --verbose: 显示指令执行过程。
[ --help ] 参数说明: --help:在线帮助。
[--version] 参数说明:--version:显示版本信息。
[--reference=<参考文件或目录>] 参数说明:把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同。
实例1,改变/etc/chen目录下文件hello.cpp的群组属性:
实例2,根据指定文件改变文件的群组属性:
chown(change owner)
设置文件所有者和文件关联组的命令。语法:
chown [ * ] [--help] [--version] 属主名 文件名
chown [ * ] [--help] [--version] 属主名:属组名 文件名
[ * ] 参数说明:
- -c : 显示更改的部分的信息
- -f : 忽略错误信息
- -h :修复符号链接
- -v : 显示详细的处理信息
- -R : 处理指定目录以及其子目录下的所有文件
[ --help ] 参数说明: --help : 显示辅助说明
[ --version ] 参数说明: --version : 显示版本
例如,进入 /etc/chen目录,将hello.cpp的拥有者和群组改为chen这个账号:
chmod(change mode):
更改Linux 文件的 9 个基本属性(分别是 owner(属主)/group(属组)/others(其他) 三种身份各自的 read(读)/write(写)/execute(执行) 权限)。属性有两种设置方法,一种是数字,一种是符号。
数字类型改变文件权限
文件的权限字符为: -rwxrwxrwx , 这九个权限是三个三个一组的!因此,可以使用数字来代表各个权限,各权限的分数为:r(4)、w(2)、x(1),将各组的权限(r/w/x)分数累加起来。例如,当权限为: -rwxrwx--- ,那么分数则是:
- owner = rwx = 4+2+1 = 7
- group = rwx = 4+2+1 = 7
- others= --- = 0+0+0 = 0
所以,使用数字更改文件权限时,该文件的权限数字xyz就是 770,此时,指令 chmod 的语法为:
chmod [ * ] [--help] [--version] xyz 文件或目录
xyz : 数字类型的权限属性(比如:770)。
[ * ] 参数说明:
- -c : 若该文件权限确实已经更改,才显示其更改动作
- -f : 若该文件权限无法被更改也不要显示错误讯息
- -v : 显示权限变更的详细资料
- -R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递归的方式逐个变更)
[--help] 参数说明:--help : 显示辅助说明
[--version] 参数说明:--version : 显示版本
例如, 将目录/etc/chen下的文件hello.cpp的所有的权限都设定为启用,那么权限的分数就成为 [4+2+1][4+2+1][4+2+1]=777:
符号类型改变文件权限
使用 u, g, o 分别代表三种身份:user(用户)、group(组)、others(其他)的权限,此外, a 代表 all,即全部的身份。
读、写、执行的权限可以写成 r, w, x,也可使用+(增加权限)、-(取消权限)、=(唯一设定权限)将权限去掉而不改变其他已存在的权限。如下图所示:
例如, 目录/etc/chen下的文件hello.cpp权限设置为: -rwxr-xr-- ,可以使用命令:chmod u=rwx,g=rx,o=r hello.cpp 来设定:
例如, 使用-(除去)将全部人的可执行权限去掉而不改变其他已存在的权限:
Linux 目录管理
Linux 的目录结构为树状结构,最顶级的目录为根目录 /。其他目录通过挂载可以将它们添加到树中,通过解除挂载可以移除它们。
绝对路径与相对路径
-
绝对路径:路径的写法,由根目录 / 写起,例如: /etc/chen 这个目录。
-
相对路径:路径的写法,不是由 / 写起,例如由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成: cd ../man 这就是相对路径的写法。
处理目录的常用命令
几个常见的处理目录的命令:
- ls(list files): 列出目录及文件名
- cd(change directory):切换目录
- pwd(print work directory):显示目前的目录
- mkdir(make directory):创建一个新的目录
- rmdir(remove directory):删除一个空的目录
- cp(copy file): 复制文件或目录
- rm(remove): 删除文件或目录
- mv(move file): 移动文件与目录,或修改文件与目录的名称
注:可以使用:man [命令] ,帮助查看各个命令的使用文档,如 :man cp。
ls
列出目录。语法:
ls [选项] 目录名称
ls [--color={never,auto,always}] 目录名称
ls [--full-time] 目录名称
[ 选项 ] 参数说明:
- -a :全部的文件,连同隐藏文件( 开头为 . 的文件) 一起列出来(常用)
- -d :仅列出目录本身,而不是列出目录内的文件数据(常用)
- -l :长数据串列出,包含文件的属性与权限等等数据;(常用)
- -r 逆序排列。
- -t 按时间信息排序。
- -u 使用最近访问时间代替最近修改时间为依据来排序(使用 “ -t ”选项时)或列出(使用“ -l ”选项时)。
[ --color={never,auto,always} ] 参数说明:指定是否使用颜色区别文件类别。
[ --full-time ] 参数说明:列出完整的时间,而不是使用标准的缩写。
例如:将目录/etc下的所有文件列出来(含属性与隐藏档)
cd
变换工作目录的命令。语法:
cd [相对路径/绝对路径]
例如,使用绝对路径切换到/etc/chen/documents目录
使用相对路径切换到 documents 目录
pwd
pwd 是 Print Working Directory 的缩写,显示目前所在目录。语法:
pwd [-P]
[ -P ] 参数说明:显示出确实的路径,而非使用链接 (link) 路径。
例如, 命令:pwd 显示出当前实际的工作目录,而非链接档本身的目录名:
而且/var/mail是一个链接档,链接到 /var/spool/mail 。因此,使用命令:pwd -P 后,会不以链接档的数据显示,而是显示正确的完整路径
mkdir
mkdir 是 make directory 的缩写,创建新的目录。语法:
mkdir [选项] 目录名称
[ 选项 ] 参数说明:
- -m :配置文件的权限;
- -p :将所需要的目录(包含上一级目录)递归创建起来!
例如, 目录/etc/chen 底下创建数个新目录:
加入选项 -p ,创建多层目录
创建权限为 r-xr-xr-x 的目录。需要使用选项 -m 。如果没有加上 -m 来强制配置属性,系统会使用默认属性。
rmdir
删除空的目录。语法:
rmdir [选项] 目录名称
[ 选项 ] 参数说明:
- -p :从该目录起,一次删除多级空目录
例如, 删除目录/etc/chen/tmp 底下的空目录 test ,以及非空目录test1。
cp
拷贝文件和目录。语法:
cp [ 选项 ] 来源档(source) 目标档(destination)
cp [ 选项 ] source1 source2 source3 .... directory
[ 选项 ] 参数说明:
-a:复制时,尽可能保持文件的结构和属性.(但不保持目录结构)等同于 -dpR。(常用)
-d:若来源档为链接档的属性(link file),则复制链接档属性而非文件本身;
-f:为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次;
-i:若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用)
-l:进行硬式链接(hard link)的链接档创建,而非复制文件本身;
-p:连同文件的属性一起复制过去,而非使用默认属性(备份常用);
-r:递归持续复制,用于目录的复制行为;(常用)
-s:复制成为符号链接档 (symbolic link),亦即『捷径』文件;
-u:如果存在的目标档有相同的,或者更新的修改时间,不复制目录(文件).
例如, 将 /etc/chen 目录下的 test.c 复制到 /home/chen 下,并命名为 hello.c
rm
移除文件或目录。语法:
rm [ 选项 ] 文件或目录
[ 选项 ] 参数说明:
- -f :就是 force 的意思,忽略不存在的文件,不会出现警告信息;
- -i :互动模式,在删除前会询问使用者是否动作
- -r :递归删除!最常用在目录的删除中!慎用!
例如, 将/home/chen 下的 hello.c删除掉!加上 -i 选项会显示询问:
mv
移动文件与目录,或修改名称。语法:源文件
mv [ 选项 ] 源文件(source) 目标文件(destination)
mv [ 选项 ] source1 source2 source3 .... 目录(directory)
[ 选项 ] 参数说明:
- -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
- -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
- -u :若目标文件已经存在,且 source 比较新,才会升级 (update)
例如, 将 /etc/chen 目录下的 tmp 移动到 /home/chen 下
将 /etc/chen 目录下的 hello.cpp 移动到 /home/chen 下,并更名为 test.cpp
相关文章:
Linux 文件 目录管理
Linux 文件 基本属性 Linux 系统是一种典型的多用户系统,为了保护系统的安全性,不同的用户拥有不同的地位和权限。Linux 系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。 可以使用命令:ll 或 ls –…...
QT信号槽实现原理
定义Q_OBJECT宏 在宏中声明了几个重要的成员变量及成员函数,包括声明了一个只读的静态成员变量static MetaObject,以及3个public的成员函数 static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void …...
7-7 求鸡兔数量
老张家养了很多鸡和兔,圈养在一个笼子里,清早起来老张站在笼子旁边数了数头的个数,蹲下来又数了数脚的个数,你能帮他快速算出来鸡兔各有多少只吗?如实在算不出来, 就提示“error” 输入格式: 输入头的个数…...
CTF 全讲解:[SWPUCTF 2022 新生赛]webdog1__start
文章目录 参考环境题目learning.php信息收集isset()GET 请求查询字符串全局变量 $_GET MD5 绕过MD5韧性脆弱性 md5()弱比较隐式类型转换字符串连接数学运算布尔判断 相等运算符 MD5 绕过科学计数法前缀 0E 与 0e绕过 start.php信息收集头部检索 f14g.php信息收集 探秘 F1l1l1l1…...
聊天机器人
收集窗帘相关的数据 可以用gpt生成,也可以用爬虫 图形化界面 gradio 向量数据库 faiss python代码 import gradio as gr import random import timefrom typing import Listfrom langchain.embeddings.openai import OpenAIEmbeddings from langchain.vectorstor…...
肖sir__mysql之综合题练习__013
数据库题(10*5) 下面是一个学生与课程的数据库,三个关系表为: 学生表S(Sid,SNAME,AGE,SEX) 成绩表SC(Sid,Cid,GRADE) 课程表C(Cid&…...
阿里云服务器部署安装hadoop与elasticsearch踩坑笔记
2023-09-12 14:00——2023.09.13 20:06 目录 00、软件版本 01、阿里云服务器部署hadoop 1.1、修改四个配置文件 1.1.1、core-site.xml 1.1.2、hdfs-site.xml 1.1.3、mapred-site.xml 1.1.4、yarn-site.xml 1.2、修改系统/etc/hosts文件与系统变量 1.2.1、修改主机名解…...
Golang 中 int 类型和字符串类型如何相互转换?
在日常开发中,经常需要将数字转换为字符串或者将字符串转换为数字。在 Golang 中,有一些很简便的方法可以实现这个功能,接下来就详细讲解一下如何实现 int 类型和字符串类型之间的互相转换。 使用 strconv 包 strconv 包提供的 Itoa 和 Ato…...
**20.迭代器模式(Iterator)
意图:提供一种方法顺序访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部表示。 上下文:集合对象内部结构常常变化各异。对于这些集合对象,能否在不暴露其内部结构的同时,让外部Client透明地访问其中包含的元素…...
计算机视觉与深度学习 | 视觉里程计理论
===================================================== github:https://github.com/MichaelBeechan CSDN:https://blog.csdn.net/u011344545 ===================================================== 视觉里程计理论基础 1 、立体视觉中的三维测量及几何约束2 、立体视觉匹…...
Go网络请求中配置代理
如何配置代理 不配置代理,本地请求google等会超时 package mainimport ( "fmt" "net/http" "time")func main() { // 创建一个自定义的 Transport 实例 //transport : &http.Transport{ // Proxy: func(req *http.Request) (*url…...
【ArcGIS】基本概念-矢量空间分析
栅格数据与矢量数据 1.1 栅格数据 栅格图是一个规则的阵列,包含着一定数量的像元或者栅格 常用的栅格图格式有:tif,png,jpeg/jpg等 1.2 矢量数据 矢量图是由一组描述点、线、面,以及它们的色彩、位置的数据&#x…...
OSCP系列靶场-Esay-Moneybox保姆级
OSCP系列靶场-Esay-Moneybox 目录 OSCP系列靶场-Esay-Moneybox总结准备工作信息收集-端口扫描目标开放端口收集目标端口对应服务探测 信息收集-端口测试21-FTP端口的信息收集21-FTP版本版本信息21-FTP端口匿名登录测试(存在)21-FTP端口-文件GET收集21-FTP端口-PUT上传测试 22-S…...
[python 刷题] 128 Longest Consecutive Sequence
[python 刷题] 128 Longest Consecutive Sequence 题目: Given an unsorted array of integers nums, return the length of the longest consecutive elements sequence. You must write an algorithm that runs in O(n) time. 这题给了一个没有排序的数组&#x…...
SpringMVC之JSON数据返回与异常处理机制
目录 一.SpringMVC的JSON数据返回 1.导入Maven依赖 2.配置spring-mvc.xml 3.ResponseBody注解的使用 3.1案例演示 1.List集合转JSON 2.Map集合转JSON 3.返回指定格式String 4. ResponseBody用法 5.Jackson 5.1介绍 5.2常用注解 二.异常处理机制 1.为什么要全局异常处…...
【第四阶段】kotlin语言的定义类和field关键字学习
1.普通成员变量背后隐士代码 为什么在kotlin中是private 可以直接调用,隐式代码如下 package Kotlin.Stage4class Test54{var name"kotlin"/*背后做的事NotNullprivate String name"kotlin";public void setName(NotNull String name){this.na…...
OpenResty使用漏桶算法实现限流
前言 其它项目组需要调用接口,添加接口限流,防止项目被狂掉宕机。生产用了openresty,所以在openresty上添加按接口限流,同时,需按照不同接口有不同的限流规则,使用openresty中内置的漏桶算法方式限流。 漏…...
Activiti源码跟踪之模型Model操作
Activiti源码跟踪之模型Model操作 模型model设计到的表ACT_RE_MODEL、ACT_GE_BYTEARRAY ACT_RE_MODEL表结构: CREATE TABLE ACT_RE_MODEL (ID_ varchar(64) COLLATE utf8_bin NOT NULL,REV_ int(11) DEFAULT NULL,NAME_ varchar(255) COLLATE utf8_bin DEFAULT N…...
C#-WinForm-发送邮件
登录QQ邮箱——设置——开启“POP3/SMTP服务” 登陆QQ邮箱→打开设置→开启“POP3/SMTP服务”,获取“授权码” 简单总结一下: 1、使用SmtpClient发送电子邮件是很简单的,只要正确创建了MailMessage对象和SmtpClient就可以很容易的发送出去电…...
Springboot整合jdbc和Mybatis
目录 整合jdbc 1. 新建项目 2. 编写yaml配置文件连接数据库 3. 测试类 使用原生的jdbcTemplate进行访问测试 使用Druid连接池 1. 添加类型 2. 初始化连接池 3. 编写config类 配置Druid数据源监视 整合Mybatis 1. 导入依赖 2. 编写mapper接口 3. 编写实体类 4. 编…...
日常生活中的常用命令及操作
目录 一、Windows11 中查看网卡名称 及ip地址 二、查看硬件的详细信息 三、查看显卡声卡详细信息及厂商 四、C盘清理 第一步 输入wini 开启Windows设置主界面 第二步 存储中还有一个叫存储感知的功能 第三步 更改新内容的保存位置 第四步 怕误C盘内的东西可以 查看详细的…...
【C++杂货铺】国庆中秋特辑——多态由浅入深详细总结
文章目录 一、多态的概念二、多态的定义及实现2.1 多态的构成条件2.2 虚函数2.3 虚函数的重写2.4 虚函数重写的两个例外2.4.1 协变(基类与派生类虚函数返回值类型不同)2.4.2 析构函数的重写(基类与派生类析构函数的名字不同) 2.5 …...
MongoDB基础详解
一、MongoDB概述 MongoDB 是一个基于 分布式文件存储 的开源 NoSQL 数据库系统,由 C 编写的。MongoDB 提供了 面向文档 的存储方式,操作起来比较简单和容易,支持“无模式”的数据建模,可以存储比较复杂的数据类型,是一…...
解锁前端Vue3宝藏级资料 第五章 Vue 组件应用 4 ( provide 和 inject )
5.5 provide 和 inject 前面的知识告诉我们vue中组件之间传递值需要使用props来完成,但是props也有一定局限性。这个时候在vue3中还有另外的解决方法。那就是使用 provide 和 inject 允许父组件将数据传递给所有后代组件,而不管组件层次结构有多深。你要…...
【List篇】LinkedList 详解
目录 成员变量属性构造方法add(), 插入节点方法remove(), 删除元素方法set(), 修改节点元素方法get(), 取元素方法ArrayList 与 LinkedList的区别Java中的LinkedList是一种实现了List接口的 双向链表数据结构。链表是由一系列 节点(Node)组成的,每个节点包含了指向 上一个…...
推动统一供应链“度量衡”,上汽大通突破传统拥抱SaaS生态
中国汽车市场规模已连续14年位居世界第一,目前占世界汽车份额31%。近年来,物联网、人工智能、电池等技术的快速发展,也为中国从汽车大国逐步迈向汽车强国注入巨大动力。在新一轮的汽车产业变革中,构建一个更智能、更高效协同的供应…...
蓝牙核心规范(V5.4)10.9-BLE 入门笔记之GAP
1.概述 蓝牙核心规范的通用访问配置文件(GAP)部分定义了与设备发现和在两个设备之间建立连接有关的过程。如何执行数据的基本无连接通信、如何使用周期性广播(参见 PADVB-LE Periodic Advertising Broadcast)以及如何设置等时通信(参见 LE BIS和LE CIS - Isochronous Com…...
nginx 配置 ssl
1.1 Nginx如果未开启SSL模块,配置Https时提示错误 原因也很简单,nginx缺少http_ssl_module模块,编译安装的时候带上--with-http_ssl_module配置就行了,但是现在的情况是我的nginx已经安装过了,怎么添加模块࿰…...
家居设计软件Live Home 3D Pro mac中文版特点介绍
Live Home 3D Pro mac是一款专业的3D家居设计软件,可以帮助用户轻松创建和设计家居平面图和3D模型,并进行渲染和虚拟漫游。 Live Home 3D Pro mac软件特点 1. 界面友好:Live Home 3D Pro的界面友好,操作简单方便…...
OkHttp - 现代应用网络的方式
官网:Overview - OkHttp HTTP is the way modern applications network. It’s how we exchange data & media. Doing HTTP efficiently makes your stuff load faster and saves bandwidth. OkHttp is an HTTP client that’s efficient by default: HTTP/2 s…...
北京网站建设服务中心/qq代刷网站推广
一:软件测试的定义:根据用户需求行业规范,采用一些测试方法或一些工具对被测系统(程序数据文档)进行相应的测试(审核,运行,评估),尽早尽快的发现软件问题&…...
传媒公司做网站编辑 如何/自媒体发稿
上篇只是简单的介绍了插件的组成 这次准备进行更深一步的研究 官网下载plugin模板 sublime 打开3个js文件 首先common.js是不需要研究的 打开edittime.js 我们先来看这几个: 我们将其中的值更改为: 安装插件看看效果 以这种形式压缩&…...
变装小说wordpress/网站投放广告费用
本文实例讲述了Python捕捉和模拟鼠标事件的方法。分享给大家供大家参考。具体分析如下:这个假期玩了不少galgame,不过有些很老的游戏没有自动运行模式,点击鼠标又太伤按键了,于是想把滚动鼠标滚轮映射为点击鼠标。网上搜了一下&am…...
临沂网站建设设计公司/百度seo技术优化
懒惰像生锈一样,比操劳更能消耗身体;经常用的钥匙,总是亮闪闪的。 ——富兰克林...
国外移民公司网站设计/免费发布推广的网站
人类是一个类,你是一个具体人.......你不能在街上裸奔,所以得用衣服封装起来..........当然了,你不会蒙面(又不是去抢银行的),脸露出来的话就是公有属性的了...很显然,某些地方就是私有的了然后当你挂了后,你的遗产得给你的后代,你的遗产对外不公开,对自己的后代公开,那就是保护…...
学做网站是什么/友情链接购买
docker四种网络模式:1,采用host模式下的网络可以上容器与宿主机都共同用一个网络栈,这么做看似解决了网络问题,可实际上未使用networknamespace的隔离,缺乏安全性2,采用docker默认的bridge模式下的网络,容器没有对外IP,只能通过NAT来实现对外通信.这种方式不能解决跨主机容器间…...