linux的shell脚本linux shell加密压缩问题,大神们进来下

对Shell 脚本加密的方法_linux shell
作者:用户
本文讲的是对Shell 脚本加密的方法_linux shell,
用shell脚本对系统进行自动化维护,简单,便捷而且可移植性好. 但shell脚本是可读写的,很有可能会泄露敏感信息,如用户名,密码,路径,IP等. 同样,在shell脚本运行时会也泄露敏感信息. shc是一个加密shell脚本的工具.它
用shell脚本对系统进行自动化维护,简单,便捷而且可移植性好. 但shell脚本是可读写的,很有可能会泄露敏感信息,如用户名,密码,路径,IP等. 同样,在shell脚本运行时会也泄露敏感信息. shc是一个加密shell脚本的工具.它的作用是把shell脚本转换为一个可执行的二进制文件. 这就很好的解决了上述问题. shc 安装 yum -y install shc 使用方法: shc -r -f script-name 注意:要有-r选项, -f 后跟要加密的脚本名. 运行后会生成两个文件,script-name.x 和 script-name.x.c script-name.x是加密后的可执行的二进制文件. ./script-name 即可运行. script-name.x.c是生成script-name.x的原文件(c语言)
以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索shell
linux shell脚本加密、shell脚本加密、shell脚本混淆加密、shell脚本加密解密、upx加密shell脚本,以便于您获取更多的相关知识。
稳定可靠、可弹性伸缩的在线数据库服务,全球最受欢迎的开源数据库之一
6款热门基础云产品6个月免费体验;2款产品1年体验;1款产品2年体验
弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率
开发者常用软件,超百款实用软件一站式提供
云栖社区()为您免费提供相关信息,包括
,所有相关内容均不代表云栖社区的意见!推荐这篇日记的豆列
&&&&&&&&&&&&Linux Shell脚本攻略下载PDF版_西西软件下载
西西软件园多重安全检测下载网站、值得信赖的软件下载站!
相关软件 /中文/ /中文/ /中文/ /中文/ /英文/ /英文/ /英文/ /英文/ /英文/ /中文/顶好评:50%踩坏评:50%请简要描述您遇到的错误,我们将尽快予以修正。轮坛转帖HTML方式轮坛转帖UBB方式
49.0M/中文/4.5
73M/中文/6.0
14.7M/中文/4.8
14.8M/多国语言[中文]/4.0
30.3M/中文/8.4
9.4M/中文/7.3
《linux shell脚本攻略》这本书不仅适合shell 编程的新手,也适合那些对这一领域相当熟悉的专业人士。对新手而言,本书的内容由浅入深且紧贴实践,使得他们能够快速地学以致用,而专业人士也能从本书中发现一些新鲜的东西,使自己的技巧更加纯熟。作品简介:《linux shell脚本攻略》是linux shell 编程的实战秘籍。它集合了众多适合于实战的命令行脚本攻略,并辅以大量案例以及细致的讲解。这本书是sarath lakshman在其二十岁的时候所写,sarath lakshman在印度出生并成长,目前是印度科钦科技大学模范工程学院的 学生。2004年,他就开发了名为slynux的gnu/linux发布版。另外,他还为linux for you月刊撰写文章。在fedora、pardus linux、pitivi、ubuntu 以及google summer of code等项目中,他都作出了显著的贡献。 门佳 linux/unix shell、perl、正则表达式爱好者。2001年开始接触linux,并喜欢上了这个系统,从此发现了另一个不同的世界。同时对网络协议分析、web技术以及社会心理学也颇有兴趣。除此之外,还是一位轻度宅男、豆瓣控。 译者序:计算机技术类的书大致可以分为两类:入门类和实战类。入门类的书,多是从最基础、最简单的内容开始,循序渐进、由浅入深地展开,旨在引导读者完成一个从“无”到“有”的过程;而实战类的书,则是假定读者已经具备相关的背景知识,将重点放在特定情境下的实践以及技巧上,帮助读者实现从“有”到“精”的转变。得益于开源社区以及爱好者们的无私贡献,任何一位初学者都可以在Internet上轻松获取各种Linux/Unix shell相关的基础教程。而就如何运用shell来解决现实世界中的问题,相关的知识与技巧多是散落在论坛、博客之中,要么不够全面系统,要么不易查找。如果你也有此烦恼,那么不妨看看本书。从英文书名中采用的cookbook一词便可知道这本书的风格如同居家(cookbook)一样直截了当:列出菜名(待解决的问题),然后给出做法(具体的命令或脚本)。市面上类似风格的书不单此一本,O’Reilly公司出版的Unix Powertools、Bash Cookbook也都采用了这种写法。从内容上看,本书并非是简单的重复,而更像是对两位“前辈”的补充,它加入了系统管理自动化、Web页面的抓取与解析、编写Gmail与twitter客户端、利用Git进行备份、结构化文本处理等较新的技巧。即便是已经看过Unix Powertools和Bash Cookbook的读者,我相信他们也能够在这本书中发现一些新东西。 本书作者是一位21岁的在校大学生,除了编写此书之外,他还是SLYNUX GNU/Linux发行版的研发人员。联想21岁时的自己,实在有些惭愧。 在翻译的过程中,除了修正代码或文字中出现的逻辑或印刷错误之外,对于原文的某些部分,译者并没有严格地依照字面含义翻译,而是根据原书内容,在不更改作者原意同时保证技术正确的前提下,进行了适当的调整,使其便于理解。 在豆瓣上看书评的时候,经常会看到对于某些中文版书翻译质量的抱怨,有时我也忍不住要牢骚几句。正因为如此,在翻译的过程中,我会竭力确保译文的正确性与流畅性,希望自己不会成为日后被抱怨的对象。不过和不存在没有bug的代码一样,本书中也难免有错,对此,我愿负全责。 从2011年4月接手这份翻译工作,到7月交出译稿,前后3个月的时间里少了很多陪伴家人的时间。在此要感谢我的父母和我的未婚妻姗姗,感谢你们对我的理解与支持。 目录:第1 章 小试牛刀  1 1.1 简介  1 1.2 终端打印  3 1.2.1 实战演练  3 1.2.2 补充内容  4 1.3 玩转变量和环境变量  5 1.3.1 预备知识  5 1.3.2 实战演练  6 1.3.3 补充内容  7 1.4 通过shell 进行数学运算  8 1.4.1 预备知识  9 1.4.2 实战演练  9 1.5 玩转文件描述符和重定向  10 1.5.1 预备知识  10 1.5.2 实战演练  11 1.5.3 补充内容  13 1.6 数组和关联数组  15 1.6.1 预备知识  15 1.6.2 实战演练  15 .1.6.3 补充内容  16 1.7 使用别名  17 1.7.1 预备知识  17 1.7.2 实战演练  17 1.7.3 补充内容  18 1.8 获取终端信息  18 1.8.1 预备知识  18 1.8.2 实战演练  18 1.9 获取、设置日期和延时  19 1.9.1 预备知识  19 1.9.2 实战演练  19 1.9.3 补充内容  21 1.10 调试脚本  22 1.10.1 预备知识  22 1.10.2 实战演练  22 1.10.3 补充内容  23 1.11 函数和参数  23 1.11.1 实战演练  23 1.11.2 补充内容  24 1.12 读取命令序列输出  25 1.12.1 预备知识  26 1.12.2 实战演练  26 1.12.3 补充内容  26 1.13 以不按回车键的方式读取字符“n”  27 1.13.1 预备知识  27 1.13.2 实战演练  27 1.14 字段分隔符和迭代器  28 1.14.1 预备知识  28 1.14.2 实战演练  29 1.15 比较与测试  30 1.15.1 预备知识  30 1.15.2 实战演练  30 第2 章 命令之乐  34 2.1 简介  34 2.2 用cat 进行拼接  34 2.2.1 预备知识  34 2.2.2 实战演练  35 2.2.3 工作原理  35 2.2.4 补充内容  35 2.3 录制与回放终端会话  37 2.3.1 预备知识  37 2.3.2 实战演练  37 2.3.3 工作原理  37 2.4 文件查找与文件列表  38 2.4.1 预备知识  38 2.4.2 实战演练  38 2.4.3 补充内容  39 2.5 玩转xargs  45 2.5.1 预备知识  45 2.5.2 实战演练  45 2.5.3 工作原理  46 2.5.4 补充内容  46 2.6 用tr 进行转换  49 2.6.1 预备知识  49 2.6.2 实战演练  49 2.6.3 工作原理  49 2.6.4 补充内容  50 2.7 校验和与核实  52 2.7.1 预备知识  52 2.7.2 实战演练  52 2.7.3 工作原理  52 2.7.4 补充内容  53 2.8 排序、单一与重复  53 2.8.1 预备知识  54 2.8.2 实战演练  54 2.8.3 工作原理  54 2.8.4 补充内容  55 2.9 临时文件命名与随机数  58 2.9.1 实战演练  58 2.9.2 工作原理  58 2.10 分割文件和数据  59 2.10.1 工作原理  59 2.10.2 补充内容  59 2.11 根据扩展名切分文件名  61 2.11.1 实战演练  61 2.11.2 工作原理  61 2.12 批量重命名和移动  63 2.12.1 预备知识  63 2.12.2 实战演练  63 2.12.3 工作原理  64 2.13 拼写检查与词典操作  65 2.13.1 实战演练  65 2.13.2 工作原理  65 2.14 交互输入自动化   66 2.14.1 预备知识   66 2.14.2 实战演练   66 2.14.3 工作原理   67 2.14.4 补充内容   67 第3 章 以文件之名   69 3.1 简介   69 3.2 生成任意大小的文件   69 3.3 文本文件的交集与差集  70 3.3.1 预备知识  71 3.3.2 实战演练  71 3.4 查找并删除   73 3.4.1 预备知识  73 3.4.2 实战演练  73 3.4.3 工作原理   74 3.4.4 参考   75 3.5 创建长路径目录  75 3.5.1 预备知识  75 3.5.2 实战演练  76 3.6 文件权限、所有权和粘滞位  76 3.6.1 预备知识  76 3.6.2 实战演练  78 3.6.3 补充内容  79 3.7 创建不可修改文件  80 3.7.1 预备知识  80 3.7.2 实战演练  80 3.8 批量生成空白文件  80 3.8.1 预备知识  81 3.8.2 实战演练  81 3.9 查找符号链接及其指向目标  81 3.9.1 预备知识   81 3.9.2 实战演练  81 3.10 列举文件类型统计信息  82 3.10.1 预备知识   83 3.10.2 实战演练   83 3.10.3 工作原理   84 3.11 环回文件与挂载  84 3.11.1 预备知识  85 3.11.2 实战演练  85 3.11.3 补充内容  86 3.12 生成iso 文件及混合iso   87 3.12.1 预备知识  87 3.12.2 实战演练  87 3.12.3 补充内容  87 3.13 查找文件差异并进行修补  89 3.13.1 实战演练  89 3.13.2 补充内容  90 3.14 head 与tail ―― 打印文件的前10 行和后10 行  90 3.15 只列出目录的其他方法  92 3.15.1 预备知识  93 3.15.2 实战演练  93 3.16 在命令行中用pushd 和popd快速定位  93 3.16.1 预备知识  93 3.16.2 实战演练  93 3.16.3 补充内容  94 3.17 统计文件的行数、单词数和字符数  95 3.17.1 预备知识  95 3.17.2 实战演练  95 3.17.3 补充知识  95 3.18 打印目录树  96 3.18.1 预备知识  96 3.18.2 实战演练  96 3.18.3 补充内容  97 第4 章 让文本飞  98 4.1 简介  98 4.2 正则表达式入门  99 4.2.1 预备知识  99 4.2.2 实战演练  99 4.2.3 工作原理  100 4.2.4 补充内容  101 4.3 用grep 在文件中搜索文本  101 4.3.1 预备知识  101 4.3.2 实战演练  101 4.3.3 补充内容  103 4.4 用cut 按列切分文件  107 4.4.1 预备知识  107 4.4.2 实战演练  107 4.4.3 补充内容  108 4.5 统计特定文件中的词频  109 4.5.1 预备知识  109 4.5.2 实战演练  109 4.5.3 工作原理  110 4.5.4 参考  110 4.6 sed 入门  110 4.6.1 实战演练  111 4.6.2 补充内容  111 4.7 awk 入门  113 4.7.1 实战演练  113 4.7.2 工作原理  113 4.7.3 补充内容  114 4.8 替换文本或文件中的字符串  117 4.8.1 预备知识  117 4.8.2 实战演练  118 4.8.3 补充内容  118 4.8.4 参考  118 4.9 或解压缩javascript  119 4.9.1 预备知识  119 4.9.2 工作原理  119 4.9.3 工作原理  120 4.9.4 参考  121 4.10 对文件中的行、单词和字符进行迭代  121 4.10.1 预备知识  121 4.10.2 实战演练  121 4.10.3 工作原理  122 4.10.4 参考  122 4.11 按列合并文件  122 4.11.1 工作原理  122 4.11.2 参考  123 4.12 打印文件或行中的第n 个单词或列  123 4.12.1 预备知识  123 4.12.2 实战演练  123 4.12.3 参考  124 4.13 打印不同行或样式之间的文本  124 4.13.1 预备知识  124 4.13.2 实战演练  124 4.13.3 参考  125 4.14 用脚本检验回文字符串  125 4.14.1 预备知识  125 4.14.2 工作原理  125 4.14.3 工作原理  126 4.14.4 补充内容  127 4.14.5 参考  128 4.15 以逆序形式打印行  128 4.15.1 预备知识  128 4.15.2 实战演练  128 4.15.3 工作原理  129 4.15.4 参考  129 4.16 解析文本中的电子邮件地址和url   129 4.16.1 预备知识  129 4.16.2 实战演练  129 4.16.3 工作原理  130 4.16.4 参考  130 4.17 打印文件中某个样式之前或之后的n 行  130 4.17.1 预备知识  131 4.17.2 实战演练  131 4.17.3 参考  132 4.18 在文件中移除包含某个单词的句子  132 4.18.1 预备知识  132 4.18.2 实战演练  132 4.18.3 工作原理  133 4.18.4 参考  133 4.19 用awk 实现head、tail 和tac   133 4.19.1 预备知识  133 4.19.2 实战演练  133 4.19.3 工作原理  134 4.19.4 参考  134 4.20 文本切片与参数操作  134 4.20.1 实战演练  134 4.20.2 参考  135 第5 章 一团乱麻?没这回事  136 5.1 入门  136 5.2 网站下载  136 5.2.1 预备知识  136 5.2.2 实战演练  136 5.2.3 补充内容  137 5.3 以格式化纯文本形式下载网页   138 5.4 curl 入门  139 5.4.1 预备知识  139 5.4.2 实战演练  139 5.4.3 补充内容  140 5.4.4 参考  142 5.5 从命令行访问gmail   142 5.5.1 实战演练  142 5.5.2 工作原理  143 5.5.3 参考  144 5.6 解析网站数据   144 5.6.1 实战演练  144 5.6.2 工作原理  144 5.6.3 参考  145 5.7 制作图片抓取器及下载工具  145 5.7.1 实战演练  145 5.7.2 工作原理  146 5.7.3 参考  147 5.8 网页相册生成器  147 5.8.1 预备知识  147 5.8.2 实战演练  147 5.8.3 工作原理  148 5.8.4 参考  149 5.9 twitter 命令行客户端   149 5.9.1 预备知识  149 5.9.2 实战演练  149 5.9.3 工作原理  150 5.9.4 参考  150 5.10 基于web 后端的定义查询工具  151 5.10.1 预备知识  151 5.10.2 实战演练  151 5.10.3 工作原理  152 5.10.4 参考  152 5.11 查找网站中的无效链接  152 5.11.1 预备知识  152 5.11.2 实战演练  153 5.11.3 工作原理  153 5.11.4 参考  153 5.12 跟踪网站变更  154 5.12.1 预备知识  154 5.12.2 实战演练  154 5.12.3 工作原理  155 5.12.4 参考  155 5.13 以post 方式发送网页并读取响应  155 5.13.1 预备知识  156 5.13.2 实战演练  156 5.13.3 补充内容  157 5.13.4 参考  157 第6 章 b 计划  158 6.1 简介  158 6.2 用tar 归档  158 6.2.1 预备知识  158 6.2.2 实战演练  159 6.2.3 补充知识  159 6.2.4 参考  163 6.3 用cpio 归档  163 6.4 用gunzip 或gzip 压缩  164 6.4.1 实战演练  164 6.4.2 补充内容  164 6.4.3 参考  166 6.5 用bunzip 或bzip 压缩  166 6.5.1 实战演练  166 6.5.2 补充内容  167 6.5.3 参考  168 6.6 用lzma 压缩  168 6.6.1 实战演练  168 6.6.2 补充内容  169 6.6.3 参考  169 6.7 用zip 归档和压缩  169 6.8 超高压缩率的squashfs 文件系统  170 6.8.1 预备知识  171 6.8.2 实战演练  171 6.8.3 补充内容  171 6.9 加密工具与散列  172 6.10 用raync 备份系统快照  174 6.10.1 实战演练  174 6.10.2 补充内容  175 6.11 用git 备份版本控制  176 6.11.1 预备知识  176 6.11.2 实战演练  176 6.12 用dd 克隆磁盘  178 6.12.1 预备知识  179 6.12.2 实战演练  179 6.12.3 补充内容  180 6.12.4 参考  180 第7 章 无网不利  181 7.1 简介  181 7.2 联网知识入门  181 7.2.1 新手上路  181 7.2.2 实战演练  182 7.2.3 补充内容  182 7.2.4 参考  186 7.3 使用ping  186 7.3.1 实战演练  186 7.3.2 补充内容  187 7.4 列出网络上所有的活动主机  188 7.4.1 新手上路  188 7.4.2 实战演练  188 7.4.3 工作原理  189 7.4.4 补充内容  191 7.4.5 参考  191 7.5 传输文件  191 7.5.1 新手上路  191 7.5.2 实战演练  191 7.5.3 补充内容  192 7.5.4 参考  194 7.6 用脚本设置以太网与无线lan  194 7.6.1 新手上路  194 7.6.2 实战演练  194 7.6.3 工作原理  196 7.6.4 参考  196 7.7 用ssh 实现无密码自动登录  196 7.8 用ssh 在远程主机上运行命令  198 7.8.1 新手上路  198 7.8.2 实战演练  198 7.8.3 补充内容  200 7.8.4 参考  200 7.9 在本地挂载点上挂载远程驱动器  201 7.9.1 新手上路  201 7.9.2 实战演练  201 7.9.3 参考  201 7.10 在网络上发送多播式窗口消息  201 7.10.1 新手上路  201 7.10.2 实战演练  201 7.10.3 工作原理  202 7.10.4 参考  203 7.11 网络流量与端口分析  203 7.11.1 新手上路  203 7.11.2 实战演练  203 7.11.3 补充内容  204 第8 章 当个好管家  205 8.1 简介  205 8.2 统计磁盘的使用情况  205 8.2.1 新手上路  206 8.2.2 实战演练  206 8.2.3 补充内容  206 8.3 计算命令执行时间  210 8.4 与当前登录用户、启动日志及启动故障的相关信息  212 8.4.1 新手上路  212 8.4.2 实战演练  212 8.5 打印出10 条最常使用的命令  214 8.5.1 新手上路  214 8.5.2 实战演练  214 8.5.3 工作原理  215 8.6 列出1 小时内占用cpu 最多的10 个进程  215 8.6.1 新手上路  215 8.6.2 实战演练  215 8.6.3 工作原理  216 8.6.4 参考   217 8.7 用watch 监视命令输出   217 8.7.1 实战演练   217 8.7.2 补充内容   217 8.8 对文件及目录访问进行记录   218 8.8.1 新手上路   218 8.8.2 实战演练   218 8.8.3 工作原理   218 8.9 用logrotate 管理日志文件   219 8.9.1 新手上路   219 8.9.2 实战演练   219 8.10 用syslog 记录日志   220 8.10.1 新手上路   220 8.10.2 实战演练   221 8.10.3 参考   221 8.11 通过监视用户登录找出入侵者  221 8.11.1 新手上路  222 8.11.2 实战演练  222 8.11.3 工作原理  223 8.12 监视远程磁盘的健康情况  224 8.12.1 新手上路  224 8.12.2 实战演练  224 8.12.3 工作原理  225 8.12.4 参考   226 8.13 找出系统中用户的活动时段  226 8.13.1 新手上路  226 8.13.2 实战演练  226 8.13.3 工作原理  227 第9 章 管理重任  228 9.1 简介   228 9.2 收集进程信息   228 9.2.1 新手上路  228 9.2.2 实战演练  229 9.2.3 补充内容  231 9.2.4 参考  234 9.3 杀死进程以及发送或响应信号   234 9.3.1 新手上路  235 9.3.2 实战演练  235 9.3.3 补充内容  235 9.4 which、whereis、file、whatis 与平均负载  237 9.5 向用户终端发送消息  238 9.5.1 新手上路  239 9.5.2 实战演练  239 9.5.3 工作原理  240 9.6 收集系统信息  240 9.7 用/proc 收集信息  241 9.8 用cron 进行调度  242 9.8.1 新手上路  242 9.8.2 实战演练  242 9.8.3 补充内容  243 9.9 从bash 中读写mysql   244 9.9.1 新手上路  244 9.9.2 实战演练  244 9.9.3 工作原理  247 9.10 用户管理脚本  248 9.10.1 实战演练  248 9.10.2 工作原理  249 9.11 图像文件的批量缩放及格式转换  251 9.11.1 新手上路  251 9.11.2 实战演练  251 9.11.3 工作原理  253 9.11.4 参考  254
安卓官方手机版
IOS官方手机版
Linux Shell脚本攻略 PDF版
下载帮助西西破解版软件均来自互联网, 如有侵犯您的版权, 请与我们联系。第十二章 学习 shell脚本之前的基础知识 - 吕滔博客
第十二章 学习 shell脚本之前的基础知识
&12843&次浏览
日常的linux系统管理工作中必不可少的就是shell脚本,如果不会写shell脚本,那么你就不算一个合格的管理员。目前很多单位在招聘linux系统管理员时,shell脚本的编写是必考的项目。有的单位甚至用shell脚本的编写能力来衡量这个linux系统管理员的经验是否丰富。笔者讲这些的目的只有一个,那就是让你认真对待shell脚本,从一开始就要把基础知识掌握牢固,然后要不断的练习,只要你shell脚本写的好,相信你的linux求职路就会轻松的多。笔者在这一章中并不会多么详细的介绍shell脚本,而只是带你进入shell脚本的世界,如果你很感兴趣那么请到网上下载相关的资料或者到书店购买相关书籍吧。
在学习shell 脚本之前,需要你了解很多关于shell的知识,这些知识是编写shell脚本的基础,所以希望你能够熟练的掌握。【什么是shell】简单点理解,就是系统跟计算机硬件交互时使用的中间介质,它只是系统的一个工具。实际上,在shell和计算机硬件之间还有一层东西那就是系统内核了。打个比方,如果把计算机硬件比作一个人的躯体,而系统内核则是人的大脑,至于shell,把它比作人的五官似乎更加贴切些。回到计算机上来,用户直接面对的不是计算机硬件而是shell,用户把指令告诉shell,然后shell再传输给系统内核,接着内核再去支配计算机硬件去执行各种操作。笔者接触的linux发布版本(Redhat/CentOS)系统默认安装的shell叫做bash,即Bourne Again Shell,它是sh(Bourne Shell)的增强版本。Bourn Shell 是最早行起来的一个shell,创始人叫Steven Bourne,为了纪念他所以叫做Bourn Shell,检称sh。那么这个bash有什么特点呢?1)记录命令历史我们敲过的命令,linux是会有记录的,预设可以记录1000条历史命令。这些命令保存在用户的家目录中的.bash_history文件中。有一点需要你知道的是,只有当用户正常退出当前shell时,在当前shell中运行的命令才会保存至.bash_history文件中。与命令历史有关的有一个有意思的字符那就是”!”了。常用的有这么几个应用:(1)!! (连续两个”!”),表示执行上一条指令;(2)!n(这里的n是数字),表示执行命令历史中第n条指令,例如”!100”表示执行命令历史中第100个命令;(3)!字符串(字符串大于等于1),例如!ta,表示执行命令历史中最近一次以ta为开头的指令。2)指令和文件名补全在本教程最开始笔者就介绍过这个功能了,记得吗?对了就是按tab键,它可以帮你补全一个指令,也可以帮你补全一个路径或者一个文件名。连续按两次tab键,系统则会把所有的指令或者文件名都列出来。3)别名前面也出现过alias的介绍,这个就是bash所特有的功能之一了。我们可以通过alias把一个常用的并且很长的指令别名一个简洁易记的指令。如果不想用了,还可以用unalias解除别名功能。直接敲alias会看到目前系统预设的alias :看到了吧,系统预设的alias指令也就这几个而已,你也可以自定义你想要的指令别名。alias语法很简单,alias
[命令别名]=[’具体的命令’]。4)通配符在bash下,可以使用*来匹配零个或多个字符,而用?匹配一个字符。5)输入输出从定向输入重定向用于改变命令的输入,输出重定向用于改变命令的输出。输出重定向更为常用,它经常用于将命令的结果输入到文件中,而不是屏幕上。输入重定向的命令是&,输出重定向的命令是&,另外还有错误重定向2&,以及追加重定向&&,稍后会详细介绍。6)管道符前面已经提过过管道符”|”,就是把前面的命令运行的结果丢给后面的命令。7)作业控制。当运行一个进程时,你可以使它暂停(按Ctrl+z),然后使用fg命令恢复它,利用bg命令使他到后台运行,你也可以使它终止(按Ctrl+c)。【变量】前面章节中笔者曾经介绍过环境变量PATH,这个环境变量就是shell预设的一个变量,通常shell预设的变量都是大写的。变量,说简单点就是使用一个较简单的字符串来替代某些具有特殊意义的设定以及数据。就拿PATH来讲,这个PATH就代替了所有常用命令的绝对路径的设定。因为有了PATH这个变量,所以我们运行某个命令时不再去输入全局路径,直接敲命令名即可。你可以使用echo命令显示变量的值。除了PATH, HOME, LOGNAME外,系统预设的环境变量还有哪些呢?使用env命令即可全部列出系统预设的全部系统变量了。不过登录的用户不一样这些环境变量的值也不一样。当前显示的就是root这个账户的环境变量了。下面笔者简单介绍一下常见的环境变量:PATH 决定了shell将到哪些目录中寻找命令或程序HOME 当前用户主目录HISTSIZE 历史记录数LOGNAME 当前用户的登录名HOSTNAME 指主机的名称SHELL 前用户Shell类型LANG 语言相关的环境变量,多语言可以修改此环境变量MAIL 当前用户的邮件存放目录PWD 当前目录env命令显示的变量只是环境变量,系统预设的变量其实还有很多,你可以使用set命令把系统预设的全部变量都显示出来。限于篇幅,笔者在上例中并没有把所有显示结果都截图。set不仅可以显示系统预设的变量,也可以连同用户自定义的变量显示出来。用户自定义变量?是的,用户自己同样可以定义变量。虽然你可以自定义变量,但是该变量只能在当前shell中生效,不信你再登录一个shell试试?使用bash命令即可再打开一个shell,此时先前设置的myname变量已经不存在了,退出当前shell回到原来的shell,myname变量还在。那要想设置的变量一直生效怎么办?有两种情况:1) 要想系统内所有用户登录后都能使用该变量需要在/etc/profile文件最末行加入 “export
myname=Aming” 然后运行”source /etc/profile”就可以生效了。此时你再运行bash命令或者直接su - test账户看看。2)只想让当前用户使用该变量需要在用户主目录下的.bashrc文件最后一行加入“export
myname=Aming” 然后运行”source .bashrc”就可以生效了。这时候再登录test账户,myname变量则不会生效了。上面用的source命令的作用是,讲目前设定的配置刷新,即不用注销再登录也能生效。笔者在上例中使用”myname=Aming”来设置变量myname,那么在linux下设置自定义变量有哪些规则呢?a. 设定变量的格式为”a=b”,其中a为变量名,b为变量的内容,等号两边不能有空格;b. 变量名只能由英、数字以及下划线组成,而且不能以数字开头;c. 当变量内容带有特殊字符(如空格)时,需要加上单引号;有一种情况,需要你注意,就是变量内容中本身带有单引号,这就需要用到双引号了。d. 如果变量内容中需要用到其他命令运行结果则可以使用反引号;e. 变量内容可以累加其他变量的内容,需要加双引号;在这里如果你不小心把双引号加错为单引号,将得不到你想要的结果通过上面几个例子也许你能看得出,单引号和双引号的区别:用双引号时不会取消掉里面出现的特殊字符的本身作用(这里的$),而使用单引号则里面的特殊字符全部失去它本身的作用。在前面的例子中笔者多次使用了bash命令,如果在当前shell中运行bash指令后,则会进入一个新的shell,这个shell就是原来shell的子shell了,不妨你用pstree指令来查看一下。pstree这个指令会把linux系统中所有进程通过树形结构打印出来。限于篇幅笔者没有全部列出,你可以直接输入pstree查看即可。在父shell中设定一个变量后,进入子shell后该变量是不会生效的,如果想让这个变量在子shell中生效则要用到export指令,笔者曾经在前面用过。export其实就是声明一下这个变量的意思,让该shell的子shell也知道变量abc的值是123.如果export后面不加任何变量名,则它会声明所有的变量。在最后面连同我们自定义的变量都被声明了。前面光讲如何设置变量,如果想取消某个变量怎么办?只要输入”unset 变量名”即可。用unset
abc后,再echo
$abc则不再输出任何内容。【系统环境变量与个人环境变量的配置文件】上面讲了很多系统的变量,那么在linux系统中,这些变量被存到了哪里呢,为什么用户一登陆shell就自动有了这些变量呢?
/etc/profile :这个文件预设了几个重要的变量,例如PATH, USER, LOGNAME, MAIL, INPUTRC, HOSTNAME, HISTSIZE, umas等等。
/etc/bashrc :这个文件主要预设umask以及PS1。这个PS1就是我们在敲命令时,前面那串字符了,例如笔者的linux系统PS1就是 [root@localhost ~]
\u就是用户,\h 主机名, \W 则是当前目录,\$就是那个’
除了两个系统级别的配置文件外,每个用户的主目录下还有几个这样的隐藏文件:
.bash_profile :定义了用户的个人化路径与环境变量的文件名称。每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次。
.bashrc :该文件包含专用于你的shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。例如你可以将用户自定义的alias或者自定义变量写到这个文件中。
.bash_history :记录命令历史用的。
.bash_logout :当退出shell时,会执行该文件。可以把一些清理的工作放到这个文件中。
【linux shell中的特殊符号】你在学习linux的过程中,也许你已经接触过某个特殊符号,例如”*”,它是一个通配符号,代表零个或多个字符或数字。下面笔者就说一说常用到的特殊字符。1.
:代表零个或多个字符或数字。test后面可以没有任何字符,也可以有多个字符,总之有或没有都能匹配出来。2.
:只代表一个任意的字符不管是数字还是字母,只要是一个都能匹配出来。3.在命令的开头或者中间插入”4.
:脱意字符,将后面的特殊符号(例如”*” )还原为普通字符。5.
:管道符,前面多次说过,它的作用在于将符号前面命令的结果丢给符号后面的命令。这里提到的后面的命令,并不是所有的命令都可以的,一般针对文档操作的命令比较常用,例如cat, less, head, tail, grep, cut, sort, wc, uniq, tee, tr, split, sed, awk等等,其中grep, sed, awk为正则表达式必须掌握的工具,在后续内容中详细介绍。6.
$ :除了用于变量前面的标识符外,还有一个妙用,就是和’!’结合起来使用。‘!$’表示上条命中中最后一个变量(也许称为变量不合适,总之就是上条命令中最后出现的那个东西)例如上边命令最后是test.txt那么在当前命令下输入!$则代表test.txt。1)grep :过滤一个或多个字符,将会在后续内容中详细介绍其用法。2) cut :截取某一个字段语法:cut
“分隔字符”
[-cf] n 这里的n是数字-d :后面跟分隔字符,分隔字符要用双引号括起来-c :后面接的是第几个字符-f :后面接的是第几个区块-d 后面跟分隔字符,这里使用冒号作为分割字符,-f 1 就是截取第一段,-f和1之间的空格可有可无。-c 后面可以是1个数字n,也可以是一个区间n1-n2,还可以是多个数字n1,n2,n33) sort :用做排序语法:sort
[-t 分隔符]
[-nru] 这里的n1 & n2-t 分隔符 :作用跟cut的-d一个意思-n :使用纯数字排序-r :反向排序-u :去重复-kn1,n2 :由n1区间排序到n2区间,可以只写-kn1,即对n1字段排序4) wc :统计文档的行数、字符数、词数,常用的选项为:-l :统计行数-m :统计字符数-w :统计词数5) uniq :去重复的行,笔者常用的选项只有一个:-c :统计重复的行数,并把行数写在前面有一点需要注意,在进行uniq之前,需要先用sort排序然后才能uniq,否则你将得不到你想要的,笔者上面的试验当中已经是排序过所以省略掉那步了。6)tee :后跟文件名,类似与重定向”&”,但是比重定向多了一个功能,在把文件写入后面所跟的文件中的同时,还显示在屏幕上。7)tr :替换字符,常用来处理文档中出现的特殊符号,如DOS文档中出现的^M符号。常用的选项有两个:-d :删除某个字符,-d 后面跟要删除的字符-s :把重复的字符去掉最常用的就是把小写变大写: tr
‘[a-z]’ ‘[A-Z]’当然替换一个字符也是完全可以的。不过替换、删除以及去重复都是针对一个字符来讲的,有一定局限性。如果是针对一个字符串就不再管用了,所以笔者建议只是简单了解这个tr即可,以后你还会学到更多可以实现针对字符串操作的工具。8)split :切割文档,常用选项:-b :依据大小来分割文档,单位为byte格式如上例,后面的passwd为分割后文件名的前缀,分割后的文件名为passwdaa, passwdab, passwdac …-l :依据行数来分割文档6. ; :分号。平时我们都是在一行中敲一个命令,然后回车就运行了,那么想在一行中运行两个或两个以上的命令如何呢?则需要在命令之间加一个”;”了。7. ~ :用户的家目录,如果是root则是 /root ,普通用户则是 /home/username8. & :如果想把一条命令放到后台执行的话,则需要加上这个符号。通常用于命令运行时间非常长的情况。使用jobs可以查看当前shell中后台执行的任务。用fg可以调到前台执行。这里的sleep命令就是休眠的意思,后面跟数字,单位为秒,常用语循环的shell脚本中。此时你按一下CTRL +z 使之暂停,然后再输入bg可以再次进入后台执行。如果是多任务情况下,想要把任务调到前台执行的话,fg后面跟任务号,任务号可以使用jobs命令得到。9. &, &&, 2&, 2&& :前面讲过重定向符号& 以及&& 分别表示取代和追加的意思,然后还有两个符号就是这里的2& 和 2&& 分别表示错误重定向和错误追加重定向,当我们运行一个命令报错时,报错信息会输出到当前的屏幕,如果想重定向到一个文本里,则要用2&或者2&&。10. [ ] :中括号,中间为字符组合,代表中间字符中的任意一个11.
&& 与 ||在上面刚刚提到了分号,用于多条命令间的分隔符。另外还有两个可以用于多条命令中间的特殊符号,那就是 “&&”和”||”。下面笔者把这几种情况全列出:1)
command1 ; command22)
command1 && command23)
command1 || command2使用”;”时,不管command1是否执行成功都会执行command2; 使用”&&”时,只有command1执行成功后,command2才会执行,否则command2不执行;使用”||”时,command1执行成功后command2 不执行,否则去执行command2,总之command1和command2总有一条命令会执行。
扫一扫支付
评论数: 27
评论数: 20
评论数: 19
评论数: 14
评论数: 11
评论数: 10
评论数: 9
评论数: 8
评论数: 8
评论数: 7
你好,yaf怎么使用循环输出数据到模板中
为什么我的没有mvn命令,而且setting.xml文件是在 ...
请问pid怎么用
请问你这个pid是哪里的
一般台式机速度从来都没有低于100MB/S,服务器做RAID5...
牛人,学习了,致敬。
lvm2-monitor
0:off 1:on 2:on...
你好我想问问,我启用插件后 就显示Server Error ,...
最厉害的方法
你好,我有在线录播的东西想请教你一下可以吗
评论数: 0
评论数: 0
评论数: 0
评论数: 0
评论数: 2
评论数: 3
评论数: 0
评论数: 3
评论数: 0
评论数: 0

我要回帖

更多关于 linux shell脚本 的文章

 

随机推荐