位置: 编程技术 - 正文

Shell常见知识 方便想学习linux shell的彭玉(shell常用命令及示例)

编辑:rootadmin

Shell常见知识

一、用户登陆进入系统后的系统环境变量

$HOME 使用者自己的目录$PATH 执行命令时所搜寻的目录$TZ 时区$MAILCHECK 每隔多少秒检查是否有新的信件$PS1 在命令列时的提示号$PS2 当命令尚未打完时,Shell 要求再输入时的提示号$MANPATH man 指令的搜寻路径

二、特殊变量

$0 这个程序的执行名字$n 这个程序的第n个参数值,n=1..9$* 这个程序的所有参数$# 这个程序的参数个数$$ 这个程序的PID$! 执行上一个指令的PID$? 执行上一个指令的返回值

三、shell中的变元

* 任意字符串? 一个任意字符[abc] a, b, c三者中之一[a-n] 从a到n的任一字符

四、几个特殊字符表示

b 退回c 打印一行时没有换行符 这个我们经常会用到f 换页r 回车t 制表v 垂直制表\ 反斜线本身

五、判断文件的属性

格式:-操作符 filename-e 文件存在返回1, 否则返回0-r 文件可读返回1,否则返回0-w 文件可写返回1,否则返回0-x 文件可执行返回1,否则返回0-o 文件属于用户本人返回1, 否则返回0-z 文件长度为0返回1, 否则返回0.-f 文件为普通文件返回1, 否则返回0-d 文件为目录文件时返回1, 否则返回0

六、测试字符串

字符串1 = 字符串2 当两个字串相等时为真字符串1 != 字符串2 当两个字串不等时为真-n 字符串    当字符串的长度大于0时为真-z 字符串  当字符串的长度为0时为真字符串 当串字符串为非空时为真

七、测试两个整数关系

数字1 -eq 数字2 两数相等为真数字1 -ne 数字2 两数不等为真数字1 -gt 数字2 数字1大于数字2为真数字1 -ge 数字2 数字1大于等于数字2为真数字1 -lt 数字2 数字1小于数字2为真数字1 -le 数字2 数字1小于等于数字2为真

八、逻辑测试

-a  与-o  或! 非shell中的特殊字符有1、$ 美元符2、 反斜杠3、` 反引号4、" 双引号5、,*,?,[,]

下面我一一举列说明

一、$符号1、echo $? 显示的是上一条指令退出状态2、echo "$?" 效果同上3、echo '$?' 显示的是$?4、echo $? 显示的是$?5、echo "$?" 显示的是$?大家可能已经看出 $符号在双引号中具有特殊意义 双引号对$符号不起作用而单引号可以将特殊字符的的特殊意义屏蔽掉,使其能显示为字符本身,反斜杠也可以将特殊字符的特殊含义屏蔽掉,使特殊字符失去特殊含义。

二、 反斜杠

反斜杠的作用是将特殊符号字符的特殊含义屏蔽掉,使其还是原字符A=echo $A 显示为$A 如果不加将显示为echo ` 显示为`echo " 显示为双引号echo \ 显示为

三、` 反引号

反引号的功能是命令替换,将反引号中的字符串做为命令来执行,我们在用shell编程时经常用的到 将系统命令的执行结果赋给一个变量A=`date`echo $A 显示的不是date而是当时的时间串比如有一文件A的内容如下 ABCDEFGabcdefgB=`cat A|grep ` #检索文件A中含有字符串的行echo $B 将显示为echo "$B" 将显示为什么?echo "$B" 将显示为什么?读者自己试试

四、"双引号

在系统中有些特殊字符,为避免引用这些特殊字符 往往用双引号或单引号将这些特殊字符引起来,使其不具有特殊含义。但有一部分特殊字符在引号中还是具有特殊含义,用双引号引起来是不起作用的。本文中所列的前四个特殊字符在双引号中还是特殊字符。为了使其不具有特殊含义一是用单引号引进来二是用反斜线使其失去作用。比如我们想原样输出这些特殊字符echo """echo "$"echo ""echo "`"以上不是你所期望的结果,因为双引号对它们不起作用,你只能这样才能输出这些特殊字符的原形echo '"'echo '$'echo ''echo '`'或echo """echo "$"echo "\"echo "`"将分别显示为 " $ `

五、其它特殊字符

