前面的笔记:

Linux 学习笔记1 安装linux详细教程_linux系统 setting_O丶ne丨柒夜的博客-CSDN博客

Linux 学习笔记2 常用命令_O丶ne丨柒夜的博客-CSDN博客

Linux 学习笔记3 权限管理 定时任务 网络配置_O丶ne丨柒夜的博客-CSDN博客

目录

目录

安装配置

安装配置JDK8

安装python

tomcat的安装

安装配置mysql8.0

shell编程

快速入门

Shell的变量

位置参数变量

预定义变量

运算符

条件判断

case、for、while语句

定时备份数据库

python开发

ubuntu安装

安装ifconfig、ssh、修改镜像源

设置Ubuntu支持中文

Ubuntu的root用户

Ubuntu下开发Python

APT原理机制图

远程登录Ubuntu

日志管理

日志介绍和实例

日志管理服务rsyslogd

​编辑 定制自己的Linux

基本原理

linux内核

为什么要阅读linux内核?

备份与恢复

使用dump完成备份

使用restore完成恢复

webmin安装和配置

bt(宝塔)

面试


安装配置

安装配置JDK8

Java Downloads | Oracle

查看环境变量:echo $PATH

安装步骤
1. mkdir /opt/jdk
2. 通过xftp6上传到/opt/jdk下
3. cd /opt/jdk
4. 解压tar-zxvf jdk-8u261--linux-x64.tar.gz
5. mkdir /usr/local/java
6. mv /opt/jdk/jdk1.8.0_261 /usr/local/java
7. 配置环境变量的配置文件 vim /etc/profile
8. export JAVA_HOME=/usr/local/java/jdk1.8.0_261
9. export PATH=$JAVA_HOME/bin:$PATH
10. source /etc/profile [让新的环境变量生数]
测试是否安装成功
编写一个简单的Hello,java输出"hello,world!"

安装python

1.下载python3

https://img.zeruns.tech/down/source/Python-3.10.6.tgz

2.进入安装路径

cd /root/opt/python3

如果没有 可以用mkdir创建

3.解压

tar -zxvf Python-3.10.6.tgz

4.准备编译环境

yum -y install libffi-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make

5.编译安装

cd Python-3.10.6

./configure --prefix=/opt/python310

make && make install

解释:

./configure --prefix=你的安装路径

6.配置环境变量

vim /etc/profile

export python_HOME=/opt/python310 export PATH=$python_HOME/bin:$PATH

刷新配置

source /etc/profile

7.验证是否安装成功

python3

pip3 install --upgrade pip -i Simple Index

tomcat的安装

步骤:

Apache Tomcat® - Apache Tomcat 10 Software Downloads
1.上传安装文件,并解压缩到/opt/tomcat
2进入解压目录/bin,启动tomcat/startup.sh
3.开放端口8080
●测试是否安装成功:
在windows、Linux下访 http://linuxip:8080

firewall-cmd --permanent --add-port=8080/tcp
systemctl start firewalld
systemctl stop firewalld
firewall-cmd-reload
firewall-cmd --query-port=8080/tcptar -zxvf apache-tomcat-10.1.7.tar.gz
cd /root/test/html1/apache-tomcat-10.1.7/bin/
./startup.sh 

安装配置mysql8.0

centos8安装mysql8.0.22教程(超详细)_上善若水滴世界的博客-CSDN博客

mysql8.0.22设置远程连接

pwd是Linux系统中常用的一个命令,全称为Print Working Directory,用于显示当前所处的工作目录的路径名称。

shell编程

为什么要学习Shell编程
1.Linuxi运维工程师在进行服务器集群管理时,需要编写Shel程序来进行服务器管理。
2.对于JavaEE和Python程序员来说,工作的需要,你的老大会要求你编写一些Shell脚本进行程序或者是服务器的维护,比如编写一个定时备份数据库的脚本。
3.对于大数据程序员来说,需要编写Shell程序来管理集群。
Shell是什么
Shell是一个命令行解释器,它为用户提供了一个向Liux内核发送请求以便运行程序的界面系统级程序,
用户可以用Shl来启动、挂起、停止甚至是编写一些程序。看一个示意图

快速入门

