一、目录结构

Linux目录采用树形结构,以根目录/向下延伸呈一个倒置的树的形状。



每个目录下都有其相对应的子目录,而子目录中又有其子目录的存在,就像一棵树的树枝分叉,所有的目录层次结构分明,每个目录也都有其相对用的作用。可以通过在shell中输入ls命令查看目录及文件,其中每个目录下都有两个特别的目录...目录,分别表示 当前目录上层目录,可以通过ls -l命令查看。

各目录简述解释,详情参考菜鸟教程
  • /boot:与内核、启动有关的文件

  • /bin: 存放命令、或者可执行程序

  • /dev: 存放设备文件

  • /etc: 系统配置文件

  • /lib: 库文件

  • /mnt: 临时挂载点

  • /proc:虚拟目录,对内存中的信息映射到该目录下

  • /root: 管理员的家目录

  • /home:普通用户的家目录

  • /usr: 系统运行过程中不经常改变的文件

  • /var: 系统运行过程中常改变的文件

  • /tmp: 临时目录,所有用户都可以访问

相关命令

cd 切换目录(Change Directory)
cd … 回到上一层目录
cd 路径 进入该目录(可以是相对路径,也可以是绝对路径)
cd ~ 进入家目录,即home/下与用户名同名的目录
cd - 在最近使用过的两个路径切换
其他命令 解释
pwd 显示当前位置(Print work diretory)
mkdir 创建目录(Make Directory)
rmdir 删除空目录(Remove directory)
rm -r (-R, --recursive)递归删除,用于删除非空目录
rm -rf ( -f, --force)忽略不存在的文件,从不给出提示,常与-rf配合删除目录

二、文件

在Linux下有一切皆文件的说法。在Linux平台下针对不同的文件主要有以下分类。

  • 普通文件用-表示
  • 目录文件用d表示
  • 链接文件用l表示
  • 设备文件用c\d表示
  • 管道文件用p表示
  • 套接字文件用s表示

可以通过在bash命令解释器中输入ls -l命令查看

测试:如下图所示,在blog目录下打开bash命令解释器,依次输入

  • touch a.txt创建普通文件
  • mkdir tmp创建目录
  • ln -s ~/Desktop/code ./code_tmp创建软连接
  • mkfifo 1.pipe创建管道文件

    输入ls -l命令查看文件属性

文件属性

使用ls -l可以查看文件的详细参数

文件权限

其中权限部分又分为属主权限属组权限、和其他人权限

因为Linux平台支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响,同时为了互相协同工作的需要,因此Linux下文件根据用户的不同划分了以三种。

  • 属主u:文件的主人
  • 属组g:同组人
  • 其他o:其他用户

权限主要分为一下几类

  • 读权限 r,可以用数字4表示
  • 写权限w,可以用数字2表示
  • 执行权限x,可以用数字1表示
  • -没有权限,可以用数字0表示

特殊权限

SUID权限
文件在执行阶段具有文件所有者的权限

/bin目录下的passwd命令就具有该权限,因此普通用户可以执行该命令修改自己的密码。



我们可以看到该权限占据了写权限的位置,因此用S表示具有该权限的同时还具有x权限,s则表示不具备x权限

SGID权限
文件在执行阶段具有文件同组人的权限

如下图,我们在tmp中用root用户创建一个1.c文件,可以看到文件的属主和属组都是root所拥有的。



接下来我们返回上层目录在tr用户下设置tmp属组的权限为s权限,再次进入tmp目录用root用户创建2.c文件,可以看到这次文件的属组变成了我们的普通用户tr所有。



我们在tr用户下把tmp目录加上了s权限,当其他用户tmp目录下创建文件时都会把文件属性设置为该目录的属组属性。

设置权限

使用chmod命令可以设置文件权限。一般分两种设定法

  1. 文字设定法

    • eg:chmod u+x a.c 给a.c文件属主增加执行权限
    • eg:chmod g-w a.c 给a.c文件属组取消写权限
    • eg:chmod a-w a.c 给a.c文件所有用户取消写权限
  2. 数字设定法
    • eg:chmod 746 a.c 给a.c文件的属主设置”读“”写“”执行“权限,属组设置”读“权限,其他用户设置”读“”写“权限
相关命令:
文件操作命令 解释
touch 创建或者修改文件
rm 删除文件或者目录
tree 命令可以以树状图列出文件目录结果
cp 复制文件或者目录
mv 移动文件/目录或者重命名
查看文本命令 解释(具体信息请使用man帮助手册查看)
cat 查看文件内容,cat 文件名
more 同上,more 文件名
less 同上,less 文本名
head 查看文本开头信息,head 文件名
tail 查看文本尾部信息 tail 文件名
echo 在终端显示指定内容,可以用> <等重定向命令改变输出为止

