shell 复习笔记

-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
循环判断类
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-

for((i=1;i<=10;i++));
do
echo $(expr $i \* 3 + 1);
done

条件 双括号 用分号分开,分别是 初始值;范围;变化 for do done

if [ -f "$FILE" ];then
echo "OK"
else
echo "error $FILE" > error.log
mail -s "$FILE backup fail" [email protected] <error.log
fi

开头结尾 用if --- fi 条件后; if ;then else fi

while [ "$var" != "by" ]

do

echo "you input a char $var "

read var

done

-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
命令类
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
sort -t : -n -k 1 new.txt (-t 分隔符 -n 以纯数字 -k 第几个域 -u 去重 -r 逆排序,-f 忽略字母大小写 -o file)
1:hello
2:hehe
8:exit
10:haha
11:nihao
12:hello

cut -d‘ ‘ -f 1 filename (-d 分隔符 -f 第几个域 -c 字符 -b 字节 utf-8 3个字节一个汉字)

sed -n "1p" file (-n p搭档使用 显示第几行 a下一行增加 i 上一行加 s 替换 "s/^s/title/g" d 删除)

date -d "19700102 08:00:00" +%Y-%m-%d:%H:%M:%S
1970-01-02:08:00:00
date -s "20171111 11:02:00"

uniq [ -c | -d | -u ] [ -f Fields ] [ -s Characters ] [ -Fields ] [ +Characters ] [ InFile [ OutFile ] ]

-c 在输出行前面加上每行在输入文件中出现的次数。
-d 仅显示重复行。
-u 仅显示不重复的行。
-f Fields 忽略由 Fields 变量指定的字段数目。
-s Characters 忽略由 Characters 变量指定的字符的数目
cut -d‘:‘ -f 2 new.txt |sort -r |uniq -c -d
2 nihao
2 hello
2 hehe

-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
正则类
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
基础的 * , \<\> , \{n,m\} ,扩展的+, ?, 都是其前面的字符重复次数 《<<<重点《<<<<

#例子 new.txt
12:hello
2:hehe
10:haha
11:nihao
1:hello
20:nihao
19:hehe
8:exit
23.bay

$grep -e ‘^[1-9]:.*[t]$‘ new.txt <<<<<例子<<<<
8:exit
grep -e "\<ni\>" new.txt <<<<<例子<<<< \<ni\> 要完整的词!!!
结果找不到
$ sed ‘s/ni/\*/g‘ new.txt |grep -e ‘\<hao\>‘ <<<<<例子<<<< 单词前面是*这样可以
11:*hao
20:*hao

$sed "s/[:.]/\+/g" new.txt <<<<<例子<<<<
12+hello
2+hehe
.....
23+bay

$ sed "s/[l]\{2\}/\*\*/g" new.txt <<<<<例子<<<<
12:he**o
2:hehe
$ sed ‘s/ni/\*/g‘ new.txt <<<<<例子<<<<
...
11:*hao
...

$ awk -F[:] ‘{ print $1,‘\t‘,$2 }‘ new.txt |$awk -F: ‘{ print $1"\t"$2 }‘ new.txt <<<例子的区别<<<<<<
12 hello |12 hello
2 hehe |2 hehe
.... |....

cat /etc/passwd |awk -F ‘:‘ ‘BEGIN {print "name,shell"} {print $1","$7} END {print "blue,/bin/nosh"}‘
awk -F: ‘/root/{print $7}‘ /etc/passwd
awk ‘/root/‘ /etc/passwd == grep -e ‘root‘ /etc/passwd

$awk -f awk.sc new.txt
#awk.sc
BEGIN{ FS=":";print "begin" }
{ print $1 }
END { print "end" }

sort cut awk 的域符号!!!!
sort -t‘:‘ -k 1
cut -d‘:‘ -f 1
awk -F[:.] { print $1 } <<<<<例子<<<< [正则 : 或 .] 如果用‘’ 不支持 sort或cut也不支持

时间: 2024-09-30 22:01:08

shell 复习笔记的相关文章

shell复习笔记----用户管理

$ who    可以知道系统上有多少登陆 $who |wc -l 计算用户个数 注意:|是管道符号,可以在两个程序之间建立管道(pipeline):who 的输出,成了 wc 的输入, wc 所列出的结果就是已经登陆用户的个数 将管道转变成一个独立的命令,方法是将这条命令输入一个一般的文件中,然后使用 chmod 为该文件设置执行的权限. #! /bin/sh                        当一个文件中开头的两个字符时#!时,内核会扫描该行其余的部分,看是否存在可用来执行程序的

shell复习笔记----命令与参数

