2014年5月

Linux 命令之 kill

杀掉进程。

命令格式

kill [-<signal_name|signal_number>] <pid>

其中 pid 是进程ID。

选项可以是信息名称或信号编号。

信号

kill -l
可以查看全部支持的信号。

linux_signals.jpeg

常用信号

编号名称说明
1SIGHUP让进程立即关闭,然后重新读取配置文件再启动
2SIGINT终止前台进程,相当 ctrl+c
9SIGKILL立即结束进程,不能被阻塞、捕获、忽略
15SIGTERM正常结束进程,kill 命令的默认信号。如果进程已经发生了问题,那么无法通过该信号正常终止进程
18SIGCONT让暂停的进程恢复执行
19SIGSTOP暂停前台进程,相当于 ctrl+z

kill 与 kill -9 的区别

默认情况下(即不指定信号参数时),使用的是 SIGTERM(15)信号。它告诉进程,你需要被关闭,请自行停止并退出。
kill -9 是发送 SIGKILL 信号给进程,通过内核将进程直接终止,该进程在毫无准备的情况下被关闭了。SIGKILL 信号不能被捕获或忽略,接收到该信号的进程不能执行任何清理。

Linux 命令之系统任务

系统任务是由多个功能命令完成的。什么是任务,执行一条命令,可称之为一个任务,尤其是需要长时间运行的命令。

查看任务

jobs

选项
-l 可以查看到相应进程的 ID

参数
<jobnumber> 任务序号,如果输入该参数,则只查看该任务

列表的组成
[序号1]+ 任务状态 任务命令
[序号2]- 任务状态 任务命令
[序号3] 任务状态 任务命令

其中序号为任务序号(jobnumber),+ 表示当前任务,- 表示当前任务的下一个任务,没有符号的任务为更远的任务。
任务状态有:Running(运行中),Suspended(挂起),Stopped(已停止),Terminated(已终止),Killed(被杀掉了)。
其中已终止的任务很快会从任务列表中消失。

前台任务&后台任务

执行命令后,占据命令行提示符,表示该任务是前台运行,无法在该 shell 中输入其它命令。
在命令的末尾加上 & 符号,可使命令在后台运行。此时可继续输入其它命令。

将前台任务转到后台运行

按下 ctrl+z 将任务挂起,再通过 jobs 命令可查看到任务序号(jobnumer),然后通过 bg %<jobnumber> 将挂起的任务继续在后台运行。

将后台任务转到前台运行

fg %<jobnumber>
如果不加任何参数,则是将当前任务转到前台。
fg 是 foreground 的意思。

将后台任务继续运行

bg %<jobnumber>
如果不加任何参数,则是将当前任务在后台继续运行(该任务此前可能是挂起状态)。
bg 是 background 的意思。

终止进程

终止后台进程

kill %<jobnumber>
kill <pid>
通过 jobs -l 可以查看到进程 ID(pid)。

终止前台进程

ctrl+c

附加

键盘操作的含义

ctrl+c kill foreground process 杀掉前台进程
ctrl+z suspend foreground process 挂起前台进程
ctrl+d terminate input, or exit shell 结束输入,或者退出 shell
ctrl+s suspend output 挂起输出
ctrl+q resume output 恢复输出
ctrl+o discard output 丢弃输出
ctrl+l clear screen 清屏

Git 使用 .gitignore 忽略特殊文件

Git 是非常强大的版本控制与管理工具。在使用的过程中,提交文件时,经常需要忽略某些文件。如编译后的二进制文件。

Git 可以使用 .gitignore 文件来忽略这些文件。在项目根目录下,创建 .gitignore 文件,并写入忽略规则即可。例如 Python 项目,一般需要忽略所有编译后的文件 *.pyc 。如下是一个示例:

.gitignore
*.pyc

忽略规则说明:

1.过滤

忽略整个文件夹中的文件

/tmp/

忽略某个文件

site_settings.py

忽略某类文件,使用通配符

*.pyc

2.不过滤

!*.setting

说明,不过滤是在过滤的相反意思,只要在过滤规则前加叹号 ! ,表示不忽略这些文件(夹)。在 .gitignore 文件中,使用 # 来表示注释。

还可以设置一个全局的忽略文件,就不用在每个项目中都设置该文件。

