返回顶部
首页 > 资讯 > 精选 >Shell常见知识有哪些
  • 582
分享到

Shell常见知识有哪些

2023-06-09 20:06:06 582人浏览 泡泡鱼
摘要

小编给大家分享一下shell常见知识有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Shell常见知识一、用户登陆进入系统后的系统环境变量$HOME 使用者自

小编给大家分享一下shell常见知识有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

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=1234
echo \$A 显示为$A 如果不加\将显示为1234
echo \` 显示为`
echo \" 显示为双引号
echo \\ 显示为\

三、` 反引号

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

四、"双引号

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

echo "\""
echo "\$"
echo "\\"
echo "\`"
将分别显示为 " $ \ `

五、其它特殊字符

大家注意到,除了前四个特殊字符外,我将其它的特殊字符都放在一块,这是因为前四个特殊字符在双引号中还是具有特殊含义,所以单独拿出来讲,除此以外的特殊字符如果你要输出这些特殊字符的原形,你就可以用双引号或单引号引起来使其失去特殊含义。
,*,?,[,]对shell有特殊含义 但你可以用双引号引起来输入这些原形
一、if
条件语句 
格式:
if 条件表达式
then #当条件为真时执行以下语句
命令列表
else #为假时执行以下语句
命令列表
fi
if 语句也可以嵌套使用
if
条件表达式1
then
if 条件表达式2
then
命令列表
else
if 条件表达式3
then
命令列表
else
命令列表
fi
fi
else
命令列表
fi
你可以进行多层嵌套 一个if语句一定要跟一个fi 表示该层条件结束否则会造成语法错误结合前面讲的 举例如下:
这里先讲一个条件语句中用到的命令test 表示测试test后面的条件是否为真
if test -f "$1"
then
lpr $1
else
if test -d "$1"
then
cd $1
lpr $1
else
echo "$1不是文件或目录"
fi
fi
以上的例子还可以改成如下所示
if test -f "$1"
then
lpr $1
elif test -d "$1" #elif 同else if
then
(cd
$1;lpr $1)
else
echo "$1不是文件或目录"
fi
以上的例子不知您是否看懂是什么意思吗?
假如我们现在将这个例子保存为prfile
chmod +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=0
i=0
while true #true是系统的关键词 表示真
do
i=`expr $i + 1`
Sum=`expr $Sum + $i`
if [ $i = "100" ]
then
break;
fi
done
echo $i $Sum
最后这个程序显示的是
100 5050
这个程序的运算就是将1到100加起来
下面将这个程序再改动一下
Sum=0
i=0
while [ $i != "100" ]
do
i=`expr $i + 1`
Sum=`expr $Sum + $i`
done
echo $i $Sum
改动后的程序运算结果和上面是一样 但程序比上面的要简练
在这个循环中还可以以until做为测试条件
它正好与while测试的条件相反,也就是当条件为假时将继续执行循环体内的语句,否则就退出循环体,下面还用这个例子.
Sum=0
i=0
until [ $i = "100" ]
do
i=`expr $i + 1`
Sum=`expr $Sum + $i`
done
echo $i $Sum
当i不等于100时循环 就是当条件为假时循环,否则就退出,而第一个例子是当i不等于100
时循环,也就是测试条件为真时循环.
二.for 循环
命令格式:
for 变量 in 名字列表
do
命令列表
done
这里的名字列表是一个由空格分隔的字符串列表,shell在执行for循环时每次依次从名字表中取出一个字符串赋给循环变量作为变量的值.
在写for语句时,也可以省略in 名字列表部分,这表示用当前的位置参数来代替这时的名字列表.
面举个例子,比如在你的电脑中有两个目录,一个是aa,一个是bb在这两个目录中有5个相同的文件,但其中一个目录中的一个或多个文件刚刚修改过,现在我忘记刚才改的是那几个文件
了,那么我靠已知的序码查找。
程序如下:
for File in a1 a2 a3 a4 a5
do
diff aa/$File bb/$File
done
下面再举一个不带名字列表的例子
for
File
do
echo $Filw
done
文件内容保存在a.sh中 并可执行
我们在执行这个shell程序时命令行如下:
a.sh a1 a2 a3 a4 a5
执行结果如下:
a1
a2
a3
a4
a5
大家从这个例子中可以看到命令行的参数被逐一读入一次
三.循环控制语句
break
命令不执行当前循环体内break下面的语句从当前循环退出.
continue
命令是程序在本循体内忽略下面的语句,从循环头开始执行.

