标签 命令 下的文章

时常,某个程序或软件并没有语法错误,并且你检查它的相关内容也确实没有发现问题。这是因为你用普通文本编辑器软件来查看的时候,有许多字符没有显示出来,但在终端使用cat命令可以很容易地检测出是否存在这些字符。

首先,我们创建一个简单的文本文件,写入一些特殊字符。打开终端,运行命令:

printf 'testing\012\011\011testing\014\010\012more testing\012\011\000\013\000even more testing\012\011\011\011\012' > /tmp/testing.txt

现在用不同的编辑器软件打开,显示的结果会不同。用简单的cat打开将显示:

$ cat /tmp/testing.txt 
testing
        testing

more testing

even more testing

如果用nano或者vim打开,将会看到:

testing
            testing^L^H

more testing
    ^@^K^@even more testing

现在我们给cat加上一些选项参数,以便能显示出特殊字符来。

用cat -T命令来显示TAB键的字符^I

cat -T /tmp/testing.txt
testing
^I^Itesting

more testing
^I
  even more testing
^I^I^I

用cat -E命令来显示行尾的结束字符$

$ cat -E /tmp/testing.txt
testing$
        testing
  $
more testing$

even more testing$
            $

用简单的cat -A命令就可以显示所有不可见的字符:

$ cat -A /tmp/testing.txt
testing$
^I^Itesting^L^H$
more testing$
^I^@^K^@even more testing$
^I^I^I$

via: http://linuxaria.com/pills/linux-terminal-seeing-the-unseen-characters-with-cat?lang=en#more-7645

本文由 LCTT 原创翻译,Linux中国 荣誉推出

译者:runningwater 校对:Caroline

无论你使用哪种操作系统,你一定会遇到某个行为失常的应用,它把自己锁死并拒绝关闭。在Linux(还有Mac),你可以用一个"kill"命令强制终结它。在这个教程中,我们将展示给你多种方式使用"kill"命令终结应用。

Kill命令和信号

当你执行一个"kill"命令,你实际上发送了一个信号给系统,让它去终结不正常的应用。总共有60个你可以使用的信号,但是基本上你只需要知道SIGTERM(15)和SIGKILL(9)。

你可以用这个命令看到所有信号的列表:

kill -l

  • SIGTERM - 此信号请求一个进程停止运行。此信号是可以被忽略的。进程可以用一段时间来正常关闭,一个程序的正常关闭一般需要一段时间来保存进度并释放资源。换句话说,它不是强制停止。
  • SIGKILL - 此信号强制进程立刻停止运行。程序不能忽略此信号,而未保存的进度将会丢失。

使用"kill"的语法是:

kill [信号或选项] PID(s)

默认信号(当没有指定的时候)是SIGTERM。当它不起作用时,你可以使用下面的命令来强制kill掉一个进程:

kill SIGKILL PID

或者

kill -9 PID

这里"-9"代表着SIGKILL信号。

如果你不知道应用的PID,仅需要运行这个命令:

ps ux

它会显示所有正在运行的应用还有应用的PID。

例如,要kill掉Chrome,我会运行命令:

kill -9 3629

也可以在同一时间kill多个进程。

kill -9 PID1 PID2 PID3

PKill

"pkill"命令允许使用扩展的正则表达式和其它匹配方式。你现在可以使用应用的进程名kill掉它们,而不是使用PID。例如,要kill掉Firefox浏览器,只需要运行命令:

pkill firefox

使用正则表达式匹配的话,你可以输入进程名的部分字符,比如:

pkill fire

为了避免kill掉错误的进程,你应该用一下"pgrep -l [进程名]"列表来匹配进程名称。

Killall

killall同样使用进程名替代PID,并且它会kill掉所有的同名进程。例如,如果你正在运行多个Firefox浏览器的实例,可以用命令把它们全部kill掉:

killall firefox

在Gnome中,你可以使用这个命令重启Nautilus:

killall nautilus

xkill

xkill 是图形方式kill一个应用。当你在终端键入"xkill",你的光标将立刻变成一个"十字"。你只需要做的是在不正常的应用上点击一下,它就会立刻kill掉这个应用。如果你经常用的话,你也可以添加一个键盘快捷键来激活xkill

结论

