请问linux shell for如何知道正在使用哪个shell呢

Linux基础系列之判断符在shell中的使用方式-- 嵌入式学院(华清远见旗下品牌)
Linux基础系列之判断符在shell中的使用方式
作者:康老师,讲师。
1. 关于某个档名的『类型』侦测(存在与否),如 test -e filename
该『档名』是否存在?(常用)
&&&&&&&&-f
该『档名』是否为档案(file)?(常用)
&&&&&&&&-d
该『文件名』是否为目录(directory)?(常用)
&&&&&&&&-b
该『文件名』是否为一个 block device 装置?
&&&&&&&&-c
该『文件名』是否为一个 character device 装置?
&&&&&&&&-S
该『档名』是否为一个 Socket 档案?
&&&&&&&&-p
该『档名』是否为一个 FIFO (pipe) 档案?
&&&&&&&&-L
该『档名』是否为一个连结档?
2. 关于档案的权限侦测,如 test -r filename
侦测该文件名是否具有『可读』的属性?
&&&&&&&&-w
侦测该档名是否具有『可写』的属性?
&&&&&&&&-x
侦测该档名是否具有『可执行』的属性?
&&&&&&&&-u
侦测该文件名是否具有『SUID』的属性?
&&&&&&&&-g
侦测该文件名是否具有『SGID』的属性?
&&&&&&&&-k
侦测该文件名是否具有『Sticky bit』的属性?
&&&&&&&&-s
侦测该档名是否为『非空白档案』?
3. 两个档案之间的比较,如: test file1 -nt file2
(newer than)判断 file1 是否比 file2 新
&&&&&&&&-ot
(older than)判断 file1 是否比 file2 旧
&&&&&&&&-ef
判断 file2 与 file2 是否为同一档案,可用在判断 hard link 的判定上。 主要意义在判定,两个档案是否均指向同一个 inode 哩!
4. 关于两个整数之间的判定,例如 test n1 -eq n2
两数值相等 (equal)
&&&&&&&&-ne
两数值不等 (not equal)
&&&&&&&&-gt
n1 大于 n2 (greater than)
&&&&&&&&-lt
n1 小于 n2 (less than)
&&&&&&&&-ge
n1 大于等于 n2 (greater than or equal)
&&&&&&&&-le
n1 小于等于 n2 (less than or equal)
5. 判定字符串的数据
test -z string
判定字符串是否为 0 ?若 string 为空字符串,则为 true
&&&&&&&&test -n string
判定字符串是否非为 0 ?若 string 为空字符串,则为 false。
&&&&&&&&注: -n 亦可省略
&&&&&&&&test str1 = str2
判定 str1 是否等于 str2 ,若相等,则回传 true
&&&&&&&&test str1 != str2
判定 str1 是否不等于 str2 ,若相等,则回传 false
6. 多重条件判定,例如: test -r filename -a -x filename
(and)两状况同时成立!例如 test -r file -a -x file,则 file 同时具有 r 与 x 权限时,才回传 true。
&&&&&&&&-o
(or)两状况任何一个成立!例如 test -r file -o -x file,则 file 具有 r 或 x 权限时,就可回传 true。
反相状态,如 test ! -x file ,当 file 不具有 x 时,回传 true3396人阅读
服务器(284)
JAVA(82)
查看当前发行版可以使用的shell
[jack@localhost ~]$ cat /etc/shells&
/sbin/nologin
查看当前使用的shell
一、最常用的查看shell的命令,但不能实时反映当前shell
[jack@localhost ~]$ echo $SHELL
二、下面这个用法并不是所有shell都支持
[jack@localhost ~]$ echo $0
三、环境变量中shell的匹配查找
[jack@localhost ~]$ env | grep SHELL
SHELL=/bin/bash
四、口令文件中shell的匹配查找
[jack@localhost ~]$ cat /etc/passwd | grep jack
jack:x:500:500:mengfei:/home/jack:/bin/bash
五、查看当前进程
[jack@localhost ~]$ ps
PID TTY&&&&&&&&& TIME CMD
3052 pts/0&&& 00:00:00 bash
3254 pts/0&&& 00:00:00 ps
六、先查看当前shell的pid,再定位到此shell进程
[jack@localhost ~]$ echo $$
[jack@localhost ~]$ ps -ef | grep 3052
jack&&&&&&&
11:33 pts/0&&& 00:00:00 bash
jack&&&&&&&
11:57 pts/0&&& 00:00:00 ps -ef
jack&&&&&&&
11:57 pts/0&&& 00:00:00 grep 3052
附:一条命令即可实现:
[jack@localhost ~]$ ps -ef | grep `echo $$` | grep -v grep | grep -v ps
jack &&&&&&
11:33 pts/0&&& 00:00:00 bash
七、输入一条不存的命令,查看出错的shell提示
[jack@localhost ~]$ tom
bash: tom: command not found
注:以上命令均在Fedora 10中测试过,若有其它方法欢迎回贴
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1391562次
积分:14274
积分:14274
排名:第611名
原创:54篇
转载:881篇
评论:73条
(1)(1)(15)(21)(4)(6)(42)(4)(1)(5)(2)(11)(18)(21)(43)(3)(4)(11)(5)(3)(2)(7)(2)(4)(39)(60)(24)(86)(119)(92)(2)(2)(2)(1)(5)(18)(3)(17)(20)(97)(59)(35)(20)(1)Shell(11)
Linux(10)
在 linux 系统中,/proc/$PID/status 文件给我们提供了该进程资源(内存,堆栈,信号量,子父进程)的使用情况,虽然linux为我们提供了不少查看内存的命令,但都是看整体的使用情况,无法对单个进程的内存使用情况进行查看
& & & &以下的这个脚本就是通过查看status文件中VmRSS的字段来看系统或者进程使用的内存情况,脚本如下:
#! /bin/bash
echo-n&PidName & & & /root/script/pid.f
echo & &MeMery & && && /root/script/pid.f
PIDPATH=/proc/
cd$PIDPATH
& forDOCNAMEin$DOC
& & & &if[ -d $DOCNAME ]; then
& & & & &cd$DOCNAME
& & & & & & if[ -f status ];then
& & & & & & & MEMERY=`grepVmRSS status | awk-F':''{print $2}' | awk'{print $1}'`
& & & & & & & PIDNAME=`grepName status | awk-F':''{print $2}'`
& & & & & & & if[ $MEMERY ]; then
& & & & & & & & echo-n $PIDNAME && /root/script/pid.f
& & & & & & & & echo-n& & & & &&& /root/script/pid.f
& & & & & & & & echo & $MEMERY &&& /root/script/pid.f
& & & & & & & & TOTLE=`expr$TOTLE + $MEMERY`
& & & & & & & & cd..
& & & & & & & &else
& & & & & & & & cd..
& & & & & & & fi
& & & & & & & else
& & & & & & & &cd..
& & & & & & fi
TOTLE=`expr$TOTLE / 1024`
echo&TOTLE USERD: $TOTLE MB& && /root/script/pid.f
cat /root/script/pid.f
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:53811次
排名:千里之外
原创:15篇
转载:116篇
(1)(1)(1)(1)(17)(1)(1)(1)(1)(1)(1)(9)(4)(5)(2)(10)(2)(26)(19)(22)(3)(2)}

我要回帖

更多关于 linux shell编程 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信