linux(二):用户,CPU、内存、磁盘、网络

whoami:当前以哪个用户操作
    [root@test ~]# whoami
    root
    [root@test home]# su - ksh
    Last login: Tue Jul 16 10:10:53 CST 2019 on tty1
    [ksh@test ~]$ whoami
    ksh

logname:登录的用户名

who:当前登录的所有用户
    [ksh@test etc]$ who
    root     tty1         2020-02-17 17:11
    root     pts/0        2020-02-17 17:11 (192.168.1.4)
    tty1:表示真实的终端
    pts/0:伪终端,比如xshell
    
w:查看登录的详细信息
    [ksh@test etc]$ w
     17:37:55 up 28 min,  2 users,  load average: 0.00, 0.02, 0.09
    USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
    root     tty1                      17:11   26:11   0.04s  0.04s -bash
    root     pts/0    192.168.1.4      17:11    3.00s  0.51s  0.02s w

last:曾经登录的信息
history:命令执行记录

useradd/adduser:添加用户
    useradd kongsh
    passwd kongsh8778
    ssh kongsh@192.168.1.8 

    
userdel:删除用户
    userdel kongsh
    rm -rf /home/kongsh     
    
su:切换用户
    su - kongsh
    su kongsh
    区别:环境变量不一样。加上-,切换到新用户使用新用户的环境变量,不加的话使用的是超级用户的环境变量
    echo $PATH:查看环境变量

raid:磁盘阵列
    raid0:把多块磁盘整合成一块,比如1个100G,一个200G,结果可以看到300G
    raid1:只能两块盘,1个100G,一个200G会以小的为基准,看到的是100G,一个用来做备份
    raid01:很少用,要求偶数块盘,最好要一样大
    raid10:6块盘,得到两两备份,没有换成的情况下读性能是裸盘1.1倍
    raid5:3块盘起步,最多不限制,有校验功能。写入的时候要做校验,会出现比较严重的写惩罚
          读速度也是1.1倍
    raid6:比raid5可以多坏1块盘
    
    数据库最好用raid10,其它的可以考虑raid5/raid6
    
fdisk -l:查看磁盘信息,超过2T就不准了

df:查看分区信息
    df -k:
    df -m:
    df -h:
    df -i:Inodes查看inode,提示空间不够但是df -h 看并没占满,可以用此命令
    
du:目录占用的大小
    du -s:不递归
    du -sk *:
    du -sk * | sort -nr | head -n 10
    

free:查看当前内存
    [root@test local]# free
                  total        used        free      shared  buff/cache   available
    Mem:        1882300      919472      701016        8796      261812      746720
    Swap:       2097148           0     2097148
    buff:不同速率读写设备的缓存,比如从内存写入磁盘,会先存到buff中一起写入,提高写速度
    cache:提高文件读速度,第1次读完了之后会放大cache中,下次再读速度快很多
    
uptime:
    [root@test ksh]# uptime
    21:58:53 up  4:49,  2 users,  load average: 0.00, 0.01, 0.05
    load:在系统内跑的进程数,健康值不能超过cpu核数*cpu个数 70%
    cat /proc/cpuinfo
    
vmstat n:查看内存状态,每隔n秒采样
    [root@test ksh]# vmstat 1
    procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
     r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
     1  0      0 1649608   3160 141700    0    0     8     2   18   26  0  1 99  0  0
     0  0      0 1649584   3160 141700    0    0     0     0   26   23  0  2 98  0  0
     0  0      0 1649584   3160 141700    0    0     0     0   20   14  0  1 99  0  0
    
    r:在cpu中运行的任务数
    b:等待块处理的任务数,可能会是跳跃的
    procs:r+b就是uptime中load ,不能超过cpu处理能力的70%
          (cat /proc/cpuinfo显示出来的processor+1的70%)
    in:中断,除以200不能超过cpu核数(processor+1)
    cs:分页
    wa:iowait,不能超过10%,和b关联, 提升块设备的能力(机械硬盘-->ssd,ssd-->分布式)
    
ps:查看进程
    ps aux:当前系统下所有运行的进程,主要看%CPU%和%MEM%
    ps -ef:    主要看父进程号
    杀进程的规则:先杀子进程再杀父进程。反过来可能会造成僵尸进程
    [...]:表示是系统启动的进程
    
top:
    f:管理页面
    按住要统计的信息,按空格,esc
    
    
ip a:看ip地址
    loopip的作用:
    4/7层转发实现负载均衡
    4层转发:4层指的是只解包到传输层,转发指的是ip+端口的转发,lvs做4层转发,分配给下面做7层转发的ngix(网络可达即可)
             lvs两台就够(一主一从做备份)
    7层转发:ngix做7层转发,二层可达网络(可简单理解为同一网段,不需要过路由器,没有解包过程)
             从TCP/IP继续解包,将应用层的包解开,比如说是HTTP,可以看到域名,根据应用层不同的关键字转到不同的服务器上
    
    ngix:转发,静态缓存,不能做特别大的集群,所以依赖4层转发
    lvs3种转发模式:
        --NAT模式:
        --路由模式:lvs转给下面的ngix,ngix在往外发包的时候伪装成lvs的ip直接发出去,
                   需要用到loopip伪装成lvsip,将lvs压力分担到ngix
        --隧道:不稳定,跨机房的时候
        
netstat:查看网络

ss :查看端口
    ss -lnt:查看监听端口
    ss -ant:查看所有端口
    close_wait:服务端主动关闭,不正常
    
cd /var/log:查看系统日志,重要的是message
cat /etc/redhat-release:系统版本
uname -a :系统内核版本
date:查看时间 ,date +"%Y-%m-%d"

hostname:主机名
chown:改变属组,对目录操作的话用-R参数
    [root@test 2019]# chown ksh.ksh aaa.bak 
    [root@test 2019]# ll
    total 12
    -rw-r--r-- 1 ksh  ksh   30 Feb 16 22:42 aaa.bak
    -rw-r--r-- 1 root root  31 Feb 16 22:42 bbb.bak
    -rwxr-xr-x 1 root root 177 Feb 16 22:42 ccc.bak
    
    chown -R test.test 2019
    chown -hR mysql.mysql ./mysql
    
chmod:改变权限,对目录操作的话用-R参数
    [root@test 2019]# chmod 751 aaa.bak 
    [root@test 2019]# ll
    total 12
    -rwxr-x--x 1 ksh  ksh   30 Feb 16 22:42 aaa.bak
     
man:帮助命令

which:显示命令的全路径

whereis:定位文件或者命令所在的路径

上一篇:[模板A*][SCOI2005]骑士精神(A*,IDA*)


下一篇:记录.NET Core部署到Linux之发布项目到Linux(2)