你不得不知的Linux下shell编程基础知识

2015-04-15 模范生的学习 51CTO技术博客

 

点击上方“51CTO技术博客”订阅
history 记录历史命令

预设记录1000条命令,存储在用户家目录 .bash_history 文件中;

!! 执行上一条命令

!n n为数字,history里面显示的指令数字

!cat 执行最近一次以cat开头的命令

!$ 上一条命令的最后一个参数

man builtin 可以查询系统内置的所有命令;


指令和文件名补全

Tab键 连续按2次列出所有的指令或文件名;


别名alias

自定义别名,把很长的经常使用的命令别名一个简单的命令

unalias 解除别名

别名永久生效的话,把命令写入到当前用户家目录 .bashrc里面;只对当前用户生效。

 

通配符

* 代表零个或多个任意字符

? 代表1个任意字符

 

输入输出重定向

输出重定向 >

把前面的输出不显示在当前屏幕上,输出到指定文件里面;

追加重定向 >> 把内容追加到文件里面;

输入重定向 < 把后面的文件作为前面命令的输入;

2> 错误重定向(写脚本的时候会用到)

2>> 错误追加重定向

 

标准输入设备stdin用0表示;键盘;

标准输出设备 stdout用1表示,显示器显示;

标准输出错误 stderr用2表示,显示器显示;

示例:直接ls 会在当前屏幕显示出来,正确和错误的信息;

 

正确输出1默认可以不用写,直接重定向到1.log里面,2代表错误输出,重定向到&1代表前面的1.log;有时候也可以>>追加到日志;

 

&表示所有,包括正确输出1和错误输出2,输出重定向到all.log里面;

 

管道符 |

把前面命令的输出结果作为后面命令的输入

作业控制 |

当运行一个进程时,你可以使它暂停(按Ctrl+z),然后使用fg命令恢复它,利用bg命令使他到后台运行,你也可以使它终止(按Ctrl+c)

jobs 可以查看被暂停或在后台运行的任务

 

想要让进程在后台运行的话加 &,中间有空格,进程就在后台运行了。

vmstat 1 用来观察系统状态的一个命令。

fg 2让后台运行的进程回到当前运行,ctrl+c 可以终止进程。

+号显示的为优先级最高。

 

另一种情况,关闭当前shell,重新打开另一个shell,使用jobs并不会显示在后台运行的进程。想要停止进程的话,需要知道pid,然后使用kill命令杀死进程。如遇到杀不死的进程,使用 kill -9 pid

变量 |

就是使用一个较简单的字符串来替代某些具有特殊意义的设定以及数据。

通常shell预设的变量名为大写。可以使用echo查看变量;

常用变量有:PATH、HOME、LANG、PWD、LOGNAME、HOSTNAME

 

env 可以查看系统预设的所有环境变量;

set 可以列出系统预设的全部变量,包括用户自己设定的变量;

 

自定义变量 变量名=变量内容

自定义变量只在当前shell下生效;bash命令打开一个新的shell,变量就不会生效,退出新shell后,回到当前shell,变量继续生效;

 

变量永久生效的方法:

1)系统下所有用户登录都可以使用该变量

在/etc/profile 配置文件中最后一行,添加"export myname=YongLinux",然后执行source /etc/profile 生效;source命令的作用是,将目前设定的配置刷新,即不用注销再登录也能生效。

 

2)只在当前用户下使用变量

在用户的家目录下 .bashrc 配置文件,添加"export myname=YongLinux",然后执行source .bashrc 生效;

 

自定义变量的规则

1、设定变量的格式“变量名=变量内容”等号两边不能有空格

2、变量名只能由英文、数字及下划线组成,而且不能以数字开头;

3、当变量内容带有特殊字符(空格 $),需要加单引号;


如变量内容中本身有单引号,需要加双引号;


4、如果变量内容需要引用其他运行结果,需要使用反引号

 

 


5、变量内容可以累加其他变量的内容,需要加双引号。

单引号和双引号的区别,用双引号时不会取消掉里面出现的特殊字符的本身作用(这里的$),而使用单引号则里面的特殊字符全部失去它本身的作用。

你不得不知的Linux下shell编程基础知识
标签: