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)
上一篇 2017-08-05 20:45
下一篇 2017-08-05 22:13

相关推荐

  • sed的用法小结

    sed的用法小结 sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等sed [OPTION]… ‘script’ [input-file] … OPTION: -n 不输出模式空间中的内容至屏幕,仅显示script处理后的结果 -e 多点编辑,eg: ~]# sed -e ‘s@^#[[…

    Linux干货 2017-08-22
  • iptables-防火,防盗,防老王

        防火墙,其实说白了将,就是用于实现linux下访问控制的功能的,它分为两种方式,硬件防火墙和软件防火墙。不过无论是在哪个网络中,防火墙工作的地方一定是在网络的边缘。而我们的任务就是需要去定义防火墙如何工作的,这就是防火墙的策略,规则,以达到让它对出入网络的IP,数据进行检测。     目前市…

    Linux干货 2017-05-02
  • 权限解析

    一、文件权限        用户的创建的每个文件,都有自己特定的属性信息,比如文件类型,文件的权限,文件的所有者和所属组,以及文件的修改日期等属性组成。        文件的权限即是指文件本身赋予了用户什么样的权力,也就…

    2017-05-30
  • 马哥教育网络班21期+第10周课程练习

    1、请详细描述CentOS系统的启动流程(详细到每个过程系统做了哪些事情)     1)开机后会进行POST(开机加电自检),加载BIOS,之后会根据BIOS上的boot  sequence(引导加载次序)找到第一个有引导程序的设备,找到MBR,bootloader(引导加载器)就安装在MBR内。M…

    Linux干货 2016-09-19
  • 第三周博客作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 [root@localhost ~]# who (unknown) :0           2016-12-15 2…

    Linux干货 2016-12-20
  • 推荐-使用Ansible部署LAMP环境

    使用Ansible部署LAMP环境 使用Ansible部署LAMP环境 前言 实验环境 实验步骤 配置ssh公钥认证 安装ansible 配置host iventory 创建YAML文件 运行Ansible-Playbook并测试 总结 前言 这两天学习了Ansible, 在部署实验环境真的很好用, 今天向大家分享如何使用Ansible部署LAMP环境, 本…

    Linux干货 2016-04-10