【Linux】学习笔记:(一)基本命令大全(常用)

目录


ps:为了避免选项杂乱繁多,以下文档中表格内的命令选项只展示常用的,不常用的命令选项未展示在其中,有需要请百度命令详细,望周知!



一、 Linux系统操作命令

1、 shutdown命令

  1. 立即关闭 常用

    • shutdown -h now
  2. 定时30min后关闭

    • shutdown -h 30
  3. 立即重启系统,并发出警告信息

    • shutdown -r now "system will be reboot now !"
  4. 定时在1:30分重启系统

    • shutdown -r 01:30
选项 选项含义
-k 不执行shutdown,只是发出警告信息给所有用户
-r 重新启动系统
-h 关闭系统
-c 取消运行的shutdown

2、 reboot、halt命令

  1. 立即重启 常用
    • reboot
  2. 立即关机 常用(调用 shutdwon -h 命令执行关机任务)
    • halt

3、 history命令

  1. 显示当前用户所有执行的命令记录

    • history
  2. 显示10条记录

    • history 10
  3. 清除命令历史记录

    • history -c

4、 命令排列:; 和 &&

  1. 使用排列命令 " ; "(两个命令都将会被执行)
    • ls /boot ; pwd
    • (不管第一条的ls命令是否正确,pwd命令都会执行)
  2. 使用排列命令 “ && ”(第一个命令出错,则停止执行第二条命令)
    • ls -a /nodir && pwd
    • (nodir文件不存在,ls命令报错,且pwd命令也不会执行)

5、 命令替换

[root@xxx ~]# pidof less
7552		//less进程号为7552
[root@xxx ~]# kill -9 7552		// 杀死less进程
[root@xxx ~]# kill -9 $(pidof less)		// 使用命令替换的方法:

6、 重定向

  1. 输出重定向
    • 将目录内容/boot保存到/root/mm文件中
      • ls /boot > /root/mm
    • 使用echo命令和输出重定向/root/abc文件并写入数据Hello(若文件不存在则创建文件,若文件已存在则写入的数据会覆盖源文件内容)
      • echo Hello > /root/abc
    • 追加重定向,将World追加到/root/abc文件内容的后边(同上原理,但不会覆盖源文件内容,而是将数据追加在原内容后边)
      • echo World >> /root/abc
  2. 输入重定向
    • cat < /boot/mm
  3. 错误重定向
    • 将某一条命令执行的出错信息输出到指定文件中
      • cat /boot/kk 2> /root/abc (/boot/kk文件或目录不存在)
      • cat /boot/kk 2>> /root/abc ( 错误追加重定向)
  4. 同时实现输出和错误重定向
    • ls /boot/123 &> /boot/kk (将/boot/123目录内容输出到指定文件中,若目录不存在则输出错误信息)

7、 cal:显示日历

  1. 显示本月日历
    • cal
  2. 显示公元2021年日历
    • cal 2021
  3. 显示今年9月份的日历
    • cal 9 2020

8、 uname:显示计算机系统信息

[wuyiz@centos83 root]$ uname
Linux
[wuyiz@centos83 root]$ uname -r		# 输出内核发行号
4.18.0-240.el8.x86_64
[wuyiz@centos83 root]$ uname -m		# 输出主机的硬件架构名称
x86_64
[wuyiz@centos83 root]$ uname -a		# 依次输出相关内容,具体使用 uname --hlep 命令查看-a介绍
Linux centos83.main 4.18.0-240.el8.x86_64 #1 SMP Fri Sep 25 19:48:47 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

9、 hostname:显示或修改计算机主机名

  1. 查看主机名
    • hostname
  2. 修改主机名,立即生效,建议重启(永久修改,持久化到对应文件etc/hostname中)
    • systemctl set-hostname xxx
  3. 修改主机名(临时修改,重启失效)
    • hostname xxx

10、 free:查看内存信息

  • free -s 3
    • 持续观察内存使用状况,此处间隔时间为3秒
  • free -h
    • 返回人类可读的内存单位
  • free -t
    • 显示内存总和列
