8. 一文快速学懂常用工具——Linux命令(上)

本章讲解知识点

    1. 引言
    1. 指令学习


  • 本专栏适合于软件开发刚入职的学生或人士,有一定的编程基础,帮助大家快速掌握工作中必会的工具和指令
  • 本专栏针对面试题答案进行了优化,尽量做到好记、言简意赅
  • 如专栏内容有错漏,欢迎在评论区指出或私聊我更改,一起学习,共同进步。
  • 相信大家都有着高尚的灵魂,请尊重我的知识产权,未经允许严禁各类机构和个人转载、传阅本专栏的内容。


1. 引言

不用豆芽多说,Linux 命令实在是太重要了,面试经常问,平时也常用,是程序员入职必须掌握的科目。我们前几篇文章都是有涉及到的,今天我们就来学一学吧!我们将列举工作中最常用的命令及其参数


2. 指令学习

2.1. 常用指令一览

我们先列出常用的命令来,然后我们再一一介绍。

命令功能
man帮助命令
ls命令查看当前文件与目录信息
cd命令用于切换当前目录
pwd命令用于显示工作目录。
mkdir命令mkdir 命令用于创建文件夹。
rm命令删除文件或文件夹命令
find 命令查找目录或文件
mv命令移动文件或文件夹命令
cp命令复制命令
cat命令查看文件内容;连接文件
more命令more 会以一页一页的显示文件内容
less命令less 与 more 类似,但使用 less 可以随意浏览文件
grep命令该命令常用于分析一行的信息,若当中有我们所需要的信息,就将该行显示出来,该命令通常与管道命令一起使用,用于对一些命令的输出进行筛选加工。
ps命令查看进程情况
top命令可以查看操作系统的信息,如进程、CPU占用率、内存信息等
kill命令向进程发送终止信号

2.2. 基础命令介绍

man 命令:帮助命令。当我们某个指令不会使用时或不熟悉参数,可以使用 man 命令+想要查找的命令。就会显示出关于该命令的详细内容。

man 得到的内容比用 help 更多更详细,而且 man 没有内建与外部命令的区分,因为 man 工具是显示系统手册页中的内容,也就是一本电子版的字典,这些内容大多数都是对命令的解释信息,还有一些相关的描述。通过查看系统文档中的 man 也可以得到程序的更多相关信息和 Linux 的更多特性。所以这里建议用 man 替代 help 命令。

示例:

$ man mvNAMEmv - move (rename) filesSYNOPSISmv [OPTION]... [-T] SOURCE DESTmv [OPTION]... SOURCE... DIRECTORYmv [OPTION]... -t DIRECTORY SOURCE...DESCRIPTIONRename SOURCE to DEST, or move SOURCE(s) to DIRECTORY.Mandatory arguments to long options are mandatory for short options too.--backup[=CONTROL]make a backup of each existing destination file-b     like --backup but does not accept an argument-f, --forcedo not prompt before overwriting-i, --interactiveprompt before overwrite-n, --no-clobberdo not overwrite an existing fileIf you specify more than one of -i, -f, -n, only the final one takes effect.

cd 命令。切换目录:cd [目录名]

示例:

cd /        //切换到根目录cd /usr     //切换到根目录下的usr目录cd ../      //切换到上一级目录 或者  cd ..cd ~        //切换到home目录

ls 命令:就是 list 的缩写,通过 ls 命令不仅可以查看 linux 文件夹包含的文件,而且可以查看文件权限(包括目录、文件夹、文件权限) 查看目录信息等等。

//常用参数搭配:  
ls -a 列出目录所有文件,包含以.开始的隐藏文件  
ls -A 列出除...的其它文件  
ls -r 反序排列  
ls -t 以文件修改时间排序  
ls -S 以文件大小排序  
ls -h 以人类易读大小显示  
ls -l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来,因此这里可以用 ll 来代替

实例:

//按易读方式按时间反序排序,并显示文件详细信息  
ls -lhrt  //按大小反序显示文件详细信息  
ls -lrS  //列出当前目录中所有以"t"开头的目录的详细内容  
ls -l t*  //列出文件绝对路径(不包含隐藏文件)  
ls | sed "s:^:`pwd`/:"  // 查看隐藏文件
ls -al//查看文件的详细时间
ll --full-time

mkdir 命令。mkdir 命令用于创建文件夹。

