Linux学习笔记
Linux学习笔记
目录结构
基本介绍
- linux的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录“/”。
- 在Linux世界里,一切皆文件。
树状目录结构:
1 | / |
目录解释
- /bin [常用] (/usr/bin、 /usr/local/bin)是Binary的缩写,这个目录存放着最经常使用的命令
- /sbin (/usr/sbin、 /usr/local/sbin)s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
- /home [常用]存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名
- /root [常用]该目录为系统管理员,也称作超级权限者的用户主目录
- /lib 系统开机所需要最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库
- /lost+found 这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件
- /etc[常用]所有的系统管理所需要的配置文件和子目录,比如安装mysql数据库 my.conf
- /usr [常用]这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与windows下的program files目录。
- /boot [常用] 存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件
- /proc [不能动]这个目录是一个虚拟的目录,它是系统内存的映射,访问这个目录来获取系统信息
- /srv [不能动]service缩写,该目录存放一些服务启动之后需要提取的数据
- /sys[不能动]这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs
- /tmp 这个目录是用来存放一些临时文件的
- /dev类似于windows的设备管理器,把所有的硬件用文件的形式存储/media[常用]linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下
- /mnt [常用]系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在/mnt/上,然后进入该目录就可以查看里的内容了。
- /opt 这是给主机额外安装软件所摆放的目录。如安装ORACLE数据库就可放到该目录下。默认为空。
- /usr/local [常用]这是另一个给主机额外安装软件所安装的目录。一般是通过编译源码方式安装的程序
- /var [常用]这个目录中存放着在不断扩充着的东西,习惯将经常被修改的目录放在这个目录下。包括各种日志文件
- /selinux [security-enhanced linux]SELinux是一种安全子系统,它能控制程序只能访问特定文件,有三种工作模式,可以自行设置.
Vim基本用法
vim是vi的增强版,语法识别高亮显示等。。。
vim
vim的三个模式
- 一般模式
- 输入模式
- 命令行模式
进入为一般模式,在一一般模式下按a/A,i/I,o/O按键进入输入模式,按Esc退回一般模式,在正常模式下按:进入命令行模式输入命令按Enter提交。
graph TD EQ[进入/退出] --vim filename--> Normal[一般模式] Normal --:wq--> EQ Normal --输入i a o --> Input[输入模式] Input --ESC--> Normal Normal --输入 : --> Cmd[命令行模式] Cmd --回车以结束运行--> Normal
一般模式指令
yy
复制当前行(5yy
复制包括当前往下5行)p
粘贴dd
删除当前行(5dd
删除包括当前往下5行)gg
光标跳到第一行G
光标跳到最后一行<行号>gg/<行号>G
光标跳到指定行(例如:20gg/20G
跳转到行号20)/<关键词>
搜索关键词,n
查找下一个(例如/hello
)
命令行模式指令
:h
查看help.txt:w
保存写入:q
退出:q!
强制退出:wq
保存写入并退出:<行号>
跳转到指定行号(如::20
跳转到行号20):set nu
临时设置行号:set nonu
取消行号
Vim键盘图
用户管理
相关指令(命令)
su - <user>
切换用户
logout
/ exit
登出
id <user>
查看用户信息
whoami
查看当前会话用户
who am i
查看登录的用户信息 (第一次会话的)
useradd <user>
创建用户
-r
指定家目录-g
添加到指定用户组(不添加将创建与该用户同名的组,并指定该组)
passwd <user>
修改用户密码
userdel <user>
删除用户
-r
同时删除家目录
usermod [选项] <user>
修改用户属性
-g
修改用户组-d
修改用户家目录(需要有一定权限)
groupadd <group>
创建用户组
groupdel <group>
删除用户组
用户和组相关文件
/etc/passwd文件
- 用户的配置文件,记录用户的各种信息
- 每行格式: 用户名:口令:用户标识号:组标识号:注释性描述:主目录:Shell登录
/etc/shadow文件
- 口令的配置文件
- 每行格式: 用户名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
/etc/group文件
- 组的配置文件,记录Linux包含的组的信息
- 每行格式: 组名:口令:组标识号:组内用户列表
忘记密码解决办法
基于CentOS 7.9
- 重启系统
- 在选择界面使用方向上下键选择防止自动选择
- 按e进入编辑界面
- 找到以linux16开头的行,在末尾加入
init=/bin/sh
- Ctrl+X进入单用户模式
- 输入:
mount -o remount,rw /
并回车 - 输入:
passwd
并回车 - 输入两遍新密码
- 输入:
touch /.autorelabel
并回车 - 输入:
exec /sbin/init
并回车 - 等待系统重启即可
运行级别
基本介绍
运行级别说明:
- 0:关机
- 1:单用户【找回丢失密码】
- 2:多用户状态没有网络服务
- 3:多用户状态有网络服务
- 4:系统未使用保留给用户
- 5:图形界面
- 6:系统重启
常用运行级别是3和5,也可以指定默认运行级别
演示应用实例命令:init [0123456]
应用案例:通过init 来切换不同的运行级别,比如动 5-3,然后关机。
systemctl get-default
查看默认运行级别systemctl set-default <级别>
设置默认运行级别multi-user.target
多用户级别 3graphical.target
图形级别 5
帮助指令
man <命令或配置文件>
获得帮助信息(man ls
查看ls
命令的帮助信息)help [命令]
获取shell内置命令的帮助信息(如help cd
)<命令> --help
查看某命令的帮助信息(如ls --help
)
文件目录指令
pwd
显示当前工作目录的绝对路径ls [选项] [目录/文件]
查看显示目录/文件信息
-a
显示当前目录所有的文件和目录,包括隐藏的-l
已列表的方式显示信息(等同于ll)-i
-h
转换大小单位
cd <dir>
切换到指定目录
cd ~
切换到家目录cd ..
返回上一级目录
mkdir [选项] <目录>
创建目录
-p
创建多级目录
rmdir <目录>
删除空目录rm [选项] <文件/目录>
删除目录/文件
-r
递归删除整个目录-f
强制删除不提示-rf
包含上面两者
touch <file>
创建一个空文件
cp [选项] <source> <dest>
复制文件/目录到指定目录
-r
递归复制整个目录\cp
强制覆盖不提示
mv 移动文件与目录或重命名
mv <oldName> <newName>
重命名mv <file/dir> <path>
移动文件/目录
cat [选项]
查看文件内容
-n
显示行号cat [选项] <file> | more
more 基于VI编辑器的文本过滤器,以全屏幕的方式按页显示
- Space 翻动下一页
- Enter 翻动下一行
- q 退出
- Ctrl+F 翻动下一屏
- Ctrl+B 翻动上一屏
- = 输出当前行的行号
- :f 输出文件名和当前行的行号
less 分屏查看文件内容,与more类似但更强大,按需加载
- Space 翻动下一页
- PageDown 翻动下一页
- PageUp 翻动上一页
- /
向下搜寻。 n:下一个 N:上一个 - ?
向上搜寻。 n:下一个 N:上一个 - q 退出
echo [选项] <content>
输出内容到控制台
- 如
echo $HOSTNAME
输出主机名 - 如
echo $PATH
输出环境变量
head [选项] <file>
显示文件的头部内容,默认前十行
-n <lines>
显示前多少行-c <bytes>
显示前多少字节
tail [选项] <file>
显示文件的尾部内容,默认后十行
-n <lines>
显示后多少行-c <bytes>
显示后多少字节-f
实时监控文件变化
‘>’ 输出重定向(覆盖)
‘>>’ 追加
ls -l > 文件
列表的内容覆盖到文件ls -al >> 文件
列表的内容追加到文件cat 文件1 > 文件2
将文件1的内容覆盖到文件2echo "内容" >> 文件
追加内容到文件
In指令:软链接也称为符号链接,类似于windows里的快捷方式,主要存放了链接其他文件的路径
ln -s <原文件/目录> <软链接名>
给原文件/目录创建一个软链接(pwd查看仍在原文件/目录)
history [数量]
查看已经执行过的历史命令,无参默认显示全部
!<编号>
执行历史命令中编号为<编号>的命令(如!5 执行编号为5的命令)
时间日期指令
date
显示当前时间date +%Y
显示当前年份date +%m
显示当前月份date +%d
显示当前是哪一天date "+%Y-%m-%d %H:%M:%S"
显示年月日时分秒date -s <字符串时间>
设置系统当前时间
cal [选项]
显示当前日历,无参默认显示当前时间日历
cal 2023
显示2023年日历
搜索查找指令
find [范围] [选项]
从指定目录向下递归遍历其各个子目录查找
-name <name>
按照指定的文件名查找-user <user>
查找属于指定用户名的所有文件-size <size>
按照指定的文件大小查找文件(单位K,M,G)find / -size +200M
查找/下大于200M的文件,-200M表示小于200M的文件
locate <file>
可以快速定位文件路径。
- locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。
- locate指令无需遍历整个文件系统,查询速度较快。
- 为了保证查询结果的准确度,管理员必须定期更新locate时刻
updatedb
更新数据库
which <cmd>
查询某个指令在哪个目录下
grep [选项] <内容> <源文件>
过滤查找
-n
显示匹配行及行号-i
忽略字母大小写
|
管道符 ,将前一个命令查询到的内容交给下一个命令
cat a.txt | grep "hello"
cat查询到的内容交给grep进行过滤查找
压缩和解压
gzip <file>
只能将文件压缩成.gz文件
gunzip <file.gz>
解压.gz文件
zip [选项] <name.zip> <file/dir>
压缩成name.zip文件
-r
递归压缩,即压缩目录
unzip [选项] <file.zip>
解压
-d <dir>
指定解压后存放目录
tar [选项]
打包、压缩或解压
-c
产生.tar打包文件-v
显示详细信息-f
指定压缩后的文件名-z
通过gzip指令处理压缩解压-j
通过bzip2指令处理压缩解压-x
解包.tar文件-C
指定解压目录- 常见用法
tar -czvf <xxx.tar.gz> <file>...
压缩成.tar.gztar -xzvf <xxx.tar.gz>
解压tar -tzvf <xxx.tar.gz>
列出压缩文件内容
Linux组(权限)
基本内容
在linux中的每个用户必须属于一个组,不能独立于组外。在linux中每个文档/文件有所有者、所属组、其它组的概念。
ls -ahl
显示格式解释如下:
文档/文件属性 | 链接数 | 所有者 | 所属组 | 大小 | 修改时间 |
---|---|---|---|---|---|
drwx———. | 16 | wshape1 | wshape1 | 4.0K | 1月 25 14:17 |
-rw-r—r—. | 1 | root | root | 15K | 1月 25 17:03 |
文档属性:
- 第一位:表示文档类型
- d 目录
- -文件
- l 链接文档
- b 装置文件里面的可供储存的接口设备(可随机存取装置)(块文件)
- c 装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)(字符设备)
- 第2到4位:所有者权限
- 第3到5位:所属组权限
- 第6到8位:其他组权限
rwx作用到文件
- [r]代表可读(read):可以读取,查看字
- [w]代表可写(write):可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件.
- [x]代表可执行(execute):可以被执行
rwx作用到目录
- [r]代表可读(read):可以读取,Is查看目录内容 (但是不能进入目录)
- [w]代表可写(write): 可以修改,对目录内创建+删除+重命名目录
- [x]代表可执行(execute):可以进入该目录 (但是不能查看目录内容)
常用指令
chown [选项] <user> <file/dir>
修改文件/目录所有者
chown [选项] <newOwner>:<newGroup> <file/dir>
同时修改所有者与所属组
chgrp [选项] <group> <file/dir>
修改文件/目录所在组
chmod [选项] <权限> <file/dir>
修改文件/目录权限
- rwx方式变更权限u:所有者,g:所属组,o:其它组,a:所有人(u g o的总和)
- 例:
chmod u=rwx, g=rx, o=x <文件/目录>
给u g o分别赋予rwx rx x权限 - 例:
chmod o+w <文件/目录>
给o增加w权限 - 例:
chmod a-x <文件/目录>
给a移除x权限
- 例:
- 数字方式变更权限r=4 w=2 x=1,rwx=4+2+1=7
- 例:
chmod 751<文件/目录>
等同于u=rwx, g=rx, o=x
- 例:
以上三个指令共有选项:
- -R 递归修改目录内内容权限
修改权限后用户仍无法控制则可能需要重新登陆
定时任务调度
任务调度:是指系统在某个时间执行的特定的命令或程序。
任务调度分类:
- 系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等
- 个别用户工作:个别用户可能希望执行某些程序,比如对mysql数据库的备份
crond任务调度
crontab [选项]
-e
编辑定时任务-l
查询定时任务-r
删除当前用户所有的定时任务
service crond restart 重启crond
调度文件:
文件内容格式:
f1 f2 f3 f4 f5 program
f1—5为时间格式program为执行程序时间占位符(时间格式)
1
2
3
4
5
6
7
8* * * * *
- - - - -
| | | | |
| | | | +----- 星期中星期几 (0 - 6) (星期天 为0)
| | | +---------- 月份 (1 - 12)
| | +--------------- 一个月中的第几天 (1 - 31)
| +-------------------- 小时 (0 - 23)
+------------------------- 分钟 (0 - 59)时间格式特殊符号
特殊符号 | 含义 |
---|---|
* | 代表任何时间。比如第一个“*”就代表一小时中每分钟都执行一次的意思。 |
, | 代表不连续的时间。比如“0 8,12,16 * 命令”,就代表在每天的8点0分,12点0分,16点0分都执行一次命令 |
- | 代表连续的时间范围。比如”05 1-6命令” ,代表在周一到周六的凌晨5点0分执行命令 |
*/n | 代表每隔多久执行一次。比如“/10 * 命令”,代表每隔10分钟就执行一遍命令 |
at定时任务
- at命令是一次性定时计划任务,at的守护进程atd会以后台模式运行,检查作业队列来运行。
- 默认情况下,atd守护进程每60秒检查作业队列,有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行此作业。
- at命令是一次性定时计划任务,执行完一个任务后不再执行此任务了。
- 在使用at命令的时候,一定要保证atd进程的启动,可以使用相关指令(
ps -ef | grep atd
)来查看。
at [选项] [时间]
设置定时任务 (Ctrl+D结束命令输入)
-m
当指定的任务被完成后,将给用户发送邮件,即使没有标准输出-I
显示待执行任务的列表 (同atq命令)-d
删除指定的待执行任务(同atrm命令)-v
显示任务将被执行的时间-c
打印任务的内容到标准输出-V
显示版本信息-q <队列>
使用指定的队列-f <文件>
从指定文件读入任务而不是从标准输入读入-t <时间参数>
以时间参数的形式提交要运行的任务
时间表达式:
- YYMMDDhhmm[.ss](缩写年、月、日、小时、分钟[秒])
- CCYYMMDDhhmm[.ss](完整年、月、日、小时、分钟和[秒])
- now
- midnight
- noon
- teatime (4:00PM)
- tomorrow
- AM
- PM
- 可以添加一个+使它们相对于某个时间,下面是可用单位:
- minutes
- hours
- days
- weeks
- months
- years
1 | $ echo "rsync -av /home/tux me@myserver:/home/tux/" | at 3:30 AM tomorrow |
磁盘管理
磁盘分区
原理介绍:
- Linux来说无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构,Linux中每个分区都是用来组成整个文件系统的一部分。
- Linux采用了一种叫“载入”的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获得。
硬盘说明:
- Linux硬盘分IDE硬盘和SCSI硬盘,目前基本上是SCSI硬盘
- 对于IDE硬盘,驱动器标识符为”hdx~”,其中”hd”表明分区所在设备的类型,这里是指IDE硬盘了。”x”为盘号(a为基本盘,b为基本从属盘,c为辅助主盘,d为辅助从属盘),”~”代表分区前四个分区用数字1到4表示,它们是主分区或扩展分区,从5开始就是逻辑分区。例,hda3表示为第一个IDE硬盘上的第三个主分区或扩展分区,hdb2表示为第二个IDE硬盘上的第二个主分区或扩展分区。
- 对于SCSI硬盘则标识为“sdx~”,SCSI硬盘是用“sd”来表示分区所在设备的类型的,其余则和IDE硬盘的表示方法一样。
查看所有设备挂载情况
lsblk
lsblk -f
分区命令:
fdisk /dev/sdx
- 开始对/sdx分区
- m 显示命令列表
- p 显示磁盘分区
- n 新增分区
- d 删除分区
- w 写入并退出
格式化磁盘:
mkfs -t <分区类型> /dev/sdx~
- 分区类型:ext2、ext3、ext4、reiserfs、nfs、vfat
挂载分区:
mount <设备> <目录>
mount /dev/sdx~ <dir>
重启系统后失效
永久挂载分区:
修改/etc/fstab
添加行,行格式:
UUID或者设备名称 挂载目录 分区类型 文件系统的参数 能否被dump备份命令作用 是否检测扇区
如:/dev/sdx~ /newdisk ext4 defaults 0 0
执行mount -a 或重启系统
卸载分区:
umount <设备>
umount <被挂载目录>
磁盘使用情况
df -Th
查看整体磁盘使用情况
du [选项] [dir]
查看指定目录的磁盘使用情况,默认为当前目录
-s
指定目录占用大小汇总-h
带计量单位-a
含文件--max-depth=1
子目录深度-c
列出明细的同时,增加汇总值
实用指令
- 统计/opt文件夹下文件的个数
ls -l /opt | grep "^-" | wc -l
- 统计/opt文件夹下目录的个数
ls -l /opt | grep "^d" | wc -l
- 统计/opt文件夹下文件的个数,包括子文件夹里的
ls -lR /opt | grep "^-" | wc -l
- 统计/opt文件夹下目录的个数,包括子文件夹里的
ls -lR /opt | grep "^d" | wc -l
- 以树状显示目录结构tree目录,可能需要执行
yum install tree
安装
网络配置
NAT(Network Address Translation)网络配置
flowchart LR subgraph 电脑Windows linux(Linux虚拟\n192.168.245.128) --> vmnet(VMnet8\n192.168.245.1) vmnet --> linux wk([无线网卡\n192.168.31.122]) vmnet --> wk end subgraph 局域网 wk --> wg(网关) end wg --> three[互联网\nbaidu.com\n...]
ifconfig
查看网络配置
ping <ip>
测试当前主机是否可以于目标ip进行通讯
IP配置
自动获取:
- 登陆后,通过界面的来设置自动获取ip
- 特点:linux启动后会自动获取IP
- 缺点是每次自动获取的ip地址可能不一样。
手动配置:
图形化:网络设置里配置
直接修改配置文件来指定IP并可以连接到外网(程序员推荐)
- 编辑/etc/sysconfig/network-scripts/ifcfg-ens33(如修改为192.168.245.2)
- 修改IPV4配置方式
BOOTPROTO="static"
- 修改IP地址
IPADDR=192.168.245.128
- 修改网关
GATEWAY=192.168.245.2
- 修改DNS
DNS=192.168.245.2
- 虚拟机的记得要配置虚拟机网络相关配置
service network restart
或重启系统
- 修改IPV4配置方式
- 编辑/etc/sysconfig/network-scripts/ifcfg-ens33(如修改为192.168.245.2)
主机名与hosts映射
查看主机名:
hostname
修改主机名:
- 修改文件/etc/hostname
- 重启系统
修改hosts映射:
- 编辑配置文件/etc/hosts
- 行格式:
ip 域名(主机名)
进程管理
在Linux中,每个执行的程序都称为一个进程。每一个进程都分配一个ID号(pid,进程号)。
每个进程都可能以两种方式存在的。前台与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行。
ps [选项]
显示目前系统正在运行的程序
-a
显示当前终端的所有进程信息-u
以用户的格式显示进程信息-x
显示后台进程运行的参数-w
不限制输出宽度-e
显示所有进程-f
全格式输出,包括命令- 寻找指定进程:
ps -ef | grep <关键词>
ps -aux
输出格式:USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
- USER: 进程执行用户
- PID: 进程号
- %CPU: 占用的 CPU 使用率
- %MEM: 占用的物理内存使用率
- VSZ: 占用的虚拟内存大小 (KB)
- RSS: 占用的物理内存大小 (KB)
- TTY: 终端的次要装置号码 (minor device number of tty)
- STAT: 该行程的状态:
- D: 无法中断的休眠状态 (通常 IO 的进程)
- R: 正在执行中 running
- S: 静止状态 sleep
- T: 暂停执行
- Z: 不存在但暂时无法消除(僵尸进程)
- W: 没有足够的内存分页可分配
- <: 高优先序的进程
- N: 低优先序的进程
- L: 有内存分页分配并锁在内存内 (实时系统或捱A I/O)
- START: 进程开始时间
- TIME: 执行的时间
- COMMAND:所执行的指令(过长会被截断)
父子进程
- ps -ef 查看
- PPID表示父进程pid
终止进程
kill [选项] <pid>
终止进程-9
强制终止进程
killall <程序名>
通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用
查看进程树
pstree [选项]
查看进程树-p
显示进程的PID-u
显示进程的所属用户
动态进程管理
top [选项]
实时更新显示进程
-d <秒>
指定更新间隔-i
不显示任何闲置或者僵尸进程-p <pid>
监控指定pid的进程-n
更新几次后退出
显示头:
1 | top - 11:13:24 up 37 min, 1 user, load average: 0.00, 0.01, 0.03 |
交互操作:
P
以%CPU排序,默认就是此项M
以%MEM排序N
以PID排序u
查看指定用户的进程k
删除指定PID的进程q
退出
服务管理
服务(service)本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它程序的请求,比如(mysqld,sshd 防火墙等),因此我们又称为守护进程,是Linux中非常重要的知识点。
service管理指令
service <服务名> <start | stop | restart | reload | status>
service指令管理的服务在/etc/init.d/查看(ll /etc/init.d/
)
查看系统服务
setup
开机流程:
graph LR 开机 ==> BIOS ==> /boot ==> systemd进程 ==> 运行级别 ==> 运行级别对应的服务
跳转查看运行级别解释
chkconfig指令
管理服务在各个运行级别的自启动
chkconfig 指令管理的服务在/etc/init.d/ 查看
基本用法:
chkconfig --list
查看服务chkconfig <服务名> --list
查看某个服务chkconfig --level <运行级别> <服务名> <on | off>
设置
重启系统生效
systemctl管理指令
systemctl指令管理的服务在/usr/lib/systemd/system/查看(ll /usr/lib/systemd/system/
)
systemctl简化了运行级别,只有3和5
基本用法:
systemctl <start | stop | restart | status> <服务名>
开启/关闭/重启/查询 服务systemctl list-unit-files
查看服务开机启动状态(是否开机自启)systemctl <enable | disable> <服务名>
开启/关闭服务开机自启动systemctl is-enabled <服务名>
查询某个服务是否是自启动的
防火墙端口指令
firewall-cmd --permanent --add-port=端口号/协议
打开端口
firewall-cmd --permanent --remove-port=端口号/协议
关闭端口
firewall-cmd --reload
重新载入,才能生效
firewall-cmd --query-port=端口/协议
查询端口是否开放
系统网络情况netstat
netstat [选项]
-an
按一定顺序输出排列-p
显示哪个进程在调用
rpm和yum包管理
RPM
rpm [选项]
rpm包管理指令
-qa
查询所有已安装的rpm软件包-q <name>
查询指定的软件包是否安装-qi <name>
查询指定软件包的信息-ql <name>
查询指定软件包的文件-qf <文件全路径名>
查询文件所属的软件包-e <name>
删除指定软件包(--nodeps
强制删除)-ivh <file>
安装软件包(-i安装,-v提示,-h进度条)
YUM
Yum是一个Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。
yum [选项]
yum包管理指令
list
查看服务器支持的包列表(可以使用grep过滤)install <name>
下载安装指定软件包check-update
检查是否有可用的软件包更新update [name]
更新系统中的一个或多个软件包
linux yum 命令 | 菜鸟教程 (runoob.com)
搭建JavaEE环境
安装JDK
- yum安装
yum list java*
查看服务器jdk版本列表yum install java-x.x.x-openjdk
安装指定版本
- rpm安装
- 下载指定版本JDK的rpm安装包
rpm -ivh <file>
等待安装完成即可- 默认安装在/usr/lib/jvm
- 压缩包安装(以JDK17为例)
- 下载安装包到/opt (其它目录也行),并进入/opt
- 解压
tar -zxvf jdk-17_linux-x64_bin.tar.gz
- 创建文件夹
mkdir /usr/local/java
- 移动jdk
mv jdk-17.0.6/ /usr/local/java/
- 配置环境变量
vim /etc/profile
在文件末尾添加以下内容:export JAVA_HOME=/usr/local/java/jdk-17.0.6
export PATH=$JAVA_HOME/bin:$PATH
- 执行
source /etc/profile
使配置生效,或者重启系统
安装Tomcat
Apache Tomcat® - Apache Tomcat 9 Software Downloads
- yum安装
yum install tomcat
systemctl <start | stop> tomcat.service
启动/关闭
- 压缩包安装(以Tomcat9为例)
- 下载Tomcat9至/opt目录(可以是其它目录)
- 执行
tar -zxvf apache-tomcat-9.0.71.tar.gz
解压 - 进入/apache-tomcat-9.0.71/bin
cd apache-tomcat-9.0.71/bin/
- 执行
./startup.sh
启动Tomcat - 注意Linux防火墙是否拦截8080端口(指令设置)
- 如需设置环境变量,方法如上
- 执行
./shutdown.sh
关闭Tomcat
安装MySql
MySQL :: Download MySQL Community Server
- rpm安装(以8.0为例)
- 下载rpm安装包到指定文件夹 (bundle后缀的文件)
- 查询是否有mariadb,如有则卸载
rpm -qa | grep mariadb
查询rpm -e --nodeps mariadb-libs
卸载
- 解压bundle
tar -xvf mysql-8.0.32-1.el7.x86_64.rpm-bundle.tar
- 依次安装:
- *
rpm -ivh mysql-community-common-8.0.32-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.0.32-1.el7.x86_64.rpm
- *
rpm -ivh mysql-community-libs-8.0.32-1.el7.x86_64.rpm
- *
rpm -ivh mysql-community-client-8.0.32-1.el7.x86_64.rpm
rpm -ivh mysql-community-icu-data-files-8.0.32-1.el7.x86_64.rpm
- *
rpm -ivh mysql-community-server-8.0.32-1.el7.x86_64.rpm
- *
- 初始root密码查看
grep password /var/log/mysqld.log
- 启动MySql服务
systemctl start mysqld.service
- 进入MySql并修改初始密码
mysql -u root -p
ALTER USER root@localhost IDENTIFIED BY '密码';