`
flynewton
  • 浏览: 59785 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Shell 脚本学习指南读书笔记(长期更新)

阅读更多

关键字: shell , linux
本文记录自己学习《Shell脚本学习指南》的一些学习笔记,将尽量以简单的例子来说明问题,希望自己能一直坚持下去。

1.使用cut选定字段

ls -l | cut -c 1-10                               选定每行前10个字符

cut -d : -f 1,5 /etc/passwd                以:为界定符,选取passwd文件的第一个和第五个字段

2.使用join连接字段

为了让join输出正确结果,输入的文件必须先进行排序,例子如下:

========================================
#! /bin/bash
# 删除注释并排序数据文件
sed '/^#/d' quotas | sort > quotas.sorted
sed '/^#/d' sales  | sort > sales.sorted
# 以第一个键做结合,将结果产生至标准输出
join quotas.sorted sales.sorted
# 删除缓存数据
# rm quotas.sorted sales.sorted
=========================================

3.使用vi对比2个文件
首先vi一个文件,然后:vsp anotherfile's name, 这样就可以垂直对比着看这两个文件了;:sp anotherfile's name可以横向对比。
两个窗口间切换用Ctrl-w w

4.crontab定时执行任务
*/5 * * * * touch /home/flynewton/a.`date +\%Y-\%m-\%d.\%T`   每5分钟创建一个文件名带有当前时间戳的文件
crontab xxx 执行;
crontab -l查询cron列表; 
crontab -r删除cron任务

5.at命令延迟至特定时间执行
at 21:00 < command-file                                在下午九点执行
at now + 10 minutes < command-file            10分钟后执行
at now + 8hours < command-file                   8小时后执行
at 0400 tomorrow < command-file                明天早上4点执行
at teatime < command-file                            下午16:00执行
atq查看at队列;atrm删除at任务

6.tr命令的使用
语法如下:tr [options] source-char-list replace-char-list

示例:有一个test文件,内容为:aaabbbcccdddefghiii

tr -c "a" "z" < test | cat            得到结果:aaazzzzzzzzzzzzzzzzz,除了a以外,其它字符都用z替换
tr -d "ad" < test | cat               得到结果:bbbcccefghiii,a和d字符被删除
tr -s "ad" < test | cat               得到结果:abbbcccdefghiii,浓缩a和d字符为一个

7.特殊文件:/dev/null与/dev/tty
传送到/dev/null的数据会被系统丢掉,即将数据写入到此文件,则会认为成功完成写入操作,而事实上什么事情也没有做。需要得到命令的退出状态而不是输出时很有用,如:
==========================================
if grep pattern myfile > /dev/null
then
    .... #找到模式
else
    .... #找不到模式
fi
==========================================
将/dev/null写入文件(cat /dev/null > xxx.txt), 将文件结束符写入文件,即清空该文件内容。
/dev/tty,将程序重定向到一个终端,适合于读取人工输入等,例子如下:
 =========================================
#! /bin/bash

printf "Enter your passwd: \n"
stty -echo                   #stty控制终端的各种设置
                             #这里关闭自动打印输入字符的功能
read pass < /dev/tty
printf "Enter again: \n"
read pass2 < /dev/tty
stty echo                    #恢复自动打印输入字符的功能
===========================================

8.简单的执行脚本跟踪
方法一:sh -x your-script-commond
方法二:脚本内设置,set -x打开跟踪,set +x关闭跟踪
9.生成固定大小文件
dd if=/dev/zero of=/home/flynewton/1M.img bs=1K count=1024(生成一个1M的文件,文件名为1M.img)

/dev/zero

From Wikipedia, the free encyclopedia

In Unix-like operating systems/dev/zero is a special file that provides as many null characters (ASCIINULL, 0x00; not ASCII character "digit zero", "0", 0x30) as are read from it. One of the typical uses is to provide a character stream for overwriting information. Another might be to generate a clean file of a certain size. Using mmap to map /dev/zero to RAM is the BSD way of implementing shared memory.

分享到:
评论

相关推荐

    《LINUX与UNIX SHELL编程指南》读书笔记

    《LINUX与UNIX SHELL编程指南》读书笔记 《LINUX与UNIX SHELL编程指南》读书笔记

    Shell脚本学习指南笔记.pdf

    。。。

    shell编程指南读书笔记.pdf

    SHELL读书笔记,看完能够快速掌握shell脚本写作,奠定良好基础。新手非常值得一看,有基础的也可印证所学。

    unix编程之Unix Shell学习笔记

    提供unix shell脚本的编程指南,本书包含shell编程的经典开发实例

    Unix&Linux shell编程指南

    本人整理的Unix&Linux Shell编程指南及学习笔记,个人觉得是学习shell不可多得的好资料!

    Awk学习笔记和指南

    它在命令行中使用,但更多是作为脚本来使用。awk的处理文本和数据的方式是这 样的,它逐行扫描文件,从第一行到最后一行,寻找匹配的特定模式的行,并在这些行上进行你想要的操作。如果没有指定处理动作,则把匹配的...

    linux-notes:面向中国程序员Linux快速入门笔记本

    Linux命令行及bash相关的笔记坑挖好了, 开始填:)这是我的笔记梳理, 删掉旧版本, 重新梳理中.....doing当前进度: 20%基于系统: centos 6.5参考书目鸟哥Linux私房菜Linux与Unix Shell编程指南Linux Shell脚本攻略概要...

    OSCP:OSCP注释和自动脚本

    OSCP注释和自动脚本本指南是我本人在2021年使用oscp时编写的 如果您正在寻找有关如何利用特定计算机的信息,则可以在其他地方找到。 它仅包含一般性注释和脚本,以帮助某人加快使用工具和协议的速度。 剧本 generic...

    docs

    介绍2014年,Novena开源笔记本... 文档资料库: 包含本指南,一般问题跟踪工具和各种升级脚本内核存储库: 包含发行版无关的补丁集,用于Novena特定功能包含补丁集的Git开发树用户空间存储库: 是Russel King xf86-vid

    JSLA_2021:JSLA网络研讨会的样本2021年4月14日

    使用了node.js驱动程序ShellDemo-MongoDB游标和函数中两种循环机制的用法展示了Mongo Shell Javascript ES6功能VSCode-Demo-包含一个游戏设备以显示此新VS Code扩展的此功能GraphQL-React-MongoDB MFLIX数据库与...

    eosio-project-boilerplate-simple:该存储库演示了使用简单DApp NoteChain的eosio平台将区块链作为本地单节点测试网运行

    本指南使用包含相关命令的脚本,这些脚本将向您展示如何安装,构建和运行NoteChain,并以此演示: 在docker中下载并运行eosio; 管理您的Docker容器; 建立并运行本地单节点测试网; 设置钱包,钥匙和账户; 编写和...

    dotfiles:我的dotfile配置文件

    重要说明-此存储库以前有一个自定义脚本来处理文件的链接和管理。 我现在切换到使用来管理此存储库中文件的链接。 如果您以前使用此存储库作为管理.dotfiles的基础,则请根据新方法更新代码。 该存储库旨在对我...

    data-pre-reqs

    在此存储库中,您将找到Ironhack(马德里版)进行数据分析新手训练的最终指南。 ##安装目标: Brew,Git,VSC,iTerm2,jupyter笔记本,conda,mongodb,MySQL和工作台。技能目标您将至少执行一次以下任务。 在终端...

Global site tag (gtag.js) - Google Analytics