zoukankan      html  css  js  c++  java
  • linux就该这么学--资料整理--持续更新

    基础命令

    服务管理

    systemctl redhat7

    systemctl start foo.service 启动服务
    systemctl restart foo.service 重启服务
    systemctl stop foo.service 停止服务
    systemctl reload foo.service 不重启服务下重新加载配置文件
    systemctl status foo.service 查看服务状态
    systemctl enable foo.service 设置服务开机自动启
    systemctl disable foo.service 设置服务开机不启动
    systemctl is-ebabled foo.service 查看服务是否开机自启
    systemctl list-unit-files --type=service 查看各个界别下的服务的启动与禁用情况

    常用命令

    man

    man [数字] 命令|配置文件		获取命令,配置文件的帮助信息
    

    whatis

    whatis 命令	查看命令帮助信息中的NAME字段
    

    help

    help 命令		获取shell内置命令的帮助信息,which等命令找不到路径的命令都是shell内置命令(bash)
    

    apropos

    apropos 配置文件信息	查看配置文件信息中的name字段
    

    echo

    echo 字符 输出字符
    echo $变量 输出变量

    dete

    date 查看系统当前时间
    date "+%Y-%m-%d %H:%M:%S" 按照年月日小时分钟秒格式
    date -s "20190101 8:30:00" 设置当前日期为2019年1月1日8:30分

    reboot

    reboot 重启

    shutdown

    shutdown [选项] 时间	关闭
    -c	取消前一个关机命令
    -h	关机 now.马上关机	20:20定时关机	
    -r	重启
    

    halt

    
    

    init

    系统运行级别 /etc/inittab

    0	关机
    1	单用户
    2	不完全多用户,不含NFS服务
    3	完全多用户
    4	未分配
    5	图形界面
    6	重启
    

    runlevel

    runlevel 查询系统的运行级别

    logout

    logout 退出登陆

    poweroff

    poweroff 关机

    ps

    -a	显示所有进程,包括其他用户的进行
    -u	用户以及其它详细信息
    -x	显示没有控制终端的进程
    

    top

    top 动态监视进程活动与系统负载等信息,类似windows任务管理器

    pidof

    pidof [参数] [服务名] 查询服务进程的PID值

    kill & killall

    kill [参数] [进程ID] 终止某个pid的服务进程
    kiliall [参数] [服务名称] 终止某个指定名称的服务所对应的全部进程,类似windows任务管理器的结束进程树

    alias

    alias rm='rm -i' 定义一个命令的别名

    write

    write 用户名		给在线用户发信
    Ctrl+D	保存并发送
    

    wall

    wall [发送信息]		给所有在线用户发送广播信息
    

    ping

    ping [选项] ip地址
    -c num	指定ping的次数
    

    mail

    mail [用户名]		直接mail是收信,mail 用户名是给用户发信
    Ctrl+D 保存发送
    h	返回邮件列表
    d num	删除邮件
    q	退出
    

    系统状态检测命令

    ifconfig

    ifconfig [网络设备] [参数]		获取网卡配置与网络状态等信息
    ifconfig 网卡名 IP地址		给网卡设置IP地址,临时生效,重启失效
    ifconfig 网卡名:1 IP地址		增加虚拟网卡,绑定多个IP
    

    uname

    uname [-a] 查看系统名称,系统内核,主机名,内核发型版本,节点名,系统时间,硬件名称,硬件平台,处理器类型,操作系统名称等

    uptime

    uptime 查看系统的负载信息

    free

    free [-h] 显示系统内存的使用量

    who

    who [参数] 查看当前登陆主机的用户终端信息
    格式:登陆的用户名 登陆终端(tty本地,pts远程终端) 登陆时间 登陆的主机地址

    w

    w [参数] [用户名] 显示目前登入系统的用户信息

    last

    last [参数] 查看所有系统的登陆记录

    lastlog

    lastlog [选项] [用户]		显示所有系统用户的最后登陆信息
    -u uid		查看指定用户的最后登陆信息
    

    setup

    setup	配置网络
    

    netstat

    netstat [选项]	显示网络相关信息
    -t	tcp协议
    -u	udp协议
    -l	监听
    -r	路由
    -n	显示ip地址和端口号
    netstat -an	查看本机所有的网络连接
    netstat -tlun	查看本机监听的端口
    netstat -rn	查看本机路由表
    

    traceroute

    traceroute ip|域名 显示数据包到主机间的路径,windows中的tracert

    history

    history [参数] 显示历史执行过的命令 -c 删除历史命令记录

    sosreport

    sosreport 收集系统配置和架构信息并输出诊断文档

    工作目录切换

    pwd

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

    cd

    cd [目录名称]	切换工作路径
    cd -	切换上一个目录
    cd ~	切换到家目录
    cd ~username	切换到username的家目录
    

    ls

    文件类型(d目录,l软链接,-文件) 权限(ugo) 引用计数(链接) 所有者 所属组 文件大小(字节) 文件最后修改时间

    ls [选项] [文件]	显示目录文件信息
    ls -a	all,查看全部文件,包括隐藏文件
    ls -d	查看目录属性
    ls -l	long,查看详细信息
    ls -h	显示容易阅读的文件大小
    ls -i	查看文件的i节点
    

    文本文件编辑命令

    cat

    cat [参数] [文件名]	查看内容较少的纯文本文件
    cat -n	显示行号
    

    tac

    tac 文件 倒着显示文本,cat的倒着写

    more

    more [选项] 文件 查看内容较多的纯文本文件

    快捷键 功能
    Q|q 退出
    enter 换行
    空格f 翻页

    less

    less 文件名 分页显示文件内容

    快捷键 功能
    enter 换行
    空格f 翻页
    向上箭头 向上换行
    /关键词 搜索关键词
    n 下一个搜索的关键词
    pageup 向上翻页
    head [选项] [文件]		查看纯文本文档的前N行
    head -n 20 [文件名]	查看前20行
    

    tail

    tail [选项] [文件]		查看纯文本文件的后N行
    tail -n 20 文件名		查看后20行
    tail -f 文件名		持续刷新文件内容
    

    tr

    tr [原始字符] [目标字符]	替换文本文件中的字符
    cat 1.txt | tr a m		将1.txt中的a替换成m,实际文件中并没有改变,只在输出时改变
    

    wc

    wc [参数] 文本		统计指定文本的行数
    wc -l		只显示行数
    wc -w		只显示单词数
    wc -c		只显示字节数
    

    stat

    stat 文件名 查看文件的具体存储信息和时间等信息

    cut

    cut [参数] 文本	按列提取文本字符
    -d	分隔符
    -f	取的列数
    cut -d: -f1 /etc/passwd	提取passwd文件中的第一列(用户名)信息
    

    diff

    diff [参数] 文件...	比较多个文本文件的差异
    --brief	比较两个文件是否相同
    	diff --brief 1.txt 2.txt
    -c	详细比较多个文件的差异之处
    	diff -c 1.txt 2.txt
    

    ln

    硬链接相当于 cp -p + 同步更新
    通过i节点判断软硬链接,软链接在ls -l时会有箭头指向->
    硬链接不能针对目录创建,不能跨分区创建

    ln [参数] 源文件 目标文件
    -s	创建软链接
    

    文件目录管理

    touch

    touch [选项] [文件...]	创建空白文件或设置文件时间
    touch -a	修改文件读取时间(atime)
    touch -m	修改文件修改时间(mtime)
    touch -d "2019-09-01" 文件名	同时修改atime和mtime
    

    mkdir

    mkdir [选项] 目录名	创建空白目录
    mkdir -p a/b/c	递归创建目录
    

    rmdir

    rmdir 目录名 删除空目录

    cp

    cp [选项] 源文件1,2,3 目标文件	复制文件或目录
    cp -p	保留原始文件的属性
    cp -d	若对象为链接文件,保留链接文件的属性
    cp -r	递归复制(用于目录)
    cp -i	如果目标文件存在,则询问是否覆盖
    cp -a	相当于-pdr
    

    mv

    mv [选项] [源文件] [目标路径|目标文件名] 剪切文件或者文件重命名

    rm

    rm [选项] 文件	删除文件或目录
    rm -f 文件	强制删除,不显示确认信息
    rm -r 目录名	删除目录和目录里的文件
    

    dd

    dd [参数]	按照指定大小和个数的数据块来复制文件或者转换文件
    if	输入的文件名
    of	保存的文件名
    bs	设置每个块的大小
    count	设置要复制块的个数
    dd if=/ect/passwd of=newpass count 1 bs=560m	从passwd文件中取出一个560m的数据块,保存成newpass
    dd if=/dev/cdrom of=redhat7.0.iso	将光驱设备中的光盘制作成iso格式的镜像文件
    

    file

    file [文件|目录] 查看文件类型

    打包压缩与搜索

    gzip

    只能压缩文件,不能压缩目录
    不保留源文件
    默认后缀 .gz

    gzip 文件名	压缩
    -d 解压缩		解压缩
    gunzip 压缩包	解压缩
    

    tar

    压缩文件名 file.tar.gz 一般都是先tar然后gzip压缩,tar命令配合-z使用

    tar [选项] [压缩后的文件名(配合-f使用)] [文件]		对文件压缩或解压
    -c	创建压缩文件
    -x	解压
    -t	查看压缩包中文件
    -z	用Gzip压缩或解压
    -f	指定文件名(压缩或解压时都可以使用)
    -j	用bzip2压缩或解压
    -v	显示压缩和解压过程
    -f	目标文件名
    -P	保留原始权限和属性
    -p	使用绝对路径来压缩
    -C	指定解压到目录
    tar -czvf 文件名.gz 打包目录	将目录使用Gzip方式打包
    tar -xzvf 压缩包 -C 解压目录	将压缩包解压到指定目录
    

    zip

    zip [选项] [压缩后的文件名] [文件或目录]	压缩文件或目录
    -r	压缩目录
    

    unzip

    unzip [压缩文件]	解压zip文件
    

    bzip2

    bzip2 [选项] [文件]		压缩文件
    -k	压缩后保留源文件
    

    grep

    grep [选项] [文件]	在文本中执行关键词搜索并显示匹配的结果
    -b	将可执行文件(binary)当作文本文件来搜索
    -c	仅显示找到的行数
    -i	忽略大小写
    -n	显示行号
    -v	反向选择--仅列出没有关键词的行
    grep 1111 1.txt	在1.txt中搜索1111
    

    find

    find [查找路径] 寻找条件 操作	按照指定条件查找文件
    -name	匹配名称
    -iname	不区分大小写
    -perm	匹配权限(mode为完全匹配,-mode为包含即可)
    -user	匹配所有者
    -group	匹配所有组
    -mtine -n +n	匹配修改内容的时间(-n是n天以内,+n是n天以前)
    -atime -n +n	匹配访问文件的时间
    -ctime -n +n	匹配修改文件权限的时间
    -nouser	匹配无所有者的文件
    -nogroup	匹配无所有组的文件
    -newer f1 f2	匹配比文件f1新但是比f2旧的文件
    -a	两个条件同时满足 find / -size+1600 -a -size -2000
    -o	两个条件满足一个即可
    --type b/d/v/p/l/f	匹配文件类型(块设备/目录/字符设备/管道/链接文件/文本文件)
    -inum	根据i节点查找
    -size	匹配文件大仙(+50k是查找超过50k的文件,-50k是查找小于50k的文件,50是等于50k)
    -prune	忽略某个目录
    -exec …… {} ;	后面跟用于进一步处理搜索结果的命令 find / -name inittab -exec ls {} ;
    -ok …… {} ;	询问是否执行,后面跟用于进一步处理搜索结果的命令 find / -name inittab -ok ls {} ;
    find /etc -name "host*"	搜索etc目录下所有以host开头的文件
    find / -perm -4000	搜索整个系统中权限中包括SUID权限的所有文件
    find / -user mrhonest -exec cp -a {} /root/findfile/ ;	在整个文件系统中找出所有归属于mrhonest用户的文件并复制到root/findfile目录,({}表示find命令搜索出的每一个文件)
    

    locate

    locate 文件名		搜索文件,基于资料库查找文件,/tmp等临时文件目录的文件不会更新到资料库中
    -i	不区分大小写
    updatedb	更新资料库,此命令直接使用,updatedb不是参数
    

    which

    which 命令		搜索命令所在目录及别名信息
    

    whereis

    whereis 命令		搜索命令所在目录及帮助信息位置
    

    管道符,重定向,环境变量

    输入输出重定向

    标准输入重定向(STDIN,文件描述符为0):默认从键盘输入,也可以从其它文件或者命令中输入
    标准输出重定向(STDOUT,文件描述符为1):默认输出到屏幕
    错误输出重定向(STDERR,文件描述符为2):默认输出到屏幕

    • 输入重定向
    命令 < 文件	将文件作为命令的标准输入
    命令 << 分界符	从标准输入中读入,知道遇见分界符才停止
    命令 < 文件1 > 文件2	将文件1作为命令的标准输入并将标准输出到文件2
    wc -w < 1.txt	把1.txt中的内容交给wc统计
    
    • 输出重定向
    命令 > 文件	将标准输出重定向到一个文件中(清空原有的文件数据)
    命令 2> 文件	将错误输出重定向到一个文件中(清空原有文件的数据)
    命令 >> 文件	将标准输出重定向到一个文件中(追加到原有的内容后面)
    命令 2>> 文件	将错误输出重定向到一个文件中(追加到原有的内容后面)
    命令 >> 文件 2>&1	将标准输出与错误输出共同写入到文件中(追加到原来的内容后面)
    命令 &>> 文件	同上,将标准输出与错误输出共同写入到文件中(追加到原来的内容后面)
    

    管道命令符

    • | 将前一个命令原本要输出到屏幕的标准正常数据当作最后一个命令的标准输入
    grep "/sbin/nologin" /etc/passwd | wc -l	统计被限制登陆用户的数量
    ls -l /etc | more	用翻页的形式查看/etc下的文件列表信息
    echo "111111" | passwd --stdin root	一条命令修改root用户密码
    

    命令行的通配符

    *	匹配多个字符
    	?	匹配单个字符
    	[0-9]	匹配0-9之间的单个数字字符
    	[abc]	匹配a,b,c单个字符
    	[a-z]	匹配a-z的单个字符
    

    常用转义字符

    	反斜杠:后面的变量变为单纯的字符串
    ''	单引号:转义其中所有的变量为单纯的字符串
    ""	双引号:保留其中的变量属性,不进行转义处理
    ``	反引号:把其中的命令执行后返回给结果
    
    mrhonest = 5	定义变量
    echo "$mrhonest"	输出变量
    echo '$mirhonest'	输出$mrhonest
    

    重要的环境变量

    HOME	用户的主目录
    SHELL	用户在使用的shell解释器名称
    HISTSIZE	输出的历史命令记录条数
    HISTFILESIZE	保存的历史命令记录条数
    MAIL	邮件保存路径
    LANG	系统语言,语系名称
    PANDOM	生成一个随机数字
    PS1	Bash解释权的提示符
    PATH	定义解释器搜索用户执行的命令路径
    EDITOR	用户默认的文本编辑器
    
    WORKDIR=/HOME/WORK	创建变量
    export WORKDIR	提升为全局变量
    

    VIM与Shell命令脚本

    vim文本编辑器

    • 命令模式
    i	输入模式,光标当前位置
    a	输入模式,光标后以为
    o	输入模式,光标下面插入一个空行
    ESC	退出写入模式
    
    • 输入模式
    dd	删除(剪切)光标所在的整行
    5dd	删除(剪切)光标开始的5行
    yy	复制光标所在的整行
    5yy	复制光标处开始的5行
    n	显示搜索命令定位到的下一个字符串
    N	显示搜索命令定位到的上一个字符串
    u	撤销上一步的操作
    p	将之前删除(dd)或复制(yy)过的数据粘贴到光标后面
    
    • 末行模式
    :w	保存
    :q	退出
    :q!	强制退出(放弃对文档的修改内容)
    :wq!	强制保存退出
    :set nu	显示行号
    :set nonu	不显示行号
    :命令	执行该命令
    :整数	跳转到该行
    :s/one/two	将光标所在行的第一个one替换成two
    :s/one/two/g	将光标所在行的所有one替换成two
    :%s/one/two/g	将全文中的所有one替换成two
    ?字符串	在文本中从下至上搜索该字符串
    /字符串	在文本中从上到下搜索该字符串
    

    配置Yum软件仓库

    编写Shell脚本

    • 运行

      bash shell.sh 执行sh脚本

    • 接收用户的参数

    $0	当前shell脚本程序的名称
    $#	参数的总数
    $*	所有位置的参数值
    %?	显示上一次命令的执行返回值
    $N	第N个参数的值
    
    • 判断用户的参数

      测试语句格式 [ 条件表达式 ] 条件表达式两边均有一个空格

    文件测试语句

    -d	测试文件是否为目录类型
    -e	测试文件是否存在
    -f	判断是否为一般文件
    -r	测试当前用户是否具有权限读取
    -w	测试当前用户是否具有权限写入
    -x	测试当前用户是否具有权限执行
    

    逻辑测试语句

    &&	与
    ||	或
    !	非
    

    整数值比较语句
    ** 0 = true ** ** 非0的数字 = false **

    -eq	是否等于
    -ne	是否不等于
    -gt	是否大于
    -lt	是否小于
    -le	是否等于或小于
    -ge	是否大于或等于
    

    字符串比较语句

    =	比较字符串内容是否相同
    !=	比较字符串内容是否不同
    -z	判断字符串内容是否为空
    

    流程控制语句

    • if条件测试语句
      ​```shell

      if [ 表达式 ]
      then

      如果表达式成立,执行
      fi

    ​```shell
    if	[ 表达式 ]
    then
    	如果表达式成立,执行
    esle
    	表达式不成立时,执行
    fi
    
    if	[ 表达式 ]
    then
    	如果表达式成立,执行
    elif [ 表达式 ]
    	表达式成立时,执行
    else
    	以上两个表达式均不成立时,执行
    fi
    
    • for条件循环语句
    for 变量名 in 取值列表
    do
    	命令序列
    done
    
    • while条件循环语句
    while 条件测试操作
    do
    	命令序列
    done
    
    • case条件测试语句
    case 变量值 in
    模式1
    	命令序列1
    ;;
    模式2
    	命令序列2
    ;;
    	……
    *)
    esac
    

    计划任务服务程序

    • 一次性计划任务:今晚23:30开启网站服务
    at 23:30	设定任务时间
    at>systemctl restart httpd	设定任务详情
    at>Ctrl+D结束编写
    at -l	查看任务
    atrm 任务序号	删除任务
    

    echo "systemctl reatart httpd" | at 23:30 一条命令建立任务

    • 周期性计划任务:每周一03:25分把/home/wwwroot目录打包备份为bacaup.tar.gz
    crontab -e	创建,编辑周期任务
    crontab -l	查看任务
    crontab -u	编辑他人的计划任务
    

    分,时,日,月,星期,命令 任务格式
    8,9,12 设置月份,表示8月,9月,12月
    12-15 设置日期,表示12日到15日
    /2 执行任务的间隔时间,每隔2分钟执行一次
    计划任务中的"分"字段必须有数值,不能空或者是
    号,"日"和"星期"字段不能同时使用

    usage:  crontab [-u user] file
            crontab [-u user] [ -e | -l | -r ]
                    (default operation is replace, per 1003.2)
            -e      (edit user's crontab)
            -l      (list user's crontab)
            -r      (delete user's crontab)
            -i      (prompt before deleting user's crontab)
            -s      (selinux context)
    

    */2 * * * * echo date >> $HOME>test.txt 每隔2分钟输出时间到文件

    用户身份与文件权限

    用户身份与能力

    管理员UID为0
    系统用户UID为1-999
    普通用户UID从1000开始
    用户组号码:GID

    useradd

    useradd [选项] 用户名	创建新用户
    -d	指定用户的家目录(默认为/home/username)
    -e	账号到期时间,格式为:YYYY-MM-DD
    -u	指定用户的默认UID
    -g	指定一个初始的已存在的用户基本组
    -G	指定一个或多个扩展用户组
    -s	指定该用户默认的shell解释器
    

    groupadd

    `groupadd [选项] 组名	创建用户组`
    

    usermod

    usermod [选项] 用户名	修改用户属性
    -c	填写用户账户的备注信息
    -d -m	-d和-m连用,可重新指定用户的家目录并自动吧旧的数据转移过去
    -e	账户到期时间,格式为:YYYY-MM-DD
    -g	变更所属用户组
    -G	变更扩展用户组
    -L	锁定该用户禁止其登陆系统
    -U	解锁用户,允许登陆系统
    -s	变更默认终端
    -u	修改用户的UID
    

    passwd

    passwd [选项] [用户名]	修改用户密码,过期时间,认证信息等 
    -l	锁定用户,禁止登陆
    -u	解锁用户,允许登陆
    --stdin	允许通过标准输入修改用户密码,如 echo "newpassword" | passwd --stdin username
    -d	用户可用空密码登陆系统
    -e	强制用户在下次登录时修改密码
    -S 显示用的密码是否呗锁定,以及密码所采用的加密算法名称
    

    userdel

    userdel [选项] 用户名	删除用户
    -f	强制删除用户
    -r	同时删除用户及家目录
    

    文件权限与归属

    代表符号 权限 对文件的含义 对目录的含义
    r 可以查看文件内容 可以列出目录中的内容
    w 可以修改文件内容 可以在目录中创建,删除文件
    x 执行 可以执行文件 可以进入目录
    • : 普通文件
      d : 目录文件
      l : 链接文件
      b : 块设备文件
      c : 字符设备文件
      p : 管道文件
    • 权限分配 文件所有者 文件所属组 其他用户

    r:4 读
    w:2 写
    x:1 执行

    • SUID

    SUID是一种对二进制程序进行设置的特殊权限,可以让二进制程序的执行者临时拥有属主的权限(仅对拥有执行权限的二进制程序有效)

    • SGID

    让执行者临时拥有属组的权限(对拥有执行权限的二进制程序进行设置)
    在某个目录中创建的文件自动继承该目录的用户组(只可以对目录进行设置)

    • SBIT

    设置SBIT(粘滞位|保护位),可确保用户只能删除自己的文件
    chmod -R o+t 文件|文件夹 设置SBIT特殊权限

    chmod

    -R 递归

    chmod [参数] 权限 文件或目录名	设置文件或目录权限
    chmod -R o+t 文件|文件夹	设置SBIT特殊权限
    chmod [{ugoa}{+-=}{rwx}] 文件或目录
    chmod u+w,g-w,o=rwx 文件或文件名
    chmod mode=777 文件或目录
    

    chown

    -R 递归
    只有管理员才可以执行

    chown [参数] 所有者:所属组 文件或目录名	设置文件或目录的所有者和所属组
    chown username 文件或目录	将目录的所有者改为username
    

    chgrp

    chgrp [参数] 用户组 文件或目录	更改文件或目录的所属组
    -R 递归
    

    umask

    默认新建的文件(非目录)没有x执行权限

    umask [参数] [缺省权限值]	显示,设置文件的缺省权限
    -S	以rwx形式显示
    ## 文件的隐藏属性
    + chattr
    ​```shell
    chattr [+|-][参数] 文件	设置文件的隐藏权限
    i	无法对文件进行修改,若对美剧设置了该参数,则仅能修改其中的子文件内容,不能新建或删除文件
    a	仅允许补充(追加)内容,无法覆盖/删除内容(Append Omy)
    S	文件内容在变更后立即同步到硬盘(sync)
    s	彻底从硬盘中删除,不可恢复(用0填充原文件所在硬盘区域)
    A	不再修改这个文件或目录的最后访问时间(atime)
    b	不再修改文件或目录的存取时间
    D	检查压缩文件中的错误
    d	使用dump命令备份时忽略本文件/目录
    c	默认将文件或目录进行压缩
    u	当删除该文件后依然保留其在硬盘中的数据,方便日后恢复
    t	让文件系统支持尾部合并(tail-merging)
    X	可以直接访问压缩文件中的内容
    
    • lsattr

      lsattr [参数] 文件 显示文件的隐藏权限

    文件访问控制列表

    • setfacl

      setfacl [参数] 文件名称 管理文件的ACL(访问控制权限)规则
      -R 递归设置,针对目录
      -m 针对普通文件
      -b 删除ACL规则
      setcacl -Rm u:mrhonest:rwx /root 设置mrhonest对root目录的rwx权限
      dr-wrwx---+ +表示该文件已经设置了ACL

    + getfacl
    `getfacl 文件名称`	显示文件上设置的ACL信息
    ## su和sudo
    + su
    `su [-] 用户名`	切换用户身份,-代表把环境表里信息也变更为新用户的相应信息
    + sudo
    ​```shell
    sudo [参数] 命令名称	给普通用户提供额外的权限来完成原本root管理员才能完成的任务
    -h	列出帮助信息
    -l	列出当前用户可执行的命令
    -u用户名或UID值	以指定的用户身份执行命令
    -k	情况密码的有效时间,下次执行sudo时需要再次进行密码认证
    -b	在后台执行指定的命令
    -p	更改询问密码的提示语
    
    • visudo

    存储结构与磁盘划分

    常见的目录名称以及相应内容

    • FHS
    • 绝对路径 以根目录开始
    • 相对路径 以当前路径开始

    /boot 开机所需文件--内核,开机菜单以及所需配置文件等
    /dev 以文件形式存放任何设备与接口
    /etc 配置文件,系统内所有采用默认安装方式的服务的配置文件全部保存在这个目录中,如用户账户密码,服务启动脚本,常用服务的配置文件等
    /home 用户家目录
    /bin 存放单用户模式下还可以操作的命令,所有用户均可以执行
    /sbin 保存和系统环境设置相关的命令,只有超级用户可以使用,部分命令普通用户允许查看
    /usr/bin 存放系统命令的目录,所有用户都可以执行,这些命令和系统启动无关,但是在单用户模式下不能执行
    /usr/sbin 存放根文件系统不必要的系统管理命令,例如多数服务程序
    /lib 开机过程中需要的命令,系统调用的函数库保存位置
    /media 用于挂在设备文件的目录,建议挂载软盘,光盘
    /opt 放置第三方的软件,不建议使用,建议安装到/usr/local中
    /root 系统管理员的家目录
    /srv 一些网络服务的数据文件目录,一些系统服务启动后,在这个目录保存所需的数据
    /tmp 任何人均可使用的"共享"临时目录
    /proc 虚拟文件系统,列入系统内核,进程,外部设备及网络状态等
    /usr/local 用户自行安装的软件
    /usr/sbin linux系统开机时不会使用到的软件/命令/脚本
    /usr/share 帮助与说明文件,也可以放置共享文件
    /var 动态数据保存目录,主要存放动态变化的文件,如日志等
    /lost+found 当文件系统发生错误时,将一些丢失的文件片段存在在这里,这个目录只在每个分区中出现
    /mnt 挂载目录,建议挂载U盘,移动硬盘等
    /misc 挂载目录,建议挂载NFS服务的共享目录
    /proc 虚拟文件系统,存在内存中,存在硬件信息
    /sys 虚拟文件系统,存放内核相关信息
    /usr 系统软件资源目录,类似c:/windows文件夹

    物理设备的命名规则

    IDE设备 /dev/hd[a-d]
    SCSI/STAT/U盘 /dev/sd/[a-p]
    软驱 /dev/fd[0-1]
    打印机 /dev/lp[0-15]
    光驱 /dev/cdrom
    鼠标 /dev/mouse
    磁带机 /dev/st0或/dev/ht0

    • 主分区或扩展分区的编号从1开始到4结束
    • 逻辑分区从编号5开始

    文件系统与数据资料

    Ext3 是一款日志文件系统,能够在系统异常宕机时避免文件系统资料丢失,并能自动修复数据的不一致与错误
    Ext4 Ext3的改进版本,支持的存数容量高达1EB,能够有无限多的子目录,Ext4文件系统能够批量分配block块,提高了读写效率
    XFS 是一种高性能的日志文件系统,最大支持存储容量18EB

    • super block 硬盘地图

    挂载硬件设备

    • mount
    mount 文件系统 挂载目录		挂载文件系统
    -a	挂载所有在/etc/fstab中定义的文件系统
    -t	指定文件系统的类型
    mount /dev/sdb2 /backup	把设备/dev/sdb2挂载到/backup目录
    
    • etc/fstab

      ** 设备文件 挂载目录 格式类型 权限选项 是否备份 是否自检**

    设备文件 一般为设备的路径+设备名称,也可以写唯一的识别码(UUID)
    挂载目录 指定要挂载到的目录,需挂载前创建好
    格式类型 指定文件系统的格式,如Ext3,Ext4,XFS,SWAP,iso9600(光盘设备)等
    权限选项 若设备为defaults,则默认权限问:rw,suid,dev,exec,auto,mouser,async
    是否备份 若为1则开机后使用dump进行磁盘备份,为0则不备份
    是否自检 若为1则开机后自动进行紫盘自检,为0则不自检

    • umount

      umount [挂载点/设备文件] 撤销已挂载设备文件,如umount /dev/sdb2

    添加硬盘设备

    • fdisk
    fdisk [磁盘名称]	管理磁盘分区
    m		查看全部可用的参数
    n		添加新的分区
    d		删除某个分区信息
    l		列出所有可用的分区类型
    t		该表某个分区的类型
    p		查看分区信息
    w		保存并退出
    q		不保存直接退出
    
    • mkfs.*

      mkfs.* 磁盘名称 按照*的文件系统格式格式化磁盘

    • du

    du [选项] [文件]	查看文件数据占用量
    du -sh /*			查看系统根目录下所有文件占用多大的硬盘空间
    

    添加交换分区

    mkswap 目录名		格式化交换分区
    swapon 目录名		将SWAP分区挂载到系统中
    

    磁盘容量配额

    • quota

    软限制 当达到软限制时会提示用户,但仍允许用户在限定的额度内继续使用
    硬限制 当达到硬限制时会提示用户,并强制终止用户的操作

    • xfs_quota
    xfs_quota [参数] 配额 文件系统
    -c	以参数的形式设置要执行的命令
    -x	专家模式
    xfs_quota -x -c 'limit bsoft=3m bhard=6m isoft=2 ihard=6 tom' /boot	设置用户tom对/boot目录容量的配额:软限制3MB,硬限制6MB,创建文件数量的软限制3个,硬限制6个
    
    • edquota
    edquota [参数] [用户]	编辑用户的quota配额限制
    -u	针对用户设置
    -g	针对用户组设置
    

    软链接 硬链接

    硬链接(hard link) "指向源文件inode的指针",不能跨分区对目录文件进行链接
    软链接(符号链接[symbolic link]) 仅包含链接文件的路径名,可跨文件系统进行链接+ in

    in [选项] 目标 链接文件		创建链接文件
    -s		创建软链接"符号链接",不带-s参数默认创建硬链接
    -f		强制创建文件或目录链接
    -i		覆盖前询问
    -v		显示创建链接的过程
    

    使用RAID与LVM磁盘阵列技术

    RAIL(独立冗余磁盘列阵)

    RAID 0

    RAIL 0技术能够有效的提升硬盘数据的吞吐速度,但不具备数据备份和错误修复能力

    RAID 1

    将数据同时写入到多块硬盘设备上(镜像或备份),当其中某一块应硬盘发生故障后,一般立即自动以热交换的方式来恢复数据的正常使用

    RAID 5

    把硬盘设备的数据奇偶校验信息保存到其它硬盘设备中

    RAID 10

    RAID 1 + RAID 0的"组合体",该技术至少需要4块硬盘

    部署磁盘列阵

    • mdadm
    mdadm [模式] <RAID设备名称> [选项] [成员设备名称]	管理linux系统中的软件RAID硬盘列阵
    -a	检测设备名称
    -n	指定设备数量
    -l	指定RAID级别
    -C	创建
    -v	显示过程
    -f	模拟设备损坏
    -r	移除设备
    -Q	查看摘要信息
    -D	查看详细信息
    -S	停止RAID磁盘列阵
    
    mdadm -Cv /dev/md0 -a yes -n 4 -l 10 /dev/sdb /dev/sdc /dev/sdd /dev/sde	-C代表创建一个RAID阵列卡,-v显示创建过程,后面跟上设备名/dev/md0 ,-a yes代表自动创建设备文件,-n4 代表使用4块硬盘来部署这个RAID磁盘列阵,-l 10代表使用RAID 10方案,最后加上4块硬盘设备的名称
    mkfs.ext4 /dev/md0	将制作好的RAID磁盘列阵格式化为ext4格式
    mkdir /RAID	建立目录,创建挂载点
    mount /dev/md0 /RAID	将硬盘设备进行挂载
    mdadm -D /dev/md0	查看磁盘列阵的相信信息
    echo "dev/md0 /RAID ext defaults 0 0" >> /etc/fatab	将挂载信息写入配置文件
    

    损坏磁盘列阵及修复

    mdadm /dev/md0 -f /dev/sdb 在磁盘阵列中移除/dev/sdb磁盘

    磁盘列阵+备份盘

    mdam -Cv /dev/md0 -n 3 -l 5 -x 1 /dev/sdb /dev/sdc /dev/sdd /dev/sde	创建RAID 5磁盘列阵+备份盘 ,-n 3代表创建这个列阵所需的硬盘数,-l 5代表列阵的级别,-x 1代表有一块备份盘
    mlfs.ext4 /dev/md0	格式化
    

    LVM(逻辑卷管理器)

    部署逻辑卷

    常用LVM部署命令

    功能/命令 物理卷管理 卷组管理 逻辑卷管理
    扫描 pvscan vgscan lvscan
    建立 pvcreate vgcreate lvcreate
    显示 pvdisplay vgdisplay lvdisplay
    删除 pvremove vgremove lvremove
    扩展 vgextend lvextend
    缩小 vgreduce lvreduce
    pvcreate /dev/sdb /dev/sdc	让新添加的凉快硬盘设备支持LVM技术
    vgcreate storage /dev/sdb /dev/sdc	把两块硬盘设备加入到storage卷组中
    lvcreate -n -vo -l 37 storage	切割出一个约为150MB的逻辑卷设备 -l 37等于-L 150M
    msfs.ext4 /dev/storage/vo	把生成好的逻辑卷格式化
    mount /dev/storage/vo 目录名	挂载
    

    扩容逻辑卷

    扩容前记得卸载设备和挂载点的关联

    umount	目录名		卸载挂载
    lvextend -L 290M /dev/storage/vo	将vo扩展至290MB
    e2fsck -f /dev/storage/vo	检查硬盘完整性
    resize2fs /dev/storage/vo	重置硬盘容量
    mount -a	重新挂载即可
    

    缩小逻辑卷

    umount 目录名	卸载挂载
    e2fsck -f /dev/storage/vo	检查硬盘完整性
    resize2fs /dev/storage/vo 128M	把逻辑卷vo的容量减小到128MB
    mount -a	挂载
    

    逻辑卷快照

    快照的容量必须等于逻辑卷的容量
    快照仅一次有效,一旦执行怀远操作后则会立即自动删除

    vgdisplay	查看卷组的信息
    lvcreate -L 120M -s -n SNAP /dev/storage/vo	-s参数生产快照,-L指定大小
    umount 目录名	先卸载挂载,此部是为了验证是否能恢复
    lvconvert --merge /dev/storage/SNAP	恢复vo的快照
    monut -a	重新挂载
    

    删除逻辑卷

    umonut 目录名	卸载挂载
    vim /etc/fstab	编辑fatab文件,删除配置文件中永久生效的设备参数(挂载的设备)
    lvremove /dev/storage/vo	删除逻辑卷设备,需要输入y来确认操作
    vgremove storage	删除卷组,此处只写卷组名称即可,不需要设备的绝对路径
    pvremove /dev/sdb /dev/sdc	删除物理卷设备
    

    iptables与firewalld防火墙

    iptables

    策略与规则链

    在进行路由选择前处理数据包(PRERPUTING)
    处理流入的数据包(INPUT)
    处理流出的数据包(OUTPUT)
    处理转发的数据包(FORWARD)
    在进行路由选择后处理数据包(POSTROUTING)

    • ACCEPT 允许流量通过
    • REJECT 拒绝流量通过,在拒绝流量后在回复一条"您的信息收到,但是被扔掉",发送方会看到端口不可达的响应
    • LOG 记录日志信息
    • DROP 拒绝流量通过(将流量直接丢弃,并不响应它),发送方显示响应超时,默认规则链的拒绝动作只能是这个

    iptables中的基本命令参数

    -P	设置默认策略
    -F	清空规则链
    -L	查看规则链
    -A	在规则链的末尾加入新规则
    -I num	在规则链的头部加入新规则
    -D num	删除某一条规则
    -s	匹配来源地址IP/MASK,加叹号"!"表示除这个IP外
    -d	匹配目标地址
    -i 网卡名称	匹配从这块网卡流入的数据
    -o 网卡名称	匹配从这块网卡流出的数据
    -p	匹配协议,如TCP,UDP,ICMP
    --dport num	匹配目标端口号
    --sport num	匹配来源端口号
    
    iptables -L		查看防洪墙规则链
    iptables -F		清空已有的防火墙规则链
    iptables -P INPUT DROP	把INPUT规则链的默认策略设置为拒绝
    iptables -I INPUT -s 192.168.10.0/24 -p tcp --dport 22 -j ACCEPT	将INPUT规则链设置为只允许指定网段的主机访问本机的22端口,在INPUT默认规则上添加
    iptables -I INPUT -p tcp --dport 12345 -j REJECT	禁止所有人通过tcp协议访问本机12345端口	
    iptables -I INPUT -p udp --dport 12345 -j REJECT	禁止所有人通过udp协议访问本机12345端口 
    iptables -A INPUT -p tcp --dport 1000:102 -j REJECT	向INPUT规则链中添加拒绝所有主机访问本机1000-1024端口的策略
    service iptables save	防火墙规则永久生效(重启后也不失效)
    

    firewalld

    firewalld中常用的区域名称及策略规则

    区域 默认策略规则
    trusted 允许所有的数据包
    home 拒绝流入的流量,除非与流出的流量相关,而如果流量与ssh,mdns,ipp-client,amba-client与dhcpv6-client服务相关,则允许流量
    internal 等同于home区域
    work 拒绝流入的流量,除非与流出的流量相关,而如果流量与ssh,ipp-client,dhcpv6-client服务相关,则允许流量
    public 拒绝流入的流量,除非与流出的流量相关,而如果流量与ssh,dhcpv6-client服务相关,则允许流量
    external 拒绝流入的流量,除非与流出的流量相关,而如果流量与ssh服务相关,则允许流量
    dmz 拒绝流入的流量,除非与流出的流量相关,而如果流量与ssh服务相关,则允许流量
    block 拒绝流入的流量,除非与流出的流量相关
    drop 拒绝流入的流量,除非与流出的流量相关

    终端管理工具

    firewalld-cmd命令中使用的参数以及作用

    参数 作用
    --get-default-zone 查询默认的区域名称
    --get-default-zone=<区域名称> 设置默认的区域,使其永久生效
    --get-zones 显示可用的区域
    --ger-services 显示预先定义的服务
    --get-active-zones 显示当前正在使用的区域与网卡名称
    --add-source= 将源自此IP或子网的流量导向指定区域
    --add-interface=<网卡名称> 将源自该忘啦的所有流量都导向某个指定区域
    --remove-source= 不再将源自此IP或子网的流量导向某个指定区域
    --change-interface=<网卡名称> 将某个网卡与区域进行关联
    --list-all 显示当前区域的网卡配置参数,资源,端口以及服务等信息
    --list-all-zones 显示所有区域的网卡怕配置参数,资源,端口以及服务等信息
    --add-service=<服务名> 设置默认区域允许该服务的流量
    --add-port=<端口号/协议> 设置默认区域允许该端口的流量
    --remove-service=<服务名> 设置默认区域不再允许该服务的流量
    --remove-port=<端口号/协议> 设置默认区域不再允许该端口的流量
    --reload 让"永久生效"的配置规则立即生效,并覆盖当前的配置规则
    --panic-on 开启应急状况模式
    --panic-off 关闭应急状况模式
    firewalld-cmd --get-default-zone	查看firewalld服务当前所使用的区域
    firewalld-cmd --get-zone-of-interface=eno16777728	查看eno16777728网卡在firewalld服务中的区域
    firewalld-cmd --permanent --zone=external --change-interface=eno16777728	把friewalld服务中的eno16777728网卡的默认区域修改成external,并在系统重启后剩下
    

    图形管理工具

    iptables不错

    服务的访问控制列表

    • TCPWrappers

    使用ssh服务管理远程主机

    配置网络服务

    配置网络参数

    • nmtui

    创建网络会话

    • nmcli

    绑定两块网卡

    远程控制服务

    配置sshd服务

    基于口令的验证
    基于密钥的验证
    sshd服务配置文件中包含的参数以及作用/etc/ssh/sshd_config
    |参数|作用|
    |-----|-----|
    |port 22|默认的sshd服务端口|
    |listenAddress 0.0.0.0|设置sshd服务器监听的ip地址|
    |protocol 2|ssh协议的版本号|
    |HostKey /etc/ssh/ssh_host_key|ssh协议版本为1时,DES私钥存放的位置|
    |HostKey /etc/ssh/ssh_host_res_key|ssh协议版本为2时,RSA私钥存放的位置|
    |HostKey /etc/ssh/ssh_host_dsa_key|ssh协议版本为2时,DEA私钥存放的位置|
    |PermitRootLogin yes|是否允许root管理员直接登陆|
    |StrictModes yes|当远程用户的私钥改变时直接拒绝连接|
    |MaxAuthTries 6|嘴打密码尝试次数|
    |MaxSessions 10|最大终端数|
    |PasswordAuthentication yes|是否允许密码验证|
    |PermitEmptyPasswords no|是否允许空密码登陆|
    ssh [参数] ip地址 ssh连接

    安全密钥验证

    ssh-keygen	在客户端生成"密钥树"
    ssh-copy-id 服务器ip	把客户端主机中生产的公钥文件传送至远程主机
    

    远程传输命令

    • scp
      scp [参数] 本地文件 远程账户@远程IP地址:远程目录
      |参数|作用|
      |---|---|
      |-v|显示详细的连接进度|
      |-p|指定远程主机的sshd端口|
      |-r|用于传输文件夹|
      |-6|使用IPV6协议|
    scp /root/q.txt 192.168.1.1:/home	将本地q.txt传到192.168.1.1的home目录,使用远程的root账号
    scp 192.168.1.1:/etc/passwd /root	将远程的passwd文件下载到本机root目录下
    

    不间断会话服务

    • screen
      |参数|作用|
      |--|--|
      |-S|新建会话|
      |-d|将会话"离线"|
      |-r|恢复指定会话|
      |-x|恢复所有会话|
      |-ls|查看所有会话|
      |-wipe|删除无法使用的会话|
      |exit|退出会话|

    Apache服务部署静态网站

    配置服务文件参数

    配置文件的名称 存放位置
    服务目录 /etc/httpd
    主配置文件 /etc/httpd/conf/httpd.conf
    网站数据目录 /var/www/httml
    访问日志 /var/log/httpd/access_log
    错误日志 /var/log/httpd/error_log

    注释行信息
    全局配置
    区域配置
    |参数|用途|
    |----|----|
    |ServerRoot|服务目录|
    |ServerAdmin|管理员邮箱|
    |User|运行服务的用户|
    |Group|运行服务的用户组|
    |ServerName|网站服务器的域名|
    |DocumentRoot|网站数据目录|
    |Directory|网站数据目录的权限|
    |Listen|监听的ip地址与端口|
    |DirectoryIndex|默认的索引页页面|
    |ErrorLog|错误的日志文件|
    |Customlog|访问日志文件|
    |Timeout|网页超市时间,默认为300秒|

    个人用户主页功能

    htpasswd -c /etc/httpd/passwd mrhonest	生成范文mrhonest个人主页所需要的密码
    配置401认证	见书228页
    

    虚拟主机功能

    vim /etc/httpd/conf/httpd.conf 编辑配置文件,添加虚拟主机,格式如下:

    <VirtualHost 192.168.1.1:80>
    DocumentRoot /home/wwwrorr/www1
    ServerName www.mrhonest.com
    <Directory /home/wwwroot/www1>
    AllowOVerride None
    Require all granted
    </VirtualHost>
    

    基于主机域名

    基于端口号

    Apache的访问控制

    使用vsftpd服务传输文件

    文件传输协议

    主动模式:ftp服务主动向客户端发起连接请求
    被动模式:ftp服务器等待客户端发起连接请求(ftp的默认工作模式)
    vsftpd服务程序常用的参数以及作用
    |参数|作用|
    |----|----|
    |listen=[YSE|NO]|是否以独立运行的方式监听服务|
    |listen_address=IP|设置要监听的IP地址|
    |listen_port=21|设置ftp服务的监听端口|
    |download_enable=[YES|NO|是否允许下载文件|
    |userlist_enable=[YES|NO] userlist_deny=[YES|NO]|设置用户列表为"允许"还是"禁止"操作|
    |max_clients=0|最大客户端连接数,0为不限制|
    |max_per_ip=0|同一IP地址的最大连接数,0为不限制|
    |anonymous_enable=[YES|NO]|是否允许匿名用户上传文件|
    |anon_upload_enable=[YES|NO]|是否允许匿名用户上传文件|
    |anon_umask=022|匿名用户上传文件的umask值|
    |anon_root=/var/ftp|匿名用户的ftp根目录|
    |anon_mkdir_write_enable=[YES|NO]|是否允许匿名用户创建目录|
    |anon_other_write_enable=[YES|NO]|是否开放匿名用户的其它写入权限(包括重命名,删除等操作权限)|
    |anon_max_rate=0|匿名用户的最大传输速率(字节/秒),0为不限制|
    |local_enable=[YES|NO]|是否允许本地用户登陆|
    |local_umask=022|本地用户上传文件的umask值|
    |locao_root=/var/ftp|本地用户的ftp目录|
    |chroot_local_user=[YES|NO]|是否将用户权限禁锢在ftp目录,以确保安全|
    |local_max_rate=0|本地用户最大的传输速率(字节/秒),0为不限制|

    vsftpd服务

    匿名开放模式
    本地用户模式
    虚拟用户模式

    匿名开放模式

    默认目录就/var/ftp目录
    245页

    本地用户模式

    /etc/vsftpd/user_list 和 /etc/vsftpd/ftpusers 里存放着禁止登陆的用户名
    默认目录是用户家目录
    249页

    虚拟用户模式

    虚拟用户数据文件需要创建 奇数行为用户名,偶数行为密码
    252页

    vim /etc/vsftpd/user.txt
    db_load -T -t hash -f user.txt user.db	将用户文件内容hash加密
    useradd -d 虚拟用户ftp目录 -s /sbin.nologin 虚拟用户名	创建一个禁止登陆的用户,指定其家目录(ftp目录)
    

    简单文件传输协议

    • tftp

    UDP协议 无需认证
    tftp ip 建立tftp连接
    |命令|作用|
    |----|---|
    |?|帮助信息|
    |put|上传文件|
    |get|下载文件|
    |verbose|显示详细的处理信息|
    |status|显示当前的状态信息|
    |binary|使用二进制进行传输|
    |ascii|使用ASCII码进行传输|
    |timeout|设置重传的超时时间|
    |quit|退出|
    256页

    使用samba或NFS实现文件共享

    Samba文件共享服务

    不同操作系统之间文件共享
    Samba服务程序中的参数以及作用
    |[global]|参数|作用|
    |----|----|----|
    ||workgroup=MYGROUP|工作组名称|
    ||server string = Samba Server Version %v|服务器介绍信息,参数%v为显示SMB版本号|
    ||log file=/var/log/samba/log.%m|定义日志文件的存放位置与名称,参数%m为来访的主机名|
    ||max log size=50|定义日志文件的最大容量为50KB|
    ||security=user|安全验证的方式,总共分4种, :
    share:来访主机无需验证口令
    user:需验证来访主机提供的口令后才可以访问
    server:使用独立的远程主机验证来访主机提供的口令(集中管理账户)
    domain:使用域控制器进行身份验证|
    ||passdb backed=tdbsan|定义用户后台的类型,共3种:
    smbpasswd:使用smbpasswd命令为系统用户设置samba服务程序的密码
    tdbsam:穿件数据库文件并使用pdbedit命令建立samba服务程序的密码
    ldapsam:基于LDAP服务进行账户验证|
    ||load printers=yes|设置在samba服务启动时是否共享打印机设备|
    ||cups options=raw|打印机的选项|
    |[homes]||共享参数|
    ||comment=Home Directories|描述信息|
    ||browseable=no|指定共享信息是否在"网上邻居"中可见|
    ||writable=yse|定义是否可以执行写入操作,与"read only"相反|
    |[printers]||打印机共享参数|

    配置共享资源

    用于设置Samba服务程序的参数以及作用:/etc/samba/smb.conf

    参数 作用
    [database] 共享名称为database
    comment = Do not arbitrarily modify the database file 警告用户不要随意修改数据库
    path = /home/database 共享目录为/home/database
    public = no 关闭"所有人可见"
    writable = yes 允许写入操作
    pdbedit [选项] 账户		管理SMB服务程序的账户信息数据库
    -a 用户名		建立Samba账户
    -x 用户名		删除samba账户
    -L		列出账户列表
    -Lv		列出账户详细信息的列表
    pdbedit -a -u mrhonest		为系统账号mrhonest创建smb账号
    mkdir /home/database	创建用于共享资源的文件目录
    chown -Rf mrhonest:mrhonest /home/database	设置共享资源的文件目录的所有者和所有组
    264页
    

    windows访问文件共享服务

    \ip 连接文件共享服务器

    linux访问文件共享服务

    268页

    yum install cifs-utils	安装cifs-utils
    vim auth.smb	编辑配置文件
    username=mrhonest	目标用户名
    password=222222		目标密码
    domain=MUGROUP		目标所在组
    chmod 600 auth.smb	由于密码明文,将文件设置只有root可以读写
    mkdir /localdatabae 本机建立用于挂载目标的目录
    vim /etc/fstab		编辑配置文件
    //目标ip/databse /localdatabase cifs credenttials=root/auth.smb 0 0	写入自动挂载信息
    

    NFS(网络文件系统)

    linux之间文件共享
    yum install nfs-utils 安装NFS服务
    NFS配置文件参数:/etc/exports,格式"共享目录的路径 允许放的NFS客户端(默认权限参数)"
    |参数|作用|
    |----|----|
    |ro|只读|
    |rw|读写|
    |root_squash|当NFS客户端以root管理员访问时,映射为NFS服务的的匿名用户|
    |no_root_squash|当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员|
    |all_squash|无论NFS客户端使用什么账户访问,均映射为NFS服务器的匿名文虎|
    |sync|同时将数据写入到内存与硬盘中,保证不丢失数据|
    |async|优先将数据保存到内存,然后在写入硬盘,这样效率更高,但可能会丢失数据|

    vim /etc/exports
    /nfsfile 192.168.1.*(rw,sync,root_squash)	//IP地址与权限之间没有空格
    systemctl restart rpcbind	//nfs需要RPC服务,用于将NFS服务器的ip地址和端口等信息发送给客户端
    systemctl enable rpcbind	将rpc(远程过程调用)服务加入开机自启
    systemctl start nfs-server	启动nfs服务
    systemctl enable nsf-server	加入开机自启
    

    客户端showmount命令可用的参数和作用

    参数 作用
    -e 显示NFS服务器的共享列表
    -a 显示本机挂载的文件资源情况
    -v 显示版本号
    -t 指定挂载的文件系统类型
    showmount -e 192.168.10.10	显示目标ip的共享列表
    mkdir /nfsfile		建立用于挂载目标共享文件的目录
    mount -t nfs 192.168.10.10:/nfsfile /nfsfile	将目标ip的共享目录nfsfile挂载到本地nfsfile目录
    ## autofs自动挂载服务
    挂载配置文件:/etc/auto.master格式:	"挂载目录	子配置文件" 详见273页
    ​```shell
    yum install autofs 
    vim /etc/auto.master	编辑配置文件
    /media /etc/iso.misc	编辑内容
    vim /etc/iso/misc		编辑子配置文件
    iso -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom		编辑内容
    systemctl enable sutofs		加入开机自启
    

    使用BIND提供域名解析服务

    DNS域名解析服务

    279页

    主服务器
    从服务器
    缓存服务器

    安装bind服务程序

    bind服务配置文件

    文件 文件名 作用
    主配置文件 /etc/named.conf 定义bind服务程序的运行
    区域配置文件 /etc/named.rfc1912.zones 保存域名和IP地址对应关系的所在位置
    数据配置文件目录 /var/named 保存域名和IP地址真是对应关系的数据配置文件

    yum install bind-chroot 安装bind和chroot扩展包

    正向解析实验

    281页

    反向解析实验

    283页

    部署从服务器

    285页

    安全的加密传输

    286页

    部署缓存服务器

    290页

    分离解析技术

    293页

    使用DHCP动态管理主机地址

    动态主机配置协议

    299页

  • 相关阅读:
    序列化 Serialization
    http soap关系
    sql 查询
    返回最后插入到标识列的值(scope_identity.ident_current.@@identity)
    匿名方法
    九、volatile与Java内存模型
    八、Java内存模型JMM
    十、CAS
    CUSTOM ROUTE CONSTRAINTS
    获取本地数据库
  • 原文地址:https://www.cnblogs.com/mrhonest/p/11610420.html
Copyright © 2011-2022 走看看