gti 远程操作

目录

一. 分布式版本控制管理系统

1. 理解分布式版本控制管理系统

二. 创建远程仓库

​编辑

 ​编辑

三. 克隆远程仓库_HTTP

四. 克隆远程仓库_SSH

配置公钥

添加公钥

五. git 向远程仓库推送

六. 拉取远程仓库

七. 忽略特殊文件

八. 配置别名


一. 分布式版本控制管理系统

实际上,我们的 git 是一个分布式版本控制管理系统,那么什么是分布式版本控制管理系统呢?

1. 理解分布式版本控制管理系统

我们现在要开发一个产品,我们是需要多人协作开发的,所以我们现在每个人都有一台电脑,我们的每台电脑上都有一个 git 仓库,我们为了多人协作开发方便,所以我们现在有一个中央服务器,中央服务器里面有一个仓库,用来存储我们协作开发的内容,如果我们中的任何一个人想要看别人开发的代码,我们只需要在中央服务器上 clone 下来,然后我们就可以看到别人开发的代码了

上面的这个是我们自己弄的,而 git 就是已经帮我们弄好了,所以 分布式版本控制管理系统就是上面的那个样子

二. 创建远程仓库

我们使用的 git 平台是  码云 ,如果没有账户的话,可以先创建一个

下面会一步一步来,先到 gti 官网,登录上自己的账号,然后点击右上角的 ‘+’,然后点击 “新建仓库”

 

我们先看一下初始化仓库里面的这些选项有什么用

选则语言:就是我们仓库代码的语言

模板:就是里面有一些模板,其中就有 gitignore 模板,有该模板的话,可以在 add的时候自动忽略一些没有用的文件

开源许可证:选则了某个开源项目的话,就可以使用里面的某些内容等...

设置模板就是创建完仓库里面自带的文件

Readme:就是用来介绍该仓库项目的

Issue:就是写该项目遇到的问题的,以及可以管理这些问题

Poll Request:就是当我们有一个分支想要 merge 的时候,我们需要申请,而Pull Request 就是申请

分支模型:我们之前学过的分支,如果不选的话,我们也自动创建一个 master 分支

然后我们选则完毕后,点击创建就创建完成

如果我们想要对仓库进行管理的话,那么我们就点击管理

我们就可以对仓库进行管理

三. 克隆远程仓库_HTTP

我们在我们的这个仓库里面 首先点击 克隆/下载,然后点击 HTTPS 在点击复制,然后我到我们的远程服务器上,我们使用 git clone + 复制的 URL

注意:不要在任何一个仓库目录下克隆

我们克隆后,我们要输入我们的 gitee 的用户名

然后输入我们的 gitee 的密码,linux下密码是不回显的

[lxy@hecs-165234 ~]$ git clone https://gitee.com/naxxkuku/remot-gitcode.git
Cloning into 'remot-gitcode'...
Username for 'https://gitee.com': naxxkuku
Password for 'https://naxxkuku@gitee.com': 
remote: Enumerating objects: 7, done.
remote: Counting objects: 100% (7/7), done.
remote: Compressing objects: 100% (7/7), done.
remote: Total 7 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (7/7), done.

 我们克隆好后,我们的仓库就是这个样子

而这个远程仓库:origin 就是我们的远程仓库的名称

指令:git remote       查看远程仓库名(统称)

[lxy@hecs-165234 remot-gitcode]$ git remote
origin

指令:git remote -v      查看远程仓库的详细信息 

[lxy@hecs-165234 remot-gitcode]$ git remote -v
origin    https://gitee.com/naxxkuku/remot-gitcode.git (fetch)
origin    https://gitee.com/naxxkuku/remot-gitcode.git (push)

 上面的 URL 就是远程仓库的地址,而括号里面的 fetch(表示可以拉), push(表示可以推)

如果我们本地没有远程仓库的内容,那么我们就要使用 fetch权限,然后把本地仓库没有的给拉下来

