LinuxLinuxlinux社区

linux基础部分(CentOS 7.x)

2020-01-04  本文已影响0人  linux_阿杰

第一章 计算机硬件知识


服务器种类

硬件服务器

云服务器

服务器外观


机架式服务器

塔式服务器

刀片式服务器

dell服务器型号


时间          1U                    2U

十年前        1850 1950              2850 2950

10-13年      R410/R610          R710  (11代)

14-至今      R420/R430 R620/R630  R720 R730

服务器组成


cpu 硬盘 内存 电源 主板   风扇   光驱   显卡   声卡

处理器

Cpu的 棵树 或者 个数 路

服务器cpu的个数2-4颗

笔记本i3 i5 i7

服务器  至强系列 E3 E5 E7

金牌  银牌 铜牌

内存


        临时储存的地方 介于CPU和硬盘之间

        运行的所有程序都会在内存中运行


程序 静态的内容 文档 视屏 可执行的程序 存放在磁盘的数据 称为程序

进程 把静态的内容运行起来 把系统的程序存放在内存中运行 称为进程

守护进程 持续不断的运行 称为守护进程

buffer && cache


buffer  写入数据到内存中 这个数据的内存空间称为缓冲区 写缓存               

Cache  从内存读取数据,这个数据内存空间称为 缓存区 读缓存

raid 0 1


raid 0方法1 两块600G硬盘组合 1.2T      800G的文件损坏? 彻底损坏 无法恢复

raid 1方法2 两块600G硬盘组合只能使用600G 备份 同时写两份数据 1份损坏 另一块正常使用

安装操作系统方法


使用U盘

使用网络方式安装

使用批量化自动化安装操作系统kickstar cobbler

第二章 linux发展史

69年在贝尔实验室unix诞生

谭宁邦 写了minix

斯托曼 FSF 自由软件基金会

托瓦兹 创建linux内核

GNU #GNU is not unix 没有流行 组件流传了下来 bash gcc awk

GPL 通用公共许可

unix优点


技术成熟  可靠性高

极强的可伸缩性

强大的网络功能

开发功能

数据库支持能力

发行版本


Ubuntu  开发人员

Redhat或centos  服务器多

Debian 或 FreeBSD  安全人员使用 多用于渗透  安全

SUSE 德国多  专业使用数据库 电子邮件网络

红旗  麒麟  中文版

面试题:Redhat与centos的区别


centos 是redhat一个分支

centos 是Redhat去掉logo和部分非自由软件在编译而成 

centos免费版本

redhat部分收费

第三章 虚拟机创建&&xhsell排错

更改网卡


net.ifnames=0 biosdevname=0

分区


/boot 200

sawp 物理内存1.5倍

/ 剩下内存

xshell 排错


看IP

ping ip

改网卡

vmware服务

centos7 关闭NetworkManager

端口

无法上网

ping 网关

ping 公网

DNS域名解析

看网关

第四章 基本命令使用

路径


相对路径:当前路径

绝对路径:从根下的路径到指定的目录/文件路径

pwd 查看当前路径

cd 改变当前工作目录

ls 显示目录中的内容


- l      显示详细信息(等价于ll)

- r      逆向排序 a-z

mkdir 创建目录


  -p    递归创建目录

touch 创建文件

cp 复制

echo 输出内容分到桌面


>      重定向 先清空 再写入

>>      追加重定向

{} 生成序列

cat 查看文件内容


- n      显示行号

tree 以树状图显示目录


-d    只显示目录

-F 在目录后面加上/ 用来区分目录或文件

-L 显示目录层级(加参数)

rm 删除文件或目录


-r 递归删除目录及目录下的文件

-f      强制删除不提示

mv 移动或者改名

第五章 Vim编辑器

打开文件

vim file.name

编辑


i  o   

退出

esc    到视图模式

保存


Shift + :

w      保存退出

q      退出

q!      强制退出

wq    保存并退出

wq!    强制保存并退出

vim 快捷键

光标的移动


G    快速移动到文件尾部

10G  快速移动到第十行

gg 1G  快速移动到行首

$ End  快速移动光标所在行的行尾

^ Home 0 快速移动光标所在行的行首 

复制粘贴剪切删除  视图模式下

yy      复制当前光标所在行

2yy      复制光标所在连续两行

p        粘贴到光标所在行的下一行

3p      粘贴三次内容

dd      剪切光标所在的行

2dd      剪切光标所在的连续两行

d$  d+End 剪切光标所在到行尾

u        撤销操作

D        剪切光标所在到行尾

d^ d+home d0 删除光标所在到行首

dG      剪切光标所在行到文件尾部

dw      剪切一个单词

s        删除一个字母

x        删除一个字母

编辑模式


i  a    进入编辑模式

o      进入光标所在行的下一行编辑

O      进入光标所在行的上一行编辑

C      删除光标所在行行尾并进入编辑模式

A      移动到行尾并进入编辑模式

cc      删除整行进入编辑模式

批量操作


1.ctrl + v  选中行

2.按大写I

3.输入要添加的内容

4.按两次esc


1.ctrl + v  选中行

2.r

3.输入替换内容

vim 不正常退出


1.直接删除.swp 文件 进行编辑 新写入的内容会消失

2.如何恢复

vim -r oldboy.txt 按回车保存退出

删除.swp 文件即可

第六章 目录结构

挂载磁盘

mount /dev/cdrom /mnt/

网卡配置文件


/etc/sysconfig/network-scripts/ifcfg-eth0

TYPE=Ethernet   #网络类型 以太网

BOOTPROTO=none   #获取ip地址

                            三种配置方法

                            1.none  静态

                            2.DHCP 动态获取

                            3.static 静态

NAME=eth0 #配置文件名 网卡名称

DEVICE=eth0 #硬件网卡名称

UUID=842a0ef2-ed4b-4fb4-aa1b-8d4e70b0eacd

#唯一标识 系统为每一个硬件设备分配唯一标识(克隆虚拟机删除)

ONBOOT=yes #开机自动启动

IPADDR=10.0.1.200 IP地址 局域网内唯一 公网上唯一

PREFIX=24 #子网掩码 决定我们网络中可使用ip地址数量

GATEWAY=10.0.1.254 #网关 大门口

DNS1=10.0.1.254 #域名解析服务器 可快速方便访问服务器

    负责把域名解析为ip地址

/etc/hosts  本地解析配置文件  DNS解析 解析主机名称

/etc/hostname  主机名称配置文件

1.如何查看当前主机名


hostname  centos6/7  想同

2.如何临时修改主机名


hostname  主机名    centos6/7 相同

3.如何永久修改主机名


vim /etc/hostname        centos7重启生效

vim /etc/sysconfig/network    cetnos6

4.如何临时+永久修改主机名


hostname set-hostname 主机名  centos7

hostname 先临时修改 再更改配置文件

vim /etc/sysconfig/network      cenros6

/ect/resolv.conf 配置DNS服务器的配置文件

/etc/rc.local 开机自启执行文件中命令

/etc/fstab 磁盘挂载配置文件 开机自动挂载

/etc/issue 登录服务器前显示的内容

/etc/issue.net 登录服务器前显示的内容

/etc/moth 连接服务器后显示的内容

/etc/inittab 服务器开机后运行级别


centos 6.x

0 关机

1 单用户模式 救援模式 忘记密码

2 多用户模式 没有NFS网络支持

3 完全多用户模式 默认使用

4 待开发

5 桌面模式

6 重启


centos 7.x

0 poweroff.target

1  rescue.target

2  multi-user.target

3  multi-user.target

4  mulit-user.target

5  graphical.target

6  reboot.target

1.如何查看当前的运行级别


centos 6 查看方法

cat /etc/inittab

id:3:initdefault:

centos 7 查看方法


root@oldboyedu ~#: systemctl get-default

multi-user.target

2.如何临时修改启动级别centos 6 / 7相同


init  0  关机

init  5  桌面

init  6  重启

3.如何永久修改运行级别 开机后自动运行那个功能那个级别

centos 6 配置方法


vim  /etc/inittab  id:3:initdefault:

centos 7 配置方法


systemctl set-default  runlevel5.target

/etc/profile 环境变量 开机自动运行

