当前位置: 首页 > news >正文

个人做网站要注意什么条件黑科技wifi蹭网神器

个人做网站要注意什么条件,黑科技wifi蹭网神器,东营网站建设方案范文,网站开发怎么赚钱文章目录1. 孤儿进程2. 环境变量1. PATH环境变量证明ls是系统指令修改自己写的可执行程序对应路径2. env——查看系统环境变量3. 获取环境变量envpenvirongetenv 函数获取 (主流)4. 总结3 . 命令行参数理解命令行参数4. 进程优先级优先级与权限的区分为什么会有优先级#xff… 文章目录1. 孤儿进程2. 环境变量1. PATH环境变量证明ls是系统指令修改自己写的可执行程序对应路径2. env——查看系统环境变量3. 获取环境变量envpenvirongetenv 函数获取 (主流)4. 总结3 . 命令行参数理解命令行参数4. 进程优先级优先级与权限的区分为什么会有优先级查看系统进程的优先级调整进程优先级1. 孤儿进程 如果父进程一直存在子进程先退出了父进程对子进程退出不管不顾会出现什么样问题么 创建makefile并输入以下内容 mytest:test.c2 gcc -o $ $^ 3 .PHONY:clean4 clean:5 rm -f mytest mytest 属于 目标文件 test.c 属于 依赖文件列表 $代表目标文件 $^ 代表依赖文件列表 创建test.c并输入以下内容 #includestdio.h2 #includeunistd.h3 int main()4 {5 pid_t idfork();6 if(id0)7 {8 //子进程9 while(1)10 {11 printf(我是子进程我的pid是:%d,我的ppid是%d,getpid(),getppid());12 sleep(1); 13 } 14 15 }16 else if(id0)17 {18 //父进程19 int count0;//父进程只运行10次20 while(1) 21 { 22 printf(我是父进程我的pid是:%d,我的ppid是%d,getpid(),getppid());23 sleep(1); 24 if(count--0) 25 { 26 break; 27 } 28 } 29 } 30 } 使子进程一直循环父进程只运行10次 复制SSH渠道创建终端2在保证终端1mytest运行的情况下在终端2中输入指令 while :; do ps axj | head -1 ps axj | grep mytest | grep -v grep ; sleep 1; echo ---------; done 创建终端方法点击查看 ---------PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND 17835 27831 27831 17835 pts/0 27831 S 1002 0:00 ./mytest 27831 27832 27831 17835 pts/0 27831 S 1002 0:00 ./mytest 当父子进程刚开始共存时两者状态都是S PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND1 27832 27831 17835 pts/0 17835 S 1002 0:00 ./mytest 当父进程运行结束后子进程状态为S 正常来说若父子进程中子进程结束父进程要接收子进程的退出码结果所以子进程处于僵尸状态 但是 父子进程中父进程结束为什么父进程没有进入僵尸状态呢 当前退出的进程27831的父进程是bashbash会自动回收27831的僵尸状态原本进程27832的父进程是27831当27831进程结束后27832的父进程变为1如果父子进程中父进程先退出而子进程没退出子进程在父进程退出后要被1号进程领养1号进程称为操作系统而被领养的进程称为孤儿进程如果不领养子进程后续退出就无人回收了 2. 环境变量 在操作系统当中由系统在开机之后帮我们维护的一些系统运行时的动态参数 我们自己写的代码编译之后运行的时候为什么要带 ./ ? . 代表当前路径 / 代表路径分割符 . / 可执行程序说明使用相对路径的方式来定位可执行程序自己写的可执行程序和系统自带的指令之间没有区别 那为什么运行系统的指令不需要 ./ ? 因为系统指令的路径在环境变量中 1. PATH环境变量 echo 作为打印字符串的一条命令 [yzqVM-8-8-centos ~]$ echo abcd abcd echo $PATH 查看环境变量PATH [yzqVM-8-8-centos ~]$ echo $PATH /usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/mydir/.local/bin:/home/mydir/bin /usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/mydir/.local/bin:/home/mydir/bin 是以冒号作为分隔符可以分割出来若干子路径 pwd、ls指令会在环境变量所指明的若干路径中一个个去找找到就会自动执行不用带路径而我们自己实现的可执行程序路径不在环境变量里所以必须由用户自动指明它的路径 证明ls是系统指令 使用which 指令搜索特定指令所对应的路径 [yzqVM-8-8-centos my]$ which ls alias lsls --colorauto/usr/bin/ls ls的路径为 /usr/bin/ls 环境变量是从左到右一条一条去查找只要找到就停下来 ls指令在环境变量的usr/bin 路径下说明 ls 指令不用带路径 修改自己写的可执行程序对应路径 修改自己写的可执行程序的路径让其不用添加路径即可运行 创建test.c文件 #includestdio.h2 int main()3 {4 printf(hello); 5 } 输入 gcc -o testc test.c 生成testc可执行程序 输入 which testc 查询testc的路径 [yzqVM-8-8-centos my]$ which testc /usr/bin/which: no testc in (/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/mydir/.local/bin:/home/mydir/bin) 说明 testc路径不在环境变量中 使用pwd 查询当前testc的路径 输入 export PATH$PATH: 当前路径 将testc的路径新增到到环境变量中 [yzqVM-8-8-centos my]$ pwd /home/mydir/my [yzqVM-8-8-centos my]$ export PATH$PATH:/home/mydir/my [yzqVM-8-8-centos my]$ testc hello直接 使用 testc 就运行可执行程序 2. env——查看系统环境变量 使用 env 会出现如下环境变量 这些环境变量都是用户登录的时候设置好的都是kv的 输入 echo $HOSTNAME 显示当前机器 名字 [yzqVM-8-8-centos ~]$ echo $HOSTNAME VM-8-8-centos 输入 echo $SHELL 显示当前所使用的shell [yzqVM-8-8-centos ~]$ echo $SHELL /bin/bash输入 echo $HOME当前为普通用户 [yzqVM-8-8-centos ~]$ echo $HOME /home/mydir HOME环境变量表示当前用户所对应的家目录 切换成root用户后 此时对应root目录 [rootVM-8-8-centos mydir]# echo $HOME /root 对于不同登录的人同一个环境变量里面放的不同的内容所以环境变量是针对特定的人在特定的场景使用的 3. 获取环境变量 envp main函数可以带3个参数分别为 int argc 和 char*argv [ ] 和char * envp[ ] (环境变量表) char* envp[ ]是一个指针数组char类型指针都指向字符串但最后无效内容必须以NULL结尾 创建test.c文件 #includestdio.h2 #includeunistd.h3 int main(int argc,char*argv[],char*envp[])4 {5 int i0;6 for(i0;envp[i];i)7 {8 printf(envp[%d]-%s\n,i,envp[i]);9 } 10 } 创建makefile mytest:test.c2 gcc -o mytest test.c3 .PHONY:clean4 clean:5 rm -f mytest 输入 make 使用./mytest 执行可执行程序 发现envp是一张传递给当前进程的环境变量表 char类型指针指向环境变量字符串 environ 若main函数不传参数还想要拿到环境变量可以使用 environ 修改test.c文件 #includestdio.h2 #includeunistd.h3 int main()4 {5 extern char** environ;//声明6 int i0;7 for(i0;environ[i];i)8 {9 printf(environ[%d]-%s\n,i,environ[i]);10 } 11 } 使用make ./mytest执行可执行程序后 使用environ 也可以拿到所有环境变量 getenv 函数获取 (主流) char* getenv(const char* name); 修改test.c文件 1 #includestdio.h2 #includestdlib.h3 #includeunistd.h4 int main()5 {6 char*usergetenv(USER);7 if(userNULL)8 {9 perror(getenv);10 }11 else 12 {13 printf(USER:%s\n,user);14 }15 } 输入 make, ./mytest 执行可执行程序 [yzqVM-8-8-centos my]$ ./mytest USER:yzq获取到user的名称 4. 总结 环境变量本质就是一个内存级的一张表这张表由用户在登录系统的时候进行给特定用户形成属于自己的环境变量表环境变量每一个都有自己的用途有的是进行路径查找的有的是进行身份认证的有的是动态库查找的有的用来进行确认当前路径的等等每一个环境变量都有自己的应用场景每一个元素都是kv的 环境变量对应的数据是从系统的相关配置文件中读取进来的 使用 cd ~ ,进入当前目录的主目录中 使用 ls -la 显示隐藏文件 这是两个shell脚本内部包含了配置文件 3 . 命令行参数 main函数的两个参数char* argv[] 为指针数组 argv为一张表包含一个个指针指针指向字符串 int argcargc为数组的元素个数 修改test.c文件 #includestdio.h2 #includestdlib.h#inlcudestring.h3 #includeunistd.h4 int main (int argc,char*argv[])5 {int i0;6 for(i0;iargc;i)7 {8 printf(argv[%d]-%s\n,i,argv[i]);10 } 使用make ./mytest 执行可执行程序 [yzqVM-8-8-centos my]$ ./mytest argv[0]-./mytest [yzqVM-8-8-centos my]$ ./mytest -a argv[0]-./mytest argv[1]--a [yzqVM-8-8-centos my]$ ./mytest -a -b argv[0]-./mytest argv[1]--a argv[2]--b./mytest -a -b就是一个字符串 以空格作为分隔符形成一个一个的子串 第一个./mytest为可执行程序剩余的统称为参数选项 理解命令行参数 修改test.c文件 #includestdio.h2 #includestdlib.h3 #includeunistd.h4 #includestring.h5 void usage(const char*name)6 {7 printf(\nusage:%s-[a|b|c]\n\n,name);8 exit(0);//终止进程9 } 10 int main (int argc,char*argv[]) 11 { 12 if(argc!2) 13 { 14 usage(argv[0]);//argv[0]代表可执行程序 } } 15 if(strcmp(argv[1],-a)0) 16 { 17 printf(打印目录下的文件名\n); 18 } 19 else if(strcmp(argv[1],-b)0) 20 { 21 printf(打印目录下的文件的详细信息\n); 22 } 23 else if(strcmp(argv[1],-c)0) 24 { 25 printf(打印目录下文件的隐藏信息\n);26 }27 else 28 {29 printf(待未开发\\n);30 }31 32 } 使用 make ./mytest 执行可执行程序 [yzqVM-8-8-centos my]$ ./mytestusage:./mytest-[a|b|c][yzqVM-8-8-centos my]$ ./mytest -a 打印目录下的文件名 [yzqVM-8-8-centos my]$ ./mytest -b 打印目录下的文件的详细信息 [yzqVM-8-8-centos my]$ ./mytest -c 打印目录下文件的隐藏信息 [yzqVM-8-8-centos my]$ ./mytest -d 待未开发相当于使用ls 、ls -l 、ls -la 指令选项以字符串形式以命令行参数传递给了程序程序内部对选项做判断就可使同样的ls ,携带不同的选项就可表现不同的现象 4. 进程优先级 优先级与权限的区分 权限代表能不能的问题优先级代表已经能谁先谁后的问题 比如 权限若你考完试你能够自己去老师教室翻阅自己的卷子么当然不能没有权限 优先级若你在食堂排队你可以打饭但是有先后顺序 为什么会有优先级 CPU资源有限一般来说一个电脑中CPU有一个或者两个但是进程却有很多个以少量的资源来应对多量的进程势必就会存在多进程竞争资源的情况只要竞争就要确认谁先谁后确认优先级 查看系统进程的优先级 ps -l 查看当前系统的进程优先级 [yzqVM-8-8-centos my]$ ps -l F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 0 R 1002 3722 17835 0 80 0 - 38324 - pts/0 00:00:00 ps 0 S 1002 17835 17834 0 80 0 - 29280 do_wai pts/0 00:00:00 bashPRI代表当前进程的优先级 NI代表当前进程优先级的修正数据 UID代表当前用户的身份标识 PRI数字值越小优先级越高 PRI(new)PRI(old)NI(nice) 一般调整的是nice值nice值取值范围是[-20-19] 调度器的作用是一碗水端平让每一个进程有享有资源所以不支持将一个进程的PRI调整过小从而导致优先级过高 调整进程优先级 在test.c中修改为以下内容 #includestdio.h2 #includeunistd.h3 int main()4 {5 while(1)6 {7 printf(.);8 fflush(stdout);//刷新缓冲区9 sleep(1); 10 } 11 return 0; 12 } 使用./mytest运行程序并复制SSH渠道 创建终端2 在保证终端1mytest运行的情况下在终端2中使用 ps -la 找到mytest进程 [yzqVM-8-8-centos my]$ ps -la F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 0 S 1002 8561 17835 0 80 0 - 1054 hrtime pts/0 00:00:00 mytest 0 R 1002 9135 23362 0 80 0 - 38332 - pts/1 00:00:00 ps 再次在终端2中使用 top 指令输入 r(renice)出现如下数据 PID to renice [default pid 7429] 在上一步输入的 ps -la指令中查询mytest的PID 使用q退出 再次输入 ps -la指令 [yzqVM-8-8-centos my]$ ps -la F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 0 S 1002 8561 17835 0 90 10 - 1054 hrtime pts/0 00:00:00 mytest 0 R 1002 12141 23362 0 80 0 - 38332 - pts/1 00:00:00 ps 发现刚刚修改nice值为10 PID值变为90
http://www.w-s-a.com/news/957234/