大家注意到,除了前四个特殊字符外,我将其它的特殊字符都放在一块,这是因为前四个特殊字符在双引号中还是具有特殊含义,所以单独拿出来讲,除此以外的特殊字符如果你要输出这些特殊字符的原形,你就可以用双引号或单引号引起来使其失去特殊含义。,*,?,[,]对shell有特殊含义 但你可以用双引号引起来输入这些原形一、if条件语句 格式:if 条件表达式then #当条件为真时执行以下语句命令列表else #为假时执行以下语句命令列表fiif 语句也可以嵌套使用if条件表达式1thenif 条件表达式2then命令列表elseif 条件表达式3then命令列表else命令列表fifielse命令列表fi你可以进行多层嵌套 一个if语句一定要跟一个fi 表示该层条件结束否则会造成语法错误结合前面讲的 举例如下:这里先讲一个条件语句中用到的命令test 表示测试test后面的条件是否为真if test -f "$1"thenlpr $1elseif test -d "$1"thencd $1lpr $1elseecho "$1不是文件或目录"fifi以上的例子还可以改成如下所示if test -f "$1"thenlpr $1elif test -d "$1" #elif 同else ifthen(cd$1;lpr $1)elseecho "$1不是文件或目录"fi 以上的例子不知您是否看懂是什么意思吗?假如我们现在将这个例子保存为prfilechmod +x prfile执行刚才的程序./prfile aaa这个例子是检查你的输入的参数是否是一个文件 如果是就打印 如果是一个目录 先转目录再打印 如果即不是文件也不是目录给出提示二、多重条件测试语句case格式:case 字串 in模式) 命令列表;;模式) 命令列表;;....esac多重条件语句是以case开始以esac结束 中间可以有多个条件列表 功能是测试字串和和里面的模式有没有匹配的,有就执行里面的命令列表 模式也可以是*号 表示任意字串,每个模式里面的最后要心;;双引号结束,否则会发生语法错误。现举例如下:case $1 in*.c)cc $1*.txt)lpr $1*)echo "未知的类型"esac假如将以上内容保存在文件abc中chmod +x abc执行 ./abc a.c将会对文件a.c进行编译执行 ./abc readme.txt 将会把文件通过打印机假如我将以上内容改一下,你是否会知道它的执行结果?case $1 in*)cc $1*.txt)lpr $1*.c)echo"未知的类型"esac一. while 循环while 命令格式while 条件表do命令表done执行过程Shell首先执行条件表,如果条件表的最后一条语句的退出状态为零,则执行盾环体内的命令表,执行完后,再检查条件表,如果退出状态为零将继续执行,如此循环往复直到条件表的最后一条语句的退出状态非零.退出状态为零就是条件为真True.举例说明 假如shell文件的内容如下:Sum=0i=0while true #true是系统的关键词 表示真doi=`expr $i + 1`Sum=`expr $Sum + $i`if [ $i = "" ]thenbreak;fidoneecho $i $Sum最后这个程序显示的是 这个程序的运算就是将1到加起来下面将这个程序再改动一下Sum=0i=0while [ $i != "" ]doi=`expr $i + 1`Sum=`expr $Sum + $i`doneecho $i $Sum改动后的程序运算结果和上面是一样 但程序比上面的要简练在这个循环中还可以以until做为测试条件它正好与while测试的条件相反,也就是当条件为假时将继续执行循环体内的语句,否则就退出循环体,下面还用这个例子.Sum=0i=0until [ $i = "" ]doi=`expr $i + 1`Sum=`expr $Sum + $i`doneecho $i $Sum当i不等于时循环 就是当条件为假时循环,否则就退出,而第一个例子是当i不等于时循环,也就是测试条件为真时循环.二.for 循环命令格式:for 变量 in 名字列表do命令列表done这里的名字列表是一个由空格分隔的字符串列表,shell在执行for循环时每次依次从名字表中取出一个字符串赋给循环变量作为变量的值.在写for语句时,也可以省略in 名字列表部分,这表示用当前的位置参数来代替这时的名字列表.面举个例子,比如在你的电脑中有两个目录,一个是aa,一个是bb在这两个目录中有5个相同的文件,但其中一个目录中的一个或多个文件刚刚修改过,现在我忘记刚才改的是那几个文件了,那么我靠已知的序码查找。程序如下:for File in a1 a2 a3 a4 a5dodiff aa/$File bb/$Filedone下面再举一个不带名字列表的例子forFiledoecho $Filwdone文件内容保存在a.sh中 并可执行我们在执行这个shell程序时命令行如下:a.sh a1 a2 a3 a4 a5执行结果如下:a1a2a3a4a5大家从这个例子中可以看到命令行的参数被逐一读入一次三.循环控制语句break命令不执行当前循环体内break下面的语句从当前循环退出.continue命令是程序在本循体内忽略下面的语句,从循环头开始执行.

推荐整理分享Shell常见知识 方便想学习linux shell的彭玉(shell常用命令及示例),希望有所帮助,仅作参考,欢迎阅读内容。

Shell常见知识 方便想学习linux shell的彭玉(shell常用命令及示例)

文章相关热门搜索词:shell常用,shell实例讲解,shell用法,shell详解,shell常用语句,shell常用命令及示例,shell基础知识,shell常用命令及示例,内容如对您有帮助,希望把文章链接给更多的朋友!

sed模式空间和暂存空间的区别 sed编辑器逐行处理文件,并将输出结果打印到屏幕上。sed命令将当前处理的行读入模式空间(patternspace)进行处理,sed在该行上执行完所有命令后就将

对Shell 脚本加密的方法 用shell脚本对系统进行自动化维护,简单,便捷而且可移植性好.但shell脚本是可读写的,很有可能会泄露敏感信息,如用户名,密码,路径,IP等.同样,在shell脚本

sed初学者实用说明 例如,在多个系统、应用程序安装之后,我们往往需要对很多配置文件进行修改,用vi编辑器意味着耗费时间、重复劳动,而sed就可将我们从繁重的重

标签: shell常用命令及示例

本文链接地址:https://www.jiuchutong.com/biancheng/378359.html 转载请保留说明!

上一篇:ping发现掉包报警的shell代码(ping大包丢包小包不丢包)

下一篇:对Shell 脚本加密的方法(shell脚本加密不可破解)

  • 制造企业印花税降为50%
  • 增值税纳税申报表在哪里打印
  • 服装公司的吊牌是什么
  • 增值税加计扣除政策
  • 房地产企业预缴增值税怎么计算
  • 增值税留抵退税政策2022
  • 采取简易计税外经证核销需要哪些资料?
  • 未做工程税费如何计算
  • 净残值可以随意更改吗
  • 固定资产所取得的成本
  • 应交税金成负数
  • 公司车辆计提是含税还是不含税?
  • 账本印花税如何申报缴纳
  • 工厂出租厂房税率
  • 应交增值税计提表表格
  • 免抵退税应退税额
  • 环境保护税由什么部门负责征收管理
  • 税盘被锁应该怎么办?
  • 已经计提的增值税怎么退
  • 企业购买自行车记账什么科目
  • 电脑开机后无显示,但主机电源指示灯长亮
  • 技嘉主板无法安装网卡驱动
  • php get post
  • 股票涨幅公式怎么写
  • 未取得发票入账违反什么规定
  • 增值税税率为零的有哪些项目
  • au_.exe是什么进程
  • 债权类股票有哪些
  • php实现用户登录
  • 贷款损失准备是什么科目借贷方向
  • 现金折扣的账务处理最新规定
  • 非上市公司股票期权个人所得税
  • php判断数组是否为空的函数
  • 会计申报需要哪些数据
  • webpack配置publicpath
  • javaweb.xml配置文件
  • 中国烟草资产负债表
  • 无偿划转的资产交什么税收
  • 未开票收入是否含税
  • 个税查询和实发工资不符合
  • 补充医疗保险会查hiv吗
  • 国税办税人员怎么解绑
  • 核定征收的企业需要汇算清缴吗
  • 契税应该计入税金及附加吗
  • 为什么银行结息不加入账户
  • 请问母公司如何称呼
  • 公司转投资是什么意思
  • 房地产增值税发票是什么意思
  • 企业自建厂房需要有资质吗
  • win7旗舰版系统重装
  • 卸载步骤
  • win7手动装系统步骤
  • linux mv命令详解
  • 开机密码忘记了怎么打开手机
  • win8怎么看windows
  • npfmntor.exe - npfmntor是什么进程 有什么用
  • linux系统管理命令有哪些
  • /proc目录造成linux根目录爆满
  • linux哪里好
  • jquery ztree实现右键收藏功能
  • 置顶在线
  • 基于springboot的毕设
  • vue使用mixin
  • unity入门教学
  • android基础知识总结
  • 用python写个脚本
  • unity3d快速入门
  • javascript教程完整版
  • javascript怎么学
  • js判断浏览器内核和版本
  • 前端开发的工作流程
  • javascript有哪些常用的属性和方法
  • python 电话号码
  • 最简单的十个菜
  • 怎么算税额和单位税额
  • 供电企业向电厂收取的并网服务费
  • 税务工作者发展现状
  • 城市建设维护税减免政策
  • 河北省社保证明网上查询
  • 大排量车保险多少钱
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设