//参数  
-m: 对新建目录设置存取权限,也可以用 chmod 命令设置;  
-p: 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不在的目录,即一次可以建立多个目录。

实例:

//当前工作目录下创建名为douya的文件夹  
mkdir douya  //在 tmp目录下创建路径为test/t1/douya的目录  
mkdir -p /tmp/test/t1/douya  

touch 命令。touch 命令有两个功能:一是用于把已存在文件的时间标签更新为系统当前的时间(默认方式),它们的数据将原封不动地保留下来;二是用来创建新的空文件。最常用用法:touch fileA:如果 fileA 存在,使用 touch 指令可更改这个文件或目录的日期时间,包括存取时间和更改时间;如果 fileA 不存在, touch 指令会在当前目录下新建一个空白文件 fileA。

//参数  
-a: 只更改存取时间;  
-c: 不建立任何文档
-d: 适用指定日期更改文件

实例:

//创建不存在的文件
touch test1.txt test2.txt //如果test3不存在,则不创建文件
touch -c test3.txt //更新test1.txt的时间和test2.txt时间戳相同
touch test1.txt test2.txt //设定文件的时间戳,然后用stat命令查看
touch -t 201808080808 test1.txt//把所有的.txt文件修改到2013年10月13日的时间,然后用ll命令查看
touch -d "10/13/2013" *.txt

rm 命令。删除一个目录中的一个或多个文件或目录。

//参数  
-i 删除前逐一询问确认。  
-f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。  
-r 将目录及以下之档案亦逐一删除。  

实例:

//删除任何.log 文件,删除前逐一询问确认  
rm -i *.log  //删除douya子目录及子目录中所有档案删除,并且不用一一确认
rm -rf douya  //删除以 f 开头的文件  
rm f*  

mv 命令。移动文件或修改文件名,根据第二参数类型(如目录,则移动文件;如为文件则重命令该文件)。当第二个参数为目录时,第一个参数可以是多个以空格分隔的文件或目录,然后移动第一个参数指定的多个文件到第二个参数指定的目录中。

实例:

//将文件 test.log 重命名为 test1.txt  
mv test.log test1.txt  //将文件 log1.txt,log2.txt,log3.txt 移动到根的 test3 目录中  
mv log1.txt log2.txt log3.txt /test3  

cp 命令。将源文件复制至目标文件,或将多个源文件复制至目标目录。

//参数  
-i 提示  
-r 复制目录及目录内所有项目  
-a 复制的文件与原文件时间一样  

实例:

//复制 a.txt 到 test 目录下,保持原文件时间,如果原文件存在提示是否覆盖。  
cp -ai a.txt test  //将文件夹 dic 及其目录下所有文件,都复制到 / 下。  
cp -r dic /

find 命令:find 目录 参数 文件名称,查找目录下的某个目录或文件

实例:

find /usr/tmp -name 'a*'    //查找/usr/tmp目录下的所有以a开头的目录或文件

du 命令:du 用于查看目录下各文件和目录大小

//参数  
-a或-all 显示目录中个别文件的大小。
-c或--total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。
-h或--human-readable 以K,M,G为单位,提高信息的可读性。
-s或--summarize 仅显示总计。
-x或--one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。
--max-depth=<目录层数> 超过指定层数的目录后,予以忽略。

实例:

du ./      //查看当前目录下各文件和目录大小du -h ./    //以易读的方式查看当前目录下各文件和目录大小du -h --max-depth=2  //查看当前目录下各文件和目录大小,深度为2du -shx ./*      //查看当前目录下各文件和目录大小,并显示总计

df 命令:df 命令可显示所有文件系统对I节点和磁盘块的使用情况。

//参数  
-a:显示所有文件系统的磁盘使用情况,包括0块(block)的文件系统。
-h:以容易理解的格式输出文件系统大小,例如124KB、345MB、46GB。

实例:

df -h ./    //以易读的方式查看当前目录对应的文件系统大小

lsblk 命令:lsblk 指令主要用于展示块设备(block devices)的信息,包括磁盘、分区和挂载点等。

//参数  
-t:显示设备树形结构
-m:显示挂载点信息
-a或–all:显示所有设备,包括空设备。
-p或–paths:显示设备的完整路径。

实例:

lsblk /dev/sda    //显示指定设备的信息

pwd 命令。pwd 命令用于查看当前工作目录路径。

实例:

//查看当前路径  
pwd  //查看软链接的实际路径  
pwd -P  

du 命令。查看文件占用空间 du

