• linux命令(二)more、less、head、tail、which、whereis、locate


    一、more:more [选项] 文件

    more 命令,功能类似 cat ,cat 命令是将整个文件的内容从上到下显示在屏幕上。 more 命令会一页一页的显示,方便使用者逐页阅读,而最基本的指令就是按空格键(space)往下一页显示,按 B 键就会往回(back)一页显示,而且还有搜寻字串的功能。more 命令从前向后读取文件,因此在启动时就加载整个文件。

    参数描述
    +n 从笫 n 行开始显示
    -n 定义屏幕大小为 n 行
    +/pattern 在每个档案显示前搜寻该字串(pattern),然后从该字串前两行之后开始显示
    -c 从顶部清屏,然后显示
    -d 提示“Press space to continue,’q’ to quiet”,禁用响铃功能
    -p 通过清除窗口而不是滚屏来对文件进行换页,与-c 选项相似
    -s 把连续的多个空行显示为一行
    -u 把文件内容中的下划线去掉

    常用操作

    符号描述
    = 输出当前行的行号
    q 退出 more
    空格键 向下滚动一屏
    b 返回上一屏

    例子:

    more -3 more.txt  查看more.txt文件,每3行为一页

    more +3 more.txt  查看more.txt文件,从第三行开始展示

    more +/test shiyanlou.log:从shiyanlou.log文件中查找第一个出现“test”字符串的行,并从该处前两行开始显示输出

    ll /lib | more -3  :查看lib目录下的文件信息,每页显示 3 个文件信息,按 Ctrl+F 或者 空格键 将会显示下 3条文件信息。PS:ll 是ls -l 的别名

    二、less命令:less [选项] 文件

    less 命令也是对文件或其它输出进行分页显示的工具,应该说是 linux 正统查看文件内容的工具,功能极其强大。

    常用参数:

    参数描述
    -e 当文件显示结束后,自动离开
    -f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件
    -i 忽略搜索时的大小写
    -m 显示类似 more 命令的百分比
    -N 显示每行的行号
    -s 显示连续空行为一行

    常用操作:

    符号描述
    /字符串 向下搜索“字符串”的功能
    ?字符串 向上搜索“字符串”的功能
    n 重复前一个搜索(与 / 或 ? 有关)
    N 反向重复前一个搜索(与 / 或 ? 有关)
    b 向前翻一页
    d 向后翻半页
    q 退出 less 命令
    空格键 向后翻一页
    向上键 向上翻动一行
    向下键 向下翻动一行

    例子:

    1.less -Nse more.txt 

    2.less shiyanlou.log /shiyanlou :显示shiyanlou.log文件中的内容,搜索字符串”shiyanlou”

    3.ps -f | less -e : ps 查看进程信息并通过 less 分页显示

    less 与 cat 和 more 的区别

    cat 命令功能:用于显示整个文件的内容,因为单独使用没有翻页功能,所以经常和 more 命令搭配使用 例如:cat a.log | more -5,cat 命令还有一个可以将数个文件合并成一个文件的功能。例如:cat a.log b.log | more -10

    more 命令功能:让画面在显示满一页时暂停,此时可按空格健继续显示下一个画面,或按 q 键停止显示。

    less 命令功能:less 命令的用法与 more 命令类似,也可以用来浏览超过一页的文件。所不同的是 less 命令除了可以按空格键向下显示文件外,还可以利用上下键来滚动文件。当要结束浏览时,只要在 less 命令的提示符“:”下按 q 键即可。

    其实这三个命令除了 cat 命令有合并文件的功能外,其余功能都很相近,只是在浏览习惯和显示方式上有所不同。

    三、head命令:head [选项][文件]

    head 命令就像它的名字一样浅显易懂,主要是用来显示档案的开头至标准输出中,默认 head 命令打印其相应文件的开头 10 行。

    常用参数

    参数描述
    -q 隐藏文件名
    -v 显示文件名
    -c<字节> 显示字节数
    -n<行数> 显示的行数

    例子:

    1.head -n 5 a.log :查看a.log前5行

    2.head -n 5 a.log b.log :显示a.log和b.log文件中的前 5 行内容

    结果:

     四、tail 命令:tail [选项][文件]

    tail 命令主要用于显示指定文件末尾内容。常用查看日志文件。

    常用参数

    参数描述
    -f 循环读取
    -q 不显示处理信息
    -v 显示详细的处理信息
    -c<字节> 显示的字节数
    -n<行数> 显示行数

    例子:

    tail -n 5 shiyanlou.log:显示shiyanlou.log文件中的最后 5 行内容

    tail -n 5 -f shiyanlou.log :显示shiyanlou.log文件中的最后 5 行内容,当shiyanlou.log文件有新内容增加时自动更新显示。可用于实时查看日志

    常用的用法:

    ping www.shiyanlou.com >> shiyanlou.log 这条命令作用是 ping 远程主机,并将信息追加到shyanlou.log文件中。& 的作用是将这条命令放在后台执行,这样shiyanlou.log文件就会一直有内容增加。说明一下,linux 下执行 ping 命令会一直执行,必须手动停止才行。而 windows 下执行 ping 命令时,默认发送四个请求后会自动停止。

    Alt text

    使用 tail 命令的 -f 选项可以即时输出文件变化后追加的内容tail -f filename 会把 filename 里最尾部的内容显示在屏幕上,并且不断刷新,使你看到最新的文件内容。 另外顺便说一下怎么查看后台正在运行的任务及怎么停止任务。 jobs 命令可以查看正在后台运行的任务。kill 命令可以杀死一个任务,但要使用任务的 pid。任务的 pid 可以通过 ps 命令查看获得,然后使用kill -9 任务pid就可以将这个后台进程杀死。

    例如:

    实际工作中的应用:

    nohup php /data/wwwroot/g_doraemon/cli/user/imOfflineMsg.php >> /tmp/imOfflineMsg &

    #启动推送服务后日志打到 /tmp/imOfflineMsg下, &表示退到后台

    tail -f /tmp/imOfflineMsg :然后查看实时的日志

    ps:查看进程号

    kill -9 -314 :杀掉pid是314的进程

    jobs:查看后台正在运行的任务

    五、which命令:which 可执行文件名称

    which 命令的作用是,在 PATH 变量指定的路径中搜索可执行文件的所在位置。它一般用来确认系统中是否安装了指定的软件。

    例子:·

    1.确认是否安装了 tree: which tree 

    结果:

     2.查看cd 命令的位置路径:which cd

    结果:表示当前使用的系统中的cd是一个shell内建命令

    但是在某些环境中,我们可以看到 cd 并不是一个内建函数而是一个 shell 函数:

    再来在我本地 linux 系统上执行 which cd 命令,显示的结果如下:

    显示在 PATH 变量指定的路径下没有 cd 命令。为什么显示没有呢?这是因为 cd 是 shell 内建命令,而 which 默认是找 PATH 内所指定的目录,内建命令不在其指定的目录中,所以当然找不到。

    那么就有个问题,为什么有的环境中 cd 是一个 shell 函数,而有的又是内建命令呢?这跟所使用的 bash 有关。

    echo $SHELL  命令可以查看当前使用的 shell。

     补充知识:

    到底什么是命令?

    命令可以是下面四种形式之一:

    1. 是一个可执行程序,就像我们所看到的位于目录/usr/bin中的文件一样。属于这一类的程序,可以编译成二进制文件,诸如用 C 和 C++ 语言写成的程序,也可以是由脚本语言写成的程序,比如说 shell,perl,python,ruby,等等。
    2. 是一个内建于 shell 自身的命令。bash 支持若干命令,内部叫做 shell 内部命令 (builtins)。例如,上面我本地环境中的 cd 命令,就是一个 shell 内部命令。
    3. 是一个 shell 函数。这些是小规模的 shell 脚本,它们混合到环境变量中。 比如上面讲到的 cd 命令,在某些环境中就是一个 shell 函数。
    4. 是一个命令别名。我们可以定义自己的命令,建立在其它命令之上。

    六、whereis命令:whereis [选项] 文件

    whereis 命令主要用于定位可执行文件、源代码文件和帮助文件在文件系统中的位置。whereis 命令还具有搜索源代码、指定备用搜索路径和搜索不寻常项的功能。

    whereis 命令查找速度非常快,这是因为它根本不是在磁盘中漫无目的乱找,而是在一个数据库中(/var/lib/mlocate/mlocate.db)查询。这个数据库是 Linux 系统自动创建的,包含有本地所有文件的信息,并且每天通过自动执行 updatedb 命令更新一次。也正是因为这个数据库要每天才更新一次,就会使得 whereis 命令的搜索结果有时候会不准确,比如刚添加的文件可能搜不到。

    常用参数

    参数描述
    -b 定位可执行文件
    -m 定位帮助文件
    -s 定位源代码文件
    -u 搜索默认路径下除可执行文件、源代码文件和帮助文件以外的其它文件
    -B 指定搜索可执行文件的路径
    -M 指定搜索帮助文件的路径
    -S 指定搜索源代码文件的路径

    例子:

    1.whereis -b tree :搜索 gcc 可执行文件的路径

    2.whereis -m gcc:搜索 gcc 帮助文件的路径

    3.whereis -s gcc:搜索 gcc 源代码的路径

    七、locate 命令:locate [选项][搜索字符串]

    常用参数:

    参数描述
    -q 安静模式,不会显示任何错误讯息
    -n 至多显示 n 个输出
    -r 使用正则表达式做寻找的条件
    -V 显示版本信息

    例子:

    首先需要安装并更新数据库:

    sudo apt-get install locate

    sudo updatedb

    1.搜索 etc 目录下所有以 sh 开头的文件,可以使用如下命令:locate /etc/shlo

    2.搜索 etc 目录下文件名包含 lou 的文件,可以使用如下命令:locate /etc/*lou*

  • 相关阅读:
    无忌缩略语及常用语词典
    大家都说不建议直接使用 @Async 注解?为什么??
    Comparable 和 Comparator 接口的区别?还傻傻分不清?
    Apache Log4j 漏洞影响有多大?Google 调查报告出炉!
    Logback 也爆雷了,惊爆了。。。
    Log4j 2.3.1 发布!又是什么鬼??
    Spring Boot 实现读写分离,还有谁不会??
    Spring Cloud 2020.0.5 发布,新特性一览,别掉队了!
    终于!Spring Boot 最新版发布,一招解决 Log4j2 核弹级漏洞!
    Log4j 2 杀不死 Java!
  • 原文地址:https://www.cnblogs.com/hancece/p/12853326.html
Copyright © 2020-2023  润新知