如果我们本地仓库想要把开发的内容放到远程仓库,那么我们就要使用 push权限,把本地新的内容推送到远程仓库

四. 克隆远程仓库_SSH

使用 SSH 协议使用的是公钥加密和公钥登录的一个机制,我们要向使用SSH的话,我们需要将自己的服务器上的公钥放到 git 上进行管理。

下面查看 git 上是否配置公钥。

 

 

这里我们的 git 并没有配置公钥,我们配置一下。

如果这里没有配置,然后直接克隆试一下。

[lxy@hecs-165234 ~]$ git clone git@gitee.com:naxxkuku/remot-gitcode.git
Cloning into 'remot-gitcode'...
The authenticity of host 'gitee.com (180.76.198.77)' can't be established.
ECDSA key fingerprint is SHA256:FQGC9Kn/eye1W8icdBgrQp+KkGYoFgbVr17bmjey0Wc.
ECDSA key fingerprint is MD5:27:e5:d3:f7:2a:9e:eb:6c:93:cd:1f:c1:47:a3:54:b1.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'gitee.com,180.76.198.77' (ECDSA) to the list of known hosts.
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

这里就出错了。

 

配置公钥

  1.  到用户目录下查看是否有 .ssh 文件(没有就创建)

  2. 如果有的话,查看是否有 id_rsa 和 id_rsa.pub,其中 id_rsa.pub 就是公钥,有的话就直接复制粘贴到那个配置项里面就可以了

  3. 没有的话,我们输入这条命令 ssh-keygen -t rsa -C "2146047600@qq.com"(这个邮箱是 git 上填的邮箱),输入后,这里一路回车,什么都不用填写。

 

[lxy@hecs-165234 .ssh]$ ssh-keygen -t rsa -C "2146047600@qq.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/home/lxy/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/lxy/.ssh/id_rsa.
Your public key has been saved in /home/lxy/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:BzyRXqxyiIJCaTFmGs8ErLp9TFFtb47xn/svPYEC3po 2146047600@qq.com
The key's randomart image is:
+---[RSA 2048]----+
|+*+    ..o       |
|+X.   ..+.o      |
|=.o  o +++       |
|+ . o o =+o      |
|o  . . oS*+   .  |
|.   .   .ooo . . |
| o o      o... ..|
|. . o    E  o ...|
|   .        .o.oo|
+----[SHA256]-----+
[lxy@hecs-165234 .ssh]$ ll
total 12
-rw------- 1 lxy lxy 1679 Jul 30 15:56 id_rsa
-rw-r--r-- 1 lxy lxy  399 Jul 30 15:56 id_rsa.pub
-rw-r--r-- 1 lxy lxy  185 Jul 30 15:46 known_hosts

 下面积都创建好了。

添加公钥

配置好后,我们打开公钥,然后赋值粘贴到配置项里面。

 

配置好后要输入密码。

 

这样就配置完成。

配置结束后就继续克隆。

[lxy@hecs-165234 ~]$ git clone git@gitee.com:naxxkuku/remot-gitcode.git
Cloning into 'remot-gitcode'...
remote: Enumerating objects: 7, done.
remote: Counting objects: 100% (7/7), done.
remote: Compressing objects: 100% (7/7), done.
remote: Total 7 (delta 0), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (7/7), done.

 这样就成功了。

五. git 向远程仓库推送

当我们的有远端仓库的时候,我们在查看一下 git 的配置,我们需要把git里面的 name 和 email 都配置成我们git 的。

名字就是这个。

邮箱就是我们 git 上填写的邮箱。

 

[lxy@hecs-165234 remot-gitcode]$ git config --global user.name "naxxkuku"
[lxy@hecs-165234 remot-gitcode]$ git config --global user.email "2146047600@qq.com"
[lxy@hecs-165234 remot-gitcode]$ git config -l
user.name=naxxkuku
user.email=2146047600@qq.com
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
remote.origin.url=git@gitee.com:naxxkuku/remot-gitcode.git
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.master.remote=origin
branch.master.merge=refs/heads/master

 着用就配置好了。

