随笔分类 -  Linux Shell

摘要:二十三. Bash Shell编程: 1. 读取用户变量: read命令是用于从终端或者文件中读取输入的内建命令,read命令读取整行输入,每行末尾的换行符不被读入。在read命令后面,如果没有指定变量名,读取的数据将被自动赋值给特定的变量REPLY。下面的列表给出了read命令的常用方式: 命令格式 描述 read answer 从标准输入读取输入并赋值给变量answer。 read first last 从标准输入读取输入到第一个空格或者回车,将输入的第一个单词放到变量first中,并将该行其他的输入放在变量last中。 read 从标准输入读取一行并赋值给特定变量REP... 阅读全文
posted @ 2012-07-04 14:48 Merlin_Tang 阅读(11325) 评论(0) 推荐(1) 编辑
摘要:二十二. 交互式使用Bash Shell: 1. 用set命令设置bash的选项: 下面为set主要选项的列表及其表述: 选项名 开关缩写 描述 allexport -a 打开此开关,所有变量都自动输出给子Shell。 noclobber -C 防止重定向时文件被覆盖。 noglob -d 在路径和文件名中,关闭通配符。 #打开该选项 /> set -o allexport #等同于set -a #关闭该选项 /> set +o allexport #等同于set +a #列出当前所有选项的当前值。 /> set -o allexport off braceexpan... 阅读全文
posted @ 2012-07-03 16:48 Merlin_Tang 阅读(9485) 评论(0) 推荐(0) 编辑
摘要:二十. 通过管道组合Shell命令获取系统运行数据: 1. 输出当前系统中占用内存最多的5条命令: #1) 通过ps命令列出当前主机正在运行的所有进程。 #2) 按照第五个字段基于数值的形式进行正常排序(由小到大)。 #3) 仅显示最后5条输出。 /> ps aux | sort -k 5n | tail -5 stephen 1861 0.2 2.0 96972 21596 ? S Nov11 2:24 nautilus stephen 1892 0.0 0.4 102108 4508 ? S<sl Nov11 0:00 /usr/bin/pulseaudio stephen 1 阅读全文
posted @ 2012-07-03 10:38 Merlin_Tang 阅读(12464) 评论(0) 推荐(0) 编辑
摘要:十九. 和系统运行进程相关的Shell命令: 1. 进程监控命令(ps): 要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程,而ps命令就是最基本同时也是非常强大的进程查看命令。使用该命令可以 确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等。总之大部分信息都是可以通过执行该命令得到的。 ps命令存在很多的命令行选项和参数,然而我们最为常用只有两种形式,这里先给出与它们相关的选项和参数的含义: 选项 说明 a 显示终端上的所有进程,包括其他用户的进程。 u 以用户为主的格式来显示程序状况。 x 显示... 阅读全文
posted @ 2012-07-02 21:23 Merlin_Tang 阅读(4651) 评论(0) 推荐(0) 编辑
摘要:十八. 和系统运行状况相关的Shell命令: 1. Linux的实时监测命令(watch): watch 是一个非常实用的命令,可以帮你实时监测一个命令的运行结果,省得一遍又一遍的手动运行。该命令最为常用的两个选项是-d和-n,其中-n表示间隔多少秒 执行一次"command",-d表示高亮发生变化的位置。下面列举几个在watch中常用的实时监视命令: /> watch -d -n 1 'who' #每隔一秒执行一次who命令,以监视服务器当前用户登录的状况 Every 1.0s: who Sat Nov 12 12:37:18 2011 stephe 阅读全文
posted @ 2012-07-02 16:08 Merlin_Tang 阅读(4460) 评论(0) 推荐(0) 编辑
摘要:十六. 文件查找命令find: 下面给出find命令的主要应用示例: /> ls -l #列出当前目录下所包含的测试文件 -rw-r--r--. 1 root root 48217 Nov 12 00:57 install.log -rw-r--r--. 1 root root 37 Nov 12 00:56 testfile.dat -rw-r--r--. 1 root root 10530 Nov 11 23:08 test.tar.bz2 -rw-r--r--. 1 root root 183 Nov 11 08:02 users -rw-r--r--. 1 root root 2 阅读全文
posted @ 2012-07-02 16:07 Merlin_Tang 阅读(27117) 评论(0) 推荐(3) 编辑
摘要:十二. 行的排序命令sort: 1. sort命令行选项: 选项 描述 -t 字段之间的分隔符 -f 基于字符排序时忽略大小写 -k 定义排序的域字段,或者是基于域字段的部分数据进行排序 -m 将已排序的输入文件,合并为一个排序后的输出数据流 -n 以整数类型比较字段 -o outfile 将输出写到指定的文件 -r 倒置排序的顺序为由大到小,正常排序为由小到大 -u 只有唯一的记录,丢弃所有具有相同键值的记录 -b 忽略前面的空格 2. sort使用实例: 提示:在下面的输出结果中红色标注的为第一排序字段,后面的依次为紫、绿。 /> sed ... 阅读全文
posted @ 2012-07-02 15:43 Merlin_Tang 阅读(3271) 评论(0) 推荐(2) 编辑
摘要:十一. awk编程: 1. 变量:在awk中变量无须定义即可使用,变量在赋值时即已经完成了定义。变量的类型可以是数字、字符串。根据使用的不同,未初始化变量的值为0或空白字符串" ",这主要取决于变量应用的上下文。下面为变量的赋值负号列表: 符号 含义 等价形式 = a = 5 a = 5 += a = a + 5 a += 5 -= a = a - 5 a -= 5 *= a = a * 5 a *= 5 /= a = a / 5 a /= 5 %= a = a % 5 a %= 5 ^= a = a ^ 5 a ^= 5 /> awk '$1 ~ /... 阅读全文
posted @ 2012-06-30 20:47 Merlin_Tang 阅读(13394) 评论(0) 推荐(0) 编辑
摘要:九. awk实用功能: 和sed一样,awk也是逐行扫描文件的,从第一行到最后一行,寻找匹配特定模板的行,并在这些行上运行“选择”动作。如果一个模板没有指定动作,这些匹配的行就被显示在屏幕上。如果一个动作没有模板,所有被动作指定的行都被处理。 1. awk的基本格式: /> awk 'pattern' filename /> awk '{action}' filename /> awk 'pattern {action}' filename 具体应用方式分别见如下三个用例: /> cat employees Tom Jon 阅读全文
posted @ 2012-06-30 20:42 Merlin_Tang 阅读(9314) 评论(0) 推荐(0) 编辑
摘要:八、流编辑器sed8.1 sed简介sed是stream editor的缩写,一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。sed主要用来自动编辑一个或多个文件,简化对文件的反复操作,编写转换程序等。8.2 sed命令格式sed [nefri] 'command' file(s)常用选项:-n 使用安静(silent)模式。在一般sed的用法 阅读全文
posted @ 2012-06-30 20:28 Merlin_Tang 阅读(32156) 评论(0) 推荐(0) 编辑
摘要:七. grep家族: 1. grep退出状态: 0: 表示成功; 1: 表示在所提供的文件无法找到匹配的pattern; 2: 表示参数中提供的文件不存在。 见如下示例: /> grep 'root' /etc/passwd root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin /> echo $? 0 /> grep 'root1' /etc/passwd #用户root1并不存在 /> echo $? 1 /> grep ' 阅读全文
posted @ 2012-06-29 16:48 Merlin_Tang 阅读(13601) 评论(0) 推荐(0) 编辑
摘要:一. 特殊文件: /dev/null和/dev/tty Linux系统提供了两个对Shell编程非常有用的特殊文件,/dev/null和/dev/tty。其中/dev/null将会丢掉所有写入它的数据,换句换说,当程序将数据写入到此文件时,会认为它已经成功完成写入数据的操作,但实际上什么事都没有做。如果你需要的是命令的退出状态,而非它的输出,此功能会非常有用,见如下Shell代码: /> vi test_dev_null.sh #!/bin/bash if grep hello TestFile > /dev/null then echo "Found" els 阅读全文
posted @ 2012-06-29 15:37 Merlin_Tang 阅读(9963) 评论(0) 推荐(2) 编辑