Linux操作命令(四)

本次实验将介绍 Linux 命令中 which、whereis、locate 命令的用法。
  • which
  • whereis
  • locate

1.which

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

【命令格式】:which 可执行文件名称

【常用参数】:

【常用范例】:

1.确认是否安装了gcc

which gcc

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

which cd

从上面的显示信息可以看到在实验楼的系统中 cd 是一个 shell 函数。

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

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

那么就有个问题,为什么实验楼环境中 cd 是一个 shell 函数,而其他 linux 环境中 cd 是内建命令呢?这跟所使用的 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. 是一个命令别名。我们可以定义自己的命令,建立在其它命令之上。

3.whereis

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

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

【命令格式】:whereis [选项] 文件

【常用参数】:

-b:定位可执行文件

-m:定位帮助文件

-s:定位源代码文件

-u:默认搜索路径下除可执行文件、源代码文件、帮助文件以外的其他文件

-B:指定搜索可执行文件的路径

-M;指定搜索帮助文件的路径

-S:指定搜索源代码文件的路径

【常用范例】:

1.搜索gcc可执行文件的路径

whereis -b gcc

2.搜索gcc源代码的路径

whereis -s gcc

4.locate

locate和whereis类似。且它们使用的是相同的数据库。但whereis命令只能搜索可执行文件、联机帮助文件、源代码文件,如果要获得更全面的搜索结果,可以使用locate命令。

locate命令使用了十分复杂的匹配语法,可以使特殊字元(如‘*‘和‘?‘)来指定需要查找的样本。

【命令格式】:locate [选项] [搜索字符串]

【常用参数】:

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

【常用范例】:

1.搜索etc目录下所有以sh开头的文件

locate /etc/sh

注意在实验楼环境中一开始执行这个命令会报错:locate 无法执行 stat() ‘/var/lib/mlocate/mlocate.db’:没有那个文件或目录。

解决办法是执行sudo updatedb命令。

2.搜索etc目录下文件名包含lou的文件

locate /etc/*lou*

原文地址:https://www.cnblogs.com/Roni-i/p/10140968.html

时间: 2024-10-19 21:48:29

Linux操作命令(四)的相关文章

linux第四章实验报告

Linux第四章 用户和文件权限管理 实验环境 公司的linux主机即将提供给技术部作为开发服务器使用,根据部门内项目组的构成情况,首先需要建立相应的组账号.用户账号,并作为目录设置权限,还需要设置一个共用的数据存储目录,便于同事之间的数据交换. 需求描述 1.建立用户目录 创建目录/tech/benet和/tech/accp,分别用于存放各项目组中用户账号的宿主文件夹.例如,kylin用户的宿主目录应位于/tech/benet/kylin. 2.添加组账户 为两个项目组添加组账号benet,a

Linux中四种进程或线程同步互斥控制方法

原文地址:http://blog.itpub.net/10697500/viewspace-612045/ 一.Linux中 四种进程或线程同步互斥的控制方法: 1.临界区:通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问. 2.互斥量:为协调共同对一个共享资源的单独访问而设计的. 3.信号量:为控制一个具有有限数量用户资源而设计. 4.事 件:用来通知线程有一些事件已发生,从而启动后继任务的开始. 二.临界区(Critical Section) 保证在某一时刻只有一个线程

Linux操作命令(一)

su 英文解释:switch user 作用:切换当前登录的用户到其他用户. 使用方法:su [-l] username 实例: [[email protected] ~]# clear [[email protected] ~]# su hby [[email protected] root]$ [[email protected] root]$ su root 密码: [[email protected] ~]# su -l hby [[email protected] ~]$ passwd

Linux 第四天 vim shell

案例一:配置主机名称:Vim /etc/hostname 部署网卡配置:Rhel 5/6 网卡配置文前缀eth0 eth1RHEL 7 ifcfg-ens1 设备类型:TYPE=Ethernet地址分配模式:BOOTPROTO=staticDEFROUTE=yesPEERDNS=yesPEERROUTES=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_PEERDNS=yesIPV6_PEERR

学习linux/unix编程方法的建议,学习Linux的四个步骤(转)

解答:学习Linux的四个步骤假设你是计算机科班出身,计算机系的基本课程如数据结构.操作系统.体系结构.编译原理.计算机网络你全修过我想大概可以分为4个阶段,水平从低到高从安装使用=>linux常用命令=>linux系统编程=>内核开发阅读内核源码其中学习linux常用命令时就要学会自己编译内核,优化系统,调整参数安装和常用命令书太多了,找本稍微详细点的就ok,其间需要学会正则表达式系统编程推荐<高级unix环境编程>,黑话叫APUE还有<unix网络编程>这时候

Linux常见四种查找命令

最近在学Linux,和很多初学者一样,有一大堆的操作命令要去熟悉和掌握,由于Linux秉承"一切皆文件"的思想,因此我们在操作中经常会使用到文件查找的命令喽,下面就简单介绍下在Linux中比较常用的查找命令: 一.which  which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果. 也就是说它返回的是你该命令所处的位置. 举个例子哈,比如说我现在看下使用gcc这个命令当前所在的路径,我用which查找下: 二.whereis    wher

二、Linux操作命令积累【mkdir、groupadd、groupdel、useradd、userdel】

在使用Linux/UNIX下,经常互使用文本界面去设置系统或操作系统,作者本人在工作的过程也在不断接触这方面的命令,所以为此特酝酿.准备.开始了本文的编写.本文主要记录自己平时遇到的一些Linux/UNIX下操作命令,记录与整理一下,一可加深印象,二可记录分享.希望各位看官,对于不合适的或有歧义的地方,给予指明与说明,以便共同学习与提高. [转载使用,请注明出处:http://blog.csdn.net/mahoking] 004 Linux mkdir命令 [make directory] 1

Linux下四款Web服务器压力测试工具(http_load、webbench、ab、siege)介绍

一.http_load程序非常小,解压后也不到100Khttp_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载.但是它不同于大多数压力测试工具,它可以以一个单一的进程运行,一般不会把客户机搞死.还可以测试HTTPS类的网站请求. 下载地址:http://soft.vpser.net/test/http_load/http_load-12mar2006.tar.gz 安装#tar zxvf http_load-12mar2006.tar.gz#cd http_load-12mar

DAY4 Linux操作命令

一.开启Linux操作系统,要求以root用户登录GNOME图形界面,语言支持选择为汉语 二.使用快捷键切换到虚拟终端2,   ctrl+alt+F2 使用普通用户身份登录, 普通用户:su  joyexu,管理员:su - root 查看系统提示符 $普通用户 #系统用户 三.使用命令退出虚拟终端2上登录的用户 Exit     四.使用快捷键切换到虚拟终端5,使用管理员身份登录,查看系统提示符 ctrl+alt+F2 ,ROOT, tty 五.使用命令退出虚拟终端5上登录的用户 Exit 六