新睿云

> 知识库 > Linux之shell脚本编程不会用?基本命令需知道

Linux之shell脚本编程不会用?基本命令需知道

作者/来源:新睿云 发布时间:2019-11-11

Linux系统拥有免费开源、管理更加简化、灵活性更高、开发和部署速度更快、安全性更高等优势,让越来越多的管理员和开发人员选择使用Linux。那么,作为Linux系统中的shell脚本是什么?

Shell是命令解释器(command interpreter),是Unix操作系统的用户接口,程序从用户接口得到输入信息,shell将用户程序及其输入翻译成操作系统内核(kernel)能够识别的指令,并且操作系统内核执行完将返回的输出通过shell再呈现给用户,下图所示用户、shell和操作系统的关系:

shell

Shell也是一门编程语言,即shell脚本,shell是解释执行的脚本语言,可直接调用linux命令。一个系统可以存在多个shell,可以通过cat /etc/shells命令查看系统中安装的shell,不同的shell可能支持的命令语法是不相同的。

Linux系统为什么要使用shell脚本?

因为在Linux中,几乎所有的配置文件、日志都是纯文本类型文件,而shell脚本擅长处理纯文本类型的数据。

linux  shell

常用shell脚本命令介绍

1.diff命令

diff命令是用来比较两个文件或目录的不同

c –change d –delete a –add

<表示第一个文件中的内容

—-分割线

>表示第二个文件中的内容

2.cut命令

cut 命令多用与字符截取

cut -d 指定分隔符

cut -f 1,7|1-7 指定截取的列 1,7(1和7) 1-7(1到7)

cut -c 1,4|1-4 指定截取的字符位置

3.sort命令

多用于字符排序

sort -n 纯数字排序

sort -r 倒序

sort -u 去掉重复数字

sort -o 输出到指定文件中

sort -t 指定分隔符

sort -k 指定要排序的列

4.uniq命令

对重复字符做相应的处理

uniq -u 显示唯一的行

uniq -d 显示重复的行

uniq -c 每行显示一次并统计重复次数

5.&&和||运算符

&&用来执行条件成立后执行的命令,||用来执行条件不成立后执行的命令

[root@localhost mnt]# ping -c1 -w1 172.25.254.62 &> /dev/null && echo this is up|| echo this is down

this is up

## -c代表次数 -w代表等待时间

6.test命令

test 命令和[ ]等同

test “A”==“A”==“B” 等同 [ “A”==“A”==“B” ]

[ “A”=“A”=“B” ]等于

[ “A”!=“A”!=“B” ]不等于

[ “A”−eq“A”−eq“B” ] 等于

[ “A”−ne“A”−ne“B” ] 不等于

[ “A”−le“A”−le“B” ] 小于等于

[ “A”−lt“A”−lt“B” ] 小于

[ “A”−ge“A”−ge“B” ] 大于等于

[ “A”−gt“A”−gt“B” ] 大于

[ “A”−ne“A”−ne“B” -a “A”−gt“A”−gt“B” ] ne表示不等于,a表示and都满足

[ “A”−ne“A”−ne“B” -o “A”−gt“A”−gt“B” ] o表示or至少满足一个

[ -z “A”]表示值为空[−n“A”]表示值为空[−n“A” ] 表示值不为空

[ “file1” -ef “file2” ] ef 表示节点是否相同

[ “file1” -nt “file2” ] 表示new,file1是否比file2文件新

[ “file1” -ot “file2” ] 表示old,file1是否比file2文件老

[-e “file”] 文件是否存在

[-f “file”] 文件是否为普通文件

[-L “file”] 文件是否为符号链接

[-S “file”] 文件是否为套接字

[-b “file”] 文件是否为块设备

[-d “file”] 文件是否为目录

[-c “file”] 文件是否为特殊文件

7.tr命令

tr命令用于大小写转换。编写脚本,判断输入的内容和hello是否相等:

[root@localhost mnt]# vim test.sh

#!/bin/bash

[ "$1" = "hello" ]&& {

echo yes

}||{

echo no

}

热门标签
new year
在线咨询
咨询热线 400-1515-720
投诉与建议
{{item.description}}

—您的烦恼我们已经收到—

我们会将处理结果发送至您的手机

请耐心等待