• Linux基础-2


    笔记2

    Acl、Suid、Sgid、Sbit权限
    setfacl -m u:li:rx /team 给用户设置对目录的acl权限。setfacl -m g:hr:rx /team 给组设置acl权限
    setfacl -m m:twx /team 设置mask权限,acl权限与mask相与才生效。
    getfacl:查看目录文件acl权限
    setfacl -x u:li   /team 删除用户li的acl权限。
    setfacl -x g:hr   /team 删除组hr的acl权限。
    setfacl -b /team 删除文件的acl权限。/usr/bin/chmod.改chmod的权限。
    Setfacl -m u:lisi:rx -R /project/  递归设置文件acl权限
    Setfacl -m d:u:lisi:rx /project/ 默认acl权限,
    父目录设置默认acl权限,新建的子目录也继承其权限、旧文件需递归设置。
    suid:1、可执行的二进制程序(命令)2、命令执行者对该程序拥有x权限、3、命令在执行该程序时获得该程序的属主身份(包括root)4、suid权限只在该程序执行过程中有效。
    passwd命令拥有suid权限,所以普能修改自己的密码。
    chmod 4775 ABC 。vim。修改、etc/passwd酷
    Sgid:给目录设置gid,目录所属组下的用户创建文件继承所属组。用户在此目录下具有w权限。2000
    Sbit:对于目录的作用是:当用户在该目录下建立文件或目录时,仅有自己与 root才有权力删除。1000
    Chattr文件属性
    查看:lsattr 选项 文件名 -a:显示所有文件和目录,-d:显示目录自身属性。
    命令格式:chattr [+-=][选项] 文件或目录名。
    -i: 针对设置i属性,则文件不允许进行删、改、添、修等操作。只能看。Root也不行。
    针对目录设置i属性,只能修改目录下文件的数据,但不允许建立和删除文件。
    -a:文件>只能在文件中增加数据,不允许删除和修改数据。
    目录>只允许在目录中建立和修改文件,不允许删除。
    提权:
    sudo:、suid、vim /etc/sudoers下面添加一行 alice  ALL=(ALL) NOPASSWD:ALL.
    修改shell umask值
    [root@youngfit ~]# vim /etc/profile 
    if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
    umask 002
    else
    umask 022
    fi
    [root@youngfit ~]# source /etc/profile //立即在当前shell中生效

    通过umask决定新建用户HOME目录的权限

    [root@youngfit ~]# vim /etc/login.defs 
    UMASK 077
    [root@youngfit ~]# useradd gougou
    [root@youngfit ~]# ll -d /home/gougou/
    drwx------. 4 gougou gougou 4096 3月 11 19:50 /home/gougou/
    [root@youngfit ~]# vim /etc/login.defs
    UMASK 000
    [root@youngfit ~]# useradd yangyang
    [root@youngfit ~]# ll -d /home/yangyang/
    shdrwxrwxrwx. 4 yangyang yangyang 4096 3月 11 19:53 /home/yangyang/
    进程:
    ps -ef |grep - 列出需要进程  ps -axo pid,ppid,nice,command|grep sleep自定义
    [root@nba ~]# ps -ef |grep sleep
    root      2850  2581  0 20:36 pts/1    00:00:00 sleep 60000
    root      2917  2581  0 20:48 pts/1    00:00:00 grep --color=auto sleep
    UID     :程序被该 UID 所拥有(用户)
    PID     :就是这个程序的 ID
    PPID   :则是其上级父程序的ID
    C       :CPU使用的资源百分比
    STIME   :系统启动时间
    TTY     :登入者的终端机位置
    TIME   :使用掉的CPU时间。
    CMD     :所下达的是什么指令
    ps -aux - 显示进程信息,包括无终端的(x)和针对用户(u)的进程:
    如USER, PID, %CPU, %MEM等
    USER:运行进程的用户、PID:进程ID、%CPU: CPU占用率、%MEM: 内存占用率
    VSZ:占用虚拟内存、RSS: 占用实际内存驻留内存、TTY: 进程运行的终端
      a显示现行终端机下的所有程序,包括其他用户的程序。-e显示所有程序。-u以用户为主的格式来显示程序状况。-x显示所有程序,不以终端机来区分。-f 用ASCII字符显示树状结构,表达程序间的相互关系。-o 自定义格式
      pstree:进程树、-p:显示pid、-u:显示进程的所属用户。
    STAT:   进程状态     man ps (/STATE)                 
    R 运行、S 可中断睡眠 Sleep  
    D 不可中断睡眠 (usually IO)   、T 停止的进程 、 Z 僵尸进程、X   死掉的进程             【了解 】
    Ss s进程的领导者,父进程 、
    S< <优先级较高的进程 、SN N优先级较低的进程、R+ +表示是前台的进程组 Sl 以线程的方式运行
    START:进程的启动时间、TIME:进程占用CPU的总时间、
    COMMAND: 进程文件,进程名
    top:动态查看
    top可以监视系统中不同的进程所使用的资源。它提供实时的系统状态信息。显示进程的数据包括 PID、进程属主、优先级、%CPU、%memory等。可以使用这些显示指示出资源使用量。

     

     

     

     

    -d 1 一秒刷新。默认3、
    M:按内存的使用排序、P:按CPU使用排序 、N:以PID的大小排序、R:对排序进行反转
    T:根据时间/累计时间进行排序。
    序号 列名 含义
    a PID 进程id
    b PPID 父进程id
    c RUSER Real user name
    d UID 进程所有者的用户id
    e USER 进程所有者的用户名
    f GROUP 进程所有者的组名
    g TTY 启动进程的终端名。不是从终端启动的进程则显示为 ?
    h PR 优先级
    i NI nice值。负值表示高优先级,正值表示低优先级
    j P 最后使用的CPU,仅在多CPU环境下有意义
    k %CPU 上次更新到现在的CPU时间占用百分比
    l TIME 进程使用的CPU时间总计,单位秒
    m TIME+ 进程使用的CPU时间总计,单位1/100秒
    n %MEM 进程使用的物理内存百分比
    o VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
    p SWAP 进程使用的虚拟内存中,被换出的大小,单位kb。
    q RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
    r CODE 可执行代码占用的物理内存大小,单位kb
    s DATA 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
    t SHR 共享内存大小,单位kb
    u nFLT 页面错误次数
    v nDRT 最后一次写入到现在,被修改过的页面数。
    w S 进程状态。(D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程)
    x COMMAND 命令名/命令行
    y WCHAN 若该进程在睡眠,则显示睡眠中的系统函数名
    z Flags 任务标志,参考 sched.h
    PID:进程ID,进程的唯一标识符
    USER:进程所有者的实际用户名。
    PR:进程的调度优先级。这个字段的一些值是'rt'。这意味这这些进程运行在实时态。
    NI:进程的nice值(优先级)。越小的值意味着越高的优先级。负值表示高优先级,正值表示低优先级
    VIRT:进程使用的虚拟内存。进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
    RES:驻留内存大小。驻留内存是任务使用的非交换物理内存大小。进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
    SHR:SHR是进程使用的共享内存。共享内存大小,单位kb
    S:这个是进程的状态。它有以下不同的值:
    D - 不可中断的睡眠态。
    R – 运行态
    S – 睡眠态
    T – 被跟踪或已停止
    Z – 僵尸态
    %CPU:自从上一次更新时到现在任务所使用的CPU时间百分比。
    %MEM:进程使用的可用物理内存百分比。
    TIME+:任务启动后到现在所使用的全部CPU时间,精确到百分之一秒。
    COMMAND:运行进程所使用的命令。进程名称(命令名/命令行)
    kill
     1:SIGHUP重新加载配置  PID不变、2:SIGINT键盘中断^C、3:SIGQUIT 键盘退出、9:SIGKILL  强制终止、15:SIGTERM终止(正常结束),缺省信号、18:SIGCONT 继续、19:SIGSTOP停止、20:SIGTSTP暂停^Z
    pkill -u 用户名、pkill -t pts/1:停止用户进程,但并不踢出用户。
    pkill -9 -t tty1、-t:踢出(w查看用户登录信息)

    nice -n -5 sleep 6000 & (&后台运行)。

    nice值:
    nice值越低、优先级越高、最低-20.优先级最高20.优先级越高调用CPU越优先处理、使用top更改nice级别 、r    调整进程的优先级(Nice Level) (-20高)  ---0--- (19低)
    1:renice -5 -p 5200
    #PID为5200的进程nice设为-5
    2:top
    #进入top后按“r”–>输入进程PID–>输入nice值
    UID : 代表执行者的身份
    PID : 代表这个进程的代号
    PPID :代表这个进程是由哪个进程发展衍生而来的,亦即父进程的代号
    PRI :代表这个进程可被执行的优先级,其值越小越早被执行
    NI :代表这个进程的nice值
    jobs
    查看后台运行程序、fg:前台、bg:后台(ctrl+z停止后、可用于开始后台启动)、
    kill %2 杀死job号为2的进程。&:放在最后才是后台符。screen :yum -y install screen、//第一次、、、恢复、?screen -s install_httpd
    I/O重定向

    echo $$:当前进程pid、

    ll /proc/$$/fd :文件描述符

    输出重定向:
    1>正确输出(覆盖)、2>错误输出、&>混合输出(正确、错误一起输出、)/dev/null(垃圾桶)、/dev、null被删除,恢复:1、手动创建:mknod -m 666 /dev/null c 1 3。
    echo $?  =0正确输出、=2错误输出。-ep=、ne不等于、gt大于、lt小于、ge大于等于、le小于等于。
    输入重定向:
    <=0<、mail -s “hello” kobe < /etc/hostname、-s:标题
    /dev/zero:可以从这里源源不断拿数据,
    dd if=/dev/zero of=/file1.txt   bs=1M count=20 一次1M,拿20次。等价于dd </dev/zero >/file2.txt bs=1M count=20(输入重定向、输出重定向。)
    [root@ICan ~]# at now +5 min   //  
    [root@ICan ~]# at> useradd KD  
    [root@ICan ~]# at> <EOT> 在五分钟后创建KD用户。
    等价于:at now +2 min <a.txt .(编辑好文件a.txt。)
    利用重定向建立多行文件:手动cat >file1 <<EOF  、:遇见EOF即结束。
    脚本创建:写文件vim::cat >file1 <<@:遇见@结束。bash 文件:执行、或chmod+x。
    管道
    ps aux --sort  -%cpu |head -6|grep -v USER、过滤CPU最高的五个进程、--sort排序、-降序、-v:grep中反方向、
    sort -t":" -k3 -n /a.txt  -r、分隔,将第三列按字数升序、-r逆序 、-k指定列、
    awk -F: ‘{print $2}’  /etc/passwd、uniq:去重、-c:去重并记录种类的数量、-F::指定分隔符、NF:最后一列、(NF-1):倒数第二列、
    t管道:IP a |grep init |tee a.txt  、-a追加。默认覆盖。
    xargs :传递参数。cat files.txt |xargs -I {} cp -rvf {} /nba 、
    [root@youngfitn ~]# top -d 1 -b -n 1 > top.txt
    [root@youngfitn ~]# top -d 1 -b -n 1 |tee top.txt

    磁盘分区

    MBR   <2TB      fdisk                   14个分区(4个主分区,扩展分区,逻辑分区)  例如: 3主 + 1扩展(n逻辑)
    GPT   >2TB   gdisk(parted) 128个主分区 注意:从MBR转到GPT,或从GPT转换到MBR会导致数据全部丢失!
    转换分区格式 先备份、然后卸载。parted -s /dev/sda mklabel msdos:将GPT转换为MBR格式
    parted -s /dev/sda mklabel gpt:将分区dev/sdb、MBR转换为GPT格式。
    lsblk:查看磁盘设备。(都包括)
    parted -l查看磁盘分区文件类型。
    df:(不光从文件系统考虑还统计被命令或程序占用的空间,文件已经删除,但程序并没释放空间。)du:统计目录/文件的大小。du / 。-s 总占用量、-h人性化、-a子目录的大小。(du面向文件只统计文件或目录占用的空间。)常用:du  -sh  
    fsck 文件系统修复,-a不显示、修复(默认)-y自动修复。dumpc2fs显示磁盘状态?。
    mount:查看已经挂载的设备、分区、-a 自动挂载。(/etc/fstab 依据)
    mount [-t :文件体统类型][-L卷标名}{-o特殊类型}+设备名+挂载点、remount重新挂载已挂载的文件系统、exec/noexec:执行/不执行、默认exec。
    挂载光盘:
    mkdir /mnt/cdrom:建立挂载点、
    mount -t iso9660 /dev/cdrom /mnt/cdrom、mount /dev/cdrom /mnt/cdrom。卸载:umount +设备名或挂载点、umount /mnt/cdrom.-l:强行卸载,杀死进程。
    fdisk -l:查看设备文件名、
    分区:1:fdisk /dev/sdb 2:n、3:{l、p、s?}、4:w、5:partprobe(重新读取分区表信息)。
    格式化:(扩展分区不可以格式化)
    mkfs -t ext4 /dev/sdb1、-f:覆盖格式、(自动挂载目录:
    1:vim etc/fstab :
    /dev/sdb1 /disk1 ext4 defaults  1  2 )1:UUID(blkid+设备名)、2:挂载点、3:文件系统名、4:文件参数(一般默认)、5:备份(0不备份1每天备份2不定期)6:检测(0不检测1>2优先级)
    完了最好mount -a (以防写错/etc/fstab文件)修复:mount -o remount, rw /(用于普通挂载写错)。
    free 查看内存/swap。 -m兆显示。
    2:挂载:vim /etc/rc.d/rc.local、mount /dev/sdb1、chmod +x rc.local、、reboot、完事。
    mkswap /dev/sdb6 格式化swap分区、swapon /dev/sdb6加入swap分区、swapoff /dev/sdb6  取消swap分区
    开机挂载:/dev/sdb6 swap swap defaults 0 0。mount -a。
    逻辑卷LVM:扩容

    pvdisplay:看pv信息。vgdisplay:看vg信息。lvdisplay:看lv信息。

    [root@ICan ~]# pvcreate /dev/sdc1    //创建pv、pvscan/pvs查看。
    Physical volume "/dev/sdc1" successfully created.
    [root@ICan ~]# vgcreate vg2 /dev/sdc1   //创建vg、vgscan/vgs查看。
    Volume group "vg2" successfully created
    [root@ICan ~]# lvcreate -L500M  -n lv2 /dev/vg2  //创建lv、lvscan/lvs查看。
    Logical volume "lv2" created.     // -l 个数、-L大小、-n自定义lv名称。
    [root@ICan ~]# mkfs.xfs /dev/vg2/lv2   //格式化lv。
    [root@ICan ~]# mkdir /mnt/lv2  //创建挂载点。
    [root@ICan ~]# mount /dev/vg2/lv2 /mnt/lv2/ //挂载。
    [root@ICan ~]# df -Th
    [root@ICan ~]# lsblk
    开机挂载:
    [root@ICan ~]# blkid /dev/vg2/lv2   //查看uuid
    /dev/vg2/lv2: UUID="b8129796-a8f3-442c-90ee-cf13f2c9d808" TYPE="xfs"
    [root@ICan ~]# vim /etc/fstab 更改配置文件
    umount /mnt/lv2   卸载
    rm -rf /mnt/lv2
    lsblk   df -Th
    扩大VG:
    [root@ICan ~]# pvcreate /dev/sdc2   //创建pv。  (加入别的vg的pv,不可以加入其它的vg。)
    [root@ICan ~]# vgextend vg2 /dev/sdc2   //直接vgextend扩容。
    [root@ICan ~]# vgreduce vg2 /dev/sdc2 //减小vg。
     pvmove 数据到其它 PV
    [root@server0 ~]# pvmove /dev/vdd
    /dev/vdd: Moved: 16.7%
    /dev/vdd: Moved: 100.0%
    扩容LV:
    [root@ICan ~]# pvcreate /dev/sdc2  //创建pv         (加入别的lv的vg,不可以加入其它的lv。)
    [root@ICan ~]# vgextend vg2 /dev/sdc2     //加入vg2(vg扩容)
    [root@ICan ~]# lvextend -L 1G /dev/vg2/lv2   //(lv扩容为1G) +1G在原有基础加1G。
    [root@server0 ~]# lvextend -l +15 /dev/vg1/lv1 //在原有基础上加15个PE
    [root@server0 ~]# df -Th
    /dev/mapper/vg1-lv1 xfs 637M 67M 570M 11% /mnt/lv1
    /dev/mapper/vg1-lv2 ext4 240M 32M 192M 15% /mnt/lv2
    A. xfs(如果是xfs文件系统类型)
    [root@server0 ~]# xfs_growfs /dev/vg1/lv1   //格式化lv
    B. ext2/3/4(如果是ext文件系统类型)
    [root@server0 ~]# resize2fs /dev/vg1/lv2
    [root@server0 ~]# df -Th
    Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/vg1-lv1 xfs
    765M 67M 698M 9% /mnt/lv1 /dev/mapper/vg1-lv2 ext4 488M 32M 429M 7%
    /mnt/lv2
    [root@server0 ~]# lvremove /dev/vg1/lv1 :删除lv1

    缩容:1:umount /dev/vg1/lv1、2: lvreduce -L -1G /dev/vg1/lv1、 3:vgreduce vg1 /dev/sdb2

    扩: vgextend vg1 /dev/sdb2、 lvextend -L +1G /dev/vg1/lv1

    交换分区swap:
    free -m 、swapon -s、查看交换分区。swapon -a重新加载swap。
    第一种:dd
    [root@ICan ~]# dd if=/dev/zero of=/a.txt bs=1M count=512  //(造空间,)
    [root@ICan ~]# mkswap /a.txt   //初始化
    Setting up swapspace version 1, size = 524284 KiB
    no label, UUID=6dd96431-a643-4b11-9968-6b9a1c75354a
    [root@ICan ~]# vim /etc/fstab //开机挂载(不挂不显示)
    [root@ICan ~]# swapon -a // 重新加载swap
    swapon: /a.txt: insecure permissions 0644, 0600 suggested.
    [root@ICan ~]# chmod  600 /a.txt  //改权限
    [root@ICan ~]# swapon -a //
    第二种:(创建pv)
    [root@ICan ~]# pvcreate /dev/sdc3  //创建pv
      Physical volume "/dev/sdc3" successfully created.
    [root@ICan ~]# mkswap /dev/sdc3  //初始化
    mkswap: /dev/sdc3: warning: wiping old LVM2_member signature.
    Setting up swapspace version 1, size = 102396 KiB
    no label, UUID=49f3399c-1036-498b-9c33-e4f8f2b4c6ae
    [root@ICan ~]# blkid /dev/sdc3   //查看/dev/sdc3的uuid
    /dev/sdc3: UUID="49f3399c-1036-498b-9c33-e4f8f2b4c6ae" TYPE="swap" 
    [root@ICan ~]# vim /etc/fstab   //配置开机挂载
    [root@ICan ~]# swapon -a   //重新加载swap
    [root@ICan ~]# free -m    //查看swap分区
                  total        used        free      shared  buff/cache   available
    Mem:            976         133          77           6         765         654
    Swap:          2659           0        2659
    
    交换分区扩容
    [root@localhost ~]# free -m
    total used free shared buff/cache available
    Mem: 1984 163 1115 8 704 1641
    Swap: 2047 0 2047
    [root@localhost ~]# pvcreate /dev/sdc
    [root@localhost ~]# vgextend centos /dev/sdc
    [root@localhost ~]# lvextend -L +1.9G /dev/mapper/centos-swap /dev/sdc
    [root@localhost ~]# xfs_growfs /dev/mapper/centos-swap
    [root@localhost ~]# swapoff /dev/mapper/centos-swap
    [root@localhost ~]# mkswap /dev/mapper/centos-swap
    [root@localhost ~]# free -m
    total used free shared buff/cache available
    Mem: 1984 167 1113 8 704 1638
    Swap: 3995 0 3995
  • 相关阅读:
    Spark Steaming消费kafka数据条数变少问题
    intellij idea 搜索
    ZooKeeper shell
    linux 端口映射设置
    maxCompute odps 行转列
    dev stg prd 开发 测试 生产环境
    大数据之路
    MYSQL性能优化
    JavaScript学习笔记-setTimeout应用
    JavaScript学习笔记-函数
  • 原文地址:https://www.cnblogs.com/james-23/p/13689833.html
Copyright © 2020-2023  润新知