LinuxNote 第二章 新手必须掌握的Linux命令

第二章 新手必须掌握的Linux命令

2.1 Shell

  • 命令行工具(终端),Shell充当用户与内核(硬件)交互的翻译官,用户将命令告诉终端,它就会调用相应的程序服务去完成某些工作;目前主流为Bash,Bash不仅好用,而且应用广泛;
    在这里插入图片描述

2.2 命令格式及帮助命令 man

2.2.1 命令格式

  • 通常命令格式如下,且分为长和短格式(有例外);
  • 参数之间的合并原则是:只有短格式之间才能合并,并且只保留一个“-”
命令名称 [命令参数] [命令对象]
# 命令本身可能不能完全符合工作需求,所以需要参数辅助

man --help	# 长格式
man -h		# 短格式

2.2.2 帮助命令 man

man命令可以帮助我们了解各个命令的作用、参数等等

man ls	# man 命令

在使用man命令后,会出现篇幅较长的帮助内容,对此,有相应的快捷键帮助我们浏览:

作用按键
上一页Page Up
下一页Page Down / 空格
首页Home
尾页End
从上至下搜索某个关键词,如“/linux”/
从下至下搜索某个关键词,如“?linux”?
定位到下一个搜索到的关键词n
定位到上一搜索到的关键词N
退出帮助文档q

man命令–帮助内容的构成及意义

结构名称意义
NAME命令的名称
SYNOPSIS参数大致使用方法
DESCRIPTION介绍说明
EXAMPLES演示(附带简单说明)
OVERVIEW概述
DEFAULTS默认的功能
OPTIONS具体的可用选项(带介绍)
ENVIRONMENT环境变量
FILES用到的文件
SEE ALSO相关的资料
HISTORY维护历史与联系方式

2.3 常用的系统工作命令

命令末尾加上&,这样命令就会在后台执行,不会不断在屏幕上输出信息

2.3.1 echo

  • 功能:在终端输出(打印)字符串或变量的值;
  • 格式:echo 内容
  • 示例:
[root@localhost ~]$ echo "this is a print demo"
this is a print demo

2.3.2 date

  • 功能:显示及设置系统的时间或日期;
  • 格式:date [参数] “+格式参数”
作用格式参数
跳格(tab)%t
年(yyyy)/ (yy)%Y / %y
%m
%d
时(0~24) /(0~12)%H / %I
%M
%S
今年第几天%j
作用参数
设置系统时间-s
  • 示例:
[root@localhost ~]$ date
Wed Jan 13 23:26:26 CST 2021
[root@localhost ~]$ date "+%Y/%m/%d %H:%M:%S"
2021/01/13 23:26:43
[root@localhost ~]$ date -s "20201201 8:30:00"

2.3.3 reboot

  • 功能:重启系统;涉及硬件资源的管理权限,因此默认只能使用root 管理员来重启;

2.3.4 poweroff

  • 功能:关闭系统;同样默认只能root管理员来关闭;

2.3.5 wget

  • 功能:下载网络文件;
  • 格式:wget [参数] 下载地址
作用参数
后台下载模式-b
下载到指定目录-P
最大尝试次数-t
断点续传-c
下载页面内所有的资源,包括图片、视频等-p
递归下载-r
  • 示例:
[root@localhost ~]$ wget http://www.baidu.com

2.3.6 ps

  • 功能:查看系统进程状态
  • 格式:ps [参数]
作用参数
显示所有进程(包括其他用户的进程)-a
显示用户以及其他详细信息-u
显示没有控制终端的进程-x

常见进程状态有:

R(运行):进程正在运行或在运行队列中等待。
S(中断):进程处于休眠中,当某个条件形成后或者接收到信号时,则脱离该状态。
D(不可中断):进程不响应系统异步信号,即便用kill命令也不能将其中断。
Z(僵死):进程已经终止,但进程描述符依然存在, 直到父进程调用wait4()系统函数后将进程释放。
T(停止):进程收到停止信号后停止运行。
除了上面的五种常见进程状态,还有可能是高优先级(<),低优先级(N),被锁进内存(L),包含子进程(s)以及多线程(l)这五种补充形式。

  • 示例:
