Linux常用基础命令(巨全)你想要的我都有❀

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
日志服务 SLS,月写入数据量 50GB 1个月
简介: Linux系统下,以.开头的都是隐藏文件Linux中..表示上一级目录,.表示当前目录长格式引导:-- 引导单词短格式引导:- 引导字母

@[toc]
Linux系统下,以.开头的都是隐藏文件
Linux中..表示上一级目录,.表示当前目录
长格式引导:-- 引导单词
短格式引导:- 引导字母

  • - 表示普通文件

可执行文件 绿色
压缩文件 红色
d 表示目录 蓝色
l 表示链接文件 浅蓝色
b 表示块设备文件 黄色
c 表示字符设备文件 黄色
s 表示套接字文件 紫色
p 表示管道文件 紫色

绝对路径:从根目录开始写的路径叫绝对路径
相对路径:从当前目录开始写的路径相对路径

❀ls命令

1.ls (list) 列出目录下的内容

--help 查看帮助信息列表
-a (all) 查看所有内容,包括隐藏文件
-h (--human-readable) 以人类可读方式显示
-l (--long) 以长格式显示文件信息
-d 查看目录本身
-S 由大到小排序
-r 由小到大排序(由旧到新)
-t 由新到旧

也可参考👉linux命令-ll之按时间、大小顺序排列显示👈
查看帮助命令:help man info

❀cd命令

cd 切换目录(后面跟路径“/”)
cd - 返回上一个工作目录
cd .. 返回上一级目录

❀pwd命令

pwd    打印工作目录
su -root    切换到管理员命令

❀date命令

date 查看系统时间和日期 (+%Y-%m-%d %H:%M:%S)
-d<字符串> 显示字符串所指的日期与时间。字符串前后必须加上双引号;
-s<字符串> 根据字符串来设置日期与时间。字符串前后必须加上双引号;

日期格式字符串列表

如果需要以指定的格式显示日期,可以使用“+”开头的字符串指定其格式

%H 小时(以00-23来表示)。
%I 小时(以01-12来表示)。
%K 小时(以0-23来表示)。
%l 小时(以0-12来表示)。
%M 分钟(以00-59来表示)。
%P AM或PM。
%r 时间(含时分秒,小时以12小时AM/PM来表示)。
%s 总秒数。起算时间为1970-01-01 00:00:00 UTC。
%S 秒(以本地的惯用法来表示)。
%T 时间(含时分秒,小时以24小时制来表示)。
%X 时间(以本地的惯用法来表示)。
%Z 市区。
%a 星期的缩写。
%A 星期的完整名称。
%b 月份英文名的缩写。
%B 月份的完整英文名称。
%c 日期与时间。只输入date指令也会显示同样的结果。
%d 日期(以01-31来表示)。
%D 日期(含年月日)。
%j 该年中的第几天。
%m 月份(以01-12来表示)。
%U 该年中的周数。
%w 该周的天数,0代表周日,1代表周一,异词类推。
%x 日期(以本地的惯用法来表示)。
%y 年份(以00-99来表示)。
%Y 年份(以四位数来表示)。
%n 在显示时,插入新的一行。
%t 在显示时,插入tab。
MM 月份(必要)
DD 日期(必要)
hh 小时(必要)
mm 分钟(必要)
ss 秒(选择性)

❀创建、删除文件和目录命令

touch 创建文件或者更新文件时间戳
stat 查看文件信息(stat后面加文件名)
mkdir 创建一个新的目录
-v(详细) 为每个创建的目录打印一条消息(在mkdir后面加-v和目录名)
-p (父母) 如果存在,就不会创建,如果不存在,就会创建父目录(例如:mkdir -pv dir1/dir2/dir3)
{1..100} 表示1到100
rm 删除文件
-r 删除目录(rm -r 目录名)
-f 忽略提示,直接强制删除

❀alias命令

alias 别名(例如:a=”rm -r“好比如rm -r)

alias 取消别名(unalias 别名)

设置永久可参考👉Linux设置永久别名alias的方法👈

❀复制、移动、重命名、查看(文件、目录)命令

mv 原路径 目标路径<br/>
mv 原文件名 要修改的文件名
cp 复制
-r 复制目录
* 匹配任意所有
匹配任意一个字符
cp【选项】 原路径 目标路径
cat 查看文件内容
-n 带行号
tac 查看倒过来的文件内容
nl 带行号显示文件内容,不显示空格行
more 分页(回车是一行,空格是一页,q退出)
less 可以上下查看内容
head .默认查看前十行
tail 默认看后十行
-n 指定查看几行
-f 持续观察查看
tail -f 文件名 【一般用来持续查看文件,比如查看日志或者是启动一个程序输出的结果】

简化:
tailf 文件名

在这里插入图片描述

❀find查找、wc统计命令

find 按条件查找文件

find 查找范围(默认是当前目录) 条件
-size 按大小查找(例如:find / -size +1M(查找大于1M))
-type 按类型查找(例如:find / -name ".cfg" -type f(查找名字是.cfg的和类型为f的管道文件) )
-name 按名字查找(例如:find / -name ".cfg"(查找名字是.cfg的文件))
-mtime +天数 按天数查找(例如:find /application/log/ -mtime +0 -type d (查找/application/log下一天前的日志,类型为目录))
管道 \ 将前一个命令的执行结果给后一个命令处理(例如:head -3 anaconda-ks.cfg tail -1(查找anaconda-ks.cfg文件的第三行))
删除系统中所有a.txt文件
rm -rf $(find / -name "a.txt")
find / -name "a.txt" -exec rm -rf {} \
find / -name "a.txt" |xargs rm -rf

删除/application/log/下的一天前的日志并设置为每周一删除,类型为目录
0 0 1 find /application/log/ -mtime +0 -type d | xargs rm -rf

wc 统计(后面直接跟文件名)
-l 统计行数
-w 统计单词
-c 统计字节
-m 统计字符

在这里插入图片描述

❀vi/vim命令

vi/vim 进入编辑模式

编辑模式::

i:在光标显示的地方直接编辑;

I:在光标显示的行首编辑;
a:在光标显示的后一个编辑;
A:在光标显示的行尾编辑;
o:在光标显示的下一行编辑;
O:在光标显示的上一行编辑;
s:删除光标所在的位置并进行编辑;
S:删除光标所在的行进行编辑;


编辑模式-->Esc键-->命令模式



命令模式:

跳转:
gg 跳转到文件第一行
G 跳转到文件最后一行
数字 gg 跳转到指定行
home或^ 跳转到行首
end或$ 跳转到行尾
w 每次跳过一个单词

删除或剪切:
dd 删除光标所在行
D 删除光标所在位置到行尾
数字 dd 删除光标所在行下指定的行数
dG 删除光标所在行到文件结束位置
x或delete 删除光标所在的字符

复制与粘贴:
yy 复制光标所在的一行
数字 yy 复制光标下指定的行
p 粘贴到光标的下一行
P 粘贴到光标的上一行

u 撤销
ctrl+r 恢复



命令模式 --> :/?-->末行模式


末行模式:

/ 查找
:w 保存(文件路径)另存为
:q 退出
:wq 保存并退出
:q! 强制退出
:w! 强制保存
:wq! 强制保存并退出
:r 文件路径 将另一个文件读入光标下一行
%s#old#new#g 替换
:%s/old/new/g 替换(加g是全部替换,old是原内容要换成new,new是要换成的内容 #代表分割; /也代表分割)
:set number /set nu 显示行号
:set nonumber /set nonu 取消显示行号
:set nohlsearch 取消高亮显示

可视模式:

ctrl+v 可视块模式
shift+v/V 可视行模式
v 可视模式

在这里插入图片描述

❀压缩与解压缩

gzip与gunzip

1-9 9最大 生成文件小,速度越慢
gunzip=gzip -d

压缩:gzip 原文件 文件名
解压缩:gunzip 原文件 文件名

bzip2与bunzip2

bunzip2=bzip2 -d

压缩:bzip2 原文件 文件名
解压缩:bunzip2 原文件 文件名

tar的压缩与解压缩

tar 制作或释放归档文件
-c create 创建
-v 显示详细信息
-j 掉用bzip2压缩格式
-z 掉用gzip压缩格式
-f 指定归档文件
-x 解包
-t 列出归档文件内容
-C 指定释放归档文件的路径
--exclude=“”指定排除不需要传输的文件模式
比如:tar -cvzf bash.tar.gz /dir1 --exclude="*.txt" 排除所有以.txt为后缀的文件不传输

一般常用的压缩与解压缩
压缩:tar cvf 原文件 文件名
解压缩:tar xvf 原文件 文件名

file(压缩包名)可以查看这个文件是否是压缩包和类型
在这里插入图片描述

❀grep sed awk命令以及正则表达式

grep:

语法:

grep 【选项】 '内容' 文件名

|grep | 以行为单位过滤 |

-i 不区分大小写
-v 取反
-w 以单词为单位进行过滤
-B 指定行数,过滤指定内容以及下几行
-A 指定行数,过滤指定内容以及上几行
-C 指定行数,过滤指定内容以及上下各几行
-o 只输出过滤的内容
-c 统计过滤的行数
-n 显示行号

正则表达式:

基础正则表达式 -->grep可以直接使用
$ 以...结尾
^ 以...开头
. 匹配任意一个字符
- 匹配前一个字符或子表达式任意次(例如:grep "g. d" a.txt(过滤a.txt文件中的以g开头以d结尾可以代表有任意多个字符或没有字符))
[A-Z] [a-z] [0-9] [A-Za-z0-9]
1 取反

扩展正则表达式 egrep =grep -E
{n,m} 匹配前一个字符或子表达式n到m次
{n, } 匹配前一个字符或子表达式最少n次
{ ,m} 匹配前一个字符或表达式最少m次
{n} 匹配前一个字符或子表达式n次

+ 匹配前一个字符或子表达式1次以上(*包括0+不包括,至少)
? 匹配前一个字符或子表达式0次或1次以上
| 或
() 分组(例如:(g|f)ood)

\ 转义,取消一个字符的特殊含义

想要查看更多的正则表达式就去👉正则表达式(全)👈

查找/root这层目录有多少个普通文件?
find ./ -maxdepth 1 -type f ! -name ".*" | wc -l | ll | grep -c "^_"

sed:

语法:

sed [选项] ‘[操作地址]sed内置操作’ 文件

常用选项
|sed| 流文件处理工具 |

-n 只输出处理的行
-i 修改文件内容,编辑文件
-e 指定多个sed内置操作,现在不常用,多个sed内置操作可以使用分号隔开
-r 支持扩展正则表达式

操作地址

2 代表处理文件的第2行
1,5 代表处理文件的第1到5行
1;5 代表处理文件的第1行和第5行
1~2 代表指定步长为2,处理的是1,3,5…行
2,~2 代表处理文件的第2行开始,到2的倍数行结束。(2,~2=2,4 ;4,~4=4,8行)
4,$ 代表处理文件第4行到最后一行
1,+2 代表处理文件的第1行到第1+2行,也就是1到3行

内置操作

p 打印
a 在指定行后追加数据
i 在指定行前插入行前
d 删除指定行
c 替换指定整行
s 替换指定字符,默认替换每行第一个字符
g 通常与s组合使用,替换全部指定字符
n 获取下一行
y 字符转换,类似于tr命令(正则不能使用)
r 将文件读入指定行后
w 将指定行另存为文件
q 结束sed操作
N 不会清空模式空间内的内容,将下一行追加到模式空间,两行数据以换行符

awk:

语法:

awk [选项] ‘BEGIN{command}匹配模式{command}END{command}’ 文件

内置操作
| | |

$0 文件的整行
&dollar;1~$n awk处理的列,以FS为分隔符
NF 查看一共有多少列
$NF 查看文件的最后一列
NR 表示处理的行数(一共有多少行) 外:指定输出第几行
FNR 表示处理当前文件的行数
FS 输入字段的分隔符,默认空格或制表符
RS 输入记录的分隔符,默认是换行
OFS 输出字段的分隔符,默认空格
ORS 输出行的分隔符,默认换行
FILENAME awk处理的文件名
PATH 文件路径
ARGC 命令行参数个数
ARGV 命令行参数数组
ENVIRON 获取Linux系统中的环境变量

which 文件名查找命令的绝对路径
在这里插入图片描述


❀制作模板机

👉制作模板机👈

#进入:
vim /etc/sysconfig/network-scripts/ifcfg-ens33
#1.网络配置  NAT
TYPE=Ethernet
BOOTPROTO=static
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.2.10
NETMASK=255.255.255.0
GATEWAY=192.168.2.1
DNS1=114.114.114.114


/etc/init.d/network restart 重启网络服务 
ip a  查看网络信息 

xshell连接慢如何解决:

进入vi /etc/ssh/sshd_config
再找到UseDNS 吧yes改成no,前面“#”符号也要删,保存退出<br/>
重启ssh服务:
systemctl restart sshd

防火墙与selinux的关闭及开启和永久生效 :

查看防火墙详情请看:👉Linux防火墙命令👈

systemctl stop firewalld 关闭防火墙服务
        start <br>

systemctl disable firewalld 禁止防火墙开机自启动

      enable <br>

firewall-cmd --state 查看防火墙状态
systemctl status firewalld

systemctl is-enabled firewalld
查看防火墙是否开机自启动

getenforce 查看selinux的状态
setenforce 设置selinux的状态
vi /etc/selinux/config
vi /etc/sysconfig/selinux
SELINUX=disabled
重启系统生效

挂载磁盘:

查看磁盘信息:
fdisk -l 查看

创建目录:
mkdir /media/cdrom
mount /dev/sr0 /media/cdrom 挂载磁盘

df -Th 挂在完查看挂载信息

配置本地yum仓库:

cd /etc/yum.repos.d/
mkdir bak
mv *.repo bak
yum源文件存在 /etc/yum.repos.d 中

创建一个文件(local.repo):
vi local.repo
[local]
name=local
baseurl=file:///media/cdrom
enabled=1
gpgcheck=0

配置完成之后

yum clean all 清除yum缓存
yum makecache 建立新的yum缓存
或者直接用:yum makecache fast 加载未加载的缓存
安装vim和man命令: yum -y install vim man

设置永久挂载:

进入fstab:

vim /etc/fstab
/dev/sr0 /media/cdrom iso9660 defaults 0 0
第一段:挂载的设备 (dev/sr0)
第二段:挂载的目录 (/media/cdrom)
第三段:文件系统类型 (iso9660)
第四段:挂载的参数 defaults默认参数 (defaults )
第五段:是否使用dump备份 0不备份 1备份 (0)
第六段:是否使用fsck检测 0不检测 (0)

注解:

1.系统中只有一块硬盘,sda,分区sda1,sda2 ;
2.根目录是整个系统目录的顶点,/mnt也在根目录下;
3.如果知道根目录对应的是哪个硬盘分区,可以判断出
a.txt存到哪个设备上;

mount /dev/sr0 /media/cdrom
mount /dev/sdb4 /mnt

扩展:格式化磁盘

#Cetnos6格式化磁盘
mkfd.ext4 -f /dev/[sda]
#Centos7格式化磁盘
mkfs.xfs -f /dev/[sda]


重启系统的命令:reboot、init 6、shutdown -r

在这里插入图片描述


❀软件包管理

rpm 红帽系列操作系统
rpm -q 包名 查看rpm包是否安装
rpm -qa 列出所有已安装的rpm包
rpm -qi 包名 查看rpm包的详细信息
rpm -qpi 完整包名 查看未安装rpm包的详细信息
rpm -ql 包名 查看rpm包生成的文件路径
rpm -ivh 完整包名 安装rpm包
rpm -Uch 完整包名 升级rpm包
rmp -v 包名 详细信息
rpm -h 包名 以#显示进度条
rpm -e 包名 卸载
在CenOs系统中,卸载gcc的软件包时,可以使用命令rpm -e gcc

使用rpm命令强制卸载软件包时要加选项 --nodeps

FHS文件系统标准
第一层:定义了跟目录下的目录存放相应的文件
第二层:/usr和/var目录的划分

yum 自动解决依赖安装rpm包
yum install 包名 安装
yum list 查看所有的rpm包
yum list installed 已经安装的rpm包
yum info 包名 查看软件包的信息
yum search 命令 查看命令属于哪个包
yum provides 命令 查看命令属于哪个包
yum history 查看yum命令的历史记录
yum remove 包名 卸载
yum update 包名 升级
yum grouplist 列出所有包组

部署nginx(使用源码包部署)

tar包(源码包)

1.解包
物理机向虚拟机传文件:
  (1.利用U盘,挂载
  (2.lrzsz包提供的命令
   rz 物理机-->虚拟机
   sz 虚拟机-->物理机
  (3.xftp 大文件
2.配置
  (1)sz先把nginx压缩包复制到虚拟机
  (2)解压nginx压缩包:tar xf nginx-1.6.0.tar.gz -C /usr/src/
  (3)切换到nginx目录下:cd /usr/src/nginx-1.6.0
  (4)./configure --prefix=/usr/local/nginx && make && make install
指定安装路径然后编译在安装
报错1:./configure: error: C compiler cc is not found
没有编译环境
解决:yum -y install gcc gcc-c++

报错2:./configure: error: the HTTP rewrite module requires the PCRE library. You can either disable the module by using --without-http_rewrite_module option, or install the PCRE library into the system, or build the PCRE library statically from the source with nginx by using --with-pcre= option.
缺少pcre-devel库
解决:yum -y install pcre-devel

问题3:./configure: error: the HTTP gzip module requires the zlib library. You can either disable the module by using --without-http_gzip_module option, or install the zlib library into the system, or build the zlib library statically from the source with nginx by using --with-zlib= option.
缺少zlib-devel
解决:yum -y install zlib-devel

echo $? 通过其返回值,判断上一条命令是否执行成功(0表示执行成功;非0 表示执行失败)

make 编译
make install 安装

在这里插入图片描述

❀用户、用户组管理

超级用户 root UID=0
普通用户 /bin/bash UID!=0
程序用户 /sbin/nologin

在Linux系统中创建用户后,会以目录 /etc/skel/ 为模板复制文件到用户家目录

/etc/passwd 存放的是用户信息
/etc/shadow 存放的是用户密码

root: x :0:0:root:/root:/bin/bash
第一段:用户名
第二段:密码占位符
第三段:UID
第四段:GID
第五段:描述信息
第六段:用户家目录
第七段:用户登录的shell

/bin/bash
/sbin/nologin

创建一个名为mysql用户,并禁止登录系统(统称:程序用户)
useradd -s /sbin/nologin mysql

用户管理:

新增用户语法:

useradd [选项] 用户名
useradd 新增用户
-u 指定UID
-g 指定GID,用户的主要组
-G 指定用户的附加
-s 指定登录shell,默认是/bin/bash
-M 不创建用户家目录
-m 创建用户家目录
-d 指定用户家目录 默认家目录/home/与用户同名

在创建用户时,默认会从/etc/skel目录下复制内容到用户家目录下

su 用户名 切换用户

su - 用户名 系统环境变化

ctrl+d或exit 退出登录

修改用户信息语法:

usermod [选项] 用户名
usermod 修改用户信息
-c 修改描述字段
-d 修改家目录位置
-g 修改gid
-u 修改用户的uid
-l 修改用户名
-s 修改登录的shell
-L 锁定用户
-U 解锁
passwd 修改或设置用户密码

passwd root 密码 更改root的密码

echo “123123”|passwd --stdin test 不交互设置命令,给test用户设置一个密码

passwd -l
passwd -u
passwd -s

删除用户语法:

userdel [选项] 用户名
userdel 删除用户
-r 删除用户时删除家目录

用户组管理:

groupadd 添加用户组
groupdel 删除用户组
gpasswd 设置用户组密码
-a 将用户添加到一个组中

举例:

gpasswd -a test root 将用户test加入到root组里
查看用户信息:
/etc/passwd 存放的是用户信息

查看用户密码信息:
/etc/shadow 存放的是用户密码

查看用户组信息:
cat /etc/gshadow

主要组
附加组

附加命令:

id 查看用户的id和组
users 查看当前登录的用户
groups 查看用户属于哪个组
whoami 查看当前登录的用户
who 查看用户登录信息
w 查看用户登录信息

在这里插入图片描述


❀文件权限管理

详情请看:👉文件权限管理--权限掩码👈


r读 w写 x执行

查看文件权限:
rw-r--r--
第一组用户权限
第二组用户组权限
第三组其他用户权限
chmod 修改文件权限
chmod [选项] “u/g/o/a+/-/=rwx”文件(u代表第一组uid,g代表第二组gid,o代表第三组其他用户权限,a代表全部(a会给每一组加一个))
r=4 w=2 x=1 -=0
文件的归属:
属于哪个用户 属主
属于哪个用户组 属组

语法:

chown [选项] 用户:用户组 文件名
-R 递归修改

/dir1/ a.txt b.txt c.txt
chown -R root:root /dir1

find ./ -maxdepth 1 -type f ! -name ".*" -exec chown xiaoming:xiaomimg
{ } \;
查找深度为1的名字、为.*结尾的文件再给他修改用户和用户组

权限掩码-->默认文件和目录的权限

umask 022

创建一个文件默认权限是644=666-022,目录时755=777-022

文件的ACL(访问控制列表)

getfacl 获取文件的ACL
setfacl 设置文件的ACL
setfacl -m 用户:权限 文件名 设置用户权限
-x 删除指定文件的ACL(setfacl -x 用户名 文件名)
-b 清空文件的ACL(setfacl -b 文件名)

默认情况,文件给定用户的ACL要考虑到ACL中的mask值

特殊权限:
rws/s rws/S rwt/T
4 2 1
大小写取决于执行位是否有执行权限

特殊属性:

lsattr 查看特殊属性
chattr 设置特殊属性
i 不能修改不能追加
a 只可以追加,不能修改 只有root用户可以设置

用法:

chattr -i 文件名
chattr +i 文件名

在这里插入图片描述

❀磁盘管理

详情查看:Linux磁盘管理

fdisk:

磁盘管理-->块设备文件 b开头-->/dev/
对于linux系统磁盘命名:
IDE接口的硬盘为 hda hdb
SAS,SATA,SCSI接口的硬盘 sda 分区sda1 sda2 sdb

主引导记录(MBR):位于磁盘的第一个扇区
521字节=446字节 引导程序

记录4个分区表,每个16字节,64字节
还有2个校验字节


fdisk 磁盘管理工具
-l 查看所有磁盘信息
n 创建新分区
d 删除分区
p 列出分区表
w 把分区表写入硬盘并退出
e 扩展分区

最常用的查看磁盘分区:fdisk -l

MBR中只可以划分4个主分区,或者时3个主分区+1个扩展分区
扩展分区后,可以划分逻辑分区

1.fdisk划分分区

2.创建文件系统 mkfs.xfs /dev/sdb1(划分)
  文件系统:组织和管理文件的
  FAT16 FAT32 exFAT u盘使用-->不支持单个超过4G
  NTFS -->windows使用
  ext4/ext3/ext2 -->centos6默认
  XFS -->centos7默认
  centos6和centos7的区别:默认系统不同

mkfs 创建文件系统
-f 强制覆盖


因为系统中主分区加扩展分区占用1-4的分区号,所以第一个逻辑分区为5
df 查看系统挂载信息
-T 显示文件系统类型
-h 以人类可读方式显示
-i 查看inode情况

常用的是:df -Th 查看挂载文件

gdisk:

gdisk -->划分容量超过2T磁盘分区 GPT 128个
parted

交换分区 swap

作用:当内存不够时,使用交换分区代替内存;
mkswap 创建交换分区
swapon 开启交换分区
    -s 查看系统中的交换分区
    -p 设置优先级
    -a 开启所有的交换分区
swapoff 关闭交换分区

查看内存:

free -m 查看内存
free 查看系统内存使用情况
  -m 以M为单位

查看文件、目录大小:

du 文件名 查看文件或目录占用磁盘大小
  -m -h 以人类可读方式显示
  -m -s 仅显示目录或文件的总计数值

LVM 逻辑卷管理:

作用:动态调整区分大小
缺点:在性能上有所降低

pv 物理卷 -->直接对磁盘操作
vg 卷组 -->将所有的物理卷组合
lv 逻辑卷 -->在卷组中划分出一定的空间

pvcreate 创建物理卷(pvcreate /dev/sdc1 /dev/sdd1)
vgcreate 创建卷组 (vgcreate 卷组名 /dev/sdc1 /dev/sdd1)
lvcreate 创建逻辑卷(lvcreate -L 10G -n lv0 /dev/vg0)【/dev/vg0卷组的路径】
-L 指定逻辑卷容量
-n 指定逻辑卷名字
..... .............................
pvdisplay 显示物理卷信息
vgdisplay 显示卷组信息
lvdisplay 显示逻辑卷信息
... ....
pvscan 扫描物理卷
vgscan 扫描卷组
lvscan 扫描逻辑卷
... ....
pvremove 删除物理卷
vgremove 删除卷组
lvremove 删除逻辑卷
... ....
pvchange 修改物理卷
vgchange 修改卷组
lvchange 修改逻辑卷
... ....
vgextend 扩展卷组
lvextend 扩展逻辑卷
vgreduce 缩容卷组
lvreduce 缩容逻辑卷

xfs_growfs 路径 刷新xfs文件系统
resize2fs 路径 刷新ext4文件系统


cache 缓存:

cache data LV 数据卷,用来缓存数据
cache metadata LV 元数据卷,用来缓存元数据
cache pool LV 缓存池,包含data+meta
cache LV 缓存卷,包含真时的LV卷+缓存池

SSD 固态硬盘
HDD 机械硬盘

lsblk 列出块设备信息

创建缓存数据 lvcreate -L 10G -n cache_data /dev/vg0 /dev/sde1

创建元数据 lvcreate -L 100M -n cache_meta /dev/vg0 /dev/sde1

创建缓存池 lvconvert --type cache-pool --poolmetadata vg0/cache_meta vg0/cache_data

把缓存池里的放到逻辑卷下: lvconvert --type cache --cachepool vg0/cacha_data vg0/lv0

创建一个新的文件系统:mkfs.xfs /dev/vg0/lv0
在跟目录下创建test
挂载根目录下的test:mount /dev/vg0/lv0 /test

snapshot 快照:

-s 快照
-L 值 要设置的大小
-n 名字 要写的名字

创建快照卷:lvcreate -L 2G -s -n lv_snapshot vg0/lv0
测试快照卷速度: dd if=/dev/sda of=/test/mbr.bak bs=512 count=1(dd测试,if源路径,of要复制到哪路径,bs一次复制多少M,count复制多少次)
    dd if=/dev/zero of=/test/mbr.bak bs=10M count=100(dd测试,if源路径,zero代表0,of要复制到哪路径,bs一次复制多少M,count复制多少次)
    <br>

在跟目录下创建/snapshot目录
挂载:mount -o nouuid /dev/vg0/lv_snapshot /snapshot/(uuid相同用-o nouuid)

UUID 设备的唯一标识:
blkid 查看磁盘的UUID
nmcli conn show 查看网卡的UUID


❀RAID 独立磁盘冗余阵列 数据安全性

硬RAID 软RAID

RAID 0 条带模式
优点:提高数据的读写速度
缺点:数据安全性低,一旦RAID中有磁盘损坏,RAID组不可用

RAID 1 镜像模式 需要2N快盘
优点:数据完全冗余(备份),安全性高(读效率相对提高)
缺点:磁盘利用率低,成本高(50%)(写性能有所降低)

RAID 5 分布式奇偶校验模式 至少使用少3块硬盘
优点:数据相对安全,允许有一块磁盘损坏(校验数据) 读性能相对有提升
缺点:如果两块盘损坏,RAID不可用,写性能相对较低(做校验数据)
使用率:"[(n-1)/n]*100"

RAID 10
RAID 50

软RAID实现通过mdadm

-C 创建一个新的RAID
-l 指定RAID级别
-n 指定使用磁盘的数量
-x 指定热备盘
-S 停止RAID设备
-D 输出指定RAID设备的详细信息

降级与重构

cat /proc/mdstat

在这里插入图片描述

❀linux系统启动流程

1.BIOS加电自检(BIOS基本输入输出系统)
2.MBR引导(MBR主引导)全称( Master Boot Record)
3.GRUB菜单(可以让你选择用哪个系统内核)
4.加载内核
5.初始化进程 init(切换系统运行的级别) systemd

uname(uname -s) 显示linux内核名称【Linux

|

-a 输出详细信息,可以查看版本号【Linux localhost.localdomain 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux】
-r 显示linux操作系统内核版本号【3.10.0-957.el7.x86_64】
-m 显示主机的硬件名【x86_64】

查看系统版本:cat /etc/redhat-release

CentOs 6默认的文件系统是ext4
CentOs 7默认的文件系统是xfs
CentOs 6内核版本使用的是2.6
CentOs 7内核版本使用的是3.10

linux系统的运行级别

0 关机
1 单用户(不要密码就可以进入,主要是用于做调试)
2 无网络的字符界面多用户
3 完整的字符界面多用户
4 未启用
5 图形界面
6 重启

centos 7
systemctl get-default 查看系统默认的运行级别
systemctl set-default 级别 设置系统图默认的运行级别
multi-user.target 字符3
graphical.target 图形5

破解root用户密码
CentOS 6:e2e 空格1 回车再按b passwd reboot
CentOS 7:

❀重定向

详细文章在:Linux中的重定向以及标准输入输出、混合输出和标准错误输出

标准输入:

在页面直接显示 << (cat <<eof)[> ss,>aa,> eof,ss,aa]
输入追加 cat <> /a.txt (> asa,> asfs,> afo,> efo)[asa,asfs,afo]
输入覆盖 cat < /a.txt

标准输出:
\> 重定向覆盖(echo "abcabcabc" > /a.txt )[abcabcabc]
\>> 重定向追加(echo "liuchenyang" >> /a.txt)[abcabcabc liuchenyang]

混合输出:
混合输出
ls &>>a.txt(把ls查到的目录下所有的内容追加的a.txt文件里)

标准错误:
标准错误
2> (LS 2> /a.txt)[-bash: LS: 未找到命令]

举例:

yum -y install bind bind-utils &> /dev/null && echo "ok" || echo "not ok"

(安装一个bind和bind-utils把安装时候输出的内容全部放到/dev/null,[/dev/null相当于一个回收站,输出到这里面就直接清空]然后如果安装成功就输出ok,安装失败就输出not ok)

❀周期性计划任务和任务调度

详情请看:Linux周期性计划任务和任务调度以及举例
一次性计划任务:at

启动:systemctl start atd

at 设置一次性计划任务
atq 查询系统中一次性任务
atrm 删除一次性计划任务

周期性计划任务:crond

crontab -e 进入执行命令的编辑模式
crontab -l 查看周期性计划任务
crontab -r 删除周期性计划任务

设置永久的周期性计划任务:vim /etc/crontab
进入vim /etc/crontab 编辑,保存退出即可;

重点:

字段 说明
取值为0~59的整数
取值为0~23的任意整数
取值为1~31的任意整数
取值为1~12的任意整数
取值为0~6的任意整数,0代表星期日

语法:

分 时 日 月 周 用户 要执行的命令
* root 命令

举例:

1.每周三清空一下/var/ftp目录
0 0 3 root rm -rf /var/ftp/*

2.每月的第一个周一凌晨2点30对/var/www/html/进行打包
30 2 1-7 * 1 root tar -cvzf backup.tar.gz /var/www/html

3.每月1日,重启一次httpd服务
0 0 1 root systemctl restart httpd

4.每一分钟删除一个文件
* root rm -rf /root/abc.txt

5.每两分钟删除一个目录
/2 * root rm -rf /appliaction/ceshi

6.每2周查找目录并删除
* /2 root find / -name test -type d | xargs rm -rf

补充:
uid 用户的唯一标识
gid 用户组的唯一标识
uuid 设备的唯一标识
pid 进程的唯一标识

任务调度:

&    将命令放入后台运行
jobs    查看后台任务
jobs -l    查看后台进程的pid
fg 序号    将后台任务调度到前台
ctrl+z    将前台任务暂停放到后台
bg 序号    将后台暂停的任务继续执行
ctrl+c    中断前台执行的任务

在这里插入图片描述

❀进程管理

详情请看:Linux进程管理

程序:存放在磁盘中的静态代码(文件)
进程:在内存中允许运行的程序,动态的状态
进程是资源调度最小的单位
线程:线程是存在在进程中的
线程(thread)是任务执行的最小单位

进程间资源隔离,线程间资源共用

ps命令:

ps 静态查看进程信息
ps aux 查看进程信息(a是all全部,u是用户,x是详细信息)
ps elf 详细查看进程
ps -o 指定内容输出
ps -o tid 查看线程
ps -u 指定用户

使用方法:

查看进程过滤出nginx的进程:
ps -ef | grep nginx

netstat命令:

netstat 查看网络连接情况
-a 查看所有链接
-p 显示pid和进程名
-u 显示UDP
-t 显示TCP
-n 以数字形式显示
-l 显示处于监听状态的连接

使用方法:

查看端口,并过滤出自己想找的端口
netstat -anput | grep 8099

top命令:

top 动态查看进程信息

uptime 查看top第一行

lscpu 查看cpu负载的核数

load average: 0.00, 0.01, 0.05
系统1分钟,5分钟,15分钟平均负载

%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
CPU使用情况

进程需要占用系统资源(cpu,内存,磁盘,网络,显卡)

CPU密集型
IO密集型

us 用户态CPU
sy 内核态CPU
ni 优先级
id 空闲的CPU
wa 等待输入输出设备的CPU
hi 硬中断
si 软中断
st 虚拟化占用CPU资源

KiB Mem : 995896 total, 487280 free, 121580 used, 387036 buff/cache

buff 写缓冲 解决空间问题
cache 读缓存 解决速率问题

renice优先级:
renice 调整运行进程的优先级
renice -n 优先级等级 pid 进程优先级命令/程序
只有root用户可以设置负值

nice 设置进程运行时的优先级

linux系统中进程状态:

R 运行中的进程
S 睡眠状态(可以中断)
D 不可中断的,通常发生在IO操作
Z 僵尸进程
T 表示停止状态
X 退出状态
W 正在换页
< 高优先级
N 低优先级
s 表示该进程下有子进程
l 多线程
+ 前台运行的进程

僵尸进程:

什么是僵尸进程:

子进程结束,父进程没有回收子进程

解决僵尸进程:

1.重新启动系统
2.杀死父进程,将僵尸进程变为孤儿进程,此时孤儿进程由系统中的systemd接管,会自动清理。


kill -9 pid 根据进程的pid强制杀死某个进程

父进程派生子进程

pstree 查看进程树

yum provides pstree 直接下载不了pstree,就可以利用这个命令找到pstree是哪个包

结束(杀死)进程:

kill PID 杀进程
killall 进程名 根据进程名杀进程
pkill 根据条件杀进程

在这里插入图片描述

kill -l 查看进程的所有进程
kill -1 HUP挂起进程
kill -2 INT中断进程(与ctrl+c以一样)
kill -3 QUIT退出
kill -9 KILL强制杀进程
kill -15 TERM终止进程
kill -18 CONT继续进程
kill -19 STOP暂停进程

常用的杀进程是:

kill -9 进程pid

pgrep命令:

pgrep 根据特定条件查进程
-l 根据进程名查进程的PID
-u 根据用户名或用户id查进程的pid

pidof 进程名 根据进程查进程号

在这里插入图片描述

❀用户提权

详情请看:👉Linux su命令 – 切换用户、用户提权👈

su 切换用户
sudo - 随用户更改环境变量

语法格式:

su [选项] [用户名]

常用参数:

-c或--command 执行完指定的指令后,即恢复原来的身份
-f或--fast 适用于csh与tsch,使shell不用去读取启动文件
-l或--login 改变身份时,也同时变更工作目录,以及HOME,SHELL,USER,logname,此外,也会变更PATH变量
-m,-p或--preserve-environment 变更身份时,不要变更环境变量
-s或--shell 指定要执行的shell
--help 显示帮助信息
--version 显示版本信息

参考实例:

切换到linuxcool用户,但环境变量仍然是root用户的:

[root@linuxcool ~]# su linuxcool

切换到linuxcool用户,并改变为linuxcool用户环境变量:

[root@linuxcool ~]# su - linuxcool

变更帐号为 root 并传入 -f 参数给新执行的 shell:

[root@linuxcool ~]# su root -f

用户提权:

visudo 编辑sudo配置文件
root 用户(用户不带%)
%wheel 用户组(组带%)

sudo -i 切换到root用户

❀文件系统-软连接、硬链接

详情请看:👉Linux文件系统ln-软连接、硬链接👈

ln命令是linux系统中一个非常重要命令,英文全称是“link”,即链接的意思,它的功能是为某一个文件在另外一个位置建立一个同步的链接。 一种是hard link,又称为硬链接;另一种是symbolic link,又称为符号链接。

通俗一点理解,可以把硬链接当成源文件的副本,他和源文件一样的大小,但是事实上却不占任何空间。符号链接可以理解为类似windows一样的快捷方式。

inode:文件元数据-->权限 归属 时间 类型·block位置
block:磁盘IO的最小单位 默认4K=8个扇区

一个文件占用一个inode,至少占用一个block

目录本身就是特殊的文件
目录的block存放的是目录下文件和目录的名字

硬链接与软链接(符号链接)
ln

ll命令查看结果,其中-rw-------1后面有个1就是硬链接数
硬链接是文件的另一个入口
软连接类似于windows的快捷方式

硬链接与软连接的区别:

1.硬链接的inode号相同,软连接inode不同
  diff 比较两个文件是否相同(返回信息是不同,不返回信息是相同)
  vimdiff 比较两个文件是否相同
2.删除或重命名源文件对硬链接没有影响,软连接不可用。
3.硬链接不能跨文件系统;软链接可以跨文件系统。
4.目录不能创建硬链接;目录可以创建软链接
5.创建硬链接是ln; 创建软连接是ln -s

语法格式:

ln [参数] [源文件或目录] [目标文件或目录]

常用参数:

-b 为每个已存在的目标文件创建备份文件
-d 此选项允许“root”用户建立目录的硬链接
-f 强制创建链接,即使目标文件已经存在
-n 把指向目录的符号链接视为一个普通文件
-i 交互模式,若目标文件已经存在,则提示用户确认进行覆盖
-s 对源文件建立符号链接,而非硬链接
-v 详细信息模式,输出指令的详细执行过程

参考实例:

为源文件file.txt创建硬链接file_1:

[root@linuxcool ~ ]# ln /root/dir/file.txt ./file_1

使用ln命令的“-s”参数来创建目录的符号链接,并使用ls命令来查看链接文件的详细信息:

[root@linuxcool ~]# ln -s dir file
[root@linuxcool ~]# ls -l
总用量 4
-rw-------. 1 root root 1138 3月 11 14:48 anaconda-ks.cfg
drwxr-xr-x. 2 root root 36 4月 3 08:47 test
lrwxrwxrwx. 1 root root 4 4月 3 08:54 file -> dir

使用ln命令的“-v”参数来输出命令的详细执行过程:

[root@linuxcool ~]# ln -v /root/dir/file.txt ./file_1
'./file_1' => '/root/dir/file.txt'

使用ln命令的“-b”命令来创建目标文件的备份文件,并使用ls命令来查看:

[root@linuxcool ~]# ln -b /root/dir/file.txt ./file_1
[root@linuxcool ~]# ls
anaconda-ks.cfg file_1 file_1~ dir

相关命令:

1.df -Th 查看磁盘空间
2.df -Thi 查看inode情况
inode耗尽引发的故障

1.删除不用的小文件
2.备份后,重新创建文件系统

tune2fs 文件路径 查看文件系统的信息
dumpe2fs 文件路径 查看文件系统的信息
在这里插入图片描述

❀日志管理

详情请看:👉Linux中的日志管理👈

日志:记录系统中相关的信息 系统日志 程序日志

/var/log 一般都存在这里面
/var/log/messages 系统日志

从CentOs6开始,日志由系统中的rsyslog服务管理
日志存放在/var/log目录下

相关命令:

dmesg 查看内核和硬件相关的日志

last 查看用户登录的记录

lastlog 查看用户最后一次登录的时间

lastb 记录用户登录失败的信息

logrotate 实现日志轮割

日志的级别(9个):

0 emerg 紧急(会导致主机系统不可用)
1 alert 警告(必须马上处理)
2 crit 严重(比较严重)
3 err 错误信息
4 warning 提醒(警告)
5 notice 注意
6 info 一般信息
7 debug 程序或系统的调试信息
8 none 空,不记录日志

参考实例:

在周期计划性任务里写(crontab -e)cp file1 file1-$(date +\%Y\%m\%d) && >
file1【在周期计划性任务中,实现把当前目录下的file1复制一份重新创建一个叫file1-时间(注意date里面的年月日..要加转义\)然后重定向清空file1】

在crontab中%是有特殊含义的,表示换的意思。如果要用的话,必须进行转义\%,如经常用的date
+%Y%m%d在crontab中是不会执行的,应该换成date +\%Y\%m\%d

syslog管理:

系统的日志由服务rsyslog管理
日志集中系统:

服务端 :


[root@nginx-1 ~]# vim /etc/rsyslog.conf 
 15 $ModLoad imudp
 16 $UDPServerRun 514

[root@nginx-1 ~]#systemctl restart rsyslog  重启服务

#先安装yum -y install net-tools配置网络要用的比如ifconfig
[root@nginx-1 ~]#netstat -anput|grep 514  

#查看是否开放514号端口的服务 

客户端:

#添加服务端信息
[root@nginx-2 ~]# vim /etc/rsyslog.conf
    90 *.* @192.168.2.11:514  
    * 所有的服务 . 表示以上级别 * 所有级别 
    @ 表示UDP @@ 表示TCP   服务端ip:端口 

#重启rsyslog服务
[root@nginx-2 ~]#systemctl restart rsyslog 

#测试时使用tail -f 观察服务端/var/log/messages日志的变化
[root@nginx-2 ~]#logger "123123"  产生一条日志测试 
[root@nginx-2 ~]#tailf /var/log/messages
. 记录包含该等级及以上级别的信息
.= 只记录当前等级的信息
! 除了该等级都记录

在这里插入图片描述

❀网络管理


ifconfig命令:

详情请看:👉Linux网络管理之ifconfig命令 – 显示或设置网络设备👈

ifconfig 查看或管理网络信息
ifconfig ens33 查看ens33信息
ifconfig ens33 192.168.2.100/24

语法格式:

ifconfig [参数]

常用参数:

add<地址> 设置网络设备IPv6的IP地址
del<地址> 删除网络设备IPv6的IP地址
down 关闭指定的网络设备
up 启动指定的网络设备
IP地址 指定网络设备的IP地址

参考实例:

显示网络设备信息:

[root@linuxcool ~]# ifconfig
eth0   Link encap:Ethernet HWaddr 00:50:56:0A:0B:0C       
       inet addr:192.168.0.3 Bcast:192.168.0.255 Mask:255.255.255.0
       inet6 addr: fe80::250:56ff:fe0a:b0c/64 Scope:Link     
       UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1      
       RX packets:172220 errors:0 dropped:0 overruns:0 frame:0      
       TX packets:132379 errors:0 dropped:0 overruns:0 carrier:0 
       collisions:0 txqueuelen:1000       
       RX bytes:87101880 (83.0 MiB) TX bytes:41576123 (39.6 MiB) 
       Interrupt:185 Base address:0x2024  
lo    Link encap:Local Loopback       
      inet addr:127.0.0.1 Mask:255.0.0.0      
      inet6 addr: ::1/128 Scope:Host      
      UP LOOPBACK RUNNING MTU:16436 Metric:1      
      RX packets:2022 errors:0 dropped:0 overruns:0 frame:0      
      TX packets:2022 errors:0 dropped:0 overruns:0 carrier:0   
      collisions:0 txqueuelen:0       
      RX bytes:2459063 (2.3 MiB) 
      TX bytes:2459063 (2.3 MiB)

启动关闭指定网卡:

[root@linuxcool ~]# ifconfig eth0 down
[root@linuxcool ~]# ifconfig eth0 up 

为网卡配置和删除IPv6地址:

[root@linuxcool ~]# ifconfig eth0 add 33ffe:3240:800:1005::2/64
[root@linuxcool ~]# ifconfig eth0 del 33ffe:3240:800:1005::2/64

用ifconfig修改MAC地址:

[root@linuxcool ~]# ifconfig eth0 down
[root@linuxcool ~]# ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE
[root@linuxcool ~]# ifconfig eth0 up
[root@linuxcool ~]# ifconfig eth1 hw ether 00:1D:1C:1D:1E 
[root@linuxcool ~]# ifconfig eth1 up

配置IP地址:

[root@linuxcool ~]# ifconfig eth0 192.168.1.56 
[root@linuxcool ~]# ifconfig eth0 192.168.1.56 netmask 255.255.255.0
[root@linuxcool ~]# ifconfig eth0 192.168.1.56 netmask 255.255.255.0 broadcast 192.168.1.255


ip命令:

详情请看:👉Linux网络管理之ip命令 – 显示与操作路由👈

ip 网络管理命令
ip a 查看网卡信息
ip l 查看网络连接情况

语法格式:

ip [参数]

常用参数:

-s 输出更详细的信息
-f 强制使用指定的协议族
-4 指定使用的网络层协议是IPv4协议
-6 指定使用的网络层协议是IPv6协议
-r 显示主机时,不使用IP地址,而使用主机的域名

参考实例:

用ip命令显示网络设备的运行状态:

[root@linuxcool ~]# ip link list

使用-s参数输出更详细的信息:

[root@linuxcool ~]# ip -s link list

显示核心路由表:

[root@linuxcool ~]# ip route list
[root@linuxcool ~]# ip route show

显示邻居路由表:

[root@linuxcool ~]# ip neigh list
[root@linuxcool ~]# ip neigh show


ss命令:

详情请看:👉Linux网络管理之ss命令– 显示活动套接字信息👈

ss 查看网络链接

语法格式:

ss [参数]

常用参数:

-n 不解析服务名称,已数字方式显示
-a 显示所有套接字
-l 显示处于监听状态的套接字
-o 显示计时器信息
-e 显示详细的套接字信息
-m 显示套接字的内存使用情况
-p 显示使用套接字的进程
-i 显示内部的TCP信息
-s 显示套接字使用概况
-4 仅显示ipv4的套接字
-6 仅显示ipv6的套接字
-0 显示PACKET套接字
-t 只显示TCP套接字
-u 只显示UDP套接字
-d 只显示DCCP套接字
-w 只显示RAW套接字
-x 只显示 Unix套接字
-D 将原始TCP套接字信息转储到文件

参考实例:<./font>

显示TCP套接字:

[root@linuxcool ~]# ss -t -a 
State     Recv-Q     Send-Q     Local Address:Port     Peer Address:Port   
LISTEN    0          128        0.0.0.0:ssh            0.0.0.0:*                                
ESTAB     0          52         192.168.60.19:ssh      192.168.30.21:59321               
LISTEN    0          128        *:websm                *:*               
LISTEN    0          128        [::]:ssh               [::]:* 

显示UDP套接字:

[root@linuxcool ~]# ss -u -a
State     Recv-Q     Send-Q     Local Address:Port     Peer Address:Port              
UNCONN    0          0          0.0.0.0:bootpc         0.0.0.0:*                 
UNCONN    0          0          127.0.0.1:323          0.0.0.0:*                 
UNCONN    0          0          [::1]:323              [::]:*  

显示套接字使用概况:

[root@linuxcool ~]# ss -s
Total: 185
TCP:   4 (estab 1, closed 0, orphaned 0, timewait 0)
Transport Total     IP        IPv6
RAW       1         0         1        
UDP       3         2         1        
TCP       4         2         2        
INET      8         4         4        
FRAG      0         0         0        


netstat命令:

详情请看:👉Linux网络管理之netstat命令– 显示网络状态👈

netstat 查看网络连接情况

语法格式:

netstat [参数]

常用参数:

-a 查看所有链接
-p 显示pid和进程名
-u 显示UDP
-t 显示TCP
-n 以数字形式显示
-l 显示处于监听状态的连接

参考实例:

显示详细的网络状况:

[root@linuxcool ~]# netstat -a

显示当前户籍UDP连接状况:

[root@linuxcool ~]# netstat -nu

显示UDP端口号的使用情况:

[root@linuxcool ~]# netstat -apu 
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address  Foreign Address  State  PID/Program name    
udp        0      0 0.0.0.0:bootpc          0.0.0.0:*      4000/dhclient       
udp        0      0 localhost:323           0.0.0.0:*      3725/chronyd        
udp6       0      0 localhost:323           [::]:*         3725/chronyd 

显示网卡列表:

[root@linuxcool ~]# netstat -i 
Kernel Interface table 
Iface MTU Met  RX-OK  RX-ERR  RX-DRP RX-OVR  TX-OK TX-ERR TX-DRP TX-OVR Flg 
eth0 1500   0  181864   0      0       0     141278   0     0     0    BMRU 
lo   16436  0   3362    0      0       0     3362     0     0     0    LRU

显示组播组的关系:

[root@linuxcool ~]# netstat -g 
IPv6/IPv4 Group Memberships Interface    
RefCnt Group 
--------------- ------ --------------------- 
lo        1   ALL-SYSTEMS.MCAST.NET 
eth0      1   ALL-SYSTEMS.MCAST.NET lo       1   ff02::1 
eth0      1   ff02::1:ff0a:b0c eth0          1   ff02::1


hostname命令:

详情请看:👉Linux网络管理之hostname命令 – 显示和设置系统的主机名👈

语法格式:

hostname [参数]

常用参数:

-a 显示主机别名
-d 显示DNS域名
-f 显示FQDN名称
-i 显示主机的ip地址
-s 显示短主机名称,在第一个点处截断
-y 显示NIS域名

参考实例:

查看主机名:

hostname        查看主机名

修改主机名:

hostname 主机名    修改主机名

#修改的主机名是临时生效的
永久生效:
1.修改配置文件
/etc/hostname
2.hostnamectl set-hostname 主机名

查看主机ip地址:

[root@linuxcool ~]# hostname -I    查看主机的ip地址

使用-a参数显示主机别名:

[root@linuxcool ~]# hostname -a

使用-i参数显示主机的ip地址:

[root@linuxcool ~]# hostname -i

使用-y参数显示NIS域名:

[root@linuxcool ~]# hostname -y


route命令:

route 路由管理命令

详情请看:👉Linux网络管理之route命令 – 显示并设置路由👈

语法格式:

route [参数]

常用参数:

-A 设置地址类型( 默认IPv4)
-C 打印linux核心的路由缓存
-v 详细信息模式
-n 不执行DNS反向查找,直接显示数字形式的ip地址
-e netstat格式显示路由表
-net 到一个网络的路由表
-host 到一个主机的路由表
Add 增加指定的路由记录
Del 删除指定的路由记录
Target 目的网络或目的主机
gw 设置默认网关
mss 设置TCP的最大区块长度(MSS),单位MB
window 指定通过路由表的TCP连接的TCP窗口大小
dev 路由记录所表示的网络接口

参考实例:

显示当前路由:

[root@linuxcool ~]# route
Kernel IP routing table
Destination     Gateway      Genmask        Flags Metric Ref      Use Iface
default        _gateway      0.0.0.0         UG    100    0        0 ens192
192.168.60.0    0.0.0.0      255.255.255.0   U     100    0        0 ens192

添加一条路由记录:

[root@linuxcool ~]# route add -net 192.168.60.11 netmask 192.168.60.1 dev ens192

[root@linuxcool ~]# route add -net 192.168.3.0 netmask 255.255.255.0 ens33

删除路由记录:

[root@linuxcool ~]#  route del -net 192.168.60.11 netmask 192.168.60.1 dev ens192 

[root@linuxcool ~]# route del -net 192.168.3.0 netmask 255.255.255.0 ens33

添加和删除默认网关:

[root@linuxcool ~]# route add default gw 192.168.60.1
[root@linuxcool ~]# route del default gw 192.168.60.1


tcpdump命令:

详情请看:👉Linux网络管理之tcpdump命令 – 监听网络流量👈

语法格式:

tcpdump [参数]

常用参数:

-a 尝试将网络和广播地址转换成名称
-c<数据包数目> 收到指定的数据包数目后,就停止进行倾倒操作
-d 把编译过的数据包编码转换成可阅读的格式,并倾倒到标准输出
-dd 把编译过的数据包编码转换成C语言的格式,并倾倒到标准输出
-ddd 把编译过的数据包编码转换成十进制数字的格式,并倾倒到标准输出
-e 在每列倾倒资料上显示连接层级的文件头
-f 用数字显示网际网络地址
-F<表达文件> 指定内含表达方式的文件
-i<网络界面> 使用指定的网络截面送出数据包
-l 使用标准输出列的缓冲区
-n 不把主机的网络地址转换成名字
-N 不列出域名
-O 不将数据包编码最佳化
-p 不让网络界面进入混杂模式
-q 快速输出,仅列出少数的传输协议信息
-r<数据包文件> 从指定的文件读取数据包数据
-s<数据包大小> 设置每个数据包的大小
-S 用绝对而非相对数值列出TCP关联数
-t 在每列倾倒资料上不显示时间戳记
-tt 在每列倾倒资料上显示未经格式化的时间戳记
-T<数据包类型> 强制将表达方式所指定的数据包转译成设置的数据包类型
-v 详细显示指令执行过程
-vv 更详细显示指令执行过程
-x 用十六进制字码列出数据包资料
-w<数据包文件> 把数据包数据写入指定的文件
-i 指定网卡
-nn 显示ip不显示主机名
port 指定端口

参考实例:

监视指定网络接口的数据包:

[root@linuxcool ~]# tcpdump -i eth1

监视指定主机的数据包:

[root@linuxcool ~]# tcpdump host linuxcool

截获主机192.168.10.10 和主机192.168.10.20 或192.168.10.30的通信:

[root@linuxcool ~]# tcpdump host 192.168.10.10 and \ (192.168.10.20 or 192.168.10.30 \)

抓取80端口的HTTP报文,以文本形式展示:

[root@linuxcool ~]# tcpdump -i any port 80 -A


traceroute命令:

详情请看:👉Linux网络管理之traceroute命令 – 追踪数据包在网络上的传输时的全部路径👈

traceroute 跟踪路由

语法格式:

traceroute [参数] [域名或者IP]

常用参数:

-d 使用Socket层级的排错功能
-f<存活数值> 设置第一个检测数据包的存活数值TTL的大小
-F 设置勿离断位
-g<网关> 设置来源路由网关,最多可设置8个
-i<网络界面> 使用指定的网络界面送出数据包
-I 使用ICMP回应取代UDP资料信息
-m<存活数值> 设置检测数据包的最大存活数值TTL的大小
-n 直接使用IP地址而非主机名称
-p<通信端口> 设置UDP传输协议的通信端口
-r 忽略普通的Routing Table,直接将数据包送到远端主机上
-s<来源地址> 设置本地主机送出数据包的IP地址
-t<服务类型> 设置检测数据包的TOS数值
-v 详细显示指令的执行过程
-w 设置等待远端主机回报的时间
-x 开启或关闭数据包的正确性检验

参考实例:
追踪本地数据包到www.linuxprobe.com的传输路径:

[root@linuxcool ~]# traceroute www.linuxprobe.com

跳数设置:

[root@linuxcool ~]# traceroute -m 7 www.linuxprobe.com

显示IP地址,不查主机名 :

[root@linuxcool ~]# traceroute -n www.linuxprobe.com

把探测包的个数设置为值4:

[root@linuxcool ~]# traceroute -q 4 www.linuxprobe.com

把对外发探测包的等待响应时间设置为3秒:

[root@linuxcool ~]# traceroute -w 3 www.linuxprobe.com


ifup 开启网卡-激活网络接口

详情请看:👉Linux网络管理之网卡、网络接口开关设置👈

ifup命令用于激活指定的网络接口。ifup命令会去读取/etc/sysconfig/network-scripts/目录下的相关网络接口的配置文件,并根据配置文件的内容来激活该网络接口。

注意:网络接口名称必须是/etc/sysconfig/network-scripts/目录配置文件中设置的才可以。如果使用ifconfig命令改变了网络接口后,ifup命令就不会识别了。因为ifup命令会对比当前网络的参数与/etc/sysconfig/network-scripts/中配置文件的内容是否相符。

语法格式:

ifup [网络接口]

参考实例:

激活网络接口eth0:

[root@linuxcool ~]# ifup eth0


ifdown 关闭网卡– 禁用网络接口

详情请看:👉Linux网络管理之网卡、网络接口开关设置👈

ifdown命令用于禁用指定的网络接口。该命令会去读取/etc/sysconfig/network-scripts/目录下的相关网络接口的配置文件,并根据配置文件的内容来关闭该网络接口。

注意:网络接口名称必须是/etc/sysconfig/network-scripts/目录配置文件中设置的才可以。如果使用ifconfig命令改变了网络接口后,ifdown命令就不会识别了。因为ifdown命令会对比当前网络的参数与/etc/sysconfig/network-scripts/中配置文件的内容是否相符。

语法格式:

ifdown [网络接口]

参考实例:

禁用网络接口eth0:

[root@linuxcool ~]# ifdown eth0


arp 地址解析协议

详情请看:👉Linux网络管理之arp命令 – 操纵系统arp缓存(地址解析协议)👈

语法格式:

arp [参数] [IP]

常用参数:

-a 显示arp缓存的所有条目,主机位可选参数
-H 指定arp指令使用的地址类型
-d 从arp缓存中删除指定主机的arp条目
-D 使用指定接口的硬件地址
-e 以linux的显示风格显示arp缓存中的条目
-i 指定要操作arp缓存的网络接口
-n 以数字方式显示arp缓存中的条目
-v 显示详细的arp缓存条目,包括缓存条目的统计信息
-f 设置主机的IP地址与MAC地址的静态映射

参考实例:

显示本机arp缓存中所有记录:

[root@linuxcool ~]# arp
Address       HWtype     HWaddress         Flags Mask          Iface    
gateway       ether      00:03:0f:81:6b:f1    C                ens160

以数字方式显示指定主机arp缓存条目:

[root@linuxcool ~]# arp -n 192.168.60.1
Address           HWtype  HWaddress           Flags Mask         Iface
192.168.60.1      ether   00:03:0f:81:6b:f1   C                  ens160

删除接口eth1上的192.168.60.1的arp表中的项:

[root@linuxcool ~]# arp -i eth1 -d 192.168.60.1

使用eth1的MAC地址回答eth0上的192.168.60.2的arp请求:

[root@linuxcool ~]# arp -i eth0 -Ds 192.168.60.2 eth1 pub


journalctl命令

详情请看:👉Linux—journalctl命令 – 查看日志👈

journalctl 查看所有日志

语法格式:

journalctl [参数]

常用参数:

-k 查看内核日志
-b 查看系统本次启动的日志
-u 查看指定服务的日志
-n 指定日志条数
-f 追踪日志
_PID 根据进程id查
-p 根据级别查看
- -since 查看指定时间的日志
- -disk-usage 查看当前日志占用磁盘的空间的总大小

参考实例:

查看所有日志:

[root@linuxcool ~]# journalctl 

查看内核日志:

[root@linuxcool ~]# journalctl -k 

查看系统本次启动的日志:

[root@linuxcool ~]# journalctl -b 

查看httpd的日志:

[root@linuxcool ~]# journalctl -u httpd

查看最近发生的20条日志:

[root@linuxcool ~]# journalctl -n 20

追踪日志:

[root@linuxcool ~]# journalctl -f


nmap 网络探测工具和安全和端口扫描器

详情请看:👉Linux—nmap、nc命令 –网络探测工具和安全和端口扫描器👈

语法格式:

nmap [参数]

常用参数:

--traceroute 扫描主机端口并跟踪路由
-p 扫描指定端口和端口范围
-sP 对目标主机进行ping扫描
-A 使用高级功能进行扫描
-PE 强制执行直接的ICMPping
-sV 探测服务版本信息
-d 增加调试信息地输出
-PU 发送udp ping
-ps 发送同步(SYN)报文

参考实例:

扫描主机并跟踪路由:

[root@linuxcool ~]# nmap --traceroute www.linuxcool.com

使用-p参数探测80、443端口:

[root@linuxcool ~]# nmap -p80,443 www.linuxcool.com

探测服务器的1-10000端口范围:

[root@linuxcool ~]# nmap -p1-10000 www.linuxcool.com

使用-A参数进行高级扫描:

[root@linuxcool ~]# nmap -A www.linuxcool.com


nc 端口扫描 – 设置路由

详情请看:👉Linux—nmap、nc命令 –网络探测工具和安全和端口扫描器👈

语法格式:

nc [参数]

常用参数:

-l 使用监听模式,管控传入的资料
-p 设置本地主机使用的通信端口
-s 设置本地主机送出数据包的IP地址
-u 使用UDP传输协议
-v 显示指令执行过程
-w 设置等待连线的时间
-z 使用0输入/输出模式,只在扫描通信端口时使用

参考实例:

扫描80端口:

[root@linuxcool ~]# nc -nvv 192.168.3.1 80

扫描UDP端口:

[root@linuxcool ~]# nc -u -z -w2 192.168.0.1 1-1000

扫描TCP端口:

[root@linuxcool ~]# nc -v -z -w2 192.168.0.3 1-100


history 查看历史记录

详情请看:👉Linux—history命令 –– 查看与操纵历史命令👈

语法格式:

history [参数] [目录]

常用参数:

-a 将当前shell会话的历史命令追加到命令历史文件中,命令历史文件是保存历史命令的配置文件
-c 清空当前历史命令列表
-d 删除历史命令列表中指定序号的命令
-n 从命令历史文件中读取本次Shell会话开始时没有读取的历史命令
-r 读取命令历史文件到当前的Shell历史命令内存缓冲区
-s 将指定的命令作为单独的条目加入命令历史内存缓冲区。在执行添加之前先删除命令历史内存缓冲区中最后一条命令
-w 把当前的shell历史命令内存缓冲区的内容写入命令历史文件
!num num值是执行history前面显示的行号,也称历史记录号;  直接执行选择的命令

参考实例:

查看所有的历史记录:

[root@linuxcool ~]# history

显示最近的10条命令:

[root@linuxcool ~]# history 10  

将本次登录的命令写入历史文件中:

[root@linuxcool ~]# history -w

将命令历史文件中的内容读入到目前shell的history记忆中 :

[root@linuxcool ~]# history -r  

将当前Shell会话的历史命令追加到命令历史文件中:

[root@linuxcool ~]# history -a  

清空当前历史命令列表:

[root@linuxcool ~]# history -c 

执行已经执行过又想执行的命令:

[root@linuxcool ~]# history
    1  ls
    2  vim a
    3  ls
    4  journalctl -d
    5  journalctl -b
[root@linuxcool ~]# !3
abc 123 lcy linux history ml ss 
dd laks 111 vi go sl sd fsg a


补充:

chage -d 0 用户名 首次登录设置密码

  1. a-z
目录
相关文章
|
7天前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
31 3
|
7天前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
26 2
|
28天前
|
运维 安全 Linux
Linux中传输文件文件夹的10个scp命令
【10月更文挑战第18天】本文详细介绍了10种利用scp命令在Linux系统中进行文件传输的方法,涵盖基础文件传输、使用密钥认证、复制整个目录、从远程主机复制文件、同时传输多个文件和目录、保持文件权限、跨多台远程主机传输、指定端口及显示传输进度等场景,旨在帮助用户在不同情况下高效安全地完成文件传输任务。
188 5
|
28天前
|
Linux
Linux系统之expr命令的基本使用
【10月更文挑战第18天】Linux系统之expr命令的基本使用
76 4
|
15天前
|
缓存 监控 Linux
|
18天前
|
Linux Shell 数据安全/隐私保护
|
19天前
|
域名解析 网络协议 安全
|
25天前
|
运维 监控 网络协议
|
26天前
|
监控 Linux Shell
|
7天前
|
安全 网络协议 Linux
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。通过掌握 ping 命令,读者可以轻松测试网络连通性、诊断网络问题并提升网络管理能力。
28 3