Linux基础学习 | 目录及文件的更多相关文章

  1. linux基础学习目录

    以下用一个表格来罗列linux默认的目录或文件及其用途: 目录/文件 用途 来源 / /处于Linux文件系统树形结构的最顶端,它是Linux文件系统的入口,所有的目录.文件.设备都在/之下. - / ...

  2. Linux 基础学习1

    目录 Linux 基础学习 用户登录 终端 交互式接口 bash 修改ssh连接慢的步骤 命令提示符 显示提示符格式 命令 别名 命令格式 获取命令的帮助信息 man bash 快捷键 tab 键 引 ...

  3. [linux基础学习]默认的目录介绍

    以下用一个表格来罗列linux默认的目录或文件及其用途: 目录/文件 用途 来源 / /处于Linux文件系统树形结构的最顶端,它是Linux文件系统的入口,所有的目录.文件.设备都在/之下. - / ...

  4. Linux基础学习系列目录导航

    Linux基础学习-通过VM安装RHEL7.4 Linux基础学习-命令行与图形界面切换 Linux基础学习-基本命令 Linux基础学习-RHEL7.4之YUM更换CentOS源 Linux基础学习 ...

  5. linux基础学习之软件安装以及常用命令

    linux基础学习之软件安装以及常用命令 调用中央仓库: yum install wget 然后下载nodejs: wget https://nodejs.org/dist/v10.14.2/node ...

  6. linux基础学习路线&review

    linux基础学习网址: https://www.runoob.com/linux/linux-tutorial.html 比较重点的是这个启动过程的介绍学习:https://www.runoob.c ...

  7. Linux 基础学习2

    目录 Linux 基础学习2 文件目录结构 文件命名规范 文件系统结构 linux应用程序的组成 绝对路径和相对路径 目录名和基名 切换目录 切换到家目录 切换到上一次的目录 显示当前的工作目录 列出 ...

  8. Linux中/proc目录下文件详解

    转载于:http://blog.chinaunix.net/uid-10449864-id-2956854.html Linux中/proc目录下文件详解(一)/proc文件系统下的多种文件提供的系统 ...

  9. Linux下遍历目录及文件,更改权限

    Linux下遍历目录及文件,更改权限 引言: 我在Linux下搭建android时,将eclipse及sdk复制到/usr/下时,总会出现无法读,无法写写样的问题. 解决方案: 有两个方案: 一.将复 ...

随机推荐

  1. Mysql基础学习第二天

    Mysql基础学习第二天 函数 函数:是指一段可以直接被另一段程序调用的程序或代码. 字符串函数 数值函数 日期函数 流程函数 字符串函数 MySQL内置很多字符串函数,常用的几个如下: 函数 功能 ...

  2. Python:glob

    学习自: (1)Python标准库glob模块_lianghe77的博客-CSDN博客_glob库 (2)Python:glob与os.listdir_鳄鱼的博客-CSDN博客 (3)python文件 ...

  3. broken pipe 报错分析和解决办法

    参考资料: 1.博客1:https://blog.csdn.net/qq_37535749/article/details/113781338 2.博客2:https://blog.csdn.net/ ...

  4. OS模块的补充使用---执行终端命令

    Python基础至os模块 由于近期的项目需要用到对应的终端命令去调用其他程序,因此温习一下os.system()函数: 参考文献:https://zhuanlan.zhihu.com/p/51716 ...

  5. 虚拟机服务启动失败报错npm ERR! code ELIFECYCLE

    可能是由于node_modules模块中缺失或者某些东西冲突引起的,我们可以使用如下的方法解决这个: rm -rf node_modules 删除,不询问 rm package-lock.json 删 ...

  6. C#控制台输入密码星号显示

    在Program类中的Main方法里: 1 public class Program 2 { 3 static void Main(string[] args) 4 { 5 Console.Write ...

  7. Pytorch中pad函数toch.nn.functional.pad()的用法

    padding操作是给图像外围加像素点. 为了实际说明操作过程,这里我们使用一张实际的图片来做一下处理. 这张图片是大小是(256,256),使用pad来给它加上一个黑色的边框.具体代码如下: 1 2 ...

  8. git常用命令及问题

    Git基本操作 git init 创建新的git仓库 git clone [url] 使用 git clone 拷贝一个 Git 仓库到本地 git status 查看工作区 git stash li ...

  9. 理解并手写 call() 函数

    手写自己的call,我们要先通过call的使用,了解都需要完成些什么功能? call()进行了调用,是个方法,已知是建立在原型上的,使用了多个参数(绑定的对象+传递的参数). 我们把手写的函数起名为m ...

  10. LGP6773题解

    阴间状态,出题人是怎么想到的... 为啥lg题解全部都是直接丢状态不说是怎么想的啊.要是以后遇到阴间状态题该怎么想.jpg 首先通过观察,我们可以形象地定义染色:边权为 \(1\) 的边相当于将此边割 ...