bash备忘

原创 2006年06月11日 14:00:00

 

bash备忘

hanlray@gmail.com
Revision: 1.01 Date: 2006/09/02

1. String比较操作符

  • str1 = str2
  • str1 != str2
  • str1 > str2
  • str2 < str2
  • -n str1 str1 is not null
  • -z str1 str1 is null

2. && 和 ||

  • statement1 && statement2 执行statement1,如果它的退出状态是0,执行statement2
  • statement1 || statement2 执行statement1,如果它的退出状态不是0,执行statement2

3. job control

当我们知道某个命令需要执行很久时,可以在该命令后加一个&号把它放到background执行;但当执行了一个命令后才发现它需要执行很久时,我们可以用Ctrl+Z来suspend当前在foreground执行的命令,然后用bg把它放到background执行;把某个在把background里执行的命令放回foreground,用fg [jobid],不带参数就选择最近被放到background的job;用jobs列出在background里的job

4. .bash_profile/.bash_login/.profile、.bashrc、.bash_logout

.bash_profile是只被login shell执行,当其不存在时会找.bash_login,当.bash_login不存在时找.profile .bashrc是当你在命令行上键入bash来新开一个shell时执行的文件 .bash_logout是每次login shell退出时执行的文件 当然.bash_profile里应该执行.bashrc

5. 变量和环境变量

给一个变量赋值:varname=value 使之成为环境变量:export varname 或者写在一起:export varname=value,用unset来取消赋值,就像该变量

怎么判断某个变量是否是环境变量呢?export命令会列出所有的环境变量

5.1. 重要的环境变量

  • PATH 如果没有指命令路径的话,bash将会到这里来寻找命令

5.2. 特殊变量

  • $? 上一个命令的退出状态

     

  1. 表达式 +
    • $(unix command) 其值为命令输出到标准输出的内容
    • ${varname:-expr} 若varname存在则返回其值,否则返回expr的值

6. #!

在bash中除了可以运行function、build-in command外,还可以运行属性为x的可执行文件,这时bash会创建一个子进程并通过检查文件开头是否有#!来判断是一个binary executable还是一个script,对binary executable直接运行(exec)该程序,对script则会运行#!指定的script解释器,然后由该解释器负责执行script中的各个语句。

7. exec

如上所述,当运行一个bash script时,当前shell会创建一个subshell,如果该script充当的是另一个程序的启动器,那么在script的最后就需要调用这个可执行程序,这时如果像在login bash中一样直接通过文件名来启动,那么当前subshell将会另建一个子进程来运行它,并且当该子进程退出后subshell才会退出,这样在这个程序的运行期间,这个subshell就是多余的,白白空占资源。这时可以用bash的exec命令来执行这个程序,它用指定的程序替换当前的shell,因此没有多余的进程产生。

linux 命令\操作 备忘录

1、Linux挂载Winodws共享文件夹 2、查看http的并发请求数及其TCP连接状态: 3、用tcpdump嗅探80端口的访问看看谁最高 4、统计/var/log/下文件个数 ...
  • wangcg123
  • wangcg123
  • 2017年03月24日 09:39
  • 286

MySQL备忘之查询篇

最好的教材当然是官方文档: https://dev.mysql.com/doc/refman/5.7/en/ 作为一枚回回英语考试都垫底的英文盲觉得文档写得还是很通俗易懂,只要你够耐心。disti...
  • programmer_at
  • programmer_at
  • 2017年03月05日 14:11
  • 314

Bash shell 命令 备忘

at----安排,检查,删除队列中的工作 cat----连接文件并打印到标准输出 cd----改变目录,能处理绝对和相对路径 chmod----改变文件保护权限 chown--...
  • maowenbin
  • maowenbin
  • 2010年06月07日 11:57
  • 764

Bash shell脚本备忘

shell在linux中是很常用的一种解释类型的脚本,包含很多类型,使用范围较广的为bashshell ,在读android源代码中shell文件随处可见,故对此作一备忘(详解shell都可以单独出书...
  • beijing2008lm
  • beijing2008lm
  • 2013年04月13日 09:22
  • 487

备忘(关于Bash脚本语言)

Bash Reference Manual: http://www.gnu.org/s/bash/manual/bash.html#Top An A-Z Index of the Bash...
  • bjfscasm
  • bjfscasm
  • 2011年08月22日 11:07
  • 87

grep常用备忘操作

grep -A 4 "your_string" your.file
  • zh515858237
  • zh515858237
  • 2017年04月14日 09:40
  • 166

linux下VI编辑器命令备忘录

XP 交换两个字符位置 ddp 上下两行调换 J 上下两行合并 dG 删除所有行 d$ 从当前位置删除到行尾 y$ 从当前位置复制到行尾, 如果要粘贴到其他地方 p 就可以了 ...
  • jsship
  • jsship
  • 2014年03月19日 08:34
  • 774

MySQL备忘录

进入mysql mysql -u root -p 更改默认编码方式为UTF-8 http://blog.csdn.net/red4711/article/details/6007248 备份和还原...
  • u013859301
  • u013859301
  • 2016年07月08日 11:38
  • 180

初学Python备忘录

一、选择合适的IDE IDLE是Python自带的IDE,在初学Python时很适用,因为这时的代码不多,如果只是想尽快写出几行代码来,这是最简便的方式。而第三方的PyCham,也很好用,更适合编写...
  • shuaiqidiudiu
  • shuaiqidiudiu
  • 2017年09月13日 23:06
  • 188

Mysql备忘录

子查询分类(按是否与外部查询相关) 关联子查询:每行外部查询都会触发一次关联子查询. 非关联子查询:子查询可以独立运行,在整个查询中只查询一次. 分类(按位置) select 位置的子查询:要求该子查...
  • u013855332
  • u013855332
  • 2016年09月04日 23:35
  • 187
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:bash备忘
举报原因:
原因补充:

(最多只允许输入30个字)