linux

linux概述

Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个多用户多任务、支持多线程多 CPU 的操作系统

特点

  1. 开源稳定
  2. 多线程 ,多用户,处理高并发
  3. 安全性好
  4. 对内存和文件管理优越

用途

  1. Linux 运维工程师
  2. Linux 嵌入式开发工程师
  3. Linux 环境下部署项目

VMware虚拟机

虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统

进入虚拟系统后,所有操作都是在这个全新的独立的虚拟系统里面进行,不会对真正的系统产生任何影响,现有系统和虚拟镜像间灵活切换

linux目录结构

在这里插入图片描述

linux常用命令

文件目录

  • cd… 进入到根目录
  • ll 查看该目录下详细文件信息
  • ls 查看该目录下文件
  • ls -a 显示隐藏文件
  • mkdir abc 创建文件夹名为abc
  • rm -f abc 删除文件夹名为abc
  • rmdir dir1 删除一个叫做 ‘dir1’ 的目录’(删除空文件夹)
  • rm -rf dir1 删除一个叫做 ‘dir1’ 的目录并同时删除其内容
  • cp 文件名 /目标地址 复制文件
  • touch file 创建文件
  • tar –zxvf abc 解压.tar.gz 文件abc .tar.gz
  • env 查看环境变量
  • printenv USER 查看环境变量USER的值
  • ps -f 查看当前进程

网络配置

仅主机模式
桥接模式

通过物理主机网卡架设了一座桥梁,从而连入了实际的网络中

NAT 模式

利用主机的VMnet8 虚拟网卡,主机上的 VMnet8 虚拟网卡被直接连接到 VMnet8 虚拟交换机上与虚拟网卡进行通信

配置

  1. 将主机上的VMnet8虚拟网卡的网关与vmware虚拟机nat设置的默认网关相同

  2. 设置静态固定ip

    修改 /etc/sysconfig/network-scripts/ifcfg-ens33

    ONBOOT=yes 			启动生效 
    BOOTPROTO=static 		设置为静态 ip 
    IPADDR=192.168.网段.xx 		ip 地址 
    GATEWAY=192.168.网段.2 		网关 
    NETMASK=255.255.255.0 			子网掩码 
    DNS1=192.168.网段.2
    

防火墙设置

systemctl start firewalld.service 启动防火墙 
systemctl stop firewalld.service 停止防火墙 
systemctl status firewalld 查看防火墙状态 
systemctl disable firewalld.service 禁用防火墙

软件安装

yum : 软件包管理器

基于 RPM包管理,能够从指定的服务器自动 下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。yum 提供了查找、安装、删除某一个、 一组甚至全部软件包的命令,而且命令简洁而又好记

语法

  • yum list | grep 程序名 查看已经安装的软件
  • Yum list 程序名 查看可以安装的软件

yum [options] [command] [package …] (安装)

  • options:可选,选项包括-h(帮助),-y(当安装过程提示选择全部为"yes"),-q(不显示安装的过程)等等。
  • command:要进行的操作 。 Install(安装), update (更新), info (查看信息),remove (删除), clean (清除缓存)
  • package :操作的对象

vim编辑器

安装:yum -y install vim

命令:

  • vim 文件名 进入文件编辑,默认为预览模式
  • i 进入编辑模式
  • esc 退出输入模式
  • :wq 保存并离开
  • :q! 离开不保存

宝塔Linux

sudo /etc/init.d/bt default查看登录地址和账号
cd /www/server/panel && python tools.py panel testpasswd重置密码

java环境搭建

安装jdk

  1. 将jdk上传到/usr/local/java 目录下
  2. 解压: tar –zxvf jdk-8u261-linux-x64.tar.gz
  3. 配制环境变量:
    1. vim /etc/profile 修改环境变量文件加入如下两行(具体视安装 java地址修改)
    2. export JAVA_HOME=/usr/local/java/jdk1.8.0_111
    3. export PATH= P A T H : PATH: PATH:JAVA_HOME/bin
    4. 使文件生效 : source /etc/profile

安装tomcat

  1. 将安装包apache-tomcat-9.0.37.tar.gz解压到/usr/local
  2. 进入bin目录

./startup.sh 启动服务器 ./shutdown.sh 关闭服务器

在浏览器中访问虚拟机中的 tomcat: ip+端口