/etc/bashrc 环境变量 别名

.bashrc 环境变量 针对当前登录用户生效

.bash_profile 环境变量 针对当前登录用户生效

/var variable 变化的 日志文件

/var/log/messages 日志信息 记录了系统运行的记录

/var/log/secure 系统的安全日志

/proc/cpuinfo 处理器的一些信息

/proc/meminfo 查看内存信息

/proc/loadavg 平均负载

/proc/mounts 了解 系统挂载的详细信息

第七章 安装方式

yum 安装


yum -y install package.name

yum 卸载


yum -y remove package.name

yum 查找包名


yum provides  package.name

rpm 安装

rpm 安装方式


rpm -ivh package.name

-i    install

-v  显示安装过程

-h  人类可读模式

rpm -qa 查看软件是否安装


-q 查看

-a 所有

-l 列表

rpm 卸载软件


rpm -e package.name

编译安装

.configure make makeinstall

第八章 虚拟机优化

yum 源


yum  repolist    #查看当前使用的软件仓库

rpm  -qa        #查看已安装的软件

yum  list        #查看这个仓库有什么软件可装

更改yum源为阿里云源

备份


mv  /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

下载新仓库到本地


wget  -O  /etc/yum.repos.d/CentOS-Base.repo  http://mirrors.aliyun.com/repo/Centos-7.repo

Selinux

如何查看当前selinux是否开启


getenforce

如何临时关闭selinux


setenforce Permissive

setenforce 0

永久关闭selinux 需要重启


    /etc/selinux/conf

enforcing # 开启状态 运行中

permissive     # 关闭状态但是会提示警告信息

disabled     # 完全关闭状态

SELINUX=disabled

防火墙

centos6.x iptables

centos7.x firewalld

如何查看当前防火墙是否运行


systemctl status firewalld

中间的常用命令


start  开启

stop    停止

restart 重启

reload  加载

status  状态

systemctl is-active firewalld # 查看防火墙运行状态

如何临时关闭防火墙


systemctl stop firewalld

永久关闭防火墙


systemctl disable firewalld

如何查看是否开机禁止启动防火墙


  systemctl status firewalld.service 第二行显示 enabled 开机自动启动

  [root@alexlnb ~]#systemctl is-enabled firewalld.service

  enabled

  禁止启动

  systemctl disable firewalld.service

centos6 iptables的关闭和禁止启动


centos6

  /etc/init.d/iptables stop

  service iptables stop  

  chkconfig iptable off  

  /etc/init.d/iptables status # 查看状态

字符集

如何查看系统默认的字符集 centos7


[root@alexlnb ~]#echo $LANG

  en_US.UTF-8

临时修改默认的字符集


LANG='zh_CN.UTF-8'

永久修改字符集


/etc/locale.conf

LANG="en_US.UTF-8"

centos 6 修改字符集

临时修改


echo $LANG

LANG='zh_CN.UTF-8'

永久修改字符集


/etc/sysconfig/i18n

source /etc/sysconfig/i18n

第九章 vim进阶和文本命令

vim 底行模式


:set nu  显示行号

:set nonu 取消显示行号  

ZZ  保存并退出

搜索


/ 搜索的内容

n 查找下一个内容 往下查找

N 查找上一个内容 往上查找


1copy10 # 把第一行的内容复制到第10行的下面 简写co

1,3copy10  # 把第一行到第三行的内容复制到第10行的下面

1move10 # 把第一行的内容移动到第10行的下面  简写mo

1,3move10  # 把第一行到第三行的内容移动到第10行的下面

1d     # 删除第一行的内容

1,5d # 删除第一行到第五行的内容

取消高亮


:noh

替换


s###g # s替换标志  g 全局替换

cat 查看文本内容


-n 显示行号

-A 在行尾加上$ 表示行结束

less 查看文本内容(大文件)


-N    显示行号

空格 f 显示下一页内容

b      显示上一页内容

gg  快速移动到首页

100G 快速到100行

g      快速移动到第一页

G   快速移动到文件的底部

/   搜索

n      查找下一个内容

N   查找上一个内容

q   退出

more 查看内容一页一页显示


f  往下翻页

b  往上翻页

