Shell 常用命令
这篇博客记录了一些 Shell 常用命令 供未来查阅。
添加ll
为了简化 “ls -l”,可以在~/.bash_profile
中加入:
获得参数
$0
是命令本身
$1
是第一个参数
$
$可以认为是 获取内容 。
内置变量
bash有很多内置变量,我们可以使用$
获取到它们,例如:
读取配置
配置数据可以像下面一样:
| Fansy:UtilTools fansy$ cat .meta Installed=False Version=1.0 |
写在一个文件中。当读取它的内容时,可以加入如下代码:
| configPath=.meta; source $configPath; echo $Installed; echo $Version; |
更改配置
使用sed
来替换配置文件中的内容,在上面的例子中,我可以更改配置文件中的值为True :
| sed -i $configPath ‘s/^Installed.*/Installed=True/g‘ $configPath |
‘s/aaa/bbb/g‘ file.txt
是将aaa替换为bbb,这里使用正则表达式,匹配以 “Installed” 开始的行。
-i 意味着 替换源文件,否则只在内存中做替换,无法保存。
写入文件 重定向
| > 输出重定向 >> 追加到输出重定向 < 输入重定向 << 追加到输入重定向 |
因此在文件末尾添加内容可以使用:
| echo "something" >> file.txt |
#!/bin/bash
它叫做 shebang, 它告诉shell执行时的程序类型,例如:
| #!/bin/sh — Execute the file using sh, the Bourne shell, or a compatible shell #!/bin/csh — Execute the file using csh, the C shell, or a compatible shell #!/usr/bin/perl -T — Execute using Perl with the option for taint checks #!/usr/bin/php — Execute the file using the PHP command line interpreter #!/usr/bin/python -O — Execute using Python with optimizations to code #!/usr/bin/ruby — Execute using Ruby |
echo
使用-e
可以格式化输出字符串。
条件测试
[ condition ]
可以测试一个表达式。$?
可以获取判断结果,0表示condition=true.
| ln -s $fullpath $linkpath; if [ $? -eq 0 ]; then echo "link success"; fi |
字符串比较
= 两字符串相等
!= 两字符串不等
-z 空串 [zero]
-n 非空串 [nozero]
| [ -z "$EDITOR" ] [ "$EDITOR" = "vi" ] [ "$1"x = ""x ] #for empty parameter |
数字比较
| -eq 数值相等(equal) -ne 不等(not equal) -gt A>B(greater than) -lt A<B(less than) -le A<=B(less、equal) -ge A>=B(greater、equal) N=130 [ "$N" -eq 130 ] |
if-else
| if condition1 then //do thing a elif condition2 then //do thing b else //do thing c fi |
or
| if condition; then # do something fi |
函数
定义:
| function func_name() { } func_name() { //do some thing } |
传递参数:
| function copyfile() { cp $1 $2 return $? } copyfile /tmp/a /tmp/b or result=`copyfile /tmp/a /tmp/b` |
搜索匹配
判断文件中是否含有某个字符串:
| if grep -q "$Text" $file; then echo "Text found"; else echo "No Text"; fi |
字符串处理
使用 ${expression}
| ${parameter:-word} ${parameter:=word} ${parameter:?word} ${parameter:+word} |
上面4种可以用来进行缺省值的替换。
上面这种可以获得字符串的长度。
| ${parameter%word} 最小限度从后面截取word ${parameter%%word} 最大限度从后面截取word ${parameter#word} 最小限度从前面截取word ${parameter##word} 最大限度从前面截取word |
详细使用可以参考这个
ln 软连接
使用软连接可以直接执行一个程序。命令为:
| ln -s source_file target_file |
其中 source_file 要写绝对路径。
本文出自: [ 松阳的博客 ]/[ blog.csdn.net/fansongy ] 禁止用于商业用途 转载请注明出处
原文链接: http://www.songyang.net/shell-command/
Shell 常用命令
原文:http://blog.csdn.net/fansongy/article/details/42404151