安装mysql

  1. 检测系统是否自带安装 mysql :yum list installed | grep mysql

  2. 给 CentOS 添加 rpm 源,并且选择较新的源

    wget https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm

  3. 安装第一步下载的 rpm 文件

    yum install mysql80-community-release-el8-1.noarch.rpm

  4. 使用 yum 安装 mysql

    yum install mysql-server

  5. 查看当前是否为开机服务

    systemctl list-unit-files|grep

  6. 设置为开机启动

    systemctl enable mysqld.service

  7. 查看当前是否启动 MySQL 服务

    ps -ef|grep mysql

  8. 启动 mysql 服务

    systemctl start mysqld.service

  9. 登录设置即可

    mysql -uroot -p

  10. 设置其他 ip 可以访问

    Update user set host=’%’where user=’root’

  11. 设置密码及加密格式

    输入命令 ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘newpassword’;

  12. 刷新指令 FLUSH PRIVILEGES;(刷新权限)

下载元数据失败问题

CentOS Linux 8 - AppStream 错误:为仓库 ‘appstream’ 下载元数据失败 : Cannot prepare internal mirrorlist:

原因:CentOS Linux 8操作系统版本在2022年12月31日结束了生命周期(EOL),Linux社区不再维护该操作系统版本。所有的CentOS Linux 8的yum源都无效!

解决

  1. 备份旧的源
    cd /etc/yum.repos.d/
    mkdir repoBack
    mv *.repo repoBack/
  2. 更新新的源
    到阿里云网站 http://mirrors.aliyun.com/repo/
    下载对应的repo文件
    下载完成后传到 /etc/yum.repos.d/ 目录下
    wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
  3. 清除旧的yum缓存并生成新的yum缓存
    yum clean all
    yum makecache
  4. yum update

Shell编程

shell是一个命令行解释器,它接收应用程序和用户命令,然后调用内核

可以用shell编程编写一些定时化操作命令,比如向数据库保存日志等

hello world

第一行以#!/bin/bash开头,指定解析器,后面编写命令,使用bashsh执行
在这里插入图片描述
使用chomd +x hello.sh给这个文件添加可执行权限

  1. 就可以直接执行/shells/hello.sh来运行脚本文件
  2. 如果在shell目录下,直接使用相对路径./hello.sh来执行
  3. . hello.sh:使用source.执行文件

前两种都是启动了一个bash进程,在进程里执行命令,第三中不启动子shell进程,避免了子环境获取不到父环境信息

变量

系统变量
在这里插入图片描述
自定义变量

a=10定义局部变量
a=1+2a=1+2 , a=$[1+2] a=3运算用[ ]
readonly a=5定义只读变量,不能撤销
echo $a输出
a="hello world"定义局部变量语句
set |grep a可以获取系统或自定义变量
export a导出局部变量,声明成全局变量
unset a撤销a 的赋值

在子shell改完后的全局变量在父shell不可知

特殊变量

$0为脚本名称,$1第一个参数 ,${10}第十个参数
$#获取所有输入参数个数
$*代表命令行中所有参数,看成一个整体
$@代表命令行中所有参数,把每个参数区分对待(集合)

$?最后一次执行命令的返回状态:0正常 1一般性错误

运算符

a=$[5*10]运算
a=$(expr 5 \* 2)将一串字符当作命令

条件判断

  • [ $a = 10 ],注意空格
  • [ $a != 10 ]不等

$?接收判断结果,0为true,1为false

整数间比较

-eq等于
-ne不等于
-lt小于
-gt大于
-le小于等于
-ge大于等于

按照文件权限判断

[ -r hello.sh ]该文件是否有可读权限
-w
-x

&&逻辑与,||逻辑或
在这里插入图片描述

流程控制

if判断,前后加个x,防止传空值报错
在这里插入图片描述
多分支
在这里插入图片描述
case
在这里插入图片描述

循环

for

语法1
在这里插入图片描述
在这里插入图片描述
语法2
在这里插入图片描述
语法3,类似增强for循环
在这里插入图片描述

while
在这里插入图片描述

读取控制台输入

-t超时取消退出
在这里插入图片描述

函数

函数就像轻量级的脚本文件,多出返回值

系统函数

调用: $(),命令替换

basename
字符串截取,显示文件名,删掉所有的前缀包括最后一个’/',然后将字符显示出来;

可以切前缀或者后缀
在这里插入图片描述
dirname
字符串截取,截取前面的路径
在这里插入图片描述

自定义函数

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

EnndmeRedis

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值