linux的两个著名的编译器VIM Emacs
重要的环境变量
DISPLAY 当前的 X 显示 (通常是 :0.0)
HOME 用户的主目录EDITOR 首选的编辑器 (vi,emacs,)
HOSTNAME 计算机的名字
LESS 启动 less 命令时的默认开关
MANPATH 为找出帮助手册列出目录
MORE 启动 more 命令的默认开关
PAGER 首选的阅读器(more, less 等)
PATH 为搜索命令而列出目录表 (非常重要,要理解原理)
PS1 Shell Prompt
PWD 当前工作目录
SHELL 当前 shell (通常为 /bin/bash)
TERM 当前终端
字符串比较:
-z string 若string长度为0,则为真
-n string 若string长度不为0,则为真
string1 = string2 若两个字符串相等,则为真
string1 != string2 若两个字符串不相等,则为真
数字比较:
int1 -eq int2 若int1等于int2,则为真
int1 -ne int2 若int1不等于int2,则为真
int1 -lt int2 若int1小于int2,则为真
int1 -le int2 若int1小于等于int2,则为真
int1 -gt int2 若int1大于int2,则为真
int1 -ge int2 若int1大于等于int2,则为真
!expr 若expr为假则复合表达式为真。expr可以是任何有效的测试表达式
expr1 -a expr2 若expr1和expr2都为真则整式为真
expr1 -o expr2 若expr1和expr2有一个为真则整式为真
特殊变量
$0 正在被执行命令的名字。对于shell脚本而言,这是被激活命令的路径
$n 该变量与脚本被激活时所带的参数相对应。n是正整数,与参数位置相对应($1,$2…)
$# 提供脚本的参数号
$* 所有这些参数都被双引号引住。若一个脚本接收两个参数,$*等于$1$2
$@ 所有这些参数都分别被双引号引住。若一个脚本接收到两个参数,$@等价于$1$2
$? 前一个命令执行后的退出状态
$$ 当前shell的进程号。对于shell脚本,这是其正在执行时的进程ID
$! 前一个后台命令的进程号
今天晚上做的一个题,编写一个脚本。把一个目录下的所有格式的压缩包解压到另一个目录下。刚开始纠结半天。但还是被我搞出来了!
#! /bin/bash
ls $1>in.txt
while read var1
do
case $var1 in
*.tar.gz)
tar xzf $var1 -C $2;;
*.tar.bz2)
tar xjf $var1 -C $2;;
*.zip)
unzip $var1 -d $2;;
*.tar)
tar xf $var1 -C $2;;
esac
done<in.txt
明天继续!