Shell脚本的执行方式
●脚本格式要求
1.脚本以#!/bin/bash开头2.
脚本需要有可执行权限
编写第一个Shell脚本
需求说明:创建一个Shell脚本,输出hello world!
脚本的常用执行方式
方式1(输入脚本的绝对路径或相对路径)
说明:首先要赋予helloworld.sh脚本的+x权限,再执行脚本
√方式2(sh+脚本)
说明:不用赋予脚本+x权限,直接执行即可。

[root@localhostlinux1 shell]# vim hello.sh
[root@localhostlinux1 shell]# sh hello.sh
hello shell

Shell的变量

●Shell变量介绍
1.Linux Shellr中的变量分为,系统变量和用户自定义变量。
2.系统变量:$HOME、$PWD、$SHELL、$USER等等,比如:echo $HOME等等
3.显示当前shellt中所有变量:set
●shell变量的定义
基本语法
1.定义变量:变量=值
2.撤销变量:unset 变量
3.声明静态变量:readonly 变量,注意:不能unset

a=100
echo $a
a+=1
echo $a
echo a=$a
echo "a=$a"
100
1001
a=1001
a=1001

1.A=`date`反引号,运行里面的命令,并把结果返回给变量A
2.A=$(date)等价于反引号

b=`date`
echo $b
[root@localhostlinux1 shell]# sh a1.sh
Sat Mar 11 02:30:35 PST 2023

设置环境变量
基本语法
1.export 变量名=变量值
(功能描述:将she变量输出为环境变量/全局变量)
2.source 配置文件
(功能描述:让修改后的配置信息立即生效)
3.echo $变量名
(功能描述:查询环境变量的值)
●快速入门
1.在/etc/profile文件中定义TOMCAT_HOME:环境变量
2.查看环境变量TOMCAT HOME的值
3.在另外一个shell程序中使用TOMCAT_HOME
注意:在输出TOMCAT HOME环境变量前,需要让其生效source /etc/profile

#使用环境变量TOMCAT HOME
echo "tomcat_home=$STOMCAT_HOME"

多行注释

:<<! !

单行注释 #

位置参数变量

·介绍
当我们执行一个shl脚本时,如果希望获取到命令行的参数信息,就可以使用到位置参数变量
比如:/myshell.sh 100 200,这个就是一个执行shell的命令行,可以在myshell脚本中获取到参数
信息
●基本语法
$n (功能描述:为数字,$0代表命令本身,$1-$9代表第一到第九个参数,十以上的参数,十以上的
参数需要用大括号包含,如${10})
$* (功能猫述:这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体)
$@ (功能描述:这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待)
$#  (功能描述:这个变量代表命令行中所有参数的个数)

位置参数变量
案例:编写一个shell脚本position.sh,在脚本中获取到命令行的各个参数信息。

echo "$0 $1 $2 $3"
echo "$*"
echo "$@"
echo "$#"[root@localhostlinux1 shell]# sh a2.sh 1 2 3
a2.sh 1 2 3
1 2 3
1 2 3
3

预定义变量

●基本介绍
就是shel设计者事先已经定义好的变量,可以直接在shell脚本中使用
●基本语法
$$ (功能描述:当前进程的进程号(PID))
$! (功能描述:后台运行的最后一个进程的进程号(PID))
$?(功能描述:最后一次执行的命令的返回状态。如果这个变量的值为0,证明上一个命令正确执行;
如果这个变量的值为非0(具体是哪个数,由命令自己来决定),则证明上一个命令执行不正确了。)
●应用实例
在一个shell脚本中简单使用一下预定义变量
preVar.sh

echo "$$"
echo "$!"
echo "$?"

运算符

·基本介绍
学习如何在shellr中进行各种运算操作。
●基本语法
1.“$((运算式))”或“$[运算式]”或者expr m+n
2.注意expr运算符间要有空格
3.expr m n
4.expr  \*,/,%乘,除,取余
应用实例
案例1:计算(2+3)X4的值
案例2:请求出命令行的两个参数[整数]的和

