Bash shell

其实学习linux系统主要就是学的bash shell,可见它的强大之处,学好会给我们系统管理带来很大的方便,以下都是参考各种资料后自己整理的,方便日后查找。
Bash shell 的功能:
1.命令历史(history) :记录使用过的指令。默认记录1000个指令。保存在~/.bash_history里(只有用户退出
 
系统后),至于当前执行的被记忆在内存中。
2.命令补全:提高输入速度。
3.别名设定:例如alias a='ls-l'  执行a指令时与执行ls -l输出结果是一样的。
4.shell script编写:
5.内建命令:type可查看指令是否为内建指令很好用的哦!!!常用参数-[t p a] 
-----------------------------------------------------------------------------
自定义变量:
1.定义变量时,可直接赋值 如 A=123 等号两边没空格!!!
2.大写字母开头 如TODAY=monday  显示 echo $TODAY
3.赋值的内容有空格时,用“” 如 NAME=“he name is tom”  注意:“”内的保留原来的意义 如:A=1 
 
B="1=$A"  echo $B 显示1=1 哈哈!!!
4.\脱去特殊意义
5.反单引号 ` tab键上面那个 注意:``它里面放的是可执行的指令  如: version=`uname -s`  echo 
 
$version  会显示当前系统
6.若该变数为扩增变数内容时,则可用"$变数名称"或${变数}累加内容,如下所示:
PATH="$PATH":/home/bin
7.export 变成全局变量
8.通常情况下:大家为系统预设,小写为自己定义。
9.查看变量 set 
10.取消设置:unset 变量名 
 
注意:无论单引号、 又引号必须成对出现!!!!!!!!
 
可以将比较长的目录赋值给一个变量,如A=/etc/sysconfig/network/* 可以这样进入 cd $A 可以省去敲打长的
 
命令,哈哈!!!!
-------------------------------------------------------------------
ps1 常用:
 
\d :可显示出『星期月日』的日期格式,如:"Mon Feb 2"
\H :完整的主机名称。举例来说,鸟哥的练习机为『www.vbird.tsai』
\h :仅取主机名称在第一个小数点之前的名字,如鸟哥主机则为『www』后面省略
\t :显示时间,为24 小时格式的『HH:MM:SS』
\T :显示时间,为12 小时格式的『HH:MM:SS』
\A :显示时间,为24 小时格式的『HH:MM』
\@ :显示时间,为12 小时格式的『am/pm』样式
\u :目前使用者的帐号名称,如『root』;
\v :BASH 的版本资讯,如鸟哥的测试主机版本为3.2.25(1),仅取『3.2』显示
\w :完整的工作目录名称,由根目录写起的目录名称。但家目录会以~ 取代;
\W :利用basename 函数取得工作目录名称,所以仅会列出最后一个目录名。
\# :下达的第几个指令。
\$ :提示字元,如果是root 时,提示字元为# ,否则就是$ 
设置PS1  PS1='[\u\h \W \A #\#]\$'  显示如下内容  [rootlocalhost / 13:38 #10]#
--------------------------------------------------------------------
 
echo $SHELL 显示当前shell
echo $PATH 显示查找路径
echo $?显示上条指令是否正确 0为对 1为错
 
read 读取键盘的输入把值给变量 
1.带参数:-p -t 
 
如 [rootlocalhost ~ ]#read -p "please input your name :"  name
please input your name :tom
[rootlocalhost ~ ]#echo $name
tom
 
2.不带参数:
[rootlocalhost ~ ]#read a
jkljkljkljkl
[rootlocalhost ~ ]#echo $a
jkljkljkljkl
 
-----------------------------------------------------------------
 
通配符与特殊符号:
 
* 代表 『 0 个到无穷多个』  任意字符
? 代表 『一定有一个』 任意字符
[ ] 同样代表『一定有一个在括号内』的字符(非任意字符)。例如 [abcd] 代表『一定有一个字符, 可能
 
是 a, b, c, d 这四个任何一个』
[ - ] 若有减号在中括号内时,代表『在编码顺序内的所有字符』。例如 [0-9] 代表 0 到 9 之间的所有数
 
字,因为数字的语系编码是连续的!
[^ ] 若中括号内的第一个字符为指数符号 (^) ,那表示『反向选择』,例如 [^abc] 代表 一定有一个字符
 
,只要是非 a, b, c 的其他字符就接受的意思。
 
# 批注符号:这个最常被使用在 script 当中,视为说明!在后的数据均不运行
\ 跳脱符号:将『特殊字符或通配符』还原成一般字符
| 管线 (pipe):分隔两个管线命令的界定(后两节介绍);
; 连续命令下达分隔符:连续性命令的界定 (注意!与管线命令并不相同)
~ 用户的家目录
$ 取用变量前导符:亦即是变量之前需要加的变量取代值
& 工作控制 (job control):将命令变成背景下工作
! 逻辑运算意义上的『非』 not 的意思!
/ 目录符号:路径分隔的符号
>, >> 数据流重导向:输出导向,分别是『取代』与『累加』
<, << 数据流重导向:输入导向 (这两个留待下节介绍)
' ' 单引号,不具有变量置换的功能
" " 具有变量置换的功能!
` ` 两个『 ` 』中间为可以先运行的命令,亦可使用 $( )
( ) 在中间为子 shell 的起始与结束
{ } 在中间为命令区块的组合!
未完待续!!!
 

你可能感兴趣的:(shell,bash)