Linux操作系统

目录简介:

lrwxrwxrwx.   1 root root     7 Jun 16  2021 bin -> usr/bin    //标准linux工具
dr-xr-xr-x.   5 root root  4096 Sep  7  2022 boot      //核心文件
drwxr-xr-x   20 root root  3040 Nov 20 10:01 dev       //Device 驱动文件
drwxr-xr-x.  83 root root  4096 Nov 20 09:48 etc        //系统配置文件
drwxr-xr-x.   2 root root  4096 Apr 11  2018 home    //用户目录,每个用户都有自己的用户目录
lrwxrwxrwx.   1 root root     7 Jun 16  2021 lib -> usr/lib    //32位库文件
lrwxrwxrwx.   1 root root     9 Jun 16  2021 lib64 -> usr/lib64    //64位库文件
drwx------.   2 root root 16384 Jun 16  2021 lost+found    //崩溃目录(无归属、已损坏)
drwxr-xr-x.   2 root root  4096 Apr 11  2018 media        //媒体设备(VCD、DVD)
drwxr-xr-x.   2 root root  4096 Apr 11  2018 mnt        //挂载其他设备(U盘、移动硬盘)
drwxr-xr-x.   2 root root  4096 Apr 11  2018 opt        //安装第三方软件的目录(并非系统运行必须)
dr-xr-xr-x  106 root root     0 Nov 20 09:48 proc        //虚拟目录(用于系统内存的映射,可以获取硬件的运行状态)
dr-xr-x---.   5 root root  4096 Sep  7  2022 root        //超级用户的主目录
drwxr-xr-x   25 root root   820 Nov 20 09:49 run        //临时文件目录(程序运行时的临时文件)
lrwxrwxrwx.   1 root root     8 Jun 16  2021 sbin -> usr/sbin    //Super User bin (系统管理员使用的系统管理程序)
drwxr-xr-x.   2 root root  4096 Apr 11  2018 srv        //服务相关数据的目录
dr-xr-xr-x   13 root root     0 Nov 20  2023 sys        //文件系统(在内核当中对象被创建时 会在sys目录下创建相应的目录)
drwxrwxrwt.   8 root root  4096 Nov 20 09:49 tmp    //临时文件目录(和run区别 tmp:用户产生的临时数据 run:系统产生的临时数据)
drwxr-xr-x.  13 root root  4096 Jun 16  2021 usr    //默认软件安装目录
drwxr-xr-x.  21 root root  4096 Sep  7  2022 var    //用来记录一些经常发生改变的数据

tomcat安装(需要依赖JDK环境):

        下载tomcat:Apache Tomcat® - Apache Tomcat 9 Software Downloadsicon-default.png?t=N7T8https://tomcat.apache.org/download-90.cgi

        在/usr/local 下新建 tomcat 文件夹 、将压缩文件放进去 并解压

cd /usr/local  //进入/usr/local
mkdir tomcat//新建tomcat文件夹

//将压缩包放入tomcat文件夹下后

tar -zxvf  apache-tomcat-9.0.83.tar.gz  //解压压缩文件

        配置默认工程和修改端口号:

        进入/bin下启动tomcat:

sh startup.sh | ./startup.sh// 启动项目

sh shutdown.sh | ./shutdown.sh// 停止项目

工具下载:

家庭/学校免费 - NetSarang Websiteicon-default.png?t=N7T8https://www.xshell.com/zh/free-for-home-school/

jdk安装:

        下载jdk压缩文件:

Java Archive Downloads - Java SE 11 | Oracle Indiaicon-default.png?t=N7T8https://www.oracle.com/in/java/technologies/javase/jdk11-archive-downloads.html

        在/usr/local 下新建 java 文件夹 、将压缩文件放进去 并解压

cd /usr/local  //进入/usr/local
mkdir java //新建java文件夹

//将压缩包放入java文件夹下后

tar -zxvf jdk-11.0.20_linux-x64_bin.tar.gz  //解压压缩文件

        配置环境变量:

vim /etc/profile  //进入配置文件

//在最后添加以下配置
export JAVA_HOME=/usr/local/java/jdk-11.0.20  //jdk环境
export PATH=$JAVA_HOME/bin:$MYSQL_HOME/bin:$MYSQL_HOME/support-files:$PATH

//配置好后
java -version //查看java版本 

