一、简介知识
1、Linux发行版
广义上Linux发布的只是Linux内核,它只负责控制硬件、程序进程、文件管理等,并不是可以给普通用户使用的操作系统。Linux发行版是商业公司或者社区在Linux内核基础上增加功能发展而来。常用的发行版有Redhat和Debian两大阵营。
Redhat:红帽是国内在服务器使用最多的,包括RHEL、CentOS。RHEL收费,CentOS由于商业原因停止了长期维护,变成了用于测试的不稳定发行版CentOS Stream,已经不适用在服务器。CentOS曾经占据了大量服务器市场,停止维护后可替代的免费发行版有Rocky linux、Oracle Linux等。
Debian阵营:Debian是最稳定的Linux服务器,因为大版本两三年才更新一次,稳定压倒一切但不得不牺牲很多先进软件的兼容。Ubuntu,在Debian基础上发展起来的,更新快兼容好,最适合个人桌面系统。
其它:Arch Linxu,特点是滚动更新,更新速度快,有linux软件种类最丰富的仓库“AUR”,适合做个人桌面系统。但是因为更新太激进有可能“滚挂”。个人建议:小白慎入,心累勿入,工作用途禁入。
二、包管理
所有软件都存在依赖关系,如果安装一个软件包,就必须同时安装所有其依赖的软件包。包管理有:Debian 系的 apt,RedHat 系的 yum,Arch 系使用 pacman。
- apt常用命令
apt update
: 列出所有可更新的软件清单
apt upgrade
: 升级软件包
apt install <package_1> <package_2>
: 安装软件
apt update <package_name>
:更新指定的软件
apt show <package_name>
: 显示软件包具体信息,如:版本号,大小
apt remove <package_name>
:删除软件包命令
apt autoremove
: 清理不再使用的依赖和库文件
apt search <keyword>
: 查找软件包
apt list --installed
: 列出所有已安装的包
apt list --all-versions
: 列出所有已安装的包的版本信息 - yum常用命令
yum update
: 更新所有软件
yum install <package_name>
: 安装指定的软件
yum update <package_name>
: 更新指定的软件
yum remove <package_name>
: 删除软件
yum search <keyword>
: 查找软件
yum clean
: 清除缓存目录的软件包
三、网络
net-tools软件包是老版本的ip工具,包括ifconfig、netstat等命令。
iproute2软件包是新版本的ip工具,可以做很多net-tools无法做到的事情。
- net-tools
ipconfig
:显示网卡信息,被禁用的网卡看不到。
ipconfig -a
:显示网卡信息,被禁用的网卡能显示,但看不到ip。
ifconfig eth1 up
:启用eth1网卡。
ifconfig eth1 down
: 禁用eth1网卡,从数据链路层断掉,但是网络层ip还在。
ifdown eth1
: 禁用网卡,删除了网络层ip
ifup eth1
:启用网卡 - iproute2
ip addr
=ip a
=ip add list
:可以查看网卡的ip、mac等,即使网卡处于禁用状态也能显示。 - 修改ip地址
- CentOS
/etc/sysconfig/network-scripts
目录下是网卡文件,找到对应的网卡修改
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static #设置为静态IP
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=ens33
UUID=82831f6a-71d5-406b-84c3-c66332964a0f
DEVICE=ens33 #设备名称
ONBOOT=yes #设置开机自启动
DNS1=192.168.78.2 #DNS
IPADDR=192.168.78.12 #IP地址
NETMASK=255.255.255.0 #子网掩码
GATEWAY=192.168.78.2 #网关
重启网络服务
systemctl restart network
如果是CentOS8,重启网卡使用
nmcli c reload ens33
nmcli c up ens33
- Ubuntu
/etc/netplan
目录下修改对应配置文件
network:
ethernets:
ens33:
dhcp4: no #dhcp4关闭
addresses: [192.168.66.10/24] #设置本机IP及掩码
gateway4: 192.168.66.2 #设置网关
nameservers:
addresses: [114.114.114.114] # dns地址
version: 2
重启生效netplan apply
四、防火墙
Linux的防火墙有很多种,一般常用的是ufw、iptables、firewalld。他们都只是Linux系统下网络数据包过滤的配置工具,只制定规则,实际上真正执行这些过滤规则的是netfilter。多个防火墙会存在冲突,制定的过滤规则并不能通用,只开启一种就好。实际企业中尽可能不给服务器配置外网IP,而是通过代理转发或者通过防火墙进行映射。
1. iptables
常见在Debian/Ubuntu上。
service iptables status # 查看防火墙状态
service iptables start # 启动防火墙
service iptables stop # 停止防火墙
service iptables restart # 重启防火墙
chkconfig iptables off # 永久关闭防火墙
chkconfig iptables on # 永久关闭后重启
vim /etc/sysconfig/iptables # 开启80端口
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
2.UFW
由于iptable的命令太过繁琐,于是出现了ufw,它简化了 iptables成为 Ubuntu 和 Debian 等系统上的默认防火墙。但是它们还是两个不同的程序,只使用一种就好。
ufw enable #启用
ufw default deny #系统启动同时关闭所有外部对本机的访问(本机访问外部正常)
ufw disable # 关闭
ufw status #查看防火墙状态
ufw reset # 重置所有规则
ufw allow 8082 #允许外部访问8082端口(tcp/udp)
ufw allow from 192.168.1.100 #允许此IP访问所有的本机端口
ufw delete allow 8082 #删除端口
ufw delete allow from 192.168.254.254 #删除规则
3. firewalld
默认安装在 RedHat 和 CentOS 上。
yum install firewalld firewall-config #安装firewalld
systemctl enable firewalld #开机自动启动服务
systemctl disable firewalld #取消开机启动
systemctl status firewalld #查看firewall状态
systemctl stop firewalld #关闭服务
firewall-cmd --version #查看版本
firewall-cmd --state #显示状态
firewall-cmd --reload #重启加载防火墙
firewall-cmd --complete-reload #完全重启防火墙
firewall-cmd --list-ports #查看防火墙开放的端口
firewall-cmd --list-all #查看防火墙规则
firewall-cmd --query-port=3306/tcp #查看3306端口是否开启
firewall-cmd --zone=public --add-port=3306/tcp --permanent #开启3306端口
firewall-cmd --zone=public --remove-port=3306/tcp --permanent #关闭3306端口
firewall-cmd --zone=public --add-port=8081-8082/tcp --permanent #批量添加
五 、常用命令
1、拷贝文件
- 终端下
复制:ctrl + shift + c
粘贴:ctrl + shift + v - 命令行
复制:
cp dir1/a.txt dir2
:把a.txt从dir1移动到dir2。
cp -r dir1 dir2
:把dir1及其dir1下所包含的文件复制到dir2。
将A电脑上的文件拷贝到B电脑上则应使用scp和scp -r。
剪切:
mv a.txt dir1
:把a.txt移动到dir1目录。
mv a.txt dir1/b.txt
:把a.txt移动到dir1目录下,并重命名为b.txt。
2. 压缩
-c 创建压缩
-x 解压缩
-v 显示详细信息
-f 指定压缩后的文件名
-z 打包的同时压缩
- tar
解包:tar -xvf filename.tar
压缩:tar -cvf filename.tar dirname
- gz
解包:gzip -d filename.gz
压缩:gzip filename
- tar.gz:
解压:tar -zxvf filename.tar.gz
压缩:tar -zcvf filename.tar.gz dirname
- zip
解压:unzip -d dirname filename.zip
压缩:zip -r filename.zip dirname
3. 编译安装
软件的安装包解压缩后有的不能直接使用,需要再编译
首先安装 gcc 编译器:yum -y install gcc
编译: make
安装:make install
4.账号
- 新建用户
adduser user1
、passwd user1
- 修改密码
passwd user1
- 添加sudo权限
增加读写权限:chmod u+w /etc/sudoers
打开文件:vim /etc/sudoers
增加用户:在root ALL=(ALL) ALL
下新增一行user1 All(All) All
恢复读写权限:chmod u-w /etc/sudoers
5. 系统信息
- 查看剩余内存
free -m
- 监视进程
top
进阶版,如果想看正在运行的完整进程列表可以使用htop
Centos:yum install htop
Ubunto:sudo apt install htop
- 查看进程
所有进程:ps -ef
根据程序名称查找进程:ps -ef | grep java
- 查看磁盘空间
df -h
- 查看端口占用
netstat -tln
netstat -tln | grep 80
- 实时查看日志
tail -100f ./demo.log