linux常用命令总结之二

本文详细介绍了如何设置本地YUM仓库,包括挂载镜像文件、配置yum源等步骤,以及如何通过YUM命令进行软件包的管理,如安装、查询、卸载等操作。同时,文章还讲解了进程管理的基础知识,包括如何使用top命令动态查看进程状态,以及如何通过ps命令查看进程,并提供了常用的top和ps命令参数说明。最后,文章展示了如何制造僵尸进程并对其进行了简单的实现。

************************************************************************************************************

     yum仓库:

设置yum仓库(本地镜像)

   步骤:

      1cd /tools

      将与操作系统一致的镜像文件放在cd /tools的目录下;

      2)把镜像文件挂载到/var/ftp/pub

         vim /etc/fstab

      添加: /tools/rhel-server-7.0-x86_64-dvd.iso   /var/ftp/pub iso9660 defaults,loop 0     0

         mount -a

      3cd  /etc/yum.repos.d/

      4)vim yum.repo

  添加:     1 [source]

            2 name=localserver

            3 baseurl=file:///var/ftp/pub

            4 gpgcheck=0

            5 enable=1

 

       5yum clean all

 yum无法安装的原因:

    1yum同时只能安装一个软件,如果同时安装多个软件,后续的会被阻塞掉

    2)指定的baseurl错误,或者网络不通(使用ping验证)

    3)对方限制服务

  注意: 每次修改完使用yum clean all 进行刷新

yum的其余几种用法:

     (1yum list 显示所有已经安装和可以安装的程序包

           yum list | grep vsftped

              显示有关于vsftped的所有安装包

      (2yum whatprovides */vncviewer 

           在不知道安装包的名字,只知道命令的情况下,使用上述命令用于找到安装包的名称

       (3)列出系统上的软件包

             yum grouplist

       (4)安装软件组

            例如:yum group install "Basic Web Server" -y

  安装第三方包:

        (1)使用yum安装:

              yum localinstall ntfs-3.0.2-9.el7.x86_64.rpm

         (2)使用rpm安装:

              rpm -ivh ntfs-3.0.2-9.el7.x86_64.rpm

  卸载:

         (1)使用yum卸载:

               yum remove +软件名 -y

          (2)使用rpm卸载:

                rpm -e  +软件名

   查看软件安装的文件路径:

              rpm -ql +软件名

           例:  rpm -ql vsftpd

 注意: yumrpm的区别:

      不管是安装或卸载,yum都会将依赖的软件一起安装或卸载,而rpm只管安装的软件,对于依赖的软件的不进行安装或卸载。

***********************************************************************************************

进程和程序:

    进程是在内存中的,而程序是在硬盘里的;

 

     top 动态查看进程

        NInice值)描述进程的重要程度,进程的nice值越小,说明进程越重要

          范围(0-139

             0-99 代表实时进程   100-139 代表用户进程(用-20-19代替)

键入P cpu使用率最高的放前面

键入内存使用率最高的放前面

键入时间最早的放前面

键入k  杀死进程

键入退出

 

      ps aux | less 查看进程

         例如: ps aux | grep -w man | grep -v grep

             -w 代表精确查找  -v  去掉包含grep的进程

***************************************************************************************************

kill -l 列出所有的信号

[root@localhost test1]# kill -l

 1) SIGHUP  2) SIGINT  3) SIGQUIT  4) SIGILL  5) SIGTRAP

 6) SIGABRT  7) SIGBUS  8) SIGFPE  9) SIGKILL 10) SIGUSR1

11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM

16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP

21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ

26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR

31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3

38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8

43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13

48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12

53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7

58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2

63) SIGRTMAX-1 64) SIGRTMAX

 其中ctrl+c ===  2) SIGINT systemctl reload vsftpd

     systemctl   reload vsftped  处于挂起状态,进程id不变,只是重新读取配置文件

     systemctl restart vsftpd 进程id会发生变化

例如:

    systemctl reload httpd

     ps aux | grep -w httpd | grep -v grep

    systemctl restart httpd

     ps aux | grep -w httpd |grep -v grep

  可验证出reload 进程id不变 而restart 进程id发生改变

***********************************************************************************************

   kill -9 +进程id 强制推出

********************************************************************************************************************

制造僵尸进程:

    vim  zombie.c

1 #include <stdio.h>

  2 #include <unistd.h>

  3 

  4 

  5 int main(int argc,char**argv)

  6 {

  7       pid_t pid1 = 0;

  8       int status = 0;

  9      //打开一个子进程

 10     if(( pid1 = fork()) < 0){

 11           printf("failing!!!!");

 12 }else if ( pid1 == 0) {

 13 

 14        printf("%d\n",pid1);

 15        printf("hello\n ...");

 16 

 17 }else {

 18 

 19        printf("%d\n",pid1);

 20     while(1){

 21 

 22       // waitpid(pid1,&status,0);

 23        sleep(1);

 24       printf("i am wait for you\n");

 25     }

 26   }

 27 

 28      return 0;

 29 }

                                                              

   gcc  zombie.c -o zombie

    ./zombie

  至此僵尸进程制造完毕!!!!!

 

*********************************************************************************************************************************

编译(分为四个过程)

1.预编译

    gcc -E hello.c -o hello.i

  (1)将所有的#define去掉

 (2)处理条件编译

  (3)处理#include

   (4)去除注释

2.编译

 gcc -S hello.i -o hello.s

    词法分析

    语法分析

    语义分析

    目标代码优化

3.汇编

  gcc -c hello.s -o hello.o

 由汇编代码--------->可重定位文件

4.链接

   gcc hello.o -o hello

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值