<Linux第15集>Linux小结+sshd+ufw+http+https+firewalld+nginx+docker+NewWorkManagery 转战github
·
零
以后想成为一名优秀的算法工程师,一定要把Linux系统彻底明白,不能知识表层,要懂原理,为什么这样设计操作系统
Linux初识
- VMware:虚拟机软件,在 Windows 里运行操作系统,互不干扰
- Ubuntu:GNU/Linux 发行版(完整操作系统)
- Linux内核:Linux操作系统的核心,主要由 C 语言编写,用来管硬件,管内存,管CPU,管文件,管安全…
- GNU(GNU’s Not Unix):类 Unix 项目,为 Linux 提供命令、工具、Shell
- GUN/Linux : Linux操作系统的全称
- SSH(Secure Shell) : 安全远程连接协议
- FinalShell:SSH 客户端软件,用于远程连接 Linux 服务器
- Shell : GNU中的工具,操作系统内核与用户输入命令之间的翻译官
- vi(visual interface) : 可视化文本编辑器
- vim : vi_improved是vi的增强版(更常用,比vi更强大)
用户敲命令—>Shell翻译—>Linux内核大管家—>硬件干活
git
git是Linux中最核心的版本控制工具
(只要是支持git协议的代码仓库,git都能下载)
# git最核心的用法---克隆(下载)代码仓库
git clone [仓库地址] [可选: 本地保存目录]
eg :
# 从GitHub上克隆og-my-zsh
git clone https://github.com/ohmyzsh/ohmyzsh.git ~/.oh-my-zsh
# 从Gitee上克隆(国内镜像源,速度快,文件与原版完全一样)
git clone https://gitee.com/mirrors/oh-my-zsh.git ~/.oh-my-zsh
# 安装git
sudo dnf install git -y
git --version # 查看git版本,验证git是否安装成功
zsh --version # 验证zsh是否安装成功
dnf list installed | grep "git" # 验证git是否安装成功
dnf list installed | grep "zsh" # 验证zsh是否安装成功
oh-my-zsh
oh-my-zsh是给zsh写好的一套配置文件-----它的核心作用是 :
- 帮你简化zsh中的复杂配置
- 提供丰富的主题,插件(语法高亮,自动补全…)
- 把zsh从基础Shell变为好用的Shell
如何修改zsh的主题
- 先从GitHub上下载oh-my-zsh插件
- vim修改~/.zshrc文件中的ZSH_THEME为oh-my-zsh内置主题名
- 执行source ~/.zshrc 重新加载配置(相当于让zsh重新读规则)
- 终端应用新主题
Linux目录结构
- / 根目录
- /bin
binary二进制可执行文件
存放最基本,最核心的命令(ls cp mv cat bash echo…)
普通用户和root都可以执行 - /sbin
superuser bin系统管理员(root)使用的系统管理命令 - /root
root用户的家目录 - /home
普通用户家目录 - /lib
library
存放/bin和/sbin命令需要的共享库 - /boot
存放Linux系统启动的相关文件 - /etc
et cetera
所有系统/服务的配置文件 - /mnt
mount
管理员手动临时挂载设备用的目录 - /opt
optional
存放第三方大型软件 - /srv
service
存放服务提供的数据 - /tmp
temporary
临时文件
Linux中的一些缩写
- -r recursive 递归的
- -f force 强制的
- -i interactive 交互式的
- -n number 数字,显示数字
- -l line 行
- -f following 跟踪
- -y yes 自动确认
- q quit 退出
- vim编辑器的底线命令模式快捷键 :
:wq 保存并退出
:q 退出
:q! 强制退出
:set number/set nu 设置行号
:set paste 设置粘贴
ss命令
ss(socket statistics,套接字统计工具)
Linux操作系统中一切网络连接都叫socket,ss就是用来查看这些连接的工具
ss -t # -t(TCP)只显示TCP协议的连接
ss -u # -u(UDP)只显示UDP协议的连接
ss -l # -l(listening)只显示正在监听的端口
ss -n # -n(numeric)用数字格式显示IP和端口
ss -p # -p(processes)显示哪个进程(服务)正在使用这个端口
ss -a # -a(all)显示所有连接
ss -ltcp # 本机开了哪些端口,哪些服务在用
Linux系统管理单元unit
systemd管理的所有东西 都叫unit(单元),包括 :
(单元就是systemd管理的所有东西)
- .service
服务,eg : nginx sshd - .target
系统状态 - .mount
挂载点 - .swap
交换分区
systemctl list-units # 会列出所有systemd管理的所有单元
systemctl list-unit-files # 会列出所有安装的单元
systemctl list-units --type=service # 查看所有正在运行的服务
systemctl list-unit-files --type=service --state=enabled
下面说.service单元
sshd服务
secure shell daemon
远程连接服务
secure shell(SSH):安全外壳协议(安全的shell),是一个计算机网络协议(默认端口号为22),
是一种远程加密传输协议。通过SSH协议,可以在客户端安全(提供身份认证、信息加密)的远程连接LInux服务器或其他设备。
systemctl status sshd
systemctl start sshd
systemctl restart sshd
systemctl enable sshd
systemctl disable sshd
systemctl stop sshd
systemctl is-enabled sshd
systemctl is-active sshd
ssh lixiang@192.168.134.167 # 远程连接IP地址为这个,用户名为lixiang,的服务器
ssh -p 22 lixiang@192.168.134.167 # 远程连接IP地址为这个,用户名为lixiang,的服务器,指定远程连接走到端口号
firewalld服务
防火墙规则就是 : 允许哪些连接进,哪些连接出
区域(zone) : 一套预设好的保安松紧程度
firewalld六个区域
- trusted : 大门敞开,谁都可以连接(防火墙等于没有开)
- home : 对局域网宽松,对外严格
- internal : 公司内网,比home更重视,信任内部,不信任外部
- public : 只放行极少数必要的服务,其他全关
- drop : 拒绝连接
firewalld 提供了多种区域(zone),每种区域是一套不同严格程度的规则.
一张网卡只能属于一个区域,所有经过这张网卡进来的数据,都必须遵守这个区域的规则.
firewalld命令
systemctl status firewalld # 查看firewalld服务状态
systemctl start firewalld # 开启
systemctl restart firewalld # 重启
systemctl enable firewalld # 开机自启
systemctl disable firewalld # 关闭开机自启
systemctl stop firewalld # 停止
systemctl is-enabled firewalld # 查看是否开机自启
firewall-cmd --get-default-zone # 查看默认区域
firewall-cmd --get-active-zone # 查看正在使用区域
firewall-cmd --get-zones # 查看所有区域
firewall-cmd --list-all # 查看当前区域规则
firewall-cmd --list-all-zones # 查看所有区域的规则
firewall-cmd --list-services # 查看当前区域开放了什么区域
firewall-cmd --list-ports # 查看当前区域开放什么端口
firewall-cmd --list-ports --zone=home # 查看home区域放行什么端口
firewall-cmd --list-services --zone=home # 查看home区域放行什么服务
firewall-cmd --list-sources --zone=home # 查看home区域放行什么IP地址
# 区域设置命令
firewall-cmd --set-default-zone=public #设置默认区域是public
firewall-cmd --zone=public --add-interface=ens33 # 临时在某一个区域添加网卡
firewall-cmd --zone=public --add-interface=ens33 --permanent # 永久加入某一个区域
firewall-cmd --add-services=https --permanent # 永久开放https服务
firewall-cmd ---remove-services=https --permanent #永久移除服务
firewall-cmd --add-port=3306/tcp --permanent # 永久开放3306端口
firewall-cmd --add-source=192.168.1.0/24 --peramnent # 永久允许某一个IP段访问
#(不加--permanent就是临时修改)
firewall-cmd --get-zone-of-interface=网卡名 # 查看单个网卡的区域
ufw服务
ufw status
ufw allow 80/tcp
ufw allow ssh
ufw delete allow 800p/tcp
ufw delete allow ssh
ufw deny 80/tcp
ufw deny ssh
ufw delete deny 80/tcp
ufw delete deny ssh
ufw reset
ufw status numbered
ufw delete 1 2 3
https/http协议
http/https是网页服务,专门给浏览器访问网站用的
作用: 让别人用浏览器访问你的Linux上的网站
- http=不加密的网页协议,80端口
- https=加密的安全网页协议,443端口
nginx服务
nginx(engine X)
systemctl status nginx # 查看nginx服务状态
systemctl start nginx # 打开nginx服务
systemctl restart nginx # 重启nginx服务
systemctl stop nginx # 关闭nginx服务
systemctl reload nginx # 重新加载nginx服务
systemctl enable nginx # 开机自启
systemctl disable nginx # 关闭开机自启
nginx -t # -t(test)检查配置文件是否写错
nginx -v # -v(version)查看版本
nginx -V # 更加详细参数
nginx -s stop # -s(signal)立即停止
nginx -s quit # 处理完当前请求停止
# 查看nginx端口
ss -ltnp | grep "nginx"
docker服务
一些概念
- 镜像(image)—>软件安装包(静态)
镜像=软件+运行环境+系统+配置 组成的压缩包/安装盘 - 容器(container)—>运行起来的程序(动态)
安装好并且运行的程序 - 仓库(repository/registry)—>存放安装包的应用商店
存放镜像的地方
命令
docker --version # 查看docker版本
docker search nginx # 搜索镜像
docker pull nginx # 拉取镜像,从仓库下载镜像到本地
docker images # 看本地镜像有什么
docker run 镜像名 # 运行镜像/启动容器(如果本地没有,自动下载+直接运行)
docker stop 容器ID/名字 # 停止运行中的容器
docker rm 容器ID/命中率 # 删除容器
docker rmi 镜像ID/名字 # 删除镜像
docker ps # 查看运行中的容器
docker ps -a # 查看所有容器
docker logs 容器ID/名字 # 查看容器运行日志
docker run -d 镜像名 # 后台运行容器
docker inspect # 查看镜像/容器的详细信息
docker tag 镜像名 别名 # 给镜像打标签(给镜像起别名)
docker push # 把本地镜像上传到仓库
docker save -o nginx.tar nginx # 把镜像导出为文件
NetworkManager服务
管理网络的服务 : 管网卡,管IP,能不能上网
systemctl status NetworkManager
systemctl start NetworkManager
systemctl restart NetworkManager
systemctl enable NetworkManager
systemctl disable NetworkManager
systemctl stop NetworkManager
systemctl is-enabled NetworkManager
systemctl
# 查看单个服务的状态
systemctl status nginx
# 查看系统当前正在管理的单元
systemctl list-units # 系统控制的列表单元
systemctl list-units --type=service
systemctl list-units --type=service --state=running # 仅运行中的服务
systemctl list-units --type=service --state=failed # 仅失败的服务
# 查看所有安装过的服务
systemctl list-units-files
# 服务的start/stop/restart/reload/enable/disable/is-enabled/mask/reboot
systemctl mask nginx # 禁止启动
systemctl unmask nginx # 解除mask
systemctl start nginx # 启
systemctl stop nginx # 停止服务
systemctl restart nginx # 重新启动
systenctl reload nginx # 重载服务(不停止服务但是重新加载配置)
systemctl reload-or-restart nginx # 强制重载(重载失败则重启)
systemctl enable nginx # 设置开机自启
systemctl disable nginx # 关闭开机自启
systemctl is-active nginx # 查看是否正在运行
systemctl is-enabled nginx # 查看服务是否开机自启
systemctl cat sshd # 查看服务的配置文件
systemctl show sshd # 查看服务详细参数
journalctl
uname
uname --all(-a) # uname(Unix name),用来查看内核/系统/硬件信息
uname --kernel-name # 查看内核名字
uname --nodename # 查看网络节点主机名
uname --kernel-release # 查看内核发行版本号
uname --kernel-version # 查看内核编译版本,编译时间
uname --operating-system # 查看操作系统类型
uname --machine # 查看硬件架构
uname --pocessor # 打印进程类型
uname --version # 输出版本信息
CentOS包管理器—dnf
# CentOS版本8.0有dnf命令
# 查看CentOS版本
cat /etc/redhat-release
# 查看系统版本
cat /etcos-release
# 查看你内核版本
uname --kernel-release
dnf --version # 查看dnf自身版本
dnf list # 列出系统已经安装+可以安装的所有包
dnf list -installed # 列出已经安装的包
dnf list avaliable # 可安装的包
dnf search 关键字 # 搜索包
dnf info 包名 # 显示包的详细信息
dnf repolist # 查看启用的软件源
dnf repolist all # 查看所有软件源(包括禁用的)
dnf makecache # 更新本地软件源缓存
dnf install 包名 # 安装指定包
dnf install 包名-版本号 # 安装指定版本包
dnf reinstall 包名 # 重新安装包
dnf update # 更新软件源列表
dnf update 包名 # 只更新指定包
dnf upgrade # 升级包
dnf check-updatet # 检查哪些包可以更新
dnf remove 包名 # 卸载指定包本体
dnf purge 包名 # 卸载本体和相关配置文件
dnf autoremove # 卸载无用依赖包
dnf clean all # 清理缓存
dnf history # 查看dnf操作历史
知识一定是重复的,因为温故而知新.
更多推荐




所有评论(0)