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

相关推荐

  • Linux之iptables原理详解

    目录: 一、netfilter与iptables 二、filter、nat、mangle等规则表 三、INPUT、FORWARD等规则链和规则 四、Linux数据包路由原理 五、iptables编写规则  一、netfilter与iptables (1)Netfilter是由Rusty Russell提出的Linux 2.4内核防火墙框架,该框架既…

    2017-08-04
  • GRUB加密、修复和破解密码实战指南

    GRUB加密、修复和破解密码实战指南 GRUB(Boot Loader) 从系统启动流程可以得知,在BIOS读取相关信息之后,接下来是去第一个可以启动的设备当中的MBR中读取Boot Loader信息,Boot Loader提供具有菜单功能、直接加载内核信息,以及相关的控制权转交功能。所以说系统启动必须要有Boot Loader,然后才能去加载内核。 Boo…

    Linux干货 2016-09-19
  • N25-Bazinga-第二周作业

    1.Linux文件管理类命令 命令 功能 命令 功能 pwd 显示当前目录 ls 显示目录下的内容 cd 改变所在目录 cat 显示文件的内容 grep 在文件中查找字符串 cp 复制文件 touch 创建文件 mv 移动文件 rm 删除文件 rmdir 删除目录 1.1 pwd命令 该命令的英文解释为print working&nbsp…

    Linux干货 2016-12-13
  • 7.磁盘及文件系统管理

    1、创建一个10G分区,并格式为ext4文件系统; (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl; (2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳; [root@localhost ~]# fdisk /dev/sd…

    Linux干货 2017-08-21
  • 编译Bind和压力测试

    编译安装bind ·下载bind:     isc.org:          bind-9.8          bind-9.9   &…

    Linux干货 2016-09-25
  • N25期—第四周作业

    1、 复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 cp –rf /etc/skel /home/tuser1 chmod -R go= /home/tuser1 2、 编辑/etc/group文件,添加组hado…

    Linux干货 2016-12-26