• 先必须了解两个最基本的命令:
    tail  -n  10  test.log   查询日志尾部最后10行的日志;
    tail -n +10 test.log    查询10行之后的所有日志;
    head -n 10  test.log   查询日志文件中的头10行日志;
    head -n -10  test.log   查询日志文件除了最后10行的其他所有日志;
  • 场景1: 按行号查看---过滤出关键字附近的日志
    因为通常时候我们用grep拿到的日志很少,我们需要查看附近的日志.
    我是这样做的,首先: cat -n test.log |grep "地形"  得到关键日志的行号
  • <3>得到"地形"关键字所在的行号是102行. 此时如果我想查看这个关键字前10行和后10行的日志:
    cat -n test.log |tail -n +92|head -n 20
    tail -n +92表示查询92行之后的日志
    head -n 20 则表示在前面的查询结果里再查前20条记录
  • 场景2:那么按日期怎么查呢?  通常我们非常需要查找指定时间端的日志
    sed -n '/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p'  test.log
    特别说明:上面的两个日期必须是日志中打印出来的日志,否则无效.
  • 关于日期打印,可以先 grep '2014-12-17 16:17:20' test.log 来确定日志中是否有该时间点,以确保第4步可以拿到日志
    这个根据时间段查询日志是非常有用的命令.
  • 如果我们查找的日志很多,打印在屏幕上不方便查看, 有两个方法:
    (1)使用more和less命令, 如: cat -n test.log |grep "地形" |more     这样就分页打印了,通过点击空格键翻页
    (2)使用 >xxx.txt 将其保存到文件中,到时可以拉下这个文件分析.如:
    cat -n test.log |grep "地形"  >xxx.txt
  • 这几个日志查看方法应该可以满足日常需求了.
 
51CTO.com快译】我们在本文中将介绍一些实用又常用的LinuxUnix命令,这些是Linux系统管理员们平常使用的命令。本文不是什么完整列表,而是简要地列出了需要时派得上用场的命令。不妨开始逐一介绍如何使用这些命令,附有示例。
1.uptime命令
Linux中,uptime命令显示了你的系统运行了多久以及目前登录的用户有多少,另外还显示了间隔1分钟、5分钟和15分钟的负载平均值。
  1. # uptime 
  2. 08:16:26 up 22 min,  1 user,  load average: 0.00, 0.03, 0.22 
检查uptime版本
除了uptime(正常运行时间)和version(版本)外,uptime命令没有其他选项。如果时间不到1天,它只给出hours:mins这种形式的信息。
  1. [tecmint@tecmint ~]$ uptime -V 
  2. procps version 3.2.8 
2.w命令
该命令会显示目前登录的用户及其进程,另外还会显示负载平均值。此外,它还显示了登录名称、tty名称、远程主机、登录时间、闲置时间、JCPUPCPU、命令和进程。
  1. # w 
  2.  
  3. 08:27:44 up 34 min,  1 user,  load average: 0.00, 0.00, 0.08 
  4. USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT 
  5. tecmint  pts/0    192.168.50.1     07:59    0.00s  0.29s  0.09s w 
可用的选项
◆-h:不显示标题。
◆-s:不显示JCPUPCPU
◆-f:不显示字段信息。
◆-V:(大写V)-显示版本。
3.users命令
users命令显示了目前已登录的用户。除了help(帮助)和version(版本)外,该命令没有其他参数。
  1. # users 
  2. Tecmint 
4.who命令
who命令仅仅返回用户名称、日期、时间和主机信息。who命令类似w命令。不像w命令,who并不输出用户执行的操作这一信息。不妨具体看看whow这两个命令之间的区别。
  1. # who 
  2. tecmint  pts/0        2012-09-18 07:59 (192.168.50.1)  
  1. # w 
  2.  
  3. 08:43:58 up 50 min,  1 user,  load average: 0.64, 0.18, 0.06 
  4. USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT 
  5. tecmint  pts/0    192.168.50.1     07:59    0.00s  0.43s  0.10s w 
