绿小蕤

好逸恶劳,贪生怕死

  • 主页
  • 简介
  • 相册
所有文章 友链 学习履历

绿小蕤

好逸恶劳,贪生怕死

  • 主页
  • 简介
  • 相册

Linux(四)—— 文件

2018-09-10 2018-09-10 view 49 times

PS:今天突然对可执行文件有了全新的理解

下面举的例子可能不那么对,但是就是这个意思。

word这个应用程序,就是通过 winword.exe 这个主程序,读取某个.doc文件然后对它进行一系列写操作

一、用户和用户组

PS:突然放这块内容有点怪,但是是为了解释后面文件权限的内容

1. 用户 user

Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,每个用户账号有一个惟一的用户名和各自的口令,然后以这个账号的身份进入系统。

用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问,另一方面也可以帮助用户组织文件,并为用户提供安全性保护。


2. 用户组 group

具有相同特征的用户(user)的集合体。

比如,有时,要让多个用户具有相同的权限,比如查看、修改某一文件或执行某个命令,这时可以把这些用户都定义到同一用户组,通过修改文件或目录的权限,这样用户组下的用户对该文件或目录都具有相同的权限。

PS: 用户和用户组的对应关系是:一对一、多对一、一对多或多对多


二、文件基本属性

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

Linux系统按文件所有者、文件所有者同组用户和其他用户来规定了不同的文件访问权限。

PS:其实刚开始看到这部分有点疑惑,觉得文件属性不应该是看后缀来判断文件的类型


三、Linux下的文件后缀

  1. Linux不根据后缀判断文件类型,而是根据文件的内容来判断。所以扩展名的作用是帮助识别文件,对于Linux系统本身来说没有什么意义。
  2. 但我们自己创建一些文件,最好还是加后缀名,这样做的目的是仅仅是为了我们的在应用时方便。
  3. Linux桌面环境和Windows一样智能化,系统会自动判断用哪个应用程序打开g=该Linux文件。


四、为什么Linux和Windows的可执行文件不能通用

https://www.zhihu.com/question/22672994/answer/27076210

1. 格式不同 —— 不同操作系统准备工作不同

  • Windows 里大部分可执行文件的格式为PE
  • Linux 里大部分可执行文件的格式为ELF

可执行文件要被执行时,操作系统需要为其分配资源,比如,内存空间(物理的和虚拟的)、进程、线程资源等等。所以可执行文件在执行之前需要告诉操作系统,要为可执行文件准备哪些东西它才能运行。

但是不同的操作系统,准备工作是不同的,所以可执行文件的格式不完全相同,导致了不同的可执行文件无法跨平台直接使用。


2. 操作系统API不同

一个可执行文件所执行的绝大多数操作(比如:文件操作、输入输出、内存申请释放、任务调度等等)都需要与操作系统交互才能完成,而不同的操作系统使用这些操作的方法完全不同。

  • Linux

扫一扫,分享到微信

微信分享二维码
ubuntu(一)—— VM虚拟机上安装ubuntu
CMake(二)—— Windows下使用CMake
  1. 1. 一、用户和用户组
    1. 1.1. 1. 用户 user
    2. 1.2. 2. 用户组 group
  2. 2. 二、文件基本属性
  3. 3. 三、Linux下的文件后缀
  4. 4. 四、为什么Linux和Windows的可执行文件不能通用
    1. 4.1. 1. 格式不同 —— 不同操作系统准备工作不同
    2. 4.2. 2. 操作系统API不同
© 绿小蕤
访问量:45304次| 访客数:38805人次
版权属于绿小蕤
本喵出生 2593 天 05 小时 31 分
  • 所有文章
  • 友链
  • 学习履历

