linux哲学思想:
自由思想
目的单一的小程序组成,通常一个复杂的系统是有多个下程序柔和而成,尤其是我们后来配置服务的时候,所以我们要做的就是组合小程序,完成复杂任务,需要我们手动完成
一切皆文件,甚至连设备的访问入口都是文件,后面的linux目录结构的时候会讲述每个目录下方的都是什么文件,甚至这些访问入口对应的是什么文件,这些文件时如何创建的,等等
尽量避免捕获用户接口,就是尽量避免和用户进行交互,一个用户发起一个进程之后,一般来说,不用客户在做别的什么操作,输入任何信息,比如输入ls时候就是直接输出结果的
配置文件保存为纯文本格式,所以在linux上要想配置一个服务的话,只需要哪一个文本编辑器来完成所有的配置
严格区分大小写,这和windows是不同的
能简写绝不全写


人机交互的接口及分类:
GUI接口和CLI接口
GUI接口人机交互的方式--双击图标
CLI:
命令提示符,超级用户#,普通用户$
为什么我们输入命令敲下回车就会执行呢?这背后究竟发生了什么?
shell就是一个命令行接口,所以我们输入命令之后,shell就会将命令输入内核来判断这个程序是否有执行权限,以及能否执行,以及从什么地方开始执行
我们说过每个程序要想被执行,必须要有执行入口,那么要是一个程序不能执行的话,内核就会返回一个错误
对于内核来说并没有什么不同,不管是通过shell还是图形界面都是通过shell将操作转换为对应的命令交给内核的,只是在用户看来有所不同


命令的格式:
命令本身,也就是可执行程序的路径,命令或者脚本的名字,其他的疑虑会报错
选项,修正命令的执行方式
长选项和短选项之分,短选项之间可以组合,长选项之间不能组合
参数,命令的作用对象,这个命令对谁生效,对于 不同的命令是否能够接收参数,接收参数的个数多少也是不尽相同的


实现用户的切换“
计算机是稀缺资源,只有那些具有使用凭证的人才能使用
使用凭证,什么是使用凭证,操作系统的用户是 用来做什么的
假设没有用户,计算机启动之后直接进入操作系统,可以使用所有的资源,所以用户是实现使用凭证的一种方式
除此之外还有指纹,虹膜识别技术
大家的用户名都是root,拿又怎么样去验证用户的身份,这就需要与之对应的密码,认证通过后,就是用用户来标识可以获取的资源数
举个例子,大家在一家公司上班,都可以通过员工卡来进入,但是肯定权限是不一样的,及时通过用户来区分不同的权限


linux的虚拟终端:
多个虚拟登录界面,不同的电脑键盘的映射方式不同,但是可以用键盘实现不同登录界面之间的切换,比如Ctrl+Alt+F2,进入界面2
是模拟是一个多用户的环境,相当于虚拟出来几个不同的显示器,我们叫做终端
一般有6个终端可以切换的,这是默认的,但是我们可以自己定义,是Ctrl+Alt+F1---F6
startx &--可以启动图形界面,也可以用Ctrl+ALT+F7,但是第一次必须用命令
linux的灵活之处是可以启动多个图形界面的


模拟终端:
是在图形界面点击右键开启的一个终端


linux的图形界面的类型:
Gnome:C开发
KDE:C++开发
Xface:s是适用于嵌入式的轻量级的桌面操作系统
据说Ubuntu也除了一个linux手机操作系统,界面挺漂亮的,有公司已经在研发Ubuntu手机了
Ubuntu有不同的版本,gnome版,KDE版,Xface版,提供的桌面不一样,在redhat上,两个桌面都提供了,只是我们平时只安装了gnome,有两种风格完全不一样的桌面风格
window的GUI叫做window,linux的桌面叫做X-window,X指linux的图形显示协议 ,windows在2008之前桌面是内置在内核中的,必须安装的,不使用桌面就无法安装的,linux的桌面只是一个软件,并且linux的X-windows是CS架构的,也就是说,当前主机装的是系统,另外一台主机是显示器,也完全是可以的显示器和桌面是可以分离的显示那端是server,请求显示的这端是client


linux CLI界面的类型:
同样的,都是程序,有很多类型
默认是bash,还有次csh,zsh,ksh,tcsh,我们只要一个就可以
bash是应用最广泛的,也是功能最强大的的shell,这也是绝大数shell默认使用的shell,默认的shell是sh,其实也是bash的链接
sh是最初的shell,也是贝尔实验室一个研发的
总之shell就是一个让我们用户输入命令的,并将命令运行的结果取回到当前shell的屏幕上这样的一个用户接口,或者说是人机交互接口
任何和shell有关的程序在shell关闭时,这些程序也就关闭了


世界上两大雷同实验室:
施乐的pack实验室,像以太网,鼠标,图形用户界面都是pack实验室的

切换用户:
su---switch user
退回原来的用户---exit
-l:成为全切换,没有-l是半切换


修改用户密码:
passwd--修改当前用户的密码,连输入两次
对于超级用户来说,你可以任意修改用户的密码,但是对于普通用户来说一般研遵循密码复杂性规则


密码复杂性规则;
足够复杂,数字,小写字母,大写字母,特殊字符,四选三,
足够长,一般来说要大于7位,长度,对于一个邮箱地址做密码,如果暴力破解(字典中有),没有三年五年是破解不出来的
使用随机字符串
定期更换,别人花了半年破解出来了,谁知道你连个月之前就换了
循环周期要打,最好不要使用最近使用的密码,在密码复杂性规则中,一般我们会规定,不能使用过去24小时使用的密码
我们会学习怎么生成随机字符串做密码,然后用一个密码将他们加密起来进行保存,后面会将每种加密方式的优势劣势
密码是用户获取资源时的凭证
所以现在加密的方式更多,更安全,刷指纹,刷虹膜,这些事实就是加强认证复杂程度的
网上银行也是这样,知道密码还不够,在转账的时候还会在手机上发送一个验证码,还有通过U盾,有一个唯一的证书