linux基础命令


另开终端的快捷方式
ctrl+shift+n    另开一个窗口
ctrl+shift+t     不会另开窗口
[root@localhost ~]# 
root   当前的登录的用户     window登录用户
localhost   当前的主机名
~    当前登录用户的家目录
       当前的目录
#    当前是以管理员用户登录    $以普通用户登录
切换用户  
安装系统   root   创建一个普通用户
su  +  用户名  
[root@localhost ~]# su zsy
[zsy@localhost root]$ 
root最大的权限  
[zsy@localhost root]$ su root
密码:
[root@localhost ~]# su zsy
[zsy@localhost root]$ exit   退出到上一个用户
exit
查看主机命令
hostname
临时更改主机名   hostname   主机名   重启了主机名字会变成localhost
永久更改     hostnamectl   set-hostname   主机名
[root@localhost ~]# hostname
localhost.localdomain
临时
[root@localhost ~]# hostname aa
[root@localhost ~]# bash
[root@aa ~]#
永久修改
[root@aa ~]# hostnamectl set-hostname bb
[root@aa ~]# bash
[root@bb ~]# 
切换目录
[root@bb ~]# cd /
[root@bb /]# 
快照     安装好主机要拍摄一个快照
            开机  会占用空间
            关机  --  占用空间小
            挂起  --   占用空间小(推荐)
重启:
reboot   立刻重启
shutdown   -r   now    立刻重启
shutdown   -r    10    10分钟后重启
shutdown   -r     20:35     在8点35重启
shutdown   -c  取消重启的操作
关机:
halt    立刻关机
init   0    立刻关机
poweroff    立刻关机
shutdown    -h    now
shutdown    -h    20:35 
shutdown    -c  取消重启的操作

shell   命令解析器
命令--用户
二进制 ---电脑
shell解析器   命令---二进制---内核    /bin/bash
Linux系统中运行的一种特殊程序
在用户和内核之间充当“翻译官”
用户登录Linux系统时,自动加载一个Shell程序
Bash是Linux系统中默认使用的Shell程序
命令分为内部命令和外部命令
内部命令---shell--自带
外部命令---后期安装的---13000
有一些命令即属于外部命令也属于内部命令
查看命令的种类
type  +  命令字   
cd     ls    mkdir
[root@bb ~]# type cd
cd 是 shell 内嵌   #内部命令
[root@bb ~]# type ls   #其余都是外部命令
ls 是 `ls --color=auto' 的别名
[root@bb ~]# type mkdir
mkdir 是 /usr/bin/mkdir

linux命令的格式
命令字   [选项]     [参数]
选项   短格式     一个字母  
          长格式     单词
参数   操作的对象
Tab 键:自动补齐
[root@bb ~]# hostname
hostname     hostnamectl  
反斜杠“\”:强制换行
快捷键 Ctrl+u:清空至行首
快捷键 Ctrl+k:清空至行尾
快捷键 Ctrl+l:清屏
快捷键 Ctrl+c:取消本次命令编辑
[root@bb ~]# bash: 快捷键: 未找到命令...^C
快捷键 Ctrl+shift+c   复制    (框选)复制
快捷键 Ctrl+shift+v   粘贴    (鼠标的滚轮)粘贴
[root@bb ~]# history   显示历史命令

获取命令的帮助信息
help命令    
内部命令
help   命令字
[root@bb ~]# help cd
外部命令
命令字   --help
[root@bb ~]# mkdir --help
打印到终端上

man手册查看   中文    word文档    进入到交互式界面
[root@bb ~]# man cd
使用“”、“”方向键滚动文本
使用 Page Up 和 Page Down 键翻页 
按 Q 或 q 键退出阅读环境、按“/” 键查找内容

查看当前的工作目录
pwd  (print  working   directory) 单独使用
[root@bb ~]# pwd
/root

cd (change  directory)  切换工作目录
window      我的电脑
        c盘   d盘   文档    视频  音频
linux          /
         bin    home    usr     root    ....
绝对路径      /  从根开始的完整路径   通过这个路径  不论在那个目录下  都可以切换到想要切换的目录
相对路径       不是从/开始    只能切换到该目录以下的目录
mkdir   /home/aa   绝对路径
cd   /home    绝对路径
cd    aa       相对路径
cd    /
cd    /home/aa
cd    选项    参数
cd  =  cd ~   切换到当前登录用户的家目录
root --- /root
[root@bb ~]# cd
[root@bb ~]# pwd
/root
/home  ---普通用户     aa    /home/aa
[root@bb ~]# su zsy
[zsy@bb root]$ cd
[zsy@bb ~]$ pwd
/home/zsy
cd  ~用户名
[root@bb home]# cd ~zsy
[root@bb zsy]# pwd
/home/zsy

cd  + 绝对路径/相对路径  都可以切换目录
cd   /home
[root@bb ~]# cd /home/
[root@bb home]# ls
zsy
[root@bb home]# cd zsy/
cd ..返回到上一级目录
cd ../..  返回到上两级目录
.代表当前目录 
..代表上一级目录
[root@bb zsy]# cd ..
[root@bb home]# cd ..
[root@bb /]# 
[root@bb /]# cd /home/zsy/
[root@bb zsy]# cd ../..
[root@bb /]# 

cd  -  返回上一步操作所在的目录
[root@bb /]# cd /home/
[root@bb home]# cd /bin/
[root@bb bin]# cd -
/home
[root@bb home]# cd -
/bin
[root@bb bin]# cd -
/home

ls   (list)  列出目录下的内容
[root@bb /]# ls   #列出当前目录下
[root@bb /]# ls /home/   #列出指定目录下
zsy 
-l 、   长格式形式显示
[root@bb /]# ls -l
总用量 28
lrwxrwxrwx.   1 root root    7 8月  31 2020 bin -> usr/bin
[root@bb /]# ll
-a 、  以更完整的形式显示
[root@bb /]# ls -a /root/
-A 、  显示隐藏文件
[root@bb /]# ls -A /root/
-d 、  显示目录本身的属性
[root@bb /]# ls -ld
dr-xr-xr-x. 17 root root 224 8月  31 2020 .
-h 、 以更易读的形式显示   -l
[root@bb /]# ls -l -h
[root@bb /]# ls -lh
-R 、 递归查看
[root@bb /]# ls -aR /home
--color   带颜色显示目录内容
[root@bb /]# type ls
ls 是 `ls --color=auto' 的别名
[root@bb /]# ls
根据条件查看内容    通配符  
“?”:匹配文件名中的一个未知字符
“*”:匹配文件名中的任意多个字符
[root@bb /]# ls a*
a  aa  aaa  aaaa
[root@bb /]# ls a??
aaa
touch   创建文件  普通文件  里面没有内容
touch   指定的路径(绝对路径)   创建到指定的位置
[root@bb /]# touch /home/a
[root@bb /]# ls /home/
a  zsy
touch   相对路径 (文件名)  创建在当前目录下   可以有多个参数
[root@bb /]# touch a aa aaa aaaa

别名
alias
ls   -alh      myls
ls -l      ll
ls  --color    ls
alias  别名=“命令”
[root@bb /]# alias myls="ls -alh"
[root@bb /]# myls 
删除别名
unalias
[root@bb /]# unalias myls 
[root@bb /]# myls

创建目录
mkdir   (make  directory)
mkdir  指定的路径(绝对路径)   创建到指定的位置
[root@bb /]# mkdir /home/qq
[root@bb /]# ls /home/
a  qq  zsy
mkdir   相对路径 (目录名)  创建在当前目录下   可以有多个参数
[root@bb /]# mkdir qq
-p 创建多层级目录
[root@bb /]# mkdir rr/tt/yy -p
[root@bb /]# ls -R rr
[root@bb /]# mkdir {1..10}
du  disk  uage
du   选项   参数
-a    统计磁盘空间占用时包括所有的文件,而不仅仅只统计目录
-h    以更人性化的方式(默认以KB计数,但不显示单位)显示出统计结果
-s    只统计所占用空间总的(Summary)大小,而不是统计每个子目录、文件的大小
[root@bb home]# du -a
4    ./zsy/.bash_logout
[root@bb home]# du -ah
4.0K    ./zsy/.bash_logout
[root@bb home]# du -s
20    .
[root@bb home]# du -sh
20K    .
which   查看命令的目录
which +命令字
[root@bb home]# which cd
/usr/bin/cd
[root@bb home]# which ls
alias ls='ls --color'
    /usr/bin/ls
[root@bb home]# which -a ls
alias ls='ls --color'
    /usr/bin/ls
    /bin/ls
cp   copy   复制
-f    覆盖目标同名文件或目录时不进行提醒,直接强制复制
-i    覆盖目标同名文件或目录时提醒用户确认
-p    复制时保持源文件的权限、属主及时间标记等属性不变
-r        复制目录时必须使用此选项,表示递归复制所有文件及子目录
-i
[root@bb home]# type cp
cp 是 `cp -i' 的别名
[root@bb /]# cp aaaa /home
[root@bb /]# ls /home/
a  aaaa  qq  zsy
[root@bb /]# cp aaaa /home
cp:是否覆盖"/home/aaaa"? y
-f
[root@bb /]# cp -f aaaa /home/   #遇到提醒和不提醒同时存在  会提醒
cp:是否覆盖"/home/aaaa"? y
[root@bb /]# unalias cp
[root@bb /]# cp -f aaaa /home/
[root@bb /]# alias cp='cp -i'
-r
[root@bb /]# cp tt/ /home/
cp: 略过目录"tt/"
[root@bb /]# ls /home/
a  aaaa  qq  zsy
[root@bb /]# cp -r tt/ home/
[root@bb /]# ls /home/
a  aaaa  qq  tt  zsy
-p
[root@bb /]# ls -l aaaa
-rw-r--r--. 1 root root 0 9月  15 16:05 aaaa
[root@bb /]# cp aaaa /home/
cp:是否覆盖"/home/aaaa"? y
[root@bb /]# ls -l /home/aaaa 
-rw-r--r--. 1 root root 0 9月  15 17:00 /home/aaaa
[root@bb /]# cp -p aaaa /home/
cp:是否覆盖"/home/aaaa"? y
[root@bb /]# ls -l /home/aaaa 
-rw-r--r--. 1 root root 0 9月  15 16:05 /home/aaaa
mv   move
改名
[root@bb /]# mv aaa bbb    同目录下改名
[root@bb /]# mv bbb /home/
[root@bb /]# ls /home/
a  aaaa  bbb  qq  tt  zsy
[root@bb /]# mkdir uu
[root@bb /]# mv uu /home/
find     rm    软连接  

链接文件    
软链接        windows    快捷方式
                  微信    D盘     ---快捷方式   桌面
1.相当于快捷方式 
2.当源文件删除   链接文件不能正常使用
3.软链接    文件目录
4.分区(C盘   D盘)    软链接能够跨分区使用  
硬链接      
1.相当于复制了一份
2.只能针对于文件  不能针对于目录
3.当源文件删除后   链接文件还可以正常使用
4.不能跨分区使用   
ln  (link)
-s   软链接      制作链接文件必须使用绝对路径
软链接     目录
[root@bb ~]# ln -s /q/w/e/r/ /q/
[root@bb ~]# ls /q
r  w
[root@bb ~]# ls -l /q
总用量 0
lrwxrwxrwx. 1 root root  9 9月  15 17:20 r -> /q/w/e/r/
drwxr-xr-x. 3 root root 15 9月  15 17:19 w
[root@bb ~]# cd /q/r
[root@bb r]# pwd
/q/r
[root@bb r]# pwd -P   #显示链接文件的源文件
/q/w/e/r
硬链接:
[root@bb ~]# touch /q/z
[root@bb ~]# ln /q/z /home/
[root@bb ~]# ls /home/
a  aaaa  bbb  qq  tt  uu  z  zsy
[root@bb ~]# ls -l /home/

rm  删除
-i     删除文件时提醒
[root@bb /]# rm a
rm:是否删除普通空文件 "a"?y
[root@bb /]# type
[root@bb /]# type rm
rm 是 `rm -i' 的别名
-f    删除文件不提醒
[root@bb /]# rm -f aa
rm   -i   -f   优先-f
-r   针对目录
[root@bb /]# rm -r q
rm:是否进入目录"q"? 
[root@bb /]# rm -r q
rm:是否进入目录"q"? y
rm:是否进入目录"q/w"? y
rm:是否进入目录"q/w/e"? y
rm:是否删除目录 "q/w/e/r"?y
rm:是否删除目录 "q/w/e"?y
rm:是否删除目录 "q/w"?yy
rm:是否删除目录 "q"?y
[root@bb /]# rm -rf 10
学习  rm  -rf    实际环境当中  工作当中  不要使用删除    

