linux shell 脚本攻略学习4】的更多相关文章

awk生于1977年,创始人有三个,分别为 Alfred Aho,Peter Weinberger, 和 Brian Kernighan,名称源于三个创始人的姓的首字母. 作用:处理文本文件. awk的特色是可以对行和列进行操作,输入man awk可以查看awk手册,下面将主要以例子来学习awk语言. 语法: mawk [-W option] [-F value] [-v var=value] [--] 'program text' [file ...] mawk [-W option] [-F…
终端打印 终端打印的常用命令有两个:echo和print 首先,我先介绍echo 1.echo echo这个命令接受三种形式的参数,实例如下: echo "Hello World" echo 'Hello World' echo Hello World 这三中形式的命令输出的都是同样的结果,但是,每种方法都有它相应的"副作用" 例如如下的结果: 从结果中我们可以看出,以双引号为参数的命令并不能识别标点符号,此时,如果仍使用双引号我们可以加上转义字符,并使用 -e 参…
sed(意为流编辑器,英语“stream editor”的缩写)是Unix/linux常见的命令行程序.sed用来把文档或字符串里面的文字经过一系列编辑命令转换为另一种格式输出,即文本替换.sed通常用来匹配一个或多个正则表达式的文本进行处理. 输入sed --help查看帮助信息: amosli@amosli-pc:~/learn/sed$ sed --help Usage: sed [OPTION]... {script-only-if-no-other-script} [input-fil…
linux中(chattr)创建不可修改文件的方法 在常见的linux扩展文件系统中(如ext2.ext3.ext4等),可以将文件设置为不可修改(immutable).某些文件属性可帮助我们将文件设置不可修改.一旦文件被设置为不可修改,任何用户包括超级用户都不能删除该文件,除非其不可修改的属性被移除.通过查看/etc/mtab文件,很容易找出所有挂载分区的文件系统类型.这个文件的第一列指定了分区设备路径(如/dev/sda5),第三列指定了文件系统类型(如ext3). 接下来让我们看看如何将文…
1.Bash中的READ命令 #读取n个字符存入变量 read -n number_of_chars variable_name 示例: amosli@amosli-pc:~$ read -n var heamosli@amosli-pc:~$ echo $var he #不回显的方式读取密码 read -s var 示例: amosli@amosli-pc:~$ read -s var amosli@amosli-pc:~$ echo $var pw #显示提示信息 read -p "Ente…
1.关于文件描述符和重定向: 文件描述符是与一个打开的文件或数据流相关联的整数.文件描述符0.1以及2是系统预留的. 0——stdin(标准输入) 1——stdout(标准输出) 2——stderr(标准错误) 使用“echo $?”来显示状态 amosli@amosli-pc:~/learn$ echo $? amosli@amosli-pc:~/learn$ > out.txt //没有任何输出,因为已经重定向到out.txt里面了 amosli@amosli-pc:~/learn$ cat…
根据扩展名切分文件名 首先,我们先来看两个例子: file_jpg="sample.jgp" name=${file_jpg%.*} echo File name is : $name 输出结果: File name is sample extension=${file_jpg#*.} echo Extension is : $extension 输出结果:Extension is : jpg 工作原理 在第一个任务中,为了从"名称.扩展名"中取得文件的名字,我们使…
比较与测试 程序中的流程控制是由比较和测试语句来处理的. 我们可以用if,if else 以及逻辑运算符来执行测试,而用一些比较运算符来比较数据项.另外,有一个test 命令也可以用来进行测试.让我们来看看如何使用这些命令. 实战演练: if 条件: if condition; then commands; fi else if 和 else : if condition; then commands; elif condition; then commands else commands fi…
文件权限详解 一.chmod命令详解 文件权限和所有权是Unix/Linux文件系统最显著的特征之一.linux中的每一个文件都与多种权限类型相关联,在这些权限中主要分类为3种: 用户(User)是文件的所有者: 用户组(Group)是多个用户的集合,系统允许用户进行某些形式的访问: 其他用户(others)是除用户和用户组以外的任何用户. 用命令ls  -l(或者ll)可以列出文件的权限: 实例: amosli@amosli-pc:/$ ls -l drwxr-xr-x root root 6…
grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是unix/linux中用于文本搜索的大师级的工具.它能够接受正则表达式和通配符. 首先,输入grep --help查看帮助信息: amosli@amosli-pc:~$ grep --help Usage: grep [OPTION]... PATTERN [FILE]... Search for PATTERN in each F…
正则表达式(也称为“regex”或“regexp”)是一种用来描述文本模式的特殊语法.在 Linux 系统上,正则表达式通常被用来查找文本的模式,以及对文本流执行“搜索-替换”操作以及其它功能. 正则表达式是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”).模式描述在搜索文本时要匹配的一个或多个字符串. 下面是正则表达式语法格式大全: 字符 说明 \ 将下一字符标记为特殊字符.文本.反向引用或八进制转义符.例如,“n”匹配字符“n”.“\n”匹配换行符.序列…
在文本处理的工作中,统计文件的行数,单词数和字符数非常有用.而对于开发人员本身来说,统计LOC(line of code ,代码行数)是一件重要的工作.linux中有什么命令可以帮助我们做统计呢?没错,就是wc,不是厕所的意思啊,是Word Count的缩写. 当作好统计时,又需要写个开发的文档,特别是项目比较大的时候,如果将目录和文件系统以图形化的树状层次结构描述,在以后的维护过程将更加清晰明了,下面将同样将要介绍的还有tree命令. 一.wc命令详解 首先,输入man wc 查看wc 的指导…
工作中经常遇到关于目录方面的问题,例如,如何只列出当前目录下的所有目录,以及如何快速高效的切换目录,而不需要使用鼠标,下面将简单介绍关于这两方面的解决方案: 一.如何只列出目录? 看似简单的任务,其实就算是linux水平不错的人都有可能被这个问题难住. 下面介绍4种方法列出当前路径下的目录: 1.ls -d * amosli@amosli-pc:~$ ls -d * %APPDATA% develop many sorted.txt workspace bank Documents Music…
当要查看上千行的大文件时,我们可不会用cat命令把整个文件内容给打印出来,相反,我们可能只需要看文件的一小部分地内容(例如文件的前十行和后十行),我们也有可能需要打印出来前n行或后n行,也有可能打印除了前n行或后n行之外的所有行,也有可能需要实时监控log日志的更新,那么怎么实现呢?下面一起来看一下linux下使用率极高的head ,tail两个命令. 一.head命令详解 首先,输入head --help查看帮助信息: amosli@amosli-pc:~/learn/fd$ head --h…
一.file命令详解 find命令可以通过查看文件内容来找出特定类型的文件,在UNIX/ Linux系统中,文件类型并不是由文件扩展名来决定的(windows中却正是这么做的),file命令的目的是从多个文件中收集文件类型统计信息.输入 file --help查看帮助提示信息,如下: amosli@amosli-pc:~$ file --help Usage: file [OPTION...] [FILE...] Determine type of FILEs. --help display t…
一.创建目录(mkdir命令详解) amosli@amosli-pc:~/learn$ mkdir dir amosli@amosli-pc:~/learn/dir$ mkdir folder amosli@amosli-pc:~/learn/dir$ ls folder 上面的命令中用到了mkdir,即是创建一个目录,非常常用的一个linux 命令.该命令创建指定的目录名,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录. 在命令行内输入mkdir --he…
rename命令详解: 对文件重命名是常用的操作之一,一般对单个文件的重命名用mv命令,如: amosli@amosli-pc:~/learn/example$ ls abc.txt amosli@amosli-pc:~/learn/example$ mv abc.txt a.txt amosli@amosli-pc:~/learn/example$ ls a.txt 那么如何对指文件进行重命名呢?当然你可以全部手动去赋值,但很影响效率,如下,将所有文件名称都改为大写的,如何做呢? amosli…
一.校验与核实 目前最为出名的校验技术是md5sum和sha1sum,它们对文件内容使用相应的算法来生成校验和. 举例: amosli@amosli-pc:~/learn$ md5sum text.txt 186931e2ff7cb0cde2c17b2298be604c text.txt 如上所示,使用md5sum生成了一个由32个字符组成的十六进制串. 可以将输出的校验重定向到一个文件中,然后再用这个md5文件来核实数据的完整性: amosli@amosli-pc:~/learn$ md5su…
tr命令详解 什么是tr命令?tr,translate的简写,translate的翻译: [trænsˈleit] vi. 翻译, 能被译出 vt. 翻译, 解释, 转化, 转变为, 调动 在这里用到的意思是转化,转变,转换,在linux下输入tr --help查看一下提示: amosli@amosli-pc:~$ tr --help Usage: tr [OPTION]... SET1 [SET2] Translate, squeeze, and/or delete characters fr…
1.find命令详解 语法: find base_path#base_path可以是任何位置,find会从该位置向下找 实例: amosli@amosli-pc:~$ find /home/amosli/learn/ /home/amosli/learn/ /home/amosli/learn/timing.log /home/amosli/learn/file.py ...... 查找当前目录: find . -print,'.'代表当前目录,'..'代表父目录,-printf指明打钱出匹配文…
1.关于echo和printf打印输出 如果要使用转义序列,那么需要在echo 后面加上参数 -e来进行识别,下面例子是进行对比: amosli@amosli-pc:~/learn$ echo -e "1\t2\t3\t" amosli@amosli-pc:~/learn$ echo "1\t2\t\3\t" \t2\t\\t 输出彩色输出: 颜色码:重置为0,黑色为30,红色为31,绿色为32,黄色为33,蓝色为34,洋红为35,青色为36,白色为37. echo…
当要查看上千行的大文件时,我们可不会用cat命令把整个文件内容给打印出来,相反,我们可能只需要看文件的一小部分地内容(例如文件的前十行和后十行),我们也有可能需要打印出来前n行或后n行,也有可能打印除了前n行或后n行之外的所有行,也有可能需要实时监控log日志的更新,那么怎么实现呢?下面一起来看一下linux下使用率极高的head ,tail两个命令. 一.head命令详解 首先,输入head --help查看帮助信息: amosli@amosli-pc:~/learn/fd$ head --h…
一.生成任意大小的文件(dd命令): 举例: amosli@amosli-pc:~/learn/example$ ; + records in + records out bytes ( MB/s amosli@amosli-pc:~/learn/example$ ls test.zip dd命令介绍:创建特定大小的文件最简单的方法就是使用dd命令,dd命令会克隆给定的输入内容然后将一模一样的一份副本写入到输出.stdin,设备文件,普通文件都可以作为输入,stdout,设备文件,普通文件等都可…
xargs是一条Unix和类Unix操作系统的常用命令.它的作用是将参数列表转换成小块分段传递给其他命令,以避免参数列表过长的问题. 例如,下面的命令: rm `find /path -type f` 如果path目录下文件过多就会因为“参数列表过长”而报错无法执行.但改用xargs以后,问题即获解决. rm 本例中xargs将find产生的长串文件列表拆散成多个子串,然后对每个子串调用rm.-print0表示输出以null分隔(-print使用换行):-0表示输入以null分隔.这样要比如下使…
1.cat命令详解 cat 是concatnate(拼接)的简写. 语法: cat file1 file2 file3 .... 作用:将文件内容拼接在一起进行输出 具体应用: 1).压缩空白行 加上-s参数压缩连续的空白行 amosli@amosli-pc:~/learn$ cat mutil_blank.txt this is blank! amosli@amosli-pc:~/learn$ cat -s mutil_blank.txt #压缩连续的空白行 this is blank! 移除…
前段时间读完了<Linux Shell脚本攻略>(第2版)这本书,给部分想读这本书的人分享下个人感受. 说下这本书的难度吧.纯新手或者只懂少部分编程知识的人,读起来还是有很大难度的.以我为例,做过开发,在学了几个月linux知识后才开始读这本书,书里的部分内容还是不理解.这个倒不是shell脚本学起来难度大,只是shell脚本语言的设计,坑比较多,一些设计和规定,甚至让你感觉这是二货程序猿的作品,与主流的c.java等语法彼此有很大区别.下面细说下读这本书各个章节的建议. 第一章:小试牛刀 …
前段时间读完了<Linux Shell脚本攻略>(第2版)这本书,给部分想读这本书的人分享下个人感受. 第一遍体会解读:就像黑夜中的灯塔,指明前进的道路. 推荐指数:强烈推荐. 书中讲解的知识在工作中常常用到. 推荐人群:新手.接触linux一段时间的人.对shell不熟悉的人 说下这本书的难度吧.纯新手或者只懂少部分编程知识的人,读起来还是有很大难度的.以我为例,做过开发,在学了几个月linux知识后才开始读得这本书,但是对于书里的部分内容还是不理解.这个倒不是shell脚本学起来难度大,只…
前一阵子系统学习了下<linux shell脚本攻略>这本书.在此记录下自己的学习笔记 1. 输出颜色字符  echo -e "\e[1:41m" 1表示背景色   2.  echo 打印!需要注意  echo "hello, bash!"  会出错  需要改成 echo 'hello, bash!'   3. printf可用于格式化输出  printf "format"  var1 var2 ...   4.  echo  ech…
Linux Shell脚本攻略笔记[速查] 资源 shell script run shell script echo printf 环境变量和变量 pgrep shell数学运算 命令状态 文件描述符和重定向 cat 数组和关联数组 alias date 调试脚本 函数和参数 管道 读取命令输出 read 字段分隔符和迭代器 循环 比较和测试 find xargs tr md5sum sha1sum 对目录进行校验 sort uniq tempfile split bash变量匹配切分 exp…
Linux Shell脚本攻略 读书笔记 这是一本小书,总共253页,但内容却很丰富,书中的示例小巧而实用,对我这样总是在shell门前徘徊的人来说真是如获至宝:最有价值的当属文本处理,对这块我单独整理出来一篇blog,详见<Linux Shell文本处理工具集锦>下面是文本处理之外的简单介绍,如果你觉得自己的shell需要充充电,强烈建议读读这本<linux Shell脚本攻略>. 嗨,Echo一下 从 echo开始:带引号的 echo和不带引号的 echo区别:使用带引号时,b…