【 Linux命令行与Shell脚本编程】第四章 进程管理 ,磁盘统计信息,挂载新磁盘,数据排序,数据归档

news2024/11/19 4:40:07

Linux命令行与Shell脚本编程

第四章 更多命令
进程管理
磁盘统计信息
挂载新磁盘
数据排序
数据归档


文章目录

  • Linux命令行与Shell脚本编程
    • 四,更多命令
      • 4.1,监测程序
        • 4.1.1,ps 探查进程
        • 4.1.2,top 实时监测进程
        • 4.1.3,kill pkill 结束进程
          • 1,kill 命令
          • 2,pkill 命令
      • 4.2,检测磁盘空间
        • 4.2.1,mount umount挂载存储设备
          • 1. mount 命令
          • 2,umount 命令
        • 4.2.2, df 命令
        • 4.2.3, du 命令
      • 4.3,处理数据文件
        • 4.3.1,sort 数据排序
        • 4.3.2,grep 数据搜索
        • 4.3.3,gzip等 数据压缩
        • 4.3.4,tar 数据归档


四,更多命令

进程管理
磁盘统计信息
挂载新磁盘
数据排序
数据归档

4.1,监测程序

跟踪运行在系统中的程序

4.1.1,ps 探查进程

程序在系统运行时,被称为进程.
ps 命令能够输出系统中运行程序的大量信息.
    
默认情况下,ps命令只显示运行在当前终端中属于当前用户的那些进程。基本输出显示了
    程序的进程ID(process ID,PID)、
    进程运行在哪个终端 (TTY)及其占用的CPU时间。
    $ ps
    PID          TTY TIME CMD
    3081 pts/0       00:00:00 bash
    3209 pts/0       00:00:00 ps
例子中,只有 bash shell在运行(记住,shell只是运行在系统中的另一个程序),当然ps命令本身也在运行。

Linux系统中使用的GNU ps命令支持3种类型的命令行选项:
    ·Unix风格选项,选项前加单连字符;
    ·BSD风格选项,选项前不加连字符;
    ·GNU长选项,选项前加双连字符。

1.Unix风格选项

在这里插入图片描述

ps -ef 查看系统中所有进程.
    $ ps -ef
    UID          PID    PPID  C STIME TTY          TIME CMD
    root           1       0  3 07:30 ?        00:13:42 java -Dtomcat.monitor.http.binding.host=127.0.0.1 -Dhsf.publish.default.tid=false -Dhsf.subscribe.default.tid=false -Dproject.
    root         781       0  0 14:03 ?        00:00:00 /bin/sh -i -c /bin/bash || clear;/bin/sh
    root         782     781  0 14:03 ?        00:00:00 /bin/bash
    root         841     832  0 14:29 ?        00:00:00 ps -ef

    UID:启动该进程的用户。
    PID:进程ID。
    PPID:父进程的PID(如果该进程是由另一个进程启动的)。
    C:进程生命期中的CPU利用率。
    STIME:进程启动时的系统时间。
    TTY:进程是从哪个终端设备启动的。
    TIME:运行进程的累计CPU时间。
    CMD:启动的程序名称。

-l 更多信息
    F S   UID     PID    PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
    4 S     0     831       0  0  80   0 -  3782 do_wai ?        00:00:00 sh
    0 S     0     832     831  0  80   0 -  3818 do_wai ?        00:00:00 bash
    0 R     0     885     832  0  80   0 - 13267 -      ?        00:00:00 ps
    
    F:内核分配给进程的系统标志。
    S:进程的状态(O代表正在运行;S代表在休眠;R代表可运行,正等待运行;Z代表僵化,已终止但找不到其父进程;T代表停止)。
    PRI:进程的优先级(数字越大,优先级越低)。
    NI:谦让度(nice),用于决定优先级。
    ADDR:进程的内存地址。
    SZ:进程被换出时所需交换空间的大致大小。
    WCHAN:进程休眠的内核函数地址。

2.BSD风格
    伯克利软件发行版(Berkeley Software Distribution,BSD)是加州大学伯克利分校开发的一个Unix版本。

在这里插入图片描述

