轻松学习之Linux教程二 一览纵山小:Linux操作系统详解

本系列文章由@超人爱因斯坦出品,转载请注明出处。

        文章链接:

         http://hpw123.net/member/index.php?uid=hpw&action=viewarchives&aid=66

作者:超人爱因斯坦    个人网站:http://www.hpw123.net

邮箱: [email protected]

CSDN:http://blog.csdn.net/u010283694

这篇文章主要是介绍Linux,让大家认识Linux是什么,着重讲解其目录树及文件权限;

嘿嘿,开始之前呢,再说些废话,不要嫌烦哦,大家也许都还没有用过Linux系统吧,那么刚装好一个系统后,是不是也得像windows装好后还得装驱动啥的,好吧,如果是第一次玩ubuntu14.04,建议大家先看看这两篇文章,Ubuntu
14.04 LTS使用全攻略之一:系统安装和基本配置
 Ubuntu
14.04 LTS使用全攻略之二:常用软件安装和系统详细设置
 相信大家会有很大收获的。特然觉得Linux so easy,后期会写一些关于Linux各种编程环境搭建的博客,比如C++编程用什么IDE,安卓开发环境怎么搭建,Eclipse怎么安装,OpenCV怎么配置等等

好了,让我们进入主题吧:

一.Linux是什么

   1.百科

(1)Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIXUNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位64位硬件。Linux继承了Unix网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

 (2)Linux常见版本:Debian,Mandrake,Ubuntu,Red Hat Linux,SuSE,Linux Mint,Gentoo,Fedora Core,centos

   2.基本思想

Linux的基本思想有两点:第一,一切都是文件;第二,每个软件都有确定的用途。其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令硬件软件设备、操作系统进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。至于说Linux是基于Unix的,很大程度上也是因为这两者的基本思想十分相近。

    3.特性

    (1)完全免费

    (2)完全兼容POSIX1.0标准

哈哈,一头雾水了吧,这什么东东啊,点击百度百科:POSIX

其使得可以在Linux下通过相应的模拟器运行常见的DOSWindows的程序。这为用户从Windows转到Linux奠定了基础。许多用户在考虑使用Linux时,就想到以前在Windows下常见的程序是否能正常运行,这一点就消除了他们的疑虑,爽吧。

    (3)多用户,多任务

Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现在电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行

    (4)良好的界面

(1) 现今主流的桌面环境有KDEgnomeXfceLXDE等,除此之外还有AmbientEDE,IRIX
Interactive Desktop,MezzoSugarCDE等。

(2) Linux同时具有字符界面和图形界面。在字符界面用户可以通过键盘输入相应的指令来进行操作。它同时也提供了类似Windows图形界面的X-Window系统,用户可以使用鼠标对其进行操作。在X-Window环境中就和在Windows中相似,可以说是一个Linux版的Windows。

    (5)支持多种平台

Linux可以运行在多种硬件平台上,如具有x86、680x0、SPARCAlpha处理器的平台。此外Linux还是一种嵌入式操作系统,可以运行在掌上电脑机顶盒游戏机上。2001年1月份发布的Linux
2.4版内核已经能够完全支持Intel 64位芯片架构。同时Linux也支持多处理器技术。多个处理器同时工作,使系统性能大大提高。

二.用户,用户组

(1)文件所有者

           Linux有这么多用户,还分什么用户组,有什么用呢?

嘿嘿,由于Linux是个多用户,多任务的系统,因此可能常常会有多人同时使用这台主机来进行工作的情况发生,为了考虑每个人的隐私权以及每个人喜好的工作环境,因此,这个”文件所有者"的角色就显得相当重要了呢。例如你将你的Email情书转存成文件后,放在你自己的主文件夹中,你总不希望被别人看见自己的情书吧?这个时候你就把改文件设置成只有文件所有者才能查看与修改这个文件的内容,那么即使其他人知道有这个相当“有趣“的东东,不过由于你设置了适当的权限,呵呵,你懂得。

(2)用户组概念

           那么用户组呢?为何要配置文件还有所属的用户组呢?

额,其实用户组最有用功能之一就是当你在团队开发资源的时候,举例技术哪家强?假设主机上有两个竞争关系团体project1、project2,两个团体组员分别为class1、class2,还有一人是老师teacher,当然老师可以看两个团体的资料内容,两个竞争团队肯定是相互保密的啊,怎么办呢?这时用户组权限就有用了啊,组内可以相互查看,组外不可查看,每个用户都可以被多个用户组支持,即老师同时是两个组的成员,一切都被解决了吧

用户的概念:自己可见,其他人不可见,当然神(root)除外

用户组的概念:组内成员可见,其他人不可见,加入一个用户组,开启用户组读、写、执行等权限,组内成员就读、写、执行了

(3)其他人的概念

这个就不用多说了吧,除了自己,用户组成员,还有一个天神(root)

