热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux基础学习|目录及文件

一、目录结构Linux目录采用树形结构,以根目录向下延伸呈一个倒置的树的形状。每个目录下都有其相对应的子目录,而子目录中又有其子目录的存在࿰

一、目录结构

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在终端显示指定内容&#xff0c;可以用> <等重定向命令改变输出为止

推荐阅读
  • 本文介绍了Linux Shell中括号和整数扩展的使用方法,包括命令组、命令替换、初始化数组以及算术表达式和逻辑判断的相关内容。括号中的命令将会在新开的子shell中顺序执行,括号中的变量不能被脚本余下的部分使用。命令替换可以用于将命令的标准输出作为另一个命令的输入。括号中的运算符和表达式符合C语言运算规则,可以用在整数扩展中进行算术计算和逻辑判断。 ... [详细]
  • 本文总结了Linux下多线程执行shell脚本的4种方法,包括切换到工作目录执行、使用绝对路径执行、直接使用bash或sh执行。同时介绍了为什么需要加上"./"来执行脚本的原因。 ... [详细]
  • 对于一般的扩展包,我们一般直接pipinstallxxx即可安装,但是unrar直接安装后,发现并不能通过Python程序实现解压的功能& ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • Linux批量复制并重命名和批量复制文件到多个文件夹的方法
    本文介绍了在Linux系统下批量复制并重命名文件以及批量复制文件到多个文件夹的方法。通过使用模式匹配功能,可以方便地实现文件的批量操作。同时,还提供了有关shell语法中的()和{}的参考资料。 ... [详细]
  • 【shell】网络处理:判断IP是否在网段、两个ip是否同网段、IP地址范围、网段包含关系
    本文介绍了使用shell脚本判断IP是否在同一网段、判断IP地址是否在某个范围内、计算IP地址范围、判断网段之间的包含关系的方法和原理。通过对IP和掩码进行与计算,可以判断两个IP是否在同一网段。同时,还提供了一段用于验证IP地址的正则表达式和判断特殊IP地址的方法。 ... [详细]
  • 本文介绍了使用readlink命令获取文件的完整路径的简单方法,并提供了一个示例命令来打印文件的完整路径。共有28种解决方案可供选择。 ... [详细]
  • 通过Anaconda安装tensorflow,并安装运行spyder编译器的完整教程
    本文提供了一个完整的教程,介绍了如何通过Anaconda安装tensorflow,并安装运行spyder编译器。文章详细介绍了安装Anaconda、创建tensorflow环境、安装GPU版本tensorflow、安装和运行Spyder编译器以及安装OpenCV等步骤。该教程适用于Windows 8操作系统,并提供了相关的网址供参考。通过本教程,读者可以轻松地安装和配置tensorflow环境,以及运行spyder编译器进行开发。 ... [详细]
  • 程序员如何选择机械键盘轴体?红轴和茶轴对比
    本文介绍了程序员如何选择机械键盘轴体,特别是红轴和茶轴的对比。同时还介绍了U盘安装Linux镜像的步骤,以及在Linux系统中安装软件的命令行操作。此外,还介绍了nodejs和npm的安装方法,以及在VSCode中安装和配置常用插件的方法。最后,还介绍了如何在GitHub上配置SSH密钥和git的基本配置。 ... [详细]
  • Linux Shell脚步的格式
    Shell脚步等多个命令的组合,可以做成一个shell文件(1.sh)赋权执行执行命令的方式前两张新的进程中执行,对当前进程不产生影响(cdtmp;pwds ... [详细]
  • systemd-nspawn可以创建最轻量级的容器(ns的意思就是namespace),本文的实验平台是Ubuntu16.04,x86_64机器。本文的目的是:在Ubuntu中用syst ... [详细]
  • mysql自动打开文件_让docker中的mysql启动时自动执行sql文件
    本文提要本文目的不仅仅是创建一个MySQL的镜像,而是在其基础上再实现启动过程中自动导入数据及数据库用户的权限设置,并且在新创建出来的容器里自动启动My ... [详细]
author-avatar
北大青鸟西安
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有