网络运维Day03

文章目录

  • 基本命令使用
    • 查看文本文件内容-cat命令
    • 分页查看文本文件-less命令
    • 查看CPU信息-lscpu命令
    • 查看系统内核版本-uname命令
    • 查看机修改主机名-hostname命令
    • 查看IP地址-ifconfig命令
    • 创建目录-mkdir命令
    • 创建空文件-touch命令
    • 查看文件前几行-head命令
    • 查看文件后几行-tail命令
    • 快速编辑技巧
    • 关机及重启
    • 别名管理-alias/unalias
    • 删除操作-rm命令
    • 删除空目录rmdir
    • 移动操作-mv
    • 复制操作-cp
    • 软连接
    • 硬链接
    • 软连接硬链接区别实验
    • 通配符
    • 重定向操作
    • 管道操作
  • find精确查找
    • find基本使用
    • find多条件使用
  • find高级使用
  • 总结

基本命令使用

本节需要一台CentOS7.9的虚拟机,将其开机并使用root用户登录即可!

查看文本文件内容-cat命令

格式:cat \[选项\] 目标文件

查看/etc/passwd文件

[root@localhost ~]# cat /etc/shells

查看/etc/centos-release文件

[root@localhost ~]# cat /etc/centos-release

查看/etc/passwd文件

[root@localhost ~]# cat /etc/passwd

查看/proc/meminfo文件(该文件用于记录当前系统内存信息)

[root@localhost ~]# cat /proc/meminfo 
MemTotal:        1828200 kB						#总内存
MemFree:         126980 kB						#剩余内存

分页查看文本文件-less命令

格式: less 目标文件

  • less查看文件内容为交互式查看,在交互式模式中:

    • /表示搜索关键词,按n查找下一个、按N查找上一个

    • 空格以页为单位翻页浏览,按回车以行为单位翻页浏览

    • q退出交互式界面

分页查看/etc/passwd文件

[root@localhost ~]# less /etc/passwd

查看CPU信息-lscpu命令

格式:lscpu

[root@localhost ~]# lscpu

查看系统内核版本-uname命令

格式:uname [选项]

-r 输出内核发行号

[root@localhost ~]# uname -r

查看机修改主机名-hostname命令

格式:hostname [主机名]

  • 该方式修改主机名为临时生效
  • 提示符中的主机名只会显示主机名第一个小数点左边的内容(例如a.b.c,只会在提示符中显示a)
  • 修改主机名后,提示符上不会马上显示,关闭终端重新打开即可

查看主机名

[root@localhost ~]# hostname

修改主机名为som.tedu.cn

[root@localhost ~]# hostname som.tedu.cn		#修改主机名,并重新打开终端
[root@som ~]# 									#提示符已发生改变
[root@som ~]# hostname							#查看完整主机名

查看IP地址-ifconfig命令

格式:ifconfig [网卡]

[root@som ~]# ifconfig							#查看IP地址
[root@som ~]# ifconfig ens160					#指定网卡查看IP地址

创建目录-mkdir命令

格式:mkdir [选项] [/路径/]目录名 ...

-p:连同父目录一并创建

创建/opt/som01目录

[root@som ~]# mkdir /opt/som01

创建/opt/aa/bb/cc/dd

[root@som ~]# ls /opt/									#查看/opt/没有aa目录
a.txt  som01
[root@som ~]# mkdir /opt/aa/bb/cc/dd					#此时直接创建报错
mkdir: 无法创建目录 “/opt/aa/bb/cc/dd”: 没有那个文件或目录
[root@som ~]# mkdir -p /opt/aa/bb/cc/dd					#加上-p选项,成功创建
[root@som ~]# ls -R /opt/aa/							#递归查看/opt/aa

创建空文件-touch命令

格式:touch [选项] 目标文件 ...

创建空文件/opt/1.txt、/opt/2.txt

[root@som ~]# touch  /opt/1.txt
[root@som ~]# touch  /opt/2.txt

查看文件前几行-head命令

格式:head [-n] 行数 目标文件

  • -n 选项也可以省略,直接写-行数
  • 当没有指定看前几行时间,默认看前10行

查看/etc/passwd文件的前2行

[root@som ~]# head -n 2 /etc/passwd
[root@som ~]# head -2 /etc/passwd