以上是“Shell常见知识有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

--结束END--

本文标题: Shell常见知识有哪些

本文链接: https://lsjlt.com/news/257765.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Shell常见知识有哪些
    小编给大家分享一下Shell常见知识有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Shell常见知识一、用户登陆进入系统后的系统环境变量$HOME 使用者自...
    99+
    2023-06-09
  • 常见的JavaScript知识点有哪些
    这篇文章主要讲解了“常见的JavaScript知识点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“常见的JavaScript知识点有哪些”吧!1.声明...
    99+
    2024-04-02
  • Java中锁的常见知识点有哪些
    本篇文章给大家分享的是有关Java中锁的常见知识点有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。锁的概念可重入锁如果锁具备可重入性,则称作为可重入锁。像synchroni...
    99+
    2023-06-05
  • Linux shell知识点有哪些
    小编给大家分享一下Linux shell知识点有哪些,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!入参和默认变量对于shell脚本而言,有些内容是专门用于处理参数的,它们都有特定的含义,例如:/home/shouwang/...
    99+
    2023-06-16
  • Shell变量知识有哪些
    这篇文章主要介绍Shell变量知识有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Shell是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言,涵盖的知识点多...
    99+
    2023-06-04
  • 有哪些Linux shell知识点
    本篇内容主要讲解“有哪些Linux shell知识点”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“有哪些Linux shell知识点”吧!实际上Shell是一个命令解释器,它解释由用户输入的命令...
    99+
    2023-06-09
  • Java常见基础知识面试题有哪些
    今天小编给大家分享一下Java常见基础知识面试题有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、八种基本数据类型的大...
    99+
    2023-06-27
  • linux SHELL的知识点有哪些
    本篇内容主要讲解“linux SHELL的知识点有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“linux SHELL的知识点有哪些”吧!alias显示当前所有的命令别名  ali...
    99+
    2023-06-17
  • shell入门知识点有哪些
    这篇文章主要讲解了“shell入门知识点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“shell入门知识点有哪些”吧!背景一句话概括就是:shell编程就是对一堆Linux命令的逻辑化...
    99+
    2023-06-28
  • shell的基础知识有哪些
    这篇“shell的基础知识有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“shell的基础知识有哪些”文章吧。shell...
    99+
    2023-06-27
  • Shell基础知识点有哪些
    今天小编给大家分享一下Shell基础知识点有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Shell 是一个 C 语言编...
    99+
    2023-06-27
  • Shell常见用法有哪些
    这篇文章主要为大家展示了“Shell常见用法有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Shell常见用法有哪些”这篇文章吧。shell的简单使用最近发现shell脚本在平常工作中简直算...
    99+
    2023-06-09
  • 常见的Java基础语法知识都有哪些
    本篇内容主要讲解“常见的Java基础语法知识都有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“常见的Java基础语法知识都有哪些”吧!  对象:对象是类的一个实例,有状态和行为。  类:类是...
    99+
    2023-06-02
  • shell编程基础知识有哪些
    这篇文章主要介绍了shell编程基础知识有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1、文件类型介绍linux系统中主要包括以下七种文件类型: d 目录 - 普通文件...
    99+
    2023-06-09
  • shell脚本的知识点有哪些
    小编给大家分享一下shell脚本的知识点有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!shell 脚本是区分小写的2.Unix特殊字符有: ( ; $ &...
    99+
    2023-06-09
  • Shell脚本基础知识有哪些
    本篇内容主要讲解“Shell脚本基础知识有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Shell脚本基础知识有哪些”吧!Shell本身是一个用C语言编写的程序,它是用户使用Linux的桥梁...
    99+
    2023-06-09
  • python正则表达式常见的知识点有哪些
    本篇内容主要讲解“python正则表达式常见的知识点有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python正则表达式常见的知识点有哪些”吧!一、介绍正则表达式是一个特殊的字符序列,计算...
    99+
    2023-06-30
  • JavaScript常见标识符有哪些
    这篇文章给大家分享的是有关JavaScript常见标识符有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。JavaScript常见标识符有哪些JavaScript有什么特点1、...
    99+
    2024-04-02
  • CSS的必知常识有哪些
    本篇内容介绍了“CSS的必知常识有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!早期的大多数网站标记几...
    99+
    2024-04-02
  • vue常用知识点有哪些
    这篇文章主要介绍“vue常用知识点有哪些”,在日常操作中,相信很多人在vue常用知识点有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue常用知识点有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧...
    99+
    2023-07-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作