find查找
find   查找的范围    查找的条件
按名称查找    -name    根据目标文件的名称进行查找,允许使用“*”及“?”通配符
按文件大小查找    -size    根据目标文件的大小进行查找 一般使用“+”、“-”号设置超过或小于指定的大小作为查找条件 常用的容量单位包括 kB(注意 k 是小写)、MB、GB
按文件属主查找    -user    根据文件是否属于目标用户进行查找
按文件类型查找    -type    根据文件的类型进行查找 文件类型包括普通文件(f)、目录(d)、块设备文件(b)、字符设备文件(c)等 块设备是指成块读取数据的设备(如硬盘、内存等),字符设备是指按单个字符读取数据的设备(如键盘、鼠标等)
[root@bb home]# find /home -name "a*"
/home/zsy/.cache/abrt
/home/zsy/.config/abrt
/home/a
/home/aaaa
[root@bb home]# find /home -name "a???"
[root@bb home]# find /boot -size +1024k
[root@bb home]# find /boot -size +1024M
[root@bb home]# find /boot -size +1024G
 [root@bb home]# find /home -type d
同时满足两个条件
逻辑运算符
“-a”表示 而且(and)  同时满足两个条件
find /boot -size  +1024k -a  -name "vmlinuz*"
“-o”表示 或者(or)   满足其中一个就可以
[root@bb home]# find /boot -size  +1024k -o  -name "vmlinuz*"


第二章  对文件的命令
window
我的电脑
c盘。。。
linux
/  最大
/root:系统管理员root的宿主目录
/home:普通用户的宿主目录
/boot:系统内核、启动文件
/dev:设备文件
/etc:配置文件
/bin:所有用户可执行的命令
/sbin:管理员可执行的管理命令
/usr:应用程序
/var:日志文件等
文件
cat  查看文件中的内容   正向查看      将所有的内容打印在终端上
[root@bb ~]# cat anaconda-ks.cfg 
-n  带行号
[root@bb ~]# cat -n anaconda-ks.cfg
tac   查看文件中的内容   反向查看
[root@bb ~]# tac anaconda-ks.cfg

more   分页查看     在终端上只打印显示的内容
[root@bb ~]# more anaconda-ks.cfg 
按Enter键向下逐行滚动
 按空格键向下翻一屏
 按q键退出

less 进入交互式界面查看   不会将内容打印在终端上
[root@bb ~]# less anaconda-ks.cfg
Page Up 向上翻页,Page Down 向下翻页
按“/”键查找内容,“n”下一个内容,“N”上一个内容
按Enter键向下逐行滚动
 按空格键向下翻一屏
 按q键退出

查看文件指定行数的内容
head  前几行
tail   后几行
head   前10行
head   -n    例如  head   -3
[root@bb ~]# head  anaconda-ks.cfg 
[root@bb ~]# head -3 anaconda-ks.cfg  
[root@bb ~]# tail anaconda-ks.cfg 
[root@bb ~]# tail -3 anaconda-ks.cfg 
tail -f  文件名
监控文件中是否有新的内容的生成--后期

wc  统计文件中的信息
-l:统计行数
-w:统计单词个数 
-c:统计字节数
[root@bb ~]# wc -l anaconda-ks.cfg 
67 anaconda-ks.cfg
[root@bb ~]# wc -w anaconda-ks.cfg 
152 anaconda-ks.cfg
[root@bb ~]# wc -c anaconda-ks.cfg 
1762 anaconda-ks.cfg
[root@bb ~]# wc anaconda-ks.cfg 
  67  152 1762 anaconda-ks.cfg

grep命令
用途:在文件中查找并显示包含指定字符串的行
grep  选项   查找条件   指定的文件
常用命令选项
-i:查找时忽略大小写
-v:反转查找,输出与查找条件不相符的行 
查找条件设置
要查找的字符串以双引号括起来
通配符
“^……”表示以……开头,
“……$”表示以……结尾
“^$”表示空行
[root@bb ~]# grep -i "^a" anaconda-ks.cfg 
[root@bb ~]# grep -v "^a" anaconda-ks.cfg
[root@bb ~]# grep -v "^$" anaconda-ks.cfg 

echo命令    打印输出
[root@bb ~]# 111111
bash: 111111: 未找到命令...
[root@bb ~]# echo 11111
11111

输入重定向    
<    输入重定向是将命令中接收输入的途径由默认的键盘更改(重定向)为指定的文件 
输出重定向    
>    将命令的执行结果重定向输出到指定的文件中,命令进行输出重定向后执行结果将不显示在屏幕上 
>>    将命令执行的结果重定向并追加到指定文件的末尾保存 
错误重定向    
2>    清空指定文件的内容,并保存标准错误输出的内容到指定文件中
2>>    向指定文件中追加命令的错误输出,而不覆盖文件中的原有内容 
输出与错误组合重定向    
&>    将标准输出与错误输出的内容全部重定向到指定文件

输入重定向    <   文件----命令
                        文件-----系统
[root@bb ~]# ls < /root
输出重定向    >    覆盖   正确内容
[root@bb ~]# echo 111111 > xx
[root@bb ~]# cat xx
111111
[root@bb ~]# echo 222222 > xx
[root@bb ~]# cat xx
222222
追加
[root@bb ~]# echo hahaha >> xx
[root@bb ~]# cat xx
错误输出重定向      2>
[root@bb ~]# cat mm /root 2> xx
11111
2>>
[root@bb ~]# cat /bin 2>> xx
[root@bb ~]# cat xx
cat: /home/: 是一个目录
cat: /bin: 是一个目录
混合重定向     &>
[root@bb ~]# cat mm /root &> xx
[root@bb ~]# cat xx
11111
cat: /root: 是一个目录
[root@bb ~]# cat mm /root &>> xx
[root@bb ~]# cat xx
11111
cat: /root: 是一个目录
11111
cat: /root: 是一个目录

管道符
将前一个命令的结果作为后一个命令的输入
[root@bb ~]# ls /home | cat -n
[root@bb ~]# ls /home | grep a
[root@bb ~]# vim kk
[root@bb ~]# cat kk
a
b
c
d
e
f
g
h
i
j
查看文件当中5-8行的内容
[root@bb ~]# head -8 kk | tail -4

压缩   直接加文件名
bzip2    gzip     .bz2     .gz
压缩只能针对于文件    
[root@bb ~]# cd /root/
压缩:
[root@bb ~]# gzip anaconda-ks.cfg
[root@bb ~]# ls   源文件变成压缩文件
anaconda-ks.cfg.gz
[root@bb ~]# bzip2 initial-setup-ks.cfg 
[root@bb ~]# ls
initial-setup-ks.cfg.bz2
解压缩   后面加压缩文件名
-d   
[root@bb ~]# gzip -d anaconda-ks.cfg.gz 
[root@bb ~]# ls
anaconda-ks.cfg
[root@bb ~]# bzip2 -d initial-setup-ks.cfg.bz2 
[root@bb ~]# ls
initial-setup-ks.cfg
选项   压缩登录1-9    压缩的文件越小  cpu的消耗会更高
默认 -6    
[root@bb ~]# gzip -9 anaconda-ks.cfg 
[root@bb ~]# bzip2 -9 initial-setup-ks.cfg 
[root@bb ~]# ls
anaconda-ks.cfg.gz        mm  yy    视频  下载
initial-setup-ks.cfg.bz2
解压缩
bunzip2  ---解压   bzip2压缩的文件==bzip2  -d
gunzip   ---解压  gzip压缩的文件== gzip   -d
[root@bb ~]# gunzip anaconda-ks.cfg.gz 
[root@bb ~]# bunzip2 initial-setup-ks.cfg.bz2 
[root@bb ~]# ls
anaconda-ks.cfg       mm  yy    视频  下载
initial-setup-ks.cfg
tar命令   制作归档文件
压缩---文件
压缩--目录    目录---归档文件    归档文件---压缩     目录--压缩
tar  -选项f    .tar(归档文件名)     归档目录
-c  创建
-f   必须带的选项
[root@bb /]# tar -cf home.tar /home    #制作归档文件
-v  显示详情
-p  保留目录的属性
[root@bb /]# tar -cpvf mnt.tar /mnt/
解归档文件
tar  -选项f    .tar(归档文件名)   -C   指定解档目录
-C   指定解档目录
-x   解归档文件
[root@bb /]# tar -xf mnt.tar -C /home
[root@bb home]# cd /
[root@bb /]# tar -xf home.tar -C /mnt
-t   显示归档包中的内容
[root@bb /]# tar -tf home.tar 
home/
home/zsy/
root@bb /]# bzip2 home.tar 
[root@bb /]# gzip mnt.tar 
[root@bb /]# ls
mnt.tar.gz  home.tar.bz2   
[root@bb /]# rm -rf home.tar.bz2 
[root@bb /]# rm -rf mnt.tar.gz 
 -z   调用gzip压缩命令
相当于直接把目录压缩   
tar    -czf    归档压缩名    目录
[root@bb /]# tar -czf home.tar.gz /home/
-j   调用bzip的压缩命令
[root@bb /]# tar -cjf mnt.tar.bz2 /mnt/
解归档压缩包
[root@bb /]# tar -xzf home.tar.gz  -C /qq
[root@bb /]# ls /qq
home

vim的基础操作
参考ppt
vim文本编辑器     word
给文件写入内容     创建文件
vim----vi
最小化安装    桌面安装    vi (不带颜色)
桌面安装  vim(带颜色)  最小化安装没有vim    后期自己安装
[root@bb /]# vim aaaa 
[root@bb /]# vim kk
[root@bb /]# cd /
[root@bb /]# vim kk
命令行模式(执行快捷键操作)     插入模式(编写文件中的内容)
末行模式(:进入到末行模式)
命令行---插入
命令行---末行 
esc  命令行
命令行模式     切换到插入模式 
a    光标放在当前字符的后一个字符  也就是在当前光标后插入数据
o    光标的下一行插入新的数据
i     在当前光标下插入数据
命令行:  复制  粘贴  删除  保存   撤销
末行:替换  查看   保存退出   复制或打开其他文件内容   

用户
linux:
管理员用户   root    拥有所有的权限
程序用户      不能登录的用户     只能运行程序
普通用户      自己的创建的用户    权限有限
用户   用户名---用户
          用户(UID)---系统
root    0    uid  0
1-999   程序用户
1000以后是 普通用户
组:基本组     用户必须依赖的组
       附加组     用户有了依赖后的组之后   后期在添加的组
用户依赖于组存在  
组  GID  ---系统

存放用户信息的文件
[root@bb /]# vim /etc/passwd
zsy:x:1000:1000:zsy:/home/zsy:/bin/bash
名字:密码占位符:uid:gid(基本组):用户说明:用户的家目录:登录的shell环境
登录的shell环境:/bin/bash  用户可以登录
                           /sbin/nologin     用户是不能登录的
存放组信息
[root@bb /]# vim /etc/group
zsy:x:1000:zsy  
组名:密码占位符:gid:zsy这个组的组成员(附加组)
创建虚拟机创建的普通用户比较特殊   
zsy的用户把zsy这个组 即作为基本组也作为附加组
aa:x:1002:
bb :x:1003:aa ,cc   
bb组作为附加组的组成员
aa用户  基本组是aa
aa用户的附加组是bb
cc用户的附加组是bb
bb用户基本组是bb
存放用户密码的文件
[root@bb /]# vim /etc/shadow
aa:!!:18886:0:99999:7:::
字段1:用户帐号的名称
 字段2:加密的密码字串信息
 字段3:上次修改密码的时间(距1970年01月01日的天数为14495)
 字段4:密码的最短有效天数,默认值为0
 字段5:密码的最长有效天数,默认值为99999
 字段6:提前多少天警告用户口令将过期,默认值为7
 字段7:在密码过期之后多少天禁用此用户
 字段8:帐号失效时间,默认值为空(表示在距1970年01月01日后几天过期)
 字段9:保留字段(未使用)