空格 往下翻页

head 默认显示前十行


-n  显示文件的行数 可简写 -2  -n2

-c  显示文件的前n个字符 不常用

tail 默认显示文件后十行


-n  显示文件的行数 简写-2 -n2

-f follow 实时显示文件的内容变化

-F  实时显示文件内容的变化 监控文件 文件不存在会时时等待文件的出现

tailf === tail -f

tailf 不读磁盘 速度快

tail -f 读磁盘 速度慢

seq 生成序列

tr 替换不能对文件进行操作 1 对 1


-d  删除内容

-c  取反

特殊符号


    . 代表当前的目录

  .. 代表上一级目录

  #  注释 不生效的内容  shell编程的第一行有用  root用户提示符

  ~  代表家目录

  $  代表普通用户提示符

  > 重定向

  >> 追加重定向

  <  输入重定向

  -  上一次所在的目录

  |  前面命令的输出 作为后面命令的使用

  \  转义字符

alias 别名

永久定义别名

把配置写入/etc/profile中

环境变量的生效顺序 /etc/profile-> /etc/bashrc

第十章 文件属性

indoe 节点

33575001 inode

rw-r--r-- 文件的权限

. selinux

1 硬链接个数

root 属主

root 属组

18 文件的大小

12月 12 20:37 时间

bash.sh 文件名

inode index node # 存放着文件的属性和文件具体的位置的指针 不包含文件名

block 快 文件的具体存放位置

文件类型


- 普通文件

drwxr-xr-x  d 目录 directory

lrwxr-xr-x l 软链接

brw-rw---- b 快设备

crw-rw-rw- c 字符设备

p 管道设备

文件相关命令

which 查看命令的全路径

file 查看文件的类型

whereis 查看文件的具体位置和文件的帮助

第十一章 文件查找之find

find 查找命令


find 在哪里找 -类型 f  -名字 "1.txt"

-name    # 按名称查找 test.txt

-iname  # 查找到的内容不区分大小写 

-size    # 按照大小查找 -b -k -M -G

-maxdepth # 按最大的深度等级查找

-mtime  # 按照文件的修改时间查找modify

-类型 -type

f  普通文件

d  目录

按名称查找


find /tmp/ -type f -name "test.txt"

按文件的后缀查找 所有.txt结尾的文件


find /tmp/ -type f -name "*.txt"

不区分大小写搜索


find /tmp/ -type f -iname "*.txt"

按照大小查找 -size


find ./ -type f -size +100k # 查找当前目录 大小100k的文件

按时间查找


find  -type f -mtime +7 -mtime -30  #查找7-30内的文件

移动


find ./ -type f -size +1M|xargs -i mv {} /tmp

mv `find /tmp/ -type f -name "7.txt"` .

find /tmp/ -type f -name 8.txt -exec mv {} /opt \;

删除


find /tmp/ -type f -name "5.txt"|xargs rm

rm `find ./ -type f -name 7.txt`

find ./ -type f -name "3.txt" -exec rm {} \;

复制


find /tmp/ -type f -name "6.txt"|xargs -i cp {} .

cp `find /tmp/ -type f -name 8.txt` .

find ./ -type f -name "4.txt" -exec cp {} /tmp \;

序列匹配


find /tmp -type f -name '[1-8].txt'   # 匹配1-8以.txt结尾的文件

df -i 查看indoe使用情况

df -h 查看block使用情况

第十二章 软硬链接

硬链接

硬链接的特点:


1)在相同文件系统中具有相同inode号的文件 互为硬链接  ll -i

2)相当于文件的多个入口  类似于超市的多个入口

3)文件默认的硬链接为1  目录默认的硬链接为2  且目录无法做硬链接(会出现循环)

4)删除源文件和目标文件任意一个文件 文件不会真正的删除

5)只有同时删除源文件和目标文件 文件才会被删除  (普通文件)

6)删除源文件和目标文件 并且没有被系统或程序调用 则被真正删除  进程调用

7)如果删除文件的空间在存放其他文件 则被删除文件无法恢复 或者使用fsck命令进程磁盘检查 空间也会被系统回收

8)硬链接文件是普通文件 使用rm删除即可