相关文章:

  • 太原建网站公司网站设计的流程是怎样的
  • 网站开发交易平台北京网站建设的价格低
  • 捷克注册公司网站搜索引擎广告推广
  • 网站的实用性青岛九二网络科技有限公司
  • 广东备案网站网站反链如何做
  • 做网站的实施过程企业建设H5响应式网站的5大好处6
  • ps制作个人网站首页景安搭建wordpress
  • 常德建设网站制作网站建设推广是什么工作
  • 长春服务好的网站建设百度推广话术全流程
  • 做的网站浏览的越多越挣钱基于jsp的网站开发开题报告
  • 好的做问卷调查的网站好网站调用时间
  • 广州微网站建设平台阿里云国外服务器
  • 如何把做好的网站代码变成网页wordpress shortcode土豆 视频
  • 网站改版竞品分析怎么做中山网站建设文化价格
  • 玉林市网站开发公司电话做网站空间 阿里云
  • 南充做网站略奥网络免费的正能量视频素材网站
  • 电子商务网站开发的基本原则汕头网站制作流程
  • 网站访问量突然增加合肥宣传片制作公司六维时空
  • 建设购物网站流程图怎么找网站
  • 阿里云部署多个网站制作小程序网站源码
  • 博罗东莞网站建设网站免费源代码
  • 网站规划与设计范文桂平网站建设
  • 网站备案号密码wordpress邮箱发送信息错误
  • 模板的网站都有哪些关键词搜索工具爱站网
  • 鲜花网站建设的利息分析企业网站建设方案书
  • 深圳网站平台石家庄做商城网站的公司
  • 微网站营销是什么私人订制网站有哪些
  • 浙江建设工程合同备案网站新手做网站教程
  • 网站优化关键词排名自己怎么做wordpress安装主题失败
  • 成都建设银行招聘网站网站的切换语言都是怎么做的