<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>丁永辉</title>
    <description>欢迎来到我的个人博客~</description>
    <link>https://dyh0113.github.io/</link>
    <atom:link href="https://dyh0113.github.io/feed.xml" rel="self" type="application/rss+xml"/>
    <pubDate>Wed, 25 Mar 2020 07:17:03 +0000</pubDate>
    <lastBuildDate>Wed, 25 Mar 2020 07:17:03 +0000</lastBuildDate>
    <generator>Jekyll v3.8.5</generator>
    
      <item>
        <title>Vue 路由传递参数</title>
        <description>&lt;h1 id=&quot;有两种方式&quot;&gt;有两种方式：&lt;/h1&gt;

&lt;h3 id=&quot;一用name传递参数&quot;&gt;一、用name传递参数&lt;/h3&gt;

&lt;p&gt;两步完成用name传值并显示在模板里：&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;在路由文件src/router/index.js里配置name属性。&lt;/p&gt;

    &lt;div class=&quot;language-vue highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;routes: [
    {
      path: '/',
      name: 'Hello',
      component: Hello
    }
]
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;模板里(src/App.vue)用$router.name的形势接收，比如直接在模板中显示：&lt;/p&gt;

    &lt;div class=&quot;language-vue highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id=&quot;二通过-标签中的to传参&quot;&gt;二、通过 标签中的to传参&lt;/h3&gt;

&lt;p&gt;上边的传参或许很不正规，也不方便，其实工作中多数传参是不用name进行传参的，我们用标签中的to属性进行传参，需要注意的是这里的to要进行一个绑定，写成:to。先来看一下这种传参方法的基本语法：&lt;/p&gt;

&lt;div class=&quot;language-vue highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;router-link&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;:to=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;{name:xxx,params:{key:value}}&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;valueString&lt;span class=&quot;nt&quot;&gt;&amp;lt;/router-link&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;这里的to前边是带冒号的，然后后边跟的是一个对象形势的字符串.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;name：就是我们在路由配置文件中起的name值。&lt;/li&gt;
  &lt;li&gt;params：就是我们要传的参数，它也是对象形势，在对象里可以传递多个值。&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;了解基本的语法后，我们改造一下我们的src/App.vue里的标签,我们把hi1页面的进行修改。&lt;/p&gt;

&lt;div class=&quot;language-vue highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;router-link&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;:to=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;{name:'hi1',params:{username:'jspang'}}&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;Hi页面1&lt;span class=&quot;nt&quot;&gt;&amp;lt;/router-link&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;把src/reouter/index.js文件里给hi1配置的路由起个name,就叫hi1.&lt;/p&gt;

&lt;div class=&quot;language-vue highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;{path:'/hi1',name:'hi1',component:Hi1},
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-vue highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;最后在模板里(src/components/Hi1.vue)用$route.params.username进行接收.

&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h1 id=&quot;vue-router-利用url传递参数-冒号的形式传递参数&quot;&gt;vue-router 利用url传递参数 :冒号的形式传递参数&lt;/h1&gt;

&lt;p&gt;在路由配置文件里以:冒号的形式传递参数，这就是对参数的绑定。&lt;/p&gt;

&lt;p&gt;1.在配置文件里以冒号的形式设置参数。我们在/src/router/index.js文件里配置路由。&lt;/p&gt;