ps l
F   UID     PID    PPID PRI  NI    VSZ   RSS WCHAN  STAT TTY        TIME COMMAND
4     0     781       0  20   0  15128  2820 do_wai Ss   ?          0:00 /bin/sh -i -c /bin/bash || clear;/bin/sh
0     0     782     781  20   0  15272  3208 -      S+   ?          0:00 /bin/bash
0     0     962     832  20   0  53068  3860 -      R+   ?          0:00 ps l
    VSZ:进程占用的虚拟内存大小(以KB为单位)。
    RSS:进程在未被交换出时占用的物理内存大小。
    STAT:代表当前进程状态的多字符状态码。
        第一个字符采用了与Unix风格的S输出列相同的值,表明进程是在休眠、运行还是等待。第二个字符进一步说明了进程的状态。
            <:该进程以高优先级运行。
            N:该进程以低优先级运行。
            L:该进程有锁定在内存中的页面。
            s:该进程是控制进程。
            1:该进程拥有多线程。
            +:该进程在前台运行。

3.GNU长选项
    GNU开发人员在经过改进的新 ps命令中加入了另外一些选项,其中一些GNU长选项复制了现有的Unix或BSD风格选项的效果,而另外一些则提供了新功能。
    GNU长选项。

在这里插入图片描述

可以混用 GNU长选项和 Unix或 BSD风格的选项来定制输出。作为一个GNU长选项,

--forest 选项能够使用 ASCII字符来绘制可爱的图表以显示进程的层级信息:
    PID TTY          TIME CMD
    831 ?        00:00:00 sh
    832 ?        00:00:00  \_ bash
    963 ?        00:00:00      \_ ps
这种格式可以轻而易举地跟踪子进程和父进程。

4.1.2,top 实时监测进程

ps 只能显示某个特定时间点的信息.
top 命令可以实时显示进程信息.

top 输出
    top - 14:44:17 up  7:13,  0 users,  load average: 0.13, 0.13, 0.09
    Tasks:   8 total,   1 running,   7 sleeping,   0 stopped,   0 zombie
    %Cpu(s):  2.0 us,  0.7 sy,  0.0 ni, 97.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
    KiB Mem :  2080904 total,   624940 free,  1016068 used,   439896 buff/cache
    KiB Swap:        0 total,        0 free,        0 used.   972604 avail Mem 
    
        PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                                                                                     
          1 root      20   0 3662444 842812  23004 S  3.0 40.5  14:18.49 java                                                                                                        
        781 root      20   0   15128   2820   2636 S  0.0  0.1   0:00.00 sh                                                                                                          
        782 root      20   0   15272   3208   2880 S  0.0  0.2   0:00.00 bash                                                                                                        
        ...

输出的第一部分显示的是系统概况:
    第一行显示了当前时间、系统的运行时长、登录的用户数以及系统的平均负载。
        平均负载有3个值,分别是最近1分钟、最近5分钟和最近15分钟的平均负载。
            值越大说明系统的负载越高。由于进程短期的突发性活动,出现最近1分钟的高负载值也很常见。
            但如果近15分钟内的平均负载都很高,就说明系统可能有问题了。
    第二行显示了进程(top称其为task)概况:
        多少进程处于运行、休眠、停止以及僵化状态(僵化状态指进程已结束,但其父进程没有响应)。
    第三行显示了CPU概况。
        top会根据进程的属主(用户或是系统)和进程的状态(运行、空闲或等待)将CPU利用率分成几类输出。
    第四,五行详细说明了系统内存的状态。
        第四行:显示了系统的物理内存状态:总共有多少内存、当前用了多少,以及还有多少空闲。
        第五行:显示了系统交换空间(如果分配了的话)的状态。
        
后一部分显示了当前处于运行状态的进程的详细列表,有些列跟ps命令的输出类似。
    PID:进程的PID。
    USER:进程属主的用户名。
    PR:进程的优先级。
    NI:进程的谦让度。
    VIRT:进程占用的虚拟内存总量。
    RES:进程占用的物理内存总量。
    SHR:进程和其他进程共享的内存总量。
    S:进程的状态(D代表可中断的休眠,R代表运行,S代表休眠,T代表被跟踪或停止,Z代表僵化)。
    %CPU:进程使用的CPU时间比例。
    %MEM:进程使用的可用物理内存比例。
    TIME+:自进程启动到目前为止所占用的CPU时间总量。
    COMMAND:进程所对应的命令行名称,也就是启动的程序名。

默认情况,top命令在启动时会按照 %CPU 值来对进程进行排序,你可以在top命令运行时使用多种交互式命令来重新排序。
top的行为:
    键入f允许你选择用于对输出进行排序的字段,
    键入d允许你修改轮询间隔(pollinginterval),
    键入q可以退出top。

