0%

在还在用windows的时候,rz,sz命令是两个很好用的命令。

所以研究下在macos下的Iterm2怎么时候rzsz命令。

安装

1
brew install lrzsz
Read more »

什么是Bash

Bash是Bourne Again shell的简称。是一种shell解释器。

它是Bourne shell的升级替代产品。1989年发布的第一版。

目前广泛用于众多linux版本以及macos版本中。

Read more »

相对路径引用资源
1
2
3
{% asset_path slug %}
{% asset_img slug [title] %}
{% asset_link slug [title] %}
相对路径引用站内文章
1
{% post_link 2017-04-27-MAC快捷键 [2017-04-27-MAC快捷键] %}
[2017-04-27-MAC快捷键] [tutorial/bash/别名]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
mkdir ~/bin
PATH=~/bin:$PATH

curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo

mkdir WORKING_DIRECTORY
cd WORKING_DIRECTORY


git config --global user.name "Your Name"
git config --global user.email "you@example.com"

repo init -u https://android.googlesource.com/platform/manifest

repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1

repo sync
Read more »

详解参数扩展

${parameter:-word}

1
2
3
4
5
6
7
8
9
[root@vm-101 ~]# unset a
[root@vm-101 ~]# echo ${a:-default}
default
[root@vm-101 ~]# a=''
[root@vm-101 ~]# echo ${a:-default}
default
[root@vm-101 ~]# a=1
[root@vm-101 ~]# echo ${a:-default}
1
Read more »

here字符串

here Strings

这是我觉得最有用的一个功能

1
2
3
4
5
6
7
[root@vm-101 ~]# read a1 a2 a3 <<< "aaa bbb ccc"
[root@vm-101 ~]# echo $a1
aaa
[root@vm-101 ~]# echo $a2
bbb
[root@vm-101 ~]# echo $a3
ccc
Read more »

条件表达式

[ ] [[ ]] test三个内置命令

表达式 说明
-a file 文件存在,返回真
-b file 文件存在,并且是二进制文件,返回真
-c file 文件存在,并且是字符设备文件,返回真
-d file 目录,返回真
-e file 不管什么文件,只要存在,返回真
-f file 普通文件,返回真
-g file 设置了SGID位,返回真
-h file 软连接,返回真
-k file 设置粘滞位,返回真
-p file 管道文件,返回真
-r file 可读文件,返回真
-s file 大小比0大的文件,返回真
-t fd 文件句柄,返回真
-u file 设置SUID位,返回真
-w file 文件可写,返回真
-x file 文件可执行,返回真
-O file 文件所有者是有效用户,返回真
-G file 文件所属组是有效组,返回真
-L file 链接文件,返回真
-S file socket文件,返回真
-N file 最后一次读取后又修改了,返回真
file1 -nt file2 file1比file2的修改时间新,返回真
file1 -ot file2 file1比file2的修改时间旧,返回真
file1 -ef file2 file1和file2指向同一个设备或者inode,返回真
-o optname 检查某个shell选项是否开启。参见set -o
-z string 字符串长度不为0,返回真
string1 == string2 两个字符相同,返回真
string1 = string2 两个字符相同,返回真(必须是test POSIX模式)(不推荐这么写)
string1 != string2 两字符不相等,返回真
string1 < string2 按照排序算法,string1在string2前面,返回真
string1 > string2 按照排序算法,string1在string2后面,返回真
num1 -eq num2 两数相等,返回真
num1 -ne num2 两数不相等,返回真
num1 -gt num2 num1大于num2,返回真
num1 -lt num2 num1小于num2,返回真
num1 -ge num2 num1大于等于num2,返回真
num1 -le num2 num1小于等于num2,返回真

运算符列表

符号 说明
id++ id– 先使用id的值,再做++/–运算
++id –id 先做++/–运算,在使用id的值
+ - 加减
! ~ 逻辑反;按位取反
** 幂运算
* / % 乘法,除法,取余
<< >> 位运算,向左移,向右移
<= >= <> 比较操作。小于等于,大于登录,不等于
== != 等于,不等于
& 位AND
| 位OR
&& 逻辑AND
|| 逻辑OR
expr ? Expr : expr 三目运算符
= *= /= %= += -+ <<= >>= &= |= 赋值运算符
, 逗号分隔符

第一个脚本

世界上所有的第一个程序都是从Hello,world!开始的。我们也不免俗。

1
2
3
4
5
#!/bin/bash
# 这里是一个注释
echo "Hello, world!"

exit 0
Read more »

命令行扩展

之前,我们写一些shell命令,按回车,它就执行了。不知道为什么?但是很神奇。

这一节我们来探讨下这里面的门门道道。

1
2
3
[root@vm-101 ~]# test1(){ echo "这是一个函数。"; echo $[ 1 + 2 ]; }; test1
这是一个函数。
3
Read more »