(4)用户身份与用户组记录的文件

一般情况下一般用户和神(root)的相关信息都记录在/etc/passwd这个文件中,个人密码记录在/etc/shadow这个文件中,用户组信息记录在/etc/group内,千万别删这三个文件啊,会要命的。

三.Linux文件权限

(1)Linux文件属性

上图啦(图来自网络,在windows下写的,就没打开我的ubuntu)

找一个目录打开终端输入ls -al ubuntu直接ll就好,会出现类似上面画面

d rwx r-x r-x
2 root root 4096 2011-12-03 bin
文件权限 连接数 文件所有者 文件所属用户组 文件大小 文件最后修改的时间 文件名
文件类型 文件所有者权限 文件所属用户组权限 其他人权限

权限rwx-分别为读,写,执行,无权限

   文件类型:

       [d] 目录

       [-] 文件

       [l] 连接文件

       [b] 设备文件里面的可供存储的接口设备

       [c] 设备文件里面的串行端口设备,如键盘,鼠标(一次性读取设备)

第二列表示有多少文件名连接到此节点(i-node)

每个文件都会将它的权限与属性记录到文件系统的i-node中,不过我们使用的目录树却是势使用文件名来记录,因此每个文件名都会连接到一个i-node,这个属性记录的就是有多少不同过的文件链接到相同的一个i-node(这个以后说)。

(2)目录与文件的权限意义(注意不太一样的呢)

 
      (1)权限对文件的意义

文件是实际含有数据的地方,包括一般文本文件,数据库内容文件,二进制可执行文件等

                r(read):可读取此文件的实际内容,如读取文本文件的文字内容等。

                w(write):可以编辑,新增或者是修改文件的内容(但不含删除该文件)

                x(execute):该文件具有可以被系统执行的权限

                注:在Windows下面一个文件是否具有执行的能力是通过“扩展名”来判断的,例如exe,bat,com等,但是在Linux下,我们的文件是否能被执行则是由是否具有“x”这个权限来决定的哦,而跟文件名没有绝对的关系。

 
      (2)权限对目录的意义

               文件是存放实际数据的所在,目录主要的内容是记录文件列表,文件名与目录由强烈的关联

                r(read contents in directory):便是具有读取目录结构列表的权限,你可以查询该目录下的文件名数据,即ls可以将目录的内容列表列出来哦

                w(modify contents of directory):具有更改目录结构列表的权限

              (1)目录下可以新建新的文件或目录(子目录)

              (2)删除已经存在的文件与目录(不论该文件的权限如何)

              (3)将已存在的文件或目录进行重命名

              (4)转移该目录内的文件,目录位置

               x(access directory):代表的是用户能否进入该目录成为工作目录的用途,那么工作目录是什么东东啊,其实它就是你目前所在的目录,变换目录的命令是cd(change directory)

(3)Linux文件种类与扩展名

          前面也强调过,Linux中一切皆文件,任何设备在Linux下都是文件,不仅如此,连数据通信的接口也是专门的文件负责呢,所以,你会了解到,Linux的文件种类真的很多呢,那么问题就来了,除了前面提到的一般文件(-)目录文件(d)之外,还有那些种类的文件呢?

  • 文件种类

        普通文件(regular
file)

           1.纯文本文件(ASCLL)

2.二进制文件(binary)

3.数据格式文件(data)

目录(directory)

        连接文件(link)其实就是Windows系统下的快捷方式吧

        设备与设备文件(device)

            1.块设备文件(block)就是一些存储数据,以提供系统随机访问的接口设备,如硬盘

2.字符设备文件(character) 就是一些串行端口的接口设备,如键盘鼠标等

3.套接字(sockets)数据接口文件,通常被用在网路上的数据连接,如WIFI数据通信

4.管道(FIFI,pipe)主要目的在解决多个程序同时访问一个文件所造成的错误问题

  • Linux文件扩展名

            哈哈,这么多种类,那么问题就来了?怎么辨别,扩展名是啥了啊,通常通过ll命令查看文件属性,文件权限的第一个字母标识的就是文件种类

其实Linux文件是没有扩展名的,虽然如此,我们仍然希望可以有扩展名来了解该文件是什么东东呢

*.sh 脚本文件或批处理文件(scripts)

*Z, *.tar, *.tar.gz, *.zip, *.tgz 经过打包的压缩文件

*.html, *.php 网页相关文件

基本上Linux系统上的文件名真的是让你了解文件可能的用途而已,真正的执行与否仍然需要权限的规范才行

未完待续。。。

ok,今天的内容大概就是这些,如果有什么写的不对的,求大神指正,我们下篇文章见:)

时间: 2024-10-16 21:57:16

轻松学习之Linux教程二 一览纵山小:Linux操作系统详解的相关文章

轻松学习之Linux教程二 一览纵山小:Linux操作系统具体解释

