第 十 二 天(上) : shell 入 门 和 简 单 的 命 令

小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://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 连接符:

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

问题:

时间: 2024-07-29 17:32:39

第 十 二 天(上) : shell 入 门 和 简 单 的 命 令的相关文章

springMVC3学习(十二)--文件上传优化CommonsMultipartResolver

基于上一篇文件上传发现效率很慢,我们应该对它进行优化  使用springMVC对文件上传的解析器 来处理文件上传的时候需要在spring的applicationContext里面加上springMVC提供的MultipartResolver的申明 这样客户端请求的时候 springMVC会检查request里面是否包含多媒体信息 如果包含了就会使用MultipartResolver进行解析, springMVC会使用一个支持文件  处理的MultipartHttpServletRequest来包

Java Web(十二) commons-fileupload上传下载

今天心态正常...继续努力.. --WH 一.上传原理和代码分析. 上传:我们把需要上传的资源,发送给服务器,在服务器上保存下来. 下载:下载某一个资源时,将服务器上的该资源发送给浏览器. 难点:服务器端获取资源时比较麻烦, 浏览器端 注意:enctype=multipart/form-data:该属性表明发送的请求体的内容是多表单元素的,通俗点讲,就是有各种各样的数据,可能有二进制数据,也可能有表单数据,等等,所以使用该属性也进行其区分,发送的格式如下(使用火狐中的Firebug插件进行捕捉的

第 三 十 二 天:shell 编 程 之 分 发 系 统 (expect)

小Q:所谓爱国心,是指你身为这个国家的国民,对于这个国家,应当比对其他 一切的国家感情更深厚.                              -- 萧伯纳 ======================================================================= 一:前言 如今一些比较大的企业,大都使用了负载均衡,而有时因为一些程序要更改,或者有些bug 要修改,如果仅是几台机子的话,我们把已经改好的程序拷过去,或者rsync远程推送一 下,或者网

第 三 十 二 天:shell 编 程 之 告 警 系 统

小Q:一滴水只有放进大海才不会干涸,一个人只有当他把自己和事业融合一起 的时候,才最有力量.                                  --- 雷 锋 一:前言 运维过程:主要监控我们的服务器,及时解决发生的故障,所以给他定制个可以发邮件或 短信的告警系统是必不可少的:前面我们定制过自己的邮件服务器,也定制过使用第三方 的监控软件实现自己的邮件或者短信报警方法: 但有时我们需要自己定制个属于自己的告警系统,针对性强而且有保障: 我们可以使用学过的shell为不同需求定制各

前端编程提高之旅(十二)----position置入值应用

这次内推项目用到的遮罩及其页面下方按钮都涉及一个概念position置入值得概念.效果图如下: 一个元素position属性不是默认值static,那么该元素被称为定位元素.定位的元素生成定位框,其定位基于四个特性(置入值):'top','right','bottom','left'. 现在的问题在于当置入值在声明与否起什么作用.    一.声明置入值得情形    其置入值的参照物即为最近的申明了"position"为"absolute\relative\fixed的祖先元素

How tomcat works 读书笔记十二 StandardContext 上

在tomcat4中,StandardContext.java是最大的一个类,有117k.废话不说,开始分析吧. 其实要分析StandardContext,也就主要分析两个方法,一个start,一个invoke. 两个变量 这里首先咱们得说两个boolean型的变量available,configured. 先说available,它表示了StandardContext是否可用,初始值为false.若StandardContext启动成功,其值就变为true;另外各种原因都会导致StandardC

2018-07-30 第三十二课

第三十二次课 shell编程(二) 目录 十五.shell中的函数 十六.shell中的数组 十七.告警系统需求分析 十八.告警系统主脚本 十九.告警系统配置文件 二十.告警系统监控项目 二十一.告警系统邮件引擎 二十二.运行告警系统 十五.shell中的函数 函数就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用到这段代码时直接调用这个小单元的名字即可.定义函数必须要放在最前面.定义好的函数相当于是命令. 语法格式 //name属性定义了赋予函数的唯一名称.脚本中定义的每个函数

【转】抓包工具Fiddler的使用教程(十二)下:Fiddler抓取HTTPS

在教程十二(上),我们也了解了HTTPS协议,该教程就和大家分享Fiddler如何抓取HTTPS 抓包工具Fiddler的使用教程(十二):[转载]HTTPS协议 再次回忆一下关键内容: iddler如何在服务器与客户端之间充当第三者呢? 服务器->客户端:Fiddler接收到服务器发送的密文, 用对称密钥解开, 获得服务器发送的明文.再次加密, 发送给客户端. 客户端->服务端:客户端用对称密钥加密,被Fiddler截获后,解密获得明文.再次加密,发送给服务器端.由于Fiddler一直拥有通

从零开始学习PYTHON3讲义(十二)画一颗心送给你

(内容需要,本讲使用了大量在线公式,如果因为转帖网站不支持公式无法显示的情况,欢迎访问原始博客.) <从零开始PYTHON3>第十二讲 上一节课我们主要讲解了数值计算和符号计算.数值计算的结果,很常用的目的之一就是用于绘制图像,从图像中寻找公式的更多内在规律. Python科学绘图 科学绘图是计算机图形学的一个重要分支.同其它绘图方式相比,更简单易用,能让使用者把工作的主要精力集注在公式和算法上而不是绘图本身.此外科学绘图的工具包普遍精度更高,数据.图的对应关系准确,从而保证基于图的研究工作顺