查看/etc/passwd文件的前10行

[root@som ~]# head -n 10 /etc/passwd
[root@som ~]# head -10 /etc/passwd
[root@som ~]# head  /etc/passwd

查看文件后几行-tail命令

格式:tail [-n] 行数 目标文件

  • -n 选项也可以省略,直接写-行数
  • 当没有指定看前几行时间,默认看后10行

查看/etc/group文件后2行

[root@som ~]# tail -n 2 /etc/group
[root@som ~]# tail -2 /etc/group

查看/etc/group文件后10行

[root@som ~]# tail -n 10  /etc/group
[root@som ~]# tail -10  /etc/group
[root@som ~]# tail   /etc/group

快速编辑技巧

  • Tab键补齐:命令、选项、参数、文件路径、软件名、服务名…
  • 快捷键
    • Ctrl l:清空整个屏幕
    • Ctrl c:废弃当前编辑的命令行操作
    • Esc . 或者ALT .:粘贴上一个命令的参数

关机及重启

重启:reboot

关机:poweroff

[root@som ~]# reboot					#重新启动
[root@som ~]# poweroff					#关闭机器

别名管理-alias/unalias

作用:别名相当于生活中的的“外号”用于将复杂的命令简单化

格式:alias [别名='真实命令']

  • 查看当前系统已有别名直接alias
  • alias定义别名是临时生效的
  • 一般不要把其他命令关键字作为别名(例如将ls作为其他命令的别名),因为别名优先级更高
  • 取消别名: unalias 别名

查看当前已有别名

[root@som ~]# alias 

将hn定义为hostname的别名

[root@som ~]# alias hn='hostname'			#定义hn为hostname的别名
[root@som ~]# alias 						#查看已有别名
[root@som ~]# hn							#验证别名是否生效

取消别名hn

[root@som ~]# unalias  hn					#取消别名hn
[root@som ~]# alias 						#查看是否取消别名hn
[root@som ~]# hn							#查看hn是否生效

删除操作-rm命令

格式:rm [选项] 参数 ...]

-i: 提示是否删除

-r: 递归删除

-f: 强制删除

  • rm 默认是rm -i的别名
  • -f优先级大于-i,所以当-f和-i同时出现时,优先使用-f选项的功能

使用rm命令删除文件

[root@som ~]# touch /opt/test.txt			#创建文件
[root@som ~]# rm /opt/test.txt 				#直接删除文件
rm:是否删除普通空文件 '/opt/test.txt'?y		 #会有提示(回答y表示删除,回答n表示不删除)
[root@som ~]# ls  /opt/						#查看/opt/是否还有test.txt

[root@som ~]# touch /opt/test2.txt			#创建/opt/test2.txt
[root@som ~]# rm -f /opt/test2.txt 			#强制删除/opt/test2.txt
[root@som ~]# ls /opt/						#查看/opt/是否还有test2.txt

使用rm命令删除目录

[root@som ~]# mkidr -p /opt/aa/bb/cc/dd	#创建目录
[root@som ~]# rm /opt/aa/					#直接删除报错,想要删除目录必须加上-r
rm: 无法删除'/opt/aa/': 是一个目录
[root@som ~]# ls /opt/						#查看/opt/aa目录还在

[root@som ~]# rm -r /opt/aa/				#使用-r选项递归删除(因为是rm -i的别名所以有提示)
rm:是否进入目录'/opt/aa/'? y
rm:是否进入目录'/opt/aa/bb'? y
rm:是否进入目录'/opt/aa/bb/cc'? y
rm:是否删除目录 '/opt/aa/bb/cc/dd'?y
rm:是否删除目录 '/opt/aa/bb/cc'?y
rm:是否删除目录 '/opt/aa/bb'?y
rm:是否删除目录 '/opt/aa/'?y

[root@som ~]# mkdir -p /opt/aa/bb/cc/dd			#再次创建目录
[root@som ~]# rm -rf /opt/aa/					#加上-f选项不在有提示

删除空目录rmdir

  • rmdir命令是Linux系统下一个用于删除空目录的命令
[root@som ~]# mkdir /som1						#创建目录/som1
[root@som ~]# mkdir /som2						#创建目录/som2
[root@som ~]# touch /som1/test.txt				#创建文件/som1/test.txt
[root@som ~]# rmdir /som1/						#删除非空目录/som1,失败
rmdir: 删除 '/som1/' 失败: 目录非空			
[root@som ~]# rmdir /som2						#删除空目录/som2,成功