9)硬链接为防止文件的误删做的备份

10)不能跨文件系统

软链接

软链接特点:


1)Inode号不同

2)类似于windows的快捷方式 里面存放了源文件的指针指向

3)删除软链接文件不影响源文件

4)删除源文件则文件被真正的删除  软链接不会删除 但是不可用

5)做软链接尽量使用全路径

6)删除一定要注意不能删除源文件(>后面的为源文件)

权限讲解

-rw-r--r-- 1 root root 58 Dec 28 16:10 1.pl

主 组 其他 主 组 大小 时间 文件名

Access: 访问时间 cat查看 当文件无修改 则时间不会变

Modify: 修改时间 vim echo 修改

Change: 属性的修改时间 属性信息 -rw-r--r-- 1 root root 1.3M Dec 18 10:53

为什么目录的硬链接数为2


每个目录下都有一个硬链接"."号,和对应上级目录的硬链接".."

在父目录里创建一个子目录,父目录的链接数增加1(每个目录里都有..来指向父目录)。但是在父目录里创建文件,父目录的链接数不会增加

第十三章 打包压缩

tar


  z  使用gzip压缩

  c  create 创建

  v  显示过程 verbose

  f  指定压缩文件

解包:tar zxvf FileName.tar

打包:tar czvf FileName.tar DirName

gz


解压1:gunzip FileName.gz

解压2:gzip -d FileName.gz

压缩:gzip FileName

.tar.gz    .tgz

解压:tar zxvf FileName.tar.gz

压缩:tar zcvf FileName.tar.gz DirName

bz2


解压1:bzip2 -d FileName.bz2

解压2:bunzip2 FileName.bz2

压缩: bzip2 -z FileName

.tar.bz2

解压:tar jxvf FileName.tar.bz2

压缩:tar jcvf FileName.tar.bz2 DirName

bz


解压1:bzip2 -d FileName.bz

解压2:bunzip2 FileName.bz

.tar.bz

解压:tar jxvf FileName.tar.bz

zip


解压:unzip FileName.zip

压缩:zip FileName.zip DirName

第十四章 通配符


命令1|命令2  ###管道符号  传递的是普通的字符串,文本 来自于前一个命令

|xargs          ###管道符号 与xargs 传递的是把字符串变成了 文件名

.    #当前目录,任意一个字符(正则)

..    #当前目录的上一级目录

*    #任意0个或多个字符(文本)(通配符)

>    #输出重定向 会清空原来的内容 然后在向文件里面追加内容

>>  #追加输出重定向 追加到文件的最后一行

<    #输入重定向 tr  xargs 

<<  #cat 用来给文件追加多行文本

#    #注释 linux会忽视他。给人看的。解释说明。

    # root 超级用户的 提示符

$    shell

$变量  ====>取变量里面的内容

    手 鞋盒子  拿出鞋  ====>取变量里面的内容

&& # 前面的命令执行成功 则执行后面的命令  不成功则不执行后面的命令

  cd /backup && ls  如果backup存在则执行ls  如果backup不存在 则不行ls

|| # 前面的命令执行失败 则执行后面的命令 不失败则不执行

    cd /backup || mkdir backup 如果cd执行失败 则创建目录backup

如果cd成功  则不会执行后面的创建命令

; # 前面的命令成功和失败 都会继续执行后面的命令

        cd /backup;ls /opt 不管cd是否成功 都会继续执行分号后面的命令

""      # 大部分都是字符串 能解析变量 不能解析通配符

错误重定向 正确重定向 &>/dev/null  定向到空

ls > test.txt # 命令执行的结果为正确的才可重定向到test.txt

1> 只接收正确的结果 重定向 前清空在写入

1>> 只接收正确的结果 追加

2> 只接收错误的结果

2>> 只接收错误的结果 追加

'' 输出不解析变量 所见即所得

""  解析变量 不能解析通配符

不加引号和加双引号类似 能解析变量 但是能解析通配符

``  执行命令  把命令的结果留在原地 其他命令调用  和$()相同

第十五章 正则符号

基础正则


^ 以什么什么开头

$ 以什么什么结尾的行

' ' 过滤空格 不显示空行

