************************************************************************************************************
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