为什么这么多的的设备都选择使用 Linux?因为它是开源软件(open source software),具有不同的含义。使用一个安全的操作系统工作变得必不可少的事,而 Linux 恰好满足了这个需求。因为它是开源的, 任何人都可以查看代码并研究来判定是否有一些潜在的能够造成安全风险的缺陷。
Linux系统同时可以支持多个用户,每个用户对自己的文件设备有特殊的权利,能够保证各用户之间互不干扰,就像手机开了助手一样,同时登陆多个qq账号,当硬件配置非常高时,每个用户还可以同时执行多个任务、多个线程同时工作、提高效率,简直是完美的一塌糊涂,单凭多用户而言就完爆其他操作系统。
你也许会听到Windows服务器长时间运行而突然宕机,但你绝不会听到Linux系统服务器因为长时间不关机会卡死,在Linux上几乎是不会出现这种情况的。Linux服务器可以无休止的运行下去不宕机,因为它继承了Unix卓越的稳定性和高效性。正因为它的稳定才获得了众多用户的青睐,因为它的高效,它的使用范围更加广阔,然而Linux还可以提供一些高可靠性的服务,比如:LNMP、虚拟化、数据库服务等等。
其安全性相比其他系统也要安全很多,由于Linux拥有相当庞大的用户和开源社区支持,因此能很快发现系统漏洞,并迅速发布安全补丁及时更新,同时还具有很强的“免疫力”特点,很少受到病毒攻击,对于一个开放式系统而言,在方便用户的同时,很可能存在安全隐患。
不过,利用Linux自带防火墙(iptables,firewalld)、入侵检测和安全认证等工具,及时修补系统的漏洞,就能大大提高Linux系统的安全性,让黑客们无机可乘,同时还有安全增强机制SElinux,在linux内核中提供强制访问控制,功能非常全面,能够很好保护系统和服务,不过很多人喜欢把它关闭,这相对安全性就不是很好了。
还有Tcp_wrappers也能够提供很好的网络服务访问控制,Linux系统对于用户和文件管理权限的管理也是相当出色的,能够很好的控制权限,保证文件的机密性,也是其他系统无法比拟,所以Linux系统在一定程度上是坚不可摧的。
由于Linux要保证其稳定性,所以并没有像其它操作系统一样内核如此臃肿庞大、漏洞百出,随着Linux内核的不断更新,不断提升着优势,Linux操作系统能把服务器的硬件优势体现的淋漓尽致,因为Linux系统吸取了Unix系统近1/4世纪发展的经验,最主要的是Linux开放源代码,保证系统稳定性,更好的调用硬件功能,同时还提供了丰富的系统资源工具,方便查看资源的利用率。
# 查看当前目录地址
pwd
# 查看ip 地址
ip address
# 清屏
clear
# 强制停止
Ctrl + C
ls [-ald] [目录名]
# 目录名不填写,默认为当前目录。
# -a:列出的全部的文件,包括隐藏文件
# -l:列举出全部的信息
# -d:仅查看目录本身
cd 具体路径 #切换到指定的路径
cd .. # 返回上级目录
cd / # 返回根目录
cd ~ # 返回当前登录用户的HOME目录
cd - # 返回上一次操作所在目录
mkdir 目录名 # 创建一级目录
mkdir -p 多级目录 #创建多级目录
# 删除目录
rm [-rf] 目录名
# -r:代表递归删除目录下的全部内容
# -f:不询问,直接删除
cp -r 源目录 目标目录 # 递归复制目录全部内容
mv 目录 路径 # 将目录移动至给定的路劲下
mv 目录 新目录名 #目录重命名,如果新目录名存在,则是移动目录
touch 文件名1 文件名2 ... # 创建文件1、文件2、...
vi 文件名 # 查看文件。(查看模式)
i # 在当前光标处,进入编辑模式。
a # 在当前光标后一格,进入编辑模式。
o # 在当前光标下一行,进入编辑模式。
esc # 退出编辑模式,回到查看模式。
: # 从查看模式进入到底行命令模式。(底行命名模式)
wq #在底行命令模式下,保存并退出。
q! #在底行命令模式下,不保存并退出
rm -f 文件名 #强制删除文件
文件的复制和移动与目录的复制和移动操作是一样的
tar [-zxvf] 压缩包名称 [-C 路径]
# -z: 代表压缩包后缀是.gz的
# -x: 代表解压
# -v: 解压时,打印详细信息
# -f: -f选项必须放在所有选项的最后,代表指定文件名称
# -C 路径: 代表将压缩包内容解压到指定路径
tar [-zcvf] 压缩包名称 文件1 文件2 目录1 目录2 ...
# -c: 代表打包
# 其他参数同上
yum -y install zip # 安装zip压缩程序
yum -y install unzip # 安装zip解压程序
unzip 压缩包名称 # 解压
zip -r 压缩包名称 文件1 文件2 目录1 目录2 ... # 压缩
useradd [-cgd] [选项指定的具体内容] 用户名
# -c:代表comment,给用户添加一段注释
# -g:代表group,可以修改用户的所在组
# -d:代表指定用户的HOME目录
passwd 用户名
su 用户名
# [root@localhost ~]# -> root用户在本地登录,并且当前在~目录下,#代表是超级管理员
# [qf@localhost ~]$ -> qf用户在本地登录,并且当前在~目录下,$代表是普通用户
userdel [-r] 用户名
# -r: 代表删除用户的同时,删除该用户的HOME目录
usermod [-cgd] [选项指定的具体内容] 用户名
# -c:代表comment,给用户添加一段注释
# -g:代表group,可以修改用户的所在组
# -d:代表指定用户的HOME目录
ls -l # 查看文件的详细信息
chmod [-R] 777 文件|目录 # 数字方式修改文件权限
# rwx在这三个权限中r:4,w:2,x:1
# -R: 当修改一个目录权限时,可以添加-R,将目录下的全部内容,都修改权限
# -rwxrwxrwx 1 root root 165 Nov 29 09:30 b.txt
# 第一个rwx表示当前用户对该文件的操作权限
# 第二个rwx表示当前用户所在用户组对该文件的操作权限
# 第三个rwx表示这台机器上任一用户对该文件的操作权限
chmod [-R] a=rw 文件|目录 # 符号方式修改文件权限
# user:u,group:g,other:o,all:a
# read:r,write:w,execute:x
# 赋予权限的方式 , 添加:+,减掉:-,设定:=
# -R: 当修改一个目录权限时,可以添加-R,将目录下的全部内容,都修改权限。
ps -ef # 查看全部正在运行的进程
# grep = global regular expressions and print out the line
ps -ef | grep 搜索的内容 # 按条件搜索进程
kill -9 pid # 杀死进程
systemctl start 服务名称 # 启动服务
systemctl stop 服务名称 # 停止服务
systemctl restart 服务名称 # 重启服务
systemctl enable 服务名称 # 开机自启动
systemctl disable 服务名称 # 禁止开机自启动
systemctl status 服务名称 # 查看服务状态
yum -y install net-tools # 安装net-tools工具
netstat -naop | grep 端口号 # 查看端口号占用情况
curl 访问地址 # 返回页面内容
安装wget
yum -y install wget
使用wget 下载资源
# 通过wget下载MySQL存储库
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
查看MySQL的 rpm 包
# 查看rpm包
rpm -qa|grep mysql
安装MySQL的rpm包
# 安装rpm包
rpm -Uvh mysql80-community-release-el7-3.noarch.rpm
查看MySQL发行版本
yum repolist all | grep mysql
安装可用的MySQL社区版服务
yum -y install mysql-community-server --nogpgcheck
启动MySQL服务
systemctl start mysqld.service
systemctl status mysqld # 查看服务是否启动
查看初始密码
grep 'temporary password' /var/log/mysqld.log
连接MySQL
mysql -u root -p
输入初始密码进行连接
修改密码
# 注意 这里的密码不能太简单,数据库有密码设置要求
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'QFcd@2202';
调整密码要求
SET GLOBAL validate_password.policy=0; #将密码检测策略调整过到最低,这样就可以设置一些简单的密码
SET GLOBAL validate_password.length=4; #将密码长度最小值设置为4
SET GLOBAL validate_password.mixed_case_count=0; #将密码大小写要求设置为0个字符
SET GLOBAL validate_password.number_count=0; # 将密码数字要求设置为0个字符
SET GLOBAL validate_password.special_char_count=0; # 将密码特殊字符要求设置为0个字符
SET GLOBAL validate_password.check_user_name=OFF; # 关闭用户名检测
创建远程连接的用户
CREATE USER 'remote'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
给用户授权
# 授权
GRANT ALL PRIVILEGES ON *.* TO 'remote'@'%' WITH GRANT OPTION;
# 刷新权限
FLUSH PRIVILEGES;
云服务器开放3306端口
cd /usr # 切换目录
ls # 查看文件列表
rpm -ivh jdk-8u311-linux-x64.rpm # 安装 jdk
配置环境变量
vi /etc/profile # 编辑文件,然后按下 i,进入编辑模式,将下面的内容添加到文件的末尾
export JAVA_HOME=/usr/java/jdk1.8.0_311-amd64
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
按下 esc
然后输入:wq
保存退出
重新加载环境变量
source /etc/profile
测试环境是否配置成功
java -version
解压压缩包
tar -zxvf apache-tomcat-9.0.55.tar.gz -C /usr
启动 Tomcat
cd /usr/local/apache-tomcat-9.0.55/bin # 切换目录
./startup.sh # 启动
cd ../logs
tail -f catalina.out # 监控日志