&lt;div class=&quot;language-vue highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;{
    path:'/params/:newsId/:newsTitle',
     component:Params
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;ul&gt;
  &lt;li&gt;我们需要传递参数是新闻ID（newsId）和新闻标题（newsTitle）.所以我们在路由配置文件里制定了这两个值。&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;2.在src/components目录下建立我们params.vue组件，也可以说是页面。我们在页面里输出了url传递的的新闻ID和新闻标题。&lt;/p&gt;

&lt;div class=&quot;language-vue highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;template&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;div&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;nt&quot;&gt;&amp;lt;h2&amp;gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;nt&quot;&gt;&amp;lt;p&amp;gt;&lt;/span&gt;新闻ID：&lt;span class=&quot;nt&quot;&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;nt&quot;&gt;&amp;lt;p&amp;gt;&lt;/span&gt;新闻标题：&lt;span class=&quot;nt&quot;&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;template&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;
 
&lt;span class=&quot;nt&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;script&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;default&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;na&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;params&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;nx&quot;&gt;data&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;na&quot;&gt;msg&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;params page&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;script&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;3.在App.vue文件里加入我们的标签。这时候我们可以直接利用url传值了。&lt;/p&gt;

&lt;div class=&quot;language-vue highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;router-link&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;to=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;/params/198/jspang website is very good&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;params&lt;span class=&quot;nt&quot;&gt;&amp;lt;/router-link&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;ul&gt;
  &lt;li&gt;正则表达式在URL传值中的应用&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;上边的例子，我们传递了新闻编号，现在需求升级了，我们希望我们传递的新闻ID只能是数字的形式，这时候我们就需要在传递时有个基本的类型判断，vue是支持正则的。
加入正则需要在路由配置文件里（/src/router/index.js）以圆括号的形式加入。&lt;/p&gt;

&lt;div class=&quot;language-vue highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;path:'/params/:newsId(\\d+)/:newsTitle',
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;ul&gt;
  &lt;li&gt;加入了正则，我们再传递数字之外的其他参数，params.vue组件就没有办法接收到。&lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Mon, 13 Jan 2020 00:00:00 +0000</pubDate>
        <link>https://dyh0113.github.io/2020/01/vue%E8%B7%AF%E7%94%B1%E4%BC%A0%E9%80%92%E5%8F%82%E6%95%B0/</link>
        <guid isPermaLink="true">https://dyh0113.github.io/2020/01/vue%E8%B7%AF%E7%94%B1%E4%BC%A0%E9%80%92%E5%8F%82%E6%95%B0/</guid>
        
        <category>vue</category>
        
        
      </item>
    
      <item>
        <title>npm</title>
        <description>&lt;p&gt;名字由来：Node Package(包) Manager(管理器)。&lt;/p&gt;

&lt;h3 id=&quot;npm-常用命令&quot;&gt;npm 常用命令&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;npm -v&lt;/strong&gt;：查看npm当前版本&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;npm list&lt;/strong&gt; 或 &lt;strong&gt;ls&lt;/strong&gt;：查看当前目录下安装了哪些node包&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;npm install –global npm&lt;/strong&gt;：升级npm&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;npm config get registry&lt;/strong&gt;：查看镜像&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;npm 命令 –help&lt;/strong&gt;：查看使用帮助&lt;/p&gt;

&lt;p&gt;​		例如：我忘记了uninstall命令的简写了，这个时候可以输入 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;npm uninstall --help&lt;/code&gt; 查看使用帮助&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;npm init&lt;/strong&gt;：用来生成package.json文件&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/npm/npm01.png&quot; alt=&quot;npm基础命令&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;npm 下载模块&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;​		&lt;strong&gt;npm install&lt;/strong&gt;：一次性把dependencies选项中的依赖项全部安装&lt;/p&gt;

&lt;p&gt;​		&lt;strong&gt;npm install 包名&lt;/strong&gt;：只下载&lt;/p&gt;

&lt;p&gt;​		&lt;strong&gt;npm install –save 包名&lt;/strong&gt;：下载并且保存依赖项（package.json 文件中的 dependencies选项）&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;npm 删除模块&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;​		&lt;strong&gt;npm uninstall 包名&lt;/strong&gt;：只删除，如果有依赖项会依然保存&lt;/p&gt;

&lt;p&gt;​		&lt;strong&gt;npm uninstall -save 包名&lt;/strong&gt;：删除的同时也会把依赖信息也去除&lt;/p&gt;

&lt;h3 id=&quot;解决-npm-被墙问题&quot;&gt;解决 npm 被墙问题&lt;/h3&gt;

&lt;p&gt;​	npm 存储包文件的服务器在国外，有时候被墙，速度很慢，索引我们需要解决这个问题。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://npm.taobao.org/&quot;&gt;淘宝 NPM 镜像&lt;/a&gt; 这是一个完整 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;npmjs.org&lt;/code&gt; 镜像，你可以用此代替官方版本(只读)，同步频率目前为 &lt;strong&gt;10分钟&lt;/strong&gt; 一次以保证尽量与官方服务同步。（淘宝的开发团队把 npm 在国内做了一个备份）&lt;/p&gt;

&lt;p&gt;安装淘宝的 cnpm：&lt;/p&gt;

&lt;div class=&quot;language-javascript highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;err&quot;&gt;#&lt;/span&gt; &lt;span class=&quot;err&quot;&gt;在任意目录执行都可以&lt;/span&gt;
&lt;span class=&quot;err&quot;&gt;#&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;--&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;global&lt;/span&gt; &lt;span class=&quot;err&quot;&gt;表示安装到全局，而非当前目录（必须＋&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;--&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;global&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;）&lt;/span&gt;
&lt;span class=&quot;nx&quot;&gt;npm&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;install&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;--&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;global&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;cnpm&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;接下来安装包的时候把之前的&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;npm&lt;/code&gt; 替换成 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;cnpm&lt;/code&gt;&lt;/p&gt;

&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c&quot;&gt;# 这里还是走国外的 npm 服务器，速度比较慢 &lt;/span&gt;
npm &lt;span class=&quot;nb&quot;&gt;install &lt;/span&gt;mysql
&lt;span class=&quot;c&quot;&gt;# 使用 cnpm 就会通过淘宝的服务器来下载 mysql&lt;/span&gt;
cnpm &lt;span class=&quot;nb&quot;&gt;install &lt;/span&gt;mysql
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

</description>
        <pubDate>Fri, 06 Dec 2019 00:00:00 +0000</pubDate>
        <link>https://dyh0113.github.io/2019/12/npm/</link>
        <guid isPermaLink="true">https://dyh0113.github.io/2019/12/npm/</guid>
        
        <category>npm</category>
        
        
      </item>
    
      <item>
        <title>Linux 常用命令</title>
        <description>&lt;h3 id=&quot;界面提示说明&quot;&gt;界面提示说明&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;当前用户：&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;​	Linux  超级用户：root&lt;/p&gt;

&lt;p&gt;​	Windows 超级用户：adminstrator&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;主机名：&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;​	创建服务器时起的名字，可以修改&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;当前目录：&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;​	如果出现目录了，表示当前的目录路径&lt;/p&gt;

&lt;p&gt;​		管理员      /root&lt;/p&gt;

&lt;p&gt;​		普通用户   /home/用户名&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;# $号：&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;​        &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;#&lt;/code&gt; 	表示超级用户&lt;/p&gt;

&lt;p&gt;​        &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;$&lt;/code&gt;	表示普通用户&lt;/p&gt;

&lt;h3 id=&quot;常见目录说明&quot;&gt;常见目录说明&lt;/h3&gt;

&lt;p&gt;​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/&lt;/code&gt;		根目录&lt;/p&gt;

&lt;p&gt;​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/root&lt;/code&gt;	超级用户的主目录&lt;/p&gt;

&lt;p&gt;​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/home&lt;/code&gt;	普通用户的主目录&lt;/p&gt;

&lt;p&gt;​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/bin&lt;/code&gt;		命令保存目录（普通用户就可以读取的命令）&lt;/p&gt;

&lt;p&gt;​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/sbin&lt;/code&gt;	命令保存目录（超级用户才能使用的目录）&lt;/p&gt;

&lt;p&gt;​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/boot&lt;/code&gt;	 这里存放的是启动liunx时使用的一些核心文件 包括一些链接文件和镜像文件&lt;/p&gt;

&lt;p&gt;​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/dev&lt;/code&gt;	 这里存放的是liunx的外部设备 在liunx中访问设备的方式和访问文件的方式是相同的&lt;/p&gt;

&lt;p&gt;​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/etc&lt;/code&gt;		 这个目录用来存放所有的系统管理所需要的配置文件和子目录&lt;/p&gt;

&lt;p&gt;​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/lib&lt;/code&gt;		 这个目录存放着系统最基本的动态链接共享库 起作用类似windows里的DDL文件&lt;/p&gt;

&lt;p&gt;​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/mnt&lt;/code&gt;	系统挂载目录，U盘&lt;/p&gt;

&lt;p&gt;​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/media&lt;/code&gt;	挂载目录，光盘&lt;/p&gt;

&lt;p&gt;​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/misc&lt;/code&gt;	网络存储盘&lt;/p&gt;

&lt;p&gt;​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/tmp&lt;/code&gt;	临时目录&lt;/p&gt;

&lt;p&gt;​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/proc&lt;/code&gt;	直接写入内存&lt;/p&gt;

&lt;p&gt;​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/usr&lt;/code&gt;		系统软件资源目录，系统的重要目录&lt;/p&gt;

&lt;p&gt;​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/var&lt;/code&gt;		系统相关文档内容，系统的可变文件，比如日志，随时变化&lt;/p&gt;

&lt;p&gt;​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/var/log/&lt;/code&gt;		系统日志位置&lt;/p&gt;

&lt;h3 id=&quot;常用快捷键命令&quot;&gt;常用快捷键命令&lt;/h3&gt;

&lt;p&gt;​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;tab键&lt;/code&gt;				自动补全&lt;/p&gt;

&lt;p&gt;​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ctrl+c&lt;/code&gt;			终止当前操作&lt;/p&gt;

&lt;p&gt;​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ctrl+l&lt;/code&gt;			清屏&lt;/p&gt;

&lt;p&gt;​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ctrl+r&lt;/code&gt;			查找历史命令&lt;/p&gt;

&lt;h3 id=&quot;基本操作&quot;&gt;基本操作&lt;/h3&gt;

&lt;p&gt;​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;uname -r&lt;/code&gt;		查看版本信息&lt;/p&gt;

&lt;p&gt;​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;pwd&lt;/code&gt;				查看用户当前的目录路径&lt;/p&gt;

&lt;p&gt;​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ifconfig --help&lt;/code&gt;			查看网卡信息&lt;/p&gt;

&lt;p&gt;​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;setup&lt;/code&gt; 			图形界面配置&lt;/p&gt;

&lt;p&gt;​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;date&lt;/code&gt;				显示日期&lt;/p&gt;

&lt;p&gt;​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;cal&lt;/code&gt;				显示日历&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;关机和重启&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;关机&lt;/p&gt;

&lt;p&gt;​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;shutdown -h now&lt;/code&gt;			立刻关机&lt;/p&gt;

&lt;p&gt;​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;shutdown -h 5(分钟)&lt;/code&gt;		5分钟后关机&lt;/p&gt;

&lt;p&gt;​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;poweroff&lt;/code&gt;							立刻关机&lt;/p&gt;

&lt;p&gt;​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;init 0&lt;/code&gt;									关机&lt;/p&gt;

&lt;p&gt;重启&lt;/p&gt;

&lt;p&gt;​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;shutdown -r now&lt;/code&gt;			立刻重启&lt;/p&gt;

&lt;p&gt;​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;shutdown -r 5(分钟)&lt;/code&gt;		5分钟后重启&lt;/p&gt;

&lt;p&gt;​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;reboot&lt;/code&gt;								立刻重启&lt;/p&gt;

&lt;p&gt;​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;init 6&lt;/code&gt;									重启&lt;/p&gt;

&lt;h3 id=&quot;操作命令&quot;&gt;操作命令&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;切换 cd&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;​	命令：cd 目录或文件&lt;/p&gt;

&lt;p&gt;​		&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;cd /&lt;/code&gt;									切换到根目录&lt;/p&gt;

&lt;p&gt;​		&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;cd /test&lt;/code&gt;							切换到根目录下的test目录&lt;/p&gt;

&lt;p&gt;​		&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;cd ../&lt;/code&gt;								切换到上一级目录 或者 cd..&lt;/p&gt;

&lt;p&gt;​		&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;cd ~&lt;/code&gt;									切换到home目录&lt;/p&gt;

&lt;p&gt;​		&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;cd -&lt;/code&gt;									切换到上次访问的目录&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;查看 ls&lt;/strong&gt;&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;参数：
 	1.  -l：列出长数据串，包含文件的属性与权限数据等
 	2.  -a：列出全部文件，连同隐藏的文件（开头为.的文件）一起列出来（常用）
 	3.  -d：仅列出目录本身，而不是列出目录的文件数据
 	4.  -h：将文件容量以较易读的方式（GB，KB等）列出来
 	5.  -R：连同子目录的内容一起列出（递归列出），等于该目录下的所有文件都会显示出来
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;​	命令：ls 参数&lt;/p&gt;

&lt;p&gt;​		&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ls&lt;/code&gt;			查看当前目录下的所有目录和文件&lt;/p&gt;

&lt;p&gt;​		&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ls -a&lt;/code&gt;		查看当前目录下的所有目录和文件（包括隐藏文件）&lt;/p&gt;

&lt;p&gt;​		&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ls -l(也可以简写用 ll )&lt;/code&gt;		查看当前目录下的所有目录和文件（列表形式查看，显示更多信息）&lt;/p&gt;

&lt;p&gt;​		&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ls /filename(目录名)&lt;/code&gt;	查看指定目录下的所有目录和文件&lt;/p&gt;

&lt;p&gt;​		&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ls -lR&lt;/code&gt;		列表的形式查看所有目录和文件 并且 列出当前目录下的所有文件&lt;/p&gt;

&lt;p&gt;​		&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ls -l blog.md(文件名)&lt;/code&gt;				查看文件的时间属性&lt;/p&gt;

&lt;h3 id=&quot;目录文件增删改查&quot;&gt;目录，文件【增，删，改，查】&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;创建目录或文件/增	mkdir 和 touch&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;mkdir&lt;/strong&gt; 命令用于创建目录&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;参数：
	1.	-m：配置文件权限
	2.	-p：递归建立
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;​	命令：&lt;/p&gt;

&lt;p&gt;​		&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;mkdir test&lt;/code&gt;		在当前目录下创建一个名为test的目录&lt;/p&gt;

&lt;p&gt;​		&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;mkdir /usr/test&lt;/code&gt;		在指定目录下创建一个名为test的目录&lt;/p&gt;

&lt;p&gt;​		&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;mkdir -p admin/include/upload/&lt;/code&gt;		递归创建目录&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;touch&lt;/strong&gt; 命令用于修改目录或文件的时间，包括存取时间和更改时间，如果文件不存在则会创建一个新的文件&lt;/p&gt;

&lt;p&gt;​	命令：&lt;/p&gt;

&lt;table&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;​		&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;touch test&lt;/code&gt;			创建文件&lt;/td&gt;
      &lt;td&gt;修改文件时间属性为当前系统时间&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;修改blog.md文件的时间
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/linux/linux01.png&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;删除目录或文件/删	rm&lt;/strong&gt;&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;参数：
	1.	-f：就是force的意思，忽略不存在的文件，不会出现警告消息
	2.	-i：互动模式。在删除前会询问用户是否操作
	3.	-r：递归删除，最常用于目录删除（同样会询问是否执行删除操作）
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;​	命令：rm -r 目录&lt;/p&gt;

&lt;p&gt;​		删除目录或文件：&lt;/p&gt;

&lt;p&gt;​			&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;rm 文件名&lt;/code&gt;			删除当前目录下的文件&lt;/p&gt;

&lt;p&gt;​			&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;rm -f index.html(文件名)&lt;/code&gt;		删除当前目录下的文件（不询问）&lt;/p&gt;

&lt;p&gt;​			&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;rm -r test(目录名)&lt;/code&gt;	递归删除当前目录下的test目录&lt;/p&gt;

&lt;p&gt;​			&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;rm -rf test&lt;/code&gt;				递归删除当前目录下的test目录（不询问）&lt;/p&gt;

&lt;p&gt;​		全部删除：&lt;/p&gt;

&lt;p&gt;​			&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;rm -rf *&lt;/code&gt;			当前目录下的所有目录和文件全部删除&lt;/p&gt;

&lt;p&gt;​			&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;rm -rf /*&lt;/code&gt;			[自杀命令！慎用！]	将根目录下的所有文件全部删除&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;递归创建和递归删除 每次操作时先询问再执行删除
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/linux/linux02.png&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;修改目录或文件/改	mv 和 cp&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;​	&lt;strong&gt;mv&lt;/strong&gt; 命令用来为文件或目录改名、或将文件或目录移入其他位置&lt;/p&gt;

&lt;p&gt;​		重命名：&lt;/p&gt;

&lt;p&gt;​			&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;mv 当前目录 新目录&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;​		剪切：&lt;/p&gt;

&lt;p&gt;​			&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;mv 目录名称 目录新的位置&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;​			示例：将/usr/tmp目录下的test目录剪切到/usr目录下面			&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;mv /usr/tmp/test /usr&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;​	&lt;strong&gt;cp&lt;/strong&gt; 命令主要用于复制文件或目录&lt;/p&gt;

&lt;p&gt;​		拷贝：&lt;/p&gt;

&lt;p&gt;​			&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;cp -r 目录名称 目录拷贝的目标位置&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;​			示例：将/usr/tmp目录下的test目录复制到/usr目录下面			&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;cp /usr/tmp/test /usr&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;​	&lt;kbd style=&quot;color:red;font-size:15px;&quot;&gt;也可以用vim命令进行修改 vi 文件名&lt;/kbd&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;搜索目录文件/查	find 和 cat&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;​		&lt;strong&gt;find&lt;/strong&gt; 命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时，不设置任何参数，则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;与时间有关的参数：
		1.	-mtime n：n为数字，意思为在n天之前的&quot;一天内&quot;被更改过的文件
		2.	-mtime +n：列出在n天之前（不含n天本身）被更改过的文件名
		3.	-mtime -n : 列出在n天之内（含n天本身）被更改过的文件名
		例如：find /root -mtime 0				在当天目录下查找今天之内有改动的文件

与用户或用户组名有关的参数：
		1.	-user name：列出文件所有者为name的文件
		2.	-group name：列出文件所属用户组为name的文件
		3.	-uid n : 列出文件所有者为用户ID为n的文件
		4.	-gid n : 列出文件所属用户组为用户组ID为n的文件
		例如：find /home/blog.md -user blog.md				在目录/home/blog.md中找出所有者为blog.md的文件blog.md

与文件权限及名称有关的参数：
		1.	-name filename：找出文件名为filename的文件
		2.	-size [+-]SIZE ：找出比SIZE还要大（+）或小（-）的文件
		3.	-tpye TYPE ：查找文件的类型为TYPE的文件，TYPE的值主要有：一般文件（f)、设备文件（b、c）、目录（d）、连接文件（l）、socket（s）、FIFO管道文件（p）
		4.	-perm mode ：查找文件权限刚好等于mode的文件，mode用数字表示，如0755
		5.	-perm -mode ：查找文件权限必须要全部包括mode权限的文件，mode用数字表示
		6.	-perm +mode ：查找文件权限包含任一mode的权限的文件，mode用数字表示
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;​	例如：&lt;/p&gt;

&lt;p&gt;​		&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;find / -name passwd&lt;/code&gt;				查找文件名为passwd的文件&lt;/p&gt;

&lt;p&gt;​		&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;find . -perm 0755&lt;/code&gt;					查找当前目录中文件权限的0755的文件&lt;/p&gt;

&lt;p&gt;​		&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;find . -size +12k&lt;/code&gt;						查找当前目录中大于12KB的文件，注意c表示byte&lt;/p&gt;

&lt;h3 id=&quot;压缩与解压文件&quot;&gt;压缩与解压文件&lt;/h3&gt;

&lt;p&gt;Windows中常见的压缩文件有：&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.zip&lt;/code&gt; &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.rar&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Linux中 打包文件：&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.tar&lt;/code&gt;	压缩文件：&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.gz&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;tar&lt;/strong&gt; 命令&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;参数：
1.	-c：新建打包文件
2.	-t：查看打包文件的内容含有哪些文件名
3.	-x：解打包或解压缩的功能，可以搭配-C（大写）指定解压的目录，注意-c,-t,-x不能同时出现在同一条命令中
4.	-j：通过bzip2的支持进行压缩/解压缩
5.	-z：通过gzip的支持进行压缩/解压缩
6.	-v：在压缩/解压缩过程中，将正在处理的文件名显示出来
7.	-f filename：filename为要处理的文件
8.	-C dir：指定压缩/解压缩的目录dir
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;gzip及bzip2压缩和解压&lt;/strong&gt;&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;gzip 实例：压缩 gzip fileName .tar.gz 和.tgz  解压：gunzip filename.gz 或 gzip -d filename.gz
          对应：tar zcvf filename.tar.gz     tar zxvf filename.tar.gz

bz2实例：压缩 bzip2 -z filename .tar.bz2 	解压：bunzip filename.bz2或bzip -d filename.bz2
       对应：tar jcvf filename.tar.gz         解压：tar jxvf filename.tar.bz2
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;命令：&lt;/p&gt;

&lt;p&gt;​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;tar -cvf log.tar 1.log,2.log 或tar -cvf log.*&lt;/code&gt;			 将文件全部打包成 tar 包&lt;/p&gt;

&lt;p&gt;​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;tar -zcvf /tmp/etc.tar.gz /etc&lt;/code&gt;				将 /etc 下的所有文件及目录打包到指定目录，并使用 gz 压缩&lt;/p&gt;

&lt;p&gt;​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;tar -ztvf /tmp/etc.tar.gz&lt;/code&gt;							查看刚打包的文件内容（一定加z，因为是使用 gzip 压缩的）&lt;/p&gt;

&lt;p&gt;​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;tar -zxvf etc.tar.gz -C	/tmp/&lt;/code&gt;									指定解压缩位置&lt;/p&gt;

&lt;h3 id=&quot;用户和用户组管理&quot;&gt;用户和用户组管理&lt;/h3&gt;

&lt;p&gt;用户信息文件 	/etc/passwd         查看所有用户信息&lt;/p&gt;

&lt;p&gt;影子文件		        /etc/shadow        查看哪些用户有密码&lt;/p&gt;

&lt;p&gt;组信息文件             /etc/group           查看系统中有哪些用户组&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1.添加用户&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;useradd  用户名&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2.设置密码&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;passwd  用户名&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;​		千万千万千万要写用户名，不写用户名默认修改root密码&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3.删除用户&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;userdel  -r  用户名&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;​			-r  连带用户目录一起删除&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4.添加组&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;groupadd  组名&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. 删除组&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;groupdel  组名&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. 把已经存在的用户加入到我们创建的组中&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;gpasswd -a 用户名  组名&lt;/code&gt;				用户加入 组中&lt;/p&gt;

&lt;p&gt;​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;gpasswd -d 用户名  组名&lt;/code&gt;				把用户从组中拿出&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;7.切换用户身份&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;​	su   用户名&lt;/p&gt;

&lt;h3 id=&quot;进程管理&quot;&gt;进程管理&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;主要三个功能&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;判断服务器是否健康&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;查看所有正在运行的进程&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;强制终止进程&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;**ps **命令用于显示当前进程的状态&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;参数：
	1.	-a：显示所有进程
	2.	-u：显示用户名
	3.	-x：显示所有后台进程
	4.	USER：用户名
	5.	PID：进程id
	6.	%CPU：cpu占用率百分比
	7.	%MEM：内存占用百分比
	8.	TIME：执行的时间
	9.	COMMAND：所执行的指令(进程本身)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;命令：&lt;/p&gt;

&lt;p&gt;​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ps  aux&lt;/code&gt;					查看当前系统所有运行的进程（不需要 -）
​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ps -ax&lt;/code&gt;					查看不与terminal有关的所有进程
​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ps -lA&lt;/code&gt;					查看系统所有的进程数据
​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ps axjf&lt;/code&gt;					查看联通一部分进程树状态&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;pstree&lt;/strong&gt; 命令查看进程树&lt;/p&gt;

&lt;p&gt;命令：&lt;/p&gt;

&lt;p&gt;​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;pstree -p&lt;/code&gt; 						显示进程id&lt;/p&gt;

&lt;p&gt;​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;pstree -u&lt;/code&gt; 						显示用户名称&lt;/p&gt;

&lt;p&gt;​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;pstree -apnh&lt;/code&gt;				显示进程间的关系&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;top&lt;/strong&gt; 命令用于实时监控进程动态&lt;/p&gt;

&lt;p&gt;命令：&lt;/p&gt;

&lt;p&gt;​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;top&lt;/code&gt;						显示进程信息&lt;/p&gt;

&lt;p&gt;​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;top -c&lt;/code&gt;					显示完整命令&lt;/p&gt;

&lt;p&gt;​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;top -b&lt;/code&gt;					以批处理模式显示程序信息&lt;/p&gt;

&lt;p&gt;​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;top -S&lt;/code&gt;					以累积模式显示程序信息&lt;/p&gt;

&lt;p&gt;​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;top -n 2&lt;/code&gt;				设置信息更新次数，更新两次后终止更新显示&lt;/p&gt;

&lt;p&gt;​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;top -d 3&lt;/code&gt;				设置信息更新时间，周期为3秒&lt;/p&gt;

&lt;p&gt;​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;top -p 139&lt;/code&gt;			显示指定的进程信息，显示进程号为139的进程信息，CPU、内存占用率等&lt;/p&gt;

&lt;p&gt;​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;top -n 10&lt;/code&gt;				显示更新十次后退出&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;进程管理，终止进程&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;​	&lt;strong&gt;kill&lt;/strong&gt; 命令用于删除执行中的程序或工作&lt;/p&gt;

&lt;p&gt;​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;kill  pid&lt;/code&gt;					结束单个进程&lt;/p&gt;

&lt;p&gt;​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;kill 12345&lt;/code&gt;					杀死进程&lt;/p&gt;

&lt;p&gt;​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;kill -9 123456&lt;/code&gt;			彻底杀死进程&lt;/p&gt;

&lt;p&gt;​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;kill 1727&lt;/code&gt;					删除副进程&lt;/p&gt;

&lt;p&gt;​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;kill 1726&lt;/code&gt;					删除主进程&lt;/p&gt;

&lt;p&gt;​		刚才我们删除一个副进程主进程没有删除没有问题。&lt;/p&gt;

&lt;p&gt;​		但是如果我们删除一个主进程name这个进程里面，所有副进程全部消失&lt;/p&gt;

&lt;p&gt;​	&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;pkill -9 进程名&lt;/code&gt;			结束一类进程&lt;/p&gt;

</description>
        <pubDate>Tue, 19 Nov 2019 00:00:00 +0000</pubDate>
        <link>https://dyh0113.github.io/2019/11/Linux/</link>
        <guid isPermaLink="true">https://dyh0113.github.io/2019/11/Linux/</guid>
        
        <category>Linux</category>
        
        
      </item>
    
      <item>
        <title>Vim 文本编辑器</title>
        <description>&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;Vim 有三种模式
{

	命令模式

	输入模式

	底线命令模式

}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;启动&lt;strong&gt;vim&lt;/strong&gt;,即进入了命令模式在当前状态下，输入字符，则被视为输入了一个命令，而并非真正的输入了字符&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;常用命令&quot;&gt;常用命令：&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;i&lt;/strong&gt;：切换到输入模式，以输入字符&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;x&lt;/strong&gt;：删除当前光标所在处的字符&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;:&lt;/strong&gt; 切换到底线命令模式，以最低的一行输入命令&lt;/p&gt;

&lt;p&gt;如果想要输入更多命令，则需要依靠底线命令模式&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;输入模式：&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;​	字符按键以及shift组合：输入字符&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;底线命令模式：&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;​	w：保存文件&lt;/p&gt;

&lt;p&gt;​	q：退出&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ESC 键&lt;/strong&gt;：可以随时退出底线命令模式和输入模式&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;vimvi-工作模式&quot;&gt;Vim/Vi 工作模式：&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;https://www.runoob.com/wp-content/uploads/2014/07/vim-vi-workmodel.png&quot; alt=&quot;vim&quot; /&gt;&lt;/p&gt;

&lt;h4 id=&quot;创建文件&quot;&gt;创建文件：&lt;/h4&gt;

&lt;p&gt;​	:vi text.txt / :vi 文件夹/文件名.后缀名&lt;/p&gt;

&lt;p&gt;​	插入内容之后，先按&lt;strong&gt;Esc&lt;/strong&gt;退出当前模式，先输入底线命令，保存文件。&lt;/p&gt;

&lt;p&gt;​	:wq / :x	保存并退出&lt;/p&gt;

&lt;p&gt;​	:q 退出，适用于未修改的文件&lt;/p&gt;

&lt;p&gt;​	:q! 强制退出，适用于修改文件后不保存退出&lt;/p&gt;

&lt;h4 id=&quot;打开文件&quot;&gt;打开文件：&lt;/h4&gt;

&lt;p&gt;​	:vi filename(文件名).&lt;/p&gt;

&lt;h3 id=&quot;命令模式下&quot;&gt;命令模式下：&lt;/h3&gt;

&lt;p&gt;​	&lt;strong&gt;h&lt;/strong&gt;：光标向左移动一个字符(相当于左键)&lt;/p&gt;

&lt;p&gt;​	&lt;strong&gt;j&lt;/strong&gt;：光标向下移动一个字符(相当于下键)&lt;/p&gt;

&lt;p&gt;​	&lt;strong&gt;k&lt;/strong&gt;：光标向上移动一个字符(相当于上键)&lt;/p&gt;

&lt;p&gt;​	&lt;strong&gt;l&lt;/strong&gt;：光标向右移动一个字符(相当于右键)&lt;/p&gt;

&lt;p&gt;​	&lt;strong&gt;ctrl+f&lt;/strong&gt;：屏幕向下翻一页&lt;/p&gt;

&lt;p&gt;​	&lt;strong&gt;ctrl+b&lt;/strong&gt;：屏幕向上翻一页&lt;/p&gt;

&lt;p&gt;​	&lt;strong&gt;ctrl+d&lt;/strong&gt;：屏幕向下翻半页&lt;/p&gt;

&lt;p&gt;​	&lt;strong&gt;ctrl+u&lt;/strong&gt;：屏幕向上翻半页&lt;/p&gt;

&lt;p&gt;​	&lt;strong&gt;+&lt;/strong&gt;：光标移动到下一行的第一个非空字符&lt;/p&gt;

&lt;p&gt;​	&lt;strong&gt;-&lt;/strong&gt; ：光标移动到上一行的第一个非空字符&lt;/p&gt;

&lt;p&gt;​	&lt;strong&gt;n空格&lt;/strong&gt;：光标向当前行右移n个字符&lt;/p&gt;

&lt;p&gt;​	&lt;strong&gt;0(数字0)&lt;/strong&gt;：光标移动到当前行的第一个字符，可以为空字符&lt;/p&gt;

&lt;p&gt;​	&lt;strong&gt;$&lt;/strong&gt;：光标移动到当前行的最后一个字符，可以为空字符&lt;/p&gt;

&lt;p&gt;​	&lt;strong&gt;H&lt;/strong&gt;：光标移动到当前屏幕最上方那一行的第一个非空字符&lt;/p&gt;

&lt;p&gt;​	&lt;strong&gt;M&lt;/strong&gt;：光标移动到当前屏幕最中间那一行的第一个非空字符&lt;/p&gt;

&lt;p&gt;​	&lt;strong&gt;L&lt;/strong&gt;：光标移动到当前屏幕最下方那一行的第一个非空字符&lt;/p&gt;

&lt;p&gt;​	&lt;strong&gt;G&lt;/strong&gt;：光标移动到该文章最后一行的第一个非空字符&lt;/p&gt;

&lt;p&gt;​	&lt;strong&gt;l word&lt;/strong&gt;：在光标之后查找word字符串&lt;/p&gt;

&lt;p&gt;​	&lt;strong&gt;? word&lt;/strong&gt;：在光标之前查找word字符串&lt;/p&gt;

&lt;p&gt;​	&lt;strong&gt;: s/word1/word2/g&lt;/strong&gt;：在光标当前行查找word1，并替换成word2&lt;/p&gt;

&lt;p&gt;​	&lt;strong&gt;: n1,n2 s/word1/word2/g&lt;/strong&gt;：在第n1行与第n2行之间查找word1，并替换成word2&lt;/p&gt;

&lt;p&gt;​	&lt;strong&gt;: % s/word1/word2/g&lt;/strong&gt;：整个文章查找word1，并替换成word2&lt;/p&gt;

&lt;p&gt;​	&lt;strong&gt;: w&lt;/strong&gt;：保存&lt;/p&gt;

&lt;p&gt;​	&lt;strong&gt;: w[filename]&lt;/strong&gt;：将编写后的数据保存到硬盘的另一个文件中&lt;/p&gt;

&lt;p&gt;​	&lt;strong&gt;: n1,n2 w[filename]&lt;/strong&gt;：将n1到n2行的内容保存到名为filename的文件中&lt;/p&gt;

&lt;p&gt;​	&lt;strong&gt;: r[filename]&lt;/strong&gt;：编写数据时， 读入另一个文件(filename)的数据，添加到光标所在行的下一行&lt;/p&gt;

&lt;p&gt;​	&lt;strong&gt;: set nu&lt;/strong&gt;：显示行号&lt;/p&gt;

&lt;p&gt;​	&lt;strong&gt;: set nonu&lt;/strong&gt;：取消行号&lt;/p&gt;

&lt;h3 id=&quot;一般模式下的删除复制粘贴命令&quot;&gt;一般模式下的删除、复制、粘贴命令&lt;/h3&gt;

&lt;p&gt;​	&lt;strong&gt;x&lt;/strong&gt;：向后删除一个字符(del键)&lt;/p&gt;

&lt;p&gt;​	&lt;strong&gt;X&lt;/strong&gt;：向前删除一个字符(退格键)&lt;/p&gt;

&lt;p&gt;​	&lt;strong&gt;nx&lt;/strong&gt;：向后删除n个字符&lt;/p&gt;

&lt;p&gt;​	&lt;strong&gt;dd&lt;/strong&gt;：删除当前行&lt;/p&gt;

&lt;p&gt;​	&lt;strong&gt;V&lt;/strong&gt;：删除当前行所有字符，保留行&lt;/p&gt;

&lt;p&gt;​	&lt;strong&gt;ndd&lt;/strong&gt;：删除光标所在行的向下n列(包括所在行)&lt;/p&gt;

&lt;p&gt;​	&lt;strong&gt;dlG&lt;/strong&gt;：删除光标所在行到第一行的所有数据&lt;/p&gt;

&lt;p&gt;​	&lt;strong&gt;dG&lt;/strong&gt;：删除光标所在行到最后一行的所有数据&lt;/p&gt;

&lt;p&gt;​	&lt;strong&gt;yy&lt;/strong&gt;：复制光标所在行&lt;/p&gt;

&lt;p&gt;​	&lt;strong&gt;ylG&lt;/strong&gt;：复制光标所在行到第一行的所有数据&lt;/p&gt;

&lt;p&gt;​	&lt;strong&gt;yG&lt;/strong&gt;：复制光标所在行到最后一行的所有数据&lt;/p&gt;

&lt;p&gt;​	&lt;strong&gt;ynj&lt;/strong&gt;：复制光标所在行向下n+1行&lt;/p&gt;

&lt;p&gt;​	&lt;strong&gt;dnj&lt;/strong&gt;：删除光标所在行向下n+1行&lt;/p&gt;

&lt;p&gt;​	&lt;strong&gt;p&lt;/strong&gt;：复制的数据粘贴在光标的下一行&lt;/p&gt;

&lt;p&gt;​	&lt;strong&gt;J&lt;/strong&gt;：将光标所在行与下一行的数据结合成一行&lt;/p&gt;

&lt;p&gt;​	&lt;strong&gt;u&lt;/strong&gt;：撤销&lt;/p&gt;

</description>
        <pubDate>Sun, 10 Nov 2019 00:00:00 +0000</pubDate>
        <link>https://dyh0113.github.io/2019/11/Vim/</link>
        <guid isPermaLink="true">https://dyh0113.github.io/2019/11/Vim/</guid>
        
        <category>vim</category>
        
        
      </item>
    
      <item>
        <title>git 基础操作</title>
        <description>&lt;h1 id=&quot;git&quot;&gt;git&lt;/h1&gt;

&lt;blockquote&gt;
  &lt;p&gt;在git的服务器上有项目仓库，现在把这个服务器上的仓库下载下来(本地)，那要用什么命令？&lt;/p&gt;

  &lt;p&gt;git clone 远程仓库地址&lt;/p&gt;

  &lt;p&gt;作用：克隆远程仓库到本地&lt;/p&gt;

  &lt;p&gt;克隆下来的仓库默认是master分支&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;不要在git管理的仓库里面下载另外一个仓库进来，这个要尽量避免不要出现&lt;/p&gt;

  &lt;p&gt;执行命令的时候没有error或者fatal就是没问题&lt;/p&gt;

  &lt;p&gt;本地工作区直接直接gitcommit 能不能提交到本地历史记录区 （&lt;strong&gt;不可以的&lt;/strong&gt;）&lt;/p&gt;

  &lt;p&gt;建议大家在直接提交的命令的时候，先执行git status&lt;/p&gt;

  &lt;p&gt;git commit 会遇到的问题：&lt;/p&gt;

  &lt;p&gt;配置config&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;git config –global user.email ”登录邮箱”&lt;/strong&gt;&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;git config –global user.name ”提交记录的用户名”&lt;/strong&gt;&lt;/p&gt;

  &lt;table&gt;
    &lt;tbody&gt;
      &lt;tr&gt;
        &lt;td&gt;分支名称后面有&lt;/td&gt;
        &lt;td&gt;MERGING,代表现在的分支处于冲突状态下&lt;/td&gt;
      &lt;/tr&gt;
    &lt;/tbody&gt;
  &lt;/table&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;h3 id=&quot;git-基础操作&quot;&gt;git 基础操作&lt;/h3&gt;

  &lt;p&gt;&lt;strong&gt;git status&lt;/strong&gt;: 查看仓库的文件的状态&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;git add .&lt;/strong&gt;     : 把工作区的全部改变的文件提交到暂存区里面去&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;git commit -m ‘说明’&lt;/strong&gt;： 把暂存区里面的修改提交到本地历史记录区&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;git push -u origin 分支名称(默认master)&lt;/strong&gt;： 把本地历史记录区的提交记录（多个提交记录）提交（同步）到远程仓库上&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;h3 id=&quot;git-远程仓库地址的添加删除操作&quot;&gt;git 远程仓库地址的添加删除操作&lt;/h3&gt;

  &lt;p&gt;&lt;strong&gt;git remote -v&lt;/strong&gt;: 查看远程地址&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;git remote remove origin&lt;/strong&gt;：删除本地项目的远程仓库地址&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;git remote add origin ssh地址&lt;/strong&gt;： 在本地项目的远程仓库地址列表里面添加一个origin的地址&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;h3 id=&quot;git-分支操作master&quot;&gt;git 分支操作(master)&lt;/h3&gt;

  &lt;p&gt;&lt;strong&gt;git branch&lt;/strong&gt;：查看当前所在分支(本地分支)&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;git branch  -a&lt;/strong&gt; : 查看所有分支信息&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;git branch 分支名称&lt;/strong&gt;： 创建分支&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;git branch -d 分支名称&lt;/strong&gt;：删除本地分支&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;git push origin –delete 分支名称&lt;/strong&gt;：删除远程分支&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;git branch 分支名称 HEAD@{number}&lt;/strong&gt;：恢复删除分支&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;git fetch&lt;/strong&gt;：同步远程仓库的分支信息到本地项目&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;git pull&lt;/strong&gt;：同步远程仓库的代码到本地项目&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;git checkout 分支名称&lt;/strong&gt;： 切换当前所在分支&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;git checkout -b 分支名称&lt;/strong&gt;： 创建分支并且切换到新分支上&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;git merge 分支名称&lt;/strong&gt;：合并分支&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;git push -u origin 分支名称&lt;/strong&gt;：提交分支到远程仓库&lt;/p&gt;

  &lt;p&gt;为什么要有分支？团队开发中需要用到，一般开发整个大的功能模块，会分配任务给组内的开发人员，每个人负责的内容是不一样，整个组合在一起的代码就是这个大的功能模块。组内开发的时候就需要用到分支区分每个人的功能，master：生产（线上）环境的代码，beta：新版本功能内测的代码，产品经理，内部人员验收功能用的，dev：当前开发中的代码  如我现在负责登录模块，那么我就在dev分支的基础上开一个新的分支出来，&lt;strong&gt;git checkout -b login&lt;/strong&gt;,每完成一部分小功能，建议大家commit一次（粒度很小的提交记录），push操作可以在下班前就可以了&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;git merge 需要合并的分支名称&lt;/strong&gt;： 当前所在的分支合并需要合并的分支&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;制造冲突&lt;/strong&gt;，两个分支修改同一个文件上的同一行，内容不一样，并且都有commit操作（commit操作前要记得add）&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;解决冲突&lt;/strong&gt;，找到命令行上面CONFLICT（可能会有多行，也就是多个文件出现冲突），后面跟着的就是出现冲突的文件路径，然后分析并且修改代码，之后执行&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;git add .&lt;/code&gt; 和 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;git commit -m 'xxxx'&lt;/code&gt;这个时候再来看分支名称上是否没有了&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;|MERGING&lt;/code&gt;这个标志，没有代表解决冲突完成，有代表还是没有解决冲突&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;git fetch 和 git pull&lt;/strong&gt;：因为一个项目是团队开发的，如果本地不存在的分支&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;git fetch&lt;/code&gt;，如果本地已经存在分支，远程仓库分支比本地要新，这个时候就用&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;git pull origin 分支名称&lt;/code&gt;。重点：也可以理解为，pull就是同步远程代码，fetch就是同步远程分支，如果远程仓库新建分支，用fetch同步。&lt;/p&gt;

&lt;/blockquote&gt;

&lt;h2 id=&quot;git-merge最简洁用法&quot;&gt;git merge最简洁用法&lt;/h2&gt;

&lt;h4 id=&quot;一开发分支dev上的代码达到上线的标准后要合并到-master-分支&quot;&gt;一、开发分支（dev）上的代码达到上线的标准后，要合并到 master 分支&lt;/h4&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;git checkout dev
git pull
git checkout master
git merge dev
git push -u origin master
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h4 id=&quot;二当master代码改动了需要更新开发分支dev上的代码&quot;&gt;二、当master代码改动了，需要更新开发分支（dev）上的代码&lt;/h4&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;git checkout master
git pull 
git checkout dev
git merge master 
git push -u origin dev
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;font color=&quot;turquoise&quot;&gt;#&lt;/font&gt;
&lt;p&gt;&lt;strong&gt;重点&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;status：状态&lt;/li&gt;
  &lt;li&gt;add：提交到暂存区&lt;/li&gt;
  &lt;li&gt;push：同步提交&lt;/li&gt;
  &lt;li&gt;origin：远程&lt;/li&gt;
  &lt;li&gt;master(可以创建不同名称的分支,不一定是master)：分支&lt;/li&gt;
  &lt;li&gt;remote：远程地址&lt;/li&gt;
  &lt;li&gt;branch：分支&lt;/li&gt;
  &lt;li&gt;checkout：切换&lt;/li&gt;
  &lt;li&gt;merge：合并&lt;/li&gt;
  &lt;li&gt;pull：拉取&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;font color=&quot;red&quot;&gt;切换分支时 VScode所打开的对应项目文件，git命令切换完，文件也会随之切换&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;
</description>
        <pubDate>Sat, 26 Oct 2019 00:00:00 +0000</pubDate>
        <link>https://dyh0113.github.io/2019/10/git/</link>
        <guid isPermaLink="true">https://dyh0113.github.io/2019/10/git/</guid>
        
        <category>git</category>
        
        
      </item>
    
  </channel>
</rss>
