Linux脚本设计1——vi编辑器使用、变量及运算符

更新时间:2023-05-31 20:16:43 阅读: 评论:0

Linux脚本设计1——vi编辑器使⽤、变量及运算符
  对⼤部分语⾔来说,需要作者实现全部功能,linux shell脚本语⾔相当于站在“巨⼈”的肩膀上,有很多实⽤的程序已经在linux系统中实现了,编写linux程序时候只需要调⽤这些程序,当然写程序之前你还是需要规划好你的产品代表的功能。
  找到实⽤的程序后,先搞清楚它的功能,再将它加⼊到⾃⼰的程序中。编程者只需要像组装零件⼀样,最终组装成⼀个变形⾦刚~~
  对使⽤windows操作系统作为底层平台的程序来说,⼀般会有exe后缀名(有没有其实都⼀样,只是⼀种⽂件的分类标致⽽已)。这个后缀标致代表的意思是:该程序已经转换成了机器码(0 1表⽰),可以⽴即执⾏。
  对linux shell程序来说过程是这样的:⾸先程序进⾏编译(将程序翻译成机器码),并且是每次只读⼀⾏,然后翻译成机器码,接着就执⾏⼀⾏,然后再返回程序,重复上述过程,这样会影响程序执⾏效率。
  总的来说是:读取⼀⾏,翻译⼀⾏,执⾏⼀⾏
  ⼀般来说,单任务处理系统,⼀个程序只要⼀运⾏就会接管对计算机的控制,决定屏幕输出什么内容以
及什么。linux是多任务处理,多个任务可以通过分时机制实现多任务运⾏。
  要完成⼀个⼤的主题(功能),它⾥⾯会有很多⼩的功能。就是说对于⼀个很⼤的框架来说,我们可以设计、规划成⽐较⼩的框架,⼀个个实现,⽤户界⾯与它后台实际运⾏的⼦程序是相对应的。规划好整体架构和⽤户界⾯后,⼀步步实现⼩的功能,然后搭建出整体。
2. 
2.1
  命令、指令:同⼀个意思,⼀般来说,这些指令、命令都是⼀些实⽤的程序,在系统的环境变量中可以找到这些指令的位置,执⾏这些命令、指令可以得到相应的结果,这些都是计算机的⼀部分。
  代码:多个命令指令及编写语句的集合。
  程序:为完成⼀项任务的代码。——这个定义太笼统了,等于没有定义。
surrender是什么意思  Shell也和C、java⼀样是⼀种编程语⾔。有⾃⼰的关键字、语法,通过关键字的组合编写出实⽤的语句,就像我们使⽤⾃⼰的母语⼀样,以正确的⽅式发送给计算机,计算机就能懂。每⼀种语⾔都有⾃⼰的关键字,英语、中⽂都⼀样,计算机也有,关键字也称为保留字,在编写程序时,对于⽤户⾃定义的部分如变量、函数名等等都不允许使⽤。
  同其他编程语⾔⼀样Shell也有⾃⼰的流程控制语句
  :if,el,elif,then
  :while,for in,continue
  :ca
  其他:let,read,echo,clear
2.3
  shell是⼀类shell的统称,包括很多种,如C shell,bash,Korn shell等,不同shell代表不同的编程环境。通常shell程序是在/bin⽬录下。启动这三种shell分别命令是
  C shell:csh
  bash:bash
2012陕西高考数学
  Korn shell:ksh
  在/bin⽬录下可以看到常⽤的命令
  这⾥选⽤bash 即Borne Again shell
2.4
  这种是不将脚本放在⽂件中,直接命令提⽰符后⾯写命令,命令之间⽤分号;隔开,每⼀⾏最多允许255个字符
  这种是将命令放在⽂件中,命令放在⽂件中,命令可以单独放⼀⾏,⾏尾没有分号
  通常简单的查看信息可以⽤第⼀种,⽽复杂的任务使⽤第⼆种,⽐如为了查看⽇期,没有必要建⼀个⽂件,写个命令,然后修改执⾏权限,再执⾏,这样做等于把简单的事情复杂化。复杂的任务通常需要第⼆种,对于⼀个⼤的任务来说,需要分成⼩的任务,然后分别解决⼩的问题,再组装设计成⼀个整体。
  注意:对于第⼆种来说,也可以把命令放在⼀⾏,命令间⽤分号隔开。执⾏时候有两种办法
  脚本绝对路径,执⾏即可如/home/hadoop/Demo/Demo.sh
  如果当前⽤户处在Demo⽬录,则可以⽤./Demo.sh,./表⽰当前⽬录的意思
  另⼀种办法是直接执⾏脚本,在任何⼀个⽬录在拥有权限的情况下,执⾏Demo.sh,这种执⾏需要将程序所在的⽬录放在系统的命令路径变量PATH⾥⾯,将路径放在PATH⾥⾯后,系统根据路径,找到执⾏⽬录,就可以执⾏了。PATH变量是放在/etc/profile⾥⾯的,可以在这个⽂件⾥⾯添加,也可以⽤export Demo=/home/hadoop/Demo⽅式添加,然后使⽤source /etc/profile⽅式刷新⽂件,再执⾏Demo.sh就可以了
  对于linux有些使⽤字符串的命令来说,需要带双引号,不带也⾏,建议带上,这样显得字符串是⼀个整体,结构性更强。
  例如echo Hello World 与echo "Hello World"执⾏结果是⼀样的,建议⽤上双引号,当语句复杂时候,带上双引号会使语句结构清晰。另外如果不带上双引号的话,那么有些单词缩写this‘s是不显⽰单引号的’的,所以带上是万能的,不带是有风险的。
2.5
可以⽤户可以查看⽂本(程序),⽆法向其中输⼊内容,输⼊vi命令后回车就进⼊命令模式,在其他模式下按ESC键也可以返回命令模式。ESC即escape (character):逃跑标识,即退出
可以向⽂本中输⼊新的内容,按许多字母键都可以进⼊此模式,如a,i(⼤部分shell都⽀持的),SUSE操作系统按s,q也可以进⼊此状态
按冒号:键可以进⼊最后⾏模式,⽤户可以搜索内容、保存⽂件、退出vi等。
1
i(⼩写):从命令模式切换到插⼊模式,插⼊的东西在当前光标之前
a(⼩写):从命令模式切换到插⼊模式,插⼊的东西在当前光标之后
:(冒号):从命令模式切换到最后⾏模式
Esc:从插⼊模式切换到命令模式
依靠上述⼏种命令,可以实现⼏种模式的相互切换
2
下⾯命令针对的对象都是光标并且是在命令模式下实现的
光标移动是⽂本编辑必不可少的部分,在使⽤如下命令之前可以试试⽅向键,因为不少⼯具是⽀持⽅向键光标的移动的,还有Page Up和Page Down键⽀持翻页,这四种如果⽀持,那⾜以实现光标移动,⽆须在看下⾯的命令。
h,j,k,l四个键是对应⽅向键的,可以实现上下移动。不⽤死记四个键代表往哪个⽅向移动,尝试⼀下就可以知道了。
h:光标左移⼀个字符
j:光标下移⼀⾏
k:光标上移⼀⾏
l:光标右移⼀个字符
+:光标移动⾄下⼀⾏⾏⾸
-:光标移动⾄上⼀⾏⾏⾸
0:光标移动到本⾏⾏⾸
orders
$:光标移动到本⾏⾏尾
3
圣诞节英语Ctrl +F:向前翻⼀页 F:forward
Ctrl+B:向后翻⼀页 B:backward
对⽂本的操作命令(命令模式下):⼀般来说对⽂本⽆⾮有增删改查复制粘贴以及对操作的是否取消
4
/需要查找的字符名称:查找字符
/:查找上⼀次查找的内容,
:查找上⼀次查找的内容,并且是向⾏⾸查找
:n:最后⾏模式,n代表⾏号,表⽰切换到第n⾏,如果n为0表⽰是⾸⾏,如果是美元符号$表⽰的是⽂件的最后⼀⾏
5
i:插⼊光标前(inrt)
I(⼤写i):插⼊本⾏⾏⾸
a:插⼊光标后(add)
A:插⼊本⾏⾏尾
6
yy:拷贝当前光标所在⾏到缓冲区
p:paste即粘贴,将缓冲区内容粘贴⾄当前光标后,注意粘贴时候:缓冲区只保留最后⼀次yy内容所以粘贴时候也是最后⼀次yy的内容。7
dd:删除光标所在⾏
5dd:删除包含当前⾏开始的向后5⾏内容(注意:当前⾏也算作被删除的⼀⾏)
x:删除光标所在处的字符
X:删除光标左边的字符
8
初学者学化妆u:取消最后⼀次修改
U:取消当前⾏的所做的所有修改
是否保存⽂件及退出vi编辑器(注意字母前⾯的冒号:)
duckloadZZ:退出vi并保存所有修改
:wq!(包含wq前⾯的冒号:):强制退出,并保存所有修改
:w:保存所做修改,不退出vi
:q:退出vi
:q!:退出vi,不保存修改
编写⼀个菜单显⽰程序主要使⽤echo
echo 后⾯带的字符串,通java⼀样,也是需要⽤双引号括起
3.
    1.
  $ echo $HOME
德语在线翻译器
  /home/redbooks
  2.
  $ export HELLO="Hello!"
  $ echo $HELLO
  Hello!
  3.
  $ env
  HOSTNAME=redbooks.safe
  PVM_RSH=/usr/bin/rsh
  Shell=/bin/bash
  TERM=xterm
  HISTSIZE=1000
  ...
  4.
  $ t
  BASH=/bin/bash
英语 自我介绍
  BASH_VERSINFO=([0]="2"[1]="05b"[2]="0"[3]="1"[4]="relea"[5]="i386-redhat-linux-gnu")
  BASH_VERSION='2.05b.0(1)-relea'
  COLORS=/etc/
  COLUMNS=80
  DIRSTACK=()
  DISPLAY=:0.0
  ...
  5.
  t可以设置某个环境变量的值。清除环境变量的值⽤unt命令。如果未指定值,则该变量值将被设为NULL。⽰例如下:  $ export TEST="" #增加⼀个环境变量TEST
  $ env|grep TEST #此命令有输⼊,证明环境变量TEST已经存在了
 
  $ unt $TEST #删除环境变量TEST
  $ env|grep TEST #此命令没有输出,证明环境变量TEST已经存在了
  6. 使⽤readonly命令设置只读变量
  如果使⽤了readonly命令的话,变量就不可以被修改或清除了。⽰例如下:
  $ export TEST="" #增加⼀个环境变量TEST
  $ readonly TEST #将环境变量TEST设为只读
  $ unt TEST #会发现此变量不能被删除
  -bash: unt: TEST: cannot unt: readonly variable
  $ TEST="New" #会发现此也变量不能被修改
  -bash: TEST: readonly variable
  环境变量的设置位于/etc/profile⽂件
  如果需要增加新的环境变量可以添加下属⾏
  export path=$path:/path1:/path2:/pahtN
  按变量的⽣存周期来划分,Linux变量可分为两类:
  1.1 永久的:需要修改配置⽂件,变量永久⽣效。
  1.2 临时的:使⽤export命令声明即可,变量在关闭shell时失效。
  2.
  2.1 在/etc/profile⽂件中添加变量【对所有⽤户⽣效(永久的)】
  ⽤VI在⽂件/etc/profile⽂件中增加变量,该变量将会对Linux下所有⽤户有效,并且是“永久的”。
  例如:编辑/etc/profile⽂件,添加CLASSPATH变量
  # vi /etc/profile
  export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib
  注:修改⽂件后要想马上⽣效还要运⾏# source /etc/profile不然只能在下次重进此⽤户时⽣效。
  2.2 在⽤户⽬录下的.bash_profile⽂件中增加变量【对单⼀⽤户⽣效(永久的)】
  ⽤VI在⽤户⽬录下的.bash_profile⽂件中增加变量,改变量仅会对当前⽤户有效,并且是“永久的”。
  例如:编辑guok⽤户⽬录(/home/guok)下的.bash_profile
  $ vi /home/guok/.bash.profile
  添加如下内容:
六级题型  export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/libfirmenich
  注:修改⽂件后要想马上⽣效还要运⾏$ source /home/guok/.bash_profile不然只能在下次重进此⽤户时⽣效。
  2.3 直接运⾏export命令定义变量【只对当前shell(BASH)有效(临时的)】
  在shell的命令⾏下直接使⽤[export 变量名=变量值] 定义变量,该变量只在当前的shell(BASH)或其⼦shell(BASH)下是有效的,shell关闭了,变量也就失效了,再打开新shell时就没有这个变量,需要使⽤的话还需要重新定义。
  3.
  3.1 使⽤echo命令查看单个环境变量。例如:
  echo $PATH
  3.2 使⽤env查看所有环境变量。例如:
  env
  3.3 使⽤t查看所有本地定义的环境变量。
  unt可以删除指定的环境变量。
  4.
  PATH 决定了shell将到哪些⽬录中寻找命令或程序
  HOME 当前⽤户主⽬录
  HISTSIZE 历史记录数
  LOGNAME 当前⽤户的登录名
  HOSTNAME 指主机的名称
  SHELL   当前⽤户Shell类型
  LANGUGE  语⾔相关的环境变量,多语⾔可以修改此环境变量

本文发布于:2023-05-31 20:16:43,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/129625.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:命令   变量   程序   环境变量   光标   需要
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图