鸟哥私房菜基础篇系列
# 续篇和第一篇
续篇
从字符界面开始,这是基础,一定要从下往上学,而不是从上往下学,不然这样子早晚都要找回来的。
第1篇 Linux是什么以及如何学习linux
1.1 linux的发展简史,按时间轴来说
- 先是出现了早起的Multics,研发这个团队的成员在这个项目结束之后就解散了,其中包括Ken,和Richie
- Rechite在bell工作,工作需要,用C语言重写了一个精简的Multics,后来另个牛人Ken用更高级的C语言改写了Rechie的作品,并且命名为Unix。没想到这个操作系统是非流行,收人追捧
- 时间接着往后走,这个时候有一个交Stallman的。这个历史背景下,软件版权之风开始盛行。但是Stallman特例独行,认为软件应当free,应当OpenSource促进文明的发展,成立了一个free software fundation(FSF),后来又发型了Gpl协议。当然,stallman必有过人之处,有很多牛叉的作品。GNU也是这位先生提出的 GNU is Not Unix,gun就是一个概念,这个概念的核心就是"自由软件"
- 反正Unix变的很火,很多地方都用,当然都是一些大型机和工作站。为了普及在86年的时候,出现了一个XFree86计划,研制出unix配套的gui界面x-windows
- 时间接着往后,开始出现小型机,intel公司揭竿而起,出现了一些列的x86系列的兼容机。就在这个背景之下,芬兰的一名大学生linus在gun上以及学到了很多unix内核相关的东西,于是就自己你想出来一个适合在intelx86系列小型机上跑的操作系统,名字linux。
1.2 linux到底是个啥
其实linux这是一个kernel内核,这个内核集中了一些核心的功能:
system callinterface
Process ctroll
memory management
file system management
device driver
1.linux的distro
发行版本,其实linux只是一个核心而已,基于GNU的GPl协议,很多公司都自己加了很多别的功能,然后刻录成盘发行。
因为Linux具有硬件需求低、架构开放、系统稳定性及保密性都够强、完全免费的特点。
第1篇 Linux主机的规划
Linux中的硬件文件代号:
IDE硬盘/dev/hd[a-d]
SCSI硬盘/dev/sd[a-p]
光驱/dev/cdrom
软驱/dev/fd[0-1]
打印机/dev/lp[0-2]
鼠标/dev/mouse
磁盘 /dev/ht0(IDE)或/dev/st0(SCSI界面)
网卡 /dev/ethn(n由0开始)
硬盘的知识
- 基本上,硬盘是由最小的存储单位扇区sector组成,而数个扇区又组成一个磁珠cylinder,最后构成整个硬盘的容量大小。然后一块硬盘,总的来看,就分为两部分:一个用于存放硬盘的信息,称为主引导分区(master boot partion,MBR),另一大块是数据区域。
硬盘
|————MBR
|————数据区域
- 这其中,MBR这个区域主要是用来记录两个东西的,一个是启动管理程序,一个是硬盘分区表(partition table)。启动管理程序,在开机启动的时候决定如果是多系统的话,考虑哪个系统先启动,到哪个分区去寻找系统文件。分区里面更加关注的是硬盘分区表,我们所谓的分区其实就是修改跟去表的内容,分区表中记录的是磁盘区块的其实为止。而且当年设计的时候,硬盘分区块被设计的只能记录四个分区块的位置,沿用至今。
MBR 记录的内容
|————启动管理程序
|————partition table
MBR只能记录分割的四个分割快的位置,这四个分割快就是所谓的主分区primary和拓展分区extended,也就是说硬盘分区primary加extended只能是4个,而且有extended的话只能有一个,所以4个分区的时候只能是下面的组合:
P + P + P + P
P + P + P + E
但是注意了,extended不能使用,要想使用extended的话,就必须吧extended分出来逻辑分区logical。扩展分区中分出逻辑分区的好处,就是我们可以打破只能分4区的数量限制。
淡然你也可以分成单个分区,里面可以没有Extended。
3P+E,4个分区表记录,一共6个可用的分区规划,这6个分区的代号如下图:
实际可以使用的是/dev/hda1,/dev/hda2,/dev/hda3,/dev/hda5,/dev/hda6和/dev/hda7这6个分区。而/dev/hda4这个扩展分区仅是用来规划出让逻辑分区可以利用的磁盘空间而已。
注意hda1~4食欲留下来的,只能给primary或者extended用,比如下面只有连个分组的情况,如图:
分区的时候起码有这么几个分区要考虑到
/ 根目录必须要有的,
swap 交换分区必须要有的
/user 相当于dindows先的programfile文件夹,而且linux本身作为一个安装文件,许多文件存放在这里
/home 必须要有的,而且注意大小
/var 必须要有的,整个系统中,会动态变化的文件都会放到这里,比如一些log都是放到这里的。
/boot 这个是启动目录,推荐有,存放启动是的核心文件,方便系统的回复
第4章 开机关机及帮助
初次登录,我们使用的是“管理员身份”,也就是系统中的超级用户(super user),具有无穷的权利,这个时候会看到提示:
[root@iZ0zpl7q0nklmuZ ~]#
root是我们登录系统的身份,中间的iZ0zpl7q0nklmuZ表示我们登录的主机的名字,最后的~表示用户登录之后所在的家目录。
注:关于登入的身份。为安全起见,我们希望一般时候不要以root身份登入Linux
系统。这里有必要说明root身份与一般用户身份的区别。在Linux上实际记录用户身份的是UID与GID,分别代表用户ID与群组ID。系统管理员(root)的号码即是0,所以您进入/etc/passwd文件即可看到root的两个ID号都是0,基本上,您只要建立一个账号,并且将其UID设定为0,那么它就具有root的身份了。而一般用户的ID号通常在500以后,1~499之间多会留给系统使用,原因是这仅是一个习惯而已。我们都知道root具有无穷大的权力,例如它可以删除任何一个文件或目录,因此,若您以root身份登入Linux系统,不小心删除了任何一个文件,就有可能造成非常大的麻烦。除此之外,使用root身份登入系统最大的问题就是不安全,容易被有心人监听到您对主机下达的命令,使得密码或数据外泄。因此,称职的网管人员通常具有两个账号,平时以一般用户账号使用Linux主机,除非系统的主要功能需要修改设定时,才以root身份登入系统。所以建议您建立一个普通账号供自己平时使用,尤其是远程登入时(如telnet与SSH服务器),最好不要以root身份登入。
退出系统 exit,退出不等于关机,这是你自己这个账户注销掉了,而已,可能别的用户还在系统中。
图形模式和问及界面的切换
这一块不同的发行版本可能略有不同
Ctrl + Alt + [F1] ~ [F6] :文字界面tty1 ~ tty6终端
Ctrl + Alt + [F7] :图形界面
如果初次登入的是文字界面,你只能在6个tty之间来回切换,不能从登入的文字界面切换到图形界面,如果你登入的是文字界面,可以从文字界面通过上面的文字界面切换到字符界面。当然也可以在登入的文字界面,通过一条指令打开图形界面:
startx
指令的输入与基本的指令:
linux的一个设计特色是,指令名都是小写,选项可能有大写。
显示是简单额指令
date 现实当前的时间
date +%Y/%m/%d 加上时间现实的格式
date +%H:%M
显示月份的日历
cal [month] [year]
cal //现实当前的日历
cal 2017 //现实全年的日历
计算器
bc //进入bash自带的计算器
quit //退出上面的计算器
在bc下面基本上可以实现C语言的常规编程,是与类型的与javascript相似。
中断进程
ctrl + c // 结束一个不停运行的指令
q可以退出当前进入的指令,比如正在使用 more 或者 man指令的时候
查看帮助
man command // manpages的缩写,可以查看某一个指令的具体用法
info command 和man的功能一样,但是感觉没有man好用
· 空格键: 向下翻页;
· page up: 向上翻页;
· page down: 向下翻页;
· home: 回到最前面;
· end: 转到最终页;
· /word: 搜寻word所代表的文件。接着,按n寻找下一个关键词,按N寻找上一个关键词。
#### **打开的manpage也都放在/user/share/man文件夹中**
正确的关机方式,只有root用户才有关机的权利,
关机之前应当查看一下系统的状态,who可以查看当前系统登录的都有哪些用户,netstat -a可以查看当前系统的联网状态,ps -aux 可以查看系统当前的主机资源使用情况。
常用额指令两个shutdown 和 reboot
/sbin/shutdown [-t 秒 ] [-arkhncfF] 时间 ] [ 警告信息]
- -t sec: -t后面跟秒数,亦即“过几秒后关机”的意思
- -k: 不要真的关机,只是发送警告信息
- -r: 在将系统的服务停掉之后就重新开机
- -h: 将系统的服务停掉后,立即关机
- -n: 不经过init程序,直接以shutdown功能关机
- -f: 关机并开机之后,强制略过fsck工具的磁盘检查
- -F: 系统重新开机之后,强制执行fsck磁
- -c: 取消已经在进行的shutdown指令内容
shutdown -h now 立刻关机,其中now相当于时间为0
shutdown -h 20:25 系统在今天的20:25分关机
shutdown -h +10 系统再过十分钟后自动关机
shutdown -r now 系统立刻重新开机
shutdown -r +30 'The system will reboot'
再过三十分钟系统会重新开机,并显示后面的信息。
shutdown -k 'This system will reboot'
仅发出引号内的警告信息,系统不会关机
shutdown -r now 和 reboot的作用基本上一样。
当然还有别的方法 似乎是init 0 , halt now,poweroff这些都不是正规的挂机方法,容易出现问题。
关机之前最好使用 sync; 这个吧内存中的东西同步到硬盘上,一面造成数据的丢失。