1.算术运算符:(推荐用$[])
a=10
b=5
echo $((a + b)) # 输出 15
echo $((a - b)) # 输出 5
echo $((a * b)) # 输出 50
echo $((a / b)) # 输出 2
echo $((a % b)) # 输出 0
2.关系运算符:
a=10
b=5
if [ $a -eq $b ]
thenecho "a 等于 b"
elseecho "a 不等于 b"
fi
3.逻辑运算符:
a=10
b=5
if [ $a -gt 8 ] && [ $b -lt 6 ]
thenecho "条件成立"
elseecho "条件不成立"
fi
4.字符串运算符:
str1="hello"
str2="world"
echo $str1$str2 # 输出 helloworld
if [ "$str1" = "$str2" ]
thenecho "字符串相等"
elseecho "字符串不相等"
fi
5.文件测试运算符:
file="test.txt"
if [ -e "$file" ]
thenecho "$file 存在"
elseecho "$file 不存在"
fi

- 小于:less than
- 小于等于:less than or equal to
- 等于:equal to
- 大于:greater than
- 大于等于:greater than or equal to
- 不等于:not equal to有读的权限:
- read permission
有写的权限:
- write permission
有执行的权限:
- execute permission文件存在并且是一个常规的文件:
- file exists and is a regular file
文件存在:
- file exists
文件存在并是一个目录:
- file exists and is a directory

条件判断

注意事项:[条件判断式],中括号和条件判断式之间必须有空格
应用实例ifCase.sh
案例:请编写一个shl程序,如果输入的参数,大于等于60,则输出"及格了”,如果小于60,则输出"不及格”

if [ $1 -ge 90 ]
then
echo  "优秀"
elif [ $1 -ge 60 ]
then
echo  "及格了"
else
echo "不及格"
fi

case、for、while语句

case "$1" instart)echo "启动服务"# 启动服务的代码;;stop)echo "停止服务"# 停止服务的代码;;restart)echo "重启服务"# 重启服务的代码;;*)echo "使用方法:$0 {start|stop|restart}"exit 1;;
esac
遍历一个数组
fruits=("apple" "banana" "orange" "grape")for fruit in "${fruits[@]}"
doecho "当前水果:$fruit"
done遍历文件、目录等
for file in *
doecho "当前文件:$file"
donefor 循环遍历数字
for i in $(seq 1 5)
for i in {1..5}
doecho "当前数字:$i"
donefor ((i=1; i<=5; i++))
doecho "当前数字:$i"
done
求和
sum=0
for((i=1;i<=5;i++))
do
sum=$[sum+i]
done
echo $sum
count=1
while [ $count -le 10 ]
doecho "Count is: $count"((count++))
done

双括号(())中才可以使用一些c的语法

read读取控制台输入

基本语法
read (选项) (参数)
选项:
-p : 指定读取值时的提示符;
-t : 指定读取值时等待的时间(秒),如果没有在指定的时间内输入,就不再等待了。
参数
变量:指定读取值的变量名
应用实例testRead.sh
案例1:读取控制台输入一个num值
案例2:读取控制台输入一个num值,在10秒内输入。

read -p "请输入NUM1=" num1
echo "num1=$num1"read -t 10 -p "请输入NUM2=" num2
echo "num2=$num2"

函数介绍
shell编程和其它编程语言一样,有系统函数,也可以自定义函数。系统函数中,我们这里就介绍两个。
系统函数
basename基本语法
功能:返回完整路径最后/的部分,常用于获取文件名
basename [pathname]  [suffix]
basename [string]  [suffix]  功能描述:basename命令会删掉所有的前缀包括最后
一个('/')字符,然后将字符串显示出来。
选项:
suffix为后缀,如果suffix被指定了,basenames会将pathname或string中的suffix:去掉.
应用实例
案例1:请返回/home/aaa/test.txt的"test.txt"部分

basename /home/aaa/test.txt .txt

dirname 基本语法
功能:返回完整路径最后/的前面的部分,常用于返回路径部分
dirname 文件绝对路径
(功能描述:从给定的包含绝对路径的文件名中去除文件名(非目录的部分),然后返回剩下的路径(目录的部分))
应用实例
案例1:请返 /home/aaa/test.txt 的 /home/aaa

dirname /home/aaa/test.txt

自定义函数
基本语法
function funname[()]
{
Action;
[return int;]
}
调用直接写函数名:funname [值]
√应用实例
案例1:计算输入两个参数的和,getSum

# 自定义函数
function greet {echo "Hello, $1!"
}# 调用函数
greet "world"

定时备份数据库

