echo
显示一行文本
echo会把后面的文本翻译。
字符串
字符串会直接输出,但会去掉多余的空格
echo this is a test
this is a test
带*的路径名
$ echo D*
Desktop Documents
其实和 ls D*差不多
另外带~也和ls差不多
echo ~
/home/zhang
花括号
依次取出集合中的元素和其他组合。
echo a{A{1,2},B{3,4}}b
aA1b aA2b aB3b aB4b
创建多个文件夹
[me@linuxbox Pics]$ mkdir {2007..2009}-0{1..9} {2007..2009}-{10..12}
[me@linuxbox Pics]$ ls
2007-01 2007-07 2008-01 2008-07 2009-01 2009-07
2007-02 2007-08 2008-02 2008-08 2009-02 2009-08
2007-03 2007-09 2008-03 2008-09 2009-03 2009-09
2007-04 2007-10 2008-04 2008-10 2009-04 2009-10
2007-05 2007-11 2008-05 2008-11 2009-05 2009-11
2007-06 2007-12 2008-06 2008-12 2009-06 2009-12
使用$展开(搭配echo)
算数
当作计算器
echo $(8 /(2 + 2)) //4
echo $(($((5**2)) * 3))//75
支持+ - * / ** %
参数展开
$可以针对变量展开
echo $USER
me
查看所有变量
$ printenv | less
命令行
命令替换允许我们把一个命令的输出作为一个展开模式来使用:
$(which cp)先进行运算,返回/bin/cp,然后执行 ls -l /bin/cp
ls -l $(which cp)
-rwxr-xr-x 1 root root 71516 2007-12-05 08:58 /bin/cp
双引号
双引号内的除了\ $ 和 反引号
,都是普通字符。
所以不会禁止算数展开,参数展开,命令行展开
mv "two words.txt" two_words.txt
echo $(cal)//会删除空格
February 2008 Su Mo Tu We Th Fr Sa 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
echo "$(cal)"//不删除空格
February 2008
单引号
禁止所有展开,即 ’$(cal)‘接直接echo,而不计算。
转义字符
echo "The balance for user $USER is: \$5.00"
The balance for user me is: $5.00
echo 加参数 -e可以对更多字符转义
sleep 1; echo -e "Time's up\a"//休眠1s,然后打印并报警
echo -e "DEL C:\\WIN2K\\LEGACY_OS.EXE"
| \a | 响铃(”警告”-导致计算机嘟嘟响) |
| \b | 退格符 |
| \n | 新的一行。在类 Unix 系统中,产生换行。 |
单击 tab 补齐
双击tab显示所有符合的文件
快捷键
ctrl+a 移动到行首
ctrl +l 清屏,同clear
ctrl+k 剪切后面的至行尾
ctrl+y 粘贴剪切的
ctrl+u 剪切前面的
history
history | less
history |tail| less
history | grep /usr/bin
每一条历史命令都有编号,可以通过编号调用命令:
!1212
可以Ctrl+r查找历史记录中的指令,输入后ctrl+r查找上一条。找到了后回车或者 Ctrl+j从历史列表中复制这一行到当前命令行。