^$  表示空行

. 过滤任意一个字符 不会匹配空行

* 前面的字符串出现0次或0次以上

.* 所有   包含空行

[]  匹配中括号中的任意一个字符

扩展正则

[^]  取反  中括号和默认语句''  都不会匹配空行

+ 前面的字符出现1次或1次以上

{} 匹配次数

第十六章 三剑客

grep 过滤字符串


-r 递归搜索

-v 取反

-o 显示匹配过程

-n 显示过滤出内容的行号

-w 统计单词

-i 不区分大小写

-c 过滤内容的总行数

格式

grep -参数 '字符串' 文件名


过滤1

[root@alexlnb ~]#grep '1' test.txt

1

10

查找空行

grep ^$ logs.log

查找以leo开头的行

grep ^leo logs.log

sed 替换,查找


-e  指定多命令

-f 指定命令文件

-i  修改源文件

-n 取消默认输出

-r  支持扩展正则

p 打印

d 删除  临时删除

c  替换

s  全局替换g

a  追加 在当前行的下一行插入内容

i  插入 在当前行插入新的内容

sed -参数 '字符串' 文件


查找第三行

sed '3p' file

查找1到3行

[root@alexlnb ~]#sed -n '1,3p' 1.txt

111111111111

2222222222

333333333333

明确匹配最后一行

[root@alexlnb ~]#sed -n '$p' 1.txt

55555555555555

模糊匹配// 字符串匹配

sed '/字符串/p' file

[root@alexlnb ~]#sed -n '/lizhenya/p' oldboy.txt

I am lizhenya teacher!

our site is http:www.lizhenya.com

lizhenya

匹配显示lizhenya的行到test之间的行

lizhenya

fags

gswgsreh

test

删除第 2 行

sed '2d' test.txt

匹配每一行的第一个old替换为new

sed 's/old/new/' test.txt

如何匹配出 10.0.1.200 255.255.255.0

inet 10.0.1.200  netmask 255.255.255.0  broadcast 10.0.1.255

root@13k ~#: ifconfig|sed -n '2p' |sed -r 's/^.*inet (.*) net.* (.*) bro.* /\1\2/g'

10.0.1.200 10.0.1.255

awk 查找


NR    行

NF    列

==  等于

>  大于

<  小于

>=  大于等于

<=  小于等于

!=  不等于

&&  并且

||  或者

awk '{print $n}' 文件


取第一行到第五行

    [root@alexlnb ~]#awk 'NR<6' /etc/passwd

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

取第一列

[root@alexlnb ~]#awk '{print $1}' 1.txt

oldboy

lizhenya

1

5

指定分隔符取列

[root@alexlnb ~]#cat 2.txt

oldboy

[root@alexlnb ~]#awk -F "d" '{print $1}' 2.txt

ol

搜索匹配

[root@alexlnb ~]#awk '/root/' test.txt

root:x:0:0:root:/root:/bin/bash

operator:x:11:0:operator:/root:/sbin/nologin

查找以root开头的行

[root@alexlnb ~]#awk '/^root/' test.txt

root:x:0:0:root:/root:/bin/bash

查找以root开头的行 并打印第一列和最后一列

[root@alexlnb ~]#awk -F: '/^root/{print $1,$NF}' test.txt

root /bin/bash

数字比较

[root@alexlnb ~]#awk '$1>2' 2.txt

4 5 6

3 1 2

查看行号

awk '{print NR,$0}' test.txt

第十七章 开机流程

Centos6.X init


串行启动  如果某一项服务挂掉 无法启动  则后面的全部无法正常启动

centos7.X systemd


并行启动  如果某一项服务挂掉 不影响系统正常启动

开机流程centos 6


开机BIOS自检

MBR引导

grub引导菜单

加载内核kernel

启动init进程

读取inittab文件,执行rc.sysinit,rc等脚本

启动mingetty,进入系统登陆界面

开机流程centos 7


按下电源

开机自检

MBR引导

GRUB菜单

加载内核

启动systemd

读取systemd/system文件

初始化 /usr/lib/systemd/system

并行  启动服务

进入登陆界面

第十八章 用户管理