当应用不正常而导致系统挂起的时候,人们往往重启计算机并且再一次开启所有的任务。而有了这些"kill"命令,你将能够更好的处理不正常的应用,从而避免导致系统崩溃。当你不想因一个不正常的进程而导致服务器宕机时,它尤其的有用。


via: http://www.maketecheasier.com/kill-command-in-linux/

本文由 LCTT 原创翻译,Linux中国 荣誉推出

译者:flsf 校对:wxy

  Linux 系统管理员在接手一台新的服务器的时候,如果没有好的交接文档,我们可以得到的主机信息就要靠我们自己了。很多信息是可以直接通过命令从主机上获得的,下面就和大家分享 5 个获取 Linux 主机信息的命令。(注:我使用的是 Ubuntu 13.04)

1. 查看或改变 Linux 主机名的命令

$ hostname
mylinuxbook-Inspiron-1525

  从命令结果上您可以看到我的 Ubuntu 主机名是 mylinuxbook-Inspiron-1525。您可能会注意到,主机名通常也出现在命令提示符下,所以很多时候我们将主机名改短一些可能会更方便使用。

  通过如下命令来改变它:

$ sudo hostname mylinuxbook

  注意,改变主机名需要 root 权限,所以我在上面使用了 sudo 命令来提升权限。如果您执行了上面的命令,那么您可以立即打开一个新的终端,在终端中您就能查看到您新的主机名,同时您会看到新的名称的命令提示符。

  不过通过这个命令修改的主机名是一个临时功能,一旦您重启您的服务器,这个名称将不会存在。如果您需要永久的修改主机名,那么您需要修改 /etc/hostname 文件。

2. host 命令

  这个命令可以让您来查看主机的 IP 信息,

$ host google.com
google.com has address 74.125.236.72
google.com has address 74.125.236.78
google.com has address 74.125.236.73
google.com has address 74.125.236.71
google.com has address 74.125.236.65
google.com has address 74.125.236.69
google.com has address 74.125.236.66
google.com has address 74.125.236.64
google.com has address 74.125.236.67
google.com has address 74.125.236.68
google.com has address 74.125.236.70
google.com has IPv6 address 2404:6800:4007:801::1004
google.com mail is handled by 10 aspmx.l.google.com.
google.com mail is handled by 20 alt1.aspmx.l.google.com.
google.com mail is handled by 30 alt2.aspmx.l.google.com.
google.com mail is handled by 40 alt3.aspmx.l.google.com.
google.com mail is handled by 50 alt4.aspmx.l.google.com.

  从命令的运行结果我们可以看到主机的 IP (IPV4 和 IPV6)以及邮件服务器相关的信息。

  如果您还想查看 DNS 记录,可以使用 -a 参数

$ host -a google.com
Trying "google.com"
;; ->>HEADER<;; flags: qr rd ra; QUERY: 1, ANSWER: 21, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;google.com. IN ANY

;; ANSWER SECTION:
google.com. 211 IN AAAA 2404:6800:4007:800::1009
google.com. 299 IN MX 10 aspmx.l.google.com.
google.com. 299 IN MX 50 alt4.aspmx.l.google.com.
google.com. 299 IN MX 20 alt1.aspmx.l.google.com.
google.com. 299 IN MX 30 alt2.aspmx.l.google.com.
google.com. 299 IN MX 40 alt3.aspmx.l.google.com.
google.com. 267 IN A 74.125.236.168
google.com. 267 IN A 74.125.236.165
google.com. 267 IN A 74.125.236.166
google.com. 267 IN A 74.125.236.167
google.com. 267 IN A 74.125.236.164
google.com. 267 IN A 74.125.236.174
google.com. 267 IN A 74.125.236.163
google.com. 267 IN A 74.125.236.169
google.com. 267 IN A 74.125.236.162
google.com. 267 IN A 74.125.236.161
google.com. 267 IN A 74.125.236.160
google.com. 136467 IN NS ns3.google.com.
google.com. 136467 IN NS ns1.google.com.
google.com. 136467 IN NS ns4.google.com.
google.com. 136467 IN NS ns2.google.com.

Received 412 bytes from 127.0.1.1#53 in 30 ms

  如果您需要查看域名服务器或者 SOA 信息,可以使用 -C 参数

