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

2023-05-16

目录

  • 第二章 新手必须掌握的Linux命令
    • 2.1 Shell
    • 2.2 命令格式及帮助命令 man
      • 2.2.1 命令格式
      • 2.2.2 帮助命令 man
    • 2.3 常用的系统工作命令
      • 2.3.1 echo
      • 2.3.2 date
      • 2.3.3 reboot
      • 2.3.4 poweroff
      • 2.3.5 wget
      • 2.3.6 ps
      • 2.3.7 top
      • 2.3.8 pidof
      • 2.3.9 kill
      • 2.3.10 killall
    • 2.4 系统状态检测命令
      • 2.4.1 ifconfig
      • 2.4.2 uname
      • 2.4.3 uptime
      • 2.4.4 free
      • 2.4.5 who
      • 2.4.6 last
      • 2.4.7 history
      • 2.4.8 sosreport
      • 2.4.9 ping
    • 2.5 工作目录切换命令
      • 2.5.1 pwd
      • 2.5.2 cd
      • 2.5.3 ls
    • 2.6 文本文件编辑命令
      • 2.6.1 cat
      • 2.6.2 more
      • 2.6.3 head
      • 2.6.4 tail
      • 2.6.5 tr
      • 2.6.6 wc
      • 2.6.7 stat
      • 2.6.8 cut
      • 2.6.9 diff
    • 2.7 文件目录管理命令
      • 2.7.1 touch
      • 2.7.2 mkdir
      • 2.7.3 cp
      • 2.7.4 mv
      • 2.7.5 rm
      • 2.7.6 dd
      • 2.7.7 file
    • 2.8 打包压缩与搜索命令
      • 2.8.1 tar
      • 2.8.2 grep
      • 2.8.3 find

第二章 新手必须掌握的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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • 【ffmpeg】创建AAC编码器

    ffmpeg 创建AAC编码器 前言 ffmpeg编码过程 创建AAC编码器 创建编码器 创建上下文 设置采样参数 打开编码器 将帧数据提供给编码器 读取编码后的数据 将编码后的数据写入aac文件中 参考资料 个人简介 个人主页 一二三o
  • 【ffmpeg】YUV实践

    ffmpeg YUV实践 前言 生成YUV 使用摄像头采集到YUV数据 从现有的视频文件中提取YUV数据 播放YUV 播放Y分量 提取各分量 参考资料 个人简介 个人主页 一二三o 0 O的博客 技术方向 C C 客户端资深工程师 直播 音
  • 【yum】Peer cert cannot be verified or peer cert invalid

    yum 装包时 xff0c 提示 Errno 14 Peer cert cannot be verified or peer cert invalid cat etc yum repos d my repo repo my repo nam
  • 【DNS】Linux上非root用户无法使用/etc/hosts解析条目问题的排查处理

    一 问题背景 机房某台物理机故障 xff0c 触发虚拟化系统对该物理机上的虚拟机的漂移重启操作 xff0c 发现新起的虚拟机上某些应用重启失败 看相关应用启动日志 xff0c 显示无法解析主机名 xff0c 但是明明用到的主机名解析已经写在
  • ORDER BY clause is not in SELECT list

    Expression 1 of ORDER BY clause is not in SELECT list 1 mysql查询异常 xff1a 2 解决办法 xff1a 2 1 查看是否开启了only full group by规则校验2
  • R语言简介

    我们Hadoop 43 R爱好者建立了一个Hadoop和R语言的学习交流的高级LV1 QQ群 279441740 xff0c 欢迎加入学习 交流 讨论 下载 R语言简介 R语言是一种为统计计算和图形显示而设计的语言环境 xff0c 是贝尔实
  • GitHub的安装与配置

    一 安装git 1 Git下载地址 xff1a Git Downloads 进入后点击Download下载 xff0c 如下图所示 xff1a 2 进入后选择自己对应的操作系统下载 32位或64位 xff0c 如下图所示 3 下载好后进行安
  • 手机在输入界面进入退出导致手机重启 (Watchdog重启问题分析)

    9820E E516横屏项目 xff0c 手机在使用过程中出现framework crash 通过log工具发现是 WATCHDOG KILLING SYSTEM PROCESS Blocked in monitor com android
  • 利用python模拟post请求实现USVN批量添加用户组

    参考知乎链接 xff1a https zhuanlan zhihu com p 140372568 环境 xff1a python3 7 请求头 xff0c 请求地址都可以在开发者模式的网络中抓取 xff0c 此处需要登录到USVN才能获取
  • timeout的一些常规解决办法

    一般来说timeout并不会对服务器造成什么大的影响 xff0c 但如果timeout过多导致进程文件描述符不够用或服务器端口不够用就需要注意了 下面是一些常规的timeout解决办法 注意 xff1a 不是长久之计 etc sysctl
  • 如何删除ubuntu中的keyring

    按照system gt preferences gt passwords and encryption keys顺序 xff0c 找到下面这个界面删除Passwords 下次在ubuntu要求输入初始keyring 密码时直接回车 xff0
  • ubuntu16.04桌面版开机进入命令行模式

    我们大部分个人的linux系统计算机都是使用图形界面模式的操作 xff0c 有些时候我们也可以在纯命令行模式下进行操作 xff0c 这里给大家介绍一个在开机启动的时候进入命令行的两种方法 ubuntu 16 04LTS系统 方法 步骤 系统
  • 8本推荐游戏开发书籍

    很多刚刚接触游戏开发的朋友经常问我 xff1a 如何开始学习游戏开发 xff1f 我从事游戏开发行业很多年了 xff0c 坦率地讲 xff0c 开发游戏充满挑战性 xff0c 需要开发人员具备大量的技能与积极的创新精神 希望这篇小文能帮助朋
  • GNOMe面板丢失问题解决

    今天用安装虚拟机时屏幕太小 xff0c 安装框又不能向上拉 xff0c 导致我看不到下一步图标 xff0c 一怒之下 xff0c 把底面板给删了 xff0c 从此走上了麻烦之路 xff01 没有底面版 xff0c 很多最小化的图标都找不到
  • Ubuntu操作系统综合贴

    本文转载自卡饭论坛http bbs kafan cn thread 1551594 1 1 html xff0c 作者 xff1a ubuntu2011 Linux简介及安装 Linux是什么 xff1f Linux是一种自由和开放源代码的
  • Spring4+Hibernate4+SpringMVC整合配置

    这里是Spring4 3 9 43 Hibernate4 0 2的整合配置 配置web xml span class hljs pi lt xml version 61 34 1 0 34 encoding 61 34 UTF 8 34 g
  • Android Keystore System介绍

    翻译 sdk docs training articles keystore html q 61 keystore q 61 keystore KeyStore KeyStore负责维护加密密钥及其所有者 可以通过修改JAVA HOME l
  • html5之div居中

    效果如图 xff1a 代码如下 xff1a navright display inline block vertical align middle width 100 height 100 min height 400px border 1
  • 服务器后台自动运行程序和停止

    后台运行命令 如何后台运行python程序 关键的命令 xff1a nohup 只需要输入下面的命令就可以在后台一直执行python程序啦 nohup python u test py gt test log 2 gt amp 1 amp
  • 谷歌浏览器(Chrome)插件安装失败的解决办法

    最新的谷歌浏览器下载完成以后进行安装插件时 xff0c 可能会提示 无法从该网站添加应用 扩展程序和用户脚本 的提示 这是因为谷歌比较重视用户信息安全性的 xff0c 所以不希望用户随便安装一些除官方商店之外的东西 xff0c 以免造成用户