让一个命令或者一个服务开机自启动

/etc/rc.local 需要给源文件x权限 可执行命令 服务启动 脚本

chkconfig iptables on                开机启动

systemctl enable firewalld         开机启动

/etc/profile 开机加载 或者重新打开窗口连接 重新加载

用户分类

管理员 root

虚拟用户

普通用户

useradd 创建用户


-u      指定uid

-g      指定gid

-s      指定解释器

-M      不创建家目录

passwd 创建密码


交互式

passwd  用户 密码

非交互式

echo 密码 | passwd  --stdin  用户

usermod 修改用户信息


-s 修改解释器

-u 修改用户uid

-g 修改属于组

-G 属于多个组

chown 修改用户属主属组


-R 递归

groupadd 添加用户组


  -g  指定组ID

groupdel 删除用户组

userdel 删除用户


-r      连根拔起  用户和家目录一并删除

第十九章 批量化创建用户

普通创建


非交互式创建

echo 123456|passwd --stdin oldboy

sed  批量创建用户

echo test{01..10}|xargs -n1|sed -r 's#(.*)#useradd \1;echo 123456|passwd --stdin \1#g'|bash

sed  批量删除用户

echo oldboy{1..10}|xargs -n1|sed -r 's#(.*)#userdel -r \1#g'|bash

awk 批量创建用户

echo oldboy{1..10}|xargs -n1|awk  '{print "useradd " $1";echo 123456|passwd --stdin " $1}'|bash

awk 批量删除用户

echo oldboy{1..10}|xargs -n1|awk '{print "userdel -r " $1}'|bash

随机模块


$RANDOM  0 - 32767

echo $RANDOM

高级创建


非交互式创建

useradd oldboy;echo `echo $RANDOM|md5sum|cut -c1-8`|passwd --stdin oldboy

sed  批量创建用户

echo test{1..10}|xargs -n1|sed -r 's#(.*)#useradd \1;pass=`echo $RANDOM|md5sum|cut -c1-8`;echo $pass|passwd --stdin \1;echo \1 $pass >>passwd.txt#g'|bash

sed 批量删除用户

for i in {1..10};do userdel -r test$i;done

awk 批量创建用户

echo test{1..10}|xargs -n1|awk '{print "useradd "$1";pass=`echo $RANDOM|md5sum|cut -c1-8`;echo $pass|passwd --stdin "$1";echo "$1" $pass >>passwd.txt"}'|bash

awk 批量删除用户

for i in {1..10};do userdel -r test$i;done

第二十章 文件权限


最小化原则  安装操作系统 需要什么安装什么

保护root  禁止root登录 更改默认SSH端口 22端口

给重要的命令+i  给重要的文件加a

给重要的文件或命令做一个指纹

r:read 读

w:write 写

x:execute 执行

读 r -> 4

写 w -> 2

执行 x -> 1

方法1:mode法


格式:chmod who opt per file

  who:u g o a(all) 

  opt:+ – =

  per:r w x X

方法2:数字法


格式:chmod XXX file

  rwx rw- r–

  111 110 100

  7  6  4

  r:4

  w:2

  x:1

rwx 对文件的作用


r 可读 不可写 不可执行

w 不可写 不可执行 可追加 如果想写入 必须和r 配合使用

x 啥都不能干 想要执行 必须和r 进行配合

rwx 对目录的作用


r 不能进入目录 只显示文件名 不显示详细信息 配合x 使用

w 啥都不能干 控制是否在目录下创建 删除 重命名必须和x配合使用

x 可进入到目录可以查看文件内容

UMASK值


作用:取消对应的权限,影响创建文件和目录的默认权限

对目录: umask+default=777(dir)

对文件:666-umask:观察结果,如果有奇数,奇数位+1,偶数不变

三种权限 suid sgid sticky

suid


作用:给一个用户继承二进制程序所有者拥有的权限

例:ll /usr/bin/passwd

-rwsr-xr-x. 1 root root 27832 Jun 10  2014 /usr/bin/passwd

给file文件增加suid权限

chmod u+s file

chmod 4755 file              suid数字法表示为4

sgid


作用1:给一个用户继承二进制程序所有组拥有的权限