tag:

  • Advanced Technology
  • C++
  • cmake
  • Linux
  • 硬件
  • opencv
  • 区块链
  • 深度学习
  • python
  • 机器学习
  • Hexo
  • Git
  • 纪念第一篇文章
  • 计算机网络
  • tensorflow
  • 编译
  • 配置
  • 数据结构
  • caffe
  • cs144
  • cs231n
  • ubuntu
  • hexo
  • 计算机网络、密码学
  • 操作系统
  • 算法
  • 软件
  • 云

    缺失模块。
    1、请确保node版本大于6.2
    2、在博客根目录(注意不是yilia根目录)执行以下命令:
    npm i hexo-generator-json-content --save

    3、在根目录_config.yml里添加配置:

      jsonContent:
        meta: false
        pages: false
        posts:
          title: true
          date: true
          path: true
          text: false
          raw: false
          content: false
          slug: false
          updated: false
          comments: false
          link: false
          permalink: false
          excerpt: false
          categories: false
          tags: true
    

  • vim使用说明

    2019-10-07

    #Linux

  • 区块链

    2019-01-15

    #区块链

  • 密码学

    2019-01-15

    #计算机网络、密码学

  • caffe(九)——配置文件

    2019-01-10

    #caffe

  • caffe(八)——layer

    2019-01-10

    #caffe

  • caffe(七)——blob

    2019-01-10

    #caffe

  • TCP/IP HTTP Soket

    2019-01-08

    #计算机网络

  • 网页生成

    2019-01-07

    #计算机网络

  • yilia主题的相册搭建

    2019-01-07

    #hexo

  • 算法(二)——递归、迭代、回溯

    2019-01-06

    #算法

  • 算法(一)——时间复杂度

    2019-01-06

  • caffe(六)——可视化网络工具Netscope

    2019-01-04

    #caffe

  • caffe(五)——windows下输出log日志和画出accuracy和loss曲线

    2019-01-03

    #caffe

  • caffe(四)——finetune

    2019-01-03

    #caffe

  • caffe(三)——模型和数据集

    2019-01-02

    #caffe

  • 图神经网络

    2019-01-02

    #Advanced Technology#深度学习

  • caffe(二)——训练和测试MNIST

    2018-12-27

    #caffe

  • caffe(一)——windows下环境配置

    2018-12-27

    #caffe

  • Christmas Gift——pygame、pyinstaller

    2018-12-25

  • 机器学习(五)——KNN

    2018-12-25

    #机器学习

  • 机器学习(四)——XGBoost

    2018-12-25

    #机器学习

  • 机器学习(三)——PCA

    2018-12-24

    #机器学习

  • 机器学习(二)——贝叶斯算法

    2018-12-24

    #机器学习

  • 机器学习(一)——决策树、随机森林

    2018-12-24

    #机器学习

  • 编译和链接(四)——重定义

    2018-12-19

    #编译

  • 编译和链接(三)——头文件与库

    2018-12-19

    #编译

  • 编译和链接(二)——静态链接和动态链接

    2018-12-19

    #编译

  • 编译和链接(一)——预处理、编译、链接

    2018-12-19

    #编译

  • Linux(六)——进程调度

    2018-12-17

    #Linux

  • Debug、Release版本下 多线程问题

    2018-11-28

  • Dlib中imglab生成失败的解决方法

    2018-11-19

  • C++学习:多线程

    2018-11-08

    #C++

  • cs144:1-1

    2018-10-29

    #计算机网络#cs144

  • [置顶]目录检索

    2018-10-25

  • [置顶]分享

    2018-10-25

  • win10+VS2013+Dlib 安装配置

    2018-10-22

    #配置

  • C++学习:强制类型转换

    2018-10-21

    #C++

  • C++学习:const、static、extern

    2018-10-20

    #C++

  • C++学习:指针和引用

    2018-10-20

    #C++

  • C++学习:内存管理

    2018-10-19

    #C++

  • C++学习:C和C++的I/O库区别

    2018-10-19

    #C++

  • C++学习:内存对齐

    2018-10-19

    #C++

  • C++学习:类

    2018-10-19

    #C++

  • C++学习:标准库和标准模板库

    2018-10-19

    #C++

  • 操作系统启动过程

    2018-10-18

    #操作系统

  • 处理器

    2018-10-18

    #硬件

  • 远程登陆

    2018-10-17

  • 文本文件和二进制文件

    2018-09-20

  • CUDA和OpenCL

    2018-09-17

    #硬件

  • 2018-09-15

  • Linux(五)—— .o、.a、.so

    2018-09-13

    #Linux

  • CMake(三)—— Linux下使用CMake

    2018-09-13

    #cmake#Linux

  • ubuntu(三)—— opencv、cheese安装

    2018-09-13

    #Linux#ubuntu

  • ubuntu(二)—— sublime的python环境搭建

    2018-09-13

    #Linux#ubuntu

  • ubuntu(一)—— VM虚拟机上安装ubuntu

    2018-09-13

    #Linux#ubuntu

  • Linux(四)—— 文件

    2018-09-10

    #Linux

  • CMake(二)—— Windows下使用CMake

    2018-09-10

    #cmake

  • CMake(一)—— make和cmake

    2018-09-10

    #cmake

  • Linux(三)—— 环境变量

    2018-09-09

    #Linux

  • Linux(二)—— 系统目录结构

    2018-09-09

    #Linux

  • Linux(一)—— 为什么要用Linux做开发

    2018-09-09

    #Linux

  • DLL的创建与使用

    2018-09-04

  • 剑指offer(一)

    2018-08-22

    #C++

  • 编译器、编辑器、IDE

    2018-08-22

    #软件

  • VS+opencv的配置

    2018-08-19

    #编译#配置

  • opencv(六)——图像坐标系和宽高

    2018-08-15

    #opencv

  • opencv(五)——图像读取

    2018-08-15

    #opencv

  • opencv(四)——AdaBoost

    2018-08-14

    #opencv

  • opencv(三)——绘图

    2018-08-14

    #opencv

  • opencv(二)——imgproc

    2018-08-14

    #opencv

  • opencv(一)——HighGUI

    2018-08-14

    #opencv

  • cs231n笔记(十一)——生成式对抗网络

    2018-08-14

    #深度学习#cs231n

  • cs231n笔记(十)——反卷积与特征可视化

    2018-08-14

    #深度学习#cs231n

  • cs231n笔记(九)——分类、检测、分割、跟踪

    2018-08-13

    #深度学习#cs231n

  • 嵌入式与各种板子

    2018-08-05

    #硬件

  • Tensorboard 总结

    2018-08-05

    #python#tensorflow

  • TensorFlow 总结

    2018-08-05

    #python#tensorflow

  • cs231n笔记(八)——CNN经典网络

    2018-08-05

    #深度学习#cs231n

  • cs231n笔记(七)——深度学习框架

    2018-08-03

    #深度学习#cs231n

  • cs231n笔记(六)——循环神经网络

    2018-08-02

    #深度学习#cs231n

  • TensorFlow(四)——RNN实现MNIST的分类

    2018-08-02

    #python#tensorflow

  • NLP——word2vec

    2018-08-01

    #深度学习

  • TensorFlow(三)——两层CNN神经网络实现MNIST的分类

    2018-07-31

    #python#tensorflow

  • Ipython 与 Jupyter Notebook

    2018-07-29

    #python

  • TensorFlow(二)——单层神经网络实现MNIST的分类

    2018-07-26

    #python#tensorflow

  • TensorFlow(一)——两层神经网络预测线性回归

    2018-07-26

    #python#tensorflow

  • cs231n笔记(二)——最优化

    2018-07-26

    #深度学习#cs231n

  • 进程和线程

    2018-07-26

    #硬件

  • cs231n笔记(五)——卷积神经网络

    2018-07-25

    #深度学习#cs231n

  • cs231n笔记(四)——神经网络

    2018-07-18

    #深度学习#cs231n

  • cs231n笔记(三)——分段式反向传播求梯度

    2018-07-16

    #深度学习#cs231n

  • cs231n笔记(一)——线性回归、逻辑回归、多分类

    2018-07-15

    #深度学习#cs231n

  • 2018-07-15

  • 程序是怎样跑起来的

    2018-07-14

    #硬件

  • 解决pip安装慢的问题

    2018-06-28

    #python

  • Deep-Learning-吴恩达-作业(七)

    2018-06-28

    #深度学习#python

  • Deep Learning 吴恩达 课程笔记大纲

    2018-06-27

    #深度学习

  • Deep-Learning-吴恩达-作业(六)

    2018-06-25

    #深度学习#python

  • Deep-Learning-吴恩达-作业(五)

    2018-06-25

    #深度学习#python

  • Deep-Learning-吴恩达-作业——关于plot_decision_boundary()函数的理解

    2018-06-25

    #python#机器学习

  • Deep-Learning-吴恩达-作业(四)

    2018-06-24

    #深度学习#python

  • 深度学习和强化学习

    2018-06-21

    #机器学习

  • Deep-Learning-吴恩达-作业(三)

    2018-06-20

    #深度学习#python

  • Deep Learning 吴恩达 作业(二)

    2018-06-20

    #深度学习#python

  • Deep Learning 吴恩达 作业(一)

    2018-06-15

    #深度学习#python

  • anaconda,conda,pip的关系

    2018-06-13

    #python

  • 正则表达式

    2018-06-11

  • 机器学习算法回顾目录

    2018-06-05

    #机器学习

  • Cygwin 安装

    2018-06-01

    #Linux

  • Git 学习

    2018-06-01

    #Git

  • CryptoKitties

    2018-05-28

    #区块链

  • 2050大会——关于图像处理的收获

    2018-05-28

    #Advanced Technology

  • 虚拟机和云(特别简陋的认识)

    2018-05-18

    #云

  • 啥叫运营商

    2018-05-18

  • XML、YAML、JSON

    2018-05-14

    #数据结构

  • 傅里叶变换和图像处理

    2018-05-14

    #opencv

  • 机器学习算法大总结

    2018-05-11

    #机器学习

  • python入门编程

    2018-05-09

    #python

  • CommandLineParse类

    2018-05-08

    #opencv

  • argc和argv

    2018-05-08

    #C++

  • Hexo主题的优化

    2018-05-08

    #Hexo

  • ImageWatch

    2018-05-07

    #opencv

  • 天池比赛入门

    2018-05-07

    #机器学习

  • 编译器和解释器

    2018-05-04

    #编译

  • GitHub+Hexo 搭建自己的博客

    2018-05-04

    #Hexo

  • Hello GitHub

    2018-05-03

    #Hexo#纪念第一篇文章

  • 师兄的Blog
JZY

研究生:东南大学电子学院
本科:南京理工大学电光学院