[root@localhost ~]$ ps aux	#ps的参数可以不带-
#进程的所有者 进程ID号  运算器占用率  内存占用率  虚拟内存使用量(单位是KB)  占用的固定内存量(单位是KB)  所在终端  进程状态  被启动的时间  实际使用CPU的时间  命令名称与参数
USER PID %CPU %MEM    VSZ   RSS TTY   STAT START   TIME COMMAND
root 1   0.5  0.6   179016 13916 ?     Ss  06:53   0:02 /usr/lib/systemd/systemd --switched-root --system --deserialize 17

2.3.7 top

  • 功能:动态地监视进程活动及系统负载等信息;
  • 格式:top ,退出使用qctrl+c
  • 示例:
top - 07:10:11 up 16 min,  1 user,  load average: 0.00, 0.02, 0.06
#	  系统时间  运行时间    用户数    系统负载:从右往左看,1、5、15分钟负载平均值(0:无负载,1:满队列,5:睡不着,9:高负载)
Tasks: 316 total,   1 running, 315 sleeping,   0 stopped,   0 zombie
#	  进程总数     运行中的进程  睡眠中的进程    停止的进程    僵死的进程
%Cpu(s):  0.3 us,  1.2 sy,           0.0 ni,           98.3 id,  0.0 wa,  0.2 hi,  0.0 si,  0.0 st
#cpu :    使用率  系统内核占用  改变过优先级的进程占比   空闲资源占比
MiB Mem :   1966.1 total,    197.2 free,   1232.7 used,    536.2 buff/cache
#内存	   物理内存总量      内存使用量(MB)  内存空闲量     作为内核缓存的内存量 
MiB Swap:   2048.0 total,   2048.0 free,      0.0 used.    557.2 avail Mem 
#交换分区   虚拟内存总量
					
	 PID   USER      PR  NI    VIRT    RES    SHR   S  %CPU  %MEM     TIME+   COMMAND       
#   进程ID 发起人     优先级    				      状态    占用       启用时间  进程名称
#				   (越小越高)                                               
	2097   root      20   0 3360668 161364  89780   S   1.3   8.0   0:12.49   gnome-shell                                                           
	  1    root      20   0  179016  13916   9144   S   0.3   0.7   0:02.58   systemd                                                               
	524    root      20   0       0      0      0   I   0.3   0.0   0:00.05   kworker/u256:

2.3.8 pidof

  • 功能:查询某个指定服务进程的PID号码值;
  • 格式:pidof [参数] 服务名称
  • 示例:
[root@localhost ~]$ pidof sshd
1050

2.3.9 kill

  • 功能:终止某个指定PID值的服务进程;
  • 格式:kill [参数] 进程的PID
  • 示例:
[root@localhost ~]$ kill 1050

2.3.10 killall

  • 功能:终止某个指定名称的服务所对应的全部进程;复杂的软件服务程序会有多个进程协同(PID),逐个结束进程比较麻烦,此命令可以批量结束全部进程。
  • 格式:killall [参数] 服务名称
  • 示例:
[root@localhost ~]$ killall httpd

2.4 系统状态检测命令

2.4.1 ifconfig

  • 功能:获取网卡配置与网络状态等信息,英文全称为:“interface config”;
  • 格式:ifconfig [参数] 网络设备
  • 示例:
[root@localhost ~]$ ifconfig
#	rhel 5,6网卡名称一般为: eth0 / eth1 / eth2
#	rhel 7 网卡名称一般为:eno16777728 /...