常见命令:

        ll  //查看所有文件夹

        less 文件名  //查看文件内容

        cd ..  //返回上一级

        cd /  //返回根目录

        cd 文件名 //跳转目录

        mkdir 文件名  //新建文件夹

        cp 具体文件 复制到的具体目录   // 复制文件

        rm (-f / -r) 具体文件   //删除文件 加 -f 不提示是否删除 -r 递归删除整个文件夹及其内容

        tar -zxvf 压缩文件名   // 解压文件

        tar -czvf  压缩包名.tar.gz  文件名/    //  压缩文件  c:创建一个压缩文件 z:使用gzip进行压缩,压缩出来的后缀就是.gz   v:显示进度   f:需要压缩的文件名

        vi / vim 文件名   // 编辑文件  (进入后 输入i 开始编辑  退出流程:按esc键 —> 输入:wq

         i // 编辑

        w // 保存

        q // 退出

        source /etc/profile  // 刷新环境变量

        cat /etc/redhat-release // 查看当前Linux版本

        touch 文件名.后缀  //  创建文件

        sh startup.sh   // sh:shell脚本 启动shell脚本、

        yum install curl  // 通过包管理器yum 下载安装curl

        curl http://www.baidu.com  // 发送请求

        mv 原文件名 (现文件名 / 路径)  // 修改文件名 / 移动文件

        groupadd 组名   // 新建用户组 

        useradd -r -g mysql(组名) mysql(用户名)  // 添加一个用户mysql 到mysql 用户组下

        chown -R mysql:mysql mysql-5.7.43   //把mysql-5.7.43文件夹的权限交给mysq组下的mysql用户

        chmod -R 754 文件夹名  // 修改权限       

        clear // 清屏 

        systemctl (start 、stop、restart、status) 服务名    //  启动、停止、重启、查看服务状态

        source  sql文件地址  //  执行sql 文件

       sudo   XXX  // sudo(superuser do)  后面的命令执行的全部内容使用超级用户(root)来执行

       ifconfig   //  获取本机ip地址

       find  地址  -name “文件名”   // 查找文件

        &  // 在命令行中&符号用于在后台运行进程  及时你关闭终端或命令窗口   该进程也会继续执行

        ps aux | grep redis-server   //  查询redis服务

                ps:表示查看当前运行的进程信息

                aux: a 表示所有用户进程  u 用户信息为主的显示  x  显示所有进程

                |:管道符号 用于将前一个命令的输出作为下一个命令的输入

                grep:他是一个文本搜索命令

                redis-server:搜索的内容

        kill + id  // 杀死进程

       

权限:

       drwxr-xr-x 9 root root     4096 11月 21 15:14 apache-tomcat-9.0.83

        drwxr-xr-x  //权限
        9 //子目录数量
        root root     // 分别表示 目录的 所有者 和 所属的组
        4096  //如果是目录 表示 目录元数据所占用的空间 而不是 目录内容的大小
                  //如果是文件 则表示文件的大小 单位 bit
        11月 21 15:14   // 创建时间
        mysql-5.7.43   // 文件名称

         drwxr-xr-x  或者   -rw-r--r--

        第一个符号  //  -:文件  d:目录
        rw-  // 文件所有者权限
        r--   // 文件所在组的权限
        r--  // 其他用户权限

         r:可读(4)  、 w:可写 (2)  、x:可执行(1)

MySql安装:

        *准备工作,把mysql传到服务器。检查是否有旧版本,然后将其卸载

检测是否已经安装了mysql
rpm -qa | grep mysql 
  
如果已经安装了,将其卸载,如:
rpm -e --nodeps  mysql-libs-5.1.71-1.el6.x86_64

mysql -V / --version  // 查看mysql 的客户端工具是否安装

        下载压缩包地址:MySQL :: Download MySQL Community Server (Archived Versions)icon-default.png?t=N7T8https://downloads.mysql.com/archives/community/        在usr/local下,拉取压缩包:

wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.43-linux-glibc2.12-x86_64.tar.gz

         解压mysql压缩文件、修改文件名及删除压缩包

# 解压 xz 后缀
xz -d 压缩文件 

# 解压 tar后缀
tar -xvf mysql-5.7.43-linux-glibc2.12-x86_64.tar.gz  #zip方式 -zxvf
mv mysql-5.7.43-linux-glibc2.12-x86_64 mysql
rm -f mysql-5.7.43-linux-glibc2.12-x86_64.tar.gz

        创建mysql用户组和用户并修改权限

groupadd mysql #创建用户组
useradd -r -g mysql mysql #创建用户
cd /usr/local/mysql  #进入mysql文件
chown mysql:mysql -R ./  #将mysql目录所有权给创建的mysql用户

        初始化mysql

./bin/mysqld_safe --user=mysql &
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/mysql-5.7.43 --datadir=/usr/local/mysql/mysql-5.7.43/data

       修改当前目录拥有者为root用户:

chown -R root:root ./

        修改当前data目录拥有者为mysql用户:

chown -R mysql:mysql data

        添加到系统进程:

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

        配置环境变量:

vim /etc/profile //编辑配置文件

//在最后添加一下配置

export MYSQL_HOME=/usr/local/mysql/mysql-5.7.43

export PATH=$JAVA_HOME/bin:$MYSQL_HOME/bin:$MYSQL_HOME/support-files:$PATH

        其他安装方式: 

Linux-CentOS7安装配置mysql5.7保姆级教程-CSDN博客文章浏览阅读721次。对于个人开发环境,设置比较简单的密码(生产环境服务器要设置复杂密码)卸载mariadb,原因是mariadb与mysql冲突。将上一步得到的密码复制到password后。图示表明已经完成mysql环境的搭建。获取mysql5.7的压缩包。解压下载得到的压缩包。https://blog.csdn.net/qq_59081708/article/details/128589402

Linux安装 mysql-阿里云开发者社区Linux安装 mysqlicon-default.png?t=N7T8https://developer.aliyun.com/article/1208721?spm=5176.21213303.J_qCOwPWspKEuWcmp8qiZNQ.169.16942f3ddNkRUf&scm=20140722.S_community@@%E6%96%87%E7%AB%A0@@1208721._.ID_community@@%E6%96%87%E7%AB%A0@@1208721-RL_linux%E5%AE%89%E8%A3%85mysql-LOC_llm-OR_ser-V_3-RK_rerank-P0_9

          开启远程连接:           

use mysql; // 先使用mysql数据库
update user set host = '%' where user = 'root'; //修改可以使root远程连接
select host, user from user;
flush privileges; //刷新

         修改数据库密码:

set password for 'root'@'localhost'=password('xxxxx'); //修改密码
flush privileges; //刷新使密码生效
quit //退出mysql 然后重新连接数据库测试密码是否修改成功

          数据库密码忘记:

                    编辑  etc/my.cnf  文件 在最后添加一下代码

skip-grant-tables  //重启mysql服务就可无密码登录

Nginx安装:

nginx: downloadicon-default.png?t=N7T8http://nginx.org/en/download.html        linux 系统下四种nginx安装方法_linux_水步天-华为云开发者联盟linux 系统下四种nginx安装方法1、背景2 linux 的四种安装方式3 安装步骤3.1 yum 安装1、背景Nginx是一款轻量级的Web服务器、反向代理服务器,由于它的内存占用少,启动极快,高并发能力强,在互联网项目中广泛应用。本文介绍三种基于linux环境下的安装nginx的方法,安装版本为现阶段官网推出的最新稳定版本。环境说明软件项目版本操作系统Centos7.9nginx1.20 水步天 华为云开发者联盟icon-default.png?t=N7T8https://huaweicloud.csdn.net/635611edd3efff3090b59b74.html?spm=1001.2101.3001.6650.16&utm_medium=distribute.pc_relevant.none-task-blog-2~default~BlogCommendFromBaidu~activity-16-123878716-blog-129692297.235%5Ev38%5Epc_relevant_sort_base1&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~BlogCommendFromBaidu~activity-16-123878716-blog-129692297.235%5Ev38%5Epc_relevant_sort_base1&utm_relevant_index=21#31_yum_ningx_27

        CentOS7下RPM方式安装的Nginx版本升级_nginx热升级1.22.1-CSDN博客文章浏览阅读1.7k次。使用 RPM 安装的Nginx升级版本_nginx热升级1.22.1https://blog.csdn.net/huayi550/article/details/127849309

        解决问题https://www.cnblogs.com/Bookcict/p/17251038.htmlicon-default.png?t=N7T8https://www.cnblogs.com/Bookcict/p/17251038.html

redis安装:

        下载安装包并解压:

wget https://download.redis.io/releases/redis-7.0.14.tar.gz?_gl=1*i3f6af*_ga*MTAzMjMzOTg0Mi4xNzAxMDQ3NDY3*_ga_8BKGRQKRPV*MTcwMTA0NzQ2Ni4xLjEuMTcwMTA0NzQ3OS40Ny4wLjA.*_gcl_au*MTUwNzg0ODUxMS4xNzAxMDQ3NDY3 //安装
tar -zxvf redis-7.0.14.tar.gz?_gl=1*i3f6af*_ga*MTAzMjMzOTg0Mi4xNzAxMDQ3NDY3*_ga_8BKGRQKRPV*MTcwMTA0NzQ2Ni4xLjEuMTcwMTA0NzQ3OS40Ny4wLjA.*_gcl_au*MTUwNzg0ODUxMS4xNzAxMDQ3NDY3   //解压

         编译 redis:

sudo make install//编译、安装和权限管理一气呵成

        修改配置文件redis.conf 配置白名单:

        设置连接密码:

        启动redis

redis-server redis.conf &  //带上配置文件启动redis服务
redis-cli -a + 密码  //连接redis

        *通过跳板机连接:

 redis-cli -h ip地址 -p 端口号 -a + 密码   //连接其他服务器

        重启redis服务:

ps aux | grep redis-server //  先查询redis服务进程
                
kill + id// 杀死redis进程  然后再启动redis

nacos 安装:

        nacos官网:

Nacos支持三种部署模式Nacos支持三种部署模式icon-default.png?t=N7T8https://nacos.io/zh-cn/docs/deployment.html

        官方下载地址:

Releases · alibaba/nacos · GitHuban easy-to-use dynamic service discovery, configuration and service management platform for building cloud native applications. - Releases · alibaba/nacosicon-default.png?t=N7T8https://github.com/alibaba/nacos/releases

        在 /usr/local 下创建nacos文件夹,将压缩包传到改文件夹下并解压:

cd /usr/local  //先进入该文件下
mkdir nacos //创建nacos文件夹
cd nacos  //进入nacos
tar -zxvf  nacos-server-2.2.0.tar.gz  //解压

        创建nacos_config 数据库,运行conf文件下面的mysql-schema.sql文件:

        配置conf下面的aapplication.properties文件 修改数据源mysql:

        单机模式启动:

sh startup.sh -m standalone

        集群模式:

集群部署说明集群部署说明icon-default.png?t=N7T8https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html