4.1.3,kill pkill 结束进程

在Linux中,进程之间通过信号来通信。进程的信号是预定义好的一个消息,进程能识别该消息并决定忽略还是做出反应。
大多数编写完善的应用程序能接收和处理标准Unix进程信号。

在这里插入图片描述

在Linux中有两个命令可以向运行中的进程发出进程信号 :kill 和 pkill。
1,kill 命令
kill 命令 通过 PID 进程id 发送信号.默认 kill会向命令行列出的所有 进程发送 TERM 信号.(只能通过PID,不能通过进程名)
发送进程信号,必须是进程的属主或root用户.
    $ kill 3940
    -bash: kill: (3940) - Operation not permitted

-s
    TERM信号会告诉进程终止运行。'不服管教'的进程通常会忽略这个请求。如果要强制终止,则-s选项支持指定其他信号(用信号名或信号值)。
    kill命令不会有任何输出:
        # kill -s HUP 3940
    只能运行 ps 或 top 命令查看进程是否已停止运行.
2,pkill 命令
pkill命令可以使用程序名来终止进程。pkill命令也允许使用通配符:
    #pkill http*
该命令将"杀死"所有名称以http起始的进程,比如 ApahceWebServer的httpd服务。
!!! 以root身份使用pkill命令时要格外小心。命令中的通配符很容易意外地将系统的重要进程终止。这可能会导致文件系统损坏。

4.2,检测磁盘空间

4.2.1,mount umount挂载存储设备

挂载(mounting): Linux文件系统会将所有的磁盘都并入单个虚拟目录。在使用新的存储设备之前,需要将其放在虚拟目录中。
图形化桌面环境中,大多数 Linux 发行版能自动挂载特定类型的可移动存储设备。
1. mount 命令
mount 命令  用于挂载存储设备的。
mount命令提供了4部分信息。
        设备文件名
        设备在虚拟目录中的挂载点
        文件系统类型
        已挂载设备的访问状态
在默认情况下,mount命令会输出当前系统已挂载的设备列表。
除了标准存储设备,较新版本的内核还会挂载大量用作 管理目的 的虚拟文件系统。

若知道设备分区 使用的文件系统类型 ,可以使用 -t 过滤
    $ mount -t ext4
    /dev/vda on /home/admin/.tools type ext4 (rw,relatime,nobarrier)
    /dev/vda on /home/admin/.opt type ext4 (rw,relatime,nobarrier)
    设备文件名  on  设备在虚拟目录中的挂载点 type 文件系统类型 (已挂载设备的访问状态)


手动在虚拟目录中挂载设备,需要以root用户身份登录,或是以root用户身份运行sudo命令。
手动挂载设备的基本命令:
    mount -t type device directory
    type参数 指定磁盘格式化所使用的文件系统类型。Linux可以识别多种文件系统类型。如果与 WindowsPC 共用移动存储设备,那么通常需要使用下列文件系统类型。
        vfat:       WindowsFAT32文件系统,支持长文件名。
        ntfs:       WindowsNT及后续操作系统中广泛使用的高级文件系统。
        exfat:      专门为可移动存储设备优化的Windows文件系统。
        iso9660:    标准CD-ROM和DVD文件系统。

    device 指定了该存储设备的设备文件位置 
    directory 指定挂载点在虚拟目录中的位置。
例如,手动将U盘/dev/sdb1挂载到/media/disk,可以使用下列命令:
    mount -t vfat   /dev/sdb1  /media/disk
一旦存储设备被挂载到虚拟目录,root用户就拥有了对该设备的所有访问权限,而其他用户的访问则会被限制。
    可以通过目录权限指定用户对设备的访问权限。

其他选项
在这里插入图片描述

-o选项允许在挂载文件系统时 添加一系列以逗号分隔的额外选项。常用选项:
    ro:以只读形式挂载。
    rw:以读写形式挂载。
    user:允许普通用户挂载该文件系统。
    check=none:挂载文件系统时不执行完整性校验。
    loop:挂载文件。
2,umount 命令
umount 卸载设备的命令  
     umount [directory | device ]
移除可移动设备时,不能直接将设备拔下,应该先卸载。

