Chinaunix首页 | 论坛 | 博客
  • 博客访问: 149014
  • 博文数量: 40
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 908
  • 用 户 组: 普通用户
  • 注册时间: 2013-09-03 11:03
个人简介

学习linux

文章分类
文章存档

2014年(7)

2013年(33)

我的朋友

分类: LINUX

2013-09-08 10:58:14

1. shell的变量
    由于Linux是多人多任务系统,所以每个人都是用的shell,但是变量不同,所以命令产生效果就会不同。例如都执行mail,但读取的都是
    自己的邮件档案(依据是MAIL变量)。PATH则是影响执行文件搜索路径的变量。
    echo用于显示变量,而a=b直接给变量赋值,unset可以取消某个变量。

    注:在shell中执行命令,会打开子程序,产生新的shell,但只有环境变量可以继承,父shell自定义的变量不能继承。
    env用于观察环境变量,set用于观察所有变量。
    export用于将自定义变量变为环境变量,declare -x 也有这样的功能。

    shell脚本可以用read -p "XXX" -t time XXX ,将用户输入变为XXX变量。
    declare可以定义后面变量的类型,-a  array,-i  int,(这样才可算术运算,因为默认都是字符串)。
    
    shell登入有两种方式,login和nonlogin,例如xwindow中的终端就是nonlogin,这两种读取配置文件不同。
    login shell,会读取/etc/profile(系统配置,不要更改,还会调用/etc/profile.d/*.sh),~/.bash_profile或者~/.profile
                      或者~/.bash_login(用户配置,只会读取其中一个)。
    更改这些文件后,可以用读取环境配置的指令source,来立即更新。(小数点.也可以)
    nonlogin shell,仅会读取~/.bashrc

    其它相关的配置文件:/etc/man.config, ~/.bash_logout

2. 数据流重定向:
    标准输入stdin,代码0,符号<或<<          (重定向键盘输入)
    标准输出stdout,代码1,符号>或>>        (<是覆盖,<<是累加,下面类似
    标准错误stderr,代码2,符号2>或2>>    (要想不显示,可以重定向到/dev/null)
    
    如果要将1和2都重定向到一个文件,find xxx >a 2>&1

3. 正规表示法
     正规表示法就是利用特殊字符的辅助,以一行为单位对文本进行处理,达到搜寻,删除,替代特定字符串的功能。
     像grep,awk,sed都支持,但cp,ls都是不支持的,所以这些指令都只能使用bash内建的通配符而已,功能有限。
    
    a. 搜索特定字符串,显示行数:grep -n;反向搜索,显示行数,grep -vn
    b. 利用[]搜索集合字符,grep -n 't[ae]e' filename,或者集合字符的反向,grep -n 't[^ae]e' filename,([^a-z]则表示不含小写字母)
    c. 指定行首或行尾字符串,grep -n '^the' filename ; grep -n 'the$' filename
    d. 通配符,*表示可以没有或有,.表示一定有一个或多个。grep -n 'g..d' filename
    e. 一定范围得连续个字符,grep -n 'go\{2,5\}d' filename ;(2到5个o,因为{}有特殊含义,所以要用\进行转义)

4. sed和awk运用:
    可以用man sed与man awk查看,sed主要对包含特定字符串的行进行操作,而awk主要对行中的字段进行操作 ($1,$2,$3,...)。

5. shell编程:
    其实shell编程和C语言编程差不多,都是结构化,流程化编程语言,但C程序重在输入,运算,输出;而shell重在利用命令操作文件,字符串。

    a. 流程控制:任何结构化编程语言都要流程控制,不过java等面向对象语言一般都放在了函数内部。
                        条件判断,if...then; case...esac; 
                        循环,while...do...done; for...do...done;
    b. 函数:function
    c. 字符串变量,数值运算,判断式,默认参数($0,$1...)
    
    
    
阅读(1273) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

7大爷2013-09-09 10:27:51