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

软件包管理;

软件包管理工具 RPM

 

应用程序;

     源代码--编译(生成可执行文件,匹配底层构架)--链接--运行

    链接:

         库:静态库和动态库

         静态链接过程:把库文件集成到应用程序中

         动态链接过程:库文件和应用程序分开

应用程序:二进制文件  库  配置文件  帮助文件  

 

内存地址空间:

    text 存放指令

    data + BSS data存放数据,BSS 存放初始化为0的变量

    堆 heap存放运行中临时文件

    栈 stack存放应用程序的变量和函数

 

软件包管理器的核心功能:

    1 制作软件包

    2 安装,卸载,升级,查询,校验

 

前端工具:yum apt-get自行解决依赖关系

后端工具:RPM  dpt

RPM优点:

1 包含了编译过的程序与配置文件,用户不用重新编译

2 在安装之前,首先会检查硬盘容量,操作系统版本,避免被错误安装

3 他使用RPM数据库管理,数据中记录应用程序的参数,便于升级,卸载,查询(/var/lib/rpm)

4 本身会提供应用程序版本信息,相关属性,软件名称,用途,便于用户了解软件

 

RPM包 经过编译后的软件包

.tar.gz 没有经过编译

 

 

 

 

 

 

[展开全文]


bash的特性:
命令历史:会自动记录系统过去执行的命令,并保存在内存的缓存区中
每个用户的家目录下,有个隐藏文件.bash_history保存命令历史
在每个用户
# history #查看命令历史
-c:清空命令历史
-d:删除某一条命令历史
-w:将命令历史保存到某个文件中
变量:PATH命令路径变量
HISTSIZE:命令历史大小变量
$ echo $HISTSIZE #查看变量的值,默认的命令历史是1000条

命令历史使用技巧:
!n:执行命令历史中的第n条命令(就是history的左边的编号)
!-n:执行命令历史中的倒数第n条命令 (n同上)
!word:执行命令历史中最近一次word开始的命令
!!:执行上一条命令
!$:引用一条命令的最后一次参数
esc(按完松开)再按. :引用一个命令的最后一次参数

管道、重定向

命令别名(alias定义的别名 只在当前shell生效)
alias COMM_ALIAS=COMMAND 例如[root@yum ~]# alias cls=clear 使得 cls拥有clear的功能 就是一个别名
上面的只执行alias命令,列出系统中所有的命令别名。执行alias命令时,COMMAND最后用单引号引起来
如何取消? unalias COMM_ALIAS

命令行的编辑

命令行的展开
命令补齐:按tab两次 补全列出所有存在命令
#echo $PATH #查看PATH变量的值 就是命令的路径
命令替换就是把命令中的子命令替换成子命令执行结果的过程
#echo “” 双引号其实是弱引号(可实现变量的替换,把变量名替换为变量值) ``反撇号 (命令引用) ‘’单引号 (不能完成替换变量)

命令行通配 globbing
*:匹配任意长度的任意字符
?:匹配任意单个字符
[]:匹配范围内的任意单个字符
[ab]从a或者b中去匹配
[a-m]从a到m中去匹配
[A-Z]从A到Z中去匹配
[a-zA-Z0-9]所有的字母与数字
[^]:匹配范围外的任意单个字符
[:space:]:表示空格
[:punct:]:表示所有标点符合
[:lower:]:表示所有小写字母
[:upper:]:表示所有大写字母
[:alpha:]:表示所有字母(包括大小写)
[:digit:]:表示所有数字
[:alnum:]:表示所有数字和大小写字母
字符:数字、字母、符合

变量

编程

[展开全文]

Linux文件类型:
ls -l查看到的头
-:普通文件
纯文本文件(ACSII):配置文件
二进制文件:命令
数据格式文件(data):/var/log/wtmp
d:目录文件
l:链接文件
b:block块设备 类似windows从各盘读取 (/dev)
c:character字符集设备:一次性读取,按顺序读取
s:socket套接字文件:通常用在网络上数据连接:IP:PORT
p:管道 特殊的文件类型 解决多个程序同时访问一个文件所造成的错误问题

flie:查看Linux中文件类型
file 【options】file_name


Linux文件名限制:
1 单文件或目录不可超过255个字符
2 文件命名不可有特殊字符 / . - +等






[展开全文]

设备文件:/dev/

b 块设备

c 字符设备

    主设备号:标识某一类设备

    次设备号:标识这一类设备下不同设备

mknod 创建设备 mknod [option]  name type [major minior]

 