Linux不允许直接弹出已挂载的CD或DVD。
如果在从光驱中移除CD或DVD时遇到麻烦,可能是还在虚拟目录中挂载着。应该先卸载,然后再尝试弹出。

umount命令支持通过设备文件或者挂载点来指定要卸载的设备。如果有任何程序正在使用设备上的文件,则系统将不允许卸载该设备。
    # umount /home/rich/mnt
    umount: /home/rich/mnt: device is busy
    umount: /home/rich/mnt: device is busy
    #cd/home/rich
    # umount /home/rich/mnt

当 命令行提示符 位于已挂载设备的文件系统中时, umount命令无法卸载该镜像文件。一旦命令提示符移出其镜像文件系统,umount命令就能成功卸载镜像文件了。
    
如果在卸载设备时,系统提示设备繁忙,无法卸载,那么通常是有进程还在访问该设备或使用该设备上的文件。
可用 lsof 命令获得相关进程的信息,然后将进程终止。
    lsof 命令:
        lsof/path/to/device/node,或者 lsof/path/to/mount/point.

4.2.2, df 命令

df命令可以方便地查看所有已挂载磁盘的磁盘的使用情况:(当前值)
df命令会输出内核挂载的所有虚拟文件系统,因此可以使用-t选项来指定文件系统类型,进而过滤输出结果。
    $ df -t ext4 -t vfat
    Filesystem  1K-blocks   Used    Available   Use%    Mounted on
    /dev/sda5   19475088    7326256 11136508    40%     /
    /dev/sda2   524272      4       524268      1%      /boot/efi
输出结果
    设备文件位置
    包含多少以1024字节为单位的块
    使用了多少以1024字节为单位的块
    还有多少以1024字节为单位的块可用
    已用空间所占的百分比
    设备挂载点

-h (human-readable),以人类易读的方式显示 M兆,G吉
    $ df -h
    Filesystem  1K-blocks   Used    Available   Use%    Mounted on
    /dev/sda5   19G         7.0G    11G         40%     /
    /dev/sda2   512M        4.0K    512M        1%      /boot/efi

4.2.3, du 命令

通过df命令,很容易发现哪个磁盘存储空间不足。
du命令可以显示某个特定目录(默认下是当前目录)的磁盘使用情况。这有助于你快速判断系统中是否存在磁盘占用"大户"。

在默认情况下,du命令会显示当前目录下所有的文件、目录和子目录的磁盘使用情况,并以磁盘块为单位来表明每个文件或目录占用了多大存储空间。
du命令的部分输出:
    $ du
    484 /.gstreamer-0.10
    8   /Templates
    8   ./Download
    ... ...

    左侧数字表示文件或目录所占的磁盘块数.
    目录层级的底部向上逐渐输出,

选项
    -c:显示所有已列出文件的总大小。
    -h:按人类易读格式输出大小,分别用K表示千字节、M表示兆字节、G表示吉字节。
    -s:输出每个参数的汇总信息。

4.3,处理数据文件

4.3.1,sort 数据排序

默认情况,sort命令会依据会话所指定的默认语言的排序规则来对文本文件中的数据行进行排序.
    $ cat file1
        one
        two
        three
    $ sort file1
        one
        three
        two
在默认情况下,sort命令会将数字视为字符并执行标准的字符排序,这种结果不是正常想要的。

-n 选项 : 将数字按值排序:
    $ cat file2
        2
        100
        1
    $ sort file2
        1
        100
        2
    $sort -n file2
        1
        2
        100

sort选项

短选项长选项描述
-k–key= POS1[POS2]排序键从POS1位置开始,到POS2位置结束(如果指定了POS2的话]
-t–field-separator= SEP指定字段分隔符
-n–numeric-sort将字符串按数值意义排序
-r–reverse逆序排序( 升序变成降序)
-b–ignore-leading-blanks排序时忽略起始的空白字符
-C–check=quiet不排序,如果数据无序也不要报告
-c–check不排序,但检查输入数据是否有序,无序的话就报告
-d–dictionary-order仅考虑空白字符和字母数字字符,不考虑特殊字符
-f–ignore-case大写字母默认先出现,该选项会忽略大小写
-g–general-numeric-sort使用一般数值进行排序
-i–ignore-nonprinting在排序时忽不可打印字符
-M–month-sort用三字符的月份名按月份排序
-m–merge合并两个已排序数据文件
-o–output= file将排序结果写入指定文件
-R–random-sort根据随机哈希排序
          |--random-source= FILE                |指定-R选项用到的随机字节文件                                          

