得之我幸 失之我命

when someone abandons you,it is him that gets loss because he lost someone who truly loves him but you just lost one who doesn’t love you.

接触过 shell 的人多少应该指定 su 和 sudo,当需要提权的时候,sudo 是我们常常使用的一个命令。此外,su 也应该是一个比较常听说的命令,虽然个人电脑其实还蛮少用 su 的

接触过 su 的人,应该也看到过 su - 这种写法,那这和 su 有什么区别呢?

Read More...


当你创建了一个分支之后,你在分支上做了很多 debug 的操作,但是当你合并到 master 的时候,你又只需要几个非 debug 的 commit,这时候应该怎么办呢?不得不说,git 设计的很完善,你需要的它正好有

Read More...


在看别人写的脚本的时候,会发现类似下面一个写法,然后就会好奇这个写法的必要性

1
$ bash -c "echo test >> test.txt"

Read More...


昨天在用 sed 替换某行 python 代码的时候,遇到了下面这个错

1
2
$ sed -i 's/"http": None/"http": "http://1.1.1.1:8080"/g' ~/demo.py
sed: -e expression #1, char 36: unknown option to `s'

Read More...


在 C++ 中有好几个术语,它们有两个词组成,交换顺序后意思就变了,而在使用过程中,常常可能因为对它们的混淆导致误人子弟

这几组术语分别是:

  1. 函数指针 vs 指针函数
  2. 数组指针 vs 指针数组
  3. 类模板 vs 模板类
  4. 函数模板 vs 模板函数

可以明确的是,上述几个术语中,重心在后面,前面的词是作为形容词使用的

Read More...


一个变量有三种可能的状态:未设定,空值,非空值,针对这三种情况,shell 可以进行不同的操作

Read More...


shell 脚本传参

$ 传参家族

创建一个脚本 test.sh,内容如下

1
2
3
4
5
6
7
8
9
10
11
12
13
#!/bin/bash
echo $0 # 当前脚本的文件名(间接运行时还包括绝对路径)
echo $3 # $n,传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是 $1
echo $# # 传递给脚本或函数的参数个数,不包括 $0

# $* 和 $@ 都表示传递给函数或脚本的所有参数,不被双引号 ("") 包含时,都以"$1""$2" … "$n" 的形式输出所有参数;但是当它们被双引号 ("") 包含时,"$*" 会将所有的参数作为一个整体,以 "$1 $2 … $n" 的形式输出所有参数,"$@" 会将各个参数分开,以 "$1""$2" … "$n" 的形式输出所有参数
echo $* # 传递给脚本或函数的所有参数,不包括 $0
echo $@ # 传递给脚本或函数的所有参数,不包括 $0

echo $? # 上个命令的退出状态,或函数的返回值
echo $$ # 当前 Shell 进程 ID,对于 Shell 脚本,就是这些脚本所在的进程 ID
echo $_ # 上一个命令的最后一个参数
echo $! # 后台运行的最后一个进程的 ID 号

Read More...


the only present love demands is love