磁盘:

IDE ATA : hd  主板上 2个IDE 借口

SATA : sd 

SCSI  sd

USB  sd 

linux 用字母标识磁盘的个数 a,b

Linux用数字标识分区 1-4标识主分区或扩展分区,逻辑分区从5开始

低级格式化:划分磁道

高级格式化:为分区装载文件系统

文件系统:内核功能

FAT32 NTFS EXT2 EXT3 EXT4 XFS等

 

mkfs 创建文件系统     vfs 虚拟文件系统

    -t 指定文件系统

    mkfs -t ext3 dev_name

 

磁盘ID 

    5 扩展分区、

    82 交换分区

    83 linux系统分区

    8e LVM(逻辑卷管理)

 

fdisk 针对MBR分区类型的工具,交互式分区工具。centos6 以柱面分区,7以扇面分区

    d 删除分区

    l 显示Linux支持的分区类型

    n 创建新分区

    p 显示当前分区列表

    q 不保存退出

    w 保存退出

    t 更改分区的系统id

 

gdisk 针对GPT分区类型的工具

开机  tab键  install.gpt 强制GPT分区

 

mount 挂载  mount  src  des

实现开机自动挂载 /etc/fstab添加内容

UUID=ID号  挂载点  文件系统  默认选项  是否开机检查  是否备份

blkid 查看设备UUID

 

 

 

 

[展开全文]

vm新建虚拟机时,虚拟机位系统分配内存(不同的系统有不同的分配方案),分配的内存不会立即使用物理存,是随着使用来占用的

磁盘:虚拟机中 文件形式存在(镜像文件,image file)

存储为单个文件:NTFS FAT32

拆分为多个文件:

 

安装语言

主机名

网卡

宿主机<-->虚拟机 通讯

虚拟机:桥接模式          宿主机:物理wan

虚拟机:NAT模式(网络地址转换)          宿主机:VMnet8

虚拟机:仅主机模式       宿主机:VMnet1

[展开全文]

Linux命令的帮助信息:
内部命令:help 【command】
外部命令:【command】 --help
man:帮助【command】
上下方向键盘 可翻行


info:在线查看帮助 注重于命令历史 版权信息

cd:切换目录
不加选项,返回当前目录的宿主目录
-:返回上一次的工作路径
-username:切换到他的宿主目录

pwd:显示当前所处的工作目录

which:查看命令所在的路径

whatis:查看命令所在的帮助信息目录 命令在系统启动大约70分钟后会生成whatis的数据库,如果时间太短,该命令不会执行,我们可以使makewhatis初始化该命令

[展开全文]

路径
绝对路径:从根(/)开始的是绝对路径,linux中只有一个根
相对路径:以所处的工作目录为参照点(.代表当前路径 ..代表上一级目录 -代表用的宿主目录)

ls(list):列出目录
ls -s :以长格式显示
-rw-------. 1 root root 1207 Nov 6 18:51 anaconda-ks.cfg
第一位:文件类型
-:代表普通类型
d:代表目录
b:块设备(block)如硬盘、U盘等
c:字符设备(char)如键盘等
s:套接字文件(socket)
p:命名管道
l:符号连接文件
第二到十位:权限位(rwx:读写权限)
234:文件属主权限
567:文件属组权限
8910:其他用户权限

1:代表文件硬链接次数

第一个root:文件属主
第二个root :文件属组

1207:文件大小

Nov 6 18:51 文件最后被访问的时间戳(sata 命令 查看文件收时间戳)
access:访问的时间戳
modif:文件被修改的时间戳(修改数据,添加删除数据等)
change:文件被更改的时间戳(更改文件属性)


-h:为文件大小添加单位
-a:显示目录下所有文件(. .. 以.开始的隐藏文件)
-A:和-a相同,但是不显示.和..
-R:递归显示目录中的内容(一并显示子目录中所有内容)
-r:逆序显示目录内容







 

[展开全文]

远程连接 linux的使用:xshell、crt

xshell: ssh +IP地址

shell作用: 使用者,计算机交互的接口
shell中输入命令 然后它将命令传递给内核,内核把命令反馈给shell,人从shell中读取命令执行结果

内核:图形以及字符界面
Linux支持的shell:
bash :默认支持的shell
ksh
csh

内核的作用:
管理进程
内存管理
文件系统:存储设备上存储数据的方式方法 windows——FAT32、NTFS linux——ext3、ext4、xfs
网络功能:管理IP地址等
硬件驱动
安全功能

