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

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。