移动操作-mv

格式:mv <源数据> ... <目标位置>

  • mv移动数据会使源文件消失
  • mv可以同时移动多个参数,只有最后一个是目标位置
  • mv可以再移动的过程中改名
  • 目标地址不变的移动等于重命名

移动文件操作

[root@som ~]# mkdir /opt/som10				#创建目录/opt/som10
[root@som ~]# touch /opt/1.txt				#创建/opt/1.txt
[root@som ~]# mv /opt/1.txt /opt/som10		#将/opt/1.txt移动至/opt/som10目录
[root@som ~]# ls /opt/som10/ /opt/			#同时查看/opt/som10和/opt目录验证

移动过程中改名操作

[root@som ~]# touch /root/linux.txt				#创建/root/linux.txt
[root@som ~]# mv /root/linux.txt /opt/cc.txt	#将linux.txt移动至/opt下并改名为cc.txt
[root@som ~]# ls /opt/ /root/					#同时查看/opt/和/root/目录验证

使用mv进行"重命名"操作

[root@som ~]# ls /opt/
[root@som ~]# mv /opt/som10 /opt/game			#将/opt/som01重命名为/opt/game
[root@som ~]# ls /opt/

复制操作-cp

格式:cp [选项] <源数据> ... <目标路径>

-f:强制覆盖

-r:递归拷贝

-p:保留数据原属性复制

  • cp支持多参数,最后一个为目标路径
  • cp不会使源文件消失
  • cp操作可以在复制过程中对目标文件改名
  • cp默认是cp -i的别名,其-i选项优先级高于-f,所以当-i和-f同时出现时,使用-i的属性

拷贝文件及目录

[root@som ~]# cp /etc/passwd /opt/			#将/etc/passwd文件复制到/opt/目录
[root@som ~]# cp /etc/shells /opt/			#将/etc/shells文件复制到/opt/目录
[root@som ~]# cp /etc/passwd /opt/ps.txt		
											#将/etc/passwd文件复制到/opt/目录下改名为ps.txt
[root@som ~]# cp /boot/ /opt/					#将/boot目录复制到/opt/目录下,报错
[root@som ~]# cp -r /boot/ /opt/				#将/boot目录复制到/opt/目录下,成功
[root@som ~]# ls /opt							#验证是否成功拷贝

cp多参数拷贝(最后一个为目标路径)

[root@som ~]# cp -r /boot/ /home/ /etc/passwd /etc/shells  /mnt/ 
							#将/boot/,/home/,/etc/passwd,/etc/shells复制到/mnt目录下
[root@som ~]# ls /mnt/    						#验证

cp与.连用(.表示当前路径)

[root@som mnt]# cd /mnt						#切换至/mnt
[root@som mnt]# cp /etc/fstab .				#将/etc/fstab复制到当前路径下
[root@som mnt]# ls							#验证

cp复制保持属性不变

[root@som ~]# ls -ld /home/lisi/
drwx------. 4 lisi lisi 113 224 10:22 /home/lisi/
[root@som ~]# cp -r /home/lisi/ /opt/			#将/home/lisi目录复制到/opt下
[root@som ~]# ls -ld /opt/lisi/					#所有者与所属组发生了改变
drwx------. 4 root root 113 228 12:33 /opt/lisi/

[root@som ~]# rm -rf /opt/lisi/					#删除/opt/lisi目录
[root@som ~]# cp -rp /home/lisi/ /opt/			#保留属性将/home/lisi目录复制到/opt下
[root@som ~]# ls -ld /opt/lisi/					#查看目标属性不变
drwx------. 4 lisi lisi 113 224 10:22 /opt/lisi/

软连接

  • 软连接 --> 原始文档 --> 文档数据
  • 格式:ln -s 原始文件或目录 软连接文件
  • 若原始文件或目录被删除,连接文件将失效
  • 软连接可存放在不同分区/文件系统
[root@som ~]# ln -s /etc/passwd /opt/ps.txt	#将/opt/ps.txt设置为/etc/passwd的软连接

