你的位置:首页 > 操作系统

[操作系统]linux shell程序


1、查看我们的Linux(centos6.5为例)有多少我们可以使用的shell:

[root@localhost bin]# cat /etc/shells /bin/sh/bin/bash/sbin/nologin/bin/dash/bin/tcsh/bin/csh

系统某些服务在运作过程中,会去检查使用者能够使用的shells,而这些shell的查询就是由/etc/shells这个档案。

2、当我们登入Linux系统的时候,系统就会给我一个shell来工作,而这个登录取得的shell就记录在/etc/passwd这个档案里:

[root@localhost bin]# cat /etc/passwdroot:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologinadm:x:3:4:adm:/var/adm:/sbin/nologin...

 3、shell的内部指令type,知道指令来自外部指令伙食内建在bash当中。

[root@localhost bin]# man cd[root@localhost bin]# type cdcd is a shell builtin[root@localhost bin]# type -t cdbuiltin #表示该指令为bash内建的指令功能[root@localhost bin]# type -a cdcd is a shell builtin[root@localhost bin]# type typetype is a shell builtin
[root@localhost bin]# type it ls
alias #表示该指令为命名别名所设定的名称

  [root@localhost bin]# type uname
  uname is hashed (/bin/uname)
  [root@localhost bin]# type -t uname
  file   #表示为外部指令


4、变量的取用 echo

[root@localhost bin]# echo $PATH/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin[root@localhost bin]# echo ${PATH}/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

变量的设定 = ,如果一个变量未设定,内容为空

[root@localhost bin]# echo $myname[root@localhost bin]# myname=tian[root@localhost bin]# echo $mynametian

子程序,就是在目前这个shell的情况下,去启用另一个新的shell,新的shell就是子程序。在一般状态下,父程序的自定义变量无法在子程序内使用,但是通过export将变量变成环境变量,就能在子程序下应用了。

[root@localhost bin]# echo $nameyes[root@localhost bin]# bash #进入所谓的子程序[root@localhost bin]# echo $name[root@localhost bin]# exit #离开子程序exit[root@localhost bin]# export name[root@localhost bin]# bash[root@localhost bin]# echo $nameyes[root@localhost bin]# exit

变量的设定规则:

5、环境变量

env,environment的简写,列出所有的环境变量

[root@localhost /]# envHOSTNAME=localhost.localdomainSHELL=/bin/bashTERM=xtermHISTSIZE=1000USER=root...

set,观察所有变量(包含环境变量和自定义变量)

[root@localhost /]# envBASH=/bin/bashBASH_VERSINFO=([0]="4" [1]="1" [2]="2" [3]="1" [4]="release" [5]="i386-redhat-linux-gnu")BASH_VERSION='4.1.2(1)-release'HISTFILE=/root/.bash_historyHISTFILESIZE=1000HISTSIZE=1000HOSTTYPE=i386OLDPWD=/OSTYPE=linux-gnuPPID=5200PS1='[\u@\h \W]\$ '...