思维导图学 Linux Shell攻略之小试牛刀篇

曾听一位大神讲过,带着目的去学,知识往往能记得牢,记得稳。借助思维导图这个工具,对一些我感兴趣的知识点进行分类管理。以后方便自己复习。

我会以思维导图+代码段的方式,回滚学习linux shell编程。

转义/色彩

与用户交互的接口

#打印一个普通的字符串
[[email protected] ~]# echo "it‘s isa dog"
it‘s is a dog
 
#打印一个带有单引号和换行符的字符串,单引号可正常输出,但换行符没有效果
#没有达到想要的效果
[[email protected] ~]# echo "it‘s isa dog\n this is new line"
it‘s is a dog\n this is new line
 
# -e 开启转义功能
[[email protected] ~]# echo -e "it‘sis a dog\nthis is new line"
it‘s is a dog
this is new line
-e     enable interpretation of backslash escapes
 
[[email protected] ~]# echo it is a dog
it is a dog
 
#红字
[[email protected] ~]# echo -e "\e [1;31mthisis a color\e[0m"
this is a color
[[email protected] ~]# echo -e"\033[1;31mthis is a red color\033[0m"
this is a red  color
#绿底
[[email protected] ~]# echo -e"\e[1;42mthis is a red color\e[0m"
this is a red  color
 
#红字绿底
[[email protected] ~]# echo -e"\e[1;31;42mthis is a red color\e[0m"
this is a red  color
 
#有效数字
echo "scale=3;3/8"|bc
echo $bc

计算

这是编程语言的功能之一了

va=1;
vb=2;
#echo $($va+$vb);error
#echo $(va+vb); error
echo [$va+$vb] #output :[1+2]
 
echo $[va+vb]  #ok
echo $(($va+$vb)) #//ok
 
let result=$va+vb #ok
echo $result
result=`expr 3 + 1` #ok, 注意等号,两边不能有空格;result=`expr $va + 1` 也可以
echo $result
result=$(expr $va + 1) #ok, 注意等号,两边不能有空格,+号必须有空格,否则会当成字符串输出
echo $result

输出变量长度

内置功能(感兴趣而已)

[[email protected] test]# exportSTR="1234"
 [[email protected] test]# echo $STR
1234
[[email protected] test]# echo ${#STR}
4

函数

这是最基本的,不能语句罗列吧

#括号里不能有参数,获取参数通过$1,$2....获取
function sayHello(){
         echohello $1
}
#[email protected]:参数列表
#$*:参数字符串
sayHello zgy;#这样调用

读取命令序列

可得一个命令的结果

#!/bin/bash
 
 COMMANDS=ls|cat -n
 echo $COMMANDS #输出为空
 
 COMMANDS=$(ls|cat -n)
 #$COMMANDS #error
 echo $COMMANDS #输出期望结果
 
 
 echo `$COMMANDS` #error
 echo `ls|cat -n` #输出期望结果  反引用
 
###############################################
#子shell,在子shell操作,不影响主shell
echo `pwd`;
cd /bin
echo `pwd`;
 
# output#
# /root/test
# /bin
 
echo `pwd`;
(cd /bin)
echo `pwd`;
# output#
# /root/test
# /root/test

打印所用时间

评定一个算法的效率

start=$(date +%s) #start=`date +%s`,等号不能有空格,如果有空格,会被变量当成命令
for (( i = 0; i < 100000; i++ ));do
         echo$i >/dev/null
done
end=`date +%s`
 
diff=$(($end-$start))
echo "use times(ms):"$diff
 
echo "use times(ms):"$(($end-$start))

常用的测试

判断权限等,shell编程汇总功能常用

#[[]] 必须有空格
#是否是文件,文件是否存在
[[email protected] test]# [[ -f 1.txt ]]&& echo "1.txt is file" || echo  "1.txt is notfile"
1.txt is file
#是否是可执行文件
[[email protected] test]# [[ -x 1.txt ]]&& echo "1.txt can be execute" ||  echo  "1.txt can be execute"
1.txt can be execute
[[email protected] test]# [[ -x 1.txt ]]&& echo "1.txt can be execute" ||  echo  "1.txt can‘t be execute"
1.txt can‘t be execute
 [[email protected] test]# chmod  +x 1.txt
[[email protected] test]# [[ -x 1.txt ]]&& echo "1.txt can be execute" ||  echo  "1.txt can‘t be execute"
1.txt can be  execute
[[email protected] test]#
#是否是目录
[[email protected] test]# [[ -d 1.txt ]]&& echo "1.txt is dir" || echo  "1.txt is‘t dir"
1.txt is‘t dir
[[email protected] test]# [[ -d /bin ]]&& echo "1.txt is dir" || echo  "1.txt is‘t dir"
1.txt is dir
#判断是空串吗?
[[email protected] test]# [[ -z"1" ]] && echo "is null" ||  echo "is not null"
is not null
[[email protected] test]# [[ -z"" ]] && echo "is null" ||  echo "is not null"
is null
-z 与-n功能相反

小计

看书本,很简单的代码,也就是一看就懂的代码。其实真正自己写出来,在运行起来得到结果,也不容易。 眼高手低要不得。

我就在写程序是经常遇到一些这样情况。有时候要求有空格(比如条件判断时)。有时候不能有空格(变量赋值时)。有时候,单引号有时候又 反引号。哎要注意啊这些小细节,总结经验。

小小代码也不简单。

如果广大读者,也可以看着我的脑图,一步步写一下脚本,也会有所收获。

算个开篇吧。断断续续,随着学习深入,例子也会逐渐深入。希望自己的shell水平,能有所突破。

时间: 2024-12-25 02:40:25

