首页 > 代码库 > LINUX当前shell总结!

LINUX当前shell总结!

任务交接,不同的系统,版本,用的shell也可能不一样。前段时间帮一个朋友搞centos5.9,丫丫的用的居然是sh。疯了!做个简单总结。

查看当前系统支持的shell

[root@node6 ~]# cat /etc/shells 

/bin/sh

/bin/bash

/sbin/nologin

/bin/dash

[root@node6 ~]#

注意:可自己安装其它shell。比如zsh。


查看当前系统正在使用的shell

1、echo $0    

本人喜欢用的方式,但是这个用法并不是所有shell都支持。

[root@node6 ~]# echo $0

-bash

[root@node6 ~]#

2、echo $SHELL

最常用的查看shell的命令,但不能实时反映当前shell。比如不能显示所在的子shell。

[root@node6 ~]# echo $SHELL

/bin/bash

[root@node6 ~]# 

3、实时查看当前进程中使用的shell  

[root@node6 ~]# ps | grep $$ | awk ‘{print $4}‘ 

bash

[root@node6 ~]#

or:ps -ef | grep $$ | grep -v grep | grep -v ps

(注:$$表示shell的进程号)

4、


当知道shell之后可以查看其版本:

[root@node6 ~]# bash -version

GNU bash, version 4.1.2(1)-release (x86_64-redhat-linux-gnu)

Copyright (C) 2009 Free Software Foundation, Inc.

License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>


This is free software; you are free to change and redistribute it.

There is NO WARRANTY, to the extent permitted by law.

[root@node6 ~]#


shell中的特殊变量:

$0

shell或shell脚本的名字

$*

以一对双引号给出参数列表

$@

将各个参数分别加双引号返回

$#

参数的个数

$_

代表上一个命令的最后一个参数

$$

代表所在命令的PID

$!

代表最后执行的后台命令的PID

$?

代表上一个命令执行后的退出状态



   --任志远经验总结

本文出自 “renzhiyuan@chinacfsc.com” 博客,转载请与作者联系!

LINUX当前shell总结!