版本
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