一、前提准备:

虚拟机VMware12或15
centOS7镜像文件

二、虚拟机的安装步骤

CentOS7操作系统设备管理 配置centos7_基本配置


CentOS7操作系统设备管理 配置centos7_sed_02


CentOS7操作系统设备管理 配置centos7_CentOS7操作系统设备管理_03


CentOS7操作系统设备管理 配置centos7_sed_04


CentOS7操作系统设备管理 配置centos7_sed_05


下面安装一路默认:直到有红色警告的地方

CentOS7操作系统设备管理 配置centos7_CentOS7操作系统设备管理_06


CentOS7操作系统设备管理 配置centos7_sed_07


CentOS7操作系统设备管理 配置centos7_centOS7_08


CentOS7操作系统设备管理 配置centos7_基本配置_09


CentOS7操作系统设备管理 配置centos7_基本配置_10


CentOS7操作系统设备管理 配置centos7_sed_11


等待安装完成登陆即可

三、简单配置

1.设置自己的IP
vi /etc/sysconfig/network-scripts/ifcfg-ens33

CentOS7操作系统设备管理 配置centos7_linux_12


CentOS7操作系统设备管理 配置centos7_sed_13


每行代码的解释如下:

代码

解释

TYPE=Ethernet

//网络类型:Ethernet以太网

BOOTPROTO=none

//引导协议:自动获取、static静态、none不指定

DEFROUTE=yes

//启动默认路由

IPV4_FAILURE_FATAL=no

//不启用IPV4错误检测功能

IPV6INIT=yes

//启用IPV6协议

IPV6_AUTOCONF=yes

//自动配置IPV6地址

IPV6_DEFROUTE=s

//启用IPV6默认路由

IPV6_FAILURE_FATAL=no

//不启用IPV6错误检测功能

NAME=ens33

//网卡设备的别名

UUID=90528772-9967-46da-b401-f82b64b4acbc

//网卡设备的UUID唯一标识号

DEVICE=ens33

// 网卡的设备名称

ONBOOT=yes

// 开机自动激活网卡

DNS1=6.6.6.6

//D NS域名解析服务器的IP地址

IPADDR=192.168.1.199

//网卡的IP地址

PREFIX=24

//子网掩码

GATEWAY=192.168.1.1

//默认网关IP地址

IPADDR=192.168.2.2

#你想要设置的固定IP理论上192.168.2.2-255之间都可以,

NETMASK=255.255.255.0

#子网掩码,不需要修改;

GATEWAY=192.168.2.1

#网关,这里是你在“2.配置虚拟机的NAT模式具体地址参数”中的

保存退出后刷新一下网络

service network restart

查看能否连接外网

ping www.baidu.com

CentOS7操作系统设备管理 配置centos7_linux_14


建议关闭防火墙

systemctl stop firewalld.service

关闭开机自启

systemctl disable firewalld.service

关闭selinux

vi /etc/selinux/config

设置 SELINUX=disabled

2.修改主机名以及IP和主机名的映射
vi /etc/sysconfig/network

在最后一行添加 HOSTNAME=yourname.com 保存退出

vi /etc/hosts

在最后一行添加(你自己的ip)
   192.168.195.88     yourname.com 保存退出
检查:
ping yourname.com

3.创建用户以及赋予普通用户免密码的超级权限

useradd  newUserName

visudo
在 root   ALL=(ALL)   ALL 下一行添加
username    ALL=(ALL)    NOPASSWD:ALL
保存退出

四、其他Linux的简单命令

基础命令:

命令

说明

1

2

3

ls

查看本文件夹下的信息

-a:显示所有的内容

-l或ll:列举详细的信息

-d:列举当前信息

mkdir

创建文件夹

[-p]:递归创建

mkdir -p data/data

相对目录和绝对目录

rmdir

删除空文件夹

touch

创建文件

通过改变创建时间

-p:递归

rm

删除文件

rm -rf:删除目录和文件

cd

打开

cd …返回上一级

cd / 返回根目录

cd ~家目录

pwd

显示当前目录

whereis

查找命令

clear

清屏

ctrl l

history

