参考: https://blog.csdn.net/zygblock/article/details/53384862
html
diff和patch是 版本控制 git 的不可缺乏的工具linux
diff 是用来比较 源文件( 目录) / 和 目标文件(夹)的 差别, 一般是用来比较 文本文件的, 通常不用来比较 二进制文件git
diff的输出 是一种 patch格式的, 能够 把 输出结果 重定向保存为 foo.patch 文件 , 而后 供 patch命令 来使用, 因此, 一般 diff和 patch是 联合使用的shell
patch 是 根据 patch文件( 包含差别列表的文件, 即 difflisting文件) 来将 旧文件 (源文件) -> 打补丁/ 升级 为 新文件 (升级文件) 的程序bash
======================================工具
关于diff 主要是 要掌握它的 几种 输出格式:优化
制做 补丁文件: diff -u file.old file.update > difflisting
给源文件 打补丁: patch -i difflisting -b file.old
-b的做用是 原来的file.old将被打补丁, 同时 源文件被保存一个副本 file.old.orig
patch -i difflisting -o file.new file.old
-o 表示原来的文件被打补丁成为 file.new, 而源文件 仍是被保存不变.操作系统
关于补丁的应用 参考: http://linux-wiki.cn/wiki/%E8%A1%A5%E4%B8%81%28patch%29%E7%9A%84%E5%88%B6%E4%BD%9C%E4%B8%8E%E5%BA%94%E7%94%A8
补丁(patch)的制做与应用
制做补丁时的选项: -r主要是对目录应用的, 第归里面的文件和子目录. -N : 是正确处理已经 应用过补丁的 文件 或 已经被 删除 的文件 ;
应用补丁的 选项: -p num 主要是 指忽略仍是不忽略 目录的层次,
-R 则是 取消打补丁
而 应用补丁或取消 补丁的 时候, 均可以 使用 输入重定向的 方式: patch old_file < patch_file
.net
patch后, 旧文件将和 新文件 (更新后的文件) 彻底一致!版本控制
确实是这样的!
可是 patch的主要目的, 并非 用来 给 1个文件来 打补丁的, 它主要是用来 给一个文件夹 中的不少文件 / 不少子目录 来打补丁, 来进行升级的, 这个 才是patch 的主要用途! 是linux用来升级的 主要手段 .也就是说, patch 主要是用来 给 linux等 进行升级的, 固然在版本控制中 也会用到!
Linux patch命令用于修补文件。 参考: http://www.runoob.com/linux/linux-comm-patch.html "patch指令让用户利用设置修补文件的方式,修改,更新原始文件。假若一次仅修改一个文件,可直接在指令列中下达指令依序执行。若是配合修补文件的方式则能一次修补大批文件,这也是Linux系统核心的升级方法之一。"
即: 一个补丁文件中, 能够包含多个补丁, 每一个补丁中 包含 一个 补丁头, 一个块.....
==========================================
ls == echo * 来替换
install和cp的区别? 主要在与 处理 已经存在的文件和 正在 运行的 文件 时的差异上!
install 通常用在 makefile中, cp通常场合
cp是先将原来 的文件内容 清空, 而后写入新内容
install 则是将原文件删除, 从新建立一个新文件, 而后再写内容.
所以, install不只能 更换句柄, 并且能够设置 文件的新属性, 能够解决 若是目标文件正在运行 或 持续写入内容的句柄 更换问题.
=========================
runlevel
init 3
ctrl+alt+f1~6, ctrl_alt+f78, 注意切换字符界面,是用ctrl+alt+功能键, 而不是 只用 alt + 功能键
https://wenku.baidu.com/view/b861ed9c69dc5022aaea00c2.html
target: 就是runlevel文件。
从 fedora16 开始 就再也不使用initab 而是使用target来配置启动级别了,
multi-user.target, analogous to runlevel 3
graphical.target.
target:启动的对象,启动(服务的)对象
开发Systemd的主要目的就是减小系统引导时间和计算开销
Systemd引入了并行启动的概念,它会为每一个须要启动的守护进程创建一个套接字,这些套接字对于使用它们的进程来讲是抽象的,这样它们能够容许不一样守护进程之间进>行交互。Systemd会建立新进程并为每一个进程分配一个控制组(cgroup)。处于不一样控制组的进程之间能够经过内核来互相通讯。systemd处理开机启动进程的方式很是漂亮,和传统基于init的系统比起来优化了太多。让咱们看下Systemd的一些核心功能
查看linux机器是32位仍是64位的方法:
file /sbin/init 或者file /bin/ls
当登录一个linux系统时,bash shell依次会从4个不一样的地方启动文件里的读取命令,顺序是:
1: /etc/profile
2:$HOME/.bash_profile
3:$HOME/.bash_login
4:$HOME/.profile
/lib 系统级别,系统的lib /usr/lib 操做系统自带的程序级别,二进制安装包的lib