存放组密码
[root@bb /]# vim /etc/gshadow
aa:!::bb
创建用户的命令adduser
[root@bb /]# useradd aa
[root@bb /]# useradd bb
[root@bb /]# tail -2 /etc/passwd
aa:x:1001:1001::/home/aa:/bin/bash
bb:x:1002:1002::/home/bb:/bin/bash
[root@bb /]# id aa
uid=1001(aa) gid=1001(aa) 组=1001(aa),1002(bb)
[root@bb /]# id cc
id: cc: no such user
-u:指定 UID 标记号,直接指定一个特定的UID给这个账号
[root@bb /]# useradd -u 1010 cc
[root@bb /]# tail -1 /etc/passwd
cc:x:1010:1010::/home/cc:/bin/bash
-d:指定宿主目录,缺省为 /home/用户名,必须使用绝对路径
[root@bb /]# useradd -d /dd dd
[root@bb /]# tail -1 /etc/passwd
dd:x:1011:1011::/dd:/bin/bash
-e:指定帐号失效时间,格式为YYYY-MM-DD
[root@bb /]# useradd -e 2021-09-17 ee
[root@bb /]# tail -1 /etc/shadow
ee:!!:18886:0:99999:7::18887:
-g:指定用户的基本组名 GID
[root@bb /]# groupadd qqq   #创建组  空组
[root@bb /]# tail -1 /etc/group
qqq:x:1013:
[root@bb /]# useradd -g qqq  ff  
[root@bb /]# tail -1 /etc/passwd
ff:x:1013:1013::/home/ff:/bin/bash
-G:指定用户的附加组名
[root@bb /]# groupadd www
[root@bb /]# tail -1 /etc/group
www:x:1014:
[root@bb /]# useradd gg -G www
[root@bb /]# tail -2 /etc/group
www:x:1014:gg
gg:x:1015:
-M:不为用户建立并初始化宿主目录,强制!不要创建用户主文件夹
[root@bb /]# useradd hh -M
[root@bb /]# ls /home
a   aaaa  bbb  ee  gg   mnt  tt  z
aa  bb    cc   ff  kkk  qq   uu  zsy
[root@bb /]# su hh
bash-4.2$ exit
exit
[root@bb /]# tail -1 /etc/passwd
hh:x:1015:1016::/home/hh:/bin/bash
-s:指定用户的登录Shell,若没有,则默认是/bin/bash
[root@bb /]# useradd ll -s /sbin/nologin 
[root@bb /]# tail -1 /etc/passwd
ll:x:1016:1017::/home/ll:/sbin/nologin
[root@bb /]# su ll
This account is currently not available.

手动创建用户
/etc/skel
~/.bash_profile:用户每次登录时执行
~/.bashrc:每次进入新的Bash环境时执行
~/.bash_logout:用户每次退出登录时执行
小实验:
useradd   系统做的工作
不使用useradd命令
通过修改用户文件  来创建用户
[root@bb aa]# vim /etc/passwd   #添加用户信息文件
zhangsan:x:1020:1020::/home/zhangsan/:/bin/bash
[root@bb aa]# vim /etc/group   #添加组信息文件
zhangsan:x:1020:
[root@bb aa]# vim /etc/shadow    #添加用户密码文件
zhangsan:!!:18886:0:99999:7:::
[root@bb aa]# cd /home/ 
[root@bb home]# mkdir zhangsan   #创建家目录
[root@bb home]# cp /etc/skel/.* zhangsan/    #复制登录时需要的文件
cp: 略过目录"/etc/skel/."
cp: 略过目录"/etc/skel/.."
cp: 略过目录"/etc/skel/.mozilla"
[root@bb home]# ls -a zhangsan/
.  ..  .bash_logout  .bash_profile  .bashrc
[root@bb home]# su zhangsan
[zhangsan@bb home]$ exit
exit
创建组:
-g     
[root@bb home]# tail -1 /etc/group
ooo:x:1045:
passwd   设置密码  
passwd  更改当前登录用户的
[root@bb home]# passwd
更改用户 root 的密码 。
[root@bb home]# passwd aa
[root@bb home]# cat /etc/shadow | grep aa
aa:$6$TYDLL6Dn$V4jSNqWEQTP1QX.//UIVvzA73lC8nbn15Q03Pv/T9zdOOHNb6yed0lf8Fu2Xb6L3gzXMsdZs02QwHBxcq5wRE1:18887:0:99999:7:::
-d  删除密码
[root@bb home]# passwd bb
[root@bb home]# passwd -d bb
清除用户的密码 bb。
passwd: 操作成功
密码的锁定
[root@bb home]# tail -1 /etc/shadow
zhangsan:!!:18886:0:99999:7:::
!或!!  用户处于锁定的状态
创建的新用户  如果没有设定密码  那么这个用户就是锁定的  
除了root   能让其切换用户
其他普通用户都不能让其切换用户
-S  查看密码是否被锁定
[root@bb home]# passwd -S zhangsan
zhangsan LK 2021-09-16 0 99999 7 -1 (密码已被锁定。)
-l   锁定密码
[root@bb home]# passwd -l aa
锁定用户 aa 的密码 。
passwd: 操作成功
[root@bb home]# cat /etc/shadow | grep aa
aa:!!$6$TYDLL6Dn$V4jSNqWEQTP1QX.//UIVvzA73lC8nbn15Q03Pv/T9zdOOHNb6yed0lf8Fu2Xb6L3gzXMsdZs02QwHBxcq5wRE1:18887:0:99999:7:::
[root@bb home]# passwd -u aa
解锁用户 aa 的密码。
passwd: 操作成功
[root@bb home]# passwd -S aa
[root@bb home]# passwd -u -f zhangsan  #强制解锁   
解锁用户 zhangsan 的密码。
passwd: 操作成功
usermod命令    更改用户的信息
-l 更改用户的用户名
[root@bb home]# usermod zhangsan -l lisi
[root@bb home]# cat /etc/passwd | grep zhangsan
lisi:x:1020:1020::/home/zhangsan/:/bin/bash
 -u、  更改用户uid
[root@bb home]# usermod lisi -u 1050
[root@bb home]# cat /etc/passwd | grep lisi
lisi:x:1050:1020::/home/zhangsan/:/bin/bash
-d、更改用户的家目录
[root@bb home]# usermod lisi -d /lisi
[root@bb home]# cat /etc/passwd | grep lisi
lisi:x:1050:1020::/lisi:/bin/bash
-e、更改用户的失效时间
[root@bb home]# usermod lisi -e 2021-09-18
[root@bb home]# cat /etc/shadow | grep lisi
lisi::18886:0:99999:7::18888:
-g、 更改用户的基本组
[root@bb home]# usermod lisi -g ooo
[root@bb home]# cat /etc/passwd | grep lisi
lisi:x:1050:1045::/lisi:/bin/bash
[root@bb home]# cat /etc/group | grep ooo
ooo:x:1045:
-G、 更改用户的附加组
[root@bb home]# usermod lisi -G aa
[root@bb home]# cat /etc/group | grep aa
aa:x:1001:bb,lisi
-s   更改用户的shell登录环境
[root@bb home]# usermod lisi -s /sbin/nologin
[root@bb home]# cat /etc/passwd | grep lisi
lisi:x:1050:1045::/lisi:/sbin/nologin
删除用户
userdel
-r   删除用户的同时删除家目录
[root@bb home]# userdel bb
[root@bb home]# ls /home
[root@bb home]# userdel -r aa
[root@bb home]# ls /home
aa用户      aa基本组
userdel     aa      同时把用户和组都删除
aa基本组     aa    bb
userdel     aa
aa组没有删除  因为aa中还有其中用户
删除组     删除组  不能是基本组
groupadd    iii
groupdel    iii 
[root@bb home]# groupadd iii
[root@bb home]# groupdel iii
[root@bb home]# useradd yyy
[root@bb home]# groupdel yyy
groupdel:不能移除用户“yyy”的主组
[root@bb home]# usermod yyy -g ooo
[root@bb home]# groupdel yyy
gpasswd   可以用于给组设置密码  但是一般不会给组设置密码   一般用于给组添加用户
gpasswd添加的用户   用户会把该组作为附加组
-a:向组内添加一个用户
[root@bb home]# tail -1 /etc/group
ooo:x:1045:
[root@bb home]# gpasswd ooo -a cc
正在将用户“cc”加入到“ooo”组中
[root@bb home]# tail -1 /etc/group
ooo:x:1045:cc
[root@bb home]# gpasswd ooo -a dd
正在将用户“dd”加入到“ooo”组中
[root@bb home]# tail -1 /etc/group
ooo:x:1045:cc,dd
-d:从组内删除一个用户成员
[root@bb home]# gpasswd ooo -d cc
[root@bb home]# tail -1 /etc/group
ooo:x:1045:dd
正在将用户“cc”从“ooo”组中删除
-M:定义组成员列表,以逗号分隔
[root@bb home]# tail -1 /etc/group
ooo:x:1045:dd,cc
[root@bb home]# gpasswd ooo -M cc
[root@bb home]# tail -1 /etc/group
ooo:x:1045:cc
#查看用户所属组的信息
[root@bb home]# groups ee
ee : ee ooo
第一个是基本组     附加组
#查看当前登录用户的信息
[root@bb home]# w
 16:02:21 up 13:06,  2 users,  load average: 0.34, 0.27, 0.14
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     :0       :0               三14   ?xdm?  16:44   0.39s /usr/libexec/gnome-session-binary --session gnom
root     pts/0    :0               三14    5.00s  2.11s  0.03s w
[root@bb home]# who
root     :0           2021-09-15 14:06 (:0)
root     pts/0        2021-09-15 14:07 (:0)
[root@bb home]# users
root root

用户
文件   目录--管理人员---属主    属组
访问权限
读取 r:允许查看文件内容、显示目录列表
read   读取    文件:cat   less   more。。。查看文件中的内容
                     目录:  ls
写入 w:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录
write  写入    文件:vim   echo   添加内容  删除内容
                     目录: mkdir   touch  rm   mv
可执行 x:允许运行程序、切换目录
x   执行:     文件:普通文件  ---可执行文件  命令--可执行的文件绿色
                    目录:切换目录
归属(所有权)
属主:拥有该文件或目录的用户帐号   主人
属组:拥有该文件或目录的组帐号      小组
文件  目录           aa  基本组为aa
                                 bb这个组控组
主人   小组
aa      bb
文件和目录的权限    ls  -l权限
文件   ls  -l
目录   ls   -ld
[root@bb ~]# ls -ld .
dr-xr-x---. 15 root root 4096 9月  17 13:54 .
d  类型   d目录    l软连接    -文件
r-x    r-x     ---  三个为一组
前三位    该目录的属主(主人)对其的访问权限
rwx     rw-     ---
中间三位   还目录的属组(小组)对其的访问权限
r-x   可读  不可写  可执行
最后三位    其他用户对该目录的访问权限
---   不可读   不可写  不可执行
15     当下子目录的个数
root   主人   属主 
root   小组   属组
4096   空间大小
17 13:54   创建的时间
[root@bb ~]# touch hahaha
更改访问权限
chmod   [ugoa]  [+-=]  [rwx]  文件或目录...
u  主人
g  小组
o  其他用户
a  所有用户
[root@bb ~]# ls -l hahaha
-rw-r--r--. 1 root root 0 9月  17 16:21 hahaha
例子:让其小组的用户对其也有可写的权限
[root@bb ~]# chmod g+w hahaha 
[root@bb ~]# ls -l hahaha
-rw-rw-r--. 1 root root 0 9月  17 16:21 hahaha
让其主人对文件有rwx
[root@bb ~]# chmod u=r hahaha
[root@bb ~]# ls -l hahaha
-r--rw-r--. 1 root root 0 9月  17 16:21 hahaha
[root@bb ~]# chmod u=rwx hahaha  #覆盖
[root@bb ~]# ls -l hahaha
-rwxrw-r--. 1 root root 0 9月  17 16:21 hahaha
所有的用户对其有rw权限
[root@bb ~]# chmod a=rw hahaha 
[root@bb ~]# ls -l hahaha
-rw-rw-rw-. 1 root root 0 9月  17 16:21 hahaha
数字
chmod   nnn  文件名
r  w  x     r  w    x      r   w   x
4  2  1    4   2   1      4   2    1 
    7             7               7
    6              2            4
rw-   -w-  r--
[root@bb ~]# chmod 644 hahaha 
[root@bb ~]# ls -l hahaha
-rw-r--r--. 1 root root 0 9月  17 16:21 hahaha
-R   递归设置
-R:递归修改指定目录下所有子项的权限