显示用户的登录信息

cp

复制

-r 复制目录

可以重命名的

mv

剪切

cat

查看一个文件的内容

-n:显示行号

more

翻页查看

空格翻页

按q退出

less

可以上下翻页

head

-10 :显示前10行

-F:后行显示

tail

-3 :显示最后三行

echo

回显

操作

说明

date

显示当前时间

who

显示用户的登录名

su

切换用户命令

cal

显示日历

bc

计算器

shutdown

关机

useadd

增加普通用户

userdel

删除普通用户

8.Linux用户权限

操作

说明

root

最高权限

UID=0

useradd

添加用户

500-1000

passwd

设置密码

su

切换用户

groupadd

创建组

groupdel

删除组

chgrp

改变档案所属群组

chown

改变档案所属人

chmod

改变档案的属性

SUID等等的特性

Linux入门


##权限管理
说明:将人们创建的权限进行修改
用户类型:

所有者:u
用户组:g
其他人:o
所有人:a

目录权限的类型:

类型

说明

数字

r

可读

4

w

可写

2

x

可执行

1

chmod:修改文件的权限

chmod g+x aaa:给组添加执行的权限
chmod a-x,a+r aaa:所有人去除实行,添加读的权限
chmod 777 aaa:共享文件

注意:普通用户没有在其他家目录中的任何的操作
家目录绝对隐私
分组:
chgrp [-r] 组名 文件和文件夹
改变用户所有权:

chown username:username /test01
username:groupname

修改用户指定组:
usermod -g 组名 用户名

操作

说明

例子

说明

chmod

修改文件权限

chmod 777

所有人都可以操作

chgrp

把文件赋给某个组权限

chgrp user1 /test01

赋予某个组权限

chown

改变文件所有权

chown user1:user1 /test01

修改某个文件的所有权和分组

usermod

修改用户所在组

usermod -g user2 user1

把1分到2组当中

关机和克隆

关机

重启

克隆

快照

shutdown -h now

reboot

复制镜像

备份

halt

init 6

下次出问题可以直接返回快找时间点

init 0

常用工具命令

visudo

普通用户获得超级权限

在root后加入: username   ALL=(ALL)   NOPASSWD: ALL

systemctl stop firewalld

关闭防火墙

service iptables stop

systemctl start firewalld

打开防火墙

普通用户打不开

service iptables start

systemctl status firewalld

查看防火墙状态

service iptables status

常见符号:

符号

注释

说明

符 号

注释

.

当前目录


上一级目录

|

管道符

过滤 :grep ‘data’ 模糊匹配

>

定向覆盖符号

>>

重定向追加符号

cat /etc/passwd | grep ‘data’ >>/test01/test3.txt

~

家目录

&

后台运行

\

换行

<

可以改变标准输入

*

任意的,通配符


代表任意一个字符

d?v … d*

set nu

设置行号

vi编辑器

操作

说明

操作

说明

yy

复制当前行

10yy

复制从当前开始的十行

p

粘贴

dd

剪切当前行

10dd

剪切从当前行开始的十行

G

跳到最后一行

gg

跳到第一行

10gg

跳到第10行

u

撤销上一步

进入插入模式(6个命令)

操作

说明

【i】

从目前光标所在处插入

【I】

从目前光标

【a】

从当前光标所在的下一个字符处开始插入

【A】

从光标所在行的最后一个字符处开始插入

【o】

英文小写字母o,在目前光标所在行的下一行处插入新的一行并开始插入

【O】

英文大写字母O,在目前光标所在行的上一行处插入新的一行并开始插入

最后行模式:在命令行的模式下按shift+:进入最后行模式

操作

说明

操作

说明

:w

保存文件

:w!

若文件为只读,强制保存文件

:q

退出

:q!

不保存强制退出

:wq

保存后离开 --会修改最后修改的时间

:wq!

强制保存后离开

:set nu

显示行号 :set nonu

取消显示行号


强制退出

x

保存退出不会修改时间

X

加密

帮助与查找命令

man:查看命令的详细用法
-新命令;–旧命令
find:查找文件,会包含子目录
格式:find 路径 条件