硬链接

  • 硬链接 --> 文档数据
  • 格式:ln 原始文件 硬链接文件
  • 若原始文件被删除,链接文件仍可用
  • 硬链接与原始文件必须在同一分区/文件系统
[root@som ~]# ln /etc/shells /opt/shells		#将/opt/shells设置为/etc/shells的硬链接

软连接硬链接区别实验

创建素材文件

[root@som ~]# cp /etc/centos-release /opt/a.txt	#产生素材文件
[root@som ~]# ln -s /opt/a.txt /opt/b.txt		#将/opt/b.txt设置为/opt/a.txt的软连接
[root@som ~]# ln /opt/a.txt /opt/c.txt			#将/opt/c.txt设置为/opt/a.txt的硬链接
[root@som ~]# rm -rf /opt/a.txt					#删除源文件/opt/a.txt
[root@som ~]# cat /opt/b.txt					#无法查看软连接文件/opt/b.txt
[root@som ~]# cat /opt/c.txt					#可以正常查看硬链接文件/opt/c.txt

通配符

概念:使用固定的字符对数据进行模糊匹配

类似生活中:张三、张三丰、张三花,张xx(此时xx可能代表三丰、三花)张x(x可以表示三)

*:匹配任意字符,包含0个字符

?:匹配任意单个字符

[0-9]:匹配0-9任意单个数字

[a-z]:匹配任意单个字符

{xx,yy,zz}:严格匹配大括号内的元素

[root@som ~]# ls /dev/tty*						#匹配/dev/tty后边任意字符内容
[root@som ~]# ls /dev/tty?						#匹配/dev/tty后边1个字符内容
[root@som ~]# ls /dev/tty??						#匹配/dev/tty后边2个字符内容
[root@som ~]# ls /dev/tty[0-9]					#匹配/dev/tty后边1个数字内容
[root@som ~]# ls /dev/tty[0-9][0-9]				#匹配/dev/tty后边2个数字内容	

[root@som ~]# touch /opt/{a,b,c}.txt			#创建/opt/a.txt,/opt/b.txt,/opt/c.txt
[root@som ~]# ls /opt/[a-z].txt					#查看/opt/下一个字符.txt的文件
[root@som ~]# ls -d /m{edia,nt}					#严格匹配/media和/mnt

重定向操作

作用:将前方命令输出内容保存到文件

>:覆盖重定向

>>:追加重定向

  • 当目标文件存在时,则使用目标文件存储数据
  • 当目标文件不存在时,重定向会创建该目标文件并存储数据

补充:echo指令,echo会将指定内容输出到屏幕上

例如

[root@som ~]# echo hahaxixi			#在屏幕输出hahaxixi
hahaxixi
[root@som ~]# echo "I LOVE YOU"		#在屏幕输出I LOVE YOU
I LOVE YOU

覆盖重定向

[root@som ~]# cat /opt/hn.txt					#查看/opt/hn.txt,没有此文件
[root@som ~]# hostname > /opt/hn.txt			#将hostname输出结果写入/opt/hn.txt文件
[root@som ~]# cat /opt/hn.txt 					#查看/opt/hn.txt,有文件,有内容
[root@som ~]# ifconfig > /opt/hn.txt			#将ifconfig输出结果写入/opt/hn.txt文件

追加重定向

[root@som ~]# echo 123 > /opt/a.txt				#将123重定向至/opt/a.txt文件
[root@som ~]# cat /opt/a.txt					#查看/opt/a.txt文件内容
[root@som ~]# echo 456 >> /opt/a.txt			#将456追加重定向至/opt/a.txt文件
[root@som ~]# cat /opt/a.txt					#查看/opt/a.txt文件内容(123没有被覆盖)

管道操作

作用:将前方命令输出结果最为后方命令参数

网络运维Day03_第1张图片

  • 管道可以多重使用
[root@som ~]# ls --help | less					#将ls --help输出信息交给less命令作为参数
[root@som ~]# ifconfig | head -2				#将ifconfig输出信息交给head -2作为参数

find精确查找

find基本使用

格式:find 查找目录 条件

  • find可用于在Linux操作系统中精确查找某些资料
  • find查找为"地毯式搜索"不会放过任何一个子目录、隐藏目录
  • 查找过程中如果遇到/proc目录下的报错,属于正常现象,因为/proc不占用磁盘空间,占用的是内存空间
  • 常用查找条件
    • -type 按类型查找(f、d、l)
    • -name 按名字查找(可与通配符连用)
    • -iname 按名字查找(可忽略名字大小写查找、可与通配符连用)
    • -size 按数据大小查找(k、M、G)
    • -mtime 按数据最近修改时间查找
    • -user 按数据所有者查找

