您的位置:首页 > 运维架构 > Linux

Linux常用命令集合(二)

2017-08-15 17:25 204 查看
vim 编辑器的命令模式中常用的快捷键

dd 删除(剪切)光标所在整行

5dd 删除(剪切)冲光标处开始的5行

yy 复制光标所在整行

5yy 复制从光标处开始的5行

p 将之前删除(dd)或复制(yy)过的数据粘贴到光标后

/字符串 在文本中从上至下搜索该字符串

?字符串 在文本中从下至上搜素该字符串

n 显示搜索命令定位到的下一个字符串

N 显示搜索命令定位到的上一个字符串

u 撤销上一步操作

vim编辑器的末行模式中的常用命令

:w 保存

:q 退出

:q! 强制退出(放弃对文本的修改内容)

:wq! 强制保存退出

:set nu 显示行号

:set nonu 不显示行号

:命令 执行该命令

:整数 跳转到该行

shell 脚本是将各种命令通过逻辑语句组合而成的程序

查看系统中所有可用的shell解释器:

[root@localhost~]# cat /etc/shells

查看当前的shell解释器

[root@localhost~]#echo $SHELL

编写简单的shell脚本

一个完整的shell脚本包括脚本声明、注视信息、和可执行语句

脚本声明(#!):告知系统用何种shell来解释

注释信息(#):对可执行语句或程序功能做介绍,可以不写

可执行语句:执行的具体命令

简单的脚本编写。功能是显示当前工作的路径并列出当前目录下的所有文件属性

[root@localhost~]#vim example.sh
#!/bin/bash
#For example by localhost
pwd
ls -al

shell脚本执行有三种方式
脚本文件路径:./example.sh
sh脚本文件路径:sh example.sh
source脚本文件路径:source example.sh

直接访问脚本会出现权限不足的问题
解决办法:
[root@localhost~]# chmod u+x example.sh
[root@localhost~]# ./example.sh

接受用户输入的参数定义脚本的方法
$0 当前执行shell脚本的程序名
$1-9,${10},${11}....参数的位置变量
$# 一共有多少个参数
$* 所有位置变量的值
$? 判断上一条命令是否执行成功,0为成功,非0为失败

判断用户的参数

shell脚本有时还要判断用户输入的参数,例如像mkdir命令一样,当目录不存在则创建,若已经存在则报错,条件测试语句能够测试特定的表达式是否成立,当条件成立时返回值为0,否则返回其他数值。

测试语句格式: [条件表达式] 两边均应有一个空格

细分测试语句有:文件测试,逻辑测试,整数值比较,字符串比较。

文件测试:[操作符 文件或目录名]
-d 测试是否为目录
-e 测试文件或目录是否存在
-f 判断是否为文件
-r 测试当前用户是否有权限读取
-w 测试当前用户是否有权限写入
-x 测试当前用户是否有权限执行

逻辑测试:[表达式1] 操作符 [表达式2]
&& 逻辑的与,“而且”的意思
|| 逻辑的或,“或者”的意思
! 逻辑的否。

整数值比较:[整数1 操作符 整数2]
-eq 判断是否等于
-ne 判断是否不等于
-gt 判断是否大于
-it 判读是否小于
-le 判断是否等于或小于
-ge 判断是否大于或等于

字符串比较:[字符串1 操作符 字符串2]
=  比较字符串内容是否相同
!= 比较字符串内容是否不同
-z 判断字符串内容是否为空

 条件测试语句能够让shell脚本根据实际共组灵活调整工作内容,例如判断系统的状态后执行指定的工作,或创建指定数量的用户,批量修改用户密码,这些都可以让shell脚本通过条件测试语句完成
if 条件语句
if条件语句分为单分支结构,双分支结构, 多分支结构,复杂度逐渐上升,但却可以让shell脚本更加的灵活
单分支结构,仅用if、then、fi关键词组成,只在条件成立后执行
if 条件测试操作
then 命令序列
fi
单分支if语句:判断目录是否存在,若不存在则自动创建。

双分支结构是由if、then、else、fi关键字组成,做条件成立或条件不成立的判断
if条件测试操作
then 命令序列1
else 命令序列2
fi

read命令用于将用户的输入参数赋值给指定变量,格式为:read-p [提示语句] 变量名

 

for条件语句会先读取多个不同的变量值,然后逐一执行同一组命令
for 变量名 in 取值列表
do 
命令序列
done

while条件语句用于重复测试某个软件,当条件成立时则继续重复执行
while 条件测试操作
do
命令序列
done

case条件语句可以依据变量的不同取值,分别执行不同的命令动作
case 变量值 in
模式1)
命令序列1
模式2)
命令序列2
*)
默认命令序列
esac
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: