Linux小课堂开课了(6)

学习bash shell基础知识
Bash shell 脚本的第一行是以#!开头,执行bash shell脚本前,需要修改其文件权限和所有权,使其变为可执行文件,使用chmod和chown相应修改文件的权限和所有权。
使用echo进行输出。使用转义字符\(取消单个字符的特殊含义),单引号’’(保留字符的字面值),双引号””(不保留美元符号$,,反引号’’,反斜杠\的字面值)
[[email protected] ~]# echo # hello

[[email protected] ~]# echo # hello

hello

[[email protected] ~]# echo ‘hello‘
Hello
[[email protected] ~]# echo "‘hello‘"
‘hello‘
使用变量,变量名称通常是大写字母,它们可以由数字、字母(大写和小写)和下划线字符_组成,但是不能以数字开头。等号=为变量分配值,不能使用空格将其与变量名称或值分隔开。
变量中存储的两种常见数据类型是整数值和字符串值,为变量分配字符串值时,建议用引号将其括起,避免bash将空格字符解释为单词分隔符。
扩展变量,在变量名称前面加上美元符号$,来重新调用变量的值。
命令替换,将命令的调用替换为执行命令后的输出,可以将命令括在反引号的中的旧形式来调用命令替换,如’<COMMAND>’,但是,首选方法是使用最新的$()语法,$(<COMMAND>)。
算术扩展,执行简单的整数算术运算,用$[]括起时,算术表达式将由bash进行求值,然后替换为求值结果,使用语法$[<EXPRESSION>].
常用的算术表达式的部分运算符及其含义
<VARIABLE>++ 变量后置递增
<VARIABLE>- - 变量后置递减
++<VARIABLE> 变量前置递增
--<VARIABLE> 变量前置递减
一元减法( -)
一元加法 (+)
求幂 ( *)
加法 (+) 减法 -(-) 乘法 (
) 除法 (/) 求余 (%)
使用for循环,循环按顺序逐一处理<LIST>中提供的项目,并且在处理列表中的最后一个项目之后退出。
for <VARIABLE> in <LIST>; do
<COMMAND>
...
<COMMAND> referencing <VARIABLE>
done
使用条件句和控制结构优化bash shell 脚本
二进制比较运算符用于整数比较
-eq 等于 [“$a” –eq “$b”]
-ne 不等于 [“$a” –ne “$b”]
-gt 大于 [“$a” –gt “$b”]
-ge 大于等于 [“$a” –ge “$b”]
-lt 小于 [“$a” –lt “$b”]
-le 小于等于 [“$a” –le “$b”]
二进制比较运算符用于字符串比较
= 等于 [“$a” = “$b”]
== 等于 [“$a” == “$b”]
!= 不等于 [“$a” != “$b”]

使用条件语句if/then
if <CONDITION>; then
<STATEMENT>
...
<STATEMENT>
fi
使用if/then/else语句
if <CONDITION>; then
<STATEMENT>
...
<STATEMENT>
else
<STATEMENT>
...
<STATEMENT>
fi
使用if/then/elif/then/else语句
if <CONDITION>; then
<STATEMENT>
...
<STATEMENT>
elif <CONDITION>; then
<STATEMENT>
...
<STATEMENT>
else
<STATEMENT>
...
<STATEMENT>
fi
使用case语句
case <VALUE> in
<PATTERN1>
<STATEMENT>
...
<STATEMENT>
;;
<PATTERN2>
<STATEMENT>
...
<STATEMENT>
;;
esac
实践一下
创建一个添加用户的脚本
[[email protected] ~]# vim user.sh
#!/bin/bash
if [ $# -eq 0 ]; then
echo ‘请提供参数‘
exit 1
fi
if [ ! -f $1 ]; then
echo ‘不存在‘
exit 1
fi
while read line
do
useradd -s /bin/fales $line
done < $1

[[email protected] ~]# chmod +x user.sh
创建一个用户名文件userlist
a
b
c
d
e
d
f
[[email protected] ~]# sh user.sh
请提供参数
[[email protected] ~]# sh user.sh aaa
不存在
[[email protected] ~]# sh user.sh userlist
useradd: user ‘d‘ already exists
[[email protected] ~]# cat /etc/passwd

未完,待续~

原文地址:https://blog.51cto.com/11293100/2408437

时间: 2024-08-30 03:09:48

Linux小课堂开课了(6)的相关文章

Linux小课堂开课了(1)

前言:突然奇思妙想,何不在学习Linux的道路上一边学习一边总结,这样应该学得更加深刻.不敢造次,所以起名叫Linux小课堂,零零散散地总结,也是一个动力.我是系统学习,但不保证小课堂是系统总结输出,纯属小打小闹.如需系统学习,请百度搜索Linux,学习Linux的方式真所谓条条大路通罗马.开始总结,不定期更新.1, 一个命令行是基于文本的界面,可用于向计算机系统输入指令.Linux命令行由一个程序提供,它称为shell.如图是超级用户root运行shell的界面使用bash shell执行命令

Linux小课堂开课了(2)

1,使用man命令获取帮助Man page源自过去的Linux程序员手册,包含了具体文件类型的信息.主题与内容类型1. 用户命令2. 系统调用3. 库函数4. 特殊文件5. 文件格式6. 游戏7. 惯例.标准和其他8. 系统管理和特权命令9. Linux内核API(内核调用)常见的系统管理主题在第1节(用户命令).第5节(文件格式)和第8节(管理命令),剩余的章节通常供程序员参考或用于高级管理Man –k 是执行关键字搜索[[email protected] ~]# man -k passwdM

Linux小课堂开课了(4)

1. Centos7网卡配置[[email protected] ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33参数说明:DEVICE:此配置文件应用到的设备HWADDR:对应的设备的MAC地址BOOTPROTO:激活此设备时使用的地址配置协议,常用的dhcp, static, none,bootpONBOOT:在系统引导时是否激活此设备TYPE:接口类型:常见有的Ethernet, BridgeUUID:设备的惟一标识IPADDR:指明IP

Linux小课堂开课了(5)

1. 修改hostname主机名查看一下hostname[[email protected] ~]# cat /etc/hostnamelocalhost.localdomain[[email protected] ~]# vim /etc/hostname #永久生效server0.example.com[[email protected] ~]# hostname test #临时生效,重启后失效[[email protected] ~]# hostnameTest2. 使用ssh远程连接主

Linux小课堂开课了(7)-三线IP刷路由-移动-联通-电信

最近有客户需求,要在服务器上安装centos7使用三线(移动-联通-电信),三个网卡分别配置,需要三个IP都可以正常通信,因为三个IP分别有各自的网关,直接配置,只能有一个IP可以正常通信,如此,就需要刷路由,直接将三个IP的网关都配置进去.目前三个IP的网关都是末尾为.1.如下,是刷路由的配置.1.在/etc/rc.local里面加上ip route replace default via 101.X.X.X dev em1ip route replace default via 43.X.X

Linux小课堂开课了(9)-Centos7日常运维管理

Centos7日常运维管理 1,查看系统配置,进程,I/O,网卡流量使用w可以查看系统的状态,当前时间,系统启动时间,登录用户,从哪个IP登录的,系统的负载值.使用uptime查看系统的负载值使用iptop,可以具体查看哪个进行使用的I/O较多,需要安装一下[[email protected] ~]# yum -y install iotop[[email protected] ~]# iotop使用cat /proc/cpuinfo查看系统配置使用vmstat可以查看CPU,内存,虚拟磁盘,交

小葵花妈妈课堂开课啦!android基础第一课

小葵花妈妈课堂开课了 孩子咳嗽老不好 怎么办呢 多半是装的 打一顿就好了~~ 背景介绍:android移动开发是一门比较流行的技术,就我个人的一点理解,电脑上的软件都搬到手机端,就需要开发大量的手机APP,所以android工程师是一个需求很大的岗位,如果你的技术扎实,对android的理解够深刻,那么混口饭吃,还是阔以的~~ 谈谈去做android开发如何赚钱: 1,做android游戏开发,各种道具收费,这个范围比较狭隘,得学习游戏开发的一些知识. 2,android应用开发,插播小广告,有

Linux小命令(1)yum

Linux命令(1)yum 使用最简易安装CentOS后.开启了网卡基本就可以使用yum在Linux中下载安装软件了.Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE.CentOS中的Shell前端软件包管理器.基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装. 命令格式如下: #yum [options] [command] [package ...] 常用命令: #yum grouplikst 查询可能批量安

Linux 小知识翻译 - 「syslog」

这次聊聊「syslog」. 上次聊了「日志」(lgo).这次说起syslog,一看到log(日志)就明白是怎么回事了.syslog是获取系统日志的工具. 很多UINIX系的OS都采用了这个程序,它承担了「获取系统全部的日志」这个维持系统正常运行的重要任务. syslog的本体是「syslogd」这个daemon(一般翻译成守护进程),常驻内存中获取日志. syslog的特点是可以通过配置文件「/etc/syslog.conf」,对「哪种应用程序?哪种重要度的信息?记录在哪个文件中?」等进行细致的