您的位置:首页 > 运维架构 > Linux

linux常用命令总结之二

2016-01-18 23:07 591 查看
************************************************************************************************************

yum仓库:

设置yum仓库(本地镜像)

步骤:

1)cd /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

3)cd /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

5)yum clean all

yum无法安装的原因:

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

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

3)对方限制服务

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

yum的其余几种用法:

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

yum list | grep vsftped

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

(2)yum 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

注意: yum与rpm的区别:

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

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

进程和程序:

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

top 动态查看进程

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

范围(0-139)

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

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

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

键入T 时间最早的放前面

键入k 杀死进程

键入q 退出

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: