shell学习小记2

到昨天为止,把《Linux脚本攻略》看完了,全书有273页,老实说是最近少有的我能从头看到尾的书。evernote中我大概记了10个note,以下是从中抽选的一些笔记,之后有空的话还会加更多的。

按照CPU使用量排序(倒序)进程

ps -e 表示显示所有进程
ps -o 表示筛选显示的列,comm是可执行文件,pcpu是CPU使用量
ps –sort 表示排序依据,-pcpu表示按照CPU使用量倒排(+pcpu表示正排)
head表示截图头十行

kill相关

列出所有执行的信号

给指定的进程发送信号

常见信号

  • SIGINT 2 ctrl + c
  • SIGKILL 9 强制退出
  • SIGSTP 20 ctrl + z

which, whereis & whatis

系统参数相关

用tput做一个简单的倒计时

以前一直很好奇那种在shell里面出现的动态改变当前行内容的效果,比如你用apt-get install安装包时,shell最下面一行是进度,是不会被冲掉的,内容会动态改变;还有类似wget下载文件时的进度效果等。

最近学习shell,发现这些效果可以通过一个叫做tput的命令来实现,以下就是我在学习tput时做出来的一个简单的倒计时效果。shell脚本如下:

第一段是简单的参数检查,要求必须带一个参数,即count,比如10。
从echo -n ‘Countdown: ‘开始倒计时。tput这里有三次命令sc, rc, ed分别是保存当前光标位置,恢复保存的光标位置和清除从当前光标位置到设置行末尾的内容。
你可以想象,当前位置不断显示不同内容的原理是动态改变这个位置上的内容,对于图像来说,记录某个对象的位置,刷新显示时定位笔刷到对象的位置,清除对象所在位置上的内容,最后绘制内容。用tput来说,就是rc -> ed -> “绘制”命令。sc肯定是在最前面只做一次的,因为只要记录一次光标位置就行。

重点讲解完之后,为了显示出效果,用sleep 1按秒计时,否则你什么都看不到,因为太快了。输入上count参数对应$1,但是貌似不能用{1..$1}输出1到$1的序列,所以使用seq做,同时用tac反转顺序。

最后,各位可以运行一下脚本试试看。虽然很简单,但是个人对shell了解更进了一步。

shell学习小记1

以下内容为本人学习《Linux Shell脚本攻略》的一些笔记。如果你想好好学shell的话,个人非常推荐这本书。

关于软链接和链接文件

除了常规的ls -l找出链接文件之外,还有以下两种方式:

上面的命令直接打印链接文件的目标文件。

上面的命令查找当前目录下的所有链接文件。

链接文件的方式基本上都是ln命令,ln的参数-s指定创建的是软链接文件而不是硬链接。软链接和硬链接的主要区别个人归纳为:

  • 目录必须用软链接
  • 软链接支持跨分区,硬链接不行
  • 硬链接创建的文件和原始文件大小一致

Read More

linux命令使用小记4

linux真的是学无止境,不要认为你已经熟练掌握常规命令了,比如grep了,下面就是一些例子。

grep –color与less -r

less -r表示显示控制字符,比如高亮,但是如果你希望less时显示grep的高亮的话,不能只指定grep –color,而要用grep –color=always,比如

Read More