实例:

// 查看当前目录下的文件占用空间
du ./// 以人类接受的方式,查看当前目录下的文件占用空间
du -h ./// 查看以下两级目录的占用空间
du -h --max-depth=28.0K    ./mtuser/template
17M    ./mtuser/swr-api-server-2021-8-11-01-36-19
124K    ./mtuser/create_vol_tool
3.9M    ./installer
1.3G    .// 以人类接受的方式,查看目录下所有的文件占用空间
du -ah ./// 查看当前目录占用空间
du -shx ./*

df 命令。查看目录占用空间

实例:

// 查看当前目录占用空间
df -h ./Filesystem      Size  Used Avail Use% Mounted on
/dev/sda5       4.9G  680M  4.0G  15% /var/log// 查看所有目录占用空间
df -ah

chmod 命令。修改文档权限

文件权限分为三个档次:文件所有者、文件所在组、其他组;x(可执行:1)、w(可写:2)、r(可读:4)

alt

每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,

例如当权限为: [-rwxrwx---] ,则分数是:

owner = rwx = 4+2+1 = 7

group = rwx = 4+2+1 = 7

others= — = 0+0+0 = 0

所以我们设定权限的变更时,该文件的权限数字就是770!变更权限的指令 chmod 的语法是这样的:

实例:

[root@www ~]# chmod [-R] xyz 文件或目录 
选项与参数: 
xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。 
-R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件都会变更# chmod 770 douya.c //即修改douya.c文件的权限为770

chown 命令。修改组别

实例:

chown -R mtuser:mtuser -R jwb

history 命令。查看历史命令

可以很方便的查看历史命令,我们修改大一点。参考文章:https://www.cnblogs.com/badboy200800/p/10389525.html

并且所有的命令存储在history的历史命令保存在~/.bash_history 文件中.

vim ~/.bash_history


diff 命令。对比两个文件的差异

实例:

diff text1 text2

passwd 命令。修改操作系统的密码

实例:

// 修改 mtuser 用户的密码
passwd mtuser

chage 命令。修改用户相关信息

实例:

// 查看 mtuser 用户的详细信息
chage -l mtuser// 修改 mtuser 用户的过期时间
chage -M 9999 mtuser

reboot 命令。重启操作系统

// 重启操作系统
reboot// 查看重启相关信息
last reboot

date 命令。查看或设置操作系统时间

// 查看操作系统时间
date// 将日期和时间设置为2021年6月25日上午11:15
date --set="20210625 11:15"// 以世界标准时间显示
date -u// 显示时区
date -R// 探测时钟源
ntpdate -d ip// 强制同步时钟源
ntpdate -u ip

md5sum 命令。获取文件的md5指纹(数字签名)


ln 命令。文件链接命令

// 硬链接
ln 源文件 硬链接文件// 软连接
ln -s 目标文件或文件夹 软连接名字

输出命令

// 覆盖写入
命令1 > 文件// 追加输出
命令1 >> 文件

2.3. 查看命令介绍

cat 命令

实例:

//第一个功能:显示文件内容  
cat filename  //第二个功能:创建文件  
cat > filename  //第三个功能:合并文件  
//参数  
-b 对非空输出行号  
-n 输出所有行号  
//实例:  
//把 log2012.log 的文件内容加上行号后输入 log2013.log 这个文件里  
cat -n log2012.log log2013.log  

more 命令。more 会以一页一页的显示,方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示。

//参数  
+n        从笫 n 行开始显示  
-n        定义屏幕大小为n行  
+/pattern 在每个档案显示前搜寻该字串(pattern),然后从该字串前两行之后开始显示   
-c        从顶部清屏,然后显示  
-d        提示“Press space to continue,’q’ to quit(按空格键继续,按q键退出)”,禁用响铃功能  
-l        忽略Ctrl+l(换页)字符  
-p        通过清除窗口而不是滚屏来对文件进行换页,与-c选项相似  
-s        把连续的多个空行显示为一行  
-u        把文件内容中的下画线去掉  
//常用操作命令  
Enter    向下 n 行,需要定义。默认为 1 行  
Ctrl+F   向下滚动一屏  
空格键   向下滚动一屏  
Ctrl+B   返回上一屏  
=        输出当前行的行号  
:f       输出文件名和当前行的行号  
V        调用vi编辑器  
!命令    调用Shell,并执行命令  
q        退出more  

实例:

//显示文件中从第3行起的内容  
more +3 text.txt  //在所列出文件目录详细信息,借助管道使每次显示 5 行  
ls -l | more -5  

less 命令。less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。

//参数  
-i  忽略搜索时的大小写  
-N  显示每行的行号  
-o  <文件名> 将less 输出的内容在指定文件中保存起来  
-s  显示连续空行为一行  
/字符串:向下搜索“字符串”的功能  
?字符串:向上搜索“字符串”的功能  
n:重复前一个搜索(与 /? 有关)  
N:反向重复前一个搜索(与 /? 有关)  
-x <数字> 将“tab”键显示为规定的数字空格  //常用操作  
b  向后翻一页  
d  向后翻半页  
h  显示帮助界面  
Q  退出less 命令  
u  向前滚动半页  
y  向前滚动一行  
空格键 滚动一行  
回车键 滚动一页  
[pagedown]: 向下翻动一页  
[pageup]:   向上翻动一页  

实例:

//ps 查看进程信息并通过 less 分页显示  
ps -aux | less -N  //查看多个文件,可以使用 n 查看下一个,使用 p 查看前一个。  
less 1.log 2.log  

tail 命令。用于持续查看文件的结尾内容

实例:

//查看text的后10行内容
tail -n 10 text//持续查看text的结尾内容
tail -f text 

head 命令。用于查看文件的开头内容

实例:

//查看text的前10行内容
head -n 10 text

stat 命令。以文字的格式来显示 inode 的内容。

实例:

# stat testfile                #输入命令File: `testfile'Size: 102             Blocks: 8          IO Block: 4096   regular file
Device: 807h/2055d      Inode: 1265161     Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2014-08-13 14:07:20.000000000 +0800
Modify: 2014-08-13 14:07:07.000000000 +0800
Change: 2014-08-13 14:07:07.000000000 +0800

2.4. 压缩命令介绍

tar -cvzf 打包压缩后的文件名 要打包的文件

z:调用gzip压缩命令进行压缩
c:打包文件
v:显示运行过程
f:指定文件名

示例

//打包并压缩/usr/tmp 下的所有文件 压缩后的压缩包指定名称为xxx.tar
tar -cvzf ab.tar aa.txt bb.txt 
或:tar -cvzf ab.tar  ./*

命令:tar [-xzvf] 压缩文件

/其中:x:代表解压
//将/usr/tmp 下的ab.tar解压到当前目录下
tar -xzvf ab.tar//将/usr/tmp 下的ab.tar解压到根目录/usr下, -C代表指定解压的位置
tar -xzvf ab.tar -C /usr

其他解压缩命令

unzip -o /path/  // 解压至文件夹下zip -qr  /path  // 将path文件夹打包gunzip filename.gz ./bzip2 -d FileName.tar.bz2

2.5. 网络命令介绍

ifconfig:查看网卡信息

命令:ifconfig 或 ifconfig eth0

ping:查看与某台机器的连接情况

命令:ping ip
// 随机ping
ping IP// 指定网卡或ip ping
ping -I eth1 IP

netstat -an:查看当前系统端口

命令:netstat -an搜索指定端口
命令:netstat -an | grep 8080netstat -anlp | grep 8001 | grep LISTENnetstat -anlp | grep 8001 | grep WAIT

ip addr 命令

实例:

// 查看eth2网卡
ip addr show eth2// 添加ip到网卡上
ip addr add 135.233.87.110/24 dev eth0// 删除ip
ip addr del 135.233.87.110/24 dev eth0

ip route 命令

实例:

// 添加路由,网关为135.233.89.21
ip route add 135.233.87.110 via 135.233.89.21 dev eth1// 删除路由
ip route del 135.233.87.110 via 135.233.89.21 dev eth1// 查看 135.233.87.110 的路由
ip route get 135.233.87.110

arp 命令

实例:

// arp表项查询
arp -n// 动态获取
arp -a

ifdown 和 ifup 命令

实例:

// down掉网卡eth0
ifdown eth0// 启动网卡eth0
ifup eth0

2.6. 进程相关命令介绍

ps 命令。ps(process status),用来查看当前运行的进程状态,一次性查看,如果需要动态连续结果使用 top

//进程的状态  
1. 运行(正在运行或在运行队列中等待)  
2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号)  
3. 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生)  
4. 僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放)  
5. 停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行)  //ps 工具标识进程的5种状态码:  
D 不可中断 uninterruptible sleep (usually IO)  
R 运行 runnable (on run queue)  
S 中断 sleeping  
T 停止 traced or stopped  
Z 僵死 a defunct (”zombie”) process  //命令参数:  
-A 显示所有进程  
a 显示所有进程  
-a 显示同一终端下所有进程  
c 显示进程真实名称  
e 显示环境变量  
f 显示进程间的关系  
r 显示当前终端运行的进程  
-aux 显示所有包含其它使用的进程 

实例:

//显示当前所有进程环境变量及进程间关系  
ps -ef  //显示当前所有进程  
ps -A  //与grep联用查找某进程  
ps -aux | grep apache  //找出与 cron 与 syslog 这两个服务有关的 PID 号码  
ps aux | grep '(cron|syslog)'  

kill 命令。发送指定的信号到相应进程。不指定信号将发送SIGTERM(15)终止指定进程。也就是 kill -15 ,被称为优雅的退出。当使用kill -15时,系统会发送一个SIGTERM的信号给对应的程序。当程序接收到该信号后,具体要如何处理是自己可以决定的。

这时候,应用程序可以选择:

1、立即停止程序

2、释放响应资源后停止程序

3、忽略该信号,继续执行程序

因为kill -15信号只是通知对应的进程要进行"安全、干净的退出",程序接到信号之后,退出前一般会进行一些"准备工作",如资源释放、临时文件清理等等,如果准备工作做完了,再进行程序的终止。但是,如果在"准备工作"进行过程中,遇到阻塞或者其他问题导致无法成功,那么应用程序可以选择忽略该终止信号。

如果任无法终止该程序可用"-KILL" 参数,其发送的信号为SIGKILL(9) ,将强制结束进程,和kill -15相比,kill -9就相对强硬一点,系统会发出SIGKILL信号,他要求接收到该信号的程序应该立即结束运行,不能被阻塞或者忽略。

所以,相比于kill -15命令,kill -9在执行时,应用程序是没有时间进行"准备工作"的,所以这通常会带来一些副作用,数据丢失或者终端无法恢复到正常状态等。

使用ps命令或者jobs 命令可以查看进程号。root用户将影响用户的进程,非root用户只能影响自己的进程。

//参数  
-l  信号,若果不加信号的编号参数,则使用“-l”参数会列出全部的信号名称  
-a  当处理当前进程时,不限制命令名和进程号的对应关系  
-p  指定kill 命令只打印相关进程的进程号,而不发送任何信号  
-s  指定发送信号  
-u  指定用户  

实例:

//先使用ps查找进程pro1,然后用kill杀掉  
kill -9 $(ps -ef | grep pro1)  //杀死进程12345  
kill 12345  //强制杀死进程  
kill -KILL 123456  //彻底杀死进程  
kill -9 123456  

而常见信号如下:

信号代号信号名称说 明
1SIGHUP该信号让进程立即关闭.然后重新读取配置文件之后重启
2SIGINT程序中止信号,用于中止前台进程。相当于输出 Ctrl+C 快捷键
8SIGFPE在发生致命的算术运算错误时发出。不仅包括浮点运算错误,还包括溢出及除数为 0 等其他所有的算术运算错误
9SIGKILL用来立即结束程序的运行。本信号不能被阻塞、处理和忽略。般用于强制中止进程
14SIGALRM时钟定时信号,计算的是实际的时间或时钟时间。alarm 函数使用该信号
15SIGTERM正常结束进程的信号,kill 命令的默认信号。如果进程已经发生了问题,那么这 个信号是无法正常中止进程的,这时我们才会尝试 SIGKILL 信号,也就是信号 9
17SIGCHLD子进程结束时, 父进程会收到这个信号。
18SIGCONT该信号可以让暂停的进程恢复执行。本信号不能被阻断
19SIGSTOP该信号可以暂停前台进程,相当于输入 Ctrl+Z 快捷键。本信号不能被阻断

其中最重要的就是 “1”、“9”、“15”、"17"这几个信号。


2.7. 资源性能监控指令

top 命令。显示当前系统正在执行的进程的相关信息,包括进程 ID、内存占用率、CPU 占用率等

//参数  
-c 显示完整的进程命令  
-s 保密模式  
-p <进程号> 指定进程显示  
-n <次数>循环显示次数  
img

前五行是当前系统情况整体的统计信息区。

1.第一行,任务队列信息,同 uptime 命令的执行结果,具体参数说明情况如下:

00:12:54 — 当前系统时间

up ?days, 4:49 — 系统已经运行了?天4小时49分钟(在这期间系统没有重启过)

21users — 当前有1个用户登录系统

load average: 0.06, 0.02, 0.00 — load average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。

2.第二行,Tasks — 任务(进程),具体信息说明如下:

系统现在共有256个进程,其中处于运行中的有1个,177个在休眠(sleep),stoped状态的有0个,zombie状态(僵尸)的有0个。

3.第三行,cpu状态信息,具体属性说明如下:

0.2%us — 用户空间占用CPU的百分比。

0.2% sy — 内核空间占用CPU的百分比。

0.0% ni — 改变过优先级的进程占用CPU的百分比

99.5% id — 空闲CPU百分比

0.0% wa — IO等待占用CPU的百分比

0.0% hi — 硬中断(Hardware IRQ)占用CPU的百分比

0.0% si — 软中断(Software Interrupts)占用CPU的百分比

4.第四行,内存状态,具体信息如下:

2017552 total — 物理内存总量

720188 used — 使用中的内存总量

197916 free — 空闲内存总量

1099448 cached — 缓存的总量

5.第五行,swap交换分区信息,具体信息说明如下:

998396 total — 交换区总量

989936 free — 空闲交换区总量

8460 used — 使用的交换区总量

1044136 cached — 缓冲的交换区总量


iostat 命令。用于监控系统的磁盘I/O活动情况,可以展示磁盘的读写速率、I/O等待时间、CPU使用率等信息。

//参数  
-c: 仅显示CPU利用率相关信息;
-d: 仅显示磁盘I/O相关信息;
-k: 显示输出的数据单位为KB/s而不是默认的字节/s;
-t: 在输出中显示时间戳(时间戳格式YYYY-MM-DD HH:MM:SS)。
-m:显示状态以兆字节每秒为单位;
-p:仅显示块设备和所有被使用的其他分区的状态;

实例:

//iostat 查看io信息  
iostat 
Linux 3.10.0-957.el7.x86_64 (jeven) 	07/05/2023 	_x86_64_	(2 CPU)avg-cpu:  %user   %nice %system %iowait  %steal   %idle0.91    0.01    3.43    0.04    0.00   95.62//每隔5秒,查看系统的状态信息,一共查看3次
iostat 5 3 //只查看磁盘的状态信息,展示磁盘的读写速率、I/O等待时间、CPU使用率等信息
iostat -d

iotop 命令。iotop 命令是一个用来监视磁盘 I/O 使用状况的 top 类工具,iotop 具有与 top 相似的 UI,其中包括 pid、user、I/O、进程等相关信息等


pidstat 命令。pidstat 命令是 sysstat 工具的一个命令,用来监控全部或者指定进程的 CPU、内存、线程、设备 IO 等系统资源的占用情况。

//参数  
-u 默认的参数,显示各个进程的CPU使用统计
-r 显示各个进程的内存使用统计
-d 显示各个进程的 IO 使用情况
-p 指定进程号
-w 显示每个进程的上下文切换情况
-t 显示选择任务的线程的统计信息外的额外信息

free 命令。free 命令可以显示 Linux 系统中空闲的、已用的物理内存及 swap 内存,及被内核使用的 buffer。

//参数  
-b	以Byte为单位显示内存使用情况
-k	以KB为单位显示内存使用情况
-m	以MB为单位显示内存使用情况
-g	以GB为单位显示内存使用情况
-h	以有好的方式显示内存的使用情况
-s 指定间隔秒数

实例:

//以MB为单位显示内存使用情况 
free -m//以2s为间隔来进行检测观察
free -s 2

2.8. Linux 服务命令

# 服务器管理命令systemctl status 服务名
# 启动服务systemctl start 服务名
# 重启服务systemctl restart 服务名
# 停止服务systemctl stop 服务名
# 禁止服务随linux启动。systemctl disable 服务名
# 设置服务随linux启动。systemctl enable 服务名

2.9. 远程拷贝命令

scp 本地的文件 root@远程linuxip:/远程linux的文件路径
scp -r 本地的目录 root@远程linuxip:/远程linux的文件路径

2.10. vim 命令

vim

1. 打开文件
vim douya.c2. 退出
:q
:q!  // 强制退出3. 编辑
按 Insert 键进入编辑模式, Esc 键退出编辑模式
:wq  // 保存并退出4. 查找
// 向下查找 qqq 关键词
/qqq// 向上查找 qqq 关键词
?qqq// 找到后找下一个
n// 找到后找前一个
N5. 跳转
// 跳转至末尾
GG// 跳转至最上方
gg6. 删除
// 删除
dd7. 选择
按 v 键进入选择,方向键 上下左右 就可以进入选择了。Ctrl + v 是选择块选择块后,我们再按大写 I ,插入内容,按 Esc 后就可以批量插入内容了,提升效率。按y复制
按p粘贴
按d删除8. 撤销
按 u 键就可以撤回上一次修改9. 复制粘连
yy 复制, p 粘连

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/177458.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Debug技巧-不启用前端访问后端

在日常开发中&#xff0c;我们经常会遇到各种问题需要调试&#xff0c;前后端都启动需要耗费一定的时间和内存&#xff0c;方便起见&#xff0c;可以直接用抓包数据访问后端&#xff0c;这里我们需要用到Postman或者ApiFox 抓包数据 在系统前台触发后端请求&#xff0c;在控制…

MyBatis入门

MyBatis是一款优秀的持久层框架&#xff0c;用于简化JDBC开发 持久层&#xff1a; 负责将数据保存到数据库的那一层代码 我们会将操作数据库的Java代码作为持久层&#xff0c;而MyBatis就是对jdbc代码进行了封装。 JavaEE三层架构&#xff1a;表现层、业务层、持久层 框架&…

mysql之索引

一、索引的概念 1、索引&#xff1a;是一个排序的列表&#xff0c;列表当中存储的是索引的值和包含之值的数据所在行的物理地址 2、主要作用&#xff1a;快速查找&#xff0c;加快查询速度 3、索引的缺点&#xff1a;索引也占用额外的磁盘 &#xff08;1&#xff09;innodb…

Stable Diffusion WebUI扩展openpose-editor如何使用

先上地址: GitHub - fkunn1326/openpose-editor: Openpose Editor for AUTOMATIC1111s stable-diffusion-webuiOpenpose Editor for AUTOMATIC1111s stable-diffusion-webui - GitHub - fkunn1326/openpose-editor: Openpose Editor for AUTOMATIC1111s stable-diffusion-webu…

[SpringCloud | Linux] CentOS7 部署 SpringCloud 微服务

目录 一、环境准备 1、工具准备 2、虚拟机环境 3、Docker 环境 二、项目准备 1、配置各个模块&#xff08;微服务&#xff09;的 Dockerfile 2、配置 docker-compose.yml 文件 3、Maven 打包 4、文件整合并传输 三、微服务部署 1、部署至 Docker 2、访问微服务 四…

nacos在linux中的安装、集群的配置、mysql生产配置

1.下载和安装 官方下载地址&#xff1a;https://github.com/alibaba/nacos/releases&#xff0c;根据自己需要的本版去下载就行 下载的是 .tar.gz 后缀的文件是linux版本的 使用tar命令解压&#xff0c;完成之后是一个nacos的文件夹 和windows下的文件夹目录是一样的 要启…

MICCAI2023论文多模态论文速读-1

文章目录 1.Attentive Deep Canonical Correlation Analysis for Diagnosing Alzheimer’s Disease Using Multimodal Imaging Genetics2.Bidirectional Mapping with Contrastive Learning on Multimodal Neuroimaging Data3.CoLa-Diff: Conditional Latent Diffusion Model f…

【算法练习Day35】01背包问题分割等和子集

​&#x1f4dd;个人主页&#xff1a;Sherry的成长之路 &#x1f3e0;学习社区&#xff1a;Sherry的成长之路&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;练题 &#x1f3af;长路漫漫浩浩&#xff0c;万事皆有期待 文章目录 01背包问题分割等和子集总结…

Proteus仿真--基于51单片机的按键控制LED仿真(仿真文件+程序)

本文主要介绍基于51单片机的按键控制LED仿真&#xff08;完整仿真源文件及代码见文末链接&#xff09; 本仿真文件主要涉及4个按键&#xff0c;其中&#xff1a; K1按键的逻辑是——逐个点亮 K2按键的逻辑是——上四个点亮 K3按键的逻辑是——下四个点亮 K4按键的逻辑是——关…

HarmonyOS鸿蒙原生应用开发设计- 元服务(原子化服务)图标

HarmonyOS设计文档中&#xff0c;为大家提供了独特的元服务图标&#xff0c;开发者可以根据需要直接引用。 开发者直接使用官方提供的元服务图标内容&#xff0c;既可以符合HarmonyOS原生应用的开发上架运营规范&#xff0c;又可以防止使用别人的元服务图标侵权意外情况等&…

Http代理与socks5代理有何区别?如何选择?(一)

了解SOCKS和HTTP代理之间的区别对于优化您的在线活动至关重要&#xff0c;无论您是技术娴熟的个人、现代互联网用户还是企业所有者。在使用代理IP时&#xff0c;您需要先了解这两种协议之间的不同。 一、了解HTTP代理 HTTP&#xff08;超文本传输协议&#xff09;代理专门设计…

【Java 进阶篇】Java中的响应输出字节数据

在Java Web应用程序开发中&#xff0c;处理响应是一个常见的任务。有时&#xff0c;您可能需要向客户端发送字节数据&#xff0c;而不仅仅是文本或HTML内容。这可以用于传输各种内容&#xff0c;如图像、文件、视频等。本文将详细介绍如何在Java中使用Response对象输出字节数据…

在 Typescript 项目中使用 cdn 加载的js插件没有类型声明

先上一段同事写得代码, 此处动态的插入了 MathJax 这个 js 插件, 我不知道为什么如此编写, //ts-ignore 此处不知道为什么如此调用, 只能使用 ts-ignore 忽略dynamicLoadingJs("//xxx.com/latex/MathJax.js?configTeX-AMS_HTML", () > {MathJax.Hub.Config({exte…

[Docker]四.Docker部署nodejs项目,部署Mysql,部署Redis,部署Mongodb

一.部署nodejs项目,映射端口,挂载数据卷 可以到https://hub.docker.com/去搜索node镜像,然后下载,也可以直接通过docker pull node下载镜像,然后用这个node镜像启动容器node,这样系统就集成了node服务了,在这里挂载www/node目录到容器中,并指定端口映射,运行nodejs程序,安装npm…

【机器学习合集】模型设计之残差网络 ->(个人学习记录笔记)

文章目录 模型设计之残差网络1. 什么是残差结构1.1 网络加深遇到的优化问题1.2 short connect技术 2. 残差网络及有效性理解2.1 残差网络 3. 残差网络的发展3.1 密集残差网络3.2 更宽的残差网络(wide resnet)3.3 分组残差网络3.4 Dual Path Network3.5 加权残差网络3.6 预激活残…

CSS3网页布局基础

CSS布局始于第2个版本&#xff0c;CSS 2.1把布局分为3种模型&#xff1a;常规流、浮动、绝对定位。CSS 3推出更多布局方案&#xff1a;多列布局、弹性盒、模板层、网格定位、网格层、浮动盒等。本章重点介绍CSS 2.1标准的3种布局模型&#xff0c;它们获得所有浏览器的全面、一致…

HTML表格

HTML表格&#xff1a; HTML表格是由<table>标签来定义。HTML表格式一种用于结构化数据的标记语言元素。每个表格均有若干行&#xff08;由<tr>B标签定义&#xff09;&#xff0c;每行被分割为做干列&#xff08;由<td>标签定义&#xff09;。表格可以包含标…

第22期 | GPTSecurity周报

GPTSecurity是一个涵盖了前沿学术研究和实践经验分享的社区&#xff0c;集成了生成预训练 Transformer&#xff08;GPT&#xff09;、人工智能生成内容&#xff08;AIGC&#xff09;以及大型语言模型&#xff08;LLM&#xff09;等安全领域应用的知识。在这里&#xff0c;您可以…

Java架构师知识产权与标准化

目录 1 导学2 知识产权概述3 保护期限4 知识产权人的确定4 侵权判断5 标准划分想学习架构师构建流程请跳转:Java架构师系统架构设计 1 导学 2 知识产权概述 知识产权是指公民、法人、非法人单位对自己的创造性智力成果和其他科技成果依法享有的民事权。是智力成果的创造人依…

Web渗透编程语言基础

Web渗透初学者JavaScript专栏汇总-CSDN博客 Web渗透Java初学者文章汇总-CSDN博客 一 Web渗透PHP语言基础 PHP 教程 | 菜鸟教程 (runoob.com) 一 PHP 语言的介绍 PHP是一种开源的服务器端脚本语言,它被广泛用于Web开发领域。PHP可以与HTML结合使用,创建动态网页。 PHP的特…