目录
IP地址:
由4段组成。每一段的取值范围是0-255
公有地址:
真实的地址
私有地址:
假地址
子网掩码:
默认是255.255.255.0
网关:
没有网关无法从当前网络出去,访问外部网络
DNS:
没有配置DNS就无法使用域名进行通信,只能使用IP地址
因为没有域名服务器帮你解析域名
操作系统面试题整理:
常用的Linux命令:
文件系统命令:
cd:
切换目录
cd / 打开根目录
cd ~ 打开当前用户的家目录
root用户的家目录 /root
其他普通用户的家目录 /home/用户名
cd - 返回进入当前目录之前的目录
cd ../ 返回上一级目录
cd ../../ 返回上两级目录, 以此类推
cd /路径 从系统根目录开始找路径
cd /abc 表示从根目录中找abc目录然后打开
cd 路径 从当前路径开始找路径
cd abc 表示从当前目录中找abc目录然后打开
pwd:查看当前所在目录
ls和ll [-a]:查看目录中的内容
touch:创建空文件
mkdir:
创建空目录
mkdir -p aa/bb
-p 参数表示递归创建多级目录
rm:
删除命令
rm 文件名 (会让你确认是否删除 y是 n否)
rm -f 文件名 (-f 参数直接删除, 不需要确认)
rm -r 目录 (-r 参数表示递归删除目录, 会让你确认每一个步骤)
rm -r -f 目录 (直接删目录, 不需要确)
rm -rf 目录 (-r -f 可以简写为 -rf)
删除命令是一个比较危险的操作, 在执行之前一定要看清楚删除的对象
rm -rf /
cat:查看小文件
more:翻页查看大文件
head:
查看文件前N行
head -n 5 emp.txt
- tail:
查看文件后N行
tail -n 5 emp.txt
- grep:
在指定文件中搜索关键字所在的行
grep "关键字" 文件名
- "关键字" 表示在指定文件中搜索的关键字
- 文件名表示在哪个文件中搜索
- find:
在指定目录中搜索文件
find 指定的搜索路径范围 -name "关键字"
- 搜索的路径范围可以是 / 表示在系统全局搜索, 也可以自由指定某一个目录, 表示范围搜索
- -name 表示因为文件名进行搜索
- "关键字" 是文件名中匹配的搜索关键字
- vim:
打开文本编辑器
vi 命令是系统自带的简单的编辑器
vim 命令是需要安装后才能用的高级编辑器
用户和权限命令:
- useradd:建立用户帐号和创建用户的起始目录,使用权限是终极用户
- passwd:修改用户密码
- usermod:修改用户信息
- chmod:更改文件权限
- id:查看当前用户相关信息
系统命令:
- ip addr:查询ip地址
- ping:测试当前机器与目标机器是否可以通信
- yum install:安装软件(有自己的软件市场/仓库,进行一键安装)
- ps -ef:搜索进程id
- kill -9:结束进程
- netstat -tlunp:当不知道某个端口被什么程序占用了,可以用这个命令查看,然后可以根据PID将占用端口的程序杀死
-
systemctl stop | start | restart | status | enable | disable
-
firewall-cmd:管理防火墙规则
-
reboot:重启
-
poweroff:关机
-
date:查看系统时间
-
echo:打印输出命令
-
top:动态查看系统运行状态
-
free 查看内存使用情况
-
history:查看历史命令
-
系统命令帮助文档:命令 --help
Nginx相关面试题:
会不会安装nginx:
下载Nginx
安装C语言环境
因为nginx这款软件是使用C‘语言编写的,那么安装nginx的时候需要先安装C语言编译环境
yum install -y gcc-c++
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel
安装Nginx
解压缩
tar -xvf nginx-1.22.0.tar.gz
执行默认的安装配置脚本
cd nginx-1.22.0
./configure
编译
make
安装
make install
查看Nginx被安装到哪里
whereis nginx
创建软链接
ln -s /usr/local/nginx nginx
nginx默认的端口是什么?怎么改
nginx默认代理的是什么?怎么改
正向代理和反向代理的区别是什么?
什么是负载均衡?
负载均衡的算法有哪些,区别是什么?
nginx怎么启动, 关闭, 重启:
执行nginx/sbin/nginx
如果你在用户家目录里面 /root
./nginx/sbin/nginx
如果你已经进入了nginx软链接
./sbin/nginx
如果你已经进入了sbin目录
./nginx
修改了nginx.conf配置文件后, 需要重新加载配置文件才会生效, 在启动命令后面加 -s reload
关闭nginx
-
方法1: 在启动命令后面加 -s quit
-
方法2: 在后台结束任务 (适用于关闭任何程序)
## 查看所有的后台程序列表
ps -ef
## 查看所有的后台程序列表, 并在列表中搜索nginx
ps -ef | grep nginx
Tomcat相关面试题:
会不会安装tomcat:
安装Tomcat
tomcat是一款免安装的软件, 直接解压缩后就可以使用了
tar -xvf apache-tomcat-9.0.20.tar.gz
mv apache-tomcat-9.0.20 tomcat
因为tomcat是使用Java语言编写的, 那么在运行时需要先安装Java环境
yum install -y java-1.8.0-openjdk.x86_64
tomcat目录结构
-
bin 命令文件
-
startup.sh 启动tomcat
-
shutdow.sh 退出tomcat
-
-
conf 配置文件
-
server.xml
-
-
lib 代码库
-
logs 日志文件
-
temp 临时文件
-
webapps 应用程序部署目录
-
work 运行时的缓存目录
tomcat启动/退出
启动tomcat
如果当前在/root/tomcat/bin目录中
./startup.sh
如果当前在/root/tomcat目录中
./bin/startup.sh
如果当前在/root家目录中
./tomcat/bin/startup.sh
关闭tomcat,有两种方式
-
执行./shutdown.sh
-
跟后台杀死Nginx的方式一样
-
在后端任务管理器中查询tomcat的PID ps -ef | grep tomcat
-
kill -9 PID
-
验证Tomcat启动成功
-
使用ps -ef | grep tomcat 搜索进程信息
-
使用浏览器输入192.168.10.3:8080访问Tomcat
要么关闭防火墙
要么开启防火墙,然后单独放开8080端口
tomcat默认的端口号是什么? 怎么改?
tomcat如何启动? 如何关闭? 如何重启?
怎么部署项目到tomcat?
war包部署到tomcat后, 为什么不会自动解包?
-
tomcat没有启动
-
放错了目录, 没有放到webapps目录中
MySQL相关面试题:
会不会安装MySQL:
安装MySQL
MySQL :: Download MySQL Community Server
安装C语言环境
yum -y install make gcc-c++ cmake bison-devel ncurses-devel libaio libaio-devel net-tools
检查当感情系统是否已安装了另一款数据库MariaDB
rpm -qa | grep mariadb
先卸载MariaDB, 避免安装MySQL的时候起冲突
yum -y remove mariadb-libs
解压缩MySQL安装包
tar -xvf mysql-5.7.31-1.el7.x86_64.rpm-bundle.tar
开始安装
rpm -ivh mysql-community-common-5.7.31-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.31-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-5.7.31-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.31-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.31-1.el7.x86_64.rpm --nodeps --force
MySQL的启动和关闭与防火墙的启动和关闭一样
只需要将firewalld改为mysqld即可
## 如果你不清楚现在mysql是什么状态, 用这条命令进行查看
systemctl status mysqld
## 关闭mysql (如果是enable状态, 那么重启后防火墙会自动启动)
systemctl stop mysqld
## 启动mysql
systemctl start mysqld
## 重启mysql
systemctl restart mysqld
## 允许开机后自动启动mysql
systemctl enable mysqld
## 禁止开机后自动启动mysql
systemctl disable mysqld
登录到mysql数据库系统:
mysql的默认用户名: root (注意这个root并非是操作系统的管理员root)
mysql默认有一个临时密码, 在/var/log/mysqld.log这个文件中
可以使用scp可视化工具找到这个临时密码
也可以使用grep命令搜索出来这个临时密码
安装navicat客户端工具:
创建客户端与mysql数据库服务器之间的连接
可能出现的错误
-
先检查服务器是否开机启动
-
检查mysql程序是否已经启动 (监听3306端口)
-
检查防火墙
mysql默认不允许远程登录, 只允许本地登录
那么我们需要放开mysql的一次登录权限
先进行本地登录 (在虚拟机器的操作系统里面登录MySQL)
那么虚拟机器里面没有办法安装navicat可视化工具
我们可以在虚拟机器中使用命令登录MySQL
先修改密码, mysql默认要求密码长度必须大于等于8位,然后密码强度必须包含大写,小写,特殊符号,注意每一条指令后面有分号";"
降低密码强度要求(没有字符限定)
set global validate_password_policy=0;
降低密码长度要求(可以是4位)
set global validate_password_length=1;
修改root用户的密码为root (第一个root是用户名, 第二个root是密码)
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
放开root用户的远程登录权限,并且刷新权限
use mysql;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
flush privileges;
退出MySQL数据库系统, 回到Linux操作系统
exit;
MySQL默认的端口号是什么?
MySQL怎么启动? 关闭? 重启?
怎么修改MySQL用户密码
怎么放开远程代理权限