1.delphiççä¸å¯ä»¥åshellcodeä¹
2.Linux Shell脚本系列教程:使用函数添加环境变量
3.shell编程100例(附PDF下载)
delphiççä¸å¯ä»¥åshellcodeä¹
ä¸è¬çShellCodeé½æ¯ï½ASMåCåçï½Delphiä½çå°æ¯å¾å°æå ·ä½ä¾å å ¶å®ä½¿ç¨Delphiåä¸æ¯ä¸å¯è½ï½å°±æ¯éº»ç¦ï½(Delphiçï½BASMä¹ä¸å¤ªçµæ´»ï½è³å°ææè§æ²¡æç´æ¥ä½¿ç¨TASMç½) ä¸è¿è¿æ¯åä¸ä¸ªç©ç©å§ï½è¿éä» ä» ä½ä¸ªæ¼ç¤ºä»£ç ï½ ä»¥ä¸ShellCodeæºä»£ç :
Linux Shell脚本系列教程:使用函数添加环境变量
这篇文章主要介绍了Linux Shell脚本系列教程(四):使用函数添加环境变量,例源本文对环境变量的一知识作了介绍,并给出普通添加环境变量和使用函数添加环境变量的方法,需要的朋友可以参考下
一、简介
环境变量通常用于存储路径列表,源码这些路径用于搜索可执行文件、分析库文件等。例源例如:$PATH、源码$LD_LIBRARY_PATH,分析免费获取源码的它们通常看起来像这样:
代码如下:
PATH=/usr/bin;bin
LD_LIBRARY_PATH=/usr/lib;lib
这意味着只要shell需要运行二进制可执行文件时,例源它会首先查找/usr/bin,源码然后查找/bin。在ubuntu.中,分析PATH和LD_LIBRARY_PATH存储的例源路径如下所示:
代码如下:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:
/sbin:/bin:/usr/games:/usr/local/games
LD_LIBRARY_PATH="" #默认情况下,该变量未定义
二、源码添加环境变量
当你必须使用源代码编译生成程序并将其安装到某个特定路径中时,分析有项极其常见的例源任务就是讲该程序的bin目录加入PATH环境变量,将其所依赖的源码库目录加入LD_LIBRARY_PATH环境变量,以便可以从命令行终端正确运行软件。分析假设我们将testApp安装到/opt/testApp目录中,它的二进制文件在bin目录中,库文件在lib目录中,则添加环境变量的汽修erp源码方法如下:
代码如下:
export PATH=/opt/testApp/bin:$PATH #路径之间以冒号(:)分隔
export LD_LIBRARY_PATH=/opt/testApp/lib:$LD_LIBRARY_PATH
三、使用函数添加环境变量
当要添加的路径较少的时候,可以逐个手动添加,但是,当路径较长较多时,手动添加就会变得耗时耗力,而且出错的可能性会增大。其实大可不必如此做,我们可以在.bashrc-中加入可以添加环境变量的函数,由函数完成对环境变量的添加,例如我们可以用下面的函数完成1.4.2节的任务:
代码如下:
prepend() { [ -d "$2" ] eval $1=/"$2':'/$$1/" export $1; }
这个函数需要两个参数,1和2,其中1用于存放环境变量的名称,如PATH,2用于存放将要添加的环境变量,例如/opt/testApp/bin。
该函数首先执行[ -d “$2”]语句,判断将要添加的路径是否存在,存在则执行后面的刷指数源码语句,否则函数结束;接着执行第二条语句,该语句将要添加的路径添加在对应环境变量的开头部分,即使用前插法添加路径;最后使用export $1使得环境变量生效。
注意:语句eval $1=/”$2':'/$$1/”比较难以理解,$$1可以写成/${ /$1},这样比较容易理解,表示首先取得函数的第一个参数,然后再提取该参数的内容。例如1.4.2节中的环境变量可以用如下的方式添加:
代码如下:
prepend() PATH /opt/testApp/bin #$1为PATH,$2为/opt/testApp/bin
prepend() LD_LIBRARY_PATH /opt/testApp/lib #$1为LD_LIBRARY_PATH,$2为/opt/testApp/lib
用以上函数添加环境变量确实方便不少,但这个函数本身不够完善,当环境变量为空时,这是将会在末尾添加一个多余的冒号(:),需要作如下改变,使得函数更加严谨:
代码如下:
prepend(){ [ -d "$2" ] eval $1=/"/$2/$/{ $1:+':'/$$1}/" export $1 }
改动的地方仅有第二个语句,这里用到了一种shell参数扩展的形式:
代码如下:
${ parameter:+expression}
当且仅当parameter有值而且不为空,才使用expression的脉冲输出源码值,这样可以避免添加空变量的情况。
shell编程例(附PDF下载)
1、编写hello world脚本
2、通过位置变量创建 Linux 系统账户及密码
3、备份日志
4、一键部署 LNMP(RPM 包版本)
5、监控内存和磁盘容量,小于给定值时报警
6、猜数字游戏
7、检测本机当前用户是否为超级管理员,如果是管理员,则使用 yum 安装 vsftpd,如果不是,则提示您非管理员
8、编写脚本检测当前用户是否为超级管理员,并根据结果安装 vsftpd
9、编写脚本自动创建账户及配置密码
、输入三个数并进行升序排序
、石头、剪刀、布游戏
、编写脚本测试 ..4.0/ 整个网段中哪些主机处于开机状态,哪些处于关机状态
、编写脚本测试同一网段的内部通知源码主机开机与关机状态
、编写脚本测试网段主机状态,支持多进程版本
、编写脚本显示进度条
、创建动态时针进度条显示功能
、9*9 乘法表
、实时显示 eth0 网卡发送数据包流量
、使用 user.txt 文件自动创建账户并配置密码
、编写批量修改文件扩展名脚本
、使用 expect 工具自动安装 httpd 软件
、一键部署 LNMP(源码安装版本)
、编写快速克隆 KVM 虚拟机脚本
、点名器脚本功能实现
、查看远程连接本机的 IP 数量
、计算 1+2+3+...+ 的和
、统计指定时间内的 apache 请求量
、统计指定时间内的访问 IP 地址
、打印棋盘格式的国际象棋
、统计远程 IP 访问本机 apache 的次数
、统计 Linux 登录账户数量
、统计并显示/var/log 文件的名称与数量
、为脚本添加解释器信息
、自动化部署 varnish 源码包软件
、编写 nginx 启动脚本
、自动完成磁盘分区、格式化与挂载
、优化 Linux 内核参数
、分割 Nginx 日志文件,避免单文件过大
、检测 MySQL 连接数量
、根据 md5 校验检测文件完整性
、检测 MySQL 服务状态
、备份 MySQL 数据的 shell 脚本
、将文件中的小写字母转换为大写字母
、自动生成 SSH 密钥文件
、检查特定软件包是否已安装
、监控 HTTP 服务器返回码
、自动配置防火墙规则与开启服务
、脚本自动创建逻辑卷
、显示 CPU 厂商信息
、删除目录下大小为 0 的文件
、查找僵尸进程并处理
、判断年份是否为闰年
、生成随机密码,使用 urandom 版本
、生成随机密码,使用字串截取版本
、生成随机密码,使用 UUID 版本( 进制密码)
、验证用户名与密码正确性
、循环验证用户名与密码正确性
、Shell 脚本的 fork 炸弹
、批量下载文件(包含 PDF、、视频)
、列出当前所有账户的用户名称
、根据目录路径,自动将目录打包为 tar 文件
、创建回旋镖版的进度条显示功能
、安装 LAMP 环境(yum 版本)
、循环关闭局域网中所有主机
、获取本机 MAC 地址
、自动配置 rsyncd.conf 文件
、修改 Linux 系统最大文件打开数量
、设置 Python 自动命令补齐功能
、自动修改计划任务配置文件
、循环创建三位数字的文本文件(-)
、提取和处理 passwd 和 shadow 文件中的信息
、统计 passwd 文件中 root 的出现次数
、统计 Linux 进程信息数量
、根据论坛积分判断用户等级
、识别用户输入数据类型(字母、数字或其他)
、创建数字版的进度条显示功能
、打印斐波那契数列
、判断输入是 Yes 或 NO
、列出本机所有开放端口
、删除 UID 大于等于 的普通用户
、使用脚本控制虚拟机启动与关闭
、调整虚拟机内存参数的 shell 脚本
、查看 KVM 虚拟机网卡信息
、无密码修改虚拟机网卡 IP 地址
、破解虚拟机密码,实现无密码登陆
、Shell 脚本处理信号,避免无法终止脚本的情况
、一键部署 memcached
、一键配置 VNC 远程桌面服务器,无密码版本
、关闭 SELinux
、查看虚拟机磁盘与 CPU 使用量信息
、使用 shell 脚本打印图形
、根据当前时间显示问候语,可设置开机启动
、读取账户名称并保存到数组中
、检查文件或目录存在性
、打印各种格式的时间
、使用 egrep 过滤 MAC 地址
、计算双色球数字中奖概率
、生成签名私钥与证书
、使用 awk 编写的 wc 程序
资源汇总:
整理了丰富的学习资料,包括视频、电子书、PPT 等,欢迎大家免费领取!
资料包含:
- 视频资料
- 电子书资料
资料已打包,无需套路,直接访问即可获取。
欢迎关注公众号 @开源Linux!
更多干货请访问我的个人网站:Linux学习指南
如本文对您有帮助,欢迎点赞、收藏、转发给朋友,支持持续创作!