集群Nacos搭建 - 简书三节点Nacos 2.x安装手册 一、准备工作 Nacos 依赖Java[https://docs.oracle.com/cd/E19182-01/820-7851/inst...icon-default.png?t=N7T8https://www.jianshu.com/p/d15c121a6194

        nacos访问地址 //第一次进入必须修改密码:

http://IP地址:8848/nacos/index.html

MQ(Message Queue):

        消息队列,是在消息的传输过程中保存信息的容器,是用于系统之间的异步通信。

        异步通信:

                 相当于王五充当二人的秘书,张三和李四只需要给王五说彼此想传递的信息,之后就可以做自己想做的事情,当需要获取对方说话的内容时从王五(消息队列)那里获取即可。

        同步通信:

                张三和李四交流逐句交流,除此之外不做任何事情。

        名称解析:

                消息:计算机之间传递数据的单位。

                 队列:是数据结构中的一个概念,在队列中数据先进先出,后进后出。(如:排队系统等)

                 订阅:是指为消费者服务的,消费者提前订阅,当消息队列中有消息产出时,会自动获取消息进行消费。 (如:订报纸等)

        MQ的优点:

                 在高频业务中,某个环节(服务)出现异常或故障会导致整个系统崩溃。(如:库存系统、支付系统、物流系统等)在引入MQ之后,服务与服务之间耦合度会大大降低,增加系统的容错性。

        MQ的缺点:

                 引入的中间件(MQ等)越多,系统的性能越低,系统的复杂度大大提高。

         使用场景:

                秒杀活动、抢红包、抢票

        五种工作模式:

                队列:

                        1.简单工作模式(Simple)
                        2.工作队列模式(Work Queue)

                订阅:

                        1.发布订阅模式(Publish/Subscribe)
                        2.路由模式(Routing)
                        3.通配符模式(Topic)       

       手动确认模式:

                basicAck:成功处理

                basicNack:消费者处理(处理失败是会有两种处理方式)

                        1、需要将这条信息重新放回到队列中

                        2、直接将信息丢弃

                basicReject:和basicNack相似,区别在于他只能拒绝一个而 basicNack 可以拒绝多个

        死信队列(Dead Message):

                在MQ中死信队列相当于电脑中的垃圾回收站,有了死信队列就有死信交换机

        延迟队列:

                延迟队列是指消息进入队列后不会立即被消费,当到达指定时间后才会被消费,如:用户下单30分钟后订单仍未支付则自动取消。

        RabbitMQ安装:

                RabbitMQ是用Erlang编写的,所以需要先安装Erlang的编译环境

        *Erlang和RabbitMQ的版本是有一些版本匹配关系的,如果不匹配会导致RabbitMQ无法启动 1、查看版本信息icon-default.png?t=N7T8https://www.rabbitmq.com/which-erlang.html 2、下载erlang地址icon-default.png?t=N7T8https://erlang.org/download/3、下载abbitMQ地址icon-default.png?t=N7T8https://github.com/rabbitmq/rabbitmq-server/releases/

4、安装erlang和RabbitMQicon-default.png?t=N7T8https://help.aliyun.com/zh/ecs/use-cases/deploy-rabbitmq
Linux安装RabbitMQ详细教程(最详细的图文教程)_不一样的老墨的博客-CSDN博客文章浏览阅读7.7k次,点赞13次,收藏30次。RabbitMq安装教程_linux安装rabbitmqhttps://blog.csdn.net/laterstage/article/details/131522924

扩展:

         yum(yellow dog updater modified): Linux软件包管理器,会自动下载软件包

        rm  -rf  data/*  // 到mysql文件下 删除数据 强制初始化数据库 一般用于忘记初始密码

        vim 中移动一行代码  按 esc 退出编辑模式—> 按下 dd 剪切当前行 —> 移动到要粘贴的行 按下 p 粘贴当前行

         wget(World  Wide Web 与 get 结合)   是一个命令行工具 用于从网络上自动下载文件 它支持 http、https、ftp 协议

                例如:wget http://nginx.org/download/nginx-1.22.1.tar.gz

        rpm -qa|grep mari

                rpm -qa //  rpm包管理器 q:查询模式 a:已安装的包
                |  //   管道符号 用于将前一个命令的输出作为下一个命令的输入
                grep   // 一个强大的文本搜索工具
                mari   // 搜索的文本

        systemctl status mysqld 

                systemctl  // 是linux系统中用于管理系统服务器的命令行工具

                statrt   // 启动服务   

                stop  //  停止服务       

                restart   // 重启服务

                status  //  查看服务状态       

        make  //是一个安装工具,用于编译和安装应用程序  编译后得程序会放在系统当中                

                例如:sudo make install

        sh和cmd文件的区别:

                .cmd文件(也是.bat文件)是windows系统下的批处理脚本文件,文件类包含了一系列的命令   
                .sh文件时linux和unix的脚本文件,这些脚本文件是一组终端命令行集合

        cmd常见命令:

                cleanmgr  //  用windows自带工具清楚

                del /f /s /q %TEMP%\*.*   //  使用命令强制删除缓存文件

                leq  // 小于等于

                geq // 大于等于

                equ // 等于

                neq //不等于

                lss // 小于

                gtr // 大于

        编写一个简单的cmd可执行脚本文件:

                新建一个以cmd为后缀的文件

@echo off 
color A
chcp 65001
set /p name=请输入你的姓名: 
:loop
set /p age=请输入你的年龄: 
if %age% leq 20 (
	echo 你输入的年龄不能小于20
	goto loop
) else (	
	echo 你的姓名是:%name%  
	echo 你的年龄是:%age%
) 
set /A num =1
cd /
mkdir aaa
:loop2
set /A num += 1
echo [+] 正在寻找蛋仔派对...
echo [+] 正在入侵蛋仔派对...
echo [+] 正在进行权限获取,第%num%次获取...
echo 打钱123@qq.com > C:/aaa/%num%.txt
goto loop2
pause

         编写一个简单的sh可执行脚本文件:

#!/bin/bash

echo 请输入创建文件数量:
read number
mkdir /aaa
for ((i = 1;1<=$number;i++))
do
	touch /aaa/$i.txt
done

       换行符转义符:

                windows和linux的换行符不一致,windows

Docker安装:

docker安装-阿里云开发者社区docker安装icon-default.png?t=N7T8https://developer.aliyun.com/article/1248715?spm=5176.21213303.J_qCOwPWspKEuWcmp8qiZNQ.11.6a782f3d5aYMIB&scm=20140722.S_community@@%E6%96%87%E7%AB%A0@@1248715._.ID_community@@%E6%96%87%E7%AB%A0@@1248715-RL_docker%E5%AE%89%E8%A3%85-LOC_llm-OR_ser-V_3-RK_rerank-P0_3

Install Docker Engine on CentOS | Docker DocsLearn how to install Docker Engine on CentOS. These instructions cover the different installation methods, how to uninstall, and next steps.icon-default.png?t=N7T8https://docs.docker.com/engine/install/centos/

        启动docker:

 systemctl start docker

        测试:

docker version

docker run hello-world

        卸载:

image

​
systemctl stop docker
yum remove docker-ce docker-ce-cli containerd.io
rm -rf /var/lib/docker
rm -rf /var/lib/containerd
​

常见错误:

        1、mysql服务未启动:

mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
                解决方案:重启mysql服务
systemctl start mysqld

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值