RUI个人博客 首页>>Linux>>[原] Linux学习笔记之 Linux 认识bash shell type export locale PS1 read

[原] Linux学习笔记之 Linux 认识bash shell type export locale PS1 read

目录:

1. 本节主要内容
2. shell 的分类  交互式和非交互式
    2.1 Linux中BASH主要的优点
    2.2 type  显示命令是外部命令还是内置命令
3. Shell 的变量功能
4. PS1 提示符的设置
    4.1 如何将用户自定义的变量变成环境变量  export
5. bash 下变量设定的规则
    5.1 locale -a 显示系统支持的所有语系
6. 变量键盘读取和声明变量  read 

1. 本节主要内容

    ·  介绍一下shell

    ·  shell 的变量功能

    ·  命令别名与历史命令

    ·  Bash shell 使用的环境

    ·  管道命令 (pipe)

2. shell 的分类   交互式和非交互式

    图形界面的shell : Windows explorer;  kDE , GNOME

    命令行的shell : Command Line INterface shell 即CLI shell

    shell 是一个命令的解释器   分为:交互式和非交互式

linux可支持的shell 可查看文件 /etc/shells中

/bin/sh 已经默认被/bin/bash 取代
/bin/bash linux中默认的shell (我一般开发脚本就写这个)
/bin/tcsh 整合c shell,提供了更多的功能
/bin/csh 依附于bsd 版的unix 的shell,被/bin/tcsh取代
/bin/ksh 常用于商业版本中,兼容于bash
/bin/zsh 基于ksh 开发的 ,功能更强大

[root@RAC1 tmp]# cat -n /etc/shells 

2.1 Linux中Bash主要的优点

    1. 命令记忆能力

    2. 档案比对不全功能:指令不全,文件名补全

    3. 命令别名(alias)设定功能

    4. 作业控制(jobs),前台后台控制

    5. shell scripts 的强大功能  以及 通配符 *  ? 等的使用

命令记忆能力:

[root@RAC1 ~]# ls -al .bash_history

   2.2 type  显示命令是外部命令还是内置命令

[root@RAC1 ~]# type ls
[root@RAC1 ~]# type cat
[root@RAC1 ~]# type -t cat
[root@RAC1 ~]# type -t logout
[root@RAC1 ~]# type -a ls
[root@RAC1 ~]# which ls

3. Shell 的变量功能

    变量就是以一组文字或符号等,来取代一些设定或者是一串保留的数据

    通过命令 echo $变量名  打印输出,例如:echo $PATH  (在开发脚本排查故障时和 exit搭配非常好用)

    在Linux默认的一些设置中,一般都是使用“大写字母”来为系统预先设定变量

[root@RAC1 ~]# echo $PATH

bash中有许多预先设定的环境变量   /etc/profile --> /etc/profile.d/lang.sh --> /etc/sysconfig/i18n --> .bash_profile -->/etc/bashrc
系统通过预定义的环境变量来定义 shell的环境
env 显示目前系统中主要的预定义变量内容    set可以将环境变量和用户自定义变量显示出来

[root@RAC1 ~]# env|more

4. PS1 提示符的设置

\d 表示日期,格式为 星期 月 日
\t 24小时格式显示时间,HH:MM:SS
\A 24小时格式显示时间,HH:MM
\T 12小时格式显示时间,HH:MM:SS
\H 显示完整的主机名称
\h 显示主机名称中的第一个名字
\u    \v \u 显示当前账户名, \v 显示当前的bash版本信息
\w   \W \w 显示完整的工作目录   \W 只列出最后一个目录
\# 执行第几个指令
\$ root用户提示符是 #,其他用户提示符是 $

[root@RAC1 ~]# PS1='[\u@\h \d \t \## \W]\$ '

   4.1 如何将用户自定义的变量变成环境变量  export

5. bash 下变量设定的规则

1. 变量与变量内容通过等号 = 来连结,等号两边都不能直接有空格
2. 变量名称只能是英文字母与数字,但是数字不能是变量的开头字符

3. 如果变量之间有空格符,可通过双引号 "" 或单引号 '' 来将变量里面的内容结合起来,

 但要注意,双引号内的特殊字符可以博爱次原有的变量特性,单引号的特殊字符只是一般的字符

4. 必要时可以使用转义字符 \ 来将特殊符号(例如 <>  * ? ; &  !  []  |  '' "  `  ()  {}等) 转变为一般字符
5. 在一串指令中,如果还需要由其他指令提供的信息,可以使用 quote `command`; 来调用结果
6. 若该变量为扩增变量内容时,则需要以双引号和$变量名称,例如 PATH=$PATH:/oracle 继续进行变量的累加
7. 若该变量需要其他子程序中使用,可以使用export 将变量声明为 环境变量,例如 export ORACLE_SID=ORCL
8. 取消变量, unset 变量名称
[root@RAC1 ~]# name="wang hui"
[root@RAC1 ~]# name=wang\ hui
[root@RAC1 ~]# name='wang hui'
[root@RAC1 ~]# path="/lib/modules/`uname -r`/kernel/fs"

[root@RAC1 ~]# echo $PATH
[root@RAC1 ~]# PATH="$PATH":/home/oracle
[root@RAC1 ~]# echo $PATH

   5.1 locale -a 显示系统支持的所有语系

    通过locale 命令查看系统中语言和语系的配置

    locale -a 显示系统支持的所有语系

    可通过修改配置文件 /etc/sysconfig/i18n 来更改系统支持的语系

[root@RAC1 ~]# locale
[root@RAC1 ~]# cat /etc/sysconfig/i18n

6. 变量键盘读取和声明变量

[root@RAC1 ~]# read name
[root@RAC1 ~]# read -p "Please input your name:" name
[root@RAC1 ~]# read -p "Please input your name:" -t 10 name
[root@RAC1 ~]# read -p "Please input your name:" -t 1 name        // 1s 之内迅速输入
[root@RAC1 ~]# sum=1+2+3
[root@RAC1 ~]# echo $sum
[root@RAC1 ~]# declare -i sum=1+2+3
[root@RAC1 ~]# echo $sum
[root@RAC1 ~]# declare -x sum
[root@RAC1 ~]# echo $sum
[root@RAC1 ~]# echo "$sum"
[root@RAC1 ~]# echo ${sum}
[root@RAC1 ~]# echo "${sum}"
[root@RAC1 ~]# a[1]=1
[root@RAC1 ~]# a[2]=2
[root@RAC1 ~]# a[3]=3
[root@RAC1 ~]# echo $a[1]
[root@RAC1 ~]# echo "$a[1]"
[root@RAC1 ~]# echo ${a[1]}
[root@RAC1 ~]# echo "${a[1]}"
[root@RAC1 ~]# echo ${a[1]}-${a[2]},${a[3]}
[root@RAC1 ~]# echo "${a[1]}-${a[2]},${a[3]}"  // 双引号内的特殊字符可以保持原有变量特性


    2016.05.10 于 北京邮储传    tyger.wang

昵  称:
邮  箱:
评论内容:
验 证 码:
可用[code][/code]插入代码
点击刷新验证码