Linux脚本编程

作者: 让梦想腾飞 | 来源:发表于2018-07-22 19:56 被阅读41次

1、echo

echo 'hello world!'

echo "hello world!"错误,“”解释,!有特殊用途

echo -e "\e[1;31m abcd \e[0m"

30m 黑色,31m红色 32m绿色 33m黄色 34m蓝色 35m洋红 36m青色 37m白色

2、脚本执行

./hello.sh
unix2dos 和dos2unix 讲windows下.sh文件转为linux下,因为系统换行符不同

3、输入输出重定向

date >> abc 2>>&1
date1 >> abc 2>>&1
date &>>abc
date1 &>>abc

把正确和错误信息都追加到文件中
2(不能有空格)>>&1

ls1 >>abc 2>>def

把正确数据输入到abc ,把错误数据输出到def

4、顺序执行和管道符

ls;cd /user;date

cd /user错误不影响date执行

ls && echo yes ||echo no

ls命令正确执行 打印yes 否则打印no

cat /etc/passwd |grep "root"

grep -i 区分大小写
-n 显示行数
--colre=auto 显示颜色

cat /etc/passwd |grep -n --color=auto "root"

5、bash中特殊符号

‘’单引号里的特殊符号不识别
""识别特殊符号
'#'注释
$调用变量值
\ 转义字符
& 放入后台,即最小化

6、变量

aa="aa"
bb=${aa}123
cc="$aa"456
echo "$aa $bb $cc"
unset aa

7、位置参数

 #!/bin/bash
 sum=$(($1+$2))
  echo "sum is $sum"
$0 所有参数 $1第一个参数 $2 第二个参数
 1 #!/bin/bash
  2 echo $#
  3 echo $*
  4 echo $@

./param.sh 1 23 4

3
1 23 4
1 23 4

8、预定义变量

echo $?

判断上一条命令是否正确执行,正确为0,否则非0

#当前进程Pid
echo $$
find /root/ -name "test.txt" &
#后台运行最后一个进程pid
echo $!

9、数值运算和运算符

aa=11
bb=22
ff=$(($aa+$bb))
echo $ff

10、cut

分隔符为空格符时不好判断
制表符,或冒号分号等可以

cat /etc/passwd |grep -n -v "root"|cut -d ":" -f 2,6

提取冒号分隔的第2列和第6列

11、awk

awk 条件 输出 文件

#打印第1、5、6列
df -h|awk '{print $1 "\t" $5 "\t" $6}'
#打印第5列并提取数值
df -h|grep "disk" |awk '{print $5 }'|cut -d "%" -f 1
#先分隔,再打印
cat /etc/passwd|grep ":"|awk 'BEGIN{FS=":"}{print $1 "\t" $3}'
#再末尾加"aaaa"
cat /etc/passwd|grep ":"|awk 'BEGIN{FS=":"}{print $1 "\t" $3}END{print "aaaa"}'

12、sed

#打印第2行
 sed -n "2p" student.txt
#删除第2到4行,没有删除文件
sed '2,4d' student1.txt
#追加,没有更改源文件
sed '2a cheat' student1.txt
#将第4行99替换成55
sed '4s/99/55/g' student.txt
#允许多个条件同时执行
sed -e 's/liming//g;s/gao//g' student.txt

13、流程控制

#判断文件是否存在
test -e student.txt
echo $?
#判断文件是否是普通文件
test -f student.txt && echo yes || echo no
#判断parm.sh是否比sum.sh新修改
test parm.sh -nt sum.sh && echo yes || echo no
#旧修改
est parm.sh -ot sum.sh && echo yes || echo no
#-ef 判断inode号是否一致
#判断23是否大于等于24
test 23 -ge 24 && echo yes || echo no
#-eq 相等 -ne 不相等  -gt 大于 -lt 小于  -ge大于等于  -le 小于等于
#判断$name是不是空 -n不为空判断,==  !=
test -z "$name" &&echo yes ||echo no

相关文章

  • linux/shell 分析nginx日志

    一、学习资料 高级Bash脚本编程指南 LINUX与UNIX SHELL编程指南 鸟哥的Linux私房菜 IBM ...

  • 技术书单推荐

    Linux系列 《Linux命令行与shell脚本编程大全》评分:★★★★★适用范围:Linux入门评价:我看过最...

  • Linux脚本编程

    1、echo echo "hello world!"错误,“”解释,!有特殊用途 30m 黑色,31m红色 32m...

  • linux 脚本编程

    • 查看CPU信息:lscpu • 查看内存信息:free -h • 查看硬盘信息:df -h 显示当前文件夹的大...

  • shell脚本学习(一)

    2019.12.15 参考自书籍《Linux命令行与shell脚本编程大全》

  • Linux笔记及习题

    Linux课程整理 1、学习资料 马哥linux视频,Linux 命令行与Shell脚本编程大全 2、系统认知 看...

  • Linux -- 重定向STDIN与STDOUT

    《Linux命令行与shell脚本编程大全》,4 E -- Chapter 15 一、理解输入和输出 显示脚本输出...

  • Python3学习笔记

    脚本式编程 在Linux/Unix系统中,你可以在脚本的顶部添加以下命令让Python脚本可以像SHELL脚本一样...

  • shell脚本(1)

    1、什么是shell脚本? shell脚本,包含若干个Linux命令集合;它是一个脚本,不能作为正式的编程语言。 ...

  • Linux之shell脚本编程

    Linux之shell脚本编程 主要内容: • Vim 编辑器• Shell 脚本• 任务提交 Vim 编辑器 V...

网友评论

    本文标题:Linux脚本编程

    本文链接:https://www.haomeiwen.com/subject/ajelmftx.html