-S |–buffer-size= SIZE |指定使用的内存大小
-s |–stable |禁止last-resort比较,实现稳定排序
-T |–temporary-directory= DIR |指定用于保存临时工作文件的目录
-u |–unique |和-c选项合用时,检查严格排序;不和-c选项合用时,相同行仅输出一次2
-z |–unique |在行尾使用NULL字符代替换行符

在对按字段分隔的数据(比如/etc/passwd文件)进行排序时,-k选项和-t选项非常方便。
先使用-t选项指定字段分隔符,然后使用-k选项指定排序字段。例如,要根据用户ID对/etc/passwd按数值排序,可以这么做:
    $ sort -t ':' -k 3 -n /etc/passwd
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    sync:x:5:0:sync:/sbin:/bin/sync
    shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
    halt:x:7:0:halt:/sbin:/sbin/halt
    mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    news:x:9:13:news:/etc/news:
    uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
    operator:x:11:0:operator:/root:/sbin/nologin
    games:x:12:100:games:/usr/games:/sbin/nologin
    gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
    ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
-n选项适合于排序数值型输出,比如du命的输出:
    $ du -sh *| sort -nr
    1008k   mrtg-2.9.29.tar.gz
    972k    bldg1
    1888k   fbs2.pdf
    760k    Printtest
    680k    rsync-2.6.6.tar.gz
-r 降序排列

4.3.2,grep 数据搜索

大文件中查找位于中间位置的数据
使用grep命令来帮助查找
    grep [options] pattern [file]
grep命令会在 输入或指定文件 中逐行搜索匹配指定模式的文本。该命令的输出是 包含了匹配模式的行。
    $ grep t file1
    two
    three
匹配模式可以使用UNIX模式的正则表达式

-v 反向搜索,输出不匹配的行
-n 匹配指定模式的那些行的行号
-c 输出有多少行含有匹配模式
-e 指定多个匹配模式
    逐个指定:
    $ grep -et -e f file1
        two
        three
        four
        five


egrep命令是grep的一个衍生,支持POSIX扩展正则表达式,其中包含更多可用于指定匹配模式的字符。
fgrep 支持将匹配模式指定为以换行符分隔的一系列固定长度的字符串。

4.3.3,gzip等 数据压缩

linux 文件压缩工具

工具文件扩展名描述
bzip2.bz2采用Burrows-Wheeler块排序交本压缩算法和霍夫曼编码
compress.Z最初的Unix文件压缩工具,无人使用
gzip.gzGNU压缩工具,用 Lempel-Zivwelch 编码(linux最流行)
xz.xz日渐流行的通用压缩工具
zip.zipWindows中PKZIP工具的Unix实现
linux最流行 gzip
    gzip:压缩文件
    gzcat:查看压缩文件的内容
    gunzip:解压文件

gzip命令会压缩命令行中指定的文件。可以指定多个文件名或是用通配符来一次性压缩多个文件:
    $ gzip my*

4.3.4,tar 数据归档

Unix,Linux 中最流行的归档工具是 tar 命令.

tar 命令最开始是用于 将文件写入磁带设备 以作归档,也可以 将输出写入文件,是在Linux中归档数据的普遍做法。
    tar function [options] object1 object2 ...
操作长选项描述
-A–concatenate将一个tar归档文件追加到另一个tar归档文件末尾
-c–create创建新的tar归档文件
-d–diff检查归档文件和文件系统不同点
  •   |--delete           |从tar归档文件中删除文件
    

-r |–append |将文件追加到tar文件末尾
-t |–list |列出tar归档文件内容
-u |–update |将比tar归档文件中 已有的同名文件更新的文件 追击到该归档文件
-x |–extract |从tar归档文件中提取文件

选项描述
-C dir切换到指定目录
-f file将结果输出到文件(或设备)
-p保留文件的所有权利
-v在处理文件时显示文件名
-j将输出传给bzip2命令进行压缩
-J将输出传给xz命令进行压缩
-z将输出传给gzip命令进行压缩
-Z将输出传给compress命令进行压缩
常用:
创建归档文件:创建一个名为test.tar的归档文件,包含目录test和test2的内容。
    tar -cvf test.tar test/ test2/
列出了(但不提取)tar文件test.tar的内容。
    tar -tf test.tar