本系列文章由@超人爱因斯坦出品,转载请注明出处.         文章链接:          http://hpw123.net/a/Linux/Linuxjichu/2014/1021/70.html 作者:超人爱因斯坦    个人站点:http://www.hpw123.net 邮箱: [email protected] CSDN:http://blog.csdn.net/u010283694 这篇文章主要是介绍Linux,让大家认识Linux是什么,着重解说其文件夹树及文件权限: 嘿嘿.

Hadoop学习之路(二十三)MapReduce中的shuffle详解

概述 1.MapReduce 中,mapper 阶段处理的数据如何传递给 reducer 阶段,是 MapReduce 框架中 最关键的一个流程,这个流程就叫 Shuffle 2.Shuffle: 数据混洗 ——(核心机制:数据分区,排序,局部聚合,缓存,拉取,再合并 排序) 3.具体来说:就是将 MapTask 输出的处理结果数据,按照 Partitioner 组件制定的规则分发 给 ReduceTask,并在分发的过程中,对数据按 key 进行了分区和排序 MapReduce的Shuffle

SpringMVC轻松学习-环境搭建(二)

基于spring2.5的采用XML配置的spring MVC项目 注:本项目全部基于XML配置.同时,集成了hibernate.采用的是:spring MVC+hibernate+spring的开发架构. 1.      建立web项目 2.      导入jar包(spring.jar, spring-webmvc.jar, commons-logging.jar.其他jar包为hibernate相关jar包) 上面是SpringMVC的所有包,我将这些jar包放在了我的百度云盘中,当然你也可

Linux Shell系列教程之(八)Shell printf命令详解

本文是Linux Shell系列教程的第(八)篇,更多shell教程请看:Linux Shell系列教程 在上一篇:Linux Shell系列教程之(七)Shell输出这篇文章中,已经对Shell printf命令有了一个简略的介绍,本篇给大家详细介绍下Shell中的printf命令. 一.Shell printf命令语法 printf format-string [arguments...] format-string为描述格式规格的字符串,用来描述输出的排列方式,最好为此字符串加上引号.此字

Unix/Linux环境C编程入门教程(41) C语言库函数的文件操作详解

?? 上一篇博客我们讲解了如何使用Linux提供的文件操作函数,本文主要讲解使用C语言提供的文件操作的库函数. 1.函数介绍 fopen(打开文件) 相关函数 open,fclose 表头文件 #include<stdio.h> 定义函数 FILE * fopen(const char * path,const char * mode); 函数说明 参数path字符串包含欲打开的文件路径及文件名,参数mode字符串则代表着流形态. mode有下列几种形态字符串: r 打开只读文件,该文件必须存

Swift 学习之二十一:?和 !(详解)

Swift语言使用var定义变量,但和别的语言不同,Swift里不会自动给变量赋初始值, 也就是说变量不会有默认值,所以要求使用变量之前必须要对其初始化 .如果在使用变量之前不进行初始化就会报错: [plain] view plaincopyprint? var stringValue : String //error: variable 'stringValue' used before being initialized //let hashValue = stringValue.hashV

黄聪:WordPress 多站点建站教程(二):后台(管理网络)设置详解,如何管理子站的用户、主题、插件、设置等功能

建立好了子站,我们需要有个地方配置所有子站的主题.插件等功能,我们可以在后台看到 我的站点--管理网络 如下图: 在 管理网络--仪表盘 里面,我们可以创新用户和站点,也提供了查询功能. 要注意的是:当你新上传的主题或者插件,都需要在管理网络那边的主题和插件里面将你上传的主题和插件开启.这样才可以在你的子站点中查看的到. 黄聪:WordPress 多站点建站教程(二):后台(管理网络)设置详解,如何管理子站的用户.主题.插件.设置等功能

qml学习笔记(二):可视化元素基类Item详解(上半场anchors等等)

原博主博客地址:http://blog.csdn.net/qq21497936本文章博客地址:http://blog.csdn.net/qq21497936/article/details/78516201 qml学习笔记(二):可视化元素基类Item详解(上半场anchors等等) 本学章节笔记主要详解Item元素(上半场主要涉及anchors锚),因为所有可视化的界面元素都继承于Item,熟悉Item后,不同的继承子类,有其定制的属性(从几个到几十个不等). <Qt实用技巧:在Qt Gui程

Linux IO模式及 select、poll、epoll详解

注:本文是对众多博客的学习和总结,可能存在理解错误.请带着怀疑的眼光,同时如果有错误希望能指出. 同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案是不同的.所以先限定一下本文的上下文. 本文讨论的背景是Linux环境下的network IO. 一 概念说明 在进行解释之前,首先要说明几个概念: - 用户空间和内核空间 - 进程切换 - 进程的阻塞 - 文件描述符 - 缓存 I/O 用户空间与内核空间 现在操作系统都是采用虚拟存储器,那么对32