chown   更改文件或目录的归属
chown  属主   文件或目录      
[root@bb ~]# useradd haha
[root@bb ~]# chown haha hahaha   #更改主人
[root@bb ~]# ls -l hahaha
-rw-r--r--. 1 haha root 0 9月  17 16:21 hahaha
chown  :属组  文件或目录
[root@bb ~]# chown :haha hahaha   #更改小组
[root@bb ~]# ls -l hahaha
-rw-r--r--. 1 haha haha 0 9月  17 16:21 hahaha
[root@bb ~]# chgrp haha hahaha 
[root@bb ~]# ls -l hahaha
-rw-r--r--. 1 root haha 0 9月  17 16:21 hahaha
chown  属主:属组  文件或目录
[root@bb ~]# chown root:root hahaha    #更改主人和小组
[root@bb ~]# ls -l hahaha
-rw-r--r--. 1 root root 0 9月  17 16:21 hahaha
-R   递归设置
-R:递归修改指定目录下所有子项的权限
chmod     访问权限
chown     更改归属权限
权限微调    acl
chmod/chown    属主     属组    其他用户
aa用户   特殊的用户
haha       rwxr-xr-x      bb:bb
aa     r-x
aa     rwx    
setfacl     用来权限微调
针对于其他用户中的其中一个特殊的用户设置权限
[root@bb ~]# touch haha
[root@bb ~]# ls -l haha
-rw-r--r--. 1 root root 0 9月  20 13:39 haha
[root@bb ~]# useradd aaa
setfacl   -m   u:用户名:权限    文件名/目录名
[root@bb ~]# setfacl -m u:aaa:rw haha   -m:配置
[root@bb ~]# ls -l haha
-rw-rw-r--+ 1 root root 0 9月  20 13:39 haha
[root@bb ~]# getfacl haha    #查看
# file: haha
# owner: root
# group: root
user::rw-
user:aaa:rw-
group::r--
mask::rw-
other::r--
删除指定用户的特殊权限
[root@bb ~]# setfacl -x u:aaa haha
[root@bb ~]# getfacl haha
haha文件
针对于aaa这个组以特殊权限    不可读   可写   不可执行
u  用户
g  小组
g:小组名:权限
[root@bb ~]# setfacl -m g:aaa:w haha
[root@bb ~]# getfacl haha
[root@bb ~]# setfacl -m g:aaa:--- haha  #不可读不可写不可执行

缺省权限     在创建文件/目录缺失的权限
umask   
[root@bb ~]# umask
0022
  -ww
目录   777    755
[root@bb ~]# mkdir oooo
[root@bb ~]# ls -ld oooo
drwxr-xr-x. 2 root root 6 9月  20 13:59 oooo
文件    普通文件    666
          可执行文件    777
rw-rw-rw-
rw-r--r--
[root@bb ~]# touch yyyy
[root@bb ~]# ls -l yyyy
-rw-r--r--. 1 root root 0 9月  20 14:02 yyyy
[root@bb ~]# umask 777
[root@bb ~]# mkdir uuuu
[root@bb ~]# ls -ld uuuu
d---------. 2 root root 6 9月  20 14:02 uuuu
[root@bb ~]# umask
0777
[root@bb ~]# umask 022
666   rw-rw-rw-
022   --- -w- -w-
644   rw-r--r--

666   rw-rw-rw-
033   ----wx-wx
         rw-r--r--

特殊权限
粘滞位权限

只能针对于目录   
针对于公共目录    777
只要加上粘滞位权限    用户只能删除自己创建的文件/目录   无法删除别人创建文件和目录
不要在用户家目录当中操作  例如  /root   /home
粘滞位只能加在其他用户上
必须现有x权限  才能加t权限    如果没有x权限   直接+t会变成T   权限不生效
[root@bb ~]# cd /mnt/
[root@bb mnt]# mkdir share
[root@bb mnt]# chmod 777 share/
[root@bb mnt]# chmod +t share/
[root@bb mnt]# ls -ld share/
drwxrwxrwt. 2 root root 6 9月  20 14:40 share/
验证:
[root@bb mnt]# useradd zhangsan
[zhangsan@bb mnt]$ cd /mnt/share/
[zhangsan@bb share]$ touch zhangsan
[zhangsan@bb share]$ ls
zhangsan
[zhangsan@bb share]$ exit
exit
[root@bb mnt]# useradd wangwu 
[root@bb mnt]# su wangwu 
[wangwu@bb mnt]$ cd /mnt/share/
[wangwu@bb share]$ ls
zhangsan
[wangwu@bb share]$ touch q
[wangwu@bb share]$ ls
q  zhangsan
[wangwu@bb share]$ rm -rf q
[wangwu@bb share]$ rm -rf zhangsan 
rm: 无法删除"zhangsan": 不允许的操作

set位权限   这个权限开发开发用的比较多 
这个权限针对于可执行文件  
文件必须有x权限才能加s权限
权限可以加在属主位  也可以加在属组位
加上set为权限后,x就会变为s,如果没有x权限加s权限,就会出现S
这个不生效
set为权限是借权限的意思    意思表示  当其他用户没有权限时,可以临时借去主人的权限     当其他的小组没有权限时,也可以临时接取属组的权限
这个set位权限比较特殊   只能使用passwd这个命令(也是可执行文件来做案例)  其余的文件均不能作为案例
[root@bb mnt]# which passwd
/usr/bin/passwd
[root@bb mnt]# ls -l /usr/bin/passwd 
-rwsr-xr-x. 1 root root 27832 6月  10 2014 /usr/bin/passwd
[root@bb mnt]# chmod u-s /usr/bin/passwd 
[root@bb mnt]# ls -l /usr/bin/passwd 
-rwxr-xr-x. 1 root root 27832 6月  10 2014 /usr/bin/passwd
[root@bb mnt]# passwd
passwd:所有的身份验证令牌已经成功更新。
[root@bb mnt]# passwd -S wangwu
[root@bb mnt]# passwd wangwu
passwd:所有的身份验证令牌已经成功更新。
[root@bb mnt]# su wangwu
[wangwu@bb mnt]$ passwd
更改用户 wangwu 的密码 。
为 wangwu 更改 STRESS 密码。
(当前)UNIX 密码:
新的 密码:
重新输入新的 密码:
passwd: 鉴定令牌操作错误
[root@bb mnt]# chmod u+s /usr/bin/passwd 
[root@bb mnt]# su wangwu
[wangwu@bb mnt]$ passwd
更改用户 wangwu 的密码 。
为 wangwu 更改 STRESS 密码。
(当前)UNIX 密码:
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
u+s用户
g+s
[root@bb mnt]# ls -l /usr/bin/passwd 
-rwsr-xr-x. 1 root root 27832 6月  10 2014 /usr/bin/passwd
chmod   777   文件或目录名
4位
特殊权限nnn
s   u     g
     4     2 
t    o
      1
7777    rwsrwsrwt
1777    rwxrwxrwt
4777    rwsrwxrwx
2777    rwxrwsrwx
[root@bb mnt]# mkdir haha
[root@bb mnt]# chmod 7777 haha
[root@bb mnt]# ls -ld haha
drwsrwsrwt. 2 root root 6 9月  20 15:47 haha
对于特殊权限而言    u+s
数字

安装程序
安装程序方法:
3种:
windows  安装程序   qq   微信   
linux    安装程序    服务
默认的路径:
普通执行程序文件     /usr/bin 
服务器执行程序文件和管理程序文件     /usr/sbin 
应用程序配置文件     /etc 
日志文件     /var/log 
应用程序文档文件     /usr/share/doc 
应用程序手册页文件     /usr/share/man 
windows    安装包    图形
linux     安装包
             .rpm    二进制文件    ---直接可以安装 ---编译后的代码
             .tar.gz   源码包---编译电脑能识别的----安装
             绿色安装包:java程序  直接解压就可以使用
第一种安装方式
.rpm
系统命令     
rpm   (1) 查看安装的程序
          (2)查看未安装程序包的信息
          (3)安装程序  .rpm安装包
          (4)   卸载程序
bash-4.1.2-15.el6_4.x86_64.rpm
(1) 查看安装的程序
rpm    -q
rpm  -q[子选项]  [软件名]
[root@bb ~]# rpm -qa
a代表所有安装的程序
[root@bb ~]# rpm -qa | wc -l
1422
[root@bb ~]# rpm -q postfix   #查看程序的安装版本
postfix-2.10.1-6.el7.x86_64   #程序的版本号
[root@bb ~]# rpm -q httpd   #可以查询程序是否安装
未安装软件包 httpd 
i   查看程序的信息
[root@bb ~]# rpm -qi postfix
l  列出程序所有的文件和目录
[root@bb ~]# rpm -ql postfix
c  列出程序的配置文件
[root@bb ~]# rpm -qc postfix
-d  列出程序的文档文件
[root@bb ~]# rpm -qd postfix
-f   查找目录属于哪一个程序
[root@bb ~]# rpm -qf /usr/share/man/man8/virtual.8.gz
postfix-2.10.1-6.el7.x86_64
查看未安装的包的信息
[root@bb ~]# mkdir /mnt/mount
[root@bb ~]# ls /mnt/mount/
[root@bb ~]# mount /dev/sr0 /mnt/mount/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@bb ~]# ls /mnt/mount/
CentOS_BuildTag  images    repodata
EFI              isolinux  RPM-GPG-KEY-CentOS-7
EULA             LiveOS    RPM-GPG-KEY-CentOS-Testing-7
GPL              Packages  TRANS.TBL
[root@bb ~]# umount /dev/sr0   #卸载
[root@bb ~]# ls /mnt/mount/
[root@bb ~]# mount /dev/sr0 /mnt/mount/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@bb ~]# cd /mnt/mount/
[root@bb mount]# cd Packages/
[root@bb Packages]# ls | wc -l
3972
(2)查看未安装的软件包信息
软件包名
rpm  -qp[子选项]     [包名]
[root@bb Packages]# pwd
/mnt/mount/Packages
-i 查看信息
[root@bb Packages]# rpm -qpi zziplib-0.13.62-5.el7.x86_64.rpm
-c 查看配置文件
[root@bb Packages]# rpm -qpc httpd-2.4.6-80.el7.centos.x86_64.rpm 
-l   查看软件包的目录
[root@bb Packages]# rpm -qpl zziplib-0.13.62-5.el7.x86_64.rpm
-d   查看软件包的文档文件
[root@bb Packages]# rpm -qpd zziplib-0.13.62-5.el7.x86_64.rpm
(3)安装    不能解决依赖关系
先安装依赖   在安装包 
-i安装     v显示详情     h#显示安装进度
ivh连用
[root@bb ~]# cd /mnt/mount/
[root@bb mount]# cd Packages/
使用rpm安装需要切换到包所在的目录下
rpm   -ivh    包名
[root@bb Packages]# rpm -ivh zziplib-0.13.62-5.el7.x86_64.rpm 
--force   #强制安装 
--nodeps    #忽略依赖安装        可能造成程序不能正常使用
rpm -ivh zziplib-0.13.62-5.el7.x86_64.rpm   --force
rpm -ivh zziplib-0.13.62-5.el7.x86_64.rpm   --nodeps
evh    -e卸载   
rpm   -evh   程序名
[root@bb Packages]# rpm -evh zziplib
升级     1.0-----2.0    rpm  -Uvh    包名(高版本包名)
-U    升级(程序要有低版本的)    如果程序未安装   则安装程序
-F     升级(程序要有低版本的)    如果程序未安装   则放弃安装程序  
rpm  -Uvh    包名(高版本包名)
[root@bb ~]# cd /mnt/mount/
[root@bb mount]# rpm -evh zziplib
[root@bb mount]# cd Packages/
[root@bb Packages]# rpm -Uvh zziplib-0.13.62-5.el7.x86_64.rpm 
[root@bb Packages]# rpm -evh zziplib
[root@bb Packages]# rpm -Fvh zziplib-0.13.62-5.el7.x86_64.rpm 
(4)rpm维护包仓库
镜像   包      Packages     只读
root  删除掉包    
[root@localhost ~]# rpm --rebuilddb
[root@localhost ~]# rpm --initdb
centos系统      windows激活
root@localhost ~]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
练习:
(1)查看未安装zsh包这个程序的信息
(2)安装zsh这个程序
(3)查看zsh程序的所有的目录和文件
(4)卸载zsh这个程序

