预览模式: 普通 | 列表

Linux Shell 读书笔记

1. 什么是Shell
    答: shell 是用户与Linux内核之间的接口。我们在提示命令下输入命令都是由Shell解析后传给Linux内核。shell 是一个命令语言解释器(command-language interpreter)。拥有自己内建的 shell 命令集。

2.特殊字符
   1) 以#开头是注释,注释也可以出现在命令后面  注释行前面也可以有空白符.分割符允许在同一行里有两个或更多的命令

3. touch 建文件 ;  ls -al 查看隐藏文件 ;   cd . 转到当前目录;  cd .. 转到父目录


4. Bash变量是无类型的


5.5.2. 转义

转义是引用单字符的方法.在单个字符前面的转义符(\)告诉shell不必特殊解释这个字符,只把它当成字面上的意思。

    
但在一些命令和软件包里,比如说echo和sed,转义一个字符可能会引起一个相反的效果--因为它们可能触发那个字符的特殊意思。

一些转义字符的表示的特殊意思

和echo,sed连用时:
\n
表示新行

\r
表示回车

\t
表示水平的制表符

\v
表示垂直的制表符

\b
表示后退符

\a
表示“警告”(蜂鸣或是闪动)

\0xx
翻译成ASCII码为八进制0xx所表示的字符

6.退出和退出状态
在一个脚本里,exit nnn 命令将会返回shell一个nnn的退出状态码。(nnn必须是一个在0-255范围的十进制整数)。

脚本结束没有exit,不带参数的exit和exit $?三者是等价的。

7.3. 其它比较操作符

二元比较操作符比较两个变量或是数值。注意整数和字符串比较的分别。

整数比较

-eq

等于

if [ "$a" -eq "$b" ]

-ne
不等于

if [ "$a" -ne "$b" ]

-gt
大于

if [ "$a" -gt "$b" ]

-ge
大于等于

if [ "$a" -ge "$b" ]

-lt
小于

if [ "$a" -lt "$b" ]

-le
小于等于

if [ "$a" -le "$b" ]

<
小于(在双括号里使用)

(("$a" < "$b"))

<=
小于等于 (在双括号里使用)

(("$a" <= "$b"))

>
大于 (在双括号里使用)

(("$a" > "$b"))

>=
大于等于(在双括号里使用)

(("$a" >= "$b"))

字符串比较

=

等于

if [ "$a" = "$b" ]

==
等于

if [ "$a" == "$b" ]

它和=是同义词。

    
==比较操作符在一个双方括号测试和一个单方括号号里意思不同。
   1 [[ $a == z* ]]    # 如果变量$a以字符"z"开始(模式匹配)则为真.
   2 [[ $a == "z*" ]]  # 如果变量$a与z*(字面上的匹配)相等则为真.
   3
   4 [ $a == z* ]      # 文件扩展和单元分割有效.
   5 [ "$a" == "z*" ]  # 如果变量$a与z*(字面上的匹配)相等则为真.
   6
   7 # 多谢Stéphane Chazelas

!=
不相等

if [ "$a" != "$b" ]

操作符在[[ ... ]]结构里使用模式匹配.

<
小于,依照ASCII字符排列顺序

if [[ "$a" < "$b" ]]

if [ "$a" \< "$b" ]

注意"<"字符在[ ] 结构里需要转义

>
大于,依照ASCII字符排列顺序

if [[ "$a" > "$b" ]]

if [ "$a" \> "$b" ]

注意">"字符在[ ] 结构里需要转义.

参考例子 26-11 中这种比较的一个应用.

-z
字符串为"null",即是指字符串长度为零。

-n
字符串不为"null",即长度不为零.

查看更多...

分类:Linux | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 25

Oracle 连接相关

1.连接Oracle方式两种是专用服务器和共享服务器
2.TNS代表透明网络底层(Transparent Network Substrate),这是Oracle客户中处理远程连接的“基础”软件。
3.如果服务器DBA安装并配置了Oracle Net,并且有一个监听器在端口1521上监听连接请求,就会收到这个连接。在网络环境中,我们会在服务器上运行一个称为TNS监听器的进程。就是这个监听器进程能让我们与数据库物理连接。

查看更多...

Tags: oracle

分类:DataBase | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 36

Oracle锁定策略总结

1. oracle只在修改时才对数据加行级锁。正常情况 下不会升级到块级锁或表级锁
2. 如果是读数据,Oracle绝不会对数据锁定。
3. 写入器(writer)不会阻塞读取器(Reader).
4. 写入器想定某行数据,但另一个写入器已经锁定这行数据,此时该写入器才会被阻塞。
5. 读取器绝对不会阻塞写入器。
6. 如果是读取时数据时就锁定,叫做共享锁,oracle 不正在这种。

查看更多...

Tags: oracle

分类:DataBase | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 75

10月1号感想

今天是2011年10月1号,我没回家,跑到图书馆看书去了,竟然图书馆插座没电,悲剧中

Tags: 生活

分类:Other | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 52

Oracle 删除重复行

delete from table where rowid not in (select min(rowid) from table group by column);

Tags: oracle

分类:DataBase | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 16

个人博客开通了

今天是2011年09月30号,明天就是10月1号长假了,终于博客重新开张了,请多支持!

Tags: 博客

分类:Other | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 13