shell编程

DOS命令

谁说胖子不能爱 提交于 2020-04-08 07:25:03
DOS命令    DOS命令 ,是DOS操作系统的命令,是一种 面向磁盘的操作命令 ,主要包括目录操作类命令、磁盘操作类命令、文件操作类命令和其它命令。DOS命令 不区分大小写 ,比如C盘的Program Files,在dos命令中完全可以用"progra~1"代替, 加上英文引号是因为名称的中间有空格(即多于一个词) 。 . 代表当前文件夹 , .. 代表上层目录 ,如命令 cd .. 就是回到上层目录。文件夹是不能通过命令行(只能打开某个文件)打开的,因为它下边还有子目录,命令行只会进入到它的下级目录里。 DOS常用命令: cls   清屏 cd    改变当前目录        edit   文本编辑 dir    列文件名 ren    改变文件名 move   移动文件,改目录名 copy  拷贝文件          del    删除文件 md   建立子目录 rd    删除目录 deltree  删除目录树  tree    显示命令树结构      type   显示文件内容 more  分屏显示 attrib  设置文件属性 mem   查看内存状况        date   显示及修改日期 time   显示及修改时间 set    设置环境变量 debug   程序调试命令 shutdown   关机 ping    查看网络连通情况 diskcopy

shell编程9*9乘法表

风格不统一 提交于 2020-04-08 00:38:40
</pre>脚本内容<pre name="code" class="plain">#!/bin/bash for i in "1" "2" "3" "4" "5" "6" "7" "8" "9" do for j in "1" "2" "3" "4" "5" "6" "7" "8" "9" do if [ ${j} -lt ${i} ] then k=$((i * j)) echo -n ${i}*${j}=${k}$'\t' fi if [ ${j} -eq ${i} ] then k=$((i * j)) echo ${i}*${j}=${k} fi done done 输出结果 [iufo@iufo test]$ bash ./test.sh 1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=9 4*1=4 4*2=8 4*3=12 4*4=16 5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 9*1=9 9*2=18 9*3=27 9*4=36 9*5

快,学会 shell

故事扮演 提交于 2020-04-07 23:47:04
本文分成入门篇和基础篇。基础篇包括变量、字符串处理、数学运算三部分。基础篇包括流控制、函数和函数库三部分。主要是基于例子进行讲解,其中有 4 个复杂一点的脚本,看懂了也就入门了。 我们先来聊一聊 shell 和 shell script 的概念。计算机的运行离不开硬件,我们通过操作系统(OS,Operating System)操作硬件,而我们所说的 linux 严格来说是操作系统(OS)的核心部分——内核(Kernel)。我们无法直接操作 kernel,需要借助于 kernel 外的一层壳 shell 才能与 kernel 进行交互。如果把操作系统(OS)看做是一家公司,shell 就是前台,kernel 就是董事会。当我们访问公司的时候,先和前台(shell)打个招呼,前台通知董事会(kernel),董事会来控制公司(OS)。 俗话说“铁打的营盘流水的兵”,就是公司人来人往,都不会影响公司的运转。对于操作系统也一样,我们可以替换操作系统的前台(shell),甚至董事会(kernel)。如果你想知道你的系统中用到的是什么 shell 可以访问 /etc/shells 文件。,我的电脑上就有下面几种 shell: # /etc/shells: valid login shells /bin/sh /bin/dash /bin/bash /bin/rbash /bin/zsh /usr

Linux shell入门基础(六)

折月煮酒 提交于 2020-04-07 14:55:32
六、Shell脚本编程详解 将上述五部分的内容,串联起来,增加对Shell的了解 01.shell脚本 shell: # #perl #python #php #jsp 不同的脚本执行不同的文本,执行的角色是不一样的; #shell scripts(UNIX Like系统的原则有一条:程序越短越好) #bash csh tcsh ksh #which startx(查看文件的路径) /usr/X11R6/bin/startx #vi `which startx` #!/bin/sh …… #vi /etc/rc.d/rc.sysinit (修改系统名,颜色等属性) #echo $SHELL /bin/bash 脚本中的#表示注释,但第一行中的#有特殊的意义: 如:第一行字符非#,表示这是一个bash脚本 第一行中是#,但第二个字符不是i,表示这是一个csh脚本 第一行字符是#,且第二个字符是!,表示调用其后指定 的/usr/bin/python2.2程序来执行以下这个脚本 02.shell中正则表达式 bash本身不提供正则表示式的支持,只支持通配符* ? 正则表达式可以通过一些命令去执行,比如grep,vi,sed,awk 比如Linux shell入门基础(二)中的介绍 03.与shell脚本的交互 #cd /tmp/ddd/ #ls …… #rm -rf * #vi a #!

shell编程题(二十八)

本小妞迷上赌 提交于 2020-04-07 14:42:04
题目:   查找请求数前20个IP(常用于查找攻来源) 答案: #! /bin/bash echo "The numbers of IP address" echo "the first way:" netstat -anlp | grep 80 | grep tcp | awk '{print $5}' | awk -F: '{print $1}' | uniq -c | sort -nr | head -n20 echo "the second way:" netstat -ant | awk '/:80/{split($5,ip,":");++A[ip[1]]} END {for (i in A) print A[i],i}' | sort -rn | head -n20 运行结果: 解析: split的效果 netstat -ant | awk '{print $5}' netstat -ant | awk '/:80/{split($5,ip,":");print ip[1]}' 综合可知 {split($5,ip,":") 意思是将第五个字符串按照 ":" 进行切割,存放在名称为 ip的数组中。 ip[1]放的是ip, ip[2]放的是端口号 80 来源: https://www.cnblogs.com/wanghao-boke/p/12263286.html

马哥博客作业第三周

戏子无情 提交于 2020-04-06 02:09:08
正则表达式 一.文本编辑工具 1.文本编辑之神vim 1.1 vim的三种模式: 命令或普通(Normal)模式:默认模式,可以实现移动光标,剪切/粘贴文本 插入(Insert)或编辑模式:用于修改文本 扩展命令(extended command )或命令(末)行模式:保存,退出等 1.2 模式切换: 插入模式 --- ESC-----> 命令模式 命令模式 ---- : ----> 扩展命令模式 扩展命令模式 ----ESC,enter----> 命令模式 1.3 扩展模式的基本命令 w 写(存)磁盘文件 wq 写入并退出 x 写入并退出 X 加密 q 退出 q! 不存盘退出,即使更改都将丢失 r filename 读文件内容到当前文件中 w filename 将当前文件内容写入另一个文件 !command 执行命令 r!command 读入命令的输出 1.4 命令模式的基本命令 ZZ 保存退出 ZQ 不保存退出 1.4.2 光标跳转 字符间跳转: h: 左 L: 右 j: 下 k: 上 单词间跳转: w:下一个单词的词首 e:当前或下一单词的词尾 b:当前或前一个单词的词首 当前页跳转: H:页首 M:页中间行 L:页底 zt:将光标所在当前行移到屏幕顶端 zz:将光标所在当前行移到屏幕中间 zb:将光标所在当前行移到屏幕底端 行首行尾跳转: ^ 跳转至行首的第一个非空白字符

脚本编程(一)

∥☆過路亽.° 提交于 2020-04-05 19:33:05
脚本编程(一) 啰里啰唆:每周的最后一天都特别难受。墨迹扣不出文章。 一、概况 注释是以 # 开都的, # 开头不一定都是注释 SHELL 是解释型语言 SHELL 脚本第一句以 #!/bin/bash 开头 SHELL 脚本需要具有执行权限 一般以 .sh 结尾 别名在脚本中无效。在脚本中不能使用别名。 bash 使用技巧: -n 检查语法 , 无法无法检测处命令错误,同时只是检查语法不会真正执行脚本。 -x 逐行执行,逐行显示执行结果 脚本中的错误: 1 、语法错误,会导致后续的命令无法继续执行。可以通过 bash -n 选项来检查 提示的错误行不一定是准确的。 2 、命令错误,后续的命令还可以继续执行。无法通过 bash -n 选项来检查错误,可以使用 set -e 或者 set -o errexit 来设定遇到错误命令后退出 3 、逻辑错误,只能使用 bash -x 选项来检查错误。 变量: 变量表示命名的内存空间,讲数据放在内存空间中,通过 "$ 变量名 " 引用 , 从而获取数据 内置环境变量: PS1 SHELL HASTNAME $$ $? 自定义变量: [set] NAME=VALUE set 可以省略 变量类型: 字符型:默认都是字符型 数值:整型、 bash 不支持浮点型 静态编译语言,使用变量前,先声明变量类型,之后类型不能改变,在编译时执行检查, JAVA

UEFI Shell 下的程序设计

偶尔善良 提交于 2020-04-02 16:40:00
  今天简单介绍一些shell下的程序设计:   和其他的语言的程序设计有所区别,shell环境下的程序设计需要借助package(包)来完成。在edk2的目录下可以清楚的看到有很多package:比如ShellPkg、MdePkg、MdeModulePkg等等。每个Pkg里面包含的函数又有所区别,所以编写一般的简单的程序一般都会放在默认的编译的Pkg里面(特殊的除外)。   默认的编译的Pkg的路径在 edk2/Conf/target.txt 可以找到比如我使用的就是 “ ACTIVE_PLATFORM=EmulatorPkg/EmulatorPkg.dsc” 这个.txt文件里面还包括默认的编译器,编译模式,IA32还是X64等等,这其实是一个基础的配置文件。   shell下的可执行程序文件形式为 .efi 文件,编译生成它最少需要一个.inf 文件和一个.c 文件(也常被叫做工程文件和源文件)   应用程序模块常见的分三种,分别为标准的应用程序模块,shell应用程序模块,使用main函数的应用程序工程模块。(其中最后一种我没弄出来,它需要借助标准的C库中的stdio.h 尝试了一段时间并没有成功) 先说说标准的应用程序模块   首先是工程文件代码: [Defines] INF_VERSION=0x00010005 BASE_NAME=UefiMain /

shell编程题(二十四)

为君一笑 提交于 2020-03-29 03:34:04
题目: 对于一个用户日志文件,每行记录了一个用户查询串,长度为1-255字节,共几千万行,请排出查询最多的前100条。 日志可以自己构造> 。 (提示:awk sort uniq head) 文件: zhougong wanggong ligong sungong tiangong tiangong wanggong ligong sungong tiangong tiangong wanggong zhougong wanggong ligong 答案: #!/bin/bash file=$1 awk '{print $1}' ${file} | sort | uniq -c | sort -k1nr | head -n3 运行结果: ubuntu@ubuntu:~/wangqinghe/shell/24$ ./24.sh log.txt 4 tiangong 4 wanggong 3 ligong 具体解析 https://www.cnblogs.com/wanghao-boke/p/12159706.html 来源: https://www.cnblogs.com/wanghao-boke/p/12184903.html

shell编程之SHELL基础(1)

点点圈 提交于 2020-03-28 23:02:44
shell脚本基础 shell是一个命令行解释器,她为互用提供了一个想linux内核发送请求以便运行程序的界面系统级程序,用户可以用shell来启动。挂起。停止甚至编写一些程序。 shell还是一个功能相当强大的编程语言,易编写,易调试,灵活醒较强。shell是解释执行的脚本语言,在shell中可以直接调用linux系统命令 脚本的执行 1 echo输出命令 echo [选项][输出内容] 选项: -e : 支持反斜线控制的字符串转换 控制字符 作用 \a 输出警告音 \b 退格键,也就是像左删除健 \n 换行符 \r 回车健 \t 制表符,也就是tab \v 垂直制表符 \0nnn 按照八进制acsii表输出字符,其中0未数字零,nnn是三位八进制 \xhh 安卓十六进制输出输出字符 在echo中输出颜色 echo -e "\e[1;31m aaaa \e[0m" 30m = 黑色, 31m = 红色, 32m = 绿色,33m = 黄色 34m = 蓝色 , 35m = 洋红, 36买= 青色, 37m = 白色 2 第一个脚本 #i/bin/bash #i/bin/bash #the first program echo -e "\e[1;34m hello \e[0m" 3 脚本执行 赋予执行权限,直接运行 chmod 755 hello.sh ./hello.sh