yum安装程序
yum 程序    软件包的管理工具
可以解决包之间的依赖关系,yum类似于一个抓包的程序,它可以去网络上抓包,也可以在自己本地抓包,并在自己的程序中形成缓存,加速安装
yum如果使用网络抓包   需要连接网络上的仓库  需要写仓库的地址
yum使用本地抓包,需要写连接的挂载点,这个挂载点里面存放着镜像中的包
[root@bb Packages]# rpm -q yum
yum-3.4.3-158.el7.centos.noarch
[root@bb ~]# cd /etc/yum.repos.d/   #配置目录
[root@bb yum.repos.d]# ls
文件必须.repo 结尾
[root@bb yum.repos.d]# vim CentOS-Base.repo  #只是查看
网络yum和本地yum冲突
会先使用网络yum   但是没有联网    网络不能使用    需要把连接网络的文件移走    创建目录   把网络yum文件移动到创建的目录中
[root@bb yum.repos.d]# mkdir data
[root@bb yum.repos.d]# mv C* data/
[root@bb yum.repos.d]# ls
data
编写连接本地仓库的yum
[root@bb yum.repos.d]# vim aa.repo
[aa]    #仓库名字
name=this is local repo   #可以省略    详细说明
baseurl=file:///mnt/mount    #挂载点    包所在的位置
enabled=1    #开启
gpgcheck=0    #不用秘钥验证
[root@bb yum.repos.d]# yum makecache  #制作缓存
[root@bb yum.repos.d]# yum clean all     #清空缓存
[root@bb yum.repos.d]# yum install httpd -y  #安装
[root@bb yum.repos.d]# yum -y remove httpd   #卸载
finger  命令    
yum可以根据命令找程序
[root@bb yum.repos.d]# yum provides finger
[root@bb yum.repos.d]# yum -y install finger
[root@bb yum.repos.d]# finger
练习:
本地yum只能有一个
配置yum    yum的文件名为自己名字缩写.repo
挂载点为 /mnt/自己名字的缩写 
安装samba

包  主文件夹      当前登录用户的家目录
配置好yum   
源码安装      tar.gz
gcc-gcc++     gcc      /   gcc*   
第一步:  源代码---二进制代码 
[root@bb yum.repos.d]# yum -y install gcc*
源码包  ---安装  
1. 解压
2.配置---执行安装程序的目录
3.编译(gcc)
4.安装
httpd
1.解压
[root@bb ~]# tar -zxf httpd-2.2.17.tar\(1\)\(1\).gz 
[root@bb ~]# ls
httpd-2.2.17
2.配置
[root@bb ~]# cd httpd-2.2.17/
[root@bb httpd-2.2.17]# ./configure  --prefix=/usr/local/httpd
3.编译
[root@bb httpd-2.2.17]# make
4.安装
[root@bb httpd-2.2.17]# make  install
&&   执行完第一条  在执行第二条    make  && make install
[root@bb httpd-2.2.17]# cd /usr/local/httpd/
[root@bb httpd]# ls
bin    cgi-bin  error   icons    lib   man     modules
build  conf     htdocs  include  logs  manual

复制粘贴不能使用
开启共享文件夹
windows   文件--- centos(reboot)
共享文件
windows目录    ---centos目录连接
windows上新建文件夹     桌面   aa
centos---虚拟机---设置---选项--共享文件夹--启用---添加--下一步---选择windows上创的文件夹路径--下一步--确定
centos
[root@bb ~]# vmware-hgfsclient   #查看windows共享目录
aa
[root@bb ~]# mkdir /root/bb   #创建centos上的共享目录
[root@bb ~]# vmhgfs-fuse  .host:/aa  /root/bb#把两个绑定在一起
                                             windows    centos
[root@bb ~]# cd /root/bb
[root@bb bb]# ls
httpd-2.2.17.tar(1)(1).gz

磁盘
windows      硬盘  1T     
                    分盘    c盘  +  d盘  +  e盘 +   f盘=1T
linux      分盘       一块硬盘    20-40G
磁盘 :
硬盘的物理结构
盘片:硬盘有多个盘片,每盘片2面
磁头:每面一个磁头
硬盘的数据结构
扇区:盘片被分为多个扇形区域,每个扇区存放512字节的数据
磁道:同一盘片不同半径的同心圆
柱面:不同盘片相同半径构成的圆柱面
硬盘存储容量=磁头数×磁道(柱面)数×每道扇区数×每扇区字节数
磁盘的分类
IDE(并口)   家用电器
SATA(串口)
SCSI(串口)  小型计算机的磁盘接口
接口  
并口    一条路  8个车道   传输数据量比较大   速度很慢
串口    一条路   1个车道   传输的数据量不是很大   速度很快
centos    scsi磁盘
开机---加载硬盘数据
硬盘数据怎么样存储
centos     
第一个扇区     MBR引导扇区       512字节
                                                  3个部分
                                                  1.引导程序 446字节
                                                   2.分区表    64字节
                                                   3.55AA      2字节
启动linux---加电自检---加载引导程序(mbr)---加载分区表(分盘表)---55AA----加载完整的操作系统
其他的扇区       系统的数据
磁盘的表示方式
windows     1块    c   d    e
centos     1块     /dev/sda      2块   /dev/sdb    c      d   
scsi     sd
ide      hd
1块    /dev/sda
/dev/sda1      /dev/sda2    /dev/sda3

一个盘上面可以分多少个区域
一个区域的信息占16个字节         分区表    64字节
磁盘   4个区域    主分区
3个主分区       1扩展分区
                         逻辑分区    n个    逻辑分区的标号5开始
分区:
添加硬盘
[root@bb ~]# fdisk -l
设置--添加--硬盘-下一步---单个文件--下一步--确定
添加完硬盘 重启主机  reboot
实际环境当中   关机  添加硬盘
[root@bb ~]# fdisk  -l  |  grep  sdb
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
[root@bb ~]# fdisk /dev/sdb
m   获取帮助信息
n     添加新的分区
       p  主分区
       e  扩展分区
       l   逻辑分区   ---在分区表不够4个 --就需要输入l      
p    打印当前的的列表
d    删除分区
q    退出不保存分区的更改
w    保存退出
n添加
Select (default p): p
分区号 (1-4,默认 1):1
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+2G
分区 1 已设置为 Linux 类型,大小设为 2 GiB
主分区只能添加4个
命令(输入 m 获取帮助):d
分区号 (1-4,默认 4):4
分区 4 已删除
[root@bb ~]# fdisk -l | grep sdb
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
/dev/sdb1            2048     4196351     2097152   83  Linux
/dev/sdb2         4196352     8390655     2097152   83  Linux
/dev/sdb3         8390656    41943039    16776192    5  Extended
/dev/sdb5         8392704    12587007     2097152   83  Linux
使用分区
window
c盘--目录  
分区---挂载---目录
分区需要格式化
文件系统类型
centos                                  xfs                 ext3        ext4
             文件创建的个数       没有限制        25600     没有限制
                                           支持磁盘配额   不支持     不支持
                                           lvm不能缩容    可以缩容    可以缩容
XFS文件系统
存放文件和目录数据的分区
高性能的日志型文件系统
CentOS 7系统中默认使用的文件系统
SWAP,交换文件系统
为 Linux 系统建立交换分区
Linux支持的其它文件系统类型
FAT16、FAT32、NTFS
EXT4、JFS……
[root@bb ~]# mkfs -t xfs /dev/sdb1
[root@bb ~]# mkfs -t ext4 /dev/sdb2
[root@bb ~]# mkdir /mnt/sdb1
[root@bb ~]# mkdir /mnt/sdb2
[root@bb ~]# mount /dev/sdb1 /mnt/sdb1
[root@bb ~]# mount /dev/sdb2 /mnt/sdb2
[root@bb ~]# cd /mnt/sdb1
进行存储数据  相当于存储在sdb1这个磁盘当中
[root@bb ~]# mkfs -t   ext3 /dev/sdb5
[root@bb ~]# mkfs.ext3 /dev/sdb5
[root@bb ~]# mkfs.xfs -f /dev/sdb5

如果磁盘中有被挂载的分区   有正在被使用的分区   再次对磁盘分区   需要重启加载磁盘
[root@bb ~]# partprobe /dev/sdb   #重新加载/dev/sdb
[root@bb ~]# mount /dev/sdb6 /mnt/sdb
mount: 文件系统类型错误、选项错误、  /dev/sdb6 上有坏超 级块、  没有格式化

mount    临时挂载     reboot      不存在
自动挂载     reboot   挂载继续存放
[root@bb ~]# vim /etc/fstab
/dev/sdb1   /mnt/sdb1   xfs     defaults  0 0
[root@bb ~]# mount -a   #将自动挂载文件的内容重新挂载一遍
挂光盘
镜像文件   iso9660
/dev/sr0    /mnt/mount  iso9660  defaults 0 0
/dev/sdb2   /mnt/sdb2   ext4    defaults  0 0
自动挂载的文件非常重要     要注意必须写对    如果有问题  可能会导致系统无法启动   因为在启动系统时会加载这个文件

练习   将sdc这个硬盘分5个可用分区
          将sdc第一个分区格式为xfs
                   第二个分区格式为ext4
          并设置这两个分区为自动挂载
/etc/fstab
主机在启动时 --- /etc/fstab--挂载   自动挂载
 /etc/fstab  ----  必须写对   ----如果编写有误  就会出现主机启动不了
当主机无法启动  ----进入到了安全模式----输入密码(不会明文显示)---vim   /etc/fstab     ----  可以进行修改(直接把添加的内容注释掉)---reboot

磁盘
交换分区
内存     16个G       2G     8
            15.。。15.6   
交换分区  ---  硬盘的空间   ---内存 ---交换分区(1.5倍)
[root@bb ~]# swapon -s
文件名                类型        大小    已用    权限
/dev/dm-1                                  partition    2097148    111092    -1
/dev/sdb
交换分区的空间太小---增加空间----分区
普通分区----交换分区
[root@bb ~]# fdisk /dev/sdb
/dev/sdb7        16785408    20979711     2097152   83  Linux
更改分区类型
t  更改分区类型
交换分区的类型
命令(输入 m 获取帮助):t
分区号 (1-3,5-7,默认 7):7
Hex 代码(输入 L 列出所有代码):L
Hex 代码(输入 L 列出所有代码):82
已将分区“Linux”的类型更改为“Linux swap / Solaris”
/dev/sdb7        16785408    20979711     2097152   82  Linux swap / Solaris
命令(输入 m 获取帮助):w
[root@bb ~]# partprobe /dev/sdb
[root@bb ~]# fdisk -l | grep sdb
作为交换分区添加
格式化:
文件系统类型
[root@bb ~]# mkswap /dev/sdb7
[root@bb ~]# swapon -s   #查看
文件名                类型        大小    已用    权限
/dev/dm-1                                  partition    2097148    122624    -1
#把sdb7添加到交换分区
[root@bb ~]# swapon -a /dev/sdb7   -a  添加   临时添加
[root@bb ~]# swapon -s
文件名                类型        大小    已用    权限
/dev/dm-1                                  partition    2097148    122624    -1
/dev/sdb7                                  partition    2097148    0    -2
自动添加
[root@bb ~]# vim /etc/fstab
/dev/sdb7   swap    swap     defaults 0 0
[root@bb ~]# mount -a
删除:
[root@bb ~]# swapoff /dev/sdb7
[root@bb ~]# swapon -s
文件名                类型        大小    已用    权限
/dev/dm-1                                  partition    2097148    125640    -1
[root@bb ~]# mount -a 
[root@bb ~]# swapon -a     # 开启所有的交换分区

磁盘配额
针对于用户
aa用户只能在磁盘中创建几个文件
bb用户只能占用磁盘中多少空间
[root@bb ~]# partprobe /dev/sdb
/dev/sdb8        20981760    25176063     2097152   83  Linux
[root@bb ~]# rpm -qa | grep quota
quota-nls-4.01-17.el7.noarch
quota-4.01-17.el7.x86_64
/dev/sdb8
文件系统类型必须格式化成xfs
[root@bb ~]# mkfs -t xfs /dev/sdb8
[root@bb ~]# mkdir /www
[root@bb ~]# mount /dev/sdb8 /www
[root@bb ~]# mount 
/dev/sdb8 on /www type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
如果磁盘配额工具      是通过挂载实现配额功能
[root@bb ~]# umount /dev/sdb8
[root@bb ~]# mount -o usrquota,grpquota /dev/sdb8  /www
通过挂载实现了磁盘配额的功能    对于用户配额  对于组配额
[root@bb ~]# mount
/dev/sdb8 on /www type xfs (rw,relatime,seclabel,attr2,inode64,usrquota,grpquota)
#配额 
(1)对创建目录个数限额
[root@bb ~]# useradd rr
[root@bb ~]# xfs_quota -x -c 'limit -u isoft=4 ihard=5 rr' /dev/sdb8
xfs_quota  配额命令
-x  进入专家模式   只有命令
-c  执行后面的命令
limit  限制
-u   针对用户
isoft   对创建个数的软限制
ihard   对创建个数的硬限制
rr   用户名
/dev/sdb8  磁盘名也可以写挂载的目录名
文件       touch   aa
aa   文件名   权限    inode节点中     xfs   ext4    512字节
添加内容---1kb   2kb----block块  硬盘空间
验证:
[root@bb www]# chmod 777 /www
[root@bb ~]# cd /www/
[root@bb www]# su rr
[rr@bb www]$ touch {1..6}
touch: 无法创建"6": 超出磁盘限额

