linux shell程序,linuxshell


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/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
...

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

[root@localhost bin]# man cd
[root@localhost bin]# type cd
cd is a shell builtin
[root@localhost bin]# type -t cd
builtin  #表示该指令为bash内建的指令功能
[root@localhost bin]# type -a cd
cd is a shell builtin
[root@localhost bin]# type type
type 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 $myname
tian

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

[root@localhost bin]# echo $name
yes
[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 $name
yes
[root@localhost bin]# exit

变量的设定规则:

5、环境变量

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

[root@localhost /]# env
HOSTNAME=localhost.localdomain
SHELL=/bin/bash
TERM=xterm
HISTSIZE=1000
USER=root
...

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

[root@localhost /]# env
BASH=/bin/bash
BASH_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_history
HISTFILESIZE=1000
HISTSIZE=1000
HOSTTYPE=i386
OLDPWD=/
OSTYPE=linux-gnu
PPID=5200
PS1='[\u@\h \W]\$ '
...

 

相关内容