Linux终端 ctrl+alt+f1-f6 字符界面 ctrl+alt+f7图形界面

Linux命令格式
命令【选项】【参数】:中括号表示可以省略
命令字:唯一的,实现某一项功能
选项:修改命令的执行方式(实现特定的功能)
长命令:--引导,一个单词(多个长选项不能组合)
短选项:-引导,一个字符(多个短选项可以组合)
参数:命令作用的对象

[展开全文]

计算机体系结构linux

体系结构:计算机:cpu 控制器:cpu 储存器:cpu输入设备:鼠标键盘 输出设备:显示器,音频等;

library:库 lib

kernel:内核(系统核心)

硬件:cpu/内存/硬盘等;

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

A.B.C

A主版本号 B次版本号(奇数:开发版本 偶数:发行版本)C:修订版本号(修订次数)

内核版本:3.6.28 3时主版本号 6是次版本号 28是修订了28

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

[root@www~]#

root:当前登录的用户名

www:主机名

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

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

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

[展开全文]

虚拟机的挂起:暂停(保持在某一个状态)

虚拟机的快照:保存某一个状态

查看ip地址简单命令

ifconfig:查看设置linuxIP地址

虚拟机 设置网络适配器

宿主机<-->虚拟机 通讯

虚拟机:桥接模式(ip地址也需要配置成10.0.0.4/24) 对应 宿主机:物理网卡(10.0.0.4/24)

虚拟机:NAT模式(网络地址转换) 对应 宿主机:VMware NETwork Adapter VMnet8

虚拟机:仅主机 对应 宿主机:VMware NETwork Adapter VMnet11

[展开全文]

基本命令:ls cd pwd 

 

学习内容:file cat cp mv rm mkdir touch

tree  which  whereis

文件管理:

目录管理:

系统管理:

网络管理等

file:查看文件类型命令(windows是扩张名识别文件类型)

语法:file【选项】参数

-b:显示结果时不显示文件名

-c:显示执行file命令的执行过程。file -c,便于排错或者分析file命令执行过程。

-i:输出MTME类型的字符串。

-z:显示压缩文件当中的内容,

-L:查看软链接对应文件的类型。

-f:文件当中  文件名的类型。

也就是比如写了一个.text文件,文件里面写了比如

/etc/passwd (这是一个文件的路径).-f的作用就是列出这些文件的类型。也就是passwd的类型。

cat:一次性查看整个文件,

语法:cat【选项】参数

1.打开一个文件。cat +文件名

2.可以从键盘输入创建一个新文件。或者向现有文件中添加新数据:(把前面的一个大于号改成两个大于号就好了,加入的东西放在最下面)

新建新文件:

cat>new_filename <<EOF   //EOF:代表 文件输入的结束。

>linux command       //键盘输入

>unix command        //键盘输入

>EOF                            //结束书写

像现有文件中追加数据:

cat >> first_file << EOF

>

>

>EOF

3.把多个文件内容合并到一个文件输出:

cat file1 file2 >file3

把第一个和第二个文件合并到第三个文件当中

 

cat常用的选项:

-n   :显示文件内用时同时显示行号。包括空行。

-b和-n的功能相同,但是不包括空行。

-s   :当文件中有多个空行时,合并为一个空行

-E:显示内容时,结尾添加一个$符号。

 

cp:赋值的命令。复制文件或者目录。

语法 cp【option】【src_file】【des_file】

复制文件:

eg:cp /etc/passwd /opt/   :以原文件名命名放在那个目录下。

eg: cp /etc/passwd /opt/mima  :以mima为文件名放在那个目录下,注意区分。

eg:cp /etc/passwd /opt/aaa :假如aaa已经存在了,重名了,它会提示overwrite是否覆盖。n 为no取消,y为yes,覆盖。

复制目录:<需要加选项>

-f  :强制复制文件或目录不进行提示。

-r   :递归复制目录:把自己的目录下的所有东西都copy过去。

-s:为某个文件创建符号链接,而不是复制文件

-b:覆盖已有文件,对源文件备份。会生成一个源文件名+~的文件。

-l:为文件创建硬链接而不是复制文件

-p:复制文件是保留文件的原有属性。

-d:当复制软连接文件时,把目标文件或目录也会创建为软连接,并指向最原始的文件,

-i:覆盖目标文件前询问(默认的 cp=cp -i)mv:move,移动或者重命名文件和目录