实现对占用空间的限额
[root@bb ~]# xfs_quota -x -c 'limit -u bsoft=4M bhard=5M rr'    /dev/sdb8
验证
[root@bb ~]# su rr
[rr@bb root]$ cd /www/
[rr@bb www]$ rm -rf *
[rr@bb www]$ ls
[rr@bb www]$ dd if=/dev/zero of=aa bs=1M count=6
dd复制     if=/dev/zero可以无限生成空字符   of=aa复制aa这个文件
bs=1M 每次输入1M数据    count=6  总共输入6次
[rr@bb www]$ du -sh 
5.0M    .
[root@bb ~]# blkid /dev/sdb8
/dev/sdb8: UUID="c28582b7-0496-428b-9719-d31e8e164049" TYPE="xfs" 
自动挂载:
[root@bb ~]# vim /etc/fstab
/dev/sdb8   /www        xfs     defaults,usrquota,grpquota
0 0

服务的命令
[root@bb ~]# yum -y install vsftpd
systemctl    选项   程序名
[root@bb yum.repos.d]# systemctl start vsftpd   #启动服务
[root@bb yum.repos.d]# systemctl status vsftpd   #查看服务的运行状态
  Active: active (running) 
[root@bb yum.repos.d]# systemctl stop vsftpd   #停止程序
[root@bb yum.repos.d]# systemctl status vsftpd
[root@bb yum.repos.d]# systemctl enable vsftpd    #加入到开机自启当中
[root@bb yum.repos.d]# systemctl is-enabled vsftpd
enabled
[root@bb yum.repos.d]# systemctl disable vsftpd   #从开机自启中移除
[root@bb yum.repos.d]# systemctl is-enabled vsftpd
disabled
[root@bb yum.repos.d]# systemctl restart vsftpd   #重启程序
[root@bb yum.repos.d]# systemctl reload vsftpd   #配置文件更改    reload重新加载服务   必须服务是启动器

练习   将sdc这个硬盘分5个可用分区
          将sdc第一个分区格式为xfs
                   第二个分区格式为ext4
          并设置这两个分区为自动挂载
          第三个可用分区     添加到交换当中
          第四个可用分区     做磁盘配额
                                       自己名字的用户
                                       ihard=8
                                       bhard=5M

lvm     
Logical Volume Manager,逻辑卷管理
逻辑卷 ----分区
fdisk  /dev/sdb     sdb1    sdb2     普通分区
普通分区是固定的大小    不能增加或者缩小磁盘容量    
需要增加容量时   需要把原分区删除   但是只要删除原分区    数据就会丢失
分区   ---  普通分区  (自动)
                逻辑卷      (手动)
逻辑卷:1. 可以随意增加容量或者缩小容量 
16G      800
8G        300
2个8G    600
              2.多块硬盘比较便宜   16G    两个硬盘整合在一起
两块硬盘---硬盘(物理卷)pv  ---  卷组 vg 16G(pe) --  逻辑卷  4G)
                                                                             4M        10pe    40M
                                                                                           200M   ---  pe整数倍
                                                                                           50
功能                 物理卷管理       卷组管理  逻辑卷管理
Scan 扫描                     pvscan     vgscan    lvscan
Create 建立    pvcreate    vgcreate    lvcreate
Display 显示    pvdisplay    vgdisplay    lvdisplay
Remove 删除    pvremove    vgremove    lvremove
Extend 扩展    ————    vgextend    lvextend
Reduce 减少    ————    vgreduce    lvreduce
添加一块硬盘 
两块分区
添加的一块硬盘   分三个主分区
[root@localhost ~]# fdisk /dev/sdb
  设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     4196351     2097152   8e  Linux LVM
/dev/sdb2         4196352     8390655     2097152   8e  Linux LVM
/dev/sdb3         8390656    12584959     2097152   8e  Linux LVM
[root@localhost ~]# fdisk -l | grep sdb
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
/dev/sdb1            2048     4196351     2097152   8e  Linux LVM
/dev/sdb2         4196352     8390655     2097152   8e  Linux LVM
/dev/sdb3         8390656    12584959     2097152   8e  Linux LVM
[root@localhost ~]# pvcreate /dev/sdb1 /dev/sdb2   #制作物理卷
  Physical volume "/dev/sdb1" successfully created.
  Physical volume "/dev/sdb2" successfully created.
[root@localhost ~]# pvscan
[root@localhost ~]# pvdisplay 
[root@localhost ~]# pvremove /dev/sdb1
  Labels on physical volume "/dev/sdb1" successfully wiped.
[root@localhost ~]# pvscan
[root@localhost ~]# pvcreate /dev/sdb1
  Physical volume "/dev/sdb1" successfully created.
[root@localhost ~]# vgcreate vg /dev/sdb1 /dev/sdb2  #创建卷组
  Volume group "vg" successfully created
[root@localhost ~]# vgscan 
[root@localhost ~]# vgdisplay
[root@localhost ~]# vgremove vg
  Volume group "vg" successfully removed
[root@localhost ~]# vgcreate vg /dev/sdb1 /dev/sdb2 -s 16M
  Volume group "vg" successfully created
-s指定pe的大小
给卷组添加容量
[root@localhost ~]# pvcreate /dev/sdb3
  Physical volume "/dev/sdb3" successfully created.
[root@localhost ~]# vgextend vg /dev/sdb3
  Volume group "vg" successfully extended
给卷组减少容量
[root@localhost ~]# vgreduce vg /dev/sdb3
  Removed "/dev/sdb3" from volume group "vg"
[root@localhost ~]# vgdisplay 
制作逻辑卷
lvcreate   -L  容量大小  -n  逻辑卷名  卷组名
lvcreate   -l  pe个数  -n  逻辑卷名  卷组名
[root@localhost ~]# lvcreate -L 512M -n lv vg
  Logical volume "lv" created.
[root@localhost ~]# lvcreate -l 30 -n lv2 vg
  Logical volume "lv2" created.
[root@localhost ~]# lvscan
[root@localhost ~]# lvdisplay 
[root@localhost ~]# lvremove /dev/vg/lv2
Do you really want to remove active logical volume vg/lv2? [y/n]: y
  Logical volume "lv2" successfully removed
lvextend  -L  +大小  /dev/卷组名/逻辑卷名 
增加
[root@localhost ~]# lvextend -L +200M /dev/vg/lv
[root@localhost ~]# lvextend -l +10 /dev/vg/lv
减少
[root@localhost ~]# lvreduce -L -200M /dev/vg/lv
[root@localhost ~]# lvreduce -l -10 /dev/vg/lv
逻辑卷
格式化     挂载
[root@localhost ~]# mkfs -t xfs /dev/vg/lv
[root@localhost ~]# mkdir /lv
[root@localhost ~]# mount /dev/vg/lv /lv
/dev/mapper/vg-lv on /lv type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
/dev/vg/lv=/dev/mapper/vg-lv
自动挂载
[root@localhost ~]# vim /etc/fstab 
/dev/vg/lv    /lv       xfs     defaults 0 0
[root@localhost ~]# mount -a

在逻辑卷使用的的情况下     在挂载的情况下   如何给逻辑卷增加容量
[root@localhost ~]# df   磁盘的占用率
[root@localhost ~]# df -h
[root@localhost ~]# df -hT
dev/mapper/centos-root xfs        37G  4.0G   34G   11% /
devtmpfs                devtmpfs  471M     0  471M    0% /dev
tmpfs                   tmpfs     488M     0  488M    0% /dev/shm
tmpfs                   tmpfs     488M  8.5M  479M    2% /run
tmpfs                   tmpfs     488M     0  488M    0% /sys/fs/cgroup
/dev/sda1               xfs      1014M  157M  858M   16% /boot
tmpfs                   tmpfs      98M   28K   98M    1% /run/user/0
/dev/sr0                iso9660   4.2G  4.2G     0  100% /run/media/root/CentOS 7 x86_64
/dev/mapper/vg-lv       xfs       525M   27M  499M    6% /lv
[root@localhost ~]# lvextend -L +1G /dev/vg/lv
  Size of logical volume vg/lv changed from 528.00 MiB (33 extents) to <1.52 GiB (97 extents).
  Logical volume vg/lv successfully resized.
xfs文件系统类型
[root@localhost ~]# xfs_growfs /dev/vg/lv  #把增加的空间格式化   在硬盘使用时进行格式化
[root@localhost ~]# df -hT
xfs的类型     增加容量   不能缩小容量
exit4   在使用使用当中格式化的命令  resize2fs

开机流程:
       centos---开启---加电自检(检查硬件)---第一块磁盘的一个分区(MBR引导扇区)--GRUB菜单(双系统)----linux系统---加载引导程序(446个字节)---分区表(硬盘)---55AA(2个字节)---加载完成系统---系统内核---init(第一个程序)
init  0   关机
PID    程序id
0    target    关机状态,使用该级别时将会关闭主机
1    rescue.target    单用户模式,不需要密码验证即可登录系统,多用于系统维护
2    multi-user.target    用户定义/域特定运行级别。默认等同于3
3    multi-user.target    字符界面的完整多用户模式,大多数服务器主机运行在此级别
4    multi-user.target    用户定义/域特定运行级别。默认等同于3
5    graphical.target    图形界面的多用户模式,提供了图形桌面操作环境
6    reboot.target    重新启动,使用该级别时将会重启主机
init 的pid永远为1
init 0      init 3             init 5        init 6
关机     命令界面        图形界面     重启
图形安装   init   5       init   5   ---   3
最小安装  init  3     
[root@localhost ~]# init 3
[root@localhost ~]# runlevel   #查看init运行等级
3 5
把服务加入开机自启
systemctl    enable    服务名
[root@localhost ~]# ntsysv  图形界面的加入开机自启

sdc1 和sdd1   逻辑卷   自己定义
并且对逻辑卷做磁盘配额     创建文件个数

raid磁盘阵列
1.增加的磁盘的容量 
2.提高硬盘的读写  (两块硬盘一起工作)
3.保证数据的安全性
磁盘阵列
硬raid    公司当中
买磁盘阵列柜(raid0)    /dev/md1         ---   分区(逻辑卷)
软raid   
可以自己把主机上的磁盘形成磁盘阵列
raid0    raid1     raid5    raid10    raid01
raid0   最少要有两块硬盘
相当于把数据分开存储      单纯提高了读写的效率
缺点:数据不能保证安装  因为当一块硬盘坏掉    数据会直接丢失
raid1  最少要有两块硬盘
相当于把数据备份   安全性比较高    容错机制   可以坏掉一块硬盘  不影响数据
缺点:读写性能不会提升
工作机制:实际上还是只有一块硬盘在工作,另一块去复制数据,如果当其中一块硬盘划掉,另一块硬盘才能接替它工作
raid5  最少需要三块硬盘
提高了读写效率  保证数据的安全    有容错机制   当一块硬盘坏掉后,不影响整个数据   但是不能同时坏两块
raid1和raid0各有优缺点    所以把他们结合
raid01   最少需要4块硬盘
相当于把两组raid0合成一组raid1
提高了读写效率  保证数据的安全  有容错机制    同时坏掉两块硬盘   不影响数据
同组的硬盘可以都坏掉    但是不同组的同数据硬盘不能都坏掉
raid10   最少需要4块硬盘
相当于把两组raid1合成一组raid0
提高了读写效率  保证数据的安全  有容错机制   同时坏掉两块硬盘   不影响数据
不同组的硬盘可以随便坏,但是同组的硬盘不可以都坏掉   
raid05 (6)    raid50  (6)
磁盘阵列只是把硬盘组合在一起使用   
如果删除磁盘阵列    数据是不会丢失的   只有硬盘损坏  数据才会丢失
raid01
两块硬盘    /dev/sdb1    /dev/sdb2    /dev/sdc1   /dev/sdc2
   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     4196351     2097152   fd  Linux raid autodetect
/dev/sdb2         4196352     8390655     2097152   fd  Linux raid autodetect
  设备 Boot      Start         End      Blocks   Id  System