思维导图学 Linux Shell攻略之小试牛刀篇的相关文章

思维导图学 Linux Shell攻略之干货篇 mysql数据库脚本管理系统

以结果为导向的学习,才是最有效率学习.笔者以前也曾经隔三差五的学习linux shell编程来着.给我的感觉就是,今天学了,后天忘了,一星期之后就白学了. 还好,最近自己平时没啥事,一直照着<linux shell攻略>,学做一些小例子,看着自己写的shell程序,简单的几行程序,实现一些好玩的效果,信心满满.不知不觉间,慢慢坚持了2周. 说说自己的干货吧.其实就是一个linux 操作mysql数据库脚本管理系统. 功能谈不上复杂,就是在平时工作中,笔者要维护多套业务系统,这些业务系统主要功能

&lt;linux shell 攻略&gt; 庖丁解牛 mysql数据库脚本管理系统

操作界面 这个小系统一共包含4个脚本 sh 功能 备注 oneKey.sh 主程序,调用其他程序,对外提供功能 menu.sh 勾画菜单 function.sh 提供操作数据库接口 valid.sh 操作mysql数据库,验证数据 menu.sh 画字符菜单 #!/bin/bash function print_main_menu(){ cat <<EOF ####################################### #    1)创建数据库                 

数学思维导图的作用是什么?如何绘制思维导图

数学对大家来说应该是比较难的,思维导图在我们学习数学的过程中也是比较重要的,那么,重要在哪呢?下面给大家总结一下思维导图思维导图的作用及绘制技巧. 数学思维导图学什么? 1.是什么:首先将数学的基本概念记住,理清每一个概念的定义是什么,然后把概念变成自己理解的符号在思维导图中做出图像: 2.怎么做:每个问题都有它的解决方法,思路,可以将这种思路划成步骤在数学思维导图中: 3.有什么用:用数学思维导图记住知识的条件,然后记住什么时候用,有什么用 如何绘制思维导图? 1.打开迅捷画图,点击页面上方[

思维导图or概念图

(更多点击:思维导图教程)(原文链接:http://www.mindmanager.cc/) 知识或问题的表达不只一种形式:对应同一系列的概念,可以有不同结构的概念图出现.这个时候,我们尤其需要利用思维导图来制作一幅概念图.本篇思维导图教程就讲解了如何用思维导图制作概念图. 1. 认定中心主题:辨清你希望利用概念图了解的问题焦点.知识概念.用这个中心主题作导引,找出十至二十几个与中心主题相关的概念,并表列出来.有些人会喜欢将个别概念写上Post-its或卡纸上,可方便尝试将概念任意放置.每一张卡

精心整理「服务器Linux C/C++」 成长路程(附思维导图)

前言 我不是名校毕业,更没有大厂的背景,我只是一个毕业不到 2 年的普普通通的程序员,在摸爬滚打的工作这段时间里,深知了有一个「完整的知识体系」是非常重要的.当事人非常后悔没有在大学期间知道这个道理-- 众多大厂招人的需求也是非常注重此方面,毕竟我们不能单单只是一个只会写代码的程序员,更应该成为一个全面的工程师,能够迅速解决工作上的需求及众多问题. 特此,我根据众多大佬的书籍推荐和豆瓣的高分书籍总结了一份较为全面的「服务器Linux C/C++」 成长路程,我自己也是在跟着这份思维导图进一步的学

Node 即学即用 笔记 思维导图

Node即学即用 REPL(Read-Evaluate-Print-Loop) console.log .clear .help .exit require('http') createServer 聊天服务器 tcp服务器 require('net') on connection on data on end on error telnet express app.get app.post -app.js -public -views ----partials EJS模板语言 测试 requi

Kali linux渗透测试的艺术 思维导图

Kali Linux是一个全面的渗透测试平台,其自带的高级工具可以用来识别.检测和利用目标网络中未被发现的漏洞.借助于Kali Linux,你可以根据已定义的业务目标和预定的测试计划,应用合适的测试方法论,从而达到预期的渗透测试结果.本书采用循序渐进的方法讲解了前沿的黑客工具和技术,有助于提高读者的渗透测试实用技巧.本书提供了所有必需的实验准备和测试流程,旨在从业务的角度反映真实世界中的攻击场景.   本书内容:通过安装.配置.运行和升级核心系统组件来设置Kali Linux的测试环境:执行正规

学程序,思维导图训练营

思维导图闯进我们的大脑不过短短20年,却已带来无法估量的成果,越来越多的人开始学习思维导图,那么如何掌握学习思维导图的方法,怎样才算是学会了呢,快进来思维导图训练营,达人教你怎样学思维导图. 一.图像化视觉呈现 一图抵千字,图像化的视觉呈现方式,更容易激发我们的想象力,加深我们对事物的理解,传给更多信息资讯. 二.放射性思维模式 放射性思维的优势在于锁定一个目标关键词,所有的联想与记忆都围着这个关键词展开,不会偏离方向.更重要的是在坚持使用思维导图的过程中,培养我们一种从全局出发思考问题和分析问

自制的一个信息学科所学相关课程的思维导图

学院派给的课程需要自制ppt,本来准备想在Ppt绪论中插入思维导图,用了半小时画完之后,发现面积太大,于是插入到博客中了. 第一次见到这种图是在2010年理工人的时候,已毕业多年的武长斌给当时重做的主页画的一个评判用的图,多年后的理解了老站员的走心. 不得不说,经过这十年的发展,信息科学要学的课程远比其他专业多,横跨计算机.自动化.数学.管理,遇到交叉学科还得涉及物理.生物和医学. 原文地址:https://www.cnblogs.com/ubiwind/p/12111057.html