从tar文件test.tar中提取内容。如果 tar文件含有目录结构,则在当前目录中重建该目录的整个结构。
    tar -xvf test.tar
在下载开源软件时经常会看到文件名以.tgz结尾,这是经 gzip压缩过的tar文件,提取其中的内容:
    tar -zxvf filename.tgz

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Django+模板引擎+Bootstrap +sqlite3 个人博客管理系统

目录 1.准备工作1.1 参考博客1.2 项目环境与结构预览1.3 项目功能点与预览效果 1.准备工作 1.1 参考博客 1、【python】怎么导出python虚拟环境库以及导入 2、Django之分页功能 主要参考了这篇博客。 1.2 项目环境与结构预览 创建虚拟环境&#xff0c;基于Django版本1.11.2…

25-Maven

目录 1.什么是Maven&#xff1f; PS&#xff1a;关于 jar 包 2.配置并使用Maven 2.1.Maven依赖管理流程 2.2.Maven国内源配置 ①确认右边的两个勾已经都选中。 ②查看自己电脑上settings.xml文件是否存在&#xff0c;进而进行相关配置 ③配置所有新项目配置文件 PS&am…

剑指offer练习日志02:基于矩阵乘法求斐波那契数列通项

目录 一.矩阵乘法与斐波那契数列 1.利用数列的项构造二阶方阵 2.引入矩阵乘法 二.算法实现 1.MatrixFib对象成员变量 2.MatrixFib对象的构造函数 3. MatrixFib对象的成员算法接口 4.对象测试 一.矩阵乘法与斐波那契数列 1.利用数列的项构造二阶方阵 &#x1f604;现定…

【项目实战-CRM】(二:物理模型设计 搭建CRM项目环境)

文章目录 1.物理模型设计2.搭建开发环境2.1 创建crm项目2.2 创建模块2.3 添加jar包2.4 相关配置2.4.1 MyBatis 配置2.4.2 配置数据连接和事务2.4.3 SpringMVC配置文件2.4.4 Spring总配置文件2.4.5 web.xml2.4.6 设置maven对配置文件的编译选项 2.5 添加静态页面资源2.6 将项目部…

在VMmare上安装Windows 2003

今天和大家介绍一下如何使用VMmare安装一个Windows 2003 Enterprise Edition操作系统 首先小陈先下载了一个VMmare 10虚拟软件&#xff0c;将其安装在自己的电脑上。 一、新建虚拟机 然后打开VMmare软件&#xff0c;在窗口的菜单栏里点击“文件”-->“新建虚拟机” 这边让…

c++验证用户输入合法性的示例代码

c验证用户输入合法性的示例代码 本文介绍c验证用户输入合法性&#xff0c;用于检测限定用户输入值。包括&#xff1a;1、限定用户输入为整数&#xff08;正负整数&#xff09;&#xff1b;2、限定用户输入为正整数&#xff1b;3、限定用户输入为正数&#xff08;可以含有小数&…

AI算力碎片化:矩阵乘法的启示

尽管AI的发展取得了巨大进步&#xff0c;但编译器LLVM之父Chris Lattner认为&#xff0c;AI技术应用并不深入&#xff0c;远远没有发挥出已有机器学习研究的所有潜力。而AI系统和工具的单一化和碎片化正是造成这一问题的根源。 为了让AI发挥其真正的潜力&#xff0c;计算碎片化…

Oracle中实现恢复删除的表或表数据内容

一、需求说明 在我们进行项目开发或运维过程中,由于操作不当,引起的误删Oracle数据库表或指定表的数据内容,导致程序出现故障;而我们又没有对数据库进行备份,此时,如果不能及时恢复数据库内容将会导致严重的事故。我们需要一种能够补救的方法来挽回损失,恢复被误删的表或…

WEB攻防-弱口令暴力破解(包含工具、字典下载地址)

目录 一、弱口令概述 二、Web类-加密&验证码后台猜解 三、服务类-SSH&RDP远程终端猜解 四、应用类-ZIP&Word文件压缩包猜解 一、弱口令概述 弱口令(weak password) 没有严格和准确的定义&#xff0c;通常认为容易被别人&#xff08;他们有可能 对你很了解&#…

025:Mapbox GL加载栅格高程模型raster-dem文件

