$((expression))

echo $(2+2) :wrong

echo $((2+2))  : right

echo Front-{A,B,C}-Back

Front-A-Back Front-B-Back Front-C-Back

echo start{1..5}end
start1end start2end start3end start4end start5end

echo start{A..Z}end

$(cmd)

命令替换 一个命令的输出作为另一个命令的参数

uses back quotesinstead of the dollar sign and parentheses:

ls -l `which cp` 等价于

ls –l $(which cp)

It is also common to use escaping toeliminate the special meaning of a
character in a filename. For example, it is possible to use characters in filenames that normally have special meaning to the shell. These would include
$, !, &,  (a space), and others. To include a special character in a filename,
you can use \ to escape.

file filename #determine the file type
ls -lt #show files sort by time
less filename #allow you scroll down and up to see the file content
ln -s target linkname #used to create a soft link for one file or folder

wc—Print newline, word, and byte counts for each file.

tee—Read from standard input and write to standard output and files.

执行一个shell的时候,可以在屏幕上打出日志,同时又保存在文件中。

sh mysh.sh 2>&1 | tee mysh.log

sh mysh.sh >mylog.log 2>&1

1 : standard output

2: standard error output

if you want to throw the error away, you can output to

sh mysh.sh 2> /dev/null

> output content to a new file

>> append data to file

< read data from file

1.过滤今天产生的文件?(日志文件)

find / –type f –mtime –1

find –name ‘pattern’ –exec rm {} \;

find / –name test | xargs rm –rf;

2.根据年月快速创建一些文件夹?

mkdir {2009..2011}-0{1..9} {2009..2011}-{10..12}
[me@linuxbox Pics]$ ls
2009-01 2009-07 2010-01 2010-07 2011-01 2011-07
2009-02 2009-08 2010-02 2010-08 2011-02 2011-08
2009-03 2009-09 2010-03 2010-09 2011-03 2011-09
2009-04 2009-10 2010-04 2010-10 2011-04 2011-10
2009-05 2009-11 2010-05 2010-11 2011-05 2011-11
2009-06 2009-12 2010-06 2010-12 2011-06 2011-12

jobs—List active jobs.

bg—Place a job in the background.
fg—Place a job in the foreground.

if [ -f  file ]    如果文件存在
if [ -d ...   ]    如果目录存在
if [ -s file  ]    如果文件存在且非空
if [ -r file  ]    如果文件存在且可读
if [ -w file  ]    如果文件存在且可写
if [ -x file  ]    如果文件存在且可执行    
if  [ -n $string  ]             如果string 非空(非0),返回0(true)  
if  [ -z $string  ]             如果string 为空

command1  && command2
 &&左边的命令(命令1)返回真(即返回0,成功被执行)后,&&右边的命令(命令2)才能够被执行;换句话说,“如果这个命令执行成功&&那么执行这个命令”。
 command1 || command2
 ||则与&&相反。如果||左边的命令(命令1)未执行成功,那么就执行||右边的命令(命令2);或者换句话说,“如果这个命令执行失败了||那么就执行这个命令。
 
 dirname :用于取路径
 basename:用于取文件名