在 git 的配置文件中设置:

cat ~/.gitconfig
[core]
    excludesfile = ~/.gitignore_global

然后在用户目录中添加文件 .gitignore_global,其内容与上面的一致。

用纯CSS实现三角图标

在前端开发中,经常遇到这样的三角图标。

请输入图片描述

虽然美术设计人员可能已经帮你切好了图片,用CSS的绝对定位往上一摆即可。但这是最原始的方法,主框一旦改动,三角图标也得跟着改动。

现在来看如何用纯CSS实现三角图标,它的优点非常明显,不用修改图片,而且减少了网络请求。我找到 2 种方法来制作这样的三角图标。

1.边框法

对一个宽高均为 0 的容器,设置一定宽度的边框。其中一条边的颜色为三角图标所需的颜色,其余边框颜色设为透明。这个容器看起来就分成了 4 份,每一份成为一个三角形,这就是它的四条边。为了减少容器的大小,所需三角形的对边可设置为 0。代码如下:

.triangle {
    display: block;
    width: 0;
    height: 0;
    border-width: 0 10px 10px;  /* 设定横向边框的宽度小于竖向边框,可以形成长三角形 */
    border-style: solid;
    border-color: transparent transparent red;
}

发挥你的想象,还可以组合成其它效果的箭头。例如气泡效果的长斜箭头,可以使用容器的上右部分2个三角来组合,并且将容器设置成竖向的长方形。

2.旋转法

这种方法需要两个容器,外层容器限定范围,内层容器用于制作三角图形。将内层容器的背景色设置为所需三角形的颜色,再将其旋转45度,然后将其偏移(如向下偏移则形成上三角),并且设置外层容器溢出的截断。

<span class="arrow"><span></span></span>

span.arrow {
    display: block; 
    width: 15px;  /* 宽高设置为内层容器对角线的长度,或者略大一点 */
    height: 15px; 
    overflow: hidden;
}
span.arrow span {
    position: relative;
    top: 10px; 
    display: block; 
    width: 8px; 
    height: 8px; 
    margin: 0 auto; 
    border: 1px solid #cdd2d9; 
    background-color: #f7f7f7; 
    transform: rotate(45deg);
    -ms-transform: rotate(45deg);  /* IE 9 */
    -webkit-transform: rotate(45deg);  /* Safari and Chrome */
    -moz-transform: rotate(45deg);  /* Firefox */
    -o-transform: rotate(45deg);  /* Opera */
}

旋转法的优点是,可以制作带连线的三角,并且可以增加阴影、渐变等效果。但这是 CSS3 的特性,必须使用支持 CSS3 的浏览器。

Ubuntu:如何制作桌面快捷方式和启动器快捷方式

有时候在 Ubuntu 上安装软件,却没有自动生成桌面快捷方式或者启动器快捷方式。甚至有些软件根本就不用安装,解压即可使用。

如果经常使用这个软件,我们可以自己制作快捷方式。

一般地,通过软件中心安装的软件会有图标,并能加入到启动器上,这是因为它们有一个 desktop 配置文件的缘故。这些配置文件在 /usr/share/applications 这个文件夹下面。

以 Sublime Text 为例,它是一款小巧的代码编辑器,在 Ubuntu 下不需要安装。我们可以照着其它的 desktop 文件写一个 Sublime Text 的快捷方式:

#!/usr/bin/env xdg-open
[Desktop Entry]
Name=Sublime Text 2
Comment=Sublime Text 2
Exec=/home/eric/Downloads/SublimeText2/sublime_text
Icon=/home/eric/Downloads/SublimeText2/Icon/48x48/sublime_text.png
Terminal=false
Type=Application
Categories=Application;Development;
StartupNotify=true

Name: 软件名称
Comment: 注释
Exec: 可执行文件的路径
Icon: 图标路径,Sublime Text 默认有各种尺寸的图标

这样,通过图形界面打开文件浏览器,在 /usr/share/applications 目录下可以找到刚刚创建的快捷方式。可以把它复制到桌面,或者拖到侧边的启动器中。

注意:这个文件必须是可执行的。如果没有执行权限,可以这样添加 chmod a+x sublime-text-2.desktop 。(20150402:没有可执行权限也可以。)