vi /etc/my.cnf
datadir=/var/lib/mysql
# 备份文件保存路径
backup_dir="/root/test/saves/mysql1"# MySQL用户名和密码
mysql_user="root"
mysql_password="123456"# 要备份的数据库名称
database_name="sys"# 备份文件名
backup_file="$backup_dir/$database_name-$(date +%Y-%m-%d-%H-%M-%S).sql"# 运行备份命令
mysqldump -u $mysql_user -p$mysql_password $database_name > $backup_file# 删除旧的备份文件(保留最近7天的备份文件)
find $backup_dir -type f -name "$database_name*.sql" -mtime +7 -exec rm {} \;

可以使用crontab定期运行备份脚本。打开crontab文件:

crontab -e

然后添加以下行:

0 0 * * * /root/test/shell/mysqlbeifen.sh

这个命令将在每天午夜(0小时0分)运行备份脚本。可以根据需要更改crontab的时间表达式。

Shell编程综合案例
需求分析
1.每天凌晨2:30备份数据库hspedu到/data/backup/db
2.备份开始和备份结束能够给出相应的提示信息
3备份后的文件要求以备份时间为文件名,并打包成.tar.gz的形式,比如:2021-03-12230201.tar.gz
4.在备份的同时,检查是否有10天前备份的数据库文件,如果有就将其删除。

- `find $backup_dir`:在指定目录`$backup_dir`下查找文件。
- `-type f`:只查找普通文件,不包括目录和符号链接等。
- `-name "$database_name*.sql"`:指定文件名模式,匹配以`$database_name`开头,以`.sql`为扩展名的备份文件。
- `-mtime +7`:查找最后修改时间超过7天的文件。
- `-exec rm {} \;`:对于每个找到的文件,执行`rm`命令来删除它。`{}`代表文件名,`\;`表示命令的结束。

python开发

ubuntu安装

安装好后,检查能不能上网

安装ifconfig、ssh、修改镜像源

ifconfig是一个Linux/Unix系统的命令,用于查询和配置网络接口的信息。在Ubuntu中,ifconfig命令默认是没有安装的,需要安装net-tools包才能使用。 安装net-tools包的命令如下:

sudo apt-get update
sudo apt-get install net-tools

要在Ubuntu上启用SSH服务并设置用户名和密码,请按照以下步骤操作:

1. 打开终端(Ctrl+Alt+T)。 2. 安装OpenSSH服务器软件:

sudo apt update
sudo apt install openssh-server
3. 启动SSH服务:

sudo systemctl start ssh
4. (可选)设置SSH服务为开机启动:

sudo systemctl enable ssh
5. 创建新的Ubuntu用户。在终端中输入以下命令:

sudo adduser username
其中,“username”是您要创建的新用户的用户名。按照提示,为新用户设置密码和其他信息。 6. 确定新用户具有连接SSH的权限。在终端中输入以下命令:

sudo usermod -aG ssh username
其中,“username”是您要授权连接SSH的用户的用户名。

修改清华源

vi /etc/apt/source.listdeb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiversesudo apt-get update
sudo apt-get upgrade

设置Ubuntu支持中文

默认安装的ubuntu中只有英文语言,因此是不能显示汉字的。要正确显示汉字,需要安装中文语言包。
安装中文支持步骤:
1.单击左侧图标栏打开Language Support菜单,点击打开Language Support(语言支持)选项卡。
2.点击Install/Remove Languages,在弹出的选项卡中下拉找到Chinese(Simplified,即中文简体,在后面的选项框中打勾。然后点击Apply Changes提交,系统会自动联网下载中文语言包。(保证ubuntu是联网的)
3.这时“汉语(中国)”在最后一位因为当前第一位是”English”,所以默认显示都是英文。我们如果希望默认显示用中文,则应该将“汉语(中国)”设置为第一位。设置方法是拖动,鼠标单击“汉语(中国)”,当底色变化(表示选中了)后,按住鼠标左键不松手,向上拖动放置到第一位。
4.设置后不会即刻生效,需要下一次登录时才会生效。

Ubuntu的root用户

介绍
安装ubuitu成功后,都是普通用户权限,并没有最高root权限,如果需要使用root权限的时候,通常都会在命令前面加上sudo。有的时候感觉很麻烦。(演示)
我们一般使用su命令来直接切换到root用户的,但是如果没有给root设置初始密码就会抛出su:Authentication failure这样的问题。所以,我们只要给root用户设置一个初始密码就好了。
●给root用户设置密码并使用
1.输入sudo passwd命令,输入一般用户密码并设定root用户密码。
2.设定root 密码成功后,输入su 命令,并输入刚才设定的root密码,就可以切换成root了。提示符$代表一般用户,提示符#代表root用户。
3.以后就可以使用root用户了
4.输入exit命令,退出root并返回一般用户

sudo vi /etc/ssh/sshd_config
PasswordAuthentication yes
PermitRootLogin yes
sudo service ssh restartsu
vi /etc/pam.d/gdm-autologin
注释行 “auth requied pam_succeed_if.so user != root quiet success”
vi /etc/pam.d/gdm-password
注释行 “auth requied pam_succeed_if.so user != root quiet success”

Ubuntu 系统如何使用 root 用户登录实例-CSDN博客

Ubuntu下开发Python

●说明
安装好buntul后,默认就已经安装好Pythonl的开发环境。

●在Ubuntu下开发一个Pythoni程序
1)vi hello.py·
[编写hello..py]
2)python:3 hello.py[运行hello.py]

APT原理机制图

apt是Advanced Packaging Tool的简称,是一款安装包管理工具。在Jbuntu下,我们可以使用apt命令进行软件包的安装、删除、清理等,类似于Vindowst中的软件管理工具。

Ubuntu软件操作的相关命令
sudo apt-get update更新源
sudo apt-get install package安装包
sudo apt-get remove package删除包
sudo apt-cache search package搜索软件包
sudo apt-cache show package获取包的相关信息
如说明、大小,版本等
sudo apt-get install package --reinstall
重新安装包
sudo apt-.get-f install修复安装
sudo apt--get remove package-purge删除包,包括配置文件等
sudo apt-get build-.dep package安装相关的编译环境
sudo apt-get upgrade更新已安装的包
sudo apt--get dist-upgrade升级系统
sudo apt-cache depends package了解使用该包依赖那些包
sudo apt--cache rdepends package查看该包被哪些包依赖
sudo apt-get source,I ckage下载该包的源代码

Ubuntu:软件安装,卸载的最佳实践
案例说明:使用apt完成安装和卸载vim软件,并查询vim软件的信息:(因为使用了镜像
网站,速度很快)
sudo apt-get remove vim
sudo apt-get install vim -y
sudo apt-cache show vim

远程登录Ubuntu

ssh介绍
SSH为Secure Shell的缩写,由IETF的网络工作小组(Network Working Group)所制定;SSH为建立在应用层和传输层基础上的安全协议。
SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。常用于远程登录。几乎所有UNIX/LInux平台都可运行SSH。
使用SSH服务,需要安装相应的服务器和客户端。客户端和服务器的关系:如果,A机器想被B机器远程控制,那么,A机器需要安装SSH服务器,B机器需要安装SSH客户端。
和CentOS不一样,Ubuntu默认没有安装SSHD服务(使用netstat指令查看:apt install net-tools),因此,我们不能进行远程登录。

从一台linux系统远程登陆另外一台linux系统
在创建服务器集群时,会使用到该技术
基本语法:
ssh 用户名@IP
例如:ssh hspedu@192.168.200.222
使用ssh访问,如访问出现错误。可查看是否有该文件~
/.ssh/known_ssh尝试删除该文件解决,一般不会有问题
登出
登出命令:exit或者logout

生产环境,可以选最小安装

centos7 vs centos8

日志管理

日志介绍和实例

基本介绍
1.日志文件是重要的系统信息文件,其中记录了许多重要的系统事件,包活用户的登绿信息、系统的启动信息、系统的安全信息、邮件相关信息、各种服务相关信息等。
2.日志对于安全来说也很重要,它记录了系统每天发生的各种事情,通过日志来检查错误发生的原因,·或者受到攻击时攻击者留下的痕迹。
3.可以这样理解日志是用来记录重大事件的工具

/var/log/ 目录就是系统日志文件的保存位置

使用root用户通过xshell6登陆,第一次使用错误的密码,第二次使用正确的密码登录成功

看看在日志文件/War/Iog/secure里有没有记录相关信息

日志管理服务rsyslogd

