一.Linux是什么
1.百科
(1)Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多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下通过相应的模拟器运行常见的DOS、Windows的程序。这为用户从Windows转到Linux奠定了基础。许多用户在考虑使用 Linux时,就想到以前在Windows下常见的程序是否能正常运行,这一点就消除了他们的疑虑,爽吧。
(3)多用户,多任务
Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现在电脑最主要的一个特点, Linux可以使多个程序同时并独立地运行
(4)良好的界面
(1) 现今主流的桌面环境有KDE,gnome,Xfce,LXDE等,除此之外还有Ambient,EDE,IRIX Interactive Desktop,Mezzo,Sugar,CDE 等。
(2)
(5)支持多种平台
Linux可以运行在多种硬件平台上,如具有x86、680x0、SPARC、Alpha等处理器的平台。此外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就好,会出现类似上面画面
| 2 | root | root | 4096 | 2011-12-03 | bin | ||||
文件权限 | 连接数 | 文件所有者 | 文件所属用户组 | 文件大小 | 文件最后修改的时间 | 文件名 | ||||
| | | | | | |
文件类型:
[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系统上的文件名真的是让你了解文件可能的用途而已,真正的执行与否仍然需要权限的规范才行
四.Linux目录
FHS定义出根目录底下应该要有下面这些次目彔的存在才好:
底下是几个在Linux当中也是非常重要的目录呢:
另外要注意的是,因为根目录与开机有关,开机过程中仅有根目录会被挂载, 其他分割槽则是在开机完成后才会持续的进行挂载的行为。就是因为如此,因此根目录下与开机过程有关的目录(如下)不能与根目录分割:
-
/etc:配置文件
-
/bin:重要执行档
-
/dev:所需要的装置档案
-
/lib:执行档所需的函式库不核心所需的模块
-
/sbin:重要的系统执行文件
/usr的意义与内容:
/var的意义与内容:
如果我们将整个目录树以图标的方法来显示,并将较为重要的档案数据列出来的话,那举目录树架构有点像这样呢:
感谢:
http://mp.weixin.qq.com/s?__biz=MzA4NDEzMDk4OA==&mid=203553321&idx=2&sn=ab7a126974d633164f47b6a5ad501d0e#rd