Shell常用命令备忘

ls命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
### -R 递归显示
### -A almost-all,类似「-a」,不含「.」、「..」 目录
### -h --human-readable
### -r --reverse

MacBook-Pro:TEST fang$ ls -l
total 48
-rw-r--r--@ 1 fang staff 16355 Nov 1 19:48 1.jpg
-rw-r--r--@ 1 fang staff 320 Nov 2 18:36 2.png
drwxr-xr-x@ 7 fang staff 238 Oct 22 21:02 Videos
-rwxr-xr-x 1 fang staff 5 Oct 8 19:10 a.txt

## 显示最后访问时间
MacBook-Pro:TEST fang$ ls -lu
total 48
-rw-r--r--@ 1 fang staff 16355 Nov 27 00:26 1.jpg
-rw-r--r--@ 1 fang staff 320 Nov 27 00:26 2.png
drwxr-xr-x@ 7 fang staff 238 Nov 27 00:04 Videos
-rwxr-xr-x 1 fang staff 5 Nov 27 00:23 a.txt

## 人类可读的文件大小显示
MacBook-Pro:TEST fang$ ls -lh
total 48
-rw-r--r--@ 1 fang staff 16K Nov 1 19:48 1.jpg
-rw-r--r--@ 1 fang staff 320B Nov 2 18:36 2.png
drwxr-xr-x@ 7 fang staff 238B Oct 22 21:02 Videos
-rwxr-xr-x 1 fang staff 5B Oct 8 19:10 a.txt

## 按最近修改时间排序
MacBook-Pro:TEST fang$ ls -lt
total 48
-rw-r--r--@ 1 fang staff 320 Nov 2 18:36 2.png
-rw-r--r--@ 1 fang staff 16355 Nov 1 19:48 1.jpg
drwxr-xr-x@ 7 fang staff 238 Oct 22 21:02 Videos
-rwxr-xr-x 1 fang staff 5 Oct 8 19:10 a.txt

MacBook-Pro:TEST fang$ ls -ltr
total 48
-rwxr-xr-x 1 fang staff 5 Oct 8 19:10 a.txt
drwxr-xr-x@ 7 fang staff 238 Oct 22 21:02 Videos
-rw-r--r--@ 1 fang staff 16355 Nov 1 19:48 1.jpg
-rw-r--r--@ 1 fang staff 320 Nov 2 18:36 2.png

## 按文件大小排序
MacBook-Pro:TEST fang$ ls -lS
total 48
-rw-r--r--@ 1 fang staff 16355 Nov 1 19:48 1.jpg
-rw-r--r--@ 1 fang staff 320 Nov 2 18:36 2.png
drwxr-xr-x@ 7 fang staff 238 Oct 22 21:02 Videos
-rwxr-xr-x 1 fang staff 5 Oct 8 19:10 a.txt

Set Up Apache Virtual Hosts on Ubuntu

参考链接: https://www.digitalocean.com/community/tutorials/how-to-set-up-apache-virtual-hosts-on-ubuntu-14-04-lts

About ImageMagick

Ubuntu 使用 apt-get 被卡住的问题

使用 apt-get命令时,可能会出现下面的显示

1
0% [Connecting to us.archive.ubuntu.com (2001:67c:1562::14)] [Connecting to sec

关于 iOS 9 之后 canOpenURL 的返回值

官方文档: 点击此处

Ubuntu 下 shadowsocks 的安装和配置

安装

1
2
sudo apt-get install python-pip
sudo pip install shadowsocks

Ubuntu 服务器初始化配置

本文已废弃

iOS工程-批量添加图片资源

  • 将图片资源一个个拽到 XCode 实在太麻烦了,于是我想用 Shell 脚本实现一劳永逸的方案。下面以某个 iPad 工程的情景为例去编写脚本(只用到 @2x 的图片)。

xcassets.sh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/bin/bash

json_file="/Users/fang/Lab/Shell/xcassets/Contents.json"
orig_path="/Users/fang/Lab/Shell/xcassets/images"
dest_path="/Users/fang/Lab/iOS/TestProject/Images.xcassets"

imgs=`find $orig_path -name "*@2x.*"`
for img in $imgs; do
filename=`basename $img`
img_name="${filename%@*}"

folder="$dest_path/$img_name.imageset"
if [ ! -d $folder ]; then
mkdir $folder
fi

cp -r $img $folder
cp -r $json_file $folder
sed -e 's/\$FILE_NAME/'$img_name'/g' $json_file > "$folder/Contents.json"
done

接口设计

这里不讨论详细设计,只从项目开发角度考虑,关注点为开发效率和稳健性。

问题

APP 使用中最不可容忍的莫过于闪退问题,而许多 crash 源于网络请求的返回值格式非法。

使用命令行发表 Blog

最近在玩 hexo 这个博客框架,有个需求是,在本地用 MarkDown 编辑好文章,能够高效地在服务端发表。于是使用 Shell 写了以下脚本。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41

inputFile=$1
if [ ! -f $inputFile ]; then
echo "缺少文件"
exit
fi

shift

while echo $1 | grep ^- > /dev/null; do
eval $( echo $1 | sed 's/-//g' | tr -d '\012')=$2
shift
shift
done

fileName=`basename $inputFile`
path="/Users/fang/Workspace/Blog/trunk/hexo/$fileName"

# 第一行内容为 ## XXX,其中 XXX 为标题
first_line=`head -n 1 $inputFile`
title=${first_line#\#\# }

# 使用当前的时间作为发布时间
myDate=`date "+%Y-%m-%d %H:%M:%S"`

echo "title: $title" > $path
echo "date: $myDate" >> $path

# 命令行可接受 tags 参数
if [ ! -z $tags ]; then
echo "tags: $tags" >> $path
fi

echo "---" >> $path

# 将此前 .md 文件中第一行忽略
sed 1d $inputFile >> $path

scp $path xxx@xxxx.com:~/hexo/source/_posts

ssh xxx@xxxx.com "cd ~/hexo/; hexo generate -d"