第025个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+mapbox中加载image图像文件。栅格 DEM 源。 仅支持 Mapbox Terrain-DEM,您可以将 Terrain-DEM 用于各种视觉和分析应用程序,从样式化地形坡度和山体阴影到为视频游戏生成 3D 地形网格。 直接复制下面的 vue+mapbo…

记录一个dpdk 19.11 hello world 跑不起来问题(编译和权限)

下载dpdk 源码后: git clone gitgithub.com:DPDK/dpdk.git 切到 19.11 git checkout v19.11 用usertool下的dpdk_setup.sh 选择 [38] x86_64-native-linuxapp-gcc 进行编译: 结果者是build 不过: Build kernel/linux/igb_uio Build kernel/linux/kni CC [M] /home/t…

Linux查看GPU信息和使用情况

1.Linux查看显卡信息 lspci | grep -i vga 2.使用nvidia GPU lspci | grep -i nvidia 个人感觉看不出什么信息&#xff0c;除了显存大小&#xff0c;另外就是可以通过加入前面的显卡编号&#xff0c;显示更加详细的信息。 lspci -v -s 00:0f.0 3.Linux查看Nvidia显卡信息及使…

软件测试之学习测试用例的设计(等价类法、边界值法、错误猜测法、场景法、因果图法、正交法)

文章目录 1. 测试用例的概念2. 为什么在测试前要设计测试用例3. 基于需求进行测试用例的设计1&#xff09;功能性需求测试2&#xff09;非功能性需求测试 4. 具体的测试用例设计方法1&#xff09;等价类2&#xff09;边界值3&#xff09;错误猜测法4&#xff09;场景法5&#x…

Python入门教程+项目实战-11.1节: 元组的基础概念

目录 11.1.1 理解元组类型 11.1.2 元组的类型名 11.1.3 元组的定义 11.1.4 元组的解包 11.1.5 遍历可迭代对象 11.1.6 本节知识要点 11.1.7 系统学习python 11.1.1 理解元组类型 元组与列表有着相同的数据结构&#xff0c;区别在于&#xff0c;元组是静态的数据类型&am…

本地如何搭建一个Stable Diffusion 的AI绘画工具?

实现AI绘画自由指南 前期准备安装1.安装 Homebrew 工具2. 安装Python33.下载 Stable Diffusion -webui4.下载大模型5. 安装 GFPGAN&#xff08;神坑&#xff09;5. 允许 stable diffusion-webui 如何使用效果图 最近看到网上各种AI工具很是火爆&#xff0c;心里也是有点痒痒&am…

消防应急照明和疏散指示系统在轨道交通中的设计应用

摘要&#xff1a;本文分析了消防应急照明和疏散指示系统的特点与设计要点&#xff0c;介绍了系统在城市轨道交通中的设计应用&#xff0c;轨道交通设计中新的消防应急照明和疏散指示系统的备用照明仍由EPS供电&#xff0c;新增一套疏散指示照明系统&#xff0c;增加疏散照明指示…

Beta成果测试总结

Beta成果测试总结 Beta是一个项目的早期测试&#xff0c;通过 Beta能够初步的了解整个系统的稳定性&#xff0c;测试系统是否能够满足客户的需求。我们可以在测试过程中发现一些问题&#xff0c;从而快速解决。 当我们在测试一个新系统时&#xff0c;我们需要进行测试前的准备工…

Node.js的简介

一、什么是node.js Node.js是JavaScript语言的服务器运行环境。 Node.js 就是运行在服务端的 JavaScript。 Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台。 Node.js是一个事件驱动I/O服务端JavaScript环境&#xff0c;基于Google的V8引擎&#xff0c;V8引擎执行…

一文带你全面了解最火爆的ChatGpt

导读 OpenAI近期发布聊天机器人模型ChatGPT&#xff0c;迅速出圈全网。它以对话方式进行交互。以更贴近人的对话方式与使用者互动&#xff0c;可以回答问题、承认错误、挑战不正确的前提、拒绝不适当的请求。高质量的回答、上瘾式的交互体验&#xff0c;圈内外都纷纷惊呼。 为什…

【ONE·C++ || 继承】

总言 主要介绍继承相关内容。 文章目录 总言1、继承介绍1.1、继承是什么1.2、继承方式与访问限定符1.3、继承作用域 2、基类和派生类对象赋值转换2.1、子类对象可以赋值给父类对象/指针/引用2.2、基类对象不能赋值给派生类对象2.3、基类的指针可以通过强制类型转换赋值给派生类…