一、SHELL简介

①什么是SHELL

答:一个作为用户与LINUX系统之间的操作接口程序,允许用户向操作系统输入需要执行的命令。

一种高级、解释性的程序语言。

②SHELL的种类

③SHELL的执行

.   *.sh

④命令别名功能

设置别名:alias

取消别名:unalias

⑤管道

1、 利用管道和wc命令,计算文件list中的行数、单词数和字符数:cat list | wc.

2、利用管道和grep命令,在上面建立的文件list中查找字符串list:cat list | grep list.

3、设置环境变量PATH的值,把当前目录加入到命令搜索路径中去:PATH=“$PATH:.”

二、SHELL程序设计语法

(说明:1、使用前部需要声明。2、默认是字符串类型。3、区分大小写。)

1)变量

①赋值的方法

方法一:a=9+1,a=guofeng,等号左右时不能有空格的,他们都是以字符串的形式赋值

方法二:read a ,通过键盘的输入

②变量的引用

一般用’$’,来引用,如有一个 guofeng 变量,输出它为,echo $guofeng

举例:   1、echo "Hello $LOGNAME, it's nice talking to you."     输出用户名(说明:双引号中的 ‘$变量’ 是会被替换的,想输出‘$变量’只要加一个’/’转义一下。。。但是单引号里面的内容都是当做字符串输出。。。而到引号则是回去执行里面的命令。)

2、echo "Your present working directory is `pwd`."    输出当前的工作路径(有到引号)

3、echo "You are working on a machine called `uname -n`."     输出服务器名

4、echo The name of this script is $0.    显示命令名

5、echo The arguments are $*.    显示所有的参数行,$? 为前一个命令的返回

6、echo The first argument is $1.     显示第一个参数

7、echo The number of arguments is $#.   显示参数的个数

8、set $(date)    赋值命令行为日期

2)if语句(可用 [] 或 test 来判断)

①基本结构

if  [   条件1  ];  then

代码;

elif  [   条件2  ];  then

代码;

elif  [   条件3  ];  then

代码;

else

代码;

fi

(注意,[],必须与判断条件之间留空格。)

②字符串比较

③算数比较

-eq:==

-ne:!=

-gt:>

-ge:>=

-lt:<

-le:<=

!expression:true  or   false

④文件测试

3)case、for、while/until语句

1、case使用举例:read choice

case "$choice" in

N) echo "please input a new filename:"

执行语句

;;

E) echo "pleas input a filename:"

执行语句

;;

Esac

2、for使用举例:for((i=1;i<10;i++))

do

echo $i

done

或者for i in 1 2 3 4 5 6 7 8 9

do

echo $i

done

3、while使用举例

index=1

while [ $index -le 100 ]

do执行语句

index=$(($index +1))

done

4)函数

定义:

get_return()

{

echo -e "Press return /c"

read x

return 0

}

调用:

get_return

5)内嵌命令

1、eval:  eval echo hello,输出hello,该命令将其参数连接成命令,并交由shell执行

2、exec: exec . another.sh  用 . another.sh替换掉当前的SHELL

3、expr,let: 表达式赋值

expr: expr `guoefng = 1 + 1` ,guofeng的值即为2.

let: let guofeng=(1+3)*3,guofeng的值即为12,,,(i=1, (( i+=4)) ) 4、echo:  -n 去掉后面的换行符 ,  -e使用字符串的/为转移符 5、read read -a friends     //-a  按数组形式输入 echo "Say hi to ${friends[2]}." 6、trap: trap `rm –rf  guofeng.c` EXIT,当你的shell程序退出时,会自动删除当前目录下的该文件 7、umask:设置用户访问文件的默认属性,umask 0666| 8、times:用户运行命令的时间  times ll 9、type:查询命令是否有效  type ls

linux shell期末测试,LINUX期末复习---SHELL编程相关推荐

  1. linux开发板测试,Linux 开发板常规测试

    [正点原子]I.MX6U用户快速体验V1.2.pdf 1. LED 与蜂鸣器测试 LED 测试 echo none > /sys/class/leds/sys-led/trigger # 改变 ...

  2. linux odbc 数据源测试,linux操作系统配置ODBC数据源

    1.安装ODBC数据包,可以通过手工编译的方式也可以通过rpm包的方式进行安装,本文选择rpm包的安装方式: [root@boserver odbc]# ls -l 总计 1656 -rw-r--r- ...

  3. linux音频驱动程序测试,Linux声卡驱动移植和测试

    一.分析驱动程序,根据开发板修改代码 代码太长,就不贴了,几个注意点: 1. 查看开发板原理图和S3C2410的datasheet,UDA1341的L3MODE.L3DATA.L3CLOCK分别与S3 ...

  4. linux ssd iops测试,Linux系统硬盘的IOPS测试

    Linux系统硬盘的IOPS测试 什么是IOPS? IOPS (英文:Input/Output Operations Per Second),即每秒进行读写(I/O)操作的次数,多用于数据库等场合,衡 ...

  5. linux cpu 主频测试,linux cpu 主频

    SCC(超级计算集群)简介 SCC概述 超级计算集群(Super Computing Cluster,SCC)使用高速RDMA网络互联的CPU以及GPU等异构加速设备,面向高性能计算.人工智能/机器学 ...

  6. linux who命令测试,Linux中的who命令详细示例

    who是一个命令行实用程序,可打印当前登录用户的列表.它还可以显示当前的运行级别,上次系统引导的时间等.在本文中,我们解释展示了GNU coreutils软件包中捆绑的who命令用法示例. 如何使用w ...

  7. linux下无线网卡测试,Linux C程序如何检测WIFI无线USB网卡是否可用?

    最新做一个WIFI应用项目.如何检测WIFI USB设备是否插上了呢?特此共享. 第一种方法,采用读取文件的方式.在linux下,任何一种设备都可看成文件.通过分析相关文件信息,可得知WIFI设备是否 ...

  8. linux读写文件测试,Linux下各种主要文件系统的读写性能测试

    1.不用说,tmpfs是最快的,呵呵 2.ext2 写测试: [Copy to clipboard] [ - ] CODE: debian:/mnt/sda1# time dd if=/dev/zer ...

  9. linux磁盘配额测试,linux磁盘配额练习题

    1)建立测试组gtest,测试用户test1,test2,test3以上两个测试用户的初始组为gtest 参考答案: groupadd gtest useradd -m -g gtest test1 ...

最新文章

  1. O“.NET研究”bjective-C入门
  2. python第三方库之Django学习笔记一
  3. 完整计算机组成系统,计算机组成原理与完整系统结构.doc
  4. What happens when clicking interaction recor工作中心
  5. 一张图告诉你为什么是服务网关
  6. python httplib2的安装
  7. C语言头文件尖括号和双引号的区别
  8. easymock使用方法_EasyMock无效方法– ExpectLastCall()
  9. 学生学籍管理系统页面源代码html_学生管理系统(界面+源代码)
  10. 秋叶一键重装系统连接服务器失败,秋叶一键重装系统win7系统安装和使用DAEMONToolsLite的方法【图文教程】...
  11. NBNS 数据包 和 NetBIOS 协议
  12. 2021 年最漂亮的 Linux 发行版
  13. 书中自有黄金屋系列5:读《正面管教》
  14. 趣图 | EDG牛逼!!!
  15. 页面打印表格换页问题
  16. 好好说话之Fastbin Attack(1):Fastbin Double Free
  17. 萌新学Java之渐入佳境三-----线程试炼
  18. 6374. 【NOIP2019模拟2019.10.04】结界[生与死的境界]
  19. HDU-6608-Fansblog(威尔逊定理+快速乘)(多校)
  20. 安全协议系列(二)----CCM与CCMP

热门文章

  1. Go程序的一生是怎样的?
  2. oracle监听的动态注册和静态注册
  3. CSS_照片墙例子 相对定位
  4. jQuery中animate的一个隐藏很深的坑
  5. Android自定义Toast
  6. vim-Complex repeats
  7. 正则表达式 匹配标签里面的值 eg:image input
  8. git 9个小命令(三年修仙五年摸鱼也有喔) 一条龙服务
  9. ‘cross-env‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。
  10. P5708 【深基2.习2】三角形面积【入门题】