不可缺少的Linux一览

377 阅读8分钟

版本

linux系统分为内核版和发行版,发行版是内核版+各种应用软件组成的系统。发行版本有RedHat、Centos、Ubuntu、Fedora等

安装

  • 使用VMware虚拟软件,本地安装linux系统的镜像文件
  • 购买云服务器,建议使用,至少部署应用不会因为关机而再次使用的时候需要重新部署,随时学随时用

系统启动过程与关启命令

#关机
shutdown -h now          --立即关机
shutdown -h +20          --延迟20分钟关机
shutdown -h 23:00        --今天23:00点关机
#重启
shutdown -r now          --立即重启
shutdown -r +20          --延迟20分钟重启
shutdown -r 23:00        --今天23:00点重启

文件与目录管理

核心指令

touch 文件名  --新建文件
mkDir [-p] 目录  --新建目录,-p表示如果上一级目录不存在也新建(p=parent)
rmDir [-p] 目录  --删除目录,-p表示如果上一级目录为空也删除

##目录操作
ls [-a|-l|-i] --查看目录及文件,-a包含隐藏文件,-l列出属性,-i查看软连接
cd 目录 --切换目录
pwd --查看当前所在路径
cp [-r] --拷贝目录或文件,-r表示递归拷贝(r=recursion递归)
mv src dest --移动目录或文件
rm [-rf] 目录或文件
 
##查看文件
cat [-n] file -- -n表示列出行号
head [-n 10] file  --列出头部内容,-n表示列出指定数量的内容
tail [-n 10| -f] file --列出尾部内容,-n表示列出指定数量的内容,-f表示实时列出尾部内容
more file
less file

硬连接和软链接

  • 硬连接

连接文件名和原文件名都指向源文件(即有相同的节点号),内容一致(修改,也保持一致),只有当所有硬连接文件和原文件都删除了,文件才从磁盘上删除(删除某一个不影响其它的文件)-->类似于windows系统的复制功能

ln test.sh test.1.sh --创建硬连接 test.sh为原文件,test1.sh为硬连接文件

[root@hangzhou01 ~]# ll -i   --可以看到节点都是665420
total 0
665420 -rw-r--r-- 2 root root 0 Feb  3 13:31 test.1.sh
665420 -rw-r--r-- 2 root root 0 Feb  3 13:31 test.sh
  • 软连接

连接文件名指向原文件的文件路径(节点号不同),内容一致,如果原文件删除了,连接文件指向的是一个无效的路径 -->类似于windows系统的快捷方式

ln -s test.sh test2.sh --创建软连接 -s表示创建软连接,test.sh为原文件,test1.sh为软连接文件

[root@hangzhou01 ~]# ll -i  --可以看到节点不相同
total 0
665420 -rw-r--r-- 2 root root 0 Feb  3 13:31 test.1.sh
657116 lrwxrwxrwx 1 root root 7 Feb  3 13:34 test2.sh -> test.sh
665420 -rw-r--r-- 2 root root 0 Feb  3 13:31 test.sh

删除test.sh,发现test2.sh的指向文件一致在闪烁(没动画,脑补吧),表示指向的是一个无效的路径
[root@hangzhou01 ~]# ll -i
total 0
665420 -rw-r--r-- 1 root root 0 Feb  3 13:31 test.1.sh
657116 lrwxrwxrwx 1 root root 7 Feb  3 13:34 test2.sh -> test.sh

用户和用户组管理

核心配置文件

/etc/passwd   --用户信息
[root@hangzhou01 ~]# tail -n 5 /etc/passwd
nscd:x:28:28:NSCD Daemon:/:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
appdev:x:1000:1000::/home/appdev:/bin/bash
mysql:x:996:1001::/home/mysql:/bin/bash
tomcat:x:1001:1002::/home/tomcat:/bin/bash
字段解析--用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell

/etc/shadow   --密码信息,仅root权限
[root@hangzhou01 ~]# tail -n 5 /etc/shadow
nscd:!!:17394::::::
tcpdump:!!:17394::::::
appdev:$6$9eOEFCei$eTXYd4v.TLkEyFDIr8/4VFHVLoA2fkJarAB0X9c/qbAgz1P51WEpttOKXx7IiHog62AsAJeiSqwmw42KRTH/r1:18660:0:99999:7:::
mysql:!!:18644::::::
tomcat:$6$LG5uAGuu$9K8IxWWxAiix419pxmPMPi/viS8ZWIvJV70lpW1J5tEA3.K3Iw1dcpZj.DR8ZkcHgCVFV2FNtz4AnD.tHjlu5/:18660:0:99999:7:::

【一个用户可以所属多个附加组,但只能有一个初始组(初始组即主组,在/etc/passwd显示的组标志号)】

/etc/group    --组信息
[root@hangzhou01 ~]# tail -n 5 /etc/group
nscd:x:28:
tcpdump:x:72:
appdev:x:1000:
mysql:x:1001:
tomcat:x:1002:appdev
字段解析--组名:口令:组标识号:组附加用户列表

特别注意“组内用户列表字段”:列出每个群组包含的所有用户。需要注意的是,如
果该用户组是这个用户的初始组,则该用户不会写入这个字段,可以这么理解,该
字段显示的用户都是这个用户组的附加用户。

/etc/gshadow  --组密码信息,仅root权限
[root@hangzhou01 ~]# tail -n 5 /etc/gshadow
nscd:!::
tcpdump:!::
appdev:!::
mysql:!::
tomcat:!::appdev
字段解析--组名:加密密码:组管理员:组附加用户列表

特别注意“组内用户列表字段”与/etc/group文件一样

用户和用户组的管理是对以上文件的变更

核心命令

##用户管理
useradd -h 家目录 -s 登录shell -g 所属组 -G 所属附加组 用户名  --添加用户  
userdel [-r] 用户名   --删除用户,-r表示将该账号的家目录一块删除
usermod -h 家目录 -s 登录shell -g 所属组 -G 所属附加组 用户名  --修改用户  

###密码管理
passwd 用户名 --修改指定用户密码
passwd -l 用户名 --锁定用户密码,仅root权限
passwd -u 用户名 --解锁用户密码,仅root权限
passwd -d 用户名 --删除用户密码,仅root权限
passwd --修改当前用户密码

##用户组管理
groupadd 组名 --添加用户组
groupdel 组名 --删除用户组

###删除某个组下的用户
gpasswd -d 用户名 用户所属的附加组

统计CPU、内存、磁盘使用

CPU

  • top

    top

  • sar

    sar -u 5 8 --每间隔5s采样一次,采样8次,-u表示CPU

[root@hangzhou01 ~]# sar -u 5 8 
Linux 3.10.0-514.26.2.el7.x86_64 (hangzhou01) 	02/03/2021 	_x86_64_	(1 CPU)

07:24:19 PM     CPU     %user     %nice   %system   %iowait    %steal     %idle
07:24:24 PM     all      0.60      0.00      0.40      0.00      0.00     98.99
07:24:29 PM     all      0.80      0.00      0.40      0.00      0.00     98.80
07:24:34 PM     all      0.60      0.00      0.40      0.00      0.00     99.00
07:24:39 PM     all      0.40      0.00      0.40      0.00      0.00     99.20
07:24:44 PM     all      1.41      0.00      1.00      0.40      0.00     97.19
07:24:49 PM     all      0.40      0.00      0.40      0.00      0.00     99.19
07:24:54 PM     all      0.60      0.00      0.80      0.00      0.00     98.60
07:24:59 PM     all      0.40      0.00      0.40      0.00      0.00     99.19
Average:        all      0.65      0.00      0.53      0.05      0.00     98.77

内存

  • free

    free [-k|-m|-g|-t] --默认以KB为单位,-m表示以MB为单位,-g表示以GB为单位,-t以总和形式统计

[root@hangzhou01 ~]# free
              total        used        free      shared  buff/cache   available
Mem:        1883652     1157728       89144         460      636780      557548
Swap:             0           0           0
[root@hangzhou01 ~]# free -t
              total        used        free      shared  buff/cache   available
Mem:        1883652     1157724       89004         460      636924      557552
Swap:             0           0           0
Total:      1883652     1157724       89004
  • sar

    sar -r 5 8 --每间隔5s采样一次,采样8次,-r表示内存

[root@hangzhou01 ~]# sar -r 5 8
Linux 3.10.0-514.26.2.el7.x86_64 (hangzhou01) 	02/03/2021 	_x86_64_	(1 CPU)

07:27:29 PM kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit  kbactive   kbinact   kbdirty
07:27:34 PM     87256   1796396     95.37     52896    525076   1615660     85.77   1398324    288748        56
07:27:39 PM     87256   1796396     95.37     52904    525072   1615660     85.77   1398332    288748        56
07:27:44 PM     87256   1796396     95.37     52904    525076   1615660     85.77   1398340    288756        60
07:27:49 PM     87256   1796396     95.37     52904    525076   1615660     85.77   1398388    288756        60
07:27:54 PM     87256   1796396     95.37     52904    525076   1615660     85.77   1398412    288756        60
07:27:59 PM     87256   1796396     95.37     52912    525076   1615660     85.77   1398428    288764        72
07:28:04 PM     87256   1796396     95.37     52912    525076   1615660     85.77   1398460    288764        72
07:28:09 PM     87256   1796396     95.37     52912    525076   1615660     85.77   1398476    288764        68
Average:        87256   1796396     95.37     52906    525076   1615660     85.77   1398395    288757        63

磁盘

  • df

    df [-h] --查看磁盘使用情况,-h表示以人容易阅读的KB、MB、GB形式展示

[root@hangzhou01 ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        40G  7.9G   30G  21% /
devtmpfs        911M     0  911M   0% /dev
tmpfs           920M     0  920M   0% /dev/shm
tmpfs           920M  380K  920M   1% /run
tmpfs           920M     0  920M   0% /sys/fs/cgroup
tmpfs           184M     0  184M   0% /run/user/0
  • sar

    sar -d 5 8 --每间隔5s采样一次,采样8次,-d表示硬盘

[root@hangzhou01 ~]# sar -d 5 3 
Linux 3.10.0-514.26.2.el7.x86_64 (hangzhou01) 	02/03/2021 	_x86_64_	(1 CPU)

07:44:08 PM       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
07:44:13 PM  dev253-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

07:44:13 PM       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
07:44:18 PM  dev253-0      0.80      0.00     19.28     24.00      0.00      0.00      0.00      0.00

07:44:18 PM       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
07:44:23 PM  dev253-0      0.40      0.00      8.03     20.00      0.00      0.00      0.00      0.00

Average:          DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
Average:     dev253-0      0.40      0.00      9.10     22.67      0.00      0.00      0.00      0.00