#网卡名称
ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
		inet 192.168.10.10  netmask 255.255.255.0  broadcast 192.168.10.255
		#ip地址						子网掩码
        ether 00:0c:29:d2:4e:cc  txqueuelen 1000  (Ethernet)
        #mac地址
        RX packets 57  bytes 4512 (4.4 KiB)	# 收到数据大小
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)	# 发送数据大小
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 124  bytes 10452 (10.2 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 124  bytes 10452 (10.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:5a:7a:59  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

2.4.2 uname

  • 功能:查看系统内核版本与系统架构等信息;
  • 格式:uname [-a]
  • 示例:
[root@localhost ~]$ uname
Linux
[root@localhost ~]$ uname -a  # 一般搭配 -a 查看完整的系统信息
Linux localhost.localdomain 4.18.0-80.el8.x86_64 #1 SMP Wed Mar 13 12:02:46 UTC 2019 x86_64 x86_64 x86_64   GNU/Linux
#内核名	  主机名称			  内核版本号          系统发布时间                        硬件   内核    系统 架构  GNU里的Linux项目

2.4.3 uptime

  • 功能:查看系统的负载信息;
  • 示例:
[root@localhost ~]$ uptime
 08:25:16 up  1:31,  1 user,  load average: 0.00, 0.00, 0.00	# 和top第一行相同

2.4.4 free

  • 功能:显示当前系统中内存的使用量信息;
  • 格式:free [-h]
  • 示例:
[root@localhost ~]$ free -h		# -h human-readable 易读,格式化KB为MB/GB
              total        used        free      shared      buff/cache   available
         #    内存总量     已用        可用       进程共享的   磁盘缓存的    缓存的
Mem:          1.9Gi       1.2Gi       194Mi        16Mi       536Mi       554Mi
Swap:         2.0Gi          0B       2.0Gi   # 交换分区,硬盘模拟一部分内存

2.4.5 who

  • 功能:查看当前登入主机的用户终端信息;
  • 示例:
[root@localhost ~]$ w
 08:30:47 up  1:37,  1 user,  load average: 0.00, 0.00, 0.00
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty2     tty2             06:54    1:37m 41.83s  0.23s /usr/libexec/tracker-miner-fs
[root@localhost ~]$ who
root        tty2         2021-01-14 06:54 (tty2)
#登录用户名  终端设备     登录到系统的时间

2.4.6 last

  • 功能:查看主机的被访记录,很容易被篡改;
  • 示例:
[root@localhost ~]$ last
root     tty2         tty2             Thu Jan 14 06:54   still logged in
reboot   system boot  4.18.0-80.el8.x8 Thu Jan 14 06:53   still running
root     tty2         tty2             Wed Jan 13 22:16 - crash  (08:37)
...

2.4.7 history

  • 功能:显示执行过的命令历史,默认1000条,可用在/etc/profile文件中的HISTSIZE变量值;
  • 格式:history [-c]
  • 示例:
[root@localhost ~]$ history
    1  ls
    2  vim anaconda-ks.cfg 
    3  cd /etc/sysconfig/network-scripts/
    4  ls
    5  vim ifcfg-ens160 
    6  mkdir -p test
    7  cd test
    8  ls
    9  vim shtest.sh
   10  ls
   11  bash shtest.sh 
   12  echo [ -d shtest.sh ]
[root@localhost ~]$ history -c	# 清空历史
[root@localhost ~]$ history
    1  history

2.4.8 sosreport

  • 功能:用于收集系统配置及架构信息并输出诊断文档,不断回车执行即可;

2.4.9 ping

  • 功能:测试主机之间的网络连通性;
  • 格式:ping [参数] 主机地址
参数作用
-c总共发送次数
-l(小写L)指定网卡名称(Lan)
-i每次间隔时间(秒)
-W最长等待时间(秒)
  • 示例:
[root@localhost ~]$ ping -c 4 192.168.10.10

2.5 工作目录切换命令

2.5.1 pwd

  • 功能:显示用户当前所处的工作目录;
  • 示例:
[root@localhost ~]$ pwd
/root

2.5.2 cd

  • 功能:切换当前的工作路径;
  • 格式:cd [参数]目录
  • 示例:
[root@localhost ~]$ cd -	# 返回上次目录
[root@localhost ~]$ cd .. 	# 返回上级目录
[root@localhost ~]$ cd ~	# 切至家目录
[root@localhost ~]$ cd ~username	# 切至其他用户家目录

2.5.3 ls

  • 功能:显示目录中的文件信息;
  • 格式:ls [参数]文件名称

-a 全部文件
-l 显示文件属性
以 . 开头的文件是隐藏文件,白字:文件,蓝字:文件夹/目录文件;红字:压缩包。

  • 示例:
[root@localhost ~]$ alias ll	# ll是别名
alias ll='ls -l --color=auto'
[root@localhost ~]$ ll			# 从上面可以看出,ll其实和 ls -l是一样的
total 6184
-rw-------. 1 root root    1395 Jan  9 01:00 anaconda-ks.cfg
-rw-r--r--. 1 root root 6316925 Jan 10 03:32 backup.tar.gz
drwxr-xr-x. 2 root root       6 Jan  9 01:22 Desktop
...

[root@localhost ~]$ ls -ld /etc		# 查看单个目录权限,"-ld"要连用
drwxr-xr-x. 135 root root 8192 Jan 10 04:10 /etc/
[root@localhost ~]$ ls -al
total 6236
dr-xr-x---. 15 root root    4096 Jan 14 06:54 .
dr-xr-xr-x. 17 root root     224 Jan  9 00:49 ..

2.6 文本文件编辑命令

2.6.1 cat

  • 功能:查看纯文本文件(内容较少的);
  • 格式:cat [参数]文件名称
  • 示例:
[root@localhost ~]$ cat -n initial-setup-ks.cfg 	# -n 显示行号
     1	#version=RHEL8
     2	# X Window System configuration information
     3	xconfig  --startxonboot
     4	# License agreement
     5	eula --agreed
     6	# Use graphical install
     7	graphical

2.6.2 more

  • 功能:查看纯文本文件(内容较多的),回车下一行,空格下一页;
  • 格式:more [参数] 文件名称
  • 示例:
[root@localhost ~]$ more initial-setup-ks.cfg 
#version=RHEL8
# X Window System configuration information
xconfig  --startxonboot
# License agreement
...

2.6.3 head

  • 功能:查看纯文本文件的前N行;
  • 格式:head [参数] 文件名称
  • 示例:
[root@linuxprobe ~]$ head -n 6 initial-setup-ks.cfg 	# 查看前6行的文本
#version=RHEL8
# X Window System configuration information
xconfig --startxonboot
# License agreement
eula --agreed
# Use graphical install

2.6.4 tail

  • 功能:查看纯文本文件的后N行或持续刷新文件的最新内容;
  • 格式:tail [参数] 文件名称
  • 示例:
[root@localhost ~]$ tail -n 5 initial-setup-ks.cfg 		# 查看后5行文本
%anaconda
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
%end
[root@localhost ~]$ tail -f /var/log/messages	# 动态刷新查看文件

2.6.5 tr

  • 功能:替换文本内容中的字符,不写回,不影响原文件;
  • 格式:tr [原始字符] [目标字符]
  • 示例:
[root@linuxprobe ~]$ cat anaconda-ks.cfg | tr [a-z] [A-Z]	# 将文件里的小写字母全部转为大写
#VERSION=RHEL8
IGNOREDISK --ONLY-USE=SDA
AUTOPART --TYPE=LVM
# PARTITION CLEARING INFORMATION
...

2.6.6 wc

  • 功能:统计指定文本文件的行数、字数或字节数(word counts);
  • 格式:wc [参数] 文件名称
作用参数
只显示行数-l
只显示(英文)单词数-w
只显示字节数(中文要除2)-c
  • 示例:
[root@localhost ~]$ wc initial-setup-ks.cfg 
  49  135 1550 initial-setup-ks.cfg
# 行  字   字节   数
[root@localhost ~]$ wc -l initial-setup-ks.cfg 
49 initial-setup-ks.cfg

[root@localhost ~]$ ls | wc -l	# 显示当前目录文件数
12

2.6.7 stat

  • 功能:查看文件的具体存储细节和时间等信息;
  • 格式:stat 文件名称
  • 示例:
[root@localhost ~]# stat initial-setup-ks.cfg 
  File: initial-setup-ks.cfg
  Size: 1550      	Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d	Inode: 35330319    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: system_u:object_r:admin_home_t:s0
Access: 2021-01-14 09:20:19.228976824 +0800		# 查看时间:最后一次访问文件的时间 Atime
Modify: 2021-01-09 01:22:24.158688637 +0800		# 修改时间:最后一次修改文件内容的时间 Mtime
Change: 2021-01-09 01:22:24.158688637 +0800		# 更改时间:最后一次更改文件属性的时间 Ctime
 Birth: -
 #	 Atime和Mtime可以手动修改,Ctime不可修改

2.6.8 cut

  • 功能:按列提取文本内容;
  • 格式:cut [参数] 文件名称
  • 示例:
[root@localhost ~]$ head -n 2 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
[root@localhost ~]$ cut -d: -f1 /etc/passwd		# -d: 以 “:”作为分隔符, -f1 第一列,
root
bin
daemon
adm
lp
sync

2.6.9 diff

  • 功能:比较多个文件之间内容的差异;
  • 格式:diff [参数] 文件名称A 文件名称B
  • 示例:
[root@linuxprobe ~]$ diff --brief diff_A.txt diff_B.txt		# 只判断文件是否相同
Files diff_A.txt and diff_B.txt differ

[root@linuxprobe ~]$ diff -c diff_A.txt diff_B.txt		# 描述文件内容具体的不同
*** diff_A.txt 2020-08-30 18:07:45.230864626 +0800
--- diff_B.txt 2020-08-30 18:08:52.203860389 +0800
***************
*** 1,5 ****
! Welcome to linuxprobe.com								# 不同之处都用“!”标记出来了,未标记的就是相同的内容
Red Hat certified
! Free Linux Lessons
Professional guidance
Linux Course
--- 1,7 ----
! Welcome tooo linuxprobe.com
!
Red Hat certified
! Free Linux LeSSonS
! .....
Professional guidance
Linux Course

2.7 文件目录管理命令

2.7.1 touch

  • 功能:创建空白文件或设置文件的时间(atime,mtime);
  • 格式:touch [参数] 文件名称
作用参数
仅修改“读取时间”(atime)-a
仅修改“修改时间”(mtime)-m
同时修改atime和mtime-d
  • 示例:
[root@localhost ~]$ touch a.txt		# 创建文件
[root@localhost ~]$ ls
anaconda-ks.cfg  backup.tar.gz  Documents  initial-setup-ks.cfg  Pictures  Templates  xiaozai
a.txt            Desktop        Downloads  Music                 Public    Videos


[root@linuxprobe ~]$ ls -l anaconda-ks.cfg
-rw-------. 1 root root 1213 May  4 15:44 anaconda-ks.cfg
[root@linuxprobe ~]$ echo "Visit the LinuxProbe.com to learn linux skills" >> anaconda-ks.cfg
[root@linuxprobe ~]$ ls -l anaconda-ks.cfg
-rw-------. 1 root root 1260 Aug  2 01:26 anaconda-ks.cfg

[root@linuxprobe ~]$ touch -d "2020-05-04 15:44" anaconda-ks.cfg 	# 修改a、mtime时间
[root@linuxprobe ~]$ ls -l anaconda-ks.cfg 
-rw-------. 1 root root 1260 May  4 15:44 anaconda-ks.cfg	# 可以看到已经修改成功了

2.7.2 mkdir

  • 功能:用于创建空白的目录;
  • 格式:mkdir [参数] 目录名称
  • 示例:
[root@localhost ~]$ mkdir a
[root@localhost ~]$ mkdir -p b/c/d		# -p 创建多级目录

2.7.3 cp

  • 功能:复制文件或目录;
  • 格式:cp [参数] 源文件名称 目标文件名称
作用参数
保留原始文件属性-p
若对象为“链接文件”,则保留该“链接文件”的属性-d
递归持续复制(用于目录)-r
若目标文件存在则询问是否覆盖-i
相当于-pdr(p、d、r为上述参数)-a
  • 示例:
[root@localhost b]$ ls
c
[root@localhost b]$ cp -r c c1	#复制整个目录结构
[root@localhost b]$ ls
c  c1
[root@localhost b]$ cd c1
[root@localhost c1]$ ls
d

2.7.4 mv

  • 功能:剪切或重命名文件;
  • 格式:mv [参数] 源文件名称 目标文件名称
  • 示例:
[root@localhost ~]$ mv a.txt ax.txt
[root@localhost ~]$ ls
a                ax.txt  

2.7.5 rm

  • 功能:删除文件或目录;
  • 格式:rm [参数] 文件/目录名称
作用参数
不进行二次确认-f
删除目录-r
  • 示例:
[root@localhost ~]$ rm -rf ax.txt	
[root@localhost ~]$ rm -rf /   # 全删,慎重

2.7.6 dd

  • 功能:按照指定大小的数据块个数来复制文件或转换文件;
  • 格式:dd if=参数值 of=参数值 count=参数值 bs=参数值
作用参数
输入的文件名称(input file)if
输出的文件名称(output file)of
设置复制的每个块的大小(block size)bs
设置要复制的块的数量count
  • 示例:
[root@localhost ~]$ dd if=/dev/zero of=test_file count=1 bs=100M	#bs默认是B
1+0 records in
1+0 records out
104857600 bytes (105 MB, 100 MiB) copied, 0.411219 s, 255 MB/s	# 可以用来测试硬盘速度

#可以使用dd命令来压制出镜像文件
[root@linuxprobe ~]$ dd if=/dev/cdrom of=RHEL-server-8.0-x86_64-LinuxProbe.Com.iso
13873152+0 records in
13873152+0 records out
7103053824 bytes (7.1 GB, 6.6 GiB) copied, 27.8812 s, 255 MB/s

2.7.7 file

  • 功能:查看文件的类型(Linux中一切皆文件);
  • 格式:file 文件名称
  • 示例:
[root@localhost ~]$ file a
a: directory

2.8 打包压缩与搜索命令

rhel考题

2.8.1 tar

  • 功能:对文件进行打包压缩或解压;
  • 格式:tar 参数 文件名称
作用参数
创建压缩文件-c
解开压缩文件-x
查看压缩包内有哪些文件-t
用Gzip压缩或解压-z
用bzip2压缩或解压-j
显示压缩或解压的过程-v
目标文件名-f
保留原始的权限与属性-p
使用绝对路径来压缩-P
指定解压到的目录-C

z :gzip压缩, 常用命名为xxxx.tar.gz
j :bzip2压缩,常用命令为xxxx.tar.bz2
压缩和解压时,参数的 “-” 可以省略

  • 示例:
# 将a目录文件采用Gzip压缩,显示过程,压缩成文件test.tar.gz
[root@localhost ~]$ tar -czvf test.tar.gz a		# f 需要在最后一位,用来连接目标文件名

# 将目标文件test.tar.gz采用Gzip解压缩,指定解压目录为当前路径a目录下
[root@localhost ~]$ tar xzvf test.tar.gz -C a

2.8.2 grep

  • 功能:用于按行提取文本内容 (关键词搜索);关联cut时按列提取内容,但cut是针对文本文件。。。
  • 格式:grep [参数] 文件名称
作用参数
将可执行文件(binary)当作文本文件(text)来搜索-b
仅显示找到的行数-c
忽略大小写-i
显示行号-n
反向选择——仅列出没有“关键词”的行-v
  • 示例:
# 查找不允许登录系统的所有用户信息
[root@localhost a]$ grep /sbin/nologin /etc/passwd
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin

2.8.3 find

  • 功能:按照指定条件来查找文件所对应的位置;(文件检索)
  • 格式:find [查找范围] 寻找条件
作用参数
匹配名称-name
匹配权限(mode为完全匹配,-mode为包含即可)-perm
匹配所有者-user
匹配所有组-group
匹配修改内容的时间(-n指n天以内,+n指n天以前)-mtime -n +n
匹配访问文件的时间(-n指n天以内,+n指n天以前)-atime -n +n
匹配修改文件权限的时间(-n指n天以内,+n指n天以前)-ctime -n +n
匹配无所有者的文件-nouser
匹配无所有组的文件-nogroup
匹配比文件f1新但比f2旧的文件-newer f1 !f2
匹配文件类型(后面的字幕字母依次表示块设备、目录、字符设备、管道、链接文件、文本文件)--type b/d/c/p/l/f
匹配文件的大小(+50KB为查找超过50KB的文件,而-50KB为查找小于50KB的文件)-size
忽略某个目录-prune
后面可跟用于进一步处理搜索结果的命令(下文会有演示)-exec …… {}\;
  • 示例:
# 全文检索名称为host的文件并打印出来
[root@localhost a]$ find / -name "host" -print
find: ‘/proc/4268’: No such file or directory
/usr/bin/host
/usr/lib/modules/4.18.0-80.el8.x86_64/kernel/drivers/memstick/host
/usr/lib/modules/4.18.0-80.el8.x86_64/kernel/drivers/mmc/host
/usr/lib/modules/4.18.0-80.el8.x86_64/kernel/drivers/nvme/host
/usr/lib/modules/4.18.0-80.el8.x86_64/kernel/drivers/usb/host
/usr/share/bash-completion/completions/host

#检索整个系统中搜索权限中包括SUID权限的所有文件,只需使用-4000即可:
[root@linuxprobe ~]$ find / -perm -4000 -print
/usr/bin/fusermount
/usr/bin/chage
/usr/bin/gpasswd
/usr/bin/newgrp
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mitays

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值