先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前在阿里
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
sed [option] 'sed commond' filename
- 全名Stream Editor,流编辑器
- 适合用于对文本行内容进行处理
- sed commond为正则表达式
- sed commond中为三个/,分别为源内容,替换后的内容
sed替换标记
g # 表示行内全面替换。
p # 表示打印行。
w # 表示把行写入一个文件。
x # 表示互换模板块中的文本和缓冲区中的文本。
y # 表示把一个字符翻译为另外的字符(但是不用于正则表达式)
\1 # 子串匹配标记
& # 已匹配字符串标记
1. 替换解析
sed -i 's/^Str/String/' replace.java
2. 将末尾的.替换为;(转义.)
sed -i 's/\.$/\;/'
3. 全文将Jack替换为me(g是全部替换,不加只替换首个)
sed -i 's/Jack/me/g/ replace.java
4. 删除replace.java中的空格(d是删除)
sed -i '/^ \*$/d' replace.java
5. 删除包含Interger的行(d是删除)
sed -i '/Interger/d' replace.java
6.多命令一起执行
grep 'input' 123.txt | sed 's/\"//g; s/,/\n/g'
7. 替换后将数据保存在文中
grep 123.txt | sed -n 's/\"//gw test01.txt'
4、管道操作符|
- 可将指令连接起来,前一个指令的输出作为后一个指令的输入
find ~ |grep "test"
find ~ //查找当前用户所有文件
grep "test" //从文件中
使用管道注意的要点
- 只处理前一个命令正确输出,不处理错误输出。
- 右边命令必须能够接收标准输入流,否则传递过程中数据会被抛弃
- sed,awk,grep,cut,head,top,less,more,c,join,sort,split等
1.从email.log文件中查询包含error的行
grep 'error' email.log
2.获取到error的行,并取[]含有数字的
grep 'error' email.log | grep -o '\[0-9\]'
3. 并过滤掉含有当前进程
ps -ef|grep tomcat |grep -v
4. 替换后将数据保存在文中
grep 123.txt | sed -n 's/\"//gw test01.txt'
5. 将文件123.txt
,按,
切分,去除"
,按:
切分后,将第一列存到文件test01.txt
中
grep 'input' 123.txt | awk -F ',' '{print $2}' | sed 's/\"//g; s/,/\n/g' | awk -F ":" '{print $1 >> "test01.txt"}'
5、cut(数据裁剪)
- 从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段输出。
- 也可采用管道输入。
选项参数 | 功能 |
---|---|
-f | 列号,提取第几列 |
-d | 分隔符,按照指定分隔符分割列,默认是制表符“\t” |
文件截取
[root@VM-0-9-centos shell]# cut -d ":" -f 1 cut.txt
1
2
管道截取
[root@VM-0-9-centos shell]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
# 按:分割。截取第3列
[root@VM-0-9-centos shell]# echo $PATH | cut -d ":" -f 3
/usr/sbin
# 按:分割。截取第3列之后数据
[root@VM-0-9-centos shell]# echo $PATH | cut -d ":" -f 3-
/usr/sbin:/usr/bin:/root/bin
[root@VM-0-9-centos shell]#
四、系统日志位置
cat /etc/redhat-release 查看操作系统版本
/var/log/message 系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一
/var/log/message 系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一
/var/log/secure 与安全相关的日志信息
/var/log/maillog 与邮件相关的日志信息
/var/log/cron 与定时任务相关的日志信息
/var/log/spooler 与UUCP和news设备相关的日志信息
/var/log/boot.log 守护进程启动和停止相关的日志消息
查看某文件下的用户操作日志
到达操作的目录下,执行下面的程序:
cat .bash_history
五、创建与删除软连接
1、创建软连接
ln -s /usr/local/app /data
注意:创建软连接时,data目录后不加 / (加上后是查找其下一级目录);
2、删除软连接
rm -rf /data
注意:取消软连接最后没有/,rm -rf 软连接。加上/是删除文件夹;
六、压缩和解压缩
tar
tar
压缩(-c)
tar -cvf start.tar a.java b.java //将当前目录下a.java、b.java打包
tar -cvf start.tar ./* //将当前目录下的所欲文件打包压缩成haha.tar文件
tar -zcvf start.tar.gz a.java b.java //将当前目录下a.java、b.java打包
tar -zcvf start.tar.gz ./* //将当前目录下的所欲文件打包压缩成start.tar.gz文件
解压缩(-x)
tar -xvf start.tar //解压start.tar压缩包,到当前文件夹下;
tar -xvf start.tar -C usr/local //(C为大写,中间无空格)
//解压start.tar压缩包,到/usr/local目录下;
tar -zxvf start.tar.gz //解压start.tar.gz压缩包,到当前文件夹下;
tar -zxvf start.tar.gz -C usr/local //(C为大写,中间无空格)
//解压start.tar.gz压缩包,到/usr/local目录下;
解压缩tar.xz
文件
tar xf node-v12.18.1-linux-x64.tar.xz
unzip/zip
压缩(zip)
zip lib.zip tomcat.jar //将单个文件压缩(lib.zip)
zip -r lib.zip lib/ //将目录进行压缩(lib.zip)
zip -r lib.zip tomcat-embed.jar xml-aps.jar //将多个文件压缩为zip文件(lib.zip)
解压缩(unzip)
unzip file1.zip //解压一个zip格式压缩包
unzip -d /usr/app/com.lydms.english.zip //将`english.zip`包,解压到指定目录下`/usr/app/`
七、Linux下文件的详细信息
R:Read w:write x: execute执行
-rw-r--r-- 1 root root 34942 Jan 19 2018 bootstrap.jar
前三位代表当前用户对文件权限:可以读/可以写/不能执行
中间三位代表当前组的其他用户对当前文件的操作权限:可以读/不能写/不能执行
后三位其他用户对当前文件权限:可以读/不能写/不能执行
更改文件的权限
chmod u+x web.xml (---x------) 为文件拥有者(user)添加执行权限;
chmod g+x web.xml (------x---) 为文件拥有者所在组(group)添加执行权限;
chmod 111 web.xml (---x--x--x) 为所有用户分类,添加可执行权限;
chmod 222 web.xml (--w--w--w-) 为所有用户分类,添加可写入权限;
chmod 444 web.xml (-r--r--r--) 为所有用户分类,添加可读取权限;
八、常用的docker容器的命令:
1、下载镜像
Linux服务器下载安装包镜像命令
wget https://mirrors.huaweicloud.com/elasticsearch/7.8.0/elasticsearch-7.8.0-windows-x86_64.zip
https://mirrors.huaweicloud.com/
2、常用命令
#1、查看docker中下载好的镜像:
docker images
#2、查询需要的容器名称:
docker search mysql
#3、将需要的docker容器下载运行到本地(名称、端口号、msyql密码、ID):
docker run -di --name=first -p 3306:3306 -e MYSQL\_ROOT\_PASSWORD=root 26d26dsfsd31a
#4、查看运行的docker容器:
docker ps
#5、查看所有的docker容器(包括未运行的):
docker ps -a
#6、停止当前运行的docker容器:
docker stop first
#7、启动docker容器:
docker start first
#8、重启docker容器:
docker restart first
#9、删除docker容器:
docker rm first
九、运维常用命令
1、查看服务器端口号是否可用
查看服务器是否可用
ping 49.32.587.164
查看服务器指定端口是否可用
telnet 49.32.587.164 8093
这是我写过的一个Linux安装Telnet的文章。
https://blog.csdn.net/lydms/article/details/113698856
1、shutdown(关闭计算机)
shutdown是最常用也是最安全的关机和重启命令,它会在关机之前调用fsck检查磁盘,其中-h和-r是最常用的参数:
-h:停止系统服务并关机
-r: 停止系统服务后重启
案例:
shutdown -h now --立即关机
shutdown -h 10:53 --到10:53关机,如果该时间小于当前时间,则到隔天
shutdown -h +10 --10分钟后自动关机
shutdown -r now --立即重启
shutdown -r +30 'The System Will Reboot in 30 Mins' --30分钟后重启并并发送通知给其它在线用户
强制重启
reboot
2、查看处于各种连接状态数量(ESTABLISHED、CLOSE_WAIT、TIME_WAIT)
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
查看处于ESTABLISHED
状态连接
netstat -nt | awk '{if($NF=="ESTABLISHED"){wait[$5]++}}END{for(i in wait) print i,wait[i]}'
查看处于CLOSE_WAIT
状态连接
netstat -nt | awk '{if($NF=="CLOSE\_WAIT"){wait[$5]++}}END{for(i in wait) print i,wait[i]}'
查看处于TIME_WAIT
状态连接
netstat -nt | awk '{if($NF=="TIME\_WAIT"){wait[$5]++}}END{for(i in wait) print i,wait[i]}'
3、ping命令
对 www.lydms.com 发送 4 个 ping 包, 检查与其是否联通
ping -c 4 www.lydms.com
4、netstat 命令
netstat 命令用于显示各种网络相关信息,如网络连接, 路由表, 接口状态等等;
列出所有处于监听状态的tcp端口:
netstat -lt
查看所有的端口信息, 包括 PID 和进程名称
netstat -tulpn
5、查看当前端口号占用情况
1.用于查看某一端口的占用情况
lsof -i:8080
2.显示tcp,udp的端口和进程等相关情况
netstat -tunlp
3.指定端口号的进程情况
netstat -tunlp|grep 8080
4.查看PID进程信息
ps -aux |grep 28990
根据PID,查看JVM中各线程信息('0x9eb’为nid值)
jstack 2246|grep '0x9eb' -A 50
6、ps 命令
过滤得到当前系统中的 ssh 进程信息
ps aux | grep 'ssh'
7、管道命令
简单来说, Linux 中管道的作用是将上一个命令的输出作为下一个命令的输入, 像 pipe 一样将各个命令串联起来执行, 管道的操作符是 |
管道命令查看当前运行的程序中,名称为java的程序
ps -ef|grep java
查看/etc/passwd文件中的root内容
cat /etc/passwd | grep 'root'
查看当前系统的ip连接(Windows和Linux通用)
netstat -an
将sh test.sh任务放到后台,并将打印的日志输出到nohup.out
文件中,终端不再能够接收任何输入(标准输入)
nohup sh test.sh &
将sh test.sh任务放到后台,并将打印的日志输出到test.out
文件中,终端不再能够接收任何输入(标准输入)
nohup sh test.sh >> test.out &
将sh test.sh任务放到后台,并将打印的日志输出到nohup.out文件中,终端能够接收任何输入
nohup sh test.sh &
8、添加Host地址
打开配置文件
vim /etc/hosts
在打开的文件中添加
49.235.32.164 www.lydms.com
保存文件后,重启网络
/etc/init.d/network restart
重新加载成功:
十、yum常用命令
yum install iptables-services 下载并安装iptables
yum list 列出当前系统中安装的所有包
yum search package_name 在rpm仓库中搜寻软件包
yum update package_name.rpm 更新当前系统中所有安装的rpm包
yum update package_name 更新一个rpm包
yum remove package_name 删除一个rpm包
yum clean all 删除所有缓存的包和头文件
十一、其他命令
1、xargs
给其他命令传递参数的一个过滤器
补充说明
xargs 命令 是给其他命令传递参数的一个过滤器,也是组合多个命令的一个工具。它擅长将标准输入数据转换成命令行参数,xargs 能够处理管道或者 stdin 并将其转换成特定命令的命令参数。xargs 也可以将单行或多行文本输入转换为其他格式,例如多行变单行,单行变多行。xargs 的默认命令是 echo,空格是默认定界符。这意味着通过管道传递给 xargs 的输入将会包含换行和空白,不过通过 xargs 的处理,换行和空白将被空格取代。xargs 是构建单行命令的重要组件之一。
xargs 命令用法
xargs 用作替换工具,读取输入数据重新格式化后输出。
-n
:指定每行输出数量
cat test.txt | xargs -n3
a b c
d e f
g h i
j k l
m n o
-d
:按指定内容分隔文本
[root@VM-0-9-centos ~] echo "nameXnameXnameXname" | xargs -dX
name name name name
-l
:文本命令替换
xargs 的一个 选项 -I ,使用 -I 指定一个替换字符串{},这个字符串在 xargs 扩展时会被替换掉,当 -I 与 xargs 结合使用,每一个参数命令都会被执行一次:
ls *.jpg | xargs -n1 -I cp {} /data/images
-t
:将执行的命令,打印出来
-t echo{}
ls * |xargs -t -n1 -I {} cp -r {} /root/ddd/ echo{}
结合使用—指定X切分,并每行2个
[root@VM-0-9-centos ~] echo "nameXnameXnameXname" | xargs -dX -n2
name name
name name
查看历史使用命令
history
过滤与es
相关命令
history | grep es
查看占用资源
ps -au 占用的资源是从进程启动开始,计算的平均占用资源,比如cpu等
top 实时占用的资源;
查看当前目录所占存储
du -lh 查看当前文件下各文件夹占用存储空间
du -sh 查看当前文件夹所占存储空间
du --max-depth=<目录层数> 超过指定层数的目录后,予以忽略。
du --max-depth=1 只查看当前目录下文件占用的存储空间
管道命令:
根据项目查看进程,更加PID查看项目,以及项目路径
ps -ef 查看所有的进程
ps -ef | grep mysql 查看mysql相关的进程
通过进程PID查看所占用的端口号
netstat -nap |grep 进程ID(PID)
查看Linux下系统存储使用率
df -h 查看系统硬盘使用情况
杀死进程(根据PID)
kill -9 2630 进程pid
关闭防火墙
service iptables stop 临时关闭防火墙
chkconfig iptables off 防火墙开启不启动
service iptables status 查看防火墙状态
开机启动选项
msconfig 查看开机启动选项
chkconfig 查看开机启动服务列表
查看MySQL服务的程序的状态
service mysql start 开启MySQL
service mysql status 查看MySQL的状态
service mysql stop 关闭MySQL
查看系统变量
echo $USER 输出某个变量
set 输出所有变量
2、curl语法
GET请求
curl "http://www.wangchujiang.com"
POST请求
# 普通文本
curl -d'login=emma&password=123' -X POST https://wangchujiang.com/login
# Json格式
curl -l -H "Content-type: application/json" -X POST -d '{"phone":"13521389587","password":"test"}' http://wangchujiang.com/apis/users.json
详细可以看我写的另一篇:curl语法整理
https://blog.csdn.net/lydms/article/details/127655845
3、查询支持解析器
Centos默认的解析器是bash
cat /etc/shells
列表
/bin/sh
# Centos默认的解析器是bash
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh
指定解析器执行
脚本以#!/bin/bash
开头(指定解析器)
#!/bin/bash
echo "helloworld"
4、跨服务器文件复制
scp
:用于服务器之间文件复制
将本服务器/home/lydms/spark.tgz
文件复制到hadoop102
服务器的/home/lydms
,使用用户名为lydms
。
scp [本机文件所在位置] [目标服务器用户名] @ [服务器地址] : [目标服务器目录]
scp /home/lydms/spark.tgz lydms:hadoop102:/home/lydms
将源服务器hadoop102
下/home/lydms/spark.tgz
文件复制到本机/home/lydms
,源用户名为lydms
scp [目标服务器用户名] @ [服务器地址]:[目标服务器目录] [本机文件所在位置]
scp lydms:hadoop102:/home/lydms/spark.tgz /home/lydms
十二、Linux内核优化
打开配置文件
vim /etc/sysctl.conf
加载新的配置(需开启防火墙iptables,否则会报错)
sysctl -p
https://www.cnblogs.com/lldsn/p/10489593.html
十三、用户权限操作
1、用户操作
添加用户sum
:
useradd –d /usr/sum -m sum
关于useradd的某些参数:
-u: 指定 UID,这个 UID 必须是大于等于500,并没有其他用户占用的 UID
-g: 指定默认组,可以是 GID 或者 GROUPNAME,同样也必须真实存在
-G: 指定额外组
-c: 指定用户的注释信息
-d: 指定用户的家目录
已创建的用户sum
设置密码
passwd sum
用户添加root
权限
visudo
找到root
用户权限位置
添加与root
用户相同权限
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
eses ALL=(ALL) ALL
新建的用户在面显示
cat /etc/passwd
切换下刚才添加的用户
su sum
sum: x:1000:1000:: /usr/sum :/bin/bash
sum: x:0:1000:: /usr/sum :/bin/bash
回到root用户
exit
修改已有用户信息usermod
usermod 选项 用户名
删除用户文件夹
rm -rf /usr/sum
删除用户sum
userdel sum
2、添加组
添加用户组
groupadd groupname
修改用户组
使用者权限:管理员用户
groupmod 选项 用户组
groupmod -n new-usergroup usergroup
常用的选项有:
- -g GID 为用户组指定新的组标识号。
- -o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
- -n新用户组 将用户组的名字改为新名字
删除用户组
groupdel groupname
可以看到自己的分组和分组id
cat /etc/group
3、sudo用户权限操作
比如我们使用普通用户操作用户或者操作用户组、以及修改网卡配置文件的时候,需要切换到root用户才操作,此时我们可以使用sudo命令提高普通用户的操作权限,以达到操作目的
sudo
:控制用户对系统命令的使用权限,root允许的操作。
通过sudo可以提高普通用户的操作权限。
使用者权限:普通用户
使用root用户权限执行命令,操作
sudo -s
sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33
4、更换文件所有者
格式:
chown [-R] 所有者 文件或目录
chown [-R] 所有者:所属组 文件或目录
将kibana-8.3.3-linux-x86_64.tar.gz
所有者改为用户sum
chown -R sum /usr/sum/kibana-8.3.3-linux-x86_64.tar.gz
将kibana-8.3.3-linux-x86_64.tar.gz
所有者改为用户sum
、所有组改为sum
chown -R sum:sum /usr/sum/kibana-8.3.3-linux-x86_64.tar.gz
十四、TOP
实时占用的资源:
top
top命令执行结果分为两个区域:统计信息区和进程信息区
1、统计信息区
TOP:任务队列信息,与uptime命令执行结果相同.
15:33:39
:系统时间up 5:40
:主机已运行时间2 users
:用户连接数(不是用户数,who命令)load average: 1.09, 1.04, 0.98
:系统平均负载,统计最近1,5,15分钟的系统平均负载
Tasks:进程信息
123 total
:进程总数3 running
:正在运行的进程数120 sleeping
:睡眠的进程数0 stopped
:停止的进程数0 zombie
:僵尸进程数
%CPU(s):CPU信息(当有多个CPU时,这些内容可能会超过两行)
42.1 us
:用户空间所占CPU百分比2.0 sy
:内核空间占用CPU百分比0.0 ni
:用户进程空间内改变过优先级的进程占用CPU百分比49.2 id
:空闲CPU百分比0.0 wa
:等待输入输出的CPU时间百分比6.0 hi
:硬件CPU终端占用百分比0.7 si
:软中断占用百分比0.0 st
:虚拟机占用百分比
KiB Mem:内存信息(与第五行的信息类似与free命令类似)
3780.9 total
:物理内存总量727.4 free
:已使用的内存总量668.8 used
:空闲的内存总量(free + userd = total)2384.7 buff/cache
:用作内核缓存的内存量
KiB:swap信息
2048.0 total
:交换分区总量2.0 used
:已使用的交换分区总量2046.0 free
:空闲交换分区总量859.6 avail
:缓冲的交换区总量,内存中的内容被换出到交换区,然后又被换入到内存,但是使用过的交换区没有被覆盖,交换区的这些内容已存在于内存中的交换区的大小,相应的内存再次被换出时可不必再对交换区写入。
2、进程信息区
- PID:进程id
- USER:进程所有者的用户名
- PR:优先级
- NI:nice值。负值表示高优先级,正值表示低优先级
- RES:进程使用的、未被换出的物理内存的大小
- %CPU:上次更新到现在的CPU时间占用百分比
- %MEM:进程使用的物理内存百分比
- TIME+:进程所使用的CPU时间总计,单位1/100秒
- COMMAND:命令名/行
- PPID:父进程id
- RUSER:Real user name(看了好多,都是这样写,也不知道和user有什么区别,欢迎补充此处)
- UID:进程所有者的id
- VIRT:进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
- GROUP:进程所有者的组名
- TTY:启动进程的终端名。不是从终端启动的进程则显示为?
- NI:nice值。负值表示高优先级,正值表示低优先级
- P:最后使用的CPU,仅在多CPU环境下有意义
- TIME:进程使用的CPU时间总计,单位秒
- SWAP:进程使用的虚拟内存中被被换出的大小
- CODE:可执行代码占用的物理内存大小
- DATA:可执行代码以外的部分(数据段+栈)占用的物理内存大小
- SHR:共享内存大小
- nFLT:页面错误次数
- nDRT:最后一次写入到现在,被修改过的页面数
- S:进程状态(D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程)
- WCHAN:若该进程在睡眠,则显示睡眠中的系统函数名
- Flags:任务标志
十五、文件安装
1、文件下载(lrzsz)
下载文件
yum install -y lrzsz
上传文件
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
拟机占用百分比
KiB Mem:内存信息(与第五行的信息类似与free命令类似)
3780.9 total
:物理内存总量727.4 free
:已使用的内存总量668.8 used
:空闲的内存总量(free + userd = total)2384.7 buff/cache
:用作内核缓存的内存量
KiB:swap信息
2048.0 total
:交换分区总量2.0 used
:已使用的交换分区总量2046.0 free
:空闲交换分区总量859.6 avail
:缓冲的交换区总量,内存中的内容被换出到交换区,然后又被换入到内存,但是使用过的交换区没有被覆盖,交换区的这些内容已存在于内存中的交换区的大小,相应的内存再次被换出时可不必再对交换区写入。
2、进程信息区
- PID:进程id
- USER:进程所有者的用户名
- PR:优先级
- NI:nice值。负值表示高优先级,正值表示低优先级
- RES:进程使用的、未被换出的物理内存的大小
- %CPU:上次更新到现在的CPU时间占用百分比
- %MEM:进程使用的物理内存百分比
- TIME+:进程所使用的CPU时间总计,单位1/100秒
- COMMAND:命令名/行
- PPID:父进程id
- RUSER:Real user name(看了好多,都是这样写,也不知道和user有什么区别,欢迎补充此处)
- UID:进程所有者的id
- VIRT:进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
- GROUP:进程所有者的组名
- TTY:启动进程的终端名。不是从终端启动的进程则显示为?
- NI:nice值。负值表示高优先级,正值表示低优先级
- P:最后使用的CPU,仅在多CPU环境下有意义
- TIME:进程使用的CPU时间总计,单位秒
- SWAP:进程使用的虚拟内存中被被换出的大小
- CODE:可执行代码占用的物理内存大小
- DATA:可执行代码以外的部分(数据段+栈)占用的物理内存大小
- SHR:共享内存大小
- nFLT:页面错误次数
- nDRT:最后一次写入到现在,被修改过的页面数
- S:进程状态(D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程)
- WCHAN:若该进程在睡眠,则显示睡眠中的系统函数名
- Flags:任务标志
十五、文件安装
1、文件下载(lrzsz)
下载文件
yum install -y lrzsz
上传文件
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!