[root@localdomain_5 ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:            31G         12G         12G         38M        6.2G         18G		# 内存的使用情况
Swap:           15G        256M         15G		# 交换空间的使用情况,即虚拟内存

[root@localdomain_5 ~]# free -ht
              total        used        free      shared  buff/cache   available
Mem:            15G         10G        560M        1.2G        4.3G        3.3G
Swap:            0B          0B          0B
Total:          15G         10G        560M
标题 标题含义
total 内存总数(total=used+free+buff/cache)
used 已经使用内存数
free 真正尚未被使用的内存数
shared 被共享使用的物理内存大小
buff/cache 被系统缓存实际使用掉的内存
available 可以给新应用程序分配的内存总数
free与available的区别
  • free命令详解(转载)

  • free 是真正尚未被使用的物理内存数量。

  • 至于 available 就比较有意思了,它是从应用程序的角度看到的可用内存数量。

  • Linux 内核为了提升磁盘操作的性能,会消耗一部分内存去缓存磁盘数据,就是我们介绍的 buffer 和 cache。所以对于内核来说,buffer
    和 cache 都属于已经被使用的内存。当应用程序需要内存时,如果没有足够的 free 内存可以用,内核就会从 buffer 和 cache
    中回收内存来满足应用程序的请求。所以从应用程序的角度来说,available = free + buffer + cache

  • 请注意,这只是一个很理想的计算方式,实际中的数据往往有较大的误差。

11、 du(英文全拼:disk usage):显示指定的目录或文件所占用的磁盘空间

  • 目录以及递归下的所有子目录的磁盘占用量(会递归计算每一层级的目录大小)
    • du -h /home
  • 只展示当前目录下的文件磁盘占用量
    • du -h -s /home/* (展示的目录会按照字母顺序排列)
    • du -h -d 1 /home 或 du -h --max-depth=1 /home (可以指定递归层级)
    • du -sh /home/* | sort -hr (展示后根据大小倒序排序)
选项 选项含义
-a 或 -all 显示目录中文件的大小
-s 只计算当前目录或指定目录的占用量,不显示其他子目录
-d或--max-depth= 只计算当前目录或指定目录的占用量,不显示其他子目录
-h 以KB、MB、GB为单位显示,提高可读性(使用人类可读的格式)
-l 显示选项中所指定符号连接的源文件大小,如果是硬链接,就多次计算其尺寸
-x 查看指定目录的大小,并只统计该目录下的文件和子目录,不统计其他文件系统的大小

12、 df(英文全拼:disk free):显示目前在 Linux 系统上的文件系统磁盘使用情况统计

[root@localdomain_5 ~]# df -h --total
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   50G   14G   37G   28% /
devtmpfs                  16G     0   16G    0% /dev
tmpfs                     16G     0   16G    0% /dev/shm
tmpfs                     16G   59M   16G    1% /run
tmpfs                     16G     0   16G    0% /sys/fs/cgroup
/dev/sda1               1014M  145M  870M   15% /boot
/dev/mapper/centos-home  213G  4.5G  208G    3% /home
tmpfs                    3.2G     0  3.2G    0% /run/user/0
total                    329G   19G  311G    6% -		# --total:包含一个额外的行total,显示总的每一列

13、 uptime:显示系统运行时间,用户在线数,服务器在过去的1分钟、5分钟、15分钟的系统平均负载值

[root@localdomain_5 ~]# uptime
 10:48:52 up 91 days, 19:57,  3 users,  load average: 3.34, 3.47, 3.50
[root@localdomain_5 ~]# uptime -p		# 美化运行时间的输出格式
up 13 weeks, 19 hours, 57 minutes
[root@localdomain_5 ~]# uptime -s		# 显示系统启动时间
2022-08-30 14:51:40

14、 who: 显示当前登录用户列表、登录时间、登录IP

[root@localdomain_5 ~]# who -Hu		# H表示显示表头,u表示显示用户信息,譬如空闲时间、用户进程号
名称   线路       时间           空闲  进程号 备注
root     pts/1        2022-11-30 09:29   .         32029 (218.xxx.xxx.182)
root     pts/2        2022-11-30 09:29 00:39       32054 (218.xxx.xxx.182)
root     pts/3        2022-11-30 10:04 00:34        4520 (218.xxx.xxx.182)

15、 w:相当于uptime和who两个命令的结合,区别是w命令可以显示每个用户正在执行的进程信息

[root@localdomain_5 ~]# w
 10:43:05 up 91 days, 19:51,  3 users,  load average: 3.86, 3.65, 3.56		# 这一行相当于uptime命令
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT		# 这里展示已登录用户的相关信息
root     pts/1    218.xxx.xxx.182  09:29    1.00s  0.14s  0.14s -bash     	
root     pts/2    218.xxx.xxx.182  09:29   42:09   0.03s  0.03s mysql -uroot -p 
root     pts/3    218.xxx.xxx.182  10:04   37:29   0.02s  0.02s top		# 可以看到每个用户正在执行的进程信息

16、 top:实时显示 process 的动态,包括cpu和内存使用率等数据

top(table of processes)是一个任务管理器
程序,它可运行于许多类Unix
操作系统上,它用于显示有关CPU和内存利用率的信息。

  • top 参数格式:top [-] [d delay] [q] [c] [S] [s] [i] [n] [b]
    • d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按下s键
    • q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行
    • c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称
    • S : 累积模式,会将己完成或消失的子进程 ( dead child process ) 的 CPU time 累积起来
    • s : 安全模式,将交谈式指令取消, 避免潜在的危机
    • i : 不显示任何闲置 (idle) 或无用 (zombie) 的进程
    • n : 更新的次数,完成后将会退出 top
    • b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内
交互式命令(按下键位直接触发) 命令描述(在top界面使用)
c 进程的完整命令参数展示切换
z 进入高亮模式,将显示红色终端字体
1 顶部的cpu展示数量切换
E 顶部的内存显示单位切换
e 进程列表的内存单位切换
t 顶部的cpu显示方式切换
m 顶部的内存显示方式切换
M 进程列表按照内存使用率从高到低展示
P 进程列表按照cpu使用率从高到低展示
N 进程列表按照pid大小顺序排列
n+数字 列表展示的数量
s+数字 设置刷新频率,默认3s刷新一次
R、H、V、J 排序、显示线程、树状图、列表内容自适应
q 退出
界面标题(顶部) 标题参数 作用描述
top 10:08:18 当前时间
up 11 days, 23:54 系统启动时长
load average: 1.93, 2.02, 2.06 过去1min、5min、15min的系统负载
task 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie 进程总数和正在运行的、休眠中的、停止的进程数和僵尸进程数。这实际上是上述 S(状态)列的总和
%Cpu(s) us 表示**用户空间**程序的cpu使用率(没有通过nice调度)
sy 表示**系统空间**的cpu使用率,主要是**内核**程序
ni 表示用户空间且通过nice调度过的程序的cpu使用率
id CPU 的**空闲时间**,这个值比较高时说明系统比较空闲
wa **等待时间**,或者消耗在等待 I/O 完成的时间
hi 消耗在硬件中断的时间,硬中断(Hardware IRQ)占用CPU的百分比
si 消耗在软件中断的时间,软中断(Software Interrupts)占用CPU的百分比
st 虚拟机管理程序从该虚拟机窃取的时间”
Mem/Swap total 总内存容量
free 空闲内存
used 已用内存
buff/cache (Mem) 内存的缓冲值
avail Mem (swap) 交换空间的缓存值
进程列表标题 功能描述
PID 进程 ID,一个用来定位进程的唯一标识符
USER 运行进程的用户
PR 任务的优先级
NI Nice 值,优先级的一个更好的表现形式
VIRT 虚拟内存的大小
RES 常驻内存大小(物理内存和虚拟内存的一部分)
SHR 共享内存大小(共享内存和虚拟内存的一部分)
S 进程状态,一般 I 代表空闲,R 代表运行,S 代表休眠,Z 代表僵尸进程,T 或 t 代表停止(还有其它更少见的选项)
%CPU 自从上次屏幕更新后的 CPU 使用率
%MEM 自从上次屏幕更新后的 RES 常驻内存使用率
TIME+ 自从程序启动后总的 CPU 使用时间
COMMAND 启动命令


二、 vi\vim编辑快捷键 常用

1、 插入模式(在界面直接按下命令)

命令 功能
i 从光标当前所在位置之前开始插入
o 在光标所在行的下方新开一行插入
O 在光标所在行的上方新开一行插入
s 删除光标位置的一个字符,然后进入插入模式
S 删除光标所在行,然后进入插入模式

2、 命令模式操作(请在非插入模式中使用,即按下ESC键返回命令模式)

类型 命令 功能
快速跳转 gg 跳转到开始位置
shift + g 跳转末尾位置
行数 + gg 跳转到指定行,例如,跳转到123行:123gg
删除 x 删除光标所在位置的字符
dd 删除光标所在行
复制和粘贴 yy 复制光标所在行
nyy 复制从光标所在行开始的n行,n代表数字
p 将复制的内容粘贴到光标所在位置
撤销和重复 u 撤销上一步的操作。按多次u可以执行多次撤销
U 或 ctrl + r 恢复之前的所有操作
. 再次执行之前的某一个操作(不包括撤回和恢复操作)
查找字符 /关键字 先按 / 键,在输入想要查找的字符,如果查找到的内容不是想要的,按n键显示下一个,N键显示上一个
?关键字 先按 ? 键,在输入想要查找的字符,如果查找到的内容不是想要的,按n键显示下一个,N键显示上一个
保存和退出 ZZ 保存退出
ZQ 不保存退出

3、 末行模式(在vi/vim编辑界面按esc进入)

命令 功能
:noh 取消查找字符操作的关键字高亮
:w 保存文件
:wq 保存文件并退出vi编辑器
:wq! 保存文件并强制退出vi编辑器
:x 保存文件并强制退出vi编辑器,其功能和:wq!一样
:q 退出vi编辑器
:q! 如果无法离开vi,强制退出vi编辑器


三、目录和文件管理命令 常用

1、 pwd:显示当前工作目录路径

[root@localdomain_5 .canceal]# pwd
/home/.canceal

2、 cd:更改路径

  1. 切换当前路径

    • cd /etc
  2. 切换到当前目录的父级目录

    • cd ..
  3. 切换到当前用户的主目录

    • cd ~

3、 ls:列出目录和文件信息

  1. 显示指定目录下所有子目录与文件的名称

    • ls /root
  2. 显示指定目录下所有子目录与文件的详细信息,包括权限、归属、链接数、大小等信息

    • ls -l /root 【可以简写为 ll /root】
  3. 显示指定目录下所有子目录与文件,包括隐藏文件

    • ll -a /root

4、 touch:创建空文件、更改时间

  1. 创建空文件

    • touch file1 file2
  2. 批量创建文件(如创建10个文件)

    • touch test{01..10}.sh
  3. 修改file1时间记录为9月17日19点30分

    • 时间格式 MMDDHHmm,若要加上年份则为YYYYMMDDHHmm
[root@host_1 ~]# touch file1 file2
[root@host_1 ~]# ll file*
-rw-r--r--. 1 root root 0 12月 28 20:55 file1
-rw-r--r--. 1 root root 0 12月 28 20:55 file2
[root@host_1 ~]# touch -c -t 09171930 file1
[root@host_1 ~]# ll file*
-rw-r--r--. 1 root root 0 9月  17 19:30 file1
-rw-r--r--. 1 root root 0 12月 28 20:55 file2
选项 选项含义
-c 假如目标文件不存在,则不会创建新的文件
-t 使用MMDDhhmm[.ss]日期格式修改文件时间

5、 mkdir:创建目录

  1. 创建目录
    • mkdir newdir
  2. 创建目录,并设置其权限为777
    • mkdir -m 777 newdir2
  3. 新建多层路径文件
    • mkdir -p dir_1/dir_2/dir_3
选项 选项含义
-m 对新创建的目录设置权限,不使用此项时,默认创建的目录权限为755
-v 每次创建新目录都显示信息
-p 一次创建多层目录。既创建路径中包含不存在的目录时,系统自动创建尚不存在的目录

6、 rmdir:删除空目录

  1. 删除一个为空的目录

    • rmdir newdir
  2. 删除当前目录的同时也删除为空的父目录

    • rmdir -p /root/newdir/newdir_2
选项 选项含义
-p 递归删除目录,当子目录被删除后如果父目录为空时,也一同删除
-v 输出处理的目录详情

7、 cp:复制文件和目录

  1. 将文件复制到/root目录下

    • cp /etc/abc.cfg /root
  2. 将文件复制到/root目录下,并改名

  • cp /etc/abc.cfg /root/dfge
  1. 将/boot目录以及该目录下所有文件和子目录复制到/root中
    • cp -r /boot /boot
选项 选项含义
-a 在复制目录时保留链接、文件属性,并递归地复制目录,等同于-dpr
-d 复制时保留链接
-f 在覆盖文件之前不会给出提示要求用户确认
-i 与-f相反,在覆盖文件之前给出提示要求用户确认
-p 除复制源文件地内容外,还把其修改时间和访问权限也复制到新文件中
-l 不做复制,只是链接文件
-r 如果源文件是一个目录,则递归复制该目录下所有的子目录和文件,目标必须为一个目录名

8、 mv:文件和目录改名、移动文件和目录路径

  1. 移动目录下所有后缀名为.png的文件到目标目录路径下

    • mv -f /root/pic/*.png /usr/local/share/pic
  2. 修改文件名

    • mv abc.png defg.png
  3. 修改目录名

    • mv /root/pic /root/mypic

9、 rm:删除文件或目录

  1. 删除文件

    • rm file4
  2. 连同./ab/a.txt文件和./ab目录一起删除

    • rm -rf /root/ab
选项 选项含义
-r 递归删除目录及其内容
-f 强制删除。忽略不存在的文件,不给出提示信息

10、 rename:用字符串替换的方式批量改变文件名

  • rename [原字符串] [目标字符串] [文件]
    • 原字符串:文件名中要被修改的字符
    • 目标字符串:将文件名中含有的原字符替换成目标字符串
    • 文件:指定要改变文件名的文件列表
常用参数 描述
-v 显示详细操作信息,打印出每个重命名操作的结果
-n 模拟运行,显示会被更改的文件
(有些版本不支持此参数,请使用rename -h查看具体支持参数)
[root@k8s-master test]# ll
总用量 0
-rw-r--r-- 1 root root 0 10月 24 12:43 file1.sh
-rw-r--r-- 1 root root 0 10月 24 12:43 file2.txt
-rw-r--r-- 1 root root 0 10月 24 12:43 file3.txt
-rw-r--r-- 1 root root 0 10月 24 12:43 file4.txt
[root@k8s-master test]# rename -v txt xml file*
`file2.txt' -> `file2.xml'
`file3.txt' -> `file3.xml'
`file4.txt' -> `file4.xml'
[root@k8s-master test]# ll
总用量 0
-rw-r--r-- 1 root root 0 10月 24 12:43 file1.sh
-rw-r--r-- 1 root root 0 10月 24 12:43 file2.xml
-rw-r--r-- 1 root root 0 10月 24 12:43 file3.xml
-rw-r--r-- 1 root root 0 10月 24 12:43 file4.xml

11、 tar、gzip:解压缩

常见的三种包格式区别:

  1. tar:打包归档tar命令,以.tar结尾(可以对文件或目录进行打包归档,不属于压缩功能)
  2. gz:压缩文件gzip命令,以.gz结尾(无法对目录执行压缩操作)
  3. tar.gz:日常使用中,可以先进行tar打包再进行gzip压缩,此时的文件以.tar.gz结尾
压缩格式 解压工具或命令
*.tar 用tar -xvf 解压
*.gz 用 gzip -d或者gunzip 解压
*.tar.gz 用 tar -zxzf 解压
*.bz2 用 bzip2 -d或者用bunzip2 解压
*.tar.bz2 用tar -jxvf 解压(需要安装bzip2插件)
*.Z 用 uncompress 解压
*.tar.Z 用tar -xZf 解压
*.rar 用 unrar e解压
*.zip 用 unzip 解压
*.gz:用于文件压缩,可批量压缩目录内文件,但不能压缩整个目录,压缩结束后原文件默认不保留
  • 压缩 gzip xxx

    • 压缩后保留源文件 : gzip -c xxx > xxx.gz
  • 解压 gzip -d xxx.gz

    • 解压后保留源文件 : gzip -d -c xxx.gz > xxx
参数 含义
-c 保留源文件的压缩,需要配合 > 符号
-d 对压缩文件进行解压缩
-r 递归压缩指定目录下以及子目录下的所有文件
注意:此选项只会将目录及其子目录中的文件进行压缩,并不会对目录进行压缩,批量压缩时可使用此命令
-v 对于每个压缩和解压缩的文件,显示相应的文件名和压缩比
-number number表示压缩等级,number为1 表示压缩等级最低,压缩比最差;number为9 压缩比最高。默认压缩比是 number为6
*.tar:针对文档打包归档的格式,没有压缩的效果
  • 打包 tar -cvf xxx.tar xxx

  • 解打包 tar -xvf xxx.tar -C /dir/xxx/

*.tar.gz:打包压缩、解压缩拆包一体化
  • 打包压缩 tar -zcvf xxx.tar.gz xxx

  • 解压缩拆包 tar -zxvf xxx.tar.gz

参数 含义
-v 显示打包过程
-f 切记,这个参数是最后一个参数,后面只能接接包名(必须要写),作用是指明要打包的目录或源文件的名称
-c 打包操作,可将多个文件或目录进行打包
-x 解打包操作
-C(大写) 解打包操作,指定解包存放的目录
-z 打包压缩和解压缩拆包 “.tar.gz” 格式选项


四、 文本内容操作命令

1、 cat:显示文本文件 常用

  1. 显示文件内容

    • cat /etc/service
  2. 也可以使用cat+重定向创建文件并写入内容

    • cat > abc.txt << EOF
    • EOF是自己约定的结束标志,也可以是任何其他的值
  3. 将文件加上编号后写入另一个文件

    • cat -n file1 > file2

2、 more:分页显示文本

  • 分页显示文件内容
    • more /home/123.txt
  • 从第30行开始显示内容,每页显示50行
    • more +30 -50 /home/123.txt
界面常用操作
空格键 向下滚动一屏
b 返回上一屏
= 输出当前行的行号
:f 输出文件名和当前行的行号
v 调用vi编辑器
回车键 向下显示一行
n+enter可以设置向下显示的行数(注意:会影响b、空格在滚动一屏时的行数)
q 退出

3、 less:回卷显示文本 (查看大文件常使用less) 常用

  • 分页显示内容
    • less /etc/service
  • 显示行号,同时显示剩余内容百分比
    • less -Nm /etc/service
  • ps查看进程信息并通过less分页显示
    • ps -ef | less
  • 查看命令历史使用记录并通过less分页显示
    • history | less
  • 浏览多个文件,可以输入:n:p切换文件,并且会记录每个文件的浏览位置
    • less -Nm 1.txt 2.txt
选项 选项含义
-N 显示每行的行号
-m 显示类似more命令的百分比
-f 强迫打开特殊文件,比如目录、二进制文件等
界面常用操作
空格键 向下滚动一屏
b 向上滚动一屏
d 向下滚动半屏
u 向上滚动半屏
v 调用vi编辑器
回车键 向下显示一行
n+enter可以设置本次向下显示的行数
g 移动到第一行
G 移动到最后一行
q 退出
less和more的操作以及区别
  • less和more都是通过【空格键】翻页,按【b】返回上一页,不同的是,less由于是回卷显示,也可以通过上下键进行控制
  • less不必读取整个文件,所以加载大文本文件时速度比more更快
  • less退出阅读后shell不会留下刚显示过的文本内容,而more退出后会在shell上留下刚现实的内容

4、 sort:对文件中的数据进行排序

  1. 排序显示的内容
    • sort file1.txt
  2. 逆序显示的内容
    • sort -r file1.txt

5、 tail:命令可用于查看文件的内容,有一个常用的参数 -f 常用于查阅正在改变的日志文件。 常用

  • 默认显示最新10行数据
    • tail out.log
  • 显示500行,并且追踪新产生的日志内容输出到显示屏
    • tail -f -n 500 out.lo

6、 egrep:强大的文本搜索命令

egrep 是 Linux 系统中的一个强大的文本搜索工具,用于在文件中查找匹配指定模式的行。它支持使用正则表达式进行高级模式匹配,提供了灵活和强大的文本搜索功能

选项 描述
-i 忽略大小写进行匹配
-v 反向匹配,输出不匹配模式的行
-n 显示匹配行的行号
-r 递归搜索,对目录下的所有文件进行匹配
-w 匹配整词,仅匹配单词的完整匹配
-c 统计匹配到的行数
-A 显示匹配行及其后面指定行数的内容
-B 显示匹配行及其前面指定行数的内容
-C 显示匹配行及其前后指定行数的内容
  • 在文件 example.txt 中查找包含字符串 "Hello" 的行
    • egrep 'Hello' example.txt
  • 忽略大小写进行匹配行
    • egrep -i 'hello' example.txt
  • 常见的查看Linux系统oom日志的方式
    • egrep -i "out of memory" /var/log/messages
    • egrep -i "killed process" /var/log/messages

五、 网络相关命令和操作

1、查看系统相关配置

  • centos版本

    • cat /etc/redhat-release
  • 查看host配置

    • cat /etc/hosts
  • 修改hostname,Inet4Address.getLocalHost().getHostAddress()方法获取对外ip地址

    • hostnamectl set-hostname xxx 设置hostname(需要重启系统)

    • reboot

  • 如何查看自己使用的是哪一个shell

    • echo $SHELL
  • 查看系统安装了哪些shell

    • cat /etc/shells
  • 切换bash:

    • chsh -s /bin/bash

2、设置网络

  • ip addr(查看绑定的网卡)

  • cd /etc/sysconfig/network-scripts

  • vi ifcfg-enp6s0f0

  • systemctl restart network

  • ifconfig (yum install -y net-tools)

  • nmcli (查看启动的网卡信息,NetworkManagement包的)

3、设置dns(yum无法访问镜像源的时候)

  • cat /etc/resolv.conf (查看dns信息)

  • 在网卡里添加 DNS1=114.114.114.114

  • systemctl restart network (重启网络即可,不要在那个查看dns的文件里修改,不然重启后会失效)

4、查询端口占用情况的

  • lsof -i:端口号 或者 netstat -lntup|grep 端口号 获取到占用端口的进程PID

  • ps -f -p 进程PID 查看进程的详情

5、 netstat: 显示当前登录用户列表、登录时间、登录IP

netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。
此命令需要先安装net-tools软件包方可以使用:yum install net-tools

  • netstat -lntup 列出监听的sockets
  • netstat -antup 列出包括监听的所有sockets
[root@localhost web]# netstat -lntup
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      66958/nginx: worker
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      14886/sshd
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      15110/master
tcp        0      0 :::22                   :::*                    LISTEN      14886/sshd
tcp        0      0 ::1:25                  :::*                    LISTEN      15110/master
option info
-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 直接使用IP地址,而不通过域名服务器(直接显示443端口号,而非https)
-l 显示监控中的服务器的Socket
-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示网络其他相关信息,例如uid等
-s 显示网络工作信息统计表,按各个协议进行统计
-c 持续列出网络状态(每隔一个固定时间,刷新命令的数据)
网络链接状态 描述
CLOSED 没有使用这个套接字[netstat 无法显示closed状态]
LISTEN 套接字正在监听连接[调用listen后]
SYN_SENT 套接字正在试图主动建立连接[发送SYN后还没有收到ACK]
SYN_RECEIVED 正在处于连接的初始同步状态[收到对方的SYN,但还没收到自己发过去的SYN的ACK]
ESTABLISHED 连接已建立
CLOSE_WAIT 远程套接字已经关闭:正在等待关闭这个套接字[被动关闭的一方收到FIN]
FIN_WAIT_1 套接字已关闭,正在关闭连接[发送FIN,没有收到ACK也没有收到FIN]
CLOSING 套接字已关闭,远程套接字正在关闭,暂时挂起关闭确认[在FIN_WAIT_1状态下收到被动方的FIN]
LAST_ACK 远程套接字已关闭,正在等待本地套接字的关闭确认[被动方在CLOSE_WAIT状态下发送FIN]
FIN_WAIT_2 套接字已关闭,正在等待远程套接字关闭[在FIN_WAIT_1状态下收到发过去FIN对应的ACK]
TIME_WAIT 这个套接字已经关闭,正在等待远程套接字的关闭传送[FIN、ACK、FIN、ACK都完毕,这是主动方的最后一个状态,在过了2MSL时间后变为CLOSED状态]

6、 lsof:常用于查找进程打开了哪些文件以及与打开文件相关联的内容

lsof ( list opened files )负责列出系统中已经打开的文件,包括普通文件,目录,块特殊文件,字符特殊文件,正在执行的文本引用,库,流或网络文件(例如:网络套接字,NFS文件或UNIX域套接字)

[root@centos ~]# lsof -n -i:80
COMMAND   PID  USER   FD   TYPE    DEVICE SIZE/OFF NODE NAME
nginx   17394 nginx    6u  IPv4 712050668      0t0  TCP *:http (LISTEN)
nginx   17395 nginx    6u  IPv4 712050668      0t0  TCP *:http (LISTEN)
nginx   17396 nginx    6u  IPv4 712050668      0t0  TCP *:http (LISTEN)
nginx   17397 nginx    6u  IPv4 712050668      0t0  TCP *:http (LISTEN)
nginx   17398 nginx    6u  IPv4 712050668      0t0  TCP *:http (LISTEN)
posted @ 2020-12-28 16:50  中国制造  阅读(407)  评论(0编辑  收藏  举报