[lxy@hecs-165234 remot-gitcode]$ git push origin master:master
[lxy@hecs-165234 remot-gitcode]$ git add .
[lxy@hecs-165234 remot-gitcode]$ git commit -m "linux 远程测试"
[master 00846ac] linux 远程测试
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 test.txt
[lxy@hecs-165234 remot-gitcode]$ git status
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#   (use "git push" to publish your local commits)
#
nothing to commit, working directory clean
[lxy@hecs-165234 remot-gitcode]$ git push origin master:master
Counting objects: 4, done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 283 bytes | 0 bytes/s, done.
Total 3 (delta 1), reused 0 (delta 0)
remote: Powered by GITEE.COM [GNK-6.4]
To git@gitee.com:naxxkuku/remot-gitcode.git
   5fe97e9..00846ac  master -> master

这里就好了,这里在细看一下 push

这里就是git push 命令,然后后面是 origin  表示远端,在后面是一个 master 表示本地的master 分支,后面的master 分支表示向远端的master分支推送,这里如果本地和远端都是master分支那么其实是可以省略只写一个的。

这时候我们的远程仓库也就推送到了。

六. 拉取远程仓库

场景:当为我们和其他人共同使用一个仓库时,我们需要别人编写的内容,所i我们需要从远端仓库拉取下来。

这里就不使用这种场景了,这里我们就直接修改远端的数据,然后我们在向下拉取。

 

现在我们开始向下拉取。

[lxy@hecs-165234 remot-gitcode]$ git pull origin master:master
[lxy@hecs-165234 remot-gitcode]$ git pull origin master:master
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), done.
From gitee.com:naxxkuku/remot-gitcode
   3e140e1..a16ec9b  master     -> master
Warning: fetch updated the current branch head.
Warning: fast-forwarding your working tree from
Warning: commit 3e140e153a9dae37ce64c4d81032588ce3f88507.
Already up-to-date.
[lxy@hecs-165234 remot-gitcode]$ cat test.txt 
hello world
拉取测试~~~

 我们这里拉取成功了。

这个就是拉取,origin 也表示远端,master分别表示远端和本地,这两个也能省略写。

七. 忽略特殊文件

在创建文件的时候我们可以挑选 .gitignore 文件,这个文件可以帮助我们忽略掉我们不想要被管理的文件。

我们当时创建库的时候并没有选择该文件,所以我们可以创建一个。

[lxy@hecs-165234 remot-gitcode]$ cat .gitignore 
# 忽略文件

*.so
*.exe

 我们向该文件里面写入 *.so 表示所有的 so后缀的文件都会被忽略。

现在我们测试一下。

[lxy@hecs-165234 remot-gitcode]$ touch test.so
[lxy@hecs-165234 remot-gitcode]$ git status
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#   (use "git push" to publish your local commits)
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#	.gitignore
nothing added to commit but untracked files present (use "git add" to track)

我们创建了一个 test.so 文件,然后我们 git status 查看,我们发现只有我们刚才的 .gitignore 文件,我们的 test.so 文件已经被忽略。

那么我们再试一下,我们创建一个 test.txt 文件,然后我们push后查看远端。

[lxy@hecs-165234 remot-gitcode]$ touch test.exe
[lxy@hecs-165234 remot-gitcode]$ vim test.exe
[lxy@hecs-165234 remot-gitcode]$ vim test.so
[lxy@hecs-165234 remot-gitcode]$ git add .
[lxy@hecs-165234 remot-gitcode]$ git commit -m ".gitignore 文件测试"
[master e3e09e3] .gitignore 文件测试
 1 file changed, 4 insertions(+)
 create mode 100644 .gitignore
