shell脚本与命定

  1. 变量、函数的定义与引用,其表达方法很多,我选下面这种:

变量名=`命定`   #变量定义

$变量名       #变量的引用

函数名()

{

命定1;

命定2;

.....

}          #函数的定义

函数名      #函数的引用

例如我第一篇博文里的

user_add()

{

id smbmin &>/dev/null;  #smbmin是已经存在的用户

while (($?==0))

do

read -p "please input user name:"  user_name;

id $user_name &>/dev/null;

done

useradd   $user_name -g smbkefu -s /sbin/nologing;

smbpasswd -a $user_name;

echo "$user_name is ok!"

}                      #定义user_add函数

user_add                  #引用user_add函数

2.脚本中常用命定

sort 主要用来排序,它选项很多,我只列常用的

-n:按数字排序

-r:反向排序

-u: 只显示不重复的

还有一个就是按某列进行排序

sort -t ‘分隔符‘ -k ‘列号‘

uniq 主要用来去重和统计重复的行

-i:忽略大小写

-c:统计不同行的重复次数

-u:只显示唯一的行

awk以一行一行的处理文件,主要用来截取文件的某段信息

基本表达式为:awk -F ‘分隔符‘ ‘条件{print 位置参数"输出语句"位置参数}‘

$0为全行,

$n为第N个字段

NR为行号

NF为总行数

sed文本在线编辑工具,一行一行处理,主要用于对文件的增删改查

基本表达式为:sed -[选项] "行号,行号 操作" 文件

或者 sed -[选项] "/条件/操作" 文件

其中主要常用选项有:

-i:直接对文件里面内容操作

-n:显示匹配的行,否者会全部显示

删:操作中删除行为d ;若要删除字段这用 s/字段//g 来实现,原理是把这个字段变成空格来实现删除。

增:在某行前添加一个新行主要用i,某行后面添加为a;如要行首添加但不换行则为 s/^/字段/,行尾添加但不换行为 s/$/字段/;若要某个字段1前添加某个字段2则为:s/字段1/字段1字段2/。

改:若要把字段1改为字段2则为:s/字段1/字段2/g,加了g就是全局替换,否则只替换匹配行的第一个字段。

查:用的是-n选项和p操作。

值得注意的是sed的操作中=为打印行号。

cut 用来截取某个字段

-d ‘指定分隔符‘

-f ‘提取的段号‘

-c 以字符为单位

wc 用来统计

-l 统计总共的行

-w 统计总共的字符

-m 统计总共的字节

grep用来过滤一般与|一起用

-c:统计行数

-n:显示行号

-E:支持正则表达式,也可以写作egrep

-v:显示不匹配的行(取反)

tail -n 数字 取倒数几行

head -n 数字 取头几行

这是我目前整理出来的实用的命定选项,如有错误请指正,如有更优或补充请建议

时间: 2024-08-24 19:00:40

shell脚本与命定的相关文章

shell脚本学习-语法篇

一. 条件测试:test [命令test或[可以测试一个条件是否成立,如果测试结果为真,则该命令的Exit Status为0,如果测 试结果为假,则命令的Exit Status为1(注意与C语言的逻辑表示正好相反). 二.if/then/elif/else/fi和C语言类似,在Shell中用if.then.elif.else.fi这几条命令实现分支控制.这种流程控制语句本质上也是由若干条Shell命令组成的,其实是三条命令,if [ -f ~/.bashrc ]是第一条,then . ~/.ba

Shell脚本编程知识点总结及范例

 一:关于语言 1)编译性语言 编译型语言多半运作于底层,所处理的是字节.整数.浮点数或其它及其机器层经的对象.处理过程为:源程序--预处理--编译--汇编--链接,编译性语言为静态语言. 2)解释性语言 解释性语言读入程序代码并将其转化为内部的形式加以执行.处理过程:解释性(文本文件)-解释器去读取并执行.解释性语言为动态语言. 二:基础 变量类型 linux脚本中的变量不需要事先声明,而是直接定义使用(这点不同于其他高级编程语言中变量的使用)bash变量类型分为本地变量和环境变量. 本地变量