Centos7.6日志服务是rsyslogd,Centos6.x日志服务是syslogd。rsyslogd功能更强大。
rsyslogd的使用、日志文件的格式,和syslogd服务兼容的。
√查询Linux中的rsyslogd服务是否启动
ps aux | grep "rsyslog" | grep -v "grep"
√查询rsyslogd服务的自启动状态
systemctl list-unit-files | grep rsyslog

由日志服务rsyslogd记录的日志文件,日志文件的格式包含以下4列:
1.事件产生的时间
2.产生事件的服务器的主机名
3.产生事件的服务名或程序名
4.事件的具体信息
日志如何查看实例
查看一下var/log/secure日志,这个日志中记录的是用户验证和授权方面的信息来分析如何查看

 

 定制自己的Linux

基本介绍
通过裁剪现有Linuix系统(Centos7.6),创建属于自己的minLinux小系统,可以加深我们对linux的理解

基本原理

启动流程介绍:
制作Linux小系统之前,再了解一下Linux的启动流程:
1.首先Linux要通过自检,检查硬件设备有没有故障
2.如果有多块启动盘的话,需要在BIOS中选择启动磁盘
3、启动MBR中的bootloader引导程序
4、加载内核文件
5.执行所有进程的父进程、老祖宗systemd
6、欢迎界面
在Linux的启动流程中,加载内核文件时关键文件:
1)kernel文件:vmlinuz-3.10.0-957.el7.x86_64
2) initrd文件:initramfs-3.10.0-957.el7.x86_64.img

制作minlinux思路分析

1.在现有的Linux系统(centos7.6)上加一块硬盘/dev/sdb,在硬盘上分两个分区,一个是/boot,一个是/,并将其格式化。需要明确的是,现在加的这个硬盘在现有的Linux系统中是/dev/sdb但是,当我们把东西全部设置好时,要把这个硬盘拔除,放在新系统上,此时,就是/dev/sda
2.在/dev/sdb硬盘上,将其打造成独立的Linux系统,里面的所有·文件是需要拷贝进去的
3.作为能独立运行的Linux系统,内核是一定不能少,要把内核文件和initramfs文件也一起拷到/dev/sdb上
4.以上步骤完成,我们的自制Linux就完成,创建一个新的linux虚拟机,将其硬盘指向我们创建的硬盘,启动即可

https://www.cnblogs.com/RobertYu666/p/16047108.html

linux内核

为什么要阅读linux内核?

爱好,就是喜欢linux(黑客精神)
想深入理解linux底层运行机制,对操作系统有深入理解
阅读linux内核,你会对整个计算机体系有一个更深刻的认识。作为开发者,不管你从事的是驱动开发,应用开发还是后台开发,你都需要了解操作系统内核的运行机制,这样才能写出更好的代码。作为开发人员不应该只局限在自己的领域,你设计的模块看起来小,但是你不了解
进程的调用机制,你不知道进程为什么会阻塞、就绪、执行几个状态。那么很难写出优质的代码。
找工作面试的需要
老韩忠告,作为有追求的程序员,还是应该深入的了解一个操作系统的底层机制,(比如linux/unix)最好是源码级别的,这样你写多线程高并发程序,包括架构,优化,算法等,高度不一样的,当然老韩也不是要求小伙伴儿把一个非常庞大的Li山x内核每一行都读懂。我觉得。你至少能看几个核心的模块把。

linux0.01内核源码
●基本介绍Liux的内核源代码可以从网上下载,解压缩后文件一般也都位于linux目录下。内核源代码有很多版本,可以从linux0.01内核入手,总共的代码1w行左右,最新版本5.9.8总共代码超过700w行,非常庞大.
内核地址:https://www.kernel.org/

GitHub - bolanlaike/Linux-0.01: Linux 0.01源码及注释

linux0.01内核源码
linux0.01内核源码目录&阅读
老韩提示阅读内核源码技巧
1.linux0.01的阅读需要懂c语言
2.阅读源码前,应知道Linux内核源码的整体分布情况。现代的操作系统一般由进程管理、内存管理、文件系统、驱动程序和网络等组成。Linux内核源码的各个目录大致与此相对应.
3.在阅读方法或顺序上,有纵向与横向之分。所谓纵向就是顺着程序的执行顺序逐步进行;所谓横向,就是按模块进行。它们经常结合在一起进行。
4.对于Linux启动的代码可顺着Linux的启动顺序一步步来阅读;对于像内存管理部分,可以单独拿出来进行阅读分析。实际上这是一个反复的过程,不可能读一遍就理解
linux内核源码阅读&目录介绍&main.c说明

