精华内容
下载资源
问答
  • 和现在的开发语言一样,语法上有些差异!三种主要的 Shell 与其...Tshell,在 Linux 下是BASH)、C shell(Berkeley shell,在 Linux 下是TCSH)和 Korn shell(Bourne shell的超集)。这三种 shell 在交谈(interactiv...

    和现在的开发语言一样,语法上有些差异!

    三种主要的 Shell 与其分身

    在大部份的UNIX系统,三种著名且广被支持的shell 是Bourne shell(AT&T shell,在 Linux 下是BASH)、C shell(Berkeley shell,在 Linux 下是TCSH)和 Korn shell(Bourne shell的超集)。这三种 shell 在交谈(interactive)模式下的表现相当类似,但作为命令文件语言时,在语法和执行效率上就有些不同了。

    Bourne shell 是标准的 UNIX shell,以前常被用来做为管理系统之用。大部份的系统管理命令文件,例如 rc start、stop 与shutdown 都是Bourne shell 的命令档,且在单一使用者模式(single user mode)下以 root 签入时它常被系统管理者使用。Bourne shell 是由 AT&T 发展的,以简洁、快速著名。 Bourne shell 提示符号的默认值是 $。

    C shell 是柏克莱大学(Berkeley)所开发的,且加入了一些新特性,如命令列历程(history)、别名(alias)、内建算术、档名完成(filename completion)、和工作控制(job control)。对于常在交谈模式下执行 shell 的使用者而言,他们较喜爱使用 C shell;但对于系统管理者而言,则较偏好以 Bourne shell 来做命令档,因为 Bourne shell 命令档比 C shell 命令档来的简单及快速。C shell 提示符号的默认值是 %。

    Korn shell 是Bourne shell 的超集(superset),由 AT&T 的 David Korn 所开发。它增加了一些特色,比 C shell 更为先进。Korn shell 的特色包括了可编辑的历程、别名、函式、正规表达式万用字符(regular expression wildcard)、内建算术、工作控制(job control)、共作处理(coprocessing)、和特殊的除错功能。Bourne shell 几乎和 Korn shell 完全向上兼容(upward compatible),所以在 Bourne shell 下开发的程序仍能在 Korn shell 上执行。Korn shell 提示符号的默认值也是 $。在 Linux 系统使用的 Korn shell 叫做 pdksh,它是指 Public Domain Korn Shell。

    除了执行效率稍差外,Korn shell 在许多方面都比 Bourne shell 为佳;但是,若将 Korn shell 与 C shell 相比就很困难,因为二者在许多方面都各有所长,就效率和容易使用上看,Korn shell 是优于 C shell,相信许多使用者对于 C Shell 的执行效率都有负面的印象。

    在shell 的语法方面,Korn shell 是比较接近一般程序语言,而且它具有子程序的功能及提供较多的资料型态。至于 Bourne shell,它所拥有的资料型态是三种 shell 中最少的,仅提供字符串变量和布尔型态。在整体考量下 Korn shell 是三者中表现最佳者,其次为 C shell,最后才是 Bourne shell,但是在实际使用中仍有其它应列入考虑的因素,如速度是最重要的选择时,很可能应该采用 Bourne shell,因它是最基本的 shell,执行的速度最快。

    作者: benny_feng 发布日期: 2006-10-17

    tcsh 是近几年崛起的一个免费软件(Linux 下的C shell 其实就是使用 tcsh)执行,它虽然不是UNIX 的标准配备,但是从许多地方您都可以下载到它。如果您是 C shell 的拥护者,笔者建议不妨试试 tcsh,因为您至少可以将它当作是 C shell 来使用。如果您愿意花点时间学习,您还可以享受许多它新增的优越功能,例如:

    1. tcsh 提供了一个命令列(command line)编辑程序。

    2. 提供了命令列补全功能。

    3. 提供了拼字更正功能。它能够自动检测并且更正在命令列拼错的命令或是单字。

    4. 危险命令侦测并提醒的功能,避免您一个不小心执行了rm* 这种杀伤力极大的命令。

    5. 提供常用命令的快捷方式(shortcut)。

    bash 对 Bourne shell 是向下兼容(backward compatible),并融入许多C shell 与Korn shell 的功能。这些功能其实 C shell(当然也包括了tcsh)都有,只是过去 Bourne shell 都未支持。以下笔者将介绍 bash 六点重要的改进(详细的使用说明笔者会在以后的章节介绍):

    1. 工作控制(job contorl)。bash 支持了关于工作的讯号与指令,本章稍后会提及。

    2. 别名功能(aliases)。alias 命令是用来为一个命令建立另一个名称,它的运作就像一个宏,展开成为它所代表的命令。别名并不会替代掉命令的名称,它只是赋予那个命令另一个名字。

    3. 命令历程(command history)。BASH shell 加入了C shell 所提供的命令历程功能,它以 history 工具程序记录了最近您执行过的命令。命令是由 1 开始编号,默认值为500。history 工具程序是一种短期记忆,记录您最近所执行的命令。要看看这些命令,您可以在命令列键入 history,如此将会显示最近执行过之命令的清单,并在前方加上编号。

    这些命令在技术上每个都称为一个事件。事件描述的是一个已经采取的行动(已经被执行的命令)。事件是依照执行的顺序而编号,越近的事件其编号码越大,这些事件都是以它的编号或命令的开头字符来辨认的。history 工具程序让您参照一个先前发生过的事件,将它放在命令列上并允许您执行它。最简单的方法是用上下键一次放一个历程事件在您的命令列上;您并不需要先用 history 显示清单。按一次向上键会将最后一个历程事件放在您的命令列上,再按一次会放入下一个历程事件。按向下键则会将前一个事件放在命令列上。

    展开全文
  • 浅谈Androidlayout_weight引言 在开发android过程,我们经常需要对界面进行按比例进行布局,我们一般都会使用layout_属性来进行设置.今天这篇文章我们就来简单介绍下layout_weight的使用和布局原理....

    浅谈Android中layout_weight

    引言 在开发android过程中,我们经常需要对界面进行按比例进行布局,我们一般都会使用layout_属性来进行设置.今天这篇文章我们就来简单介绍下layout_weight的使用和布局原理.随着做项 ...

    drawable animation

    drawable 动画,帧动画: 1 定义动画xml文件 <?xml version="1.0" encoding="utf-8"?>

    PCL 库安装

    参考资料: http://www.cnblogs.com/newpanderking/articles/4022322.html VS2010+PCL配置 PCL共有两种安装方式 安全安装版,个人配置 ...

    删除右键ATI CATALYST&lpar;R&rpar; Control Center的方法

    http://share.weiyun.com/c47530d3e44ea15b606d4ba6f1b00a28

    Appstore提交 被拒绝

    Reasons 16.1: Apps that present excessively objectionable or crude content will be rejected 16.1 We ...

    jQuery的deferred对象详解(二)

    Deferred对象是由$.Deferred构造的,$.Deferred被实现为简单的工厂模式. $.Deferred的实现 创建三个$.Callbacks对象,分别表示成功done,失败fail,处 ...

    (转)SQL Server2005 异常处理机制&lpar;Begin try Begin Catch&rpar;

    begin try --SQL  end trybegin catch --sql (处理出错动作) end catch我们将可能会出错的sql 写在begin try...end try 之间,若出 ...

    Windows Shell(外壳)编程相关

    Windows Shell名字空间介绍: http://blog.csdn.net/kingcom_xu/article/details/18943 Windows Shell 外壳编程基础教程(C# ...

    python 实现注册程序

    本文介绍用python实现一个模拟注册的程序,详细需求如下: # 写一个注册的程序,输入username,密码,密码确认,输入的账号和密码不能为空,两次输入密码必须一致,用户名不能重复,错误次数4次# ...

    ORACLE 存储过程中保存用户自定义异常信息的一种方式

    1.创建错误日志表: create table REP_LOGS ( log_s_no NUMBER not null, log_date DATE default sysdate not null, ...

    展开全文
  • linux shell 脚本里面如果想得到当前脚本文件存放的绝对路径,也没有太现成的命令可以调用,不过可以通过下面的语句来获取:代码如下复制代码baseDirForScriptSelf=$(cd "$(dirname "$0")"; pwd)echo "full path to ...

    linux shell 脚本里面如果想得到当前脚本文件存放的绝对路径,也没有太现成的命令可以调用,不过可以通过下面的语句来获取:代码如下复制代码

    baseDirForScriptSelf=$(cd "$(dirname "$0")"; pwd)

    echo "full path to currently executed script. is : ${baseDirForScriptSelf}"

    或者

    FULLPATH=$(cd "$(dirname "$0")"; pwd)

    echo "full path to currently executed script. is : ${FULLPATH}"

    BASEDIR=`dirname $FULLPATH`

    echo "parent dir is $BASEDIR"

    这个功能很给力 直接得到绝对路径 把脚本整个目录及上级目录全部挪窝的好东西

    方法二代码如下复制代码

    #!/bin/sh

    name=$0

    echo "name : $name"

    dir=$(dirname ${name})

    echo "dir : $dir"

    path=$(pwd)

    echo "path : $path"

    path=${dir/./${path}}

    echo "path : $path"

    实例

    Shell代码代码如下复制代码#!/bin/sh

    this_dir=`pwd`

    dirname $0|grep "^/" >/dev/null

    if [ $? -eq 0 ];then

    this_dir=`dirname $0`

    else

    dirname $0|grep "^." >/dev/null

    retval=$?

    if [ $retval -eq 0 ];then

    this_dir=`dirname $0|sed "s#^.#$this_dir#"`

    else

    this_dir=`dirname $0|sed "s#^#$this_dir/#"`

    fi

    fi

    echo $this_dir

    当路径中含有小数点时,该方法会有问题,linux中Shell脚本所在目录的绝对路径linux操作系统》(https://www.unjs.com)。修正方法为加入一个判断代码如下复制代码

    #!/bin/sh

    path=$(dirname $0)

    if [ ${path:0:1} == . ]

    then

    path=${path/./$(pwd)}

    fi

    展开全文
  • 今天小编要跟大家分享的文章是关于Linux中shell时间运算和时间差的计算方法。熟悉Linux运维工作的小伙伴们在处理Shell脚本时候,都会遇到时间的处理问题,比如时间的加减以及时间差的计算。下面我们就来看一看,...

    今天小编要跟大家分享的文章是关于Linux中shell时间运算和时间差的计算方法。熟悉Linux运维工作的小伙伴们在处理Shell

    脚本时候,都会遇到时间的处理问题,比如时间的加减以及时间差的计算。下面我们就来看一看,shell时间问题的计算方法。

    1、时间加减

    这里处理方法,是将基础的时间转变为时间戳,然后,需要增加或者改变时间,变成秒。

    如:1990-01-01 01:01:01 加上 1小时 20分

    处理方法:

    a.将基础时间转为时间戳

    time1=$(date +%s -d '1990-01-01 01:01:01')

    echo $time1

    631126861 【时间戳】

    b.将增加时间变成秒

    [root localhost ~]# time2=$((1*60*60+20*60))

    [root localhost ~]# echo $time2

    4800

    c.两个时间相加,计算出结果时间

    time1=$(($time1+$time2))

    time1=$(date +%Y-%m-%d\ %H:%M:%S -d "1970-01-01 UTC $time1 seconds");

    echo $time1

    1990-01-01 02:21:01

    2、时间差计算方法

    如:2010-01-01 与 2009-01-01 11:11:11 时间差

    原理:同样转成时间戳,然后计算天,时,分,秒

    time1=$(($(date +%s -d '2010-01-01') - $(date +%s -d '2009-01-01

    11:11:11')));

    echo time1

    将time1 / 60 秒,就变成分了。

    补充说明:

    shell 单括号运算符号:

    a=$(date);

    等同于:a=date;

    双括号运算符:

    a=$((1+2));

    echo $a;

    等同于:

    a=expr 1 + 2

    以上就是小编今天为大家分享的关于Linux中shell时间运算和时间差的计算方法的文章,希望本篇文章能够对正在从事Linux相关工作的小伙伴们有所帮助。想要了解更多Linux相关知识记得关注达内Linux培训官网最后祝愿小伙伴们工作顺利,成为一名优秀的Linux运维工程师!

    【免责声明:本文图片及文字信息均由小编转载自网络,旨在分享提供阅读,版权归原作者所有,如有侵权请联系我们进行删除。】

    展开全文
  • Unix/Linux下,shell脚本调用sqlplus的几种方式介绍:一、最简单的shell调用sqlplus#!/bin/bashsqlplus -S /nolog > sqlplus.log <conn scott/scottselect sysdate from dual;quitEOF二、sqlplus返回执行结果...
  • SecureCRT或XShell软件 SecureCRT是一款支持SSH(SSH1和SSH2)的终端仿真程序,简单地说是Windows下登录UNIX或Linux服务器主机的软件. Xshell 是一个强大的安全终端模拟软件,它支持SSH1 ... 用echarts写的轨迹图demo ...
  • UNIX Shell 里面比较字符写法-eq 等于; -ne 不等于;-gt 大于; -lt 小于 ;-le 小于等于; -ge 大于等于;-z 空串; -n 非空串;= 两个字符相等; != 两个字符不等无论什么编程语言都离不开条件...
  • Shell 支持 TAB 键命令补齐,输入命令开头字母,按 TAB 键能补齐命令。 简述 命令的参数和选项: 参数和选项的一个共同点就是都以短杠连接,都是用于明确命令的内容的。 命令后面跟着的“选项”(英文options)或...
  • 在本文中,我们将介绍Linux shell中使用的部分基本命令。查看和跳转命令(1)pwd当打开终端时,如果需要自己目前在哪一个目录,可以使用pwd命令,它返回一个绝对的路径(从根“/”开始的路径)。(2)ls使用“ls”命令知道...
  • 格,如下:代码如下[root@MyVPS1697 201407]# netstat -ntpl|grep sshd|grep -v grep |awk -F : '{print $4}'为了解决空格问题,把我所在的3...现在把他们给的shell语句发出来:代码如下netstat -antp | grep sshd| awk ...
  • Linux中编写Shell脚本

    2021-05-11 06:41:35
    目录ShellShell是一个命令解释器,它的作用是解释执行用户输入的命令及程序等。 用户每输入一条命令,Shell就执行一条。这种从键盘输入命令,就可以立即得到回应的对话方式,称为交互的方式。当命令或程序语句不在...
  • then echo "not exists" else echo "JAVA_HOME = $JAVA_HOME" fi 第一个判断 $ORACLE_HOME 是判断当前系统是否存在环境变量 ORACLE_HOME 如果存在就为 TRUE,否则就为 FALSE 。 第二个判断 $JAVA_HOME -z 是一...
  • linux中shell将换行输入到文件

    千次阅读 2021-01-22 18:34:21
    # echo -e "TEST1=test1\nTEST2=\"test2\"" >> test.txt # cat test.txt TEST1=test1 TEST2="test2" 当 -e生效时,下面是生效的 \\ backslash \a alert (BEL) \b backspace ... \e escape
  • Linux中shell是什么

    2021-10-25 21:11:47
    Linux中shell,是指一个面向用户的命令接口,表现形式就是一个可以由用户录入的界面,这个界面也可以反馈运行信息; 二、shelllinux中存在的形式 由于Linux不同于Windows,Linux是内核与界面分离的,它可以脱离...
  • Linux编写shell脚本

    2021-05-11 14:05:55
    shell脚本打印乘法表#!/bin/bashi=1j=1t=0while [ $i -lt 10 ]dot=$jwhile [ $t -le $i ]doecho -n "$t*$i=$(($i*$t)) "t=$(($t+1))doneechoi=$(($i+1))done-le <= -lt = -gt>编写shell程序,该程序能接收用户...
  • Linux中Shell——sbin/nologin的理解

    千次阅读 2021-04-28 16:30:12
    Linux系统shell解析器分为多种,其中我们常用的shell解析器为 /bin/bash、/bin/sh 查看shell可以我们可以使用“chsh -l”或者“cat /etc/shells” chsh -l cat /etc/shells 在这些shell里,有一个特殊的...
  • Linux 中shell 脚本if判断多个条件

    千次阅读 2021-02-09 13:10:32
    Linux 中shell 脚本if判断多个条件 格式如下,在比较时,数字和字符串用不同的比较符号 1.如果a>b且a<c if (( a > b )) && (( a < c )) 或者 if [[ $a > $b ]] && [[ $a < $c...
  • (1)定义shell变量 定义变量时,变量名不加$,如: your_name="runoob.com" 变量名和等号之间不能有空格, 同时,变量名的命名须遵循如下规则: 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。 ...
  • 举例 : 切割nginx的日志 vi runlog.sh #!/bin/bash # 设置日志文件存放目录 logs_path="/var/log/nginx/" backup_path="/var/log/nginx/logs/" ...pid_path="/run/nginx.pid" ...mv ${logs_path}/access.log ${backup_...
  • shift命令用于对参数的移动(左移),通常用于在不知道传入参数个数的情况下依次遍历每个参数然后进行相应处理(常见于Linux中各种程序的启动脚本)。示例1:依次读取输入的参数并打印参数个数:run.sh:#!/bin/bashwhile ...
  • linux基本shell命令实验报告一、 实验目的熟悉Linux的操作环境;了解图形与命令行式两种操作方法;掌握基本Shell命令和vi编辑器的使用。二、 实验内容一、 vi编辑器的使用练习1. 请在 /tmp 这个目录下建立一个名为 ...
  • 使用 取得数组的元素: valuen=${ARRAY_NAME[n]} 取得数组的全部元素: 一次性将数组所有元素的值得到: echo ${ARRAY_NAME[@]} 取得数组元素的个数: length=${#ARRAY_NAME[@]} 或者 length=${#ARRAY_NAME[*]}...
  • Linux中shell,是指一个面向用户的命令接口,表现形式就是一个可以由用户录入的界面,这个界面也可以反馈运行信息; 简单点理解,用户直接面对的是shell,用户把指令告诉shell,然后shell再传输给系统内核,接着...
  • Linux中shell的 set命令 -e -o 选项作用

    千次阅读 2021-03-14 16:20:06
    工作经常在shell脚本看到set的这两个用法,但就像生活的很多事情,习惯导致忽视,直到出现问题才引起关注。 set -e set命令的-e参数,linux自带的说明如下: “Exit immediately if a simple command exits ...
  • 1、第二次实验内容一、实验名称:Linuxshell编程二、实验类型:设计三、实验目的:1 熟悉Linuxshell几种变量使用2 熟练掌握Linuxshell编程几种结构3 熟练掌握Linuxshell脚本的编写四、实验准备参考教材,...
  • 对于linux系统,很多开发人员都不陌生,而linux最被人津津乐道的就是它的命令行操作方式,而这也是它最吸引人的地方,今天我们主要来聊一聊和命令行相关的shell脚本,看看shell脚本都能做哪些大事。shell分为狭义和...
  • 使用Linux的朋友一定熟悉文本界面上的黑底白字和X上的白底黑字,这两种颜色可以说是经典的搭配,清晰明了。但是你也可以根据自己的喜好使字体和背景换个颜色。下面我介绍一下RedHat的字体和背景颜色的改变方法:命令...
  • LINUX-Shell编程实验报告》由会员分享,可在线阅读,更多相关《LINUX-Shell编程实验报告(6页珍藏版)》请在人人文库网上搜索。1、LINUX-Shell编程实验报告LINUX管理与应用课程实验报告一、实验过程1. 编写一个简单...
  • 先看上一文章expect里的脚本:[root@mail root]# more getdata.sh#!/usr/bin/expectset password 123456spawn /usr/bin/scp root@1.1.1.1:/web/backup/kfc-mysql-2010-12-10.bak /web/backup/expect "password"send...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,060,428
精华内容 424,171
关键字:

linux中shell

linux 订阅