条件

说明

例子

-name

以名字来查询

find /test01 -name ‘*.txt’

-size

大小查找

find /test01 -size +0

-type

类型

find /test01 -type d(文件夹)f(文件)b(块)

du统计目录的大小
格式:du [-acsh] dir_目录

条件

说明

例子

-a

全部文件和目录大小都列出来

du -a /test01

-c

最后总加

du -c /test01

-h

大小显示单位

du -h /test01

wc:文本统计
-l:查看多少行
-w:查看有多少单词
-c:字节

shell 脚本

##网络管理

关键字

意思

用法

说明

route

查看网络

route -n

查看路由信息

netstat

端口

netstat -alunlp

查看端口信息

netstat -alunlp | grep 22

查看22号端口信息

标签

解释

top:实时查看进程信息

PID

进程id

USER

进程所有者

PR

进程优先级

VIRT

进程使用的虚拟内存总量

RES

进程使用的、未被换出的物理内存大小

SHR

共享内存大小

%CPU

上次更新到现在的CPU时间占用百分比

%MEM

进程使用的物理内存百分比

TIME+

进程使用的CPU时间总计,单位1/100秒

COMMAND

进程名称(命令名/命令行)

.

.

free -m

查看内存信息

ps

查看进程(列出)

-A:查看所有; -l:查看启动的进程

kill -p pid

只打印相关进程的进程号,而不发送任何信号

kill -9 pid

强制杀死指定的进程

jps

专门用于查看java进程

Linux常用压缩

只能压缩文件,压缩后,原文件就不见了

压缩

解压

gzip 文件名 (.gz格式)

gunzip 压缩包名字

bzip2 文件名字 (.bz2格式)

bunzip2 压缩包名字

funzip 压缩文件名:可以查看其内容

打包 tar

.

.

tar -cvf 打包的名字.tar 文件

打包

tar -xvf 要解包 -C 路径

解包

例:先打包,再压缩

再解压,后解包

tar -zcvf 新建包名.tar.gz 文件

打包压缩

tar -zxvf 要解压解包名 -C 路径

解压解包

操作

说明

操作

说明

-c

打包

-x

解包

-v

显示

-t

查看

-z

gzip

-j

bzip2

-f

使用档名

-C

指定文件的路径

打开即插即用文件,打开光盘,查看内容是否为空,Packages即包含RPM包

rpm操作

说明

rpm -qa | grep ‘zlib’

查看已经安装的,带zlib

rpm -ivh 压缩包

进行安装

rpm -Uvh 文件(包)名

更新

rpm -e 安装后的名字

删除安装

rpm -e --nodeps name

忽略依赖关系

rpm -qf /bin/ls

查看ls属于哪个软件包

rpm -ql zlib-1.2.3-29.el6.x86_64

rpm -qR 软件包名

查询软件包的依赖性

操作

代码

查看所有安装过的

yum list [installed]

安装上载软件(rz上传)

yum install [-y] lrzsz

卸载

yum remove [-y] package_name

运算符和表达式

变量定义:key=value,等号两边不能有空格,系统变量要大写,值中有空格用"",命令赋给变量用``
echo的使用:回显
-n:不要在最后自动换行
-e:特别处理特殊字符(\n:换行; \t:插入tab键)

环境变量

全局变量在:/etc/profile
用户自己变量:.bash_profile

操作

说明

export -p

显示变量

export TEMA=12

创建环境变量(大写)

export -n TEMA