<当原位置和目标位置是同一目录时候,是重命名;当原位置和目标位置不是同一目录时,是移动>

 1.移动 :mv  目标文件  文件目标位置

 2.重命名: mv  目标文件  目标文件新名字

  也可以在移动的时候直接对目标文件重命名,

  mv  目标文件    文件目标文件位置 /新名字

选项:

-b :移动前先先对源文件备份。

-f:强制覆盖。

-i:覆盖目标文件前询问。

-t:将多个文件移动到同一个目录。《目标目录在前边,后面跟文件   mv -t 【目标目录下】 file1 file2 .。。。。。》

rm:remove删除文件或者目录。

-d:删除可能存在数据的目录<不常用>

     -f:强制删除<不知道。记住吧>。

     -i:删出前询问<默认的rm=rm -i>。

     -r:递归删出整个目录。<记住,删出目录>

-v:显示命令执行的过程。<不常用>

mkdir:make directory,创建空目录

           -m:创建目录时同时设置权限。

           -p:递归创建新目录。

            -v:显示创建目录的过程。

 

 

 

 

 

 

 

             

 

 

 

 

 

 

 

 

 

 

 

[展开全文]

文件系统:软件(xfs ntfs fat ext3 ext4)存储数据或文件的一种格式,文件系统不存在分区上,位于磁盘的某一个位置;文件系统把分区分割为两部分,一部分存放元数据(metadata 和数据本身内容无关,包括数据属性,权限,时间戳等)另一部分存放数据

block:磁盘上存放的数据块

block bitmap 在元数据区域,标记数据块是否被使用

iNode :index node 索引节点,存放数据的属性,不包括文件名,数据对应的数据块。同一个iNode值可以指向多个文件

super block: 超级块,管理元数据区域内其他的区域

ln(link)硬链接和软链接

硬链接:只能对文件进行硬链接,并且在同一个分区内,指向iNode节点

软链接:使用绝对路径,指向一个路径,文件大小是路径字符串的个数。可以跨文件系统建立

删除文件:把数据对应的iNode 和 block值变为0,实际数据并没有删除

复制文件:重新建立新文件

移动文件:改变iNode和block值,对数据没有操作

[展开全文]

### history :查看命令历史

 * history -c :清除历史记录。

 * -d:删除某一条命令历史。

 * -w:将命令历史保存到某个文件中。

 * 变量:HIDTSIZE 命令历史大小变量。(echo $HISTSIZE)

#### 命令历史使用技巧:

 * !n:执行历史中的第N条命令。

 * !word:执行命令历史中 最近一次以word开始的命令。

* !!:上一个命令。

 

## 命令行编辑:

 * ctrl+a:光标跳到行首。

 * ctrl+e:光标跳转到行尾。

 * Ctrl+u:快速删除光标位置到行首。

 * ctrl+k:快速删除光标位置到行尾。

 

 

## 命令行替换:

 * 命令替换就是把命令中的子命令替换成子命令执行结果的过程。

 * # echo "字符串"

 * “”(双引号):弱引用(可实现变量的替换,把变量名替换成变量值)

 * ``(反撇号):命令引用。

 * ‘’:(单引号):强引用(不能完成变量替换)。

 

 

## 命令行通配:globbing

 *  *  :匹配任意长度的任意字符。

 * ? :匹配任意单个字符。

 *  []:匹配指定范围内的任意单个字符。

    *  [a-z]  [A-Z] [0-9]

 *  [^] :匹配指定范围外的任意单个字符。

 * [:space:]   表示空格。

 * [:punct:]   表示所有标点符号。

 * [:kower:]   表示所有小写字母。

 * [:upper:]   表示所有大写字母。

 * [:digit:]   表示所有数字。

 * [:alnum:]   表示所有数字和大小写字母。

[展开全文]

MBR 主引导记录,位于0磁道0柱面1扇区,512字节,三部分组成:446字节的boot loader (启动加载器,存放引导代码),64字节磁盘分区表,2字节magic  number(检查MBR是否有效)

主分区;

扩展分区:16字节空间,只能有一个,扩展分区是一个指针,指向磁盘另外的位置,不能直接存储数据;

逻辑分区:

 

[展开全文]

### locate :查找文件命令

 * 非实时性,根据自己的数据库查找文件。//updatedb 更新数据库。

 

### more : 翻页查看文本内容

 * enter键:向下翻一页

 * 空格键:向下翻一屏

 * ctrl+f : 向下翻一屏

 * ctrl+b:向上翻一屏

 * = :显示当前行号

 * v:调用vi编辑器

 * q:退出

 