[lxy@hecs-165234 remot-gitcode]$ git push origin master
Counting objects: 4, done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 313 bytes | 0 bytes/s, done.
Total 3 (delta 1), reused 0 (delta 0)
remote: Powered by GITEE.COM [GNK-6.4]
To git@gitee.com:naxxkuku/remot-gitcode.git
   a16ec9b..e3e09e3  master -> master

我们发现并未被提交。那么我们就是向提交某一个 .so 文件呢?

[lxy@hecs-165234 remot-gitcode]$ git add -f right.so
[lxy@hecs-165234 remot-gitcode]$ touch right.so
[lxy@hecs-165234 remot-gitcode]$ git add -f right.so
[lxy@hecs-165234 remot-gitcode]$ git commit -m "强制提交忽略文件测试"
[master 4f7a650] 强制提交忽略文件测试
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 right.so
[lxy@hecs-165234 remot-gitcode]$ git push origin master
Counting objects: 4, done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 303 bytes | 0 bytes/s, done.
Total 3 (delta 1), reused 0 (delta 0)
remote: Powered by GITEE.COM [GNK-6.4]
To git@gitee.com:naxxkuku/remot-gitcode.git
   e3e09e3..4f7a650  master -> master

 

 

 

这里要是想强制提交,那么就是带 -f 选项,但是这样带 -f 选项会破坏规则,所以我们还可以在 .gitignore  文件里面继续编写。

[lxy@hecs-165234 remot-gitcode]$ cat .gitignore 
# 忽略文件

*.so
*.exe

!left.so

我们在前面加 ! 就表示不忽略该文件。下面测试一下。

[lxy@hecs-165234 remot-gitcode]$ touch left.so
[lxy@hecs-165234 remot-gitcode]$ git add .
[lxy@hecs-165234 remot-gitcode]$ git commit -m ".gitignore文件不忽略测试"
[master ba0b6df] .gitignore文件不忽略测试
 2 files changed, 2 insertions(+)
 create mode 100644 left.so
[lxy@hecs-165234 remot-gitcode]$ git push origin master
Counting objects: 5, done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 334 bytes | 0 bytes/s, done.
Total 3 (delta 1), reused 0 (delta 0)
remote: Powered by GITEE.COM [GNK-6.4]
To git@gitee.com:naxxkuku/remot-gitcode.git
   4f7a650..ba0b6df  master -> master

如果当我们的 .gitignore 文件里面的忽略配置太多,我们也不知道我们到底有没有忽略,我们可以使用命令查看一下。

[lxy@hecs-165234 remot-gitcode]$ git check-ignore -v up.so
[lxy@hecs-165234 remot-gitcode]$ touch up.so
[lxy@hecs-165234 remot-gitcode]$ git check-ignore -v up.so
.gitignore:3:*.so	up.so

 这里就可以看到我们的 up.so 时被忽略的,到 .gitignore 的第三行。

八. 配置别名

有时候我们在 git 操作的时候命令太长,我们可以对其进行配置

[lxy@hecs-165234 remot-gitcode]$ git log --pretty=oneline --abbrev-commit

我们想对这条命令进行配置一下。

[lxy@hecs-165234 remot-gitcode]$ git config --global alias.缩写名 '被缩写的命令'

上面这个就是指令,我们来试验一下。

[lxy@hecs-165234 remot-gitcode]$ git config --global alias.lps 'log --pretty=oneline --abbrev-commit'

下面我们看一下我们的配置是否可以。

[lxy@hecs-165234 remot-gitcode]$ git lps
ba0b6df .gitignore文件不忽略测试
4f7a650 强制提交忽略文件测试
e3e09e3 .gitignore 文件测试
a16ec9b update test.txt.
3e140e1 git 远端测试
00846ac linux 远程测试
5fe97e9 Initial commit

当然我们配置后原指令也是可以继续生效的。