删除变量(不是真正意义的删除

变量设置

位置变量

脚本中:$1-$9,表示第一个到第九个参数
编写脚本规范:必须声明头部 #!/bin/bash
脚本的运行:必须有可执行的权限,文件添加可执行文件

预定义变量:

.

$0

脚本的名称

$!

进程的PID号

$?

程序执行的状态,0成功,非0不成功

$*

所有参数,整体

$$

当前进程的id号

$#

参数的总个数

$@

所有参数,分割

自定义变量:

定义

a=1 b=abcd c=“wo hen shuai”

使用

echo “{b}----${c}”

read:从标准输入中读取一行,并把输入行的每个字段的值指定给shell变量

read的用法

-n

后跟一个数字,定义输入文本的长度,很实用。

-r

允许输入使用转义字符

-p

打印提示内容

通配符

.

*

匹配任意长度的任意字符

?

匹配任意单个字符

使用范围

ls find cp

列出以.gz结尾文件的详细信息

ls -l *.gz

列出以d开头、后面跟1个字符

ls -l ‘d?’

表达式

意思

说明

[]

某个范围的单个字符

0-9 a-z A-Z

.

单个字符

*

匹配多个–匹配多个字符需要用.*

^

以什么开头

在中括号中表示非

$

以什么结尾

\

通常用于打开或关闭后续字符的特殊含义

过滤操作

说明

grep ‘r…t’ passwd

过滤出r…t数据

grep ‘^root’ passwd

过滤出以root开头的数据

grep ‘[0-9]:[0-9]’ passwd

过滤出0-9:0-9复合的数据


sed:是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换、删除、新增、选取等特定工作

sed操作

说明

sed ‘1d’ passwd

删除第一行

sed -i ‘1d’ passwd

在原数据上直接删除第一行数据

sed -n ‘1,2p’ passwd

查看1.2行

sed -i ‘1d’ passwd

直接修改原文件(删除)

sed -i ‘1a\hello word’ passwd

第一行添加数据

sed -e ‘4a\newLine’ passwd

不修改原文件,在第4行后添加新一行数据

sed ‘1c Hi’ passwd

第一行替换成Hi

操作符

说明

-e

以选项中指定的script来处理输入的文本文件。

-i

直接修改读取的档案内容,而不是由萤幕输出。

-n

使用安静(silent)模式,在指定了值的时候显示指定的值

command

a

新增,后面可以接字串

c

取代,可以接字串,这些字串可以取代 n1,n2 之间的行!

d

删除,因为是删除啊,所以 d 后面通常不接任何东西

p

查看


awk:
awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑awk在其对数据分析并生成报告时,显得尤为强大。

wak使用

说明

cat /etc/passwd | awk -F ‘:’ ‘{print$1"\t" $7}’

打印第一列和第七列

awk -F ‘:’ ‘{ print $3 }’ passwd

打印第三列

通用表达式


&&

A执行成功,B才执行


||

A成功,B不执行

;

无逻辑关系

内置判断测试

所在位置

等于

不等于

大于

小于

大于等于

小于等于

字符串

=

!=

\>

<

数字:在[]中

-eq

-ne

-gt

-lt

-ge

-le

在(())中

==

!=

>

<

>=

<=

-z:判断变量是否为空,空返回真 非空返回假 可以判断

str=''
判断的是 ""

-n:判断变量是否不为空,不为空返回真

[ -n "\$str3" ];echo \$? 
		[ -n "\$str" ];echo \$? 	--1

|文件|-e|-f|-d|-r|-w|-x|

文件

.

-f

判断是否是一个文件

-d

判断是否是一个目录

-e

判断是否是存在

-w

判断是否是可写

-r

判断是否是可读

-x

可执行

运算(a=1,b=2)

.

$[a+b]

$[b]

$((a+b))

$(($a+$b))

expr

$a \* $b

时间命令:date

.

date +%Y%m%d%H%M

date -d ‘1 days ago’ '+%Y%m%d%H%M‘

date -d ‘-1 day’ ‘+%Y%m%d%H%M’

修改

date -s “2016-10-22 18:00:00”

date -s ‘如期’–Sat Oct 22 18:00:00 CST 2016

date -d '2 days ago '+"%Y-%m-%d" || date -d ‘-2day’+"%Y-%m-%d"

[ -z num1 ];echo $? :判断是否为空
expr $num1 * $num2

((num1 > num2));echo $?

shell脚本

###循环结构
for循环
1.

for 变量 in 集合
do

done


for((表达式1;表达式2;表达式3))
do

doine

例:

#!/bin/bash
for i in {1..10}
do
    echo -n "$i "
done
echo
name=`ls /`
for i2 in $name
do
    echo -n "$i2"
done
echo
for i3 in {a,b,c,d,e,f}
do
    echo "$i3 "
done
echo

九九乘法表:

#!/bin/bash
for ((i=1;i<=9;i++))
do
        for ((j=1;j<=i;j++))
        do
                a=$(( $i * $j ))
                if [ $j == 1 ];
                then
                        echo -n "$j"x"$i"="$a "
                elif [ $a -le 9 ];then
                        echo -n "$j"x"$i"="$a  "
                elif [ $a -ge 10 ];then
                        echo -n "$j"x"$i"="$a "
                fi
        done
        echo
done

while 循环
read -p “输入提示符” 变量 —变量输入
语法:

定义变量a,b
while [ a > b ]
do
    循环体
    变量赋值
done

读取文本:

while read -r line
do
    语句
done < file_path

例:

#!/bin/bash
read -p "请输入一个整数:" num
i=1
echo "我来打印 1 - $num "
while [ $i -le $num ]
do
        echo -n "$i "
        i=$(($i+1))
done
echo
#!/bin/bash
while read -r line
do
    echo $line | awk -F ':' '{print $1}'
done < /etc/passwd

选择结构

单分支

if [ 表达式 ]
then
    语句
fi

双分支

if [ 条件 ]
then
    语句1
else
    语句2
fi

多分支

if [ 条件 ]
then
    语句1
elif [条件2]
then
    语句2
elif [条件3]
then
     语句3
fi

例:

#!/bin/bash
echo "选择练习"
read -p "你是选择外出呢还是在家?(1外出;2在家):" a
if [ $a -eq 1 ]
then
        read -p "今天天气真不错,如果你要出门那你要去哪里呢?(1逛公园;2购物):" b
        if [ $b -eq 1 ]
        then
                echo "公园里比较好玩,当然去公园了"
        elif [ $b -eq 2 ]
        then
                echo "当然是陪女票去购物了"
        else
                echo "必须在1和2中选择,请重新开始游戏!!!"
        fi
elif [ $a -eq 2 ]
then
        read -p "今天有霾,如果待在家里你会怎么选择呢(1看电影;2打游戏)" c
        if [ $c -eq 1 ]
        then
                echo "我喜欢看电影"
        elif [ $c -eq 2 ]
        then
                echo "当然是放弃女票打游戏了"
        else
                echo "必须在1和2中选择,请重新开始游戏!!!"
        fi
else
        echo "必须在1和2中选择,请重新开始游戏!!!"
fi

case的用法:

case 变量 in
value1)
    exec command1
;;
value2)
    exec command2
;;
*)
    exec command3
esac

例:

#!/bin/bash
read -p "请输入一周之内的整数:" num
case $num in
1)
        echo "今天是礼拜一"
        ;;
2)
        echo "今天是礼拜二"
        ;;
3)
        echo "今天是礼拜三"
        ;;
4)
        echo "今天是礼拜四"
        ;;
5)
        echo "礼拜五"
        ;;
6)
        echo "休息"
        ;;
7)
        echo "还是休息"
        ;;
*)
        echo "请输入1-7的整数"
        ;;
esac

多条件判断

if [ ] && [ ]

#!/bin/bash
read -p "请输入一个年份:" year
if [ $(( $year % 4 )) -eq 0 ] && [ $(( $year % 100 )) -ne 0 ] || [ $(( $year % 400 )) -eq 0 ]
        then
        echo "你输入的是瑞年"
else
        echo "你输入的是平年"
fi

a | b)

#!/bin/bash
read -p "请输入性别:" sex
case $sex in
1 | 0 )
        echo "性别正确"
        ;;
*)
        echo "性别不正确"
        ;;
esac

service crond status:查看定时任务状态

:查看定时器
crontab -e: 编辑定时器
/:清除定时器
crontab -u 用户名 -f 文件:将文件作为是用户的定时任务

*/2	*	*	*	*	echo "hello" >> /test01/test03/a.txt

 30 12 * 1-4 3 命令:1-4月,每周三的12点30分执行一次命令

at 18:00
cat /etc/passwd | awk -F ‘:’ ‘{ print $1 }’
ctrl+D