操作系统 Linux(/ˈlɪnəks/ lin-əks)是一种自由和开放源代码1的类UNIX操作系统。
Linux严格来说是单指操作系统的内核,因操作系统中包含了许多用户图形接口和其他实用工具。如今Linux常用来指基于Linux的完整操作系统,内核则改以Linux内核称之。
下面图1.1.1是来自于鸟哥linux私房菜对《认识 BASH 这个 Shell》进行讲解时给出的硬件、kernel、shell….与用户关系的图示;图1.1.2 来自于IBM开发者文档中对Linux 内核剖析中,对kernel介绍时采用的基本结构图;图1.1.3是同上文档中对内核的主要子系统的示意图2。
OS 发展简史(参照维基)
Unix -> GNU -> BSD -> MINIX -> Linux
最新kernel 版本
下图是来自于维基的unix进化时间表
以下内容来自于维基:
Tux(一只企鹅)是Linux的标志。将企鹅作为Linux标志是由林纳斯·托瓦兹提出的。
大多数人相信,“Tux”这个名字来源于Torvalds UniX,而不是因为它看起来像是穿着一件黑色小礼服(tuxedo)。
这个企鹅图案在最佳Linux图标竞赛中被选中。其他一些图案可以在Linux图标大赛网站中找到。Tux的设计者是Larry Ewing5,他于1996年,利用GIMP软件设计出了这个企鹅,并在以下条例下发布:
Permission to use and/or modify this image is granted provided you acknowledge me [email protected] and The GIMP if someone asks.
Tux已经成为Linux和开源社区的象征。英国Linux用户组(British LUG)甚至在当地的动物园认养了几只企鹅。
C语言、汇编语言
* (ps:可以顺便提一下gcc,cmake) *
①在X-Window图形操作界面中按“Alt+Ctrl+Fn(n=1~6)”就可以进入终端界面。这就意味着你可以同时拥有X-Window加上6个终端。
②如果不行,就加上Backspace键:(同时按住Alt+Ctrl,在按一下Backspace并松开,再按Fn)在X-Window图形操作界面中按“Alt+Ctrl+Backspace+Fn(n=1~6)”就可以进入终端终端切换到图像界面
①按“Alt+Ctrl+F7”或者“Alt+Ctrl+Backspace+F7”即可。
GUI接口:可视化操作
Gnome:C语音开发
KDE:C++语音开发
XFace:简洁的适合用于嵌入式系统的桌面
CLI接口:
命令提示符,prompt,bash(shell)
#:root(超级用户)
$:普通用户
命令:
命令格式:
命令 选项 参数
选项:
短选项:-
多个选项可以组合: -a -b = -ab
长选项:--
参数:命令的作用对象
Linux 的基本原则:
一个标准PC的操作系统应该提供以下的功能:
进程管理(Processing management)
内存管理(Memory management)
文件系统(File system)
网络通信(Networking)
安全机制(Security)
用户界面(User interface)
驱动程序(Device drivers)
- 宏内核(linux)
- 微内核
- 混合内核
- 外内核
- 单用户 单进程
- 单用户 多进程
- 多用户 多进程
DEC Alpha, ARM, AVR32, Blackfin, ETRAX CRIS, FR-V, H8/300, Itanium/IA-64, M32R, m68k, Microblaze, MIPS, MN103, OpenRISC, PA-RISC, PowerPC, s390, S+core, SuperH, SPARC(包括SPARC64), TILE64, Unicore32, x86(包括x86-64), Xtensa等
可以将操作系统分为8位、16位、32位、64位、128位的操作系统。
可分为批处理操作系统(如MVX、DOS/VSE)、分时操作系统( 如Linux、UNIX、XENIX、Mac OS X)、实时操作系统(如iEMX、VRTX、RTOS,RT WINDOWS);
* ps: 虽然前面我们对照windows讲解linux ,但实际上,这两者还是有不少区别,应用领域也好,使用习惯也好,大家在学习的时候要注意这一点。 *
vm eg: vmware workstation 、VirtualBox
lxc : vagrant 、docker
* ps:前面有同学说到内存是存储设备的时候,我说的比较含糊,因为当时重在引入的方法,突出了硬盘,却忽略了内存,这个需要再次更正。*
在讲硬盘分区之前,我先来普及一下硬盘的相关分类,硬盘一般分为IDE硬盘、SCSI硬盘和SATA硬盘三种,
在Linux系统中,IDE接口的硬盘被称为hd,SCSI和SATA接口的硬盘则被称为sd,其中IDE硬盘基本上已经淘汰,现在市面上最常见的就是SATA接口的硬盘,第1块硬盘称为sda,第2块硬盘称为sdb……,依此类推。
一块硬盘最多有4个主分区,主分区以外的分区称为扩展分区,硬盘可以没有扩展分区,但是一定要有主分区,在主分区中要有一个激活分区用来启动Windows系统,在扩展分区中可以建立若干个逻辑分区,因此,最合理的分区方式应该最多分三个主分区,一个扩展分区,这样可以有效地利用有限的主分区,然后在扩展分区中建立逻辑分区。
在Linux系统中每一个硬盘总共最多有 16个分区,硬盘上的4个主分区,分别标识为sdal、sda2、sda3和sda4,逻辑分区则从sda5开始标识一直到sda16。
原文链接
Linux支持很多种不同类型的文件系统。Linux能够对FAT16/32和NTFS分区进行读写。
常见的用于安装Linux的文件系统主要有ext3, ReiserFS, XFS, JFS等8。
通常我们都会使用ext3作为默认的文件系统。
我们使用Ubuntu是作为桌面系统来使用的,大多数情况下,文件系统的性能并不是我们所需要考虑的大问题。也许你会看到很多对ext3的负面评价,但是ext3是最老牌,最久经考验的Linux文件系统,所 以选择它没错。
Ubuntu默认采用的是ext3文件系统。
最大分区大小:ext3是4TB,ReiseFS是16TB。FAT32在Windows下最大分区是32GB,而Linux中的FAT32可支持到2TB。
最大文件大小:ext3是2GB-4GB,ReiseFS是8TB,FAT32是4GB。
Linux系统能支持多种目前流行的文件系统,推荐用EXT4。Linux的文件类型主要有:
1) 普通文件,分为纯文本和二进制。
2) 目录文件,存储文件的地方。
3) 链接文件,指向同一个文件或目录的的文件。
4) 设备文件,分为块设备和字符设备。
5)管道文件,提供进程间通信
6)套接字文件,与网络通信有关
Linux使用标准的目录结构,安装程序已经为用户创建了文件系统和完整而固定的目录组成形式,并指定了每个目录的作用和其中的文件类型。
Tables | Are |
---|---|
/ | 第一层次结构 的根、 整个文件系统层次结构的根目录。 |
/bin/ | 需要在单用户模式可用的必要命令(可执行文件);面向所有用户,例如: cat、 ls、 cp。 |
/boot/ | 引导程序文件,例如: kernel、initrd;时常是一个单独的分区 |
/dev/ | 必要设备, 例如:, /dev/null. |
/etc/ | 特定主机,系统范围内的配置文件。 |
/etc/opt/ | /opt/的配置文件 |
/etc/X11/ | X Window系统(版本11)的配置文件 |
/etc/sgml/ | SGML的配置文件 |
/etc/xml/ | XML的配置文件 |
/home/ | 用户的家目录,包含保存的文件、个人设置等,一般为单独的分区。 |
/lib/ | /bin/ 和 /sbin/中二进制文件必要的库文件。 |
/media/ | 可移除媒体(如CD-ROM)的挂载点 (在FHS-2.3中出现)。 |
/mnt/ | 临时挂载的文件系统。 |
/opt/ | 可选应用软件 包。 |
/proc/ | 虚拟文件系统,将内核与进程状态归档为文本文件。例如:uptime、 network。在Linux中,对应Procfs格式挂载。 |
/root/ | 超级用户的家目录 |
/sbin/ | 必要的系统二进制文件,例如: init、 ip、 mount。 |
/srv/ | 站点的具体数据,由系统提供。 |
/tmp/ | 临时文件(参见 /var/tmp),在系统重启时目录中文件不会被保留。 |
/usr/ | 用于存储只读用户数据的第二层次; 包含绝大多数的(多)用户工具和应用程序。 |
/usr/bin/ | 非必要可执行文件 (在单用户模式中不需要);面向所有用户。 |
/usr/include/ | 标准包含文件。 |
/usr/lib/ | /usr/bin/和/usr/sbin/中二进制文件的库。 |
/usr/sbin/ | 非必要的系统二进制文件,例如:大量网络服务的守护进程。 |
/usr/share/ | 体系结构无关(共享)数据。 |
/usr/src/ | 源代码,例如:内核源代码及其头文件。 |
/usr/X11R6/ | X Window系统 版本 11, Release 6. |
/usr/local/ | 本地数据的第三层次, 具体到本台主机。通常而言有进一步的子目录, 例如:bin/、lib/、share/. |
/var/ | 变量文件——在正常运行的系统中其内容不断变化的文件,如日志,脱机文件和临时电子邮件文件。有时是一个单独的分区。 |
/var/cache/ | 应用程序缓存数据。这些数据是在本地生成的一个耗时的I/O或计算结果。应用程序必须能够再生或恢复数据。缓存的文件可以被删除而不导致数据丢失。 |
/var/lib/ | 状态信息。 由程序在运行时维护的持久性数据。 例如:数据库、包装的系统元数据等。 |
/var/lock/ | 锁文件,一类跟踪当前使用中资源的文件。 |
/var/log/ | 日志文件,包含大量日志文件。 |
/var/mail/ | 用户的电子邮箱。 |
/var/run/ | 自最后一次启动以来运行中的系统的信息,例如:当前登录的用户和运行中的守护进程。现已经被/run代替[13]。 |
/var/spool/ | 等待处理的任务的脱机文件,例如:打印队列和未读的邮件。 |
/var/spool/mail/ | 用户的邮箱(不鼓励的存储位置) |
/var/tmp/ | 在系统重启过程中可以保留的临时文件。 |
/run/ | 代替/var/run目录。 |
这里给出的是CentOS-7-x86_64-DVD-1611.iso自带sshd 第一节课不做太多介绍,重在概念的理解。
xshell Putty SecureCRT
* ps:如果有时间,提一下PublicKey *
ssh 工具连接
linux 登录练习
# su [-l] 用户名 切换用户 su 命令 -l 选项[]选填 用户名 要切换的用户名
# exit 命令
# passwd 修改当前登录者的密码