随机推荐

  • Docker-CentOS开启防火墙firewalled映射Docker端口

    开启docker的Tomcat容器后 xff0c 启动 docker run d p 8080 8080 tomcat 访问不了Tomcat 查看防火墙所有开放的端口 firewall cmd zone 61 public list por
  • mysql 5.6 utf-8 编码设置

    mysql 5 5 utf 8编码 正确设置的方法 xff1a 在 etc my cnf mysqld utf 8 设置 character set server 61 utf8 collation server 61 utf8 gener
  • 文件内容查找方式

    第一种 xff0c 使用windows自带的查找工具 搜索工具里面有 高级选项 xff0c 选择 文件内容 然后进行搜索即可 第二种 xff0c 使用命令行 在需要进行搜索的文件夹下使用命令行 xff1a Get span class to
  • Image打包流程-Android10.0编译系统(四)

    摘要 xff1a 本节主要来进行Android10 0 Image打包流程 xff0c 理解system img是如何打包的 1 概述 前面我们讲完了Android10 0 编译的初始化和make的完整流程 xff0c 从make中我们看到
  • Ubuntu18.04安装踩坑与排错记录

    很早以前就想装Ubuntu玩玩了 xff0c 今天终于动手实现了这个想法 但过程并不顺利 xff0c 所以记录一下 对他人可能借鉴意义不大 xff0c 但对自己来说还是有记录价值的 机子是之前淘汰掉的华硕笔记本 xff08 14年买的 xf
  • Jupyter Notebook FileNotFoundError: [WinError 2] 系统找不到指定的文件

    问题描述 xff1a 通过Anaconda新创建环境 tfenv python 61 3 5 5 并依次安装tensorflow ipython xff0c jupyter xff0c matplotlib这三个包及其依赖包 然后在该环境下
  • 命令提示符(cmd)的一些简单用法

    命令提示符 xff08 cmd xff09 快捷键 xff1a win 43 r 切换位置 xff1a 盘名 xff1a 进入目录 xff1a cd 43 文件夹名 xff08 tab可以切换文件夹 xff09 只要路径写对cd可以访问多级
  • Java中,&&与&,||与|的区别

    1 1 逻辑运算符 amp amp xff08 短路与 xff09 xff0c amp 用法 xff1a amp amp 和 amp 都是表示与区别是 xff1a amp amp 若第一个条件不满足 xff0c 后面条件就不再判断 而 am
  • Java基础类(六):Collections工具类

    目录 1 Collections 1 1 排序操作 xff1a xff08 均为static方法 xff09 1 2 查找 替换 1 3 同步控制 1 4 返回不可变集合 1 Collections Collections 是一个操作 Se
  • Bash脚本:采用for循环重复执行某条指令100次

    1 新建一个脚本文件 直接vim for sh就可以 2 编辑脚本文件 bin bash for i 61 1 i lt 61 100 i 43 43 do test 想要重复执行的命令 xff09 done 3 将脚本文件变为可执行文件
  • Android.mk 和 CMakeLists.txt 的转换规则

    Android mk 和 CMakeLists txt 都是用来构建 Android 应用程序或库的工具 但是它们有不同的语法和规则 xff0c 所以将一个 Android mk 文件转换成一个 CMakeLists txt 文件需要一些注
  • EFI Shell 命令参考

    对于使用使用DOS的人来说 xff0c 会使用DOS命令是最基本的 xff0c 而在当今即将盛行的EFI BIOS来说 xff0c 就有了新的变化 xff0c 如何操作EFI Shell 呢 xff1f 至此我贴出了EFI Shell 的命
  • mysql出现提示错误10061的解决方法

    MySQL出现提示错误10061的解决方法 错误提示 xff1a 今天打开Navicat连接mysql突然提示 2003 Can t connect to MySQL server on localhost 10061 xff09 的错误提
  • 3分钟爬取全网10W+爆款,脚本无偿分享,零基础拿来直接就能用!

    市面上的新媒体资料都是过去时了 xff0c 只有最新的爆款文才是新媒体人的福音 xff01 三分钟爬取全网10W 43 爆款文 xff01 爬虫脚本无偿分享 xff0c 拿来就能直接用 xff0c 零基础也能用 xff01 需要的看图 xf
  • 使用Wake On Lan远程唤醒

    使用Wake On Lan远程唤醒 客厅里的那台htpc xff0c 在无下片任务的时候 xff0c 大部分时间里都在白白浪费电 主板是支持wake on lan的 xff0c 把它弄成可以远程控制会比较经济 首先要设置bios xff0c
  • .gitignore文件作用

    gitignore文件用于在将文件提交到git暂存区时 xff0c 指定将哪些文件排除 xff1b 1 gitignore文件基本用法 在 git文件所在的目录创建 gitignore 文件 文件内容如下 span class token
  • 《计算机应用基础》形考作业及答案

    国家开放大学 计算机应用基础 形考作业 及 答案 题目1 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 兔子bu蹬鹰 在Word 2010中编辑文本时 编辑
  • php操作redis代码

    lt php Redis缓存操作 64 author hxm 64 version 1 0 64 since 2015 05 04 class RCache extends Object implements CacheFace priva
  • C++实现归并排序

    C 43 43 实现归并排序 span class token comment span span class token comment main cpp span span class token comment MergeSort s
  • LinuxNote 第二章 新手必须掌握的Linux命令

    目录 第二章 新手必须掌握的Linux命令2 1 Shell2 2 命令格式及帮助命令 man2 2 1 命令格式2 2 2 帮助命令 man 2 3 常用的系统工作命令2 3 1 echo2 3 2 date2 3 3 reboot2 3