cd - 返回进入当前目录前躲在的目录
!!
显示上一个命令以及它的执行结果
cd /
切换到根目录
**************************************************************************************
$0
shell的命令本身(包括完整路径)
$1到$9
数字表示shell 的第几个参数
$#
传递到脚本的参数个数
$*
以一个单字符串显示所有向脚本传递的参数
$$
脚本运行的ID号
$!
后台运行的最后一个进程的ID号
$@
与$*相同。
$-
显示shell使用的当前选项。
$?
显示最后命令的执行状况。0表示没有错误。
**************************************************************************************
basename + 路径字符串(可以不包含文件名)
shell命令,返回字符串中"/"后的字符串,认为是文件名/最深目录名
eg:>basename /
输出
/
>basename `pwd`
输出
当前所在目录名
>basename
$0
dirname + 字符串
取得字符串中认为是路径的部分,不包含文件名
**************************************************************************************
二元比较操作符,比较变量或者比较数字.注意数字与字符串的区别.
整数比较
-eq
等于,如:if [ "$a" -eq "$b" ]
-ne
不等于,如:if [ "$a" -ne "$b" ]
-gt
大于,如:if [ "$a" -gt "$b" ]
-ge
大于等于,如:if [ "$a" -ge "$b" ]
-lt
小于,如:if [ "$a" -lt "$b" ]
-le
小于等于,如:if [ "$a" -le "$b" ]
<
小于(需要双括号),如:(("$a" < "$b"))
<=
小于等于(需要双括号),如:(("$a" <= "$b"))
>
大于(需要双括号),如:(("$a" > "$b"))
>=
大于等于(需要双括号),如:(("$a" >= "$b"))
字符串比较
=
等于,如:if [ "$a" = "$b" ]
==
等于,如:if [ "$a" == "$b" ],与=等价
注意:==的功能在[[]]和[]中的行为是不同的,如下:
1 [[ $a == z* ]] # 如果$a 以"z"开头(模式匹配)那么将为true//认为是正则表达式
2 [[ $a == "z*" ]] # 如果$a 等于z*(字符匹配),那么结果为true
3
4 [ $a == z* ] # File globbing 和word splitting 将会发生
5 [ "$a" == "z*" ] # 如果$a 等于z*(字符匹配),那么结果为true
一点解释,关于File globbing 是一种关于文件的速记法,比如"*.c"就是,再如~也是.
但是 file globbing 并不是严格的正则表达式,虽然绝大多数情况下结构比较像.
!=
不等于,如:if [ "$a" != "$b" ]
这个操作符将在[[]]结构中使用模式匹配.
<
小于,在ASCII 字母顺序下.如:
if [[ "$a" < "$b" ]]
if [ "$a" \< "$b" ]
注意:在[]结构中"<"需要被转义.
>
大于,在ASCII 字母顺序下.如:
if [[ "$a" > "$b" ]]
if [ "$a" \> "$b" ]
注意:在[]结构中">"需要被转义.
具体参考 Example 26-11 来查看这个操作符应用的例子.
-z
字符串为"null".就是长度为0.
-n
字符串不为"null"
注意:
使用-n 在[]结构中测试必须要用""把变量引起来.使用一个未被""的字符串来使用! -z
或者就是未用""引用的字符串本身,放到[]结构中(见Example 7-6)虽然一般情况下可
以工作,但这是不安全的.习惯于使用""来测试字符串是一种好习惯.[1]
**************************************************************************************
1) ls -lt 时间最近的在前面
2) ls -ltr 时间从前到后
3) 利用sort
ls -l | sort +7 (日期为第8列) 时间从前到后
ls -l | sort -r +7 时间最近的在前面