vim编辑器

vim编辑器三种模式转换

clipboard

G跳到尾行

gg:跳到首行
H:跳到当前页的首行
L: 跳到当前页的尾行
M: 跳到当前而的中间行
dd: 删除光标所在的行
#dd:多行删除
yy:复制行
#yy: 复制多行 
Y: 复制整行
cc:删除当前行并输入新内容
#cc:删除多行
C:删除当前光标到行尾,并切换成插入模式
修改配置文件
全局: /etc/vimrc
用户:~/.vimrc
set nu 显示行号
set nonu取消显示行号
set ai 启用自动缩进功能
set noai 取消自动缩进功能
set ic忽略字符大小写
set noic 不忽略字符的大小写
set sm括号匹配
set nosm 取消括号匹配
syntax on|of语法高亮
搜索高亮
set hlsearch
set nohlsearch

clipboard

编写脚本

本地变量:仅对当前SHELL有效,对子SHELL也无效

环境变量:对当前SHELL及其子SHELL均有效。
查询变量
set 即显示本地变量也显示环境变量
env 显示环境变量
引用变量时
$varname
“$varname”
${varname}
当变量值当中包含换行符,如果希望引用出的值同样包含换行符,只能使用”$varname”
删除变量
unset varname
位置变量:在脚本代码中调用通过命令行传递给脚本的参数
$1, $2, …:对应第1、第2等参数,shift [n]换位置
$0: 命令本身
$*: 传递给脚本的所有参数,全部参数合为一个字符串
$@: 传递给脚本的所有参数,每个参数为独立字符串
$#: 传递给脚本的参数的个数
$@ $* 只在被双引号包起来的时候才会有差异
shift 将位置化参数向左移。默认为shift 1 即$1被删除,原$2变为$1,即$n+1 变为$n
set — 清空所有位置变量
转译:
\ 完全转译
“”部分转译 \ ` ! $ 注:变量引用会被替换为变量的值
” 完全转译
&&前一条命令执行成功才执行下一步
||前一条命令执行失败才执行下一步
1.写一个脚本名为jiaozuoyexx.sh 当执行该脚本时如jiaozuoyeXX.sh testXX.sh,就会自动将该testXX.sh传给教师机,路径是

scp testXX.sh mage26@172.17.252.213:~/scripts 密码为mage26

2.写一个能够创建新脚本的Shell script,如名为createshXX.sh 当执行时createsh /root/bin/test1.sh
则会自动创建并打开/root/bin/test1.sh,且其中包含以下内容。
#!/bin/bash
# ——————————————
# Filename:
# Revision:
# Date:
# Author:
# Email:
# Website:
# Description:
# ——————————————

clipboard

应该再加个chmod+x $test1加执行权限

clipboard

变量命名规则,字母数字下划线,且不能以数字开头,之前命名为test1.sh因为包含不合法字符一直出错还有不能使用导出符>,要使用追加>>
作业:
1、编写脚本/root/bin/sumid.sh,计算/etc/passwd文件中的第10个用户和第20用户的ID之和

clipboard

其他的算术运算方法
(1)let var=算术表达式
(2) var=$[算术表达式]
(3) var=$((算术表达式))
(4) var=$(expr arg1 arg2 arg3 …) 乘法时要转译* ,即\*
(5) declare –i var = 数值
2、编写脚本/root/bin/sumspace.sh,传递两个文件路径作为参数给脚本,计算这两个文件中所有空白行之和

clipboard

纠正:file1=`cat $first_filename|grep ^[[:space:]]*$|wc -l`
         file2=`cat $second_filename|grep ^[[:space:]]*$|wc -l`
         echo “sum=$[$file1+$file2]”

要考虑空格行和table键组成的空白行

3、编写脚本/root/bin/sumfile.sh,统计/etc, /var, /usr目录中共有多少个一级子目录和文 件

clipboard

1.编写脚本/bin/per.sh,判断当前用户对指定的参数文件,是否不可读并且不可写

clipboard

clipboard

[ expression1 -a expression2 ] 并且

[ expression1 -o expression2 ] 或者

注意空格规范

2.编写脚本/root/bin/excute.sh ,判断参数文件是否为sh后缀的普通文件,如果是,添加所有人可执行权限,否则提示用户非脚本文件

clipboard

3.编写脚本/root/bin/nologin.sh和login.sh,实现禁止和充许普通用户登录系统

clipboard

不知道这次截图清晰吗,我尽力了也不知道为什么不清晰,允悲

原创文章,作者:jieran,如若转载,请注明出处:http://www.178linux.com/83961

(0)
jieranjieran
上一篇 2017-08-05
下一篇 2017-08-05

相关推荐

  • Linux发展史

    日期:2016-10-12  Bell,MIT与GE的『Multics』系统     早期的计算机还很不普遍,除非是军事或者高科技用途,或者学术单位的学术研究,否则真的很难接触到。而且计算机架构很难使用。那个时候,程序设计者必须先将程序相关的信息在读卡纸上面打洞然后将读卡纸插入卡片阅读机来将信息读入主机中运算…

    Linux干货 2016-10-14
  • Elasticsearch 5.0 集群

    IT运维 www.chinasa.net 下载地址:https://www.elastic.co/downloads/elasticsearch 1、JDK 安装略过 node1 部署 2、Elasticsearch安装 #tar zxvf elasticsearch-5.0.0.tar.gz -C /opt/ #cd /opt #mv elast…

    系统运维 2016-12-27
  • 马哥教育网络班21期-第三周课程练习

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 who|cut -d" " -f1|uniq -c|awk '{print $2}' 2、取出最后登录到当前系统的用户的相关信息。 last |awk 'NR==1{print $0}' last |sed -n &…

    Linux干货 2016-07-29
  • 马哥教育网络19期+第十三周课程练习

    1、建立samba共享,共享目录为/data,要求:(描述完整的过程)   1)共享名为shared,工作组为magedu;   2)添加组develop,添加用户gentoo,centos和ubuntu,其中gentoo和centos以develop为附加组,ubuntu不属于develop组;密码均为用户名;   3)添加s…

    Linux干货 2016-08-12
  • 小练习题。【第四周】

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其他用户均没有任何访问权限。 home]# chmod g-rwx,o-rwx -R tuser1 2、编辑/etc/group文件,添加组hadoop。 /]# vim /etc/group …

    Linux干货 2016-11-26
  • rsyslog学习

    一、rsyslog日志服务简介 二、rsyslog的配置详解 三、实现日志服务器收集日志及last、lastb、dmseg命令的使用 四、实现日志存储在mysql中 一、rsyslog日志服务简介 日志的概念好理解,日志作用可用于排障和追溯审计的等 1、rsyslog是一个C/S架构的服务,可监听于某套接字,帮其它主机记录日志信息,在linux系统中可以分类…

    Linux干货 2016-10-24