shell最基本的工作就是执行命令. 每键入一道命令, shell 就会执行. $cd work;ls -l whizprog.c 首先:格式很简单,以空白(Space 键或者 Tab键)隔开命令行中的各个组成部分. 其次,命令名称是命令行的第一个项目.通常后面会跟着选项(option),任何额外的参数(argument)都会放在选项之后 第三,选项的开头是一个破折号(或减号),后面接着一个字母.选项可有可无,有可能需要加上参数.不需要参数的选项可以合并. $ ls -lt whizprog.c

shell复习笔记----入门知识

Unix 简史 UNIX 最初是由贝尔实验室(Bell Telephone Laborataries)的计算机科学研究中心开发的,第一版诞生于1970年--也就是在贝尔实验室退出Multics项目不久.在 UNIX 广受欢迎的功能中,有许多便是来自Multics 操作系统. 它有下列优势: 系统由用户自行开发.他们使用这套系统来解决每天遇到的计算问题. 研究人员不受拘束地进行试验,必要时也可以任意变换程序. 贝尔实验室的研究人员都是计算机科学家,他们所涉及的系统不单单自己使用,也分享给同事们--

shell复习笔记----查找与替换

查找文档 以grep 程序查找文本(匹配文本 matching text)相当方便.传统上有三种程序可以用来查找整个文本文件. grep 最早的文本匹配程序.其最简单的方式就是使用固定字符串 $ who |grep -F austen //范例中使用- F 选项,以查找固定字符串 austen. 事实上,只要匹配的模式里未含有正则表达式的 meta 字符(metacharacter),则 grep 默认行为模式就等同于使用了-F. $ who |grep austen egrep 扩展式 gre

2014年软考程序员-常考知识点复习笔记【第五章】

51CTO学院,在软考备考季特别整理了"2014年软考程序员-常考知识点复习笔记[汇总篇]",帮助各位学院顺利过关!更多软件水平考试辅导及试题,请关注51CTO学院-软考分类吧! 查看汇总:2014年软考程序员-常考知识点复习笔记[汇总篇]  内部排序 考查你对书本上的各种排序算法及其思想以及其优缺点和性能指标(时间复杂度)能否了如指掌. 排序方法分类有:插入.选择.交换.归并.计数等五种排序方法. (1)插入排序中又可分为:直接插入.折半插入.2路插入(?).希尔排序.这几种插入排序

安卓开发复习笔记——Fragment+FragmentTabHost组件(实现新浪微博底部菜单)

记得之前写过2篇关于底部菜单的实现,由于使用的是过时的TabHost类,虽然一样可以实现我们想要的效果,但作为学习,还是需要来了解下这个新引入类FragmentTabHost 之前2篇文章的链接: 安卓开发复习笔记——TabHost组件(一)(实现底部菜单导航) 安卓开发复习笔记——TabHost组件(二)(实现底部菜单导航) 关于Fragment类在之前的安卓开发复习笔记——Fragment+ViewPager组件(高仿微信界面)也介绍过,这里就不再重复阐述了. 国际惯例,先来张效果图: 下面

计算机图形学 复习笔记

计算机图形学 复习笔记 (个人整理,仅做复习用 :D,转载注明出处:http://blog.csdn.net/hcbbt/article/details/42779341) 第一章 计算机图形学综述 研究内容 图形的概念:计算机图形学的研究对象 能在人的视觉系统中产生视觉印象的客观对象 包括自然景物.拍摄到的图片.用数学方法描述的图形等等 图形的要素 几何要素:刻画对象的轮廓.形状等 非几何要素:刻画对象的颜色.材质等 图形表示法 点阵表示 枚举出图形中所有的点,简称为图像. 参数表示 由图形的

安卓开发复习笔记——Fragment+ViewPager组件(高仿微信界面)

什么是ViewPager? 关于ViewPager的介绍和使用,在之前我写过一篇相关的文章<安卓开发复习笔记——ViewPager组件(仿微信引导界面)>,不清楚的朋友可以看看,这里就不再重复. 什么是Fragment? Fragment是Android3.0后新增的概念,Fragment名为碎片,不过却和Activity十分相似,具有自己的生命周期,它是用来描述一些行为或一部分用户界面在一个Activity中,我们可以合并多个Fragment在一个单独的activity中建立多个UI面板,或

安卓开发复习笔记——WebView组件

我们专业方向本是JAVA Web,这学期突然来了个手机App开发的课设,对于安卓这块,之前自学过一段时间,有些东西太久没用已经淡忘了 准备随笔记录些复习笔记,也当做温故知新吧~ 1.什么是WebView? WebView(网络视图)能加载显示网页,可以将其视为一个浏览器,它使用了WebKit渲染引擎加载显示网页. 废话不多说,直接上代码 1.需要在xml布局文件中声明WebView组件 1 <WebView 2 android:id="@+id/webview" 3 androi