$ host -C google.com
Nameserver 216.239.38.10:
google.com has SOA record ns1.google.com. dns-admin.google.com. 2013061800 7200 1800 1209600 300
Nameserver 216.239.34.10:
google.com has SOA record ns1.google.com. dns-admin.google.com. 2013061800 7200 1800 1209600 300
Nameserver 216.239.36.10:
google.com has SOA record ns1.google.com. dns-admin.google.com. 2013061800 7200 1800 1209600 300
Nameserver 216.239.32.10:
google.com has SOA record ns1.google.com. dns-admin.google.com. 2013061800 7200 1800 1209600 300

  或者您可以使用 -d 或者 -v 参数来输出详细信息

$ host -v google.com
Trying "google.com"
;; ->>HEADER<;; flags: qr rd ra; QUERY: 1, ANSWER: 11, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;google.com. IN A

;; ANSWER SECTION:
google.com. 77 IN A 74.125.236.40
google.com. 77 IN A 74.125.236.38
google.com. 77 IN A 74.125.236.34
google.com. 77 IN A 74.125.236.37
google.com. 77 IN A 74.125.236.36
google.com. 77 IN A 74.125.236.41
google.com. 77 IN A 74.125.236.35
google.com. 77 IN A 74.125.236.33
google.com. 77 IN A 74.125.236.46
google.com. 77 IN A 74.125.236.32
google.com. 77 IN A 74.125.236.39

Received 204 bytes from 127.0.1.1#53 in 33 ms
Trying "google.com"
;; ->>HEADER<;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;google.com. IN AAAA

;; ANSWER SECTION:
google.com. 28 IN AAAA 2404:6800:4007:800::1002

Received 56 bytes from 127.0.1.1#53 in 28 ms
Trying "google.com"
;; ->>HEADER<;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;google.com. IN MX

;; ANSWER SECTION:
google.com. 13 IN MX 40 alt3.aspmx.l.google.com.
google.com. 13 IN MX 50 alt4.aspmx.l.google.com.
google.com. 13 IN MX 10 aspmx.l.google.com.
google.com. 13 IN MX 20 alt1.aspmx.l.google.com.
google.com. 13 IN MX 30 alt2.aspmx.l.google.com.

Received 136 bytes from 127.0.1.1#53 in 29 ms

  这个命令可以让您获得大量的主机信息。

3. arch 命令

  这个命令可以让您得到系统的处理器系统构架信息。

$ arch
x86\_64

  从命令执行结果来看,我的主机是 64 位的 x86 系列处理器。

4. uname 命令

  上面的 arch 只能得到系统的简单信息,如果想得到更多的信息,我们就需要使用 uname 命令了,uname 命令可以获取到操作系统名称、内核名称、内核版本、主机名、网络节点等信息。

  使用 -o 参数来查看操作系统名称

$ uname -o
GNU/Linux

  使用 -s 参数来查看内核名称

$ uname -s
Linux

  使用 -m 参数来查看系统构架信息,这个参数的得到的结果和上面的 arch 是一样的

$ uname -m
x86\_64

  还有如下命令您可以试一试:

$ uname -n
linuxuser-laptop
$ uname -r
2.6.32-21-generic

$ uname -v

33-Ubuntu SMP Fri Apr 18 08:09:38 UTC 2011

5. dig 命令

  dig 命令是 DNS 查看工具,使用此命令可以查看域名服务器的主机地址

$ dig google.com

; <<>> DiG 9.9.2-P1 <<>> google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<;; flags: qr rd ra; QUERY: 1, ANSWER: 11, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;google.com. IN A

;; ANSWER SECTION:
google.com. 227 IN A 74.125.236.33
google.com. 227 IN A 74.125.236.38
google.com. 227 IN A 74.125.236.46
google.com. 227 IN A 74.125.236.40
google.com. 227 IN A 74.125.236.32
google.com. 227 IN A 74.125.236.37
google.com. 227 IN A 74.125.236.34
google.com. 227 IN A 74.125.236.35
google.com. 227 IN A 74.125.236.41
google.com. 227 IN A 74.125.236.39
google.com. 227 IN A 74.125.236.36

;; Query time: 30 msec
;; SERVER: 127.0.1.1#53(127.0.1.1)
;; WHEN: Sat Jun 22 15:38:58 2013
;; MSG SIZE rcvd: 215

已同步至 linux的微博