/dev/sdc1            2048     4196351     2097152   fd  Linux raid autodetect
/dev/sdc2         4196352     8390655     2097152   fd  Linux raid autodetect
1.查看是否存在磁盘阵列工具
[root@localhost ~]# rpm -qa | grep mdadm
mdadm-4.0-13.el7.x86_64
2.创建两个raid0
(2)[root@localhost ~]# mdadm -Cv /dev/md0 -a yes -n2 -l0 /dev/sdb1 /dev/sdc1
-Cv   创建并显示详情
/dev/md0    磁盘阵列名称    /dev/md。。
-a   yes    自动创建所需的设备
-n2    使用磁盘的个数
-l等级     0  raid0    1raid1      5 raid5
/dev/sdb1 /dev/sdc1   使用的磁盘
mdadm: chunk size defaults to 512K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
[root@localhost ~]# mdadm -Cv /dev/md1 -a yes -n2 -l0 /dev/sdb2 /dev/sdc2
3.制作raid1
两个raid0合成raid1
[root@localhost ~]# mdadm -Cv /dev/md2 -a yes -n2 -l1 /dev/md0 /dev/md1
4.查看raid是否创建成功
[root@localhost ~]# cat /proc/mdstat 
Personalities : [raid0] [raid1] 
md2 : active raid1 md1[1] md0[0]
      4185088 blocks super 1.2 [2/2] [UU]      
md1 : active raid0 sdc2[1] sdb2[0]
      4188160 blocks super 1.2 512k chunks     
md0 : active raid0 sdc1[1] sdb1[0]
      4188160 blocks super 1.2 512k chunks   
unused devices: <none>
5.想要使用    格式化  挂载
删除:  #需要在没有挂载的情况下删除
[root@localhost ~]# mdadm -S /dev/md2
mdadm: stopped /dev/md2
[root@localhost ~]# cat /proc/mdstat 
练习: raid5   

程序: linux    httpd     samba   nfs。。。
           windows      微信
进程:运行了程序之后     进程      pid进程号
    父进程: 整个服务运行的进程   父进程
    子进程: 隶属于父进程之下的进程
父进程可以管理子进程      父进程结束    子进程也会结束
进程:
    线程:一个进程可以只有一个线程  (一个员工干活)
              一个进程中也可以有多个线程  (多个员工工作)
linux查看进程的信息
静态查看进程的统计信息
[root@localhost ~]# ps aux
a  显示当前终端下所有的进程
u  是以用户为主的形式显示
x  列出详情信息
[root@localhost ~]# ps -elf  
e  显示系统中所有的进程
l   以长格式的形式显示
f   以完成的形式显示
ps -elf   |   grep  httpd
动态查看进程的统计信息
top
[root@localhost ~]# top
空格刷新
P     按照cpu的占用百分比排序
M    按照内存的占用百分比排序
T    按照运行时间的百分比排序
h    获取帮助信息
q    退出
公司java写的程序     jsp
根据指定的条件列出程序pid
pgrep
[root@localhost ~]# yum -y install httpd
[root@localhost ~]# systemctl start httpd
[root@localhost ~]# pgrep -l "httpd"
59404 httpd
59405 httpd
59406 httpd
59407 httpd
59408 httpd
59409 httpd
[root@localhost ~]# pgrep -l "log"
-U   指定用户
-t   指定终端
[root@localhost ~]# pgrep -l -U root "log"
[root@localhost ~]# pstree
[root@localhost ~]# pstree -aup
Ctrl+Z 组合键   
将当前进程挂起,即调入后台并停止执行
jobs 命令
查看处于后台的任务列表
fg 命令
将后台进程恢复到前台运行,可指定任务序号
 40  top
   41  jobs
   42  fg 1
[root@localhost ~]# systemctl stop httpd
kill
killall
kill  程序的pid
killall    程序名
httpd
[root@localhost ~]# systemctl start httpd
[root@localhost ~]# killall httpd
[root@localhost ~]# systemctl status httpd
[root@localhost ~]# systemctl start httpd
[root@localhost ~]# pgrep -l httpd
59775 httpd
59776 httpd
59777 httpd
59778 httpd
59780 httpd
59781 httpd
[root@localhost ~]# kill 59775
[root@localhost ~]# pgrep -l httpd
-9     强制关闭

HUP    1     重新读取配置文件      reload  
INT     2    中断(同ctrl+c)
QUIT    3     退出
TERM  15    终止
KILL       9    强制终止

kill    -9      程序名
kill    -KILL   程序名

pkill
根据指定的条件结束对应的进程
-U   指定的用户
-t   指定的终端
pkill   -9   -U   "aa"
[root@localhost ~]# pkill   -9   -U   "zsy"

计划任务
一次性的任务
at命名
[root@localhost ~]# at 23:00 2021-09-26   #先写时间点
at> reboot<EOT>   #命令     ctrl+d提交
job 1 at Sun Sep 26 23:00:00 2021
[root@localhost ~]# atq   #查看
1    Sun Sep 26 23:00:00 2021 a root
[root@localhost ~]# atrm 1    #删除    删除id

crontab
连续的计划任务  
进入公司的第一步    就是查看计划任务   
每天晚上3点备份  ----  3点业务量最小  
主要设置文件
 全局配置文件,位于文件:/etc/crontab 
 系统默认的设置,位于目录:/etc/cron.*/
 用户定义的设置,位于文件:/var/spool/cron/用户名
分   时   日   月  周    执行的任务
分钟    取值为从0到59之间的任意整数 
小时    取值为从0到23之间的任意整数 
日期    取值为从1到31之间的任意整数
月份    取值为从1到12之间的任意整数
星期    取值为从0到7之间的任意整数,0或7代表星期日
命令    要执行的命令或程序脚本 
*       表示该范围内的任意时间
,                  表示间隔的多个不连续时间点
-       表示一个连续的时间范围
/       指定间隔的时间频率
设定计划任务
[root@localhost ~]# crontab -e   #配置
* * * * * echo 11111 >> /root/qqqq
[root@localhost ~]# useradd aa
[root@localhost ~]# crontab -e -u aa
* * * * * echo 11111 >> /home/aa/qqqq
[root@localhost ~]# crontab -l   #查看
* * * * * echo 11111 >> /root/qqqq
[root@localhost ~]# crontab -l -u aa
* * * * * echo 11111 >> /home/aa/qqqq
删除单个
crontab   -e   -u   aa
dd   保存退出
[root@localhost ~]# crontab -l -u aa
删除  删除所有的计划任务
[root@localhost ~]# crontab -l
* * * * * echo 11111 >> /root/qqqq
* * * * * echo 11111 >> /root/aaaa
[root@localhost ~]# crontab -r   #删除所有的计划任务
[root@localhost ~]# crontab -l


计算机----计算机----ip
主机  ----   百度
ip(公网)-----  ip(公网)
计算机    二进制
ip
4个8位组成
10101010    11111111    10101010      10111111   ip
二进制---转换为十进制
192.168.2.10    ip
IP地址分为5类
前三类
A    0-126        10.0.0.1   A
B    128-191    172.16.0.1   B
C    192-255     192.168.2.10    C
127  本地回环地址    代表本机
127.0.0.1   
[root@localhost ~]# ifconfig
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1
ip    192.168.2.10
子网掩码
A:     255.0.0.0     第一位是网络位   后三位是主机位
                           11111111   0000000    00000000    00000000
B:     255.255.0.0    前两位是网络位    后两位是主机位
                           11111111   11111111     00000000   00000000 
C:  255.255.255.0     前三位是网络位     最后一位为主机位                 
                            11111111   11111111    11111111    00000000
10.0.0.1/8
172.16.0.1/16
192.168.2.10/24
C类   前三位一致    两个主机之间是可以直接通信的
         192.168.2.1  -----     192.168.2.10
         192.168.2.0  -----      192.168.2.255   同网段    
          网段地址                     广播地址     不能使用的
         192.168.88.5/24      192.168.88.0      192.168.88.255
         有效地址范围     192.168.2.1--192.168.2.254
购买ip     192.168.2.0          255个主机
子网划分:
子网掩码就是子网划分的
192.168.2.10
[root@localhost ~]# ifconfig  #查看网卡信息(开启)
lo:  本地回环网卡
ens33:  对外通讯网卡
virbr0:   连接物理机的网卡
192.168.122.1    ip
netmask 255.255.255.0   子网掩码
broadcast 192.168.122.255   广播地址
ether 52:54:00:ee:c3:d9    mac地址     网卡的身份证编号
[root@localhost ~]# ifconfig ens33 down   #停止关闭网卡
[root@localhost ~]# ifconfig -a    #查看所有网卡的信息    包括关闭
[root@localhost ~]# ifconfig ens33 up   #开启网卡
配置ip
临时配置
[root@localhost network-scripts]# ifconfig ens33 192.168.2.10/24
[root@localhost network-scripts]# ifconfig ens33
[root@localhost network-scripts]# systemctl restart  network   #重启网卡服务或者关机(挂起)  ip地址都会丢失

永久配置
第一种方式   
更改网卡的文件
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# ls
ifcfg-ens33    
[root@localhost network-scripts]# vim ifcfg-ens33 
dhcp  动态获取ip地址
static   静态    ip自己配置
BOOTPROTO=none   (static/dhcp)
NAME=ens33     #配置文件的名称
UUID=ab02007f-a4c9-4814-9574-59ab028cf750   #网卡的uuid
DEVICE=ens33    #网卡名称
ONBOOT=yes   #启动当前配置
IPADDR=192.168.2.20   #ip
NETMASK=255.255.255.0   #子网掩码
GATEWAY=192.168.2.1    #网关
[root@localhost network-scripts]# systemctl restart network
[root@localhost network-scripts]# ip a
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:ac:88:fa brd ff:ff:ff:ff:ff:ff
    inet 192.168.2.20/24
第二种   
可以直接使用配置ip的命令
[root@localhost ~]# nmcli connection delete ens33   #删除原来的配置文件
成功删除连接 'ens33'(ab02007f-a4c9-4814-9574-59ab028cf750)。
[root@localhost ~]# nmcli connection add type ethernet ifname ens33 con-name ens33   
 add type ethernet   添加以太网的类型
ifname ens33   网卡的设备名 
con-name ens33    配置文件名称
[root@localhost ~]# nmcli connection modify ens33 ipv4.addresses 192.168.2.30/24   #IP地址
[root@localhost ~]# nmcli connection modify ens33 ipv4.gateway  192.168.2.1     #网关
[root@localhost ~]# nmcli connection modify ens33 ipv4.method manual
#手动生效
[root@localhost ~]# systemctl restart network
[root@localhost ~]# ip a
第三种
图形界面配置ip
[root@localhost ~]# nmtui   更改
编辑----ens33---更改ip----确定---退出
设置ip
[root@localhost ~]# nmcli connection delete ens33 
成功删除连接 'ens33'(c96bc909-188e-ec64-3a96-6a90982b08ad)。
[root@localhost ~]# nmcli connection add type ethernet ifname ens33 con-name ens33
[root@localhost ~]# systemctl restart network
启动连接---ens33   ----激活   带*号
编辑----ens33---ipv4---手动----显示  ---ip    ----gw ----确定---确定
第四种  
脚本配置
写一个脚本    运行这个脚本配置ip
shell   文件   可执行文件    
自动按照文件中的步骤进行下一步操作
read   可以读取写入的内容
[root@localhost ~]# vim ip.sh
read -p "请输入网卡名称:" ens
ens33
echo   $ens    ens33
pa="/etc/sysconfig/network-scripts/ifcfg-"
echo   pa
/etc/sysconfig/network-scripts/ifcfg-
echo $pa$ens
echo "TYPE=Ethernet" >  /etc/sysconfig/network-scripts/ifcfg-ens33
[root@localhost ~]# cat ip.sh 
#!/bin/bash
read -p "请输入网卡名称:" ens    
read -p "请输入IP地址:" ip
read -p "请输入子网掩码:" mask
read -p "请输入网关:" gateway
pa="/etc/sysconfig/network-scripts/ifcfg-"
echo "TYPE=Ethernet" > $pa$ens
echo "BOOTPROTO=none" >> $pa$ens
echo "NAME=$ens" >> $pa$ens
echo "DEVICE=$ens" >> $pa$ens
echo "ONBOOT=yes" >> $pa$ens
echo "IPADDR=$ip" >> $pa$ens
echo "NETMASK=$mask" >> $pa$ens
echo "GATEWAY=$gateway" >> $pa$ens
echo 
systemctl restart network
ip a

两台主机之间同网段就可以ping同   连接成功
C类   前三位一致  网络位一致    网络适配器类型需要一致   
第一台192.168.2.70
第二台  192.168.2.60
第一台ping第二台
[root@localhost ~]# ping 192.168.2.60
64 bytes from 192.168.2.60: icmp_seq=1 ttl=64 time=0.320 ms
[root@localhost ~]# ping -c  2  192.168.2.60
-c  次数

