前言
接着上一个学习编译脚本main.sh
文件路径为:
orangepi/orangepi-build/scripts/main.sh
一、设置权限
umask 002
1.什么是umask
umask设置了用户创建文件的默认 权限,它与chmod的效果刚好相反,umask设置的是权限“补码”,而chmod设置的是文件权限码。一般在/etc/profile、$[HOME]/.bash_profile或$[HOME]/.profile中设置umask值。
你的系统管理员必须要为你设置一个合理的 umask值,以确保你创建的文件具有所希望的缺省权限,防止其他非同组用户对你的文件具有写权限。在已经登录之后,可以按照个人的偏好使用umask命 令来改变文件创建的缺省权限。相应的改变直到退出该shell或使用另外的umask命令之前一直有效。一般来说,umask命令是在/etc /profile文件中设置的,每个用户在登录时都会引用这个文件,所以如果希望改变所有用户的umask,可以在该文件中加入相应的条目。如果希望永久 性地设置自己的umask值,那么就把它放在自己$HOME目录下的.profile或.bash_profile文件中。
2.umask计算
umask值002 所对应的文件和目录创建缺省权限分别为664和775。
3.设置命令窗口长宽
if [[ $BUILD_ALL != "yes" ]]; then
# override stty size
[[ -n $COLUMNS ]] && stty cols $COLUMNS
[[ -n $LINES ]] && stty rows $LINES
TTY_X=$(($(stty size | awk '{print $2}')-6)) # determine terminal width
TTY_Y=$(($(stty size | awk '{print $1}')-6)) # determine terminal height
fi
1.$COLUMNS、$COLUMNS
获取命令窗口大小。
zfeng@ubuntu:~/orangepi/orangepi-build/userpatches$ echo $COLUMNS
179
zfeng@ubuntu:~/orangepi/orangepi-build/userpatches$ echo $LINES
24
2.stty
stty(set tty,设置tty)命令用于检查和修改当前注册的终端的通信参数。
3.awk ‘{print $2}’
awk是以文件的一行为处理单位的。awk每接收文件的一行,然后执行相应的命令,来处理文本。
简单用法
zfeng@ubuntu:~/orangepi/orangepi-build/userpatches$ awk '{print $0}' /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
...
详见这里