linux内核最新版和内核升级

内核地址:https://www.kernel.org/查看
●下载&解压最新版
wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.8.16.tar.gz
tar -zxvf linux-5.8.16.tar.gz

linux内核最新版和内核升级
linux内核升级应用实例
将Centos系统从7.6内核升级到7.8版本内核(兼容性问题)

具体步骤,看老师演示
uname -a /查看当前的内核版本
yum info kernel -q /检测内核版本,显示可以升级的内核
yum update kernel /升级内核
yum list kernel -q /查看已经安装的内核

备份与恢复

基本介绍
实体机无法做快照,如果系统出现异常或者数据损坏,后果严重,要重做系统,还会造成数据丢失。所以我们可以使用备份和恢复技术
linux的备份和恢复很简单,有两种方式:
1.把需要的文件(或者分区)用TAR打包就行,下次需要恢复的时候,再解压开覆盖即可
2.使用dump和restore命令

使用dump完成备份

●dump应用案例1
将/boot目录所有内容备份到/opt/boot.bak.bz2文件中,备份层级为"0”
dump -0uj -f /opt/boot.bak.bz2 /boot
●dump应用案例2
在/boot目录下拷贝一个文件,备份层级为“1”(只备份上次使用层次“0”备份后发生过改变的数据),注意比较看这次生成的备份文件boot1.bak有多大
dump -1uj -f /opt/boot.bak1.bz2 /boot
老韩提醒:通过dump命令在配合crontab可以实现无人值守备份

使用restore完成恢复

●基本介绍
restore命 令用来恢复已备份的文件,可以从dump生成的备份文件中恢复原文件
restore 基本语法
restore [模式选项] [选项]
说明下面四个模式,不能混用,在一次命令中,只能指定一种。
-C :使用对比模式,将备份的文件与已存在的文件相互对比。
-i :使用交互模式,在进行还原操作时,restors指令将依序询问用户
-r :进行还原模式
-t :查看模式,看备份文件有哪些文件
选项
-f <备份设备>:从指定的文件中读取备份数据,进行还原操作

webmin安装和配置

基本介绍
webmin是功能强大的基于Web的Unix/inux系统管理工具。管理员通过浏览器访问Vebmin的各种管理功能并完成相应的管理操作。除了各版本的linux以外还可用于:AIX、HPUX、Solaris、Unixware、.Irix和FreeBSD等系统

Downloading and Installing | Webmin

下载压缩包

tar xvf webmin-2.013.tar.gz
sh setup-repos.sh
dnf install webmin --nobest
sudo firewall-cmd --add-port=10000/tcp --permanent
sudo firewall-cmd --reload

bt(宝塔)

基本介绍
bt宝塔Liux面板是提升运维数率的服务器管理软件,支持一键LAMP/LNMP/集群/监控/网站/FTP/数据库/jAVA等多项服务器管理功能。
安装和使用
1安装 : yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
2.安装成功后控制台会显示登录地址,账户密码,复制浏览器打开登录,

Centos安装脚本:
yum install -y wget && wget -O install.sh http://bt.cxinyun.com/install/install_6.0.sh && sh install.sh外网面板地址:
内网面板地址:
username:
password:
If you cannot access the panel,
release the following panel port [37596] in the security group
若无法访问面板,请检查防火墙/安全组是否有放行面板[37596]端口

如果bt的用户名,密码忘记了,使用bt default可以查看

面试

142_韩顺平Linux_统计访问量和连接数_哔哩哔哩_bilibili

