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

相关推荐

  • M20 – 1- 第二周(1):课堂练习与作业

    课堂练习:  1、字符终端登录时,显示当前登录终端号,主机名和当前时间 [root@centos6 ~]# tty             #显示当前终端号 /dev/pts/0 [root@cent…

    Linux干货 2016-08-02
  • week2

    一、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 常用工具cp mv rm cat tac head tail more less stat cp   cp SRC…DEST A. 如果SRC是文件: a. 如果目标不存在:新建DEST,并将SRC中的内容填充至DEST中。 b. 如果目标存在: (1). 如…

    Linux干货 2016-11-06
  • 互联网安全之sudo使用指南

    一、前言 sudo是什么? sudo是系统管理指令;由于root用户权限过大,在实际生产过程中很少使用root用户直接登录系统,而是使用普通用户登录系统;但是如果普通用户要对系统进行日常维护操作时需要su到root用户,为了提高安全性,可以使用sudo授权某一用户在某一主机以某一用户身份运行某些命令;从而减少root用户密码知晓人,提高系统安全性。 &nbs…

    2015-06-23
  • ansible原理及简单应用

    一、基础介绍 1、简介 ansible是新出现的自动化运维工具,基于python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供…

    Linux干货 2016-01-13
  • Shell编程(1)

    Shell编程:     编程语言:机器语言、汇编语言、高级语言         高级语言:             静…

    Linux干货 2016-08-18
  • Linux磁盘和文件系统管理

    Linux磁盘和文件系统管理 linux磁盘管理 一、Linux设备类型     硬盘有机械硬盘(HDD)和固态硬盘(SSD)之分。机械硬盘即是传统普通硬盘,主要由:盘片,磁头,盘片转轴及控制电机,磁头控制器,数据转换器,接口,缓存等     几个部分组成。  &nbs…

    Linux干货 2016-04-11