鸟哥Linux私房菜(基础篇)——第十一章:认识与学习Bash

1.变量的取用与设定

       ●变量的取用:echo

       ●变量的设定规则

             变量与变量内容以一个等号『=』来连结。

             等号两边不能直接接空格符。

             变量名称只能是英文字母和数字,但是开头字符不能是数字。

             变量内容若有空格符可使用双引号『"』或单引号『'』将变量内容结合起来。


2.环境变量的功能

       ●用env观察环境变量与常见环境变量说明。

       ●用set观察所有变量。


3.提示符的设定

       ● \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 时,提示字符为 # ,否则就是 $ 。

finlay@finlay-Lenovo-G470:~$ PS1='[\u\t\w\#]\$'
[finlay09:13:39~8]$pwd
/home/finlay
[finlay09:13:42~9]$who
finlay   tty7         2013-07-13 09:06 (:0)
finlay   pts/0        2013-07-13 09:12 (:0)
[finlay09:13:45~10]$cd

5.?(上一个指令的回传值)


6.export: 自定义发量转成环境发量


7.影响显示结果的语系变量 (locale)


8.变量键盘读取、数组与宣告: read, array, declare

       ●read

        ●declare / typeset

        ●array

finlay@finlay-Lenovo-G470:~$ var[1]="mornimg"
finlay@finlay-Lenovo-G470:~$ var[2]="afternoon"
finlay@finlay-Lenovo-G470:~$ var[3]="evening"
finlay@finlay-Lenovo-G470:~$ echo "${var[1]} : ${var[2]} : ${var[3]}"
mornimg : afternoon : evening

9.文件系统及程序的限制: ulimit


10.命令别名设定: alias, unalias


11.历史命令:history


12.bash 的进站欢迎讯息: /etc/issue, /etc/motd


          除了 /etc/issue 之外还有 /etc/issue.net,这个是提供给 telnet 这个远程登录程序用的。 当我们使用 telnet 连接到主机时,主机的登入画面就会显示 /etc/issue.net 而丌是/etc/issue 呢!
至于如果想要让使用者登入后取得一些讯息,那么可以将讯息加入/etc/motd 里面去。


13.bash 的环境配置文件

       ●login 与 non-login shell

           login shell:取得 bash 时需要完整的登入流程的,就称为 login shell。non-login shell:取得 bash 接口的方法不需要重复登入的举动。两个shell的配置文件数据不一样。


14.终端机的环境设定:stty,set


15.通配符与特殊符号

* 代表『 0 个到无穷多个』任意字符。
代表『 一定有一个』任意字符。
[ ] 同样代表『一定有一个在括号内』的字符(非任意字符)。
[ - ] 若有减号在中括号内时,代表『在编码顺序内的所有字符』。
[^ ] 若中括号内的第一个字符为指数符号 (^) ,那表示『反向选择』。

16.数据流重导向

       ●1> :以覆盖的方法将『正确的数据』输出到指定的档案或装置上。

       ●1>>:以累加癿方法将『正确癿数据』输出到指定的档案或装置上。

       ●2> :以覆盖癿方法将『错诨癿数据』输出到指定的档案或装置上。

       ●2>>:以累加癿方法将『错诨癿数据』输出到指定的档案或装置上。

       ●/dev/null 垃圾桶黑洞装置与特殊写法

[dmtsai@www ~]$ find /home -name .bashrc 2> /dev/null
/home/dmtsai/.bashrc <==只有 stdout 会显示到屏幕上, stderr 被丢弃了

       ●standard input : < 与 <<

finlay@finlay-Lenovo-G470:~$ touch dss
finlay@finlay-Lenovo-G470:~$ ll > ds
finlay@finlay-Lenovo-G470:~$ cat > ds < dss

finlay@finlay-Lenovo-G470:~$ cat < ds <<"eof"
> I
> love
> you
> eof
I
love
you

17.命令执行的判断依据: ; , &&, ||


18.管线命令:pipe

       ●cut

       ●grep

       ●sort:排序

       ●uniq:将排序重复的删除

       ●wc:得到档案字数

       ●tee:双向重导向

[root@www ~]# last | tee last.list | cut -d " " -f1
# 这个范例可以我们将 last 的输出存一份刡 last.list 档案中
[root@www ~]# ls -l /home | tee ~/homefile | more
# 这个范例则是将 ls 的数据存一份到 ~/homefile,同时屏幕也有输出讯息

19.字符转换命令: tr, col, join, paste, expand

       ●tr:删除替换信息

       ●col:替换信息

       ●join

       ●paste:直接粘在一起,用tab隔开

       ●expand:将tab键转换位空格

20.分割命令:split

finlay@finlay-Lenovo-G470:~$ split -b 5k ds
finlay@finlay-Lenovo-G470:~$ cat xa*>>dss

21.参数代换: xargs

       就是在产生某个指令的参数的意思!xargs 可以读入 stdin 的数据,并且以空格符戒断行字符作为分辨,将 stdin 的资料分割成为 arguments 。



posted @ 2013-07-13 10:36  Finlay Liu  阅读(306)  评论(0编辑  收藏  举报