shell脚本编程之基础篇(二)

shell脚本编程之基础篇(二) ============================================================================== 概述: ============================================================================== 退出状态 ★进程使用退出状态来报告成功或失败 ◆0 代表成功,1-255代表失败 ◆$? 变量保存最近的命令退出状态 (查看:echo $?)

shell脚本小实例

本文收集了一堆的shell脚本技巧,我说过,我写博客主要是作一些学习笔记,方便自己查阅,所以,我会搞出这么一篇文章,也没有什么不可理解的.关于这些技巧的出处,诶,我也忘了,可能来自theunixschool. commandlinefu.酷勤网和igigo.net,当然了,也有部分是我自己的经验心得,管他呢,进了我的脑子就是我的了. 0. shell 调试 复制代码代码如下: sh -x somefile.sh 在somefile.sh 文件里加上set+x set-x1. 用 && ||

使用Shell脚本对Linux系统和进程资源进行监控

ShellLinux脚本 摘要:Shell语言对于接触Linux的人来说都比较熟悉,它是系统的用户界面,提供了用户与内核进行交互操作的一种接口.本文我们以Bash做为实例总结了使用Shell对系统和进程资源进行监控的一些内容,希望对您能有帮助. Shell语言对于接触Linux的人来说都比较熟悉,它是系统的用户界面,提供了用户与内核进行交互操作的一种接口.它接收用户输入的命 令并把它送入内核去执行.实际上Shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核.它没有一般编程语言的“

shell脚本中实现自动判断用户有无密码

在最近完成老师布置的作业的时候遇到了如何让shell脚本中的命令自动判断一个用户是否已设置密码的问题,虽然看似不是很难的一个问题,但是在这一功能实现的过程中却包含了许多细小的而重要的知识.刚开始小编对此很是头疼,虽然我们查看一个用户是否有密码并不是很难,直接cat /etc/shadow这个文件看看密码位是否有加密的字符就行了,但是让命令自己去判断和匹配就不是很顺利了,小编上网查看后,并没有得到很好的答案,大多数都是人工查看的答案,并不适用于shell脚本中自动的判断,所以在认真对比/etc/p

vim 文本编辑器、shell脚本:

vim 文本编辑器:    三种主要模式:        命令模式(默认):移动光标,剪切/粘贴文本        插入(编辑)模式:修改文本 输入i 进入插入模式        扩展模式:保存,退出等        快键           i: insert, 在光标所在处输入        I:在当前光标所在行的行首输入        a: append, 在光标所在处后面输入        A:在当前光标所在行的行尾输入        o: 在当前光标所在行的下方打开一个新行      

8.11_Linux之bash shell脚本编程入门篇(一)

什么是bash shell脚本编程? 答:Linux里面有多种shell,而CentOS和redhat的默认shell是bash shell.至于shell脚本,这个跟windows操作系统里面的批处理文件有点像(.bat的文件).不知道大家还是否记得Linux的哲学思想吗?其中有那么两点点:由众多目的的单一应用程序组成:一个程序只做一件事,且做好:组合目的的单一的小程序完成复杂的任务.我觉得shell脚本编程就很好的体现了这个哲学思想.shell脚本利用shell的功能缩写的一个"程序&quo

Linux中的shell脚本编程——基础篇

概述: shell脚本在Linux系统管理员的运维工作中非常重要.shell脚本能够帮助我们很方便的管理服务器,因为我们可以指定一个任务计划,定时的去执行某一个脚本以满足我们的需求.本篇将从编程基础.脚本基本格式.变量.运算.条件测试这几个方面详细介绍shell脚本编程的基础内容,也是我们必须要掌握熟练的内容. 一.编程环境 1.程序:指令+数据 程序编程的风格有两种: 过程式:以指令为中心,数据服务与指令 对象式:以数据为中心,指令服务于数据 2.程序的执行方式: □计算机:只能识别二进制文件