linux基础介绍3-24
推荐书籍:《穿越计算机的迷雾》《量子物理史话》
Mirrors.aliyun.com
Mirrors.163.com
Linux发行版
Ubuntu,Fedora,openSUSE,Debian,Mandriva Linux,Linux Mint,PCLinuxOS,Slackware Linux,Gentoo Linux,FreeBSD,Kali Linux,ArchLinux
Unix的历史教训:
别和低价灵活的方案较劲;
越开源越繁荣;
Uinx的哲学基础:
让每个程序只做好一件事;如果有新任务,那么就新启一个程序,而不要在原程序中增加功能;
假定每个程序的输出,都会做为另一个程序的输入;输出中不要有无谓信息干扰;不要交互式输入;
尽可能早地将设计和编译的程序投入试用,哪怕是系统级的程序也不例外;
使用工具而不是人力来减轻负担;
简而言之:一个程序只做一件事,并做好;程序间要能互相协作;程序要能处理文本流;
程序:算法+数据结构
OS的功用:
1、将硬件规格抽象为系统调用(System Call);
2、进程管理;
3、文件系统;
4、硬件驱动;
5、网络协议栈;
6、安全功能;
7、内存管理;
shell:用户接口
CLI:命令行接口,Command Line Interface
sh, bash,ksh, zsh, csh, tcsh
GUI:图形用户接口,Graphic User Interface
Gnome
KDE
Xfce
源代码 --> 编译(编译器)--> 目标代码
Linux发行版:
RHEL
Fedora
CentOS
slackware
S.u.S.E
OpenSUSE
Debian
Ubuntu
Linux:项目源代码,独立存在;
GNU:GPL开源协定
gcc, bash, vim,openssl
Apache: Apache开源协定
BSD: BSD开源协定
GNU/Linux
Linux
https://www.kernel.org/
3.19.2
version:
major: 主版本号
minor: 次版本号
release:发行号,修正号
Linux发行版:
kernel, GNU
提供一个安装程序
Debian: Ubuntu
slackware:S.u.S.E
Red Hat:
rhel: RedHat Enterprise Linux
每36个月一个发行周期
fedora:个人桌面或工作站
6个月一个发行周期
CentOS:Community ENTerprise OS
Red HatLinux: 1.0, 6.0, 8.0, 9.0 --> Fedora (Community)
Red HatEnterprise Linux: 3.0, 4.0, 6.0, 7.0
Gentoo:
LFS:linux from scratch
kali:
Android:java
Linux +java vm + android
ios:
FreeBSD
object-C
malloc,free
系统运行:
用户模式
系统模式(内核模式)
库:
提供共享功能模式
减少程序体积
dll:dynamic link labrary
so: sharedobject
API:Application Programming Interface,应用编程接口
IEEE: POS(Portable Operating System)--> POSIX
ABI:Application Binary Interface
CPU架构类型:
x86: intel,amd, 32bits
x64: amd64
pc server
arm: 32bits,64bits
power
powerpc
sparc,unlrasparc
m68000, m68k
alpha
自由软件:GNU, GPL (free)
自由学习、自由修改源代码
可以出于任何目的获取源代码
自由分发源代码
自由创建衍生版
服务:
开源协定:GPL, LGPL, Apache, BSD
copyright,copyleft
Linux的哲学思想:
一切皆文件(包括硬件);
由众多目的单一的小程序组成;
组合小程序完成复杂任务;
尽量避免跟用户交互;为了方便脚本编程实现程序自动化运行;
使用文本文件保存程序的配置数据;
K.I.S.S:Keep It Simple, Stupid.
OS:交互式使用
特殊应用程序:shell
CLI: sh,csh, ksh, bash, tcsh, zsh
提供命令行界面
提供编程界面
GUI:x-window, X protocol
桌面系统:
Gnome:C语言, gtk
KDE:C++语言, qt
xfce:
终端类型:
物理终端,控制台:/dev/console
虚拟终端:/dev/tty# (1-6)
Ctrl+Alt+F#
伪终端:/dev/pts/#
ssh或telnet远程连接打开的终端,图形界面下的终端
串行终端:/dev/ttyS#
第一次启动图形服务:
startx &,Ctrl+Alt+F7
startx -- :1&, Ctrl+Alt+F8
登录:
账号、密码
用户:
管理员:有管理权限; root
普通用户:仅系统资源使用权限
用户工作环境:
CLI:提供命令提示符
管理员:#
普通用户:$
GUI:提供桌面环境
shell的工作环境的定制:
变量:变量名,值
变量赋值
VAR_NAME=VALUE
PS1:定义命令提示符
\\u: 自动替换为当前用户的用户名
\\h: 当前主机的主机名
\\H:当前主机的完整主机名,FQDN
\\w: 当前工作路径,绝对路径
\\W:当前工作路径,相对路径
\\$: 指定命令提示符
定义方法:export PS1=‘‘
export PS1=‘\\033[3#m \\033[0m‘
知识框架:
Linux基础知识、系统管理
bash shell编程
Linux服务及安全
openssl, web, fileservice (vsftpd, samba, nfs), dhcp, dns
MySQL数据库
Linux集群:LB, HA
lvs, haproxy,nginx
heartbeat,corosync, keepalived
分布式应用:
mogilefs
mongodb
缓存系统:
memcached
varnish
虚拟化:xen, kvm
云:openstack
监控和自动化:zabbix, cobbler, puppet, ansbile
大数据:hadoop
RHCSA, RHCE, RHCA
Linux的文件系统:
一切皆文件
遍历
层级格式:
/ -->
etc, usr,var, home
pam,sysconfig
networking
/etc/sysconfig/networking
两类数据:
元数据(metadata):索引
数据(data):文件内容
路径分隔符:/
/usr/local
相对路径:从当前位置开始定位的路径表示形式
绝对路径:从根开始定位的路径表示形式
文件有两类标识符:
名字:
数字:inode
Linux文件名:
1、严格区分大小写字符
file,File, FiLe, FILE
2、文件名可以使用除了/以外的任意字符
登录以后:
家目录,主目录:/root, /home/USERNAME
工作目录(working directory),当前目录:pwd命令可显示
pwd:printing working directory
命令总结:ifconfig, echo, tty, startx, export
命令有两类:
内建命令:builtin
shell程序自带的,基本命令
外部命令:
独立于shell程序之外的,有着可执行程序文件
查看其类别:
typeCOMMAND
如何运行命令:在命令提示符下键入命令
命令书写格式:
COMMANDOPTIONS ARGUMENTS
选项:
形式
-CHAR:短选项
多个短选项可以合并:-l, -i, -li
--WORD:长选项
功用
定义命令运行行为
本文出自 “Mark” 博客,请务必保留此出处http://sr1006.blog.51cto.com/3432122/1624022
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。