who命令的选项
◆-b:显示上一次系统重启日期和时间。
◆-r:显示当前的运行级别。
◆-a,–all:显示累积的所有信息。
5.whoami命令
whoami命令输出当前用户的姓名。你还可以使用“who am i”命令显示当前用户。如果你以根用户身份使用sudo命令登录,“whoami”命令返回根用户是当前用户。如果你想知道登录的用户具体是哪个,使用“who am i”命令。
  1. # whoami 
  2. tecmint 
6.ls命令
ls命令显示了人类可读格式的文件列表。
  1. # ls -l 
  2.  
  3. total 114 
  4. dr-xr-xr-x.   2 root root  4096 Sep 18 08:46 bin 
  5. dr-xr-xr-x.   5 root root  1024 Sep  8 15:49 boot 
按照上一次修改时间排序文件。
  1. # ls -ltr 
  2.  
  3. total 40 
  4. -rw-r--r--. 1 root root  6546 Sep 17 18:42 install.log.syslog 
  5. -rw-r--r--. 1 root root 22435 Sep 17 18:45 install.log 
  6. -rw-------. 1 root root  1003 Sep 17 18:45 anaconda-ks.cfg 
7.crontab命令
可使用crontab命令和-l选项,列出当前用户的计划任务。
  1. # crontab -l 
  2. 00 10 * * * /bin/ls >/ls.txt 
可以使用-e选项编辑crontab。在下面例子中,将用VI编辑工具打开计划任务。进行必要的更改,按:wq键退出,这会自动保存设置。
  1. # crontab -e 
8.less命令
less命令允许快速查看文件。你可以向上和向下翻页。按“q”即可退出less窗口。
  1. # less install.log 
  2.  
  3. Installing setup-2.8.14-10.el6.noarch  
  4. warning: setup-2.8.14-10.el6.noarch: Header V3 RSA/SHA256 Signature, key ID c105b9de: NOKEY  
  5. Installing filesystem-2.4.30-2.1.el6.i686  
  6. Installing ca-certificates-2010.63-3.el6.noarch  
  7. Installing xml-common-0.6.3-32.el6.noarch  
  8. Installing tzdata-2010l-1.el6.noarch  
  9. Installing iso-codes-3.16-2.el6.noarch 
9.more命令
more命令允许快速查看文件,并以百分比的形式显示详细信息。你可以向上和向下翻页。按“q”即可退出more窗口。
  1. # more install.log 
  2.  
  3. Installing setup-2.8.14-10.el6.noarch  
  4. warning: setup-2.8.14-10.el6.noarch: Header V3 RSA/SHA256 Signature, key ID c105b9de: NOKEY  
  5. Installing filesystem-2.4.30-2.1.el6.i686  
  6. Installing ca-certificates-2010.63-3.el6.noarch  
  7. Installing xml-common-0.6.3-32.el6.noarch  
  8. Installing tzdata-2010l-1.el6.noarch  
  9. Installing iso-codes-3.16-2.el6.noarch  
  10. --More--(10%) 
10.cp命令
将文件从来源拷贝到目的地,保留同一种模式。
  1. # cp -p fileA fileB 
覆盖文件之前系统会提示你。
  1. # cp -i fileA fileB 
11.mv命令
fileA更名为fileB-i选项会在覆盖前提示。如果文件已经存在,会要求予以确认。
  1. # mv -i fileA fileB 
12.cat命令
cat命令用来同时查看多个文件。
  1. # cat fileA fileB 
要是某个文件在一个屏幕/页面显示不了,你可以使用cat命令来合并moreless命令,查看文件内容。
  1. # cat install.log | less 
  2.  
  3. # cat install.log | more 
13.cd命令(更改目录)
借助cd命令(更改目录),它会进入到fileA目录。
  1. # cd /fileA 
14.pwd命令(输出工作目录)
pwd命令会返回当前的工作目录。
  1. # pwd 
  2.  
  3. /root 
15.sort命令
以升序排序一行行文本文件。如果使用-r选项,就会以降序排序。
  1. #sort fileA.txt 
  2.  
  3. #sort -r fileA.txt 
16.vi命令
对大多数类似UNIX的操作系统而言,vi是最流行的文本编辑器。下面例子使用-R选项,打开只读方式的文件。按“:q”即可退出vi窗口。
  1. # vi -R /etc/shadows 
17.ssh命令(安全外壳)
ssh命令用来登录入到远程主机。比如说,下面这个ssh例子会使用用户作为narad,连接到主机(192.168.50.2)。
  1. # ssh narad@192.168.50.2 
想检查ssh的版本,使用选项-V(大写),即可显示ssh的版本。
  1. # ssh -V 
  2.  
  3. OpenSSH_5.3p1, OpenSSL 1.0.0-fips 29 Mar 2010 
18.ftpsftp命令
ftpsftp命令用来连接到远程ftp主机。ftp是指文件传输协议,而sftp是安全文件传输协议。比如说,下列命令将连接到ftp主机(192.168.50.2)。
  1. # ftp 192.168.50.2 
  2.  
  3. # sftp 192.168.50.2 
正如可以使用mput将多个文件上传到到远程主机,我们同样可以使用mget从远程主机下载多个文件。
  1. # ftp > mput *.txt 
  2.  
  3. # ftp > mget *.txt 
19.service命令
service命令调用位于/etc/init.d/目录处的脚本,并执行脚本。有两种方法可以启动任何服务。比如说,我们使用service命令,启动名为httpd的服务。
  1. # service httpd start 
  2.  
  3. OR 
  4.  
  5. # /etc/init.d/httpd start 
20.free命令
free命令显示了闲置内存、总内存和交换内等方面的信息,单位是字节。
  1. # free 
  2.  
  3.              total       used       free     shared    buffers     cached 
  4. Mem:       1030800     735944     294856          0      51648     547696 
  5. -/+ buffers/cache:     136600     894200 
  6. Swap:      2064376          0    2064376 
使用-t选项的free命令显示了已使用的总内存和可以使用的内存,单位是字节。
  1. # free -t  
  2.              total       used       free     shared    buffers     cached  
  3. Mem:       1030800     736096     294704          0      51720     547704  
  4. -/+ buffers/cache:     136672     894128  
  5. Swap:      2064376          0    2064376  
  6. Total:     3095176     736096    2359080 
21.top命令
top命令显示了系统的处理器活动,还显示了由内核实时管理的任务。它会显示所使用的处理器和内存。如果使用带“u”选项的top命令,这会显示特定的用户进程详细信息,如下所示。按“O”(大写)即可按你希望的方式来排序。按“q”即可退出top屏幕。
  1. # top -u tecmint  
  2.  
  3. top - 11:13:11 up  3:19,  2 users,  load average: 0.00, 0.00, 0.00  
  4. Tasks: 116 total,   1 running, 115 sleeping,   0 stopped,   0 zombie  
  5. Cpu(s):  0.0%us,  0.3%sy,  0.0%ni, 99.7%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st  
  6. Mem:   1030800k total,   736188k used,   294612k free,    51760k buffers  
  7. Swap:  2064376k total,        0k used,  2064376k free,   547704k cached  
  8.  
  9. PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND  
  10. 1889 tecmint   20   0 11468 1648  920 S  0.0  0.2   0:00.59 sshd  
  11. 1890 tecmint   20   0  5124 1668 1416 S  0.0  0.2   0:00.44 bash  
  12. 6698 tecmint   20   0 11600 1668  924 S  0.0  0.2   0:01.19 sshd  
  13. 6699 tecmint   20   0  5124 1596 1352 S  0.0  0.2   0:00.11 bash 
22.tar命令
tar命令用于压缩Linux下的文件和文件夹。比如说,下面这个命令将为/home目录创建一个压缩存档,文件名为archive-name.tar
  1. # tar -cvf archive-name.tar /home 
想解压缩tar压缩存档文件,请使用如下所示的选项。
  1. # tar -xvf archive-name.tar 
23.grep命令
grep可搜索文件中的特定字符串。只显示/etc/passwd文件中的tecmint用户。我们可以使用-i选项,忽略大小写。
  1. # grep tecmint /etc/passwd 
  2.  
  3. tecmint:x:500:500::/home/tecmint:/bin/bash 
24.find命令
find命令用来搜索文件、字符串和目录。在下面这个例子中,find命令搜索“/”分区中的tecmint单词,并返回输出。
  1. # find / -name tecmint 
  2.  
  3. /var/spool/mail/tecmint 
  4. /home/tecmint 
  5. /root/home/tecmint 
     25.lsof命令
lsof意味着“列出所有打开的文件”。下面,lsof命令列出了tecmint用户打开的所有文件。
  1. # lsof -u tecmint 
  2.  
  3. COMMAND  PID    USER   FD   TYPE     DEVICE SIZE/OFF   NODE NAME  
  4. sshd    1889 tecmint  cwd    DIR      253,0     4096      2 /  
  5. sshd    1889 tecmint  txt    REG      253,0   532336 298069 /usr/sbin/sshd  
  6. sshd    1889 tecmint  DEL    REG      253,0          412940 /lib/libcom_err.so.2.1  
  7. sshd    1889 tecmint  DEL    REG      253,0          393156 /lib/ld-2.12.so  
  8. sshd    1889 tecmint  DEL    REG      253,0          298643 /usr/lib/libcrypto.so.1.0.0  
  9. sshd    1889 tecmint  DEL    REG      253,0          393173 /lib/libnsl-2.12.so  
  10. sshd    1889 tecmint  DEL    REG      253,0          412937 /lib/libkrb5support.so.0.1  
  11. sshd    1889 tecmint  DEL    REG      253,0          412961 /lib/libplc4.so 
26.last命令
借助last命令,我们就能观察用户在系统中的活动。该命令还可以以正常用户的身份来执行。它会显示完整的用户信息,比如终端、时间、日期、系统重启或启动以及内核版本。这是用来排查故障的实用命令。
  1. # last 
  2.  
  3. tecmint  pts/1        192.168.50.1     Tue Sep 18 08:50   still logged in  
  4. tecmint  pts/0        192.168.50.1     Tue Sep 18 07:59   still logged in  
  5. reboot   system boot  2.6.32-279.el6.i Tue Sep 18 07:54 - 11:38  (03:43)  
  6. root     pts/1        192.168.50.1     Sun Sep 16 10:40 - down   (03:53)  
  7. root     pts/0        :0.0             Sun Sep 16 10:36 - 13:09  (02:32)  
  8. root     tty1         :0               Sun Sep 16 10:07 - down   (04:26)  
  9. reboot   system boot  2.6.32-279.el6.i Sun Sep 16 09:57 - 14:33  (04:35)  
  10. narad    pts/2        192.168.50.1     Thu Sep 13 08:07 - down   (01:15) 
你可以使用带用户名的last,了解特定用户的活动,如下所示。
  1. # last tecmint 
  2.  
  3. tecmint  pts/1        192.168.50.1     Tue Sep 18 08:50   still logged in  
  4. tecmint  pts/0        192.168.50.1     Tue Sep 18 07:59   still logged in  
  5. tecmint  pts/1        192.168.50.1     Thu Sep 13 08:07 - down   (01:15)  
  6. tecmint  pts/4        192.168.50.1     Wed Sep 12 10:12 - 12:29  (02:17) 
27.ps命令
ps命令显示了系统中运行的进程方面的信息。下面这个例子只显示init进程。
  1. # ps -ef | grep init 
  2.  
  3. root         1     0  0 07:53 ?        00:00:04 /sbin/init  
  4. root      7508  6825  0 11:48 pts/1    00:00:00 grep init 
28.kill命令
使用kill命令来终结进程。先使用ps命令找到进程id,如下所示,然后使用kill -9命令,终止进程。
  1. # ps -ef | grep init  
  2. root         1     0  0 07:53 ?        00:00:04 /sbin/init  
  3. root      7508  6825  0 11:48 pts/1    00:00:00 grep init 
  4.  
  5. # kill- 9 7508 
29.rm命令
rm命令用来清除或删除文件,并不提示予以确认。
  1. # rm filename 
使用-i选项即可在删除之前予以确认。使用“-r”和“-f”这两个选项将强行删除文件,并不予以确认。
  1. # rm -i test.txt 
  2.  
  3. rm: remove regular file `test.txt'? 
30.mkdir命令
mkdir命令用来在Linux下创建目录。
  1. # mkdir directoryname 
 
 
好了,下面不妨逐一介绍这10个Linux基本命令。
1.sudo
这个SuperUserDo是Linux新手要使用的最重要的命令。需要根权限的每一个命令都需要这个sudo命令。你可以在需要根权限的每个命令之前使用sudo。
  1. $ sudo su 
2.ls(list)
就跟别人一样,你常常想要看到目录里面的任何内容。借助list命令,终端就会显示你正在处理的那个目录里面的所有文件和文件夹。假设我在/home文件夹里面,想查看/home里面的目录和文件。
  1. /home$ ls 
/home中的ls返回下列结果:
  1. imad lost+found 
3.cd
更改目录(cd)是始终在终端中使用的主要命令。它是最基本的Linux命令之一。使用这个命令很简单。只要输入你想要从当前目录进入到的那个文件夹的名称。如果想要返回上一级,只要将双圆点(..)作为参数。
假设我在/home目录中,想进入到始终在/home里面的usr目录。下面是我可以使用cd命令的方法:
  1. /home $ cd usr 
  2.  
  3. /home/usr $ 
4.mkdir
仅仅更改目录还不全面。有时候,你想要创建一个新的文件夹或子文件夹。可以使用mkdir命令来做到这一点。只要在终端中将你的文件夹名称放在mkdir命令的后面即可。
  1. ~$ mkdir folderName 
5.cp
拷贝粘贴是我们为了组织整理文件而需要完成的重要任务。使用cp将帮助你从终端拷贝粘贴文件。首先,你确定想要拷贝的那个文件,然后输入目的地位置,即可粘贴文件。
  1. $ cp src des 
注意:如果你将文件拷贝到任何新文件都需要根权限的目录,那么你就需要使用sudo命令。
6.rm
rm这个命令可以移除你的文件,甚至移除你的目录。如果文件需要根权限才能移除,可以使用-f。你还可以使用-r来进行递归移除,从而移除你的文件夹。
  1. $ rm myfile.txt 
7.apt-get
就不同的发行版而言,这个命令各不相同。在基于Debian的Linux发行版中,想安装、移除和升级任何软件包,我们可以使用高级包装工具(APT)软件包管理器。apt-get命令可帮助你安装需要在Linux中运行的软件。这是个功能强大的命令行工具,可以执行安装、升级、甚至移除软件这类任务。
在其他发行版(比如Fedora和Centos)中,有不同的软件包管理器。Fedora过去有yum,但现在它有dnf。
  1. $ sudo apt-get update 
  2.  
  3. $ sudo dnf update 
8.grep
你需要找到一个文件,但是又记不得它的确切位置或路径。grep可以帮助你解决这个问题。你可以使用grep命令,根据给定的关键字帮助找到文件。
  1. $ grep user /etc/passwd 
9.cat
作为用户,你常常需要查看来自脚本的一些文档或代码。同样,其中一个Linux基本命令是cat命令。它会为你显示文件里面的文本。
  1. $ cat CMakeLists.txt 
10.poweroff
最后一个命令是poweroff。有时候,你需要直接从终端来关机。这个命令就能完成这项任务。别忘了在命令的开头添加sudo,因为它需要根权限才能执行poweroff。
 
1,cd 文件夹名称  
      进入文件夹
 
2,ls 
      显示文件夹中的所有文件
 
3,在日志中查找关键字:
      cat -n debug.log |grep "aaa"
      grep -na debug.log "aaa"
 
4,less命令:
      less error.log
      向上翻页 B
      向下翻页 空格
      shift+? 输入要搜索的内容
      q退出
 
5,pwd命令会输出当前的工作目录