[lxy@hecs-165234 remot-gitcode]$ git log --pretty=oneline --abbrev-commit
ba0b6df .gitignore文件不忽略测试
4f7a650 强制提交忽略文件测试
e3e09e3 .gitignore 文件测试
a16ec9b update test.txt.
3e140e1 git 远端测试
00846ac linux 远程测试
5fe97e9 Initial commit

git 的远程操作就到这里,我们下次再见~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/52620.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【腾讯云 Cloud Studio 实战训练营】体验搭建软件系统,无经验也能做开发

文章目录 前言IDE 解放开发者的生产力功能强大的 IDE快速搭建 Vue 开发环境注册 Cloud Studio进入Vue预置开发环境安装相关依赖包主文件 main.js 引入相关库和包首页增加移动端默认样式增加主要代码 IDE 的适用场景总结 前言 云计算技术的不断发展为代码开发带来了全新的体验&…

git本地库和远程库的相关操作命令

目录 一、分支概念&#xff1a; 二、 本地库分支管理&#xff1a; 1. 查看分支情况&#xff1a; 命令1&#xff1a;git branch 2. 新建分支 命令1&#xff1a; git branch <分支名> 命令2&#xff1a; git branch <新建分支名> <源分支名> 命令3&…

打印Winform控件实现简陋版的分页打印(C#)

本文的代码可以从这里获取&#xff1a;winformDemo.rar 张祥裕/分享的资源名称 - Gitee.com 作者的水平有限&#xff0c;如有错误&#xff0c;望指正。 为了简单起见&#xff0c;纸张大小&#xff0c;打印机等信息按照默认的来&#xff0c;本文的实现方案是&#xff1a;打印Pa…

RN 设置背景图片(使用ImageBackground组件)

在RN版本0.46版本的时候添加了ImageBackground控件。ImageBackground可以设置背景图片&#xff0c;使用方法和image一样&#xff0c;里面嵌套了其他的组件 import React from "react"; import { ImageBackground, StyleSheet, Text, View } from "react-native…

可以写进简历的kafka优化-----吞吐量提升一倍的方法

冲突 在看到项目工程里kafka 生产端配置的batch.size为500&#xff0c;而实际业务数据平均有1K大小的时候&#xff1b;我有点懵了。是的&#xff0c;这里矛盾了&#xff1b;莫非之前的作者认为这个batch.size是发送的条数&#xff0c;而不是kafka生产端内存缓存记录的大小&…

脑电信号处理与特征提取——5.频谱分析和时频分析(张治国)

目录 五、频谱分析和时频分析 5.1 频谱估计 5.1.1 基本概念 5.1.2 频谱估计方法&#xff1a;周期图 5.1.3 频谱估计方法&#xff1a;Welch法 5.1.4 频谱估计方法的比较 5.1.5 频谱特征提取 5.2 时频分析 5.2.1 短时傅里叶变换 5.2.2 连续小波变换 5.3 事件相关同步…

【能量管理系统( EMS )】基于粒子群算法对光伏、蓄电池等分布式能源DG进行规模优化调度研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

vuejs源码阅读之代码生成器

代码生成器是模版编译的最后以后&#xff0c;它的作用是将AST转换成渲染函数中的内容&#xff0c;这个内容可以称为代码字符串。 代码字符串可以被包装在函数中执行&#xff0c;这个函数就是我们通常说的渲染函数。 渲染函数被执行之后&#xff0c;可以生成一份VNode&#xf…

爬取微博热搜榜并进行数据分析

设计方案 爬虫爬取的内容 &#xff1a;爬取微博热搜榜数据。 网络爬虫设计方案概述 用requests库访问页面用get方法获取页面资源&#xff0c;登录页面对页面HTML进行分析&#xff0c;用beautifulsoup库获取并提取自己所需要的信息。再讲数据保存到CSV文件中&#xff0c;进行…

day48-Random Image Feed(随机图片显示)

50 天学习 50 个项目 - HTMLCSS and JavaScript day48-Random Image Feed&#xff08;随机图片显示&#xff09; 效果 index.html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport&…

EIP-2535 Diamond standard 实用工具分享

前段时间工作对接到了这标准的协议&#xff0c;于是简单介绍下这个标准分享下方便前端er使用的调用工具 一、标准的诞生 在写复杂逻辑的solidity智能合约时&#xff0c;经常会碰到两个问题&#xff0c;升级和合约大小限制。 升级目前有几种proxy模式&#xff0c;通过delegateca…

如何选择合适的客户管理系统(CRM系统)

本篇文章将介绍如何选择适合您业务的客户管理系统。我们将讨论如何考虑不同的需求、功能和预算&#xff0c;以及如何在众多选项中选择最佳解决方案。 一、选择合适的客户管理系统的重要性 1、提高工作效率: 客户管理系统可以简化许多繁琐、重复的工作流程&#xff0c;如数据输…

Spring Alibaba Sentinel实现集群限流demo

1.背景 1.什么是单机限流&#xff1f; 小伙伴们或许遇到过下图这样的限流配置 又或者是这样的Nacos动态配置限流规则&#xff1a; 以上这些是什么限流&#xff1f;没错&#xff0c;就是单机限流&#xff0c;那么单机限流有什么弊端呢&#xff1f; 假设我们集群部署3台机器&a…

【*1900 图论+枚举思想】CF1328 E

Problem - E - Codeforces 题意&#xff1a; 思路&#xff1a; 注意到题目的性质&#xff1a;满足条件的路径个数是极少的&#xff0c;因为每个点离路径的距离<1 先考虑一条链&#xff0c;那么直接就选最深那个点作为端点即可 为什么&#xff0c;因为我们需要遍历所有点…

桥接模式——处理多维度变化

1、简介 1.1、概述 桥接模式是一种很实用的结构型设计模式。如果软件系统中某个类存在两个独立变化的维度&#xff0c;通过该模式可以将这两个维度分离出来&#xff0c;使两者可以独立扩展&#xff0c;让系统更加符合单一职责原则。与多层继承方案不同&#xff0c;它将两个独…

nosql之redis集群

nosql之redis集群 一.redis集群 1.单节点redis服务器带来的问题 &#xff08;1&#xff09;单点故障、服务不可用 &#xff08;2&#xff09;无法处理大量的并发数据请求 &#xff08;3&#xff09;数据丢失 2.集群redis &#xff08;1&#xff09;提供在多个redis节点间…

网络运维基础问题及解答

前言 本篇文章是对于网络运维基础技能的一些常见问题的解答&#xff0c;希望能够为进行期末复习或者对网络运维感兴趣的同学或专业人员提供一定的帮助。 问题及解答 1. 列举 3 种常用字符编码&#xff0c;简述怎样在 str 和 bytes 之间进行编码和解码。 答&#xff1a;常用的…

【数学建模】时间序列分析

文章目录 1. 条件2. 模型分类3. SPSS处理时间序列 1. 条件 1.使用于具有时间、数值两种要素 2.数据具有周期性可以使用时间序列分解 2. 模型分类 叠加模型【YTSCI】 序列的季节波动变化越来越大&#xff0c;反映变动之间的关系发生变化乘积序列【YTSC*I】 时间序列波动保持恒…

Scaling Instruction-Finetuned Language Models

Paper name Scaling Instruction-Finetuned Language Models Paper Reading Note Paper URL: https://arxiv.org/pdf/2210.11416.pdf TL;DR 2022 年谷歌出的文章&#xff0c;对指令微调的影响因素进行分析&#xff0c;提出了一些提升指令微调效果的方案。与该文章一起出品…

Linux--验证命令行上运行的程序的父进程是bash

1.输入以下代码&#xff1a; #include <stdio.h> #include <unistd.h> int main() {printf("hello world: pid: %d, ppid: %d\n",getpid(),getppid());return 0; }2.编译得到可执行程序​​​ 3.运行得到ppid 4.输入指令 ps axj | head -1 &&am…