Linux开发 安装JDK8、mysql8.0、shell脚本编写、Ubuntu安装 p4相关推荐

  1. shell自动安装mysql_RPM包安装mysql,采用shell脚本实现自动安装、配置与卸载

    版本是5.5.8. 自动安装配置步骤: 1. 先在/etc下面放一份my.cnf,这里是链接的方式.安装之前先运行卸载脚本,它会杀掉相关进程. 2. 运行install.sh进行安装与配置 my.cn ...

  2. linux服务器运行停止Jar包Shell脚本编写

    启动脚本: #!/bin/sh #启动脚本,nohup方式表示后台运行jar包 # 参数说明如下 # -Dfile.encoding 设置文件编码方式 # -Xms2000m JVM初始分配的堆内存 ...

  3. Linux安装配置MySQL8.0 打war包 启动项目

    目录 第一步:安装配置mysql8.0 第二步:创建项目用到的数据库和表 第三步:Idea把JavaWeb项目打war包 第四步:开始启动项目: 第一步:安装配置mysql8.0 访问这位博主链接跟着 ...

  4. python编写自动化脚本 与shell_脚本安装Discuz论坛(shell + Python 实现自动化安装)...

    实验环境 1.shell 脚本:linux centos 7 系统 2.Python shell 脚本:window 系统 3.其他:python selenium 模块,谷歌浏览器, 谷歌浏览器驱动 ...

  5. shell运行python脚本报错没有包_脚本安装Discuz论坛(shell + Python 实现自动化安装)...

    实验环境 1.shell 脚本:linux centos 7 系统 2.Python shell 脚本:window 系统 3.其他:python selenium 模块,谷歌浏览器, 谷歌浏览器驱动 ...

  6. STM32MP157系列教程连载-Linux应用开发篇1:STM32MP1微处理器之Ubuntu安装与体验

    STM32MP157系列教程连载-Linux应用开发篇1:STM32MP1微处理器之Ubuntu安装与体验 截至目前上传的博文已经有6篇了(硬件4篇,安装环境2篇),最近手头在搞STM32MP157C ...

  7. Linux系统一键安全加固shell脚本编写思路

    本次分享一下个人在对Linux系统一键安全加固shell脚本编写时的一些思路: Linux系统一键安全加固shell脚本编写思路 1.编写须知 1.1 脚本使用说明 1.2 主要功能说明: 1.3隐藏 ...

  8. 总结:linux 学习之 shell 脚本编写

    一.Shell 脚本编写规范 1.一个规范的 Shell 脚本在第一行会指出由哪个程序(解释器)来执行脚本中的内容,这一行内容在 Linux bash 的编程一般为:#!/bin/bash  或 #! ...

  9. win10安装misql8_Win10下免安装版MySQL8.0.16的安装和配置教程图解

    1.MySQL8.0.16解压 其中dada文件夹和my.ini配置文件是解压后手动加入的,如下图所示 2.新建配置文件my.ini放在D:\Free\mysql-8.0.16-winx64目录下 [ ...

最新文章

  1. 行走在区块链上的智能合约
  2. U盘安装CentOS 7
  3. 工程代码_Egret开发笔记(二)基础工程代码阅读
  4. File Hunter for mac - 丢失文件查找AE脚本
  5. Python-----规范化开发
  6. 常用SQL语句汇总整理
  7. CHIL-SQL-UPDATE 语句
  8. ROST SEAT使用方法
  9. 最新GitHub新手使用教程(Windows Git从安装到使用)——详细图解
  10. 1.4418不锈钢规范及使用环境详解
  11. HTML标签与CSS样式
  12. iOS永久签名不掉签工具,轻松签超详使用教程
  13. 理解时间序列的平稳性
  14. JSP程序-根据当前时间显示上午好、下午好、晚上好
  15. day inset_SetIP三星网络打印IP设置软件
  16. 【K210】人脸识别 KPU-kpu.run_yolo2()函数说明
  17. 如何成为世界上最好的程序员
  18. mc服务器怪物掉落修改,刀剑无双修改怪物掉落爆装备
  19. 简化开发: mybatis-plus 代码自动生成 以及 常见问题
  20. 造福全球眼疾患者的技术 出现可辨识眼疾的AI系统

热门文章

  1. 2021年轻薄本推荐
  2. linux设置unix编码,linux下查看文件编码及修改编码
  3. PowerShell脚本执行出错解决方法
  4. 衡量曲线相识度的指标
  5. Android7手机解决无法运行appium脚本的问题
  6. Java Comparable接口
  7. Clickhouse引擎—数据库引擎
  8. 【Go Web】Go对接华为云obs代码
  9. 烟花php,新年倒计时,定时开启新年烟花效果
  10. OpenCV检测圆并求出圆心与半径