zoukankan      html  css  js  c++  java
  • 复习(二)

    区分服务
    音频
    视频

    基础命令:

    1.目录管理命令
    pwd
    cd
       ~
       -
       .
       ..
       路径:
           相对路径
           绝对路径:以/开头,唯一性
    mkdir  创建空目录 
        -p:递归创建目录树且该选项不会报错 
    rmdir  删除空目录   

    需求:定期备份某文件到指定目录/opt/backup
    rm -rf /opt/backup &>/dev/null
    mkdir -p /opt/backup

    ls
        list directory
        -a 列出所有文件,包括隐藏文件
        -l 长格式--long
        -h human,人性化,体现在文件大小使用K,M,G
        -d 目录本身
        -i inode
        后三个选项必须和-l组合使用
        -lhi
    du
        -s 目录本身
        -h human,人性化,体现在文件大小使用K,M,G    
        -a 查看占用的block,4K*block
        
    tree
        -L level指定目录的级别
        -d 只看目录

    2.文件管理命令

    cat
        查看文件全文,适合小文件
    more
        分页查看文件全文,无法反复看
    less
        分页查看文件全文,可反复看
    head
        从头看,默认10行
        -n 行号
        -c 字符
    tail
        从尾看起,默认10行
    file
        查看文件类型,ls -l    

    文件创建

    touch
         默认创建空文件
         刷新已存在文件或目录的时间戳

    文件管理

    cp
        -i 提示信息
        -r 递归、对目录进行操作
        -f 强制
        -p 保留源文件属性
        -t 源文件和目标位置替换
    mv
        -t 源文件和目标位置替换
    rm     
        -i 提示信息
        -r 递归、对目录进行操作
        -f 强制

    系统有别名,都加了-i
    cp和rm默认对-i是生效的
    mv默认对-i的效果出现在目标已存在
    1.取消系统定义的别名
    2.转义符
    3.-f,但是对cp不生效(系统别名中的-i优于-f)

    用户管理

    创建
        useradd
            -u,-g,G,-d,-s,-M *****
            -s:主要就是/bin/bash,sbin/nologin
            -M:创建不给家目录,如果用户已创建,直接删除家目录,效果一样
            -u:指定uid,centOS6中,默认500以上是普通用户,CentOS7中,默认1000以上是普通用户
            -g,G:指定基本组和附加组,可以是组名,也是gid,基本组只能有一个,其他都是附加组
            -d:如果需要在创建时指定家目录的路径,一定注意指定目录无需提前创建
    修改
        usermod
            -u,-g,-G,d,-s,-L,-U    
    迁移用户家目录,从/home/a5迁移到/a5        
    删除
        userdel
            -r: 删除家目录
    用户密码管理
        passwd    
            -d:清空密码
            -l:lock锁定密码
            -u:unlock解锁密码

    组管理

    groupadd
    groupmod
    groupdel
        删除的是基本组,必须保证组内没成员,才能删除
    gpasswd
        -a  给指定组添加指定用户
        -M  给指定组指定组成员
        -d  删除组成员
    
    基本组操作
         使用usermod -g
         修改/etc/passwd
    附加组
         使用usermod -G
         使用gpasswd
         修改/etc/passwd
    
    用户组管理其他命令
    chage
         -d
            -d 0 强制要求用户登陆后修改密码
         -m
         -M
         -W
         -E
         -I
    chsh    

    权限

    ugo
    user    rwx    421
    group   rwx    421
    other   rwx    421
    
    chmod ugo +-= rwx
    chmod nnn

    文件权限
    r:可以读取文件内容
    w:可以修改文件内容
    x:可以自动执行文件内容

    目录权限
    r: 可以使用ls列出目录内容
    w: 可以对目录里的文件进行增删改
    x: 可以使用cd进入目录

    特殊

    set uid   user  chmod u+s chmod 4nnn
    set gid   group chmod g+s chmod 2nnn
    sticky    other chmod 0+t chmod 1nnn

    功能:
    1.都是对x权限生效
    2.s-uid,让用户再执行可执行文件(命令、脚本)时,可以使用该文件所属用户的身份来执行,在user权限出现一个小写s
    3.g-uid,让用户再执行可执行文件(命令、脚本)时,可以使用该文件所属组的身份来执行,在group权限出现一个小写s
    4.sticky,对目录生效,可以让每个用户在该目录下只能处理自己创建的文件或目录,在other权限出现一个小写t
    5.如果文件没有x权限,那么通过ls -l展现出来的都是大写

    注意事项:特殊权限会有安全隐患,要控制,建议通过sudo提权来实现

    fcal
    文件访问控制列表
           基于在不灵活的传统ugo权限上来实现的
    比如现在有a,b,c三个用户,如果希望这三个用户的权限都不一样,传统的ugo权限满足不了

    getfacl
        获取文件访问列表
    setfacl
        设置文件访问列表    
        -m u:username:rw
        -m u:groupname:rw
    
    文件所属
        chown user[.:]group filename

    磁盘

    inode:描述文件的属性
        包括权限、所属、时间
    
    block:最小存储单元
    一个文件至少占用1个block
    一个block最多被一个文件占用
    block越大,分区越大
    默认:4k,4096B

    使用du -a,查看每个文件占用block
    查看磁盘block size和inode size

    EXT:
        tune2fs -l /dev/sda3
        dumpe2fs /dev/sda3
        Block size:
        Inode size:
    XFS:
    [root@xiaoming ~]# xfs_info /dev/sda1
    meta-data=/dev/sda1              isize=512    agcount=4, agsize=65536 blks
             =                       sectsz=512   attr=2, projid32bit=1
             =                       crc=1        finobt=0 spinodes=0
    data     =                       bsize=4096   blocks=262144, imaxpct=25
             =                       sunit=0      swidth=0 blks
    naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
    log      =internal               bsize=4096   blocks=2560, version=2
             =                       sectsz=512   sunit=0 blks, lazy-count=1
    realtime =none                   extsz=4096   blocks=0, rtextents=0
        

    修复磁盘

    EXT*:
    fsck -t ext4 -y /dev/sda3
    XFS:
    xfs_repair /dev/sda3

    案例:正在使用的文件丢失后,如何恢复

    1.查看文件被哪个进程使用
    [root@xiaoming ~]# lsof /var/log/messages
    COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF     NODE NAME
    rsyslogd 909 root    6w   REG  253,0   130328 17272680 /var/log/messages
    [root@xiaoming ~]# lsof | grep messages
    rsyslogd   909         root    6w      REG              253,0    130328   17272680 /var/log/messages
    in:imjour  909 1175    root    6w      REG              253,0    130328   17272680 /var/log/messages
    rs:main    909 1177    root    6w      REG              253,0    130328   17272680 /var/log/messages
    
    2.通过文件描述符查看文件内容
    [root@xiaoming ~]# ll -l /proc/909/fd/
    总用量 0
    lr-x------ 1 root root 64 1月  13 09:07 0 -> /dev/null
    l-wx------ 1 root root 64 1月  13 09:07 1 -> /dev/null
    l-wx------ 1 root root 64 1月  13 09:07 2 -> /dev/null
    lr-x------ 1 root root 64 1月  13 09:07 3 -> anon_inode:inotify
    lrwx------ 1 root root 64 1月  13 09:07 4 -> socket:[20509]
    lr-x------ 1 root root 64 1月  13 09:07 5 -> /run/log/journal/5851965d6fb040528da4c97075c15063/system.journal
    l-wx------ 1 root root 64 1月  13 09:07 6 -> /var/log/messages
    l-wx------ 1 root root 64 1月  13 09:07 7 -> /var/log/secure
    l-wx------ 1 root root 64 1月  13 09:07 8 -> /var/log/cron
    l-wx------ 1 root root 64 1月  13 09:07 9 -> /var/log/maillog
    
    3.删除文件
    [root@xiaoming ~]# rm -f /var/log/messages
    
    4.查看删除文件后,进程使用状态
    [root@xiaoming ~]# lsof | grep messages
    
    5.恢复
    [root@xiaoming ~]# cat /proc/909/fd/6 > /var/log/messages
    [root@xiaoming ~]# cp /proc/909/fd/6 /var/log/messages
    [root@xiaoming ~]# tail /var/log/messages
    Jan 13 09:07:48 xiaoming systemd: Started System Logging Service.
    Jan 13 09:07:48 xiaoming systemd: Reached target Multi-User System.
    Jan 13 09:07:48 xiaoming systemd: Starting Update UTMP about System Runlevel Changes...
    Jan 13 09:07:48 xiaoming systemd: Started Update UTMP about System Runlevel Changes.
    Jan 13 09:07:48 xiaoming systemd: Startup finished in 1.656s (kernel) + 2.711s (initrd) + 8.713s (userspace) = 13.081s.

    案例2:大日志文件,影响服务器的运行状态,使用rm删除无效,使用重定向输出"> /var/log/access_log"

    find / size +10G -name "*.log" -delete
    lsof | grep delete

    磁盘的操作

    分区
        fdisk
    格式化
    常规分区
        mkfs.ext4
        mkfs.xfs
    swap分区
        mkswap
        swapon    
    挂载
        mount
        
    RAID
        提高磁盘的可靠性,读写性能
        0
        1
        5
        10
        50
    LVM    
        逻辑卷管理
        动态的分区
        pv物理卷
            pvcreate /dev/md0 /dev/sad1
        vg卷组
            vgcreate it /dev/md0 /dev/sda /dev/sda1
        lv逻辑卷
            lvcreate -L 10G -n edu it
        扩容
            vgextend it
            lvextend -L +5G /dev/it/edu
            resize2fs   (EXT4)
            xfs_growfs  (XFS)

    链接

    ln [-s] source destination
    
    软连接(符号链接)
    链接文件有新的inode,但是不占用block
    
    硬链接
    共用一个inode,但是各自都有block块
    不适合对目录做硬链接
    不能跨分区做
    源文件和链接文件都是单独个体

    归档(压缩)和查找

    归档:
        把不经常使用的,但是又很重要的,收集起来,存放到指定位置,一般会压缩后归档
    
    tar         创建       查看       恢复
    .tar        c[pv]f      tf        x[v]f
    .tar.gz     czf         tf        xf
    .tar.bz2    cjf         tf        xf
    .tar.xz     cJf         tf        xf
    
    gzip,bzip2,xz的特点
    只要压缩功能,且只能针对一个文件,不能对目录操作
    
    zip/unzip
    which
    whereis
    locate
        依赖数据库,需要先更新数据库
    find
        实时查找
    
    find [path] options cation
    expression
    -name
    -iname
    -time
    -size
    -type
    -user
    -group
    -perm
    ...
    action
    -print
    -ls
    -delete
    -exec
    
    多条件查找
    -a 默认
    -o 
    -not !
    
    find和xargs联合使用
    参考笔记

    rsync 同步数据
    实时同步
           一边更新(增删改),另一边马上更新
    异步同步
           每隔一段时间同步一下

    &&
        -a
        cmd1 && cmd2
        if [ expr1 && expr2 ];then
            cmd1
        else
            cmd2
        fi-o
        ||
        cmd1 || cmd2
    非
        -not
        !
        ! expr1
    
    打印root和普通用户
        $3=0 || $3>=1000 
  • 相关阅读:
    Spark权威指南(中文版)----第5章 结构化API基本操作
    Spark权威指南(中文版)----第2章 Spark简介
    Spark权威指南(中文版)----第4章 结构化API概述
    Spark权威指南(中文版)----第1章Apache Spark是什么
    Java读写锁的实现原理
    【进阶之路】动态代理与字节码生成
    如何写好技术文档——来自Google十多年的文档经验
    谈谈 C++ STL 中的迭代器
    面试官疯狂问我联表查询怎么办? 愣着干嘛?进来白嫖啊!
    面试问题记录 三 (JavaWeb、JavaEE)
  • 原文地址:https://www.cnblogs.com/xmtxh/p/12186516.html
Copyright © 2011-2022 走看看