按类型查找

[root@som ~]# find /boot/ -type f				#在/boot/下递归查找文件
[root@som ~]# find /boot/ -type d				#在/boot/下递归查找目录
[root@som ~]# find /boot/ -type l				#在/boot/下递归查找连接文件(快捷方式)

按名字查找

[root@som ~]# find /etc/ -name "passwd"			#在/etc/下递归查找名为passwd的数据
[root@som ~]# find /etc/ -name "*tab"			#在/etc/下递归查找tab结尾的数据
[root@som ~]# find /etc/ -name "*passwd*"		#在/etc/下递归查找名字包含passwd的数据

忽略名字大小写查找

[root@som ~]# find /etc/ -iname "PaSSwd"		#在/etc/查找名为passwd的数据(忽略大小写)

按大小查找

  • k:kb作为单位
  • M:MB作为单位
  • G:GB作为单位
  • 注意:在使用大小进行查找时,对于某些目录可能存在一定的BUG,例如1M需要写成1024k,当然这里需要多测试才会发现
[root@som ~]# find /boot/ -size +2M				#在/boot/查找文件大小大于2M的数据
[root@som ~]# ls -lh /boot/grub2/fonts/unicode.pf2 		#验证大小
-rw-r--r--. 1 root root 2.5M 1219 12:10 /boot/grub2/fonts/unicode.pf
[root@som ~]# find /boot/ -size -1M			#在/boot/查找文件大小小于1M的数据(出现BUG)
[root@som ~]# find /boot/ -size -1024k		#在/boot/查找文件大小小于1024k的数据(小于1M)

按修改时间

[root@som ~]# find /etc/ -mtime +10			#查找10天前修改的数据
[root@som ~]# find /etc/ -mtime -10			#查找近10天修改的数据

查找按所有者查找

[root@som ~]# ls -ld /home/lisi/				#查看“文档”属性,查看所有者
drwx------. 4 lisi lisi 113 224 10:22 /home/lisi/
[root@som ~]# find /home/ -user lisi			#从/home中查找所有者为lisi的数据
[root@som ~]# find /etc/ -user root				#从/etc中查找所有者为root的数据

find多条件使用

-a:and逻辑与,多个条件同时成立才满足条件(默认为逻辑与)

-o:or逻辑或,多个条件成立其中一个即可

创建实验素材

[root@som ~]# touch /root/som01.txt 		#创建/root/som01.txt
[root@som ~]# touch /root/som02.txt			#创建/root/som02.txt
[root@som ~]# mkdir /root/som03				#创建/root/som03目录

逻辑与案例-a,在/root/下查找som开头文件

[root@som ~]# find /root/ -name "som*" -a -type f	
[root@som ~]# find /root/ -name "som*"  -type f	#-a也可以省略不写,默认就是-a	

逻辑或案例-o,在/root/下查找som开头的资料,或者是文件即可

[root@som ~]# find /root/ -name "som*" -o -type f	

find高级使用

  • 可用于处理找到的文件
  • 格式:find [范围] [条件] -exec 处理命令 {} \;
  • {}表示查找到的每一个结果
  • \;表示操作结束
[root@som ~]# find /boot/ -size +10M -exec ls {} \;   #ls查看/boot下大于10M的数据
[root@som ~]# find /boot/ -size +10M | xargs ls;	  #同上(xargs传递|前查找到的每个数据)

将/boot下vm开头的数据拷贝到/root/findfiles中

[root@som ~]# mkdir /root/findfiles				  #新建文件夹/root/findfiles
[root@som ~]# find /boot/ -name "vm*" -exec cp -r {} /root/findfiles/ \;	#查找并拷贝

总结

  • 掌握Linux常用命令
    • hostname、ifconfig、mkdir、touch、head、tail、alias
    • rm、rmdir、mv、cp、ln
  • 掌握管道、重定向
  • 掌握find命令使用
  • 掌握find命令高级使用

你可能感兴趣的:(#,运维篇,网络,运维)