shell学习

概述

走近 shell

  1. 简介
  1. shell能干什么?
    a. 解决重复性工作的利器,可以批量处理相同类型的工作
    b. 可以将命令集合,从而一键完成一项工作
  2. shell和shell脚本的区别:
    a. shell,是用户和kernel之间的代理,解释命令并负责将命令传递给kernel。我们在终端上输入ls、rm等命令,这个命令行程序就是shell。
    b. shell脚本,使用shell编写的小工具。shell也是一种编程语言,具备编程语言的基本要素。shell区别于编译型语言,是解释型语言(或叫脚本语言)。

命令行程序是怎么工作的,我们无需关注,与我们紧密相关的是shell脚本,所以下面对shell脚本做下简单介绍:

  1. 以#开头的单行文是注释
  2. shell脚本文件
    a. 可以有后缀.sh,也可以没有后缀
    b. 第一行#!(Shebang符号)后指定了用哪种shell解释器执行脚本。#!符号读作 Shebang或者Sha-bang,中文名称是“释伴”,同时也是Shebang的音译。Unix术语中,#通常称为sharp、hash或mesh,而!常常称为bang。
    c. #!/bin/bash和#!/bin/sh编程是有差异的,在实际编程时注意体会
  3. 变量
    a. 变量赋值时,=左右不能有空格,否则会把变量名字识别为命令
    b. 环境变量:由export关键字处理过的变量叫做环境变量
  4. 参考文件
    shell脚本中#!符号
    shell中的#!符号
    shell和shell脚本的区别
    shell简介
  1. 主流shell有3种,如下:
名字作者简介优点缺点
Bourne shell (sh)Steven BourneUNIX 最初使用的 shell 并且在每种 UNIX 上都可以使用在 shell 编程方面相当优秀但在处理与用户的交互方面做得不如其他几种 shell
C shell (csh)Bill Joy1. 更多的考虑了用户界面的友好性
2. 支持像命令补齐(command-line completion)等一些 Bourne shell 所不支持的特性
C shell的语法和 C 语言很相似,对于C程序员更容易上手普遍认为C shell 的编程接口做的不如 Bourne shell
Korn shell (ksh)Dave Korn集合了 C shell 和 Bourne shell 的优点并且和 Bourne shell 完全兼容,收费

查询当前使用的shell的方法

  1. Linux上常见的shell,是基于上面3种主流shell做的扩展,如下:
名字简介
bashBourne Again shell,sh的扩展,大多数Linux 系统的缺省 shell,遵循GPL协定
tcshcsh 的扩展
pdkshPublic Domain Korn shell, ksh 的扩展

linux bash

bash用的比较多,下面着重看看其特点

序号特性描述例子
1command line completion使用Tab可尝试进行命令对齐
2通配符模糊匹配上目标文件、某一类型文件(比如所有的*.doc文件、所有的*.c文件)
3命令历史记录用上方向键和下方向键可以查找执行过的命令
history n显示最后的n条历史命令
4命令别名让长命令变成短命令,可以少输入一些字符但可以实现目的i. 为经常使用的长命令添加一个别名
1. ~$ alias open_read='cd ~/svn/testcode/open_read’
2. ~$ open_read
3. ~/svn/testcode/open_read$
ii. 取消别名的方法:unalias opne_read
iii. 查看别名是否添加成功:命令行中输入alias,将显示当前已定义的所有别名
iv. 我们经常使用的ll也是alias的一个实例:alias ll=‘ls -alF’
5管道多命令输入输出间的纽带
6作业控制可以让进程在后台或者前台重新执行。这个特性极大地方便了这样的场景,比方我要查找某个文件,2s时间内都没有出来,那我可以让该进程在后台进行,这样就可以继续与shell交互干其他事情了10:47:35/ find ./ -name “test” > find.out
^Z
[1]+ 已停止 find ./ -name “test” > find.out10:47:43/
bg
[1]+ find ./ -name “test” > find.out &
10:47:46/
[1]+ 完成 find ./ -name “test” > find.out
7命令提示符可以根据需要改变shell命令提示符例如,当我比较关注时间的时候,可以将提示符修改为时间<不关注时间的时候,没有必要做修改,个人感觉不好定位到执行上一条命令的位置>
8个性化配置bash可以修改命令提示符等

参考:shell语言介绍

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值