Linux进程
1.进程
进程:可执行应用程序执行后产生的对应的进程,重量级;进程是由一个线程或多个线程构成;
线程:是计算机中的最小单位,轻量级(依赖和物理性是独立存在的)、损耗较低
假设进程1是由1、2线程组成;进程2是由2、3线程组成;
当进程1启动后,进程2则需等待进程1执行完毕,资源释放后,方可执行;
而当进程1如果一直都不释放资源,则容易造成死锁;
Zombie僵尸进程:
当存在很多僵尸进程说明什么问题:说明模块和模块之间的结构有问题(代码中只写了调用,没有写回收);
Ps –ef—-查询静态进程监控
Kill 进程号—-结束进程
Kill -9 进程号—-强制结束进程
Ps –ef|pgrep “httpd”—-查询httpd的端口号
Top—查询(动态)进程
{Load average:系统当前负载资源;
Tasks:进程数、zombie僵尸进程;
Id :空闲的
Mem:内存;buffer:缓存
Swap:交换分区
在top状态下,输入u:用户;显示指定的用户进程;
输入q:表示退出top状态;
查询进程端口:netstat –ano
Bash csh ksh tcsh
更改shell:chsh –s 目标
符号 | 解释 |
---|---|
~ | root目录或宿主目录 |
! | 表示非 |
@ | 普通链接或者邮箱标识符 |
# | 注释 |
$ | 变量 |
% | 取模 |
^ | 表示不在什么范围之中 |
& | 表示与 |
* | 表示统配 |
() | 表示函数 |
-+*/ | 表示运算符 |
** | 表示幂运算 |
\ | 拖逸符 |
/ | 表示路径 |
{} | 表示枚举 |
[表达式] | 表示的是条件逻辑判定 |
: | 表示命令引用结束之前 |
; | 表示语句结束 |
;; | 表示case语句的结束 |
‘’ | 表示字符串 |
“” | 表示 |
“ | 表示命令的引用 |
> | 表示覆盖 |
> | 表示追加 |
-> | 表示链接指向 |
? | 表示单个字符统配 |
= | 表示赋值 |
./ | 表示执行 |
linux中的比较预算符等同于批处理中的大于、小于、等于:gtr、lss、equ、neq、geq、leq
#!表示的是bash脚本的开头
| 管道
|| 或
shell脚本
文本文档,针对linux中,单个命令无法进行完成,而是需要多个命令时,就可以将所有命令写到shell脚本中,直接运行shell脚本即可。主要采用的是C语言
注意:Shell脚本—-必须具有可执行的权限,才能被执行
Shell脚本中相关解释
Echo :输出命令(或者使用printf进行输出)
$?:表示验证脚本或者命令是否执行完成,如果结果是0表示执行成功,
如果是其他数字的话,则表示执行不成功。
#! /bin/bash ---释伴行(声明为:是使用bash脚本的进行执行的)
{}枚举:如果{}中只有一个元素的话,则不会当成是元素,而是被看做一个整体,只有存在多个元素的情况,才会被认定为枚举
举例 :touch {a,b}-{c,d} ----创建四个文件:a-c a-d b-c b-d
[表达式]:实现运算a=$[5+6];(如果a=5+6,会直接当成是字符串输出)
或者:set a=expr 5+6
或者:expr 8 + 9(注意空格)
执行文件方式:./文件 或bash 文件
流程控制语句
If [ 表达式 ] ;then
语句块
Elif [ 表达式 ] ;then
语句块
Else
语句块
Fi
Or
If [ 表达式 ]
then
语句块
Else
语句块
Fi
Case 变量 in
标识符)
语句块
;;
* )
语句块
;;
Esac
#! /bin/bash
Echo “please input a number”
Read x
Echo “please input another number”
Read y
If [ $x –gt $y ] ; then
Echo “x>y”
Elif [ $x –eq $y ] ; then
Echo “x==y”
Else
Echo “x<y”
fi
实现从控制台输入数据:
#! /bin/bash
Echo “please input str”
Read x
Case $x in
Root)
Echo “I am root”
;;
*)
Echo ”nothing”
;;
Esac
循环
For i in `seq 1 10` ----表示按顺序
Do
Echo $i
Done
或者
For((i=0;i<=10;i++))
{
Echo $i
}
计算奇数偶数和