默认教学计划
931人加入学习
(20人评价)
Linux运维基础
价格 ¥ 599.00
该课程属于 高校公益行 | 网络安全实践训练营 请加入后再学习

进程管理:

进程:应用程序或者数据在系统中按照顺序执行的活动过程,是操作系统架构基础。只能运行在内存和CPU中。

CPU分环运行:

    0环,特权环,运行内核(内核空间)

    1-2,库文件

    3环,进程环(用户空间)

 

 task struct 进程数据结构(存放在内核中)

结构:

状态 进程信息和内核栈  运行列表(指令)

MM(内存管理)  PID(进程ID号)  群组信息  用户信息  文件信息  文件描述符等

 

MMU 内存管理单元

context switch 进程切换,上下文切换

进程内存结构;

forbidden:内核空间

program text 指令

heap 堆空间,进程运行时调用的数据

shared library 共享库

stack 栈空间,局部变量

 

thread 线程,轻量级进程

运行进程的模式:

    多进程模式(每一个请求生成一个进程:进程切换)

    单进程多线程:每个线程去响应一个请求,线程所使用的资源是进程的资源

lock 锁 死锁 自旋锁

 

task 状态

    task_uninterruptible  不可中断睡眠

    task_interruptible  可中断睡眠

    stopped 停止状态(不能被调入CPU运行)

    zombie 僵死状态(结束父进程才能退出当前进程的僵死状态)进程运行完成后没有释放CPU和内存资源

 

[展开全文]

## 管道,IO重定向。

 

### 计算机体系结构:

 * 控制器:CPU,读取系统指令。

 * 运算器:CPU,运算。

* 存储器:RAM,(内部存储器:易失性存储器)

* 输入、输出设备。

 

 

### 计算机总线:

* 地址总线:负责内存寻址。

* 数据总线:负责创术数据。

* 控制总线:负责控制指令。

* 寄存器:CPU中内部临时存储空间。

* I/O设备:股则计算机内部存储设备和外部存储设备进行交互的设备。

 

 

 

 * 程序:指令+数据

 * 指令:由程序提供,负责加工数据。

 * 数据:系统中的数据可以有多种来源,比如来自自变量,来自文件,来及输入设备等。

 

 

* 标准输入设备:键盘(srdin),文件描述符0。

* 标准输出设备:显示器(stdout),文件描述符1。

* 标准错误输出设备:显示器(stdout),文件描述符2.

 

### 三种数据流:

* 标准输入数据流/标准能输出数据流/标准寻物输出数据流。

 

* 当在LInux中打开一个文件时,内核会反复调用,对于文件表示就很重要了,用文件描述符来表示文件,文件加载王成用数字标识。

 

 

### IO重定向

* 输出重定向:

 * >:覆盖输出重定向。

 * >>:追加输出重定向。

 * 2>:错误覆盖输出重定向。

 * 2>>:错误追加输出重定向。

 * &>:混合覆盖输出重定向。

 * &>:混合追加输出重定向。

 

 

* 输入重定向:

 * < :输入冲低昂想

 

* 管道:连接多条命令,把前一条命令的输出结果作为后一条命令的输入条件。

 * tr:实现字符转换,不修改源文件。

 * tee:

[展开全文]

编译安装——

安装编译环境:

yum -y groupinstall "Develoment Tools"

make 不是编译器,是项目管理工具,按照makefile文件中的定义,去定义软件中功能先后顺序

automake:Makefile.in(半成品)

autoconf:生成脚本文件,configure

 

执行编译安装的步骤;

 

1,获取源代码并解压 

    tar -xf xxx.tar.gz

    tar -xf xxx.tar.bz2

 

2,执行configure脚本(在源代码目录中运行)

功能:检查应用程序所需的编译环境,生成Makefile文件

    --help 帮助信息

    --prefix=PATH 定义应用程序的安装路径

    --sbin-path=PATH 定义应用程序的二进制文件路径

    --conf-path=PATH 定义应用程序的配置文件路径

    --enable--xxxx 开启某项功能(如程序支持该功能,但默认不安装)

    --with--xxx 开启某项功能(如程序支持该功能,但默认不安装)

    --without--xxx 关闭某项功能如程序支持该功能,默认安装,但是用户不需要)

    --user=USER 指定执行程序的用户

    --group=GROUP 程序执行的组

解决configure错误信息

  1,用without关闭这行功能

  2,安装所需的环境,及所需环境的devel包

 

3,make;定义Makefile,按照顺序编译源程序

  -j N 多线程编译

4,make install 安装应用程序

 

编译安装完成后工作:

1,添加二进制程序到系统路径;系统查找 $PATH

    a,为二进制程序做链接文件

         ln -s  /usr/local/tengine/sbin/*  /usr/sbin 链接所有文件

        ln -s /usr/local/tengine/sbin  /usr/sbin/tengine 链接目录

    b,修改/etc/profile文件

    c,在/etc/profile.d/目录建立name.sh文件

2,添加应用程序的库文件到系统库文件路径

库文件:/usr/lib  /usr/lib64

    a,为库文件做链接文件(如上步骤)

    b,在/etc/ld.so.conf.d/目录下建立APP_NAME.conf,把应用程序的库文件位置添加进去。

        执行 ldconfig -v 显示加载库文件过程

3,添加应用程序的头文件到系统头文件路径

系统头文件:/usr/include

    为头文件做链接,如上两步

4,添加应用程序的帮助信息

    a,man -M PATH bin_name ;-M指定帮助信息的位置

    b,man配置文件;系统默认帮助

/usr/share/man

        centos6 :/etc/man.conf添加:MANPATH [ HELP_PATH ]

        centos7 :/etc/man_db.conf 添加:

MANPATH_MAP [ HELP_PATH ]

 

 

 

 

[展开全文]

用户管理:
useradd、userdel、usermod、passwd、chsh、chfn、finger、id、chage
组管理
groupadd、groupdel、groupmod、gpasswd、newgrp


mandb #生成whatis数据库
updatedb #生成locate数据库


关闭防火墙
然后vim /etc/selinux/config 修改SELINUX=disabled

useradd:添加新用户 (更改 /etc/passwd /etc/shadow /etc/group)
useradd 【options】 user_name
-c:新建用户时为用户添加描述信息
-d:指定用户的宿主目录(默认宿主目录在/home下)
-D:查看和改变默认的值(修改/etc/default/useradd文件中的选项和值)
-g:修改组
-b:修改宿主目录
-f:修改过期是否停用
-e:修改过期时间
-s:修改默认shell
-e:新建用户时,设置用户默认的过期时间,时间格式:YYYY-MM-DD
-g:指定用户的基本组(没有该选项,新建用户时,会建立一个同名的基本组)
-G:新建用户时,指定用户的附加组,附加组可以有多个,中间可用逗号隔开
-m:创建宿主目录,和-k一起使用
-M:创建用户时,不为用户创建宿主目录
-p:创建用户时,可指定加密的密码
-r:创建系统用户(不创建宿主目录 UID、GID使用系统用户ID),
-s:指定默认shell(系统支持的shell)
-u:指定用户的UID (任何新建用户都是重复/etc/passwd 的最后一个用户的ID往下加)





 

[展开全文]

文件类型:

-:普通文件;

d:目录(directory);

b:块设备(block),如硬盘,U盘;

c:字符设备(char),如键盘;

s:套接字文件(socket);

p:命令管道(pipe);

l:符号链接文件(symbolic link file)

[展开全文]

内核的作用:

1,进程管理

2,内存管理

3,文件系统

4,网络功能

5,硬件驱动

6,安全功能

[展开全文]

linux设置哲学思想:
    1.远程连接Linux系统;xshell软件的使用(CRT)
        IP地址:ifconfig查看 
        xshell :ssh 192.168.10.147
    2.shell的作用
        使用者,计算机交互接口(人机交互接口)
        shell中输入命令,shell把命令传递给内核,内核把命令结果反馈给shell,
        人从shell中读取命令执行结果
        内核:图形界面/字符界面
            linux图形界面:
                GNOME:linux默认的图形界面,C语言开发
                KDE:C++开发
                xface:简化的图形界面
        Linux支持的shell:
            bash:默认支持的shell.
            ksh
            csh
        eg:    
            笔记本---win7--(QQ/输入法/...)双击使用
            ----linux---shell-->调用应用程序
    3.内核的作用    
        进程的管理; 进程:要执行的任务
        内存管理:
        文件系统:存储设备上存储数据的方式方法:windows--NTFS/FAT32  Linux:ext3/ext4/xfs等
        网络功能:管理IP地址信息等
        硬件驱动:网卡
        安全功能:
        linux轻巧,稳定的系统
    4.linux设计思想
        a.有很多个小程序组成,每一个小程序完成单一的功能,
            实现复杂的任务(http服务需要安装很多的小组件)
        b.一切皆文件:所有的外围设备(硬件)或者其他程序
        c.尽量避免捕获用户接口
        d.配置文件保存为纯文本格式(可以用文本编辑器编辑 VIM)
    5.Linux终端:多用户多任务系统
        6个终端:切换:ctrl+alt+(F1-F6)
    6.linux界面:
        GUI:grapuical user interface:图形用户接口(图形界面)切换:ctrl+alt+F7
        CLI:commannd line interface:命令行接口(字符界面)(6个终端)
    7.命令格式等内容
        命令提示符(prompt):[root@www ~] #
        退出当前终端:exit
        
        linux使用凭证:用户名和密码(用户获取资源权限的凭证)
            root:linux--默认管理员用户名
            普通用户:
            
            切换用户:su(switch user)
            root--->student
            格式:
            # su user_name
            $ exit 退出当前用户
            
            tips:当root用户切换到普通用户时,不需要提供普通用户的密码;而当普通用户切换到
            root用户时,需要提供root用户的密码
            
            linux命令格式:
                命令字 [选项] [参数] :中括号表示可以省略。
                 命令字:唯一的,实现它某一项功能
                 选项:修改命令的执行方式(实现特定功能)
                    长选项:--引导,是一个单词(多个长选项不能组合)
                    短选项:-引导,是一个字符(对个短选项可以组合)
                 参数:命令作用的对象

[展开全文]

操作系统的概念:

         计算机体系结构:

                   计算器:cpu

控制器:  cpu

存储器: 内部存储(内存)-à寻址空间

         国家:每一个国家做成一个单元 某个国家:河北省 北京市….平面寻址。

输入设备:键盘,鼠标,硬盘

输出设备:显示器,音频等,硬盘

 

操作系统:带有很多外围程序的系统     

linux操作系统内核(操作系统的核心)

 

硬件:CPU/内存/硬盘等--àKernel:内核(系统核心)-àlibrary:库(libà软件

 

软件需要用到系统的打印功能时à繁琐—>做成一个功能

系统调用:system call

         例:打印功能—>做成一个小软件,需要打印时,调用功能即可

-à叫做库(library)

也可以直接作用到(内核)硬件上,不调用库。(效率高)

                   -àAPIapplication program interface      应用程序接口

 

不随操作系统一起启动的应用程序:交互式应用程序(根据需要启动该应用)。

 

操作系统:微软公司,企业:Linux,前身:Unix-à稳定,轻巧

 

GNU  不是Unix

GPL 

取得软件和源码:任何人可以根据自己的需求自由获取软件和源码

复制:复制改软件(衍生)

修改:改源码,可以自行修改(衍生)

在发行:把修改后的代码二次发行

修改授权:

销售:不能把修改后的软件(获取的软件)进行商业销售。

LGPL:基于某个内核平台开发的软件可以进行销售。

例如:QQ:腾讯公司  windows

QQ游戏(小游戏),可以进行销售

Linux版本号(内核版本号):三部分组成

A.B.C     如:内核版本:3.6.28

A:主版本号-----3

B:次版本号(奇数:开发版本  偶数:发行版本)---------6

开发版本:不能用于企业中;发行版本可用于企业

C:修订版本号(修订次数)----------28

升级:

先把3.6.28拷贝一份进行研发,并把版本号升级为3.7.01(在3.6.28基础上修复漏洞,开发新功能)

可以适应企业生产环境时-----3.8.XX:下一个发行版本

    开发----内测(修复漏洞,开发新功能)----公测----正式版本发行(上线)

 

提示符:

[root@www ~]#

Root:当前登录的用户名

www:主机名

~:当前用户所处的目录(~代表宿主目录)

#:代表当前用户是管理员

$:代表当前登录用户是普通用户

[展开全文]

centos 6 或者RHEL 6
安装
    自定义
    兼容性  12
    选择客户端操作系统:
        要选择和安装的操作系统相同的版本
        取名称;位置:默认c盘
    处理器界面:支持虚拟化,一般都够
    选择内存:虚拟机为系统分配内存(不同的系统会有不同的分配方案)(可以自己调整)
    分配4G内存时不会一下子占满,(不会立即使用物理内存的4G)
    选择网络:虚拟机可以上网,建设服务器,,怎么去上网-->网卡分配有关。默认
    ios类型,默认
    选择磁盘:虚拟机中以文件的形式存在(镜像文件 image file)
    新建磁盘--->镜像,已有-->曾经有
    最大的磁盘空间:建议大于120(200G);
    立即使用物理空间(不点)
    
    存储为单个文件:NTFS()   FAT32(不支持大文件2T)
    拆分为多个文件:选择这个
    
    导入光盘cd/dvd,选择你的镜像文件
    
    小绿三角(下拉:很多选项)
    
    第一项:单击回车---->英语很重要
    是否测试光盘:由于是ios,选择跳过;
    
    
    选择语言:安装语言(不是使用时的语言)
    选择磁盘(第一个Basic)
    
    主机名:www.guan.com
    网卡:config network;edit -->connect
    iPv4地址,选择(DHCP)
    选择时区:亚洲/上海/
    
    root密码:root是linux是系统管理员用户,不能太简单了。
    
    选择分区:Use All Space
    
    格式化,把改变写入磁盘;
    
    安装的服务:后续自行配置,一般最小化,所有的服务可以以后配置
    下一个:现在附件,开发工具,都选上;
    语言不要选择中文,会出现乱码。
    
    输入密码,没有*号的。
    命令行界面:
    挂起:暂停,(保持在某一个状态)
    快照: 上面,俩个方式:虚拟机上方右键,作用:保存某一个状态,拍摄快照;
    恢复快照:;关机后可以恢复到这个状态
    
    ipconfig:查看设置Linux中ip地址信息。
    怎么来的:网络适配器:
    主机:网络设置;网络适配器:Wmware ...1,2
    
    真实主机中(宿主机)------>虚拟机  通讯
    
    直接连接到物理地址--->物理网卡
    
    虚拟机中选择桥接模式  --->宿主机:物理网卡和它通讯(地址要相同)
    虚拟机中NAT模式(网络地址转换)    ------>宿主机:中对应的是VMware Network Adapter VMnet8
    虚拟机中仅主机模式 ------->宿主机中:对应的是VMware Network Adapter VMnet1
    
    编辑中:虚拟网络编辑器:
    
    
    

[展开全文]

虚拟机和宿主机进行通讯:

虚拟机:桥接模式(IP地址:10.0.0.0/24)  宿主机:物理网卡(10.0.0.4/24)

虚拟机:NAT模式(网络地址转换)     宿主机:VMare Network Adapter Vmnet8

虚拟机:仅主机       宿主机:Vmare Network Adapter Vmnet1

[展开全文]

命令帮助信息

    内部,help command

    外部,command --help

    通用,man command

 

[展开全文]

冯·诺依曼计算机体系结构:

控制器+运算器+输出设备+输入设备+存储器

API:application program interface

从UNIX到Linux的历程

 

 

[展开全文]

在vmware Workstations中安装red hat Linux 6

虚拟机与物理机的通讯连接:

1,若虚拟机中使用“桥接模式”,则宿主机中使用的是物理网卡;

2,若虚拟机使用的是“NAT模式”,则宿主机使用的是“VMware Network Adapter VMnet8”

3,若虚拟机使用的是“仅主机”,则宿主机使用的是“VMware Network Adapter VMnet1”;

  

 

 

[展开全文]

3A认证

    认证(authentication)

    授权(authorization)

    审计(audition)

Linux登录提示信息保存路径

    /etc/issue

命令分类

    内部命令,系统自带

    外部命令,外部应用程序提供

    查看分类:

    type [命令字]

    出现builtin关键字表明是内部命令

    出现目录表示外部命令

文件类型

    -,普通文件

    d,目录

    l,软链接文件

    p,管道

    b,块设备(硬盘)

    c,字符设备(键盘)

环境变量

    PATH,系统环境变量(冒号隔开)

[展开全文]

终端切换

    六个命令提示符:

    Ctrl+Alt+F1~F6

    图形化界面:

    Ctrl+Alt+F7

命令格式

    命令字 [选项] [参数]

    命令字,唯一,实现某一功能

    选项,长选项(--单词),短选项(-字母)

图形界面

    分类:

    GNOME(默认界面),C语言编写

    XFACE,简化图形界面

    KDE,C++编写

 

[展开全文]

Linux内核版本号约定

    <主>.<次>.<修订>

    次版本号:奇数为开发版本,不建议用于企业生产环境,偶数为发行版本,可用于企业生产环境

    修订号:表示当前版本内核被修改了多少次

    命令提示符:

    [登录用户名@主机名 当前所在目录]

[展开全文]

物理机<-->虚拟机

    安装完VMWare后,会自动安装两个适配器,分别是VMnet1和VMnet8,应用于虚拟机与物理机通信时的不同链接场景

    通信:

    桥接模式,使用物理网卡(自动识别)

    NAT模式,使用VMnet8

    仅主机模式,使用VMnet1

[展开全文]

新建用户命令:useradd
man useradd查看的

/etc/default/useradd 文件解释:
[root@yum ~]# cat /etc/default/useradd
# useradd defaults file #注释行
GROUP=100 #可以创建普通组
HOME=/home #普通用户宿主目录位置(在home下生成和用户同名的目录作为这个用户的宿主目录)
INACTIVE=-1 #是否启用用户过期 停止使用权 -1代表不启用 2代表过期的时间是两天
EXPIRE= #设定过期时间 格式为20170101
SHELL=/bin/bash #设定用户的默认使用shell
SKEL=/etc/skel #新用户宿主目录模板目录
CREATE_MAIL_SPOOL=yes #是否为用户启用邮件通知功能

创建新用户时,可以设置新用户可登陆时间的范围 (2017-5-1)

/etc/ske1:目录(用户宿主目录模板目录)
.bash_logout:注销时候执行的
.bash_profile:登录系统时执行的命令
.bashrc:用户登录一个新shell执行的命令、

/etc/login.defs文件解释:(只对新建用户生效)
MAIL_DIR /var/spool/mail #用户系统邮件存放目录
PASS_MAX_DAYS 99999 #密码最长使用期限
PASS_MIN_DAYS 0 #密码最短使用期限 0代表不受限制 若是2 代表2天内不可更改密码
PASS_MIN_LEN 5 #密码的最小长度
PASS_WARN_ACE 7 #密码过期警告时间
UID_MIN 1000 #普通用户最小的UID号
UID_MAX 60000 #最大的UID号
SYS_UID_MIN 201 #系统用户最小UID
SYS_UID_MAX 999 #系统用户最大UID
GID_MIN 1000 #普通组的最小GID
GID_MAX 60000 #普通组的最大GID
SYS_GID_MIN 201 #系统组组的最小GID
SYS_GID_MAX 999 #系统组组的最大GID
CREATE_HOME yes #创建宿主目录
UMASK 077 #反掩码权限
USERGROUPS_ENAB yes #删除用户时是否删除同名组
ENCRYPT_METHOD SHA512 #用户密码的加密方式






 

[展开全文]


权限:用户对于应用程序的执行能力

文件属主:
属组:
其他用户:

用户:多任务多用户

Linux实现权限隔离机制(多用户)
操作系统识别用户:
用户:UID
组:GID(包含用户 多用户对于某文件分配权限)
用户分类:
管理员用户: root UID=0
普通用户:1000-65535
程序(系统)用户:1-999
组分类:
管理员组/普通组:
基本组:Linux中。新建用户时,没有指定隶属于的组,系统会为该用户建立一个同名组作为该用户的一个基本组
附加组:方便以后为用户分配权限
解析:
/etc/passwd:存储用户基本信息
→ 用冒号隔开几列 第一列:用户登录名 第二列:加密的用户密码
/etc/shadow:存储用户的影子口令
/etc/group:存放组的信息

/etc/passwd解释:用冒号隔开
第一列:用户的登录名
第二列:加密密码(x表示占位符,密码保存在/etc/shadow中)
第三列:用户的ID号
第四列:组的ID号
第五列:用户的描述信息
第六列:用户的宿主目录
第七列:用户登录的默认shell(查看shell /etc/shells)

/etc/shadow解释:用冒号隔开
第一列:登录名
第二列:用户加密后的密码
第三列:最后一次更改密码的时间
第四列:密码最小使用时间
第五列:密码最长使用时间

/etc/shadow密码区域解释:
三部分组成:用$隔开
第一部分 加密算法 md5加密 sha-256加密 sha-512加密
对称加密:加密和解密都使用相同的密码 abc 甲方与乙方约定后移动三位 def
非对称加密:加密和解密使用不同的密钥、公钥、私钥
单向加密,散列加密:提取数据的特征码,常用于数据完整性校验
1、不可逆 2、定长输出
md5:128为定长输出
sha:160 224 256 384 512位 越长 加密度越高 破解越难

3、雪崩效应 单向加密中输入的数据一小点变化 会引起结果的巨大变化

第二部分:随机序列号
第三部分:随机序列号和密码共同加密后的字符串





 

[展开全文]

管道、重定向
标准输入设备:键盘(stdin)文件描述为0 输出设备:显示器(stdout)文件描述为1 错误输出设备:显示器(stderr)文件描述为2
IO重定向:把默认输入输出的数据来源重新定向到其他文件或设备
输出重定向:
>:覆盖输出重定向
>>:追加输出重定向
2>:错误覆盖输出重定向
2>>:错误追加输出重定向
&>:混合覆盖输出重定向
&>>;混合追加输出重定向
输出重定向:
<:输入重定向
管道:连接多条命令。前一条命令输出结果作为后一条命令的输入条件
command 1 | command 2 | command 3

[展开全文]

授课教师

课程特色

视频(102)
下载资料(1)