Linux shell脚本笔记
shell 命令解释器 是用来解释用户对系统的操作 使用 cat /etc/shells 可以查看 系统安装的shell
Linux 启动过程: BIOS -> MBR -> BootLoader(grub) -> kernel -> systemd -> 系统初始化 -> shell
BIOS 基本输入输出系统 选择U盘启动还是硬盘启动;MBR 硬盘里可引导的部分;BootLoader(grub) 启动内核工具 选择启动的内核;
kernel 启动内核;systemd 1号进程 其余所有进程派生于它;然后才是系统初始化 启动shell
执行脚本的四种方式
1 bash ./filename.sh 2 ./filename.sh
3souce ./filename.sh 4 . ./filename.sh
1和2 执行脚本时 会创建一个新的进程来执行 3和4执行脚本时会用当前进程来执行(环境变量是当前系统的环境变量) (不产生新进程执行的命令叫做内建命令
1 3 4 执行脚本时脚本可以不拥有执行权限 2 执行脚本时必须有可执行权限
管道 '|' 两个进程之间的通信 第一个进程的输出当作第二个进程的输入 a|b|c a的输出当作b的输入 b的输出当作c的输入 (管道应该规避内建命令
重定向 更改标准输入和标准输出为文件 利用文件代替键盘的输入 保存至文件代替终端的输出
< 输入 wc -l < /etc/passwd 将<右侧的内容代替键盘输入
> 输出 覆盖输出 >> 追加输出
2>> 错误输出重定向 2 为标准错误流重定向
&>> 正确或错误都重定向输出
变量 shell脚本中可以有变量 变量名由字母 数字 下划线组成 数字不能在变量名开始处
shell 变量为弱类型 不区分类型 区分大小写
使用方式 1name=value 等号左右不能有空格 2 read name 从用户处读入变量 交互式输入 3 name=ls 变量的值还可以是命令
4 name=$(ls /etc/) 变量的值还可以是命令的字符串 $() 可以用``反引号代替 5let a=2 let关键字也可赋值 6 变量的值有特殊字符时应该用" 或者'包起来 这时候不应该使用let
变量引用 ${} 大括号{}可以省略 当使用字符串拼接时 也就是要把变量的值加上其他字符串 这时候{}不能省略
变量作用范围 默认作用于当前执行的shell本身 若想让作用于子shell 时 需要用export 导出一个变量 变量不再使用时 可以用unset删除变量
环境变量 环境变量是当前用户统一配置的 当前用户下每个shell都可以得到的变量 使用env set可以查看当前环境变量
常用环境变量 $PATH 为命令搜索路径 $USER 用户名 $UID 用户id $PSI 配置终端提示显示
预定义变量 $? 保存上一条命令运行结果 0为正确 1为错误 $$ 当前进程PID $0当前进程名
位置变量 $0 $1 ... $9 执行脚本时的参数 不存在为空 (${2-_} 如果$2为空代表_ 不空代表$2
环境变量配置文件 /etc/profile /etc/bashrc ~/.bashrc ~/.bash_bashrc /etc/profile.d/
/etc/目录下对所有用户生效 ~/目录下对当前用户生效
执行 su - root 时 配置文件执行顺序 /etc/profile ~/.bash_bashrc ~/.bashrc /etc/bashrc 有相同变量名时后面会覆盖前面的
执行su root 时 执行~/.bashrc 和 /etc/bashrc
数组的使用
IPTS=(1 2 3) 定义数组 值之间用空格分开IPTS=(1 2 3)
echo ${IPTS[@]} 显示所有元素
echo ${#IPTS[@]} 显示元素个数
echo ${IPTS[0]} 显示第0个元素
Linux shell脚本笔记的更多相关文章
- Linux Shell脚本攻略 读书笔记
Linux Shell脚本攻略 读书笔记 这是一本小书,总共253页,但内容却很丰富,书中的示例小巧而实用,对我这样总是在shell门前徘徊的人来说真是如获至宝:最有价值的当属文本处理,对这块我单独整 ...
- 读书笔记--Linux Shell脚本攻略
总结的来说,这本书很实践性和实用性强,都是给的具体的例子,直接可以在终端操作实践,比单纯只看不动手务实多了,另外就是,这本书涵盖的内容也比较广,从文本操作到服务器管理到远程ssh等等,都给出来作者挑选 ...
- linux shell脚本攻略笔记
前一阵子系统学习了下<linux shell脚本攻略>这本书.在此记录下自己的学习笔记 1. 输出颜色字符 echo -e "\e[1:41m" 1表示背景色 2 ...
- 【链接】LINUX SHELL脚本攻略笔记[速查]
LINUX SHELL脚本攻略笔记[速查]
- LINUX SHELL脚本攻略笔记[速查]
Linux Shell脚本攻略笔记[速查] 资源 shell script run shell script echo printf 环境变量和变量 pgrep shell数学运算 命令状态 文件描述 ...
- 学习笔记之Linux Shell脚本教程:30分钟玩转Shell脚本编程
Linux Shell脚本教程:30分钟玩转Shell脚本编程 http://c.biancheng.net/cpp/shell/
- Linux Shell脚本攻略
-Linux Shell脚本攻略 总结的来说,这本书很实践性和实用性强,都是给的具体的例子,直接可以在终端操作实践,比单纯只看不动手务实多了,另外就是,这本书涵盖的内容也比较广,从文本操作到服务器管理 ...
- linux shell 脚本攻略学习20--awk命令入门详解
awk生于1977年,创始人有三个,分别为 Alfred Aho,Peter Weinberger, 和 Brian Kernighan,名称源于三个创始人的姓的首字母. 作用:处理文本文件. awk ...
- Linux shell脚本编程(三)
Linux shell脚本编程 流程控制: 循环语句:for,while,until while循环: while CONDITION; do 循环体 done 进入条件:当CONDITION为“真” ...
随机推荐
- linux 操作系统级别监控 df 命令
df命令可以查看当前系统磁盘空间的使用情况 命令:df -h du -sh * 查看目录文件暂用磁盘大小 如果磁盘空间不够,需清理磁盘 磁盘速度测试,如果磁盘性能不好,性能测试数据会不准确(读写速度) ...
- sersync 实时同步
1.什么是实时同步 监控一个目录的变化, 当该目录触发事件(创建\删除\修改) 就执行动作, 这个动作可以是 rsync同步 ,也可以是其他. 2.为什么要实时同步 1.能解决nfs单点故障问题. ...
- docker harbor搭建笔记
介绍 Harbor是VMware公司开源的一个用于存储和分发Docker镜像的企业级Registry服务器,以Docker开源的Registry为基础,通过添加一些企业必需的功能特性,例如安全.标识和 ...
- 迥异和诡异的SendMessage和PostMessage
1 故障现象 故障现象1:能够收到SendMessage()发出的消息,但收不到PostMessage()发出的消息. 故障现象2:能够收到PostMessage()发出的消息,但收不到S ...
- 【iOS 】把一些不太重要的任务放在空时执行
-(void)idleNotificationMethod { } -(void)registerForIdleNotification { [[NSNotificationCenter defaul ...
- [phyton]文件的简单读写练习
f.open() 用于打开一个文件. f=open("record.txt","w",encoding="utf-8")#打开文件,设置文件 ...
- 使用Hugo,只需5分钟,轻松搭建一个自己的博客
前面跟大家介绍过hexo这款静态博客系统,功能强大,基本能满足博客的各种需求.今天,我再跟大家介绍一款优秀的静态博客系统,那就是Hugo. Hugo是由Go语言实现的静态网站生成器.简单.易用.高效. ...
- 一条SQL查询语句是如何执行的?
本篇文章将通过一条 SQL 的执行过程来介绍 MySQL 的基础架构. 首先有一个 user_info 表,表里有一个 id 字段,执行下面这条查询语句: select * from user_inf ...
- java程序猿如何练习java版的易筋经?
故事背景 电视剧<天龙八部>中,阿朱易容后进入少林寺偷走了<易筋经>,她一直想把这本书送给乔峰.耿直的乔峰觉得此书来历不正,不肯接受.几番波折,这本书最后落到聚贤庄庄主游坦之手 ...
- 又写了两个实用的微信小程序
忙里偷闲,最近又写了两个小程序. 一个是手机壁纸小程序,名字叫[来搜图],特点是界面干净清爽,没有多余的东西.开发这个是因为讨厌市面上那些壁纸app那样那么多的广告,真的太影响体验了.而且小程序更加轻 ...