不同网段之间的ping同
第一台  192.168.2.70   gw   192.168.2.1
第二台   192.168.3.70   gw  192.168.3.1
[root@localhost ~]# ping 192.168.2.70
PING 192.168.2.70 (192.168.2.70) 56(84) bytes of data.
From 192.168.3.70 icmp_seq=1 Destination Host Unreachable
[root@localhost ~]# route -n  #查看网关
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.2.1
开启路由转发功能   两台都要开启
[root@localhost ~]# vim /etc/sysctl.conf 
net.ipv4.ip_forward = 1   #开启路由转发
[root@localhost ~]# sysctl -p   #立刻生效
net.ipv4.ip_forward = 1
添加路由
第一台主机
[root@localhost ~]# route add -net 192.168.3.0/24 ens33
第二台主机
[root@localhost ~]# route add -net 192.168.2.0/24 ens33
两边互相ping
[root@localhost ~]# ping 192.168.3.70
PING 192.168.3.70 (192.168.3.70) 56(84) bytes of data.
64 bytes from 192.168.3.70: icmp_seq=1 ttl=64 time=0.602 ms
^C
临时设置多个ip
[root@localhost ~]# ifconfig ens33:0 192.168.2.80/24

基础环境
ip+yum+gcc*
ip+yum
dhcp服务
作用:
给其他主机分配ip地址
优点:
1.减轻管理人员的压力
2.避免配置ip冲突的问题
3.避免配置ip过程中  输入错误的可能
4.提高ip的地址的利用率
dhcp的原理:
流程:
1.客户端发送一个广播请求  询问有哪一些服务可以分配ip地址
2.dhcp会返回一个响应,并且告诉客户端可分配ip的范围
3.client会选择一个ip地址
4.dhcp会检索这个ip是否被占用,如果未占用  则分配给客户端
dhcp服务分配ip  也是有时效的    不是永久的   租约时间是在dhcp服务当中配置的    可以配置成永久的     也可以是临时的
没有写租约时间    就是永久的
写了具体的时间    就是临时的
一般都是有具体的租约时间       当租约时间达到50%  就会给client发送请求,询问是否还需要当前的ip
租约是自动续约的      默认会认为继续续约
一台 dhcp   server
一台  没有ip地址的主机   client   验证
server:
dhcp    192.168.2.50
#安装dhcp服务
[root@localhost ~]# yum -y install dhcp
#配置服务     
改服务的配置文件
[root@localhost ~]# cd /etc/dhcp/   #存放配置文件的目录
[root@localhost dhcp]# ls
dhclient.d             dhcpd6.conf  scripts
dhclient-exit-hooks.d  dhcpd.conf
[root@localhost dhcp]# cat dhcpd.conf   #主配置文件
#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.example
#   see dhcpd.conf(5) man page
#
dhcp的配置文件需要手动编写    这里有提示信息  
#   see /usr/share/doc/dhcp*/dhcpd.conf.example
[root@localhost dhcp]# vim /usr/share/doc/dhcp*/dhcpd.conf.example
[root@localhost dhcp]# mv dhcpd.conf dhcpd.bak  #将只有提示信息的配置文件更改名称
[root@localhost dhcp]# cp /usr/share/doc/dhcp*/dhcpd.conf.example dhcpd.conf   #配置文件的样例文件复制称为主配置文件
[root@localhost dhcp]# vim dhcpd.conf   #更改主配置文件
  7 option domain-name "www.aaa.com";   #搜索域
 8 option domain-name-servers 192.168.2.50;    #指定分配给client
dns的地址
10 default-lease-time 21600;   #默认租约时间   单位s
 11 max-lease-time 43200;    #最大租约时间   单位s
26 subnet 192.168.2.0 netmask 255.255.255.0 {    #声明一个网段  本机的网段地址  和子网掩码
 27    range 192.168.2.60 192.168.2.100;   #分配的地址池
 28    option subnet-mask 255.255.255.0;    #分配的子网掩码
 29    option routers 192.168.2.1;   #分配的网关
 30 }
[root@localhost dhcp]# systemctl restart dhcpd
查看详情错误
[root@localhost dhcp]# journalctl -xe
网络适配器  同一个网络适配器
dhcp  和client  nat模式
编辑---虚拟网络编辑器---更改设置--nat模式---使用本地dhcp去掉
网卡---分配ip的功能   dhcp
不用网卡自带的dhcp功能  要使用自己的dhcp功能

另开一台主机没有ip
dhclient是dhcp客户端的命令
[root@localhost ~]# dhclient -d   -d后台运行
DHCPOFFER from 192.168.2.50
DHCPACK from 192.168.2.50 (xid=0x7e825c81)
bound to 192.168.2.60 -- renewal in 9459 seconds.
出现后就可以中断   ctrl+c
随机ip

使用dhcp给client分配固定的ip
server  
dhcp:
[root@localhost dhcp]# vim /etc/dhcp/dhcpd.conf 
31 host aa {      #指定主机    aa 名字    随便起
 32    hardware ethernet 00:0c:29:80:7f:9d;   #client mac地址
 33    fixed-address 192.168.2.80;   #分配的固定ip
 34 }
如果想要分配给第二台client   host   bb {}  不能和aa冲突
client查看mac地址
[root@localhost ~]# ifconfig ens33
ens33: 
        ether 00:0c:29:80:7f:9d
server、
[root@localhost dhcp]# systemctl stop dhcpd
[root@localhost dhcp]# systemctl start dhcpd
client:
[root@localhost ~]# dhclient -r   #删除分配的ip
[root@localhost ~]# dhclient -d
DHCPOFFER from 192.168.2.50
DHCPACK from 192.168.2.50 (xid=0x30809510)
bound to 192.168.2.80

nfs   文件共享服务
samba

nfs   文件传输服务
nfs实现文件之间的共享 只需要在nfs的服务端创建文件   client就会自动收到该文件
nfs   network   filesystem   网络文件系统   存文件
xfs
nfs服务
nfs  网络文件系统
rpc-bind    服务   
server  192.168.2.40
client   192.168.2.50
server
安装nfs服务
nfs服务自带
[root@localhost ~]# rpm -qa | grep nfs
nfs4-acl-tools-0.3.3-17.el7.x86_64
nfs-utils-1.3.0-0.54.el7.x86_64
libnfsidmap-0.25-19.el7.x86_64
[root@localhost ~]# rpm -qa | grep rpcbind
rpcbind-0.2.0-44.el7.x86_64
如果nfs不存在  则安装这两个程序
nfs    
yum  -y  install  nfs-utils  rpcbind
#创建共享目录
[root@localhost ~]# mkdir /share
#配置文件
[root@localhost ~]# vim /etc/exports
/share *(rw)
/share 192.168.2.0/24(rw)

/share 192.168.2.50(rw)     共享目录      client的地址(权限)
[root@localhost ~]# systemctl restart rpcbind
[root@localhost ~]# systemctl restart nfs
服务端自己检测服务配置
[root@localhost ~]# showmount -e localhost   查看nfs中的共享目录    -e  要查看的地址
Export list for localhost:
/share 192.168.2.50
放行防火墙
[root@localhost ~]# systemctl stop firewalld   #关闭防火墙   所有端口都放行
[root@localhost ~]# systemctl start firewalld
放行单个服务
[root@localhost ~]# firewall-cmd --list-all
[root@localhost ~]# firewall-cmd --add-service=nfs --permanent 
[root@localhost ~]# firewall-cmd --add-service=rpc-bind --permanent 
[root@localhost ~]# firewall-cmd --add-service=mountd --permanent 
服务端和client的目录是通过挂载实现绑定在一起的
[root@localhost ~]# firewall-cmd --reload  #重新加载防火墙
  services: ssh dhcpv6-client nfs rpc-bind mountd
client:
[root@localhost ~]# showmount -e 192.168.2.40
Export list for 192.168.2.40:
/share 192.168.2.50
[root@localhost ~]# mkdir /client
[root@localhost ~]# mount -t nfs 192.168.2.40:/share /client/
                                  -t  指定文件系统类型
                                  192.168.2.40:/share  服务端的ip和其共享目录
                                  /client/     client的目录
/share    /client
验证:
服务端创建数据
[root@localhost ~]# cd /share/
[root@localhost share]# ls
[root@localhost share]# touch lijunwen 
client
[root@localhost ~]# cd /client/
[root@localhost client]# ls
lijunwen
自动挂载
[root@localhost client]# vim /etc/fstab
192.168.2.40:/share  /client  nfs   defaults 0 0
[root@localhost client]# mount -a

虚拟机联网   
物理机   电脑联网
虚拟机联网
桥接模式联网
ssh远程登录 
openssh   ssh这个命令   
如果是新的主机----主机通过网线连接----笔记本----配置ip
ssh  
远程登录
telnet   远程连接    主机之间传输的数据是明文的   不太安全
ssh   远程协议   程序     22端口    用户主机之前安全远程连接   传输的数据都是加密的  并且支持用户的身份验证  也支持秘钥验证
client    192.168.2.40
server   192.168.2.50
ssh这个服务的防火墙就是放行的  所以可以直接连接远程主机
[root@localhost ~]# rpm -qa | grep ssh
openssh-server-7.4p1-16.el7.x86_64
openssh-clients-7.4p1-16.el7.x86_64
这个openssh这个程序是启动的
[root@localhost ~]# netstat -anput | grep sshd
netstat   应用程序网络连接状况   
-a  显示所有的信息
n   以数字为主
p   pid
u   udp  
t    tcp
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1093/sshd           
tcp6       0      0 :::22                   :::*                    LISTEN      1093/sshd       
client尝试登录服务端    身份验证
[root@localhost ~]# ssh root@192.168.2.50
Are you sure you want to continue connecting (yes/no)? yes   #第一次连接登录  需要数据yes
root@192.168.2.50's password:    使用root登录192.168.2.50(服务端)密码
测试:
客户端远程成功后    在client操作相当于在服务端操作
[root@localhost ~]# touch lalalalala
[root@localhost ~]# ls
anaconda-ks.cfg       lalalalala  模板  图片  下载  桌面
initial-setup-ks.cfg  公共        视频  文档  音乐
[root@localhost ~]# ip a
[root@localhost ~]# exit
登出
Connection to 192.168.2.50 closed.

服务端:
[root@localhost ~]# vim /etc/ssh/sshd_config 
17 #Port 22   #端口
 19 #ListenAddress 0.0.0.0 #监听任何一个ip
ip   192.168.2.10      192.168.3.30
 37 #LoginGraceTime 2m   #client登录server  2分钟 自动断开
38 #PermitRootLogin yes   #是否允许client通过root用户连接   
                                              实际环境中改成no
40 #MaxAuthTries 6   #客户端连接服务端时尝试连接的次数
 41 #MaxSessions 10   #最大连接量   同时10client连接
 43 #PubkeyAuthentication yes    #客户端连接服务端是否可以使用秘钥连接
案例:服务端  禁止root用户登录 允许lisi用户登录
服务端   
[root@localhost ~]# vim /etc/ssh/sshd_config 
38 PermitRootLogin no   #禁止root用户登录
 39 AllowUsers lisi   #允许李四用户登录
[root@localhost ~]# useradd lisi
[root@localhost ~]# passwd lisi
更改用户 lisi 的密码 。
新的 密码:
无效的密码: 密码未通过字典检查 - 过于简单化/系统化
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# systemctl restart sshd
client:
[root@localhost ~]# ssh root@192.168.2.50
root@192.168.2.50's password:   #登录不成功
[root@localhost ~]# ssh lisi@192.168.2.50
lisi@192.168.2.50's password: 
[lisi@localhost ~]$
案例:服务端  禁止root用户登录 允许lisi用户登录   只允许192.168.2.40通过zhangsan用户登录
[root@localhost ~]# vim /etc/ssh/sshd_config 
PermitRootLogin no
AllowUsers lisi zhangsan@192.168.2.40 wangwu@192.168.2.0/24
zhangsan@192.168.2.40   允许client192.168.2.40  通过zhangsan用户登录
wangwu@192.168.2.0/24   运行client2.0这个网段   通过wangwu用户登录
[root@localhost ~]# systemctl restart sshd
[root@localhost ~]# useradd zhangsan
[root@localhost ~]# passwd zhangsan
[root@localhost ~]# useradd wangwu
[root@localhost ~]# passwd wangwu
client
[root@localhost ~]# ssh lisi@192.168.2.50
lisi@192.168.2.50's password: 
Last login: Wed Sep 29 14:16:28 2021 from 192.168.2.40
[lisi@localhost ~]$ exit
登出
Connection to 192.168.2.50 closed.
[root@localhost ~]# ssh zhangsan@192.168.2.50
zhangsan@192.168.2.50's password: 
[zhangsan@localhost ~]$ exit
登出
Connection to 192.168.2.50 closed.
[root@localhost ~]# ssh wangwu@192.168.2.50
wangwu@192.168.2.50's password: 
[wangwu@localhost ~]$ exit
登出
Connection to 192.168.2.50 closed.


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值