先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前在阿里
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
2. 创建版本库
git init
3.git仓库添加文件
git add . #添加文件到缓冲区
git commit -m 'ad three file'
4. git 修改文件名称并提交
git mv file1 file4
git commit -m 'change file name'
5. git的文件对比
git diff file3 #本地目录和缓冲去文件对比
git diff --cached file3 #缓冲区文件和仓库文件对比
6. 实现回退功能
[root@k8s-node2 ~]# git log --oneline
58bea1a add three file
fe9e8c2 add two file
[root@k8s-node2 ~]# cat file2
456456456
8888888
[root@k8s-node2 ~]# git reset --hard 58bea1a
HEAD is now at 58bea1a add three file
[root@k8s-node2 ~]# cat file2
456456456
#查看所有历史版本
[root@k8s-node2 ~]# git reflog --oneline
fe9e8c2 HEAD@{0}: reset: moving to fe9e8c2
58bea1a HEAD@{1}: commit: add three file
fe9e8c2 HEAD@{2}: commit (initial): add two file
[root@k8s-node2 ~]# git reset --hard 58bea1a
撤回
[root@k8s-node2 ~]# echo 8888888 > file2
[root@k8s-node2 ~]# git diff file2
diff --git a/file2 b/file2
index 7d7a948..80f456a 100644
--- a/file2
+++ b/file2
@@ -1 +1 @@
-456456456
+8888888
[root@k8s-node2 ~]# git checkout file2
[root@k8s-node2 ~]# git diff file2
[root@k8s-node2 ~]# cat file2
456456456
撤销修改的文件
提交到缓冲区的文件撤回
git reset HEAD file2
未add到缓冲区的文件撤回
git checkout -- file2
7. git分支管理
#查看分支
git branch ----> * master
#增加一个新分支
git branch dev01
#切换分支
git checkout dev01
#合并分支
git merge master
#在开发分支上合并主分支
git merge master -m '注释'
#切回主分支
git checkout master
#在主分支次合并开发分支
git merge dev01 -m '注释'
8. git标签管理
标签就是给commit起一个别名,容易记忆
#添加标签
git log --oneline
git tag v1.2 ----> 给当前版本打标签
git tag -a v1.0 -m '注释,优化了修复了什么' <commit的ID>
#删除标签
git tag -d v1.2
[root@k8s-node2 demo]# git log --oneline
b8e21cc add test.txt
9d5ab15 add test.txt
382f080 add test.txt
ff6047d add file6 file7
b693580 add file6 file7
58bea1a add three file
fe9e8c2 add two file
[root@k8s-node2 demo]# git tag
[root@k8s-node2 demo]# git tag v1.2
[root@k8s-node2 demo]# git tag
v1.2
[root@k8s-node2 demo]# git show v1.2
commit b8e21cc519dfd918ee880831e37585afcdf73410
Author: oldqiang <296917342@qq.com>
Date: Mon Sep 23 12:03:35 2019 +0800
add test.txt
diff --git a/demo/test.txt b/demo/test.txt
index 69f66d3..d99f9f0 100644
--- a/demo/test.txt
+++ b/demo/test.txt
@@ -1,3 +1,3 @@
11111
-aaaaa
+22222
33333
[root@k8s-node2 demo]# git tag -a v1.0 -m 'v1.0 add 后裔' fe9e8c2
[root@k8s-node2 demo]# git tag
v1.0
v1.2
[root@k8s-node2 demo]# git show v1.0
tag v1.0
Tagger: oldqiang <296917342@qq.com>
Date: Mon Sep 23 12:18:45 2019 +0800
v1.0 add 后裔
commit fe9e8c25cfb61eb63da6681dc09d054cd5739243
Author: oldqiang <296917342@qq.com>
Date: Mon Sep 23 10:44:54 2019 +0800
add two file
diff --git a/file1 b/file1
new file mode 100644
index 0000000..5721413
--- /dev/null
+++ b/file1
@@ -0,0 +1 @@
+423
扩展
Git 打补丁-- patch 和 diff 的使用
diff
patch 打补丁,创建补丁,卸载补丁
git克隆 码云网站复制项目链接
[外链图片转存失败(img-ZksPvapA-1569213856173)(https://upload-images.jianshu.io/upload_images/16952149-dc299a71ec5aeca1.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]
9. git远程仓库gitee
ssh-keygen -t rsa
cat /root/.ssh/id_rsa.pub
cd /root/demo/
ll
git remote add origin git@gitee.com:linuxcx/linux.git
git push -u origin master
10. gitlab安装
#上传gitlab-ce-11.9.11-ce.0.el7.x86\_64.rpm到当前目录
echo "192.168.37.202 mirrors.aliyun.com" >>/etc/hosts
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum localinstall gitlab-ce-11.9.11-ce.0.el7.x86_64.rpm -y
vim /etc/gitlab/gitlab.rb
#设置访问url和关闭prometheus
external_url 'http://http://gitlablcx.com'
prometheus_monitoring['enable'] = false
#配置gitlab通过smtp发送邮件
[root@k8s-node2 demo]# vim /etc/gitlab/gitlab.rb
gitlab_rails['gitlab\_email\_enabled'] = true
gitlab_rails['gitlab\_email\_from'] = '245684979@qq.com'
gitlab_rails['gitlab\_email\_display\_name'] = 'linux\_gitlab'
gitlab_rails['smtp\_enable'] = true
gitlab_rails['smtp\_address'] = "smtp.qq.com"
gitlab_rails['smtp\_port'] = 465
gitlab_rails['smtp\_user\_name'] = "245684979"
gitlab_rails['smtp\_password'] = "lvlina.199625"
gitlab_rails['smtp\_domain'] = "qq.com"
gitlab_rails['smtp\_authentication'] = "login"
gitlab_rails['smtp\_enable\_starttls\_auto'] = true
gitlab_rails['smtp\_tls'] = true
#重新配置
gitlab-ctl reconfigure
11.gitlab汉化
#下载汉化包
https://gitlab.com/xhang/gitlab
gitlab-ctl stop
tar xf gitlab-11-9-stable-zh.tar.gz
\cp -a gitlab-11-9-stable-zh/* /opt/gitlab/embedded/service/gitlab-rails/
12. gitlab-用户-用户组-项目之间的关系
先创建用户组,在基于用户组创建项目,最后创建用户,编辑用户组,添加成员,注意权限
13. gitlab备份和恢复
#备份
gitlab-rake gitlab:backup:create
#恢复
gitlab-ctl stop
gitlab-rake gitlab:backuip:restore BACKUP=1510472027_2019_09_23_9.4.5
gitlab-ctl start
vim /etc/gitlab/gitlab.rb
gitlab_rails['manage\_backup\_path'] = true
gitlab_rails['backup\_path'] = "/var/opt/gitlab/backups"
gitlab_rails['backup\_keep\_time'] = 604800
#迁移云主机
先备份,云主机安装相同版本,恢复
#更新配置
gitlab-ctl reconfigure
14.gitlab版本升级
gitlab升级,要小版本跨 10--->11--->12
扩展内容:
1.安装svn服务器,将svn中的数据迁移到git仓库
git-svn
git clone svn
svn是一个中心化的版本控制工具,git是分布式的,每个人都可以有完整的代码仓库
#安装svn
yum install subversion -y
mkdir /svn/repo -p
#初始化仓库
svnadmin create /svn/repo
cd /svn/repo/conf
vim svnserve.conf
[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
realm = /svn/repo
[sasl]
vim passwd
[users]
admin = 123456
vim authz
[/]
admin = rw
test = r
启动svn服务
svnserve -d -r /svn/repo
#svn迁移到git
yum install git-svn -y
git svn clone svn://10.0.0.13 --username=admin --no-metadata --authors-file=password.txt git
cat password.txt
admin=<245684979@qq.com>
2.找回
gitlab
的root密码
2. 持续部署
gitlab, lb(部署服务器), web01,web02
#lb01,web01,web02都按照nginx
echo "192.168.37.202 mirrors.aliyun.com" >>/etc/hosts
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum install nginx -y
#创建upstream资源池文件
vim /etc/nginx/upstream_monitor
server 10.0.0.7;
server 10.0.0.8;
#配置lb01负载均衡
vim /etc/nginx/nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
upstream monitor {
include /etc/nginx/upstream_monitor;
}
server {
listen 80;
server_name monitor.oldqiang.com;
location / {
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化的资料的朋友,可以点击这里获取!](https://bbs.csdn.net/topics/618542503)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
ult_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
upstream monitor {
include /etc/nginx/upstream_monitor;
}
server {
listen 80;
server_name monitor.oldqiang.com;
location / {
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化的资料的朋友,可以点击这里获取!](https://bbs.csdn.net/topics/618542503)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**