一、Linux 简介
1、Linux 起源
1991年10月,Linus Torvalds(李纳斯 脱袜子) 在赫尔辛基大学接触 UNIX , 他希望能在自己的电脑上运行一个类似的操作系统。可是 UNIX 的商业版本非常昂贵,于是他从MINIX开始 入手,计划开发一个比MINIX性能更好的操作系统。很快他就开始了自己的开发工作。他第一次发行的版本很快吸引了一些黑客。尽管最初的LINUX并没有 多少用处,但由于一些黑客的加入使它很快就具有了许多吸引人的特性,甚至一些对操作系统开发不感兴趣的人也开始关注它。
2、Linux 与 Unix的关系
由于Linus 当初只是为了开发一个性能更好的Minix而开发了Linux,所以Linux从一开始就是在模仿Unix。但是这种模仿并不是简单的copy,而是对于原有功能的重新实现。Linux以一种全新的方式实现了Unix的绝大多数特性,所以某一本汉语辞典是这样解释Linux的:一种开源的类Unix操作系统。这句话说的很准确,类Unix也是Linux与生俱来的别称。但是需要记住的是,Linux不是Unix,他们只是功能上的相近,在底层实现上是有很大差距的。这里就要谈到一个著名的开源组织,GNU组织,可以说如果没有GNU,就没有今天的Linux。因为GNU计划,才有大量的软件被移植到Linux系统下面。GNU是 GNU is Not Unix的递归缩写。
3、Linux 有哪些发行版?
狭义上的 Linux 就表示 Linux 内核(kernel)。如果以这个内核为基础,附加一大堆软件包,甚至提供用户界面,这就叫做“Linux发行版”(distribution)。本文如果没有特殊说明,所有谈到的“Linux”都是指附带各种软件的发行版。
几大派系的发行版:(按打包方式分)
1)【DPKG】 Debian,Ubuntu,Deepin, Mint
2)【RPM】 RHEL, Fedora, CentOS, Suse, Mandriva, Red Flag
3)【Slackware】 Slackware, Kate OS
4)【Other】 Gentoo, Arch Linux, Chakra, Manjaro
4、Linux 比 Windows 更安全?
这是一个会引发世界大战的话题,在这里我只作简单的阐述。
Linux 因为开源特性,所以你可以从源码层面去找漏洞。同时因为 Linux 被广泛使用在各种关键业务中,这也激励了相当一部分黑客去挖掘 Linux 的漏洞。
对于 Windows 而言,因为用户群庞大,可以攫取的利益点甚多,所以总有高手在研究 Windows 的技术。正是因为有人去“搞”这些系统,所以它们的安全技术也在不断升级,安全性越来越高,可以说 Linux 和 Windows 的安全性不分伯仲。
至于大家经验上认为 Windows 安全性比 Linux 差,这应该归咎于用户习惯吧。完善的用户角色定义、严格的权限管理,Windows 不比 Linux 差(当然是win7之后),只是 Windows用户普遍非专业人士,在实际使用中并没有严格管理好权限分配。
谈到这里,就不得不说 OS X,虽然 OS X 下面的木马病毒远远少于 Windows 的病毒,但是却不能改变OS X的安全性远低于 Windows 以及 Linux 这一不争的事实。由于我们工作室有好多MacBook,为了防止被打,此处省略无数字。。。
二、装机预备知识
1. 文件系统
Linux下面多使用 ext 格式的分区,从开始的 ext2 到后来的 ext3,再到现在的 ext4,它们一直是众多 Linux 发行版普遍使用的磁盘格式。Ext3 及以后的版本是具有日志功能的,所以也被称为日志型文件系统。其他的在 Linux 下面常见的分区格式有 ReiserFS(被SUSE Linux作为默认选择)、XFS(由SGI开发)、JFS(由IBM开发)等。关于这些文件系统的特点不多介绍,读者如果有兴趣可以自行查找相关资料学习。
2. 一切皆文件
一切皆文件,这是Unix的哲学,所以自然地成为了Linux的原则。
在 Unix/Linux 系统里面,绝大多数配置都是写在文件里的,所以在 Linux 下面如果想要修改某些配置,那么就去找到它的配置文件吧,然后使用任何你喜欢的文本编辑器修改它即可。
“一切皆文件”其实最重要的是体现在系统层面,比如程序运行时候的相关信息都对应着/proc下面的某个文件;想要对某个硬件操作,大部分情况下只需要对/dev下面的某个文件操作即可。
但是在Unix/Linux下面并没有彻底贯彻这些思想,比如网络通讯中的sockets就没有以“文件”的方式处理。同时,“一切皆文件”也并不是Unix独有的思想,虽然在Windows 下面不容易看出这种思想的体现,但是在 NT 内核的底层,还是可以看到很多这种思想的影子的。(作为第一个成功地被广泛使用的操作系统,Unix 给后继者们留下了不可磨灭的印记)
3. Linux 文件树的组织
首先在 Linux 下面请不要使用“文件夹”这种说法,对应的叫做“目录”,其他很多领域也都采用“目录”这种更专业的说法。 Linux 系统下所有的文件以及目录组成了一棵文件树,这棵树的顶层叫做“根目录”,其他所有的目录是隶属于根目录的子目录。
下面详细介绍根目录下面各个目录的含义以及作用。
/bin:
主要存放系统基本程序(命令)
/boot:
内核以及启动所需的文件(这里说一下,/boot/efi 会被挂载为UEFI的ESP启动分区)
/dev:
磁盘、网卡、内存等设备项
/etc:
各种程序以及系统自身的配置文件目录
/home:
用户家目录
/lib:
C 编译库以及其他的一些库
/media:
移动存储设备的挂载点
/mnt:
与/mdeia功能类似
/opt:
可选软件包的安装位置
/proc:
进程相关数据
/root:
超级用户的家目录
/sbin:
系统程序(命令)所在的地方
/tmp:
临时目录,每次重启会自动清空(部分发行版将tmp挂载为虚拟目录)
/usr:
次要软件以及文档的目录(用户态程序)
4. 分区的挂载
如果想在 linux 上面访问某一个分区的数据,就需要将其挂载在文件树上面。比如需要挂载一个U盘,就经常在/media目录下面新建一个目录,然后将USB挂载(mount)到该目录,即可访问。
如果用来挂载的目录不为空,在挂载分区之后,会“覆盖”原目录的内容。卸载分区之后,该目录恢复其自身数据。
在 Linux 下面,安装系统的时候,可以建立专门的分区并挂载为 /home。这样当需要重新安装系统时,只需要格式化根分区(/)即可,之后重新挂载 /home 分区,用户数据、自定义配置 就都回来啦。
三、基本使用命令介绍(以 Ubuntu 为例)
1、如何使用 Linux
1)文本模式,切换到虚拟控制台:Ctrl+Alt+F[1-6]
2)图形模式,切换到图形控制台:
Ctrl+Alt+F7
这里涉及到虚拟控制台的概念,键入tty可以显示,这里不赘述。
2、如何启动 Terminal(终端)
1)Super+R,搜索 "Terminal" 或者 "终端"
2)Ctrl+Alt+T
3、终端使用技巧
1)Tab :命令以及路径补全
2)上下箭头:重放历史命令
3)Ctrl+Shift+ C/V :复制、粘贴功能
4)Shift + PageUP/PageDown: 上下滚动屏幕
5)Less、More:输出过多时分页显示
4、获得权限
在 Linux 系统中,root拥有最高权限(此处忽略SeLinux等异类)。安装软件、添加设备等动作需要root权限操作。
Ubuntu 默认禁止了 root 用户使用图形界面,root密码为空,因此无法直接使用root用户进行操作。
Sudo,方便一般用户临时获得管理员权限。前提是该用户在 /etc/sudoers 文件里面有配置项并赋予了一定的权限。
5、其他常用命令(详细参数略)
pwd:
Print Working Directory,显示当前工作目录
cd:
Change working Directory,切换工作目录
ls:
List,显示当前目录下面的文件
touch:
建立新文件以及修改文件时间戳
mkdir:
Make Directories,建立新目录
rmdir: Remove Directories,删除目录
rm:
Remove, 删除文件
cp:
Copy,复制 文件/目录
ln: Link,
建立硬链接/软链接(软链接类似与Win下的快捷方式)
exit:
退出
shutdown:
定时关机/重启等
poweroff:
关机
reboot:
重启
6、系统更新维护
apt-get
apt-get update
更新本地软件包数据,获得远程软件源上的最新更新。
apt-get install
[软件名] 安装软件,建议现场体验安装 vim
apt-get upgrade
自动升级可升级的软件
apt-get dist-upgrade
系统升级(系统版本和大量软件的升级)
apt-get remove
[软件名] 卸载软件
apt-get purge
[软件名] 卸载软件,同时删除配置文件
7、获得帮助
1)whatis
2) -h / -H / --help
3)man
4)info