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:定位文件或者命令所在的路径