0. 分号=换行

1. 变量赋值不可以有空格

2. 变量赋值不加$, 使用变量的时候才加$


3. 字符串
变量:一般用双引号
str=“aaa”;
获取字符串长度:#   (数组也是
len=${#str};
提取子串, 从第二个位置开始 取2个字符
s=${str:1:2};


4. 数组
变量用()表示,并用空格分开
arr=(1 2 3);
获取数组的所有元素:@或者*
echo ${arr[@]}
获取数组长度
len=${#arr[@]};          // 注意要加[@],否则#arr会输出1


5. 运算
算术表达式 + - * / %
val=`expr $a + $b`          // *需要写成 \*,多写一个转义符
赋值
val=$a
条件表达式 ==  !=
if [ $a == $b ]         // 空格一个都不能少
关系运算符 -eq相等 -ne不等 -gt大于 -lt小于 -ge大于等于 -le小于等于
if [ $a -lt $b ]
布尔运算符 !非 -o或 -a与
if [ $a -lt 100 -a $b -gt 15 ]
逻辑运算符 && ||
if [[ $a -lt 100 && $b -gt 100 ]]         // 注意和上一条区别
字符串运算  =相等 !=不等 -z长度为0 -n长度不为0 $为空
if [ $str ]


6. 其他运算符
let 赋值并运算,支持++/--
let a++; let a+=2
expr 运算
expr 1 \* 2 // 运算符两边需要有空格,并且乘号和括号要加转义
bc 支持浮点运算和平方
echo "10^10" |bc; echo "1.2 < 2" |bc


7. echo 
echo -e "OK! \n"        // -e指开启转义,这样\n才会显示换行

8. printf
%s 输出一个字符串,%d 整型,%c 字符,%f 实数,以小数形式输出。
%-10s 指一个宽度为 10 个字符(- 表示左对齐,没有则表示右对齐),任何字符都会被显示在 10 个字符宽的字符内,如果不足则自动以空格填充,超过也会将内容全部显示出来。
%-4.2f 指格式化为小数,其中 .2 指保留2位小数。
printf "%-10s %-8s %-4.2f\n" ABC male 48.6543


9.流程控制
if () 
if 条件表达式; then
        命令
elif 条件表达式; then
        命令
else
        命令
fi
for ()
for i in {1..3}; do                for ((i=1;i<=5;i++)); do 
        echo $i                              echo $i
done                                 done

# 检查多个主机是否存活
for ip in 192.168.1.{1..254}; doif ping -c 1 $ip >/dev/null; thenecho "$ip OK."elseecho "$ip NO!"fi
done

while ()
while 条件表达式; do
        命令
done

# 使用 while 循环逐行读取 a.txt 文件
# 方法一
cat ./a.txt | while read LINE; doecho $LINE
done
# 方法二
while read LINE; doecho $LINE
done < ./a.txt
# 方法三
exec < ./a.txt
while read LINE; doecho $LINE
done

case
case 模式名 in
        模式 1)
                命令
                ;;
        模式 2)
                命令
                ;;
        *)
        不符合以上模式执行的命令
esac

case $1 in[0-9])echo "match number.";; [a-z])echo "match letter.";;'-h'|'--help')echo "help";; *)echo "Input error!"
exit esac

10. 函数
func() {
         echo "Hello $1"
}
func world                // func 函数名代表执行,不用加()

11. 正则
(开一个新的连接吧。。)

12. grep / sed / awk
(也开一个新的连接吧)


13. 标准输入、输出和错误
文件描述符                        重定向符号
0 标准输入                        > 从左往右输入                  < 从右往左输入
1 标准输出                        >> 从左往右追加输入        << 从右往左输入
2 标准错误                        & 重定向绑定
重定向输出
echo "test" > a.txt         // 覆盖掉a原本中的所有东西
echo "test" >> a.txt       // 追加
重定向输入
grep "test" --color < a.txt       // a.txt 内容作为 grep 输入
重定向输出+错误
echo "1 + 1" |bc &> err.log        // 不确定执行对错,但无论对错都覆盖到err.log
echo "1 + 1" |bc > err.log 2>&1        // 上一条的另一种写法,2/1 代表错误/输出
重定向到空设备 (当不想要这些输出数据时)
echo "test" >/dev/null        // 忽略输出
echo "1 + 1" |bc 2>/dev/null        // 忽略错误


14. 常见目录

/home

普通用户家目录

/root

超级用户家目录

/usr 用户命令、应用程序等

/var

应用数据、日志等目录

log在这里

/lib

库文件和内核模块目录

/etc

系统和软件配置文件

系统版本、主机名与 IP、dns、主机名、服务启动脚本、网卡、ssh、系统任务计划、sudo配置、硬盘挂载配置、tcp访问列表等

/bin

可执行程序目录

/boot

内核加载所需的文件,grub 引导

/dev 设备文件目录

IDE 设备、SCSI 设备、LVM 逻辑磁盘等

/tmp

临时文件目录

/opt

第三方软件安装目录

/proc

虚拟目录,Linux启动后生成。存放内核运行时的参数、网络信息、进程状态。

运行参数包括CPU 信息、swap分区信息、文件系统挂载信息、CPU 利用率,磁盘,内存页等等

/proc/net 存放网络信息 包括tcp、udp状态,网卡流量、路由表、arp信息表、socket 使用情况、传输协议的信息等
/proc/sys 内核参数,可读写。分四大类

fs 文件系统各方面信息,包括inode、目录项等;
kernel内核行为,类似运行参数的可读写版本;
net 网络配置信息;
vm 虚拟内存子系统,或称交换空间。

shell | 基基基础相关推荐

  1. 4.电子计算机的分类,公基计算机基础知识汇总40

    公基计算机基础知识汇总40 (3页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 3. 运算精度高电子计算机具有以往计算机无法比拟的计算精度, ...

  2. shell脚本的基础知识

    shell脚本的基础知识 1 什么是shell 2 shell脚本的意义 3 如何创建shell脚本 4 如何执行shell脚本 5如何对脚本脚本进行调试 6 脚本练习 1 什么是shell shel ...

  3. shell常用的基础命令

    shell常用的基础命令 1 diff命令 2 patch命令 3 cut命令 4 sort命令 5 uniq 命令 6 tr命令 7 &&和 || 8 test命令 8.1 test ...

  4. shell脚本由基础变量及特殊变量($@、$*、$#等)到实战。

    shell脚本由基础变量及特殊变量($@.$*.$#等)到实战. 一.shell脚本建立: shell脚本通常是在编辑器(如vi/vim)中编写,也可以在命令行中直接执行: 1.脚本开头:     规 ...

  5. linux基础—课堂随笔_03 SHELL脚本编程基础

    shell脚本编程基础 条件选择:if语句 选择执行: 注意:if语句可嵌套 单分支 if(开头)判断条件:then 条件为真的分支代码  fi(结尾) 双分支 if(开头)判断条件:then 条件为 ...

  6. 详细介绍Linux shell脚本系列基础学习(列表)

    本系列适合Linux初学者,属于Linux入门级教程,主要介绍了Shell的分类.语法格式以及脚本的使用和编写格式等. 不断更新中,是Shell学习的必读经典教程.现主要包含以下文章: Linux S ...

  7. linux sh 必要,Linux Shell学习之基础篇(不适合学习,仅为本人笔记)

    在学习Linux和OpenStack过程中,感觉不管是大规模部署部署还是运维,Shell脚本都已经是标配,所以学好脚本很有必要. 以下仅为Linux Shell的一些基础笔记,这里作为笔记记下. == ...

  8. Linux Shell脚本编程基础

    2 Linux Shell脚本编程基础 发表于: Linux, Shell, UNIX, 资源分享 | 作者: 谋万世全局者 标签: Linux,Shell,编程基础,脚本 本文作者:Leal 授权许 ...

  9. 《Linux C编程从入门到精通》——1.3 Shell的使用基础

    本节书摘来自异步社区<Linux C编程从入门到精通>一书中的第1章,第1.3节,作者:宋磊 , 程钢著,更多章节内容可以访问云栖社区"异步社区"公众号查看 1.3 S ...

  10. 《Linux C编程从入门到精通》一1.3 Shell的使用基础

    本节书摘来自异步社区<Linux C编程从入门到精通>一书中的第1章,第1.3节,作者 宋磊 , 程钢,更多章节内容可以访问云栖社区"异步社区"公众号查看 1.3 Sh ...

最新文章

  1. 使用Node.js快速搭建WebSocket server
  2. STL之nth_element__寻找第n大的元素
  3. 5脚12v继电器接线图解_【电器元件002】你真的懂汽车继电器么
  4. Unity 2017 Game Optimization 读书笔记 The Benefits of Batching
  5. 门限回归模型的思想_Stata+R:门槛回归教程
  6. GitHub下载文件时缓慢的问题
  7. 文件读取 linux_Linux 进程、线程、文件描述符的底层原理
  8. android数据存放map_Android存储数据到本地文件
  9. 电商视觉:焦点图的万能构图模板
  10. 华为云 GaussDB 数据库,会是新的国产之光吗?
  11. Disruptor 分析
  12. DXGI抓屏优化扩展:GPU硬件编码保存文件即录像为MP4和FLV,外加麦克风+计算机声音
  13. 在method方法被调用之后,仅打印出a=100,b=200,请写出method方法的代码
  14. 激光SLAM:LOAM-Livox 算法研究(1) -- 功能包编译与验证
  15. ActiveMQ的MQTT:WARN | Stealing link for clientId XXX From Connection Transport
  16. MYSQL不能远程连接
  17. 抽奖功能java开发_基于Java实现抽奖系统
  18. 《算法笔记》——基础篇习题选择结构
  19. [附源码]计算机毕业设计JAVA领导干部听课评课管理系统
  20. 怎么看服务器硬盘是机械还是固态,怎么辨别机械硬盘和固态硬盘?(附多种方法)...

热门文章

  1. 【JavaScript基础语法】正则表达式——限制input输入框只能输入字母、数字、字符等
  2. 浅谈做芯片和建高楼的相似性和相通性
  3. 江湖实习生:初入集客邦
  4. wlanconnect无法连接wifi_高铁上明明有WiFi!为何只能连接却无法使用?列车员说出了实情!...
  5. NBU 备份 SQL Server
  6. 学妹来实习,看我如何步步为营!
  7. JavaScript 删除空格(trim)
  8. 职业打假人的一箭三雕赚钱套路
  9. Unity简易实现人物换装功能
  10. 6款工具,让协同开发变得轻而易举!