[展开全文]

control 模块

value = action

value值: 

ignore 忽略执行结果

bad 如果失败,结果被用于整个执行栈,后续栈继续执行

die 和bad相似,但是失败直接返回结果,后续栈不执行

OK 如果pam_success,覆盖之前值

done 和OK相似,但是栈直接返回结果

reset 重置栈当前状态

 

modules  PAM认证模块 

/etc/pam.d/* : 每一个应用程序Pam配置文件

/usr/lib64/security Pam认证模块实际存放位置

/etc/security/* 其他Pam环境的配置文件,如access.conf

/usr/share/doc/pam-x 存放详细的Pam说明文件

 

查看应用程序是否支持Pam认证

    ldd app_path

Pam_nologin.so 限制普通使用者能否登陆主机进行使用,当/etc/nologin文件存在时,所有普通用户都无法登录

pam_cracklib.so 可限制恶意攻击,或者检查密码强度。

pam_pwquality.so 完全兼容pam_cracklib.so

检查密码强度,包括设置的密码是否在字典

pam_unix.so 提供验证阶段的验证功能,也可以提供授权管理

pam_env.so 设置环境变量的模块,如果需要额外的环境变量,可以使用pam_env.so进行设置,配置文件/etc/security/pam_env.conf

pam_secruetty.so 限制系统管理员只能从安全的终端登陆,安全终端:/etc/securetty

pam_limits.so 限制使用者打开文件数量,单个文件大小等;

    limits配置文件/etc/security/limits.conf

    格式 domain type item value

        ulimit  【选项】数值(即限额)

        -H  hard limit 严格的限制,必须不能超过这个设置的数值

        -S  soft limit 警告的限制,超过这个数值系统会发出警告,通常soft比hard小

        -a 后面不加任何选项,可以列出系统中所有的限制额度

        -c 当某个用户程序发生错误时,系统会将内存中的应用程序写成文件,这种文件称为核心文件(core file)限制每个核心文件的最大容量

        -f 此shell可以创建的文件的大小,单位kb

        -l 可以锁定的内存量

        -u 单一用户可以使用的最大进程量

        -t 可以使用的最大CPU时间

pam_rootok.so 如果UID为0,直接通过,如root用户su到普通用户使用此模板

pam_listfile.so 验证使用其他的文件

pam_access.so 控制访问的模块,默认配置/etc/security/access.conf

 

 

 

 

[展开全文]

名称解析:libnss库

 

认证——

PAM 嵌入式认证模块,PAM本身不会执行验证,借助策略和模块来认证

ldd 查看某个服务所支持的模块 ldd service_path

/etc/pam.d/service_name(系统中支持Pam认证的服务名称)

格式:type  control  modules

type

auth 身份验证,匹配用户名和密码

account  检查用户名和密码的有效性

password  检查修改密码时,密码是否符合标准

session  检查用户会话相关属性

control 

required:一票否决权,继续匹配下面的条目,最后不匹配

requisite  一票否决权,不匹配下面的条目,直接反馈给用户结果

sufficient 一票同意权,不匹配下面条目,直接反馈结果(慎用)

include  引用其他的配置文件,把匹配权交给其他配置文件(如果其他配置跳出,则整个匹配结束)

optional  不影响最终结果

substack  引用其他的配置文件,把匹配权交给其他配置文件(仅跳出子匹配)

module 匹配认证模块

 

/etc/pam.d/other (当系统中支持Pam认证的服务没有匹配到任何条目时,匹配other中的配置)

 

[展开全文]

Linux认证之nsswitch:

ldap 轻量级目录服务访问协议

nis 网络信息服务

nisplus sun公司商业软件

 

应用程序  nsswitch  名称解析库(.so)

nsswitch 配置文件 /etc/nsswitch.conf

info :method 【action】 method【action】

readelf  查看ELF文件

[展开全文]

默认情况下,Linux新建文件时,不添加执行权限

 

umask 反掩码(/etc/login.defs中定义)

新建文件(目录)时,权限掩码(如666等)减去反掩码(022)就是新建文件(目录)的权限

 

Linux隐藏权限

chattr 修改文件的隐藏权限,/dev/  /tem/  /var/  /etc/ 不受chattr保护

chattr +-= 【选项】filename

    -a 只能向文件中追加数据,不能删除

    i 任何用户不能删除文件

    -A 不能同步访问时间

lsattr 查看文件或目录的隐藏权限

[展开全文]