小Q:不知不觉,总以为我们很年轻,在年龄栏选择自己的出生日期时,却发现,那个熟悉的年份已经

         跑得这么远。

------------------------------------------------------------------------------------------------

今天开始了shell了,心情挺激动的,即将半个月的时间里,每天从早上到晚上不停歇的坚持,现在终于可以摸到了实战的大招了,真好。基本上今天的内容是shell的特性 变量 特殊符号 配置文件 一些简单的命令和扩展的文档。

shell的特性:

shell 它是一种程序设计语言,是一个命令解释器,就是解释我们输入的命令为内核。
       他又分为两种,图形界面的 shell ,命令行下的 shell。命令行下又有两种:交互式模式就是shell等待你的输入,并且执行你提交的命令;非交互式模式,不与你进行交互,而是读取存放在文件中的令,并且执行它们。
        unix下的shell 有: / bash / sh / ksh / csh;我们遇到的就是这些吧。
        类型:Bourne shell (包括 sh,ksh,and bash)  C shell ( csh)   Korn shell ( ksh) Bourne shell ( sh)

        历史命令:history             存放在各自家目录下的  .bash_history下

        查看命令条数:echo  $HISTORYSIZE        (默认存1000条)

        执行上一条命令:!!                       运行历史第100命令:!100

        补全文件名:tab 一下                       查看:tab  两下

        清除历史命令:history   -c   /bash_history

shell变量:

查看系统变量:env             查看系统变量 + 自定义变量 :set

自定义变量:a = 1234               查看: echo   $a
含有特殊字符的变量:如空格的话需要加单引号, b = ‘我是 sadc’
显示命令结果的变量:需要加反引号 ,      c = ' which  vim '
显示两个变量结合的:需要加双引号 ,      d = “$a”34     或者  e = “$a”“$b”   查看 echo  $e

当我们在 shell 中定义变量之后,然后进入一个子 shell 比如 bash ,会发现变量不存在;
如果我们想让 shell 中的变量在任何子 shell 中都存在,我们需要为变量声明 成一个全局变量              export   a = 3456  在进入子 shell 中,就可以找到了。
而删除环境变量: unset    a

附加文档:

关于shell全局变量,局部变量 :  env   set   export  的关系的文档

http://http://blog.sina.com.cn/s/blog_6842ee7f0100tx3x.html

http://blog.csdn.net/hdutigerkin/article/details/6682871             

http://www.cnblogs.com/dongzhiquan/archive/2012/01/10/2317641.html

环境变量配置文件:

如    PATH     HOME      PS1    bash   等环境变量

root用户:   /etc/profile     

根据文件中的说明,若想新建变量最好新建个文件到 /etc/profile.d/path.sh 下添加之后,重置生效,

重置变量 : source  /etc/profile     

查看方式 : echo  $PATH
                  /etc/bashrc   同样,想自定义最好新建文件,后重置。  

                   PS1 是调整最左侧起始符的,可查看格式: echo $PS1

比如加空格 或 -t  或-W 变为 -w , 自定义时加单引号  也可以在新建文件中改umask多查看文档,理解程序和意思
普通用户 :其配置文件就在各自家目录下,文件名相同 

附加文档

关于配置文档http://www.apelearn.com/bbs/thread-7719-1-1.html

shell中特殊符号:

字符:  *  ?  通配多个  一个字符                    #   注释  

            \      脱义字符                                   |    管道符     

            $     使用变量                                    !$   执行上一条命令
            &     后台运行(sleep  10)                ;  多个命令分隔符             【】   结合式
重定向: >   覆盖源文件内容     >>  增加内容到源文件      

              <  反向重定向        2 > 错误重定向        2 >>  错误信息追加
休眠  : sleep   数字      ctrl  +  z    暂停进程    ctrl  +   c  取消进程
             fg    调到前台运行      bg  调到后台暂停     可加 id 指定

举例  : touch  【1-4】.txt       会建立 1.txt  2.txt  3.txt   4.txt
举例  : ls  #1.txt 只执行 ls ;ls  \#1.txt  就能执行查找#1.txt了  

附加命令: ls  1.txt  |  xrags  rm    查找 1.txt并删除    xrags   把管道前命令的输出作为输入
cut 命令:

 cut 分段显示:
              -d:指定分隔符     需要和某组字节 列表配合,比如 -f
              -f:指定段         cut  -d:-f3,4,5   /etc/passwd 打印文件下的345段
              -c:截取字符      cut  -c   3-7  /etc/passwd      截取每行3 到 7 的字符 

sort 命令:

sort 排序显示:
              -t : 以:为分隔符                                -k2,5   查看2到5行
              -n     按数字排序         -nr  反向排序        -u    去重排序

wc 命令:

wc   :查看行数  单词  和字符 数
选项: -c    --bytes 输出字节数统计              -m    --chars 输出字符数统计
          -l     --lines 输 出 行 数 统 计

uniq 命令:

去重复 :uniq    文件名  

选项 : -c  直观的看去掉多少重复的                    -d   只输出重复的
           只不过这个选项只能去掉临行重复,所以要先排序  sort 文件 |uniq  -c  文件
         关于重定向:echo  "1231231"   >  1.txt     +  cat   1.txt  

                             =    echo  "1231231"  |  tee  1,txt

                            tee  把正确输出信息定向到一个文件中,并且在当前屏幕显示

tr 和 split 命令:

替换:tr    'a-z'   'A-Z'              =              tr ‘[a-z]’ ‘[A-Z]’
           tr    "a-z"   "A-Z"              =              tr    a-z    A-Z
 例如:ls   *.txt  |  tr  ' abDgF'     'ACdGf
分割文件 :spilt   -b  10m   1.txt    以10m为单位分给文件
                 spilt   -l    10     1.txt  new_    以十行为单位分割 1.txt
并分割后的文件new_开头

shell 连接符:

                 && :左边命令执行成功,才回去执行右边命令;
                     ||  :左边命令执行不成功,才回去执行右边命令;
                      ; :不管左边成不成功,都会执行右边命令;

 问题:

wKioL1YBZoKAE6jRAAGlXoovWU0659.jpgwKiom1YBZoOw_GlTAAFxNHZMYoE776.jpg

 

wKioL1YBZoODSajMAABi2Gh7HsA667.jpg

wKiom1YBZobDb7DsAAGvakGXbSU907.jpg

wKioL1YBZoaTKmcDAADPCnbznYg186.jpg

wKiom1YBZofwkJBSAAGDUWYW2EE892.jpg