例:ll `which cat`

-rwxr-sr-x. 1 root root 48568 Mar 23  2017 /bin/cat

给file文件增加sgid权限

chmod g+s file

chmod 2755 file              sgid数字法表示为2

sticky


作用:作用于目录上,此目录的文件只能被所有者删除

如:ll -d /tmp

drwxrwxrwt. 17 root root 4096 Apr  4 10:02 /tmp

给dir目录添加sticky权限

chmod o+t dir

chmod 1777 dir                sticky数字法表示为1

ACL 访问控制列表

添加ACL权限


setfacl -m u:wang:0 file        使wang账户对指定file文件无权限

setfacl -m u:mage:rw file      使mage账户对指定file文件有读写权限

setfacl -m g:g1:rw file        使g1组对指定file文件有读写权限

getfacl    file                查看指定file文件的ACL权限

删除ACL权限


setfacl -x u:wang file      删除wang账户对指定file文件的ACL权限

setfacl -x g:g1 file        删除g1组对指定file文件的ACL权限

ACL权限下的mask


设置用户对指定文件所能拥有的最大权限(限高作用)

setfacl -m mask::r file            使指定文件file所拥有的最大权限位读r

setfacl -x mask::r file            取消指定文件file的最大权限限制mask

setfacl -b f1                      取消f1文件所有的ACL权限

备份和恢复ACL权限


getfacl -R /tmp/dir1>acl.txt              将dir1目录下ACL权限备份

setfacl -R –set-file=acl.txt /tem/dir      恢复dir1目录下ACL权限

文件权限常用命令


chown 设置文件所有者(普通用户无法修改文件所有者)

chgrp 设置文件所属组(普通用户要想该所属组,前提是文件所有者为自己,自己在所属组中)

chmod 设置指定文件权限

chattr 给指定文件添加保护,避免root账户误操作

  +i      锁定文件,不能删除,不能改名,不能更改内容

  -i      解锁+i 

  -a      锁定文件,不能删除,不能改名,但可追加内容(追加重定向)

  -a      解锁+a

  +A      指定文件读时间atime不再更改

lsattr 查看指定文件是否有锁定状态

setfacl 设置文件ACL权限

  -m mask::r file          使指定文件file所拥有的最大权限位读r

  -x mask::r file            取消指定文件file的最大权限限制mask

  -b f1                  取消f1文件所有的ACL权限

  -R –set-file=acl.txt /tem/dir  恢复dir1目录下ACL权限

getfacl              查看文件ACL权限

第二十一章 crontab 定时任务

crontab 安装:


yum  -y install crontabs

相关服务


service crond start  启动服务

service crond stop    停止服务

service crond restart 重启服务

service crond reload 重新载入配置

service crond status 查看crontad服务状态

chkconfig crond --list 查看crontab服务是否已设置为开机启动

chkconfig crond on 加入开机自动启动

命令格式

crontab [-u user ] file

crontab [-u user ] [ -e | -l | -r ]

参数说明:


-u  user:用来设定某个用户的crontab 服务

file  文件的名字 

-e    编辑crontab文件内容

-l    显示crontab文件内容

-r    删除定时任务配置

配置说明


*      *     *      *      *     命令

分   时   日   月    周

服务


邮件服务

systemctl stop postfix

root邮件的地址

/var/spool/mail/root

小文件的目录

/var/spool/postfix/maildrop/

实例


*/1 * * * * date >> /root/date.txt

每分钟执行一次 date命令

30 21 * * *  /usr/local/etc/rc.d/httpd restart

每晚的21:30 重启apache

45  4  1,10,22  * *  /usr/local/etc/rc.d/httpd restart

每月的1 10 22 号 4:45重启apache

10 1 * * 6,0    /usr/local/etc/rc.d/httpd restart

每周六 周日的1:10 重启apache

0,30 18-23 * * *  /usr/local/etc/rc.d/httpd restart

每天18:00至23:00 之间每隔30分重启apache

* 23-7/1 * * *    /usr/local/etc/rc.d/httpd restart

晚上11点到早上7点之间 ,每隔一个小时重启apache

上一篇 下一篇

猜你喜欢

热点阅读