Chinaunix首页 | 论坛 | 博客
  • 博客访问: 117702
  • 博文数量: 42
  • 博客积分: 932
  • 博客等级: 准尉
  • 技术积分: 470
  • 用 户 组: 普通用户
  • 注册时间: 2011-07-18 22:33
文章分类
文章存档

2011年(42)

分类: LINUX

2011-07-25 22:26:03

今天学习的新知识点儿!

  1. 关于vim的扩展
  2. 关于read命令的简单扩展
  3. <<的用法
  4. bash内置的特殊变量
  5. bash中用到的操作符
  6.  linux的进程管理
  7.  linux中的信号类型
  8. 琐碎知识点总结

1.vim末行模式实现查找替换 命令和使用方法跟sed相同 更加灵活

ADDR1,ADDR2s/ / /gi  g全局替换 i忽略大小写

表示地址时的特殊符号

. 光标所在当前行

$ 最后一行

% 全文

同样支持相对地址

. ,+3 光标所在行往后走3行

vi同样支持正则表达式

vi中搜索某个字符串

/ 往文尾走

? 往文首走

n/N 下一个 前一个

2.关于read命令的简单扩展

read的格式 read [options] VAR1 VAR2 VAR3  read跟上选项 可以一次跟上多个选项值跟用户交互

经常用到的选项3个:

-t timeout 指定超时时间间隔  用户超过多少时间直接跳过

-p          在用户输入之前显示一些提示信息

-a          把键入的信息存储在一个数组中

3. <<:Here Document 在脚本当中重定向一段字符给某一个文件

如:cat >> /tmp/a.txt <

first

second

third

END

它在脚本中的意思就是生成一个/tmp/a.txt的文件且文件内容是first second third

我们用此功能可以实现一个小功能 自动创建脚本并生成头部信息的功能在以前的博客中就用过这个功能

但并不完善等以后功能完善了再附上脚本!

4、bash中内建的特殊变量

$* $@  一次性的引用向脚本中传递的所有位置参数变量
       两者有区别 $@是把所有的位置参数当做一个字符串来引用
                  $*是把每个位置参数当做一个字符串来引用
$#    通过命令行向脚本传递的参数的个数
$0    脚本的名字自身 basename
$$    当前进程的进程号
$_    引用最后一个命令的参数
$!    引用在后台运行的最近的一个命令的PID号
$-     用以引用当前命令使用的引导符
$?    上个命令的执行状态

5.BASH中用到的操作符

- + 单目操作符 一般用于表示正负

+ - 加减运算

!~ 按位取反

<< >> 2进制移位

* / % 乘 除 取余

<=,>=,<,> 比较运算符

== !=  等于 不等于 主要用于字符串测试

& 把俩个数做按位与运算

^ 按位做与或运算

| 位或运算

&& 逻辑与运算

|| 逻辑或运算

** 幂运算

id++ id--  先引用再自加自减

++id --id 先自加自减再引用

expr ? expr1 : expr2 条件操作符 如果expr为真

expr1 , expr2 连接俩个表达式当做一个句子来使用

6.linux支持的进程管理

进程的概念:进程 Process 实现有限资源分派的单位,是一个程序正在执行的副本

为什么要引入进程?由于用户PC机的CPU 跟 内存空间有限所以引入进程

在32bit PC机里每个进程都认为自己有4G的地址空间可用  意识不到其他进程的存在

这个地址空间成为虚拟地址空间 4G的虚拟空间 分为两段 1G的内核空间 直接对硬盘磁盘打交道 特权空间 特权级别 系统调用 中断  3G的用户空间

区别虚拟地址空间和虚拟内存:虚拟内存 跟 虚拟地址空间是俩个不同的概念 虚拟内存是从硬盘上划分出一个空间当物理内存用


进程调度程序 
I/O密集型: 如ftp   硬盘读取 外围设备的交互 占用CPU时间缩短 优先级调高
cpu密集型:如视频播放 解码大量占用cpu时间 优先级调低

进程优先级:
静态优先级:管理员可以手动调整 100-139 ,nice值:-20-19,默认为0 普通用户只能把自己的优先级值调低
动态优先级:内核自动管理 用十进制表示 0-99 ,实时优先级 数字越小优先级越高


 

查看进程命令

显示进程信息
ps命令显示某时刻系统进程的状态信息
显示进程状态

ps:process
常用的选项
-e show all processes 显示所有进程
a 所有跟终端无关的进程
x 所有跟终端相关的进程
-u 显示进程时有那个用户发起的
-o 自定义显示那些字段 -eo pid,%cpu,comm
axu  -eF/f是查看进程的最常用的组合


top命令以全屏幕的方式显示系统中的进程状态,并定时刷新显示的内容
可以通过top命令查看系统中进程的动态变化

top
  -b -n N 刷新几次后退出
  -d 10 指定两次刷新时间间隔


显示系统进程树
pstree命令以树的形式显示系统进程间的父子关系

作业控制:
完成特定任务的一组进程集 job
作业的工作机制:
前台运行:作业在执行的时候占用当前shell
后台运行:作业在尚未执行完成的时候不占用当前的shell
这些在shell关闭后就会结束
nohup 使命令发起的进程与终端无关
Ctrl+z 可以把正在运行令前台工作的job 送到后台 传递19信号
fg
jobs能查看当前系统后台的 job
   fg 加 job号能调回后台的job
   fg什么也不加 能调回带+号的job
用 &可以把命令送到后台且处于运行态
Ctrl +z 把任务送到后台处于停止态
bg %n 可以使后台处于停止态的任务转化为在后台处于运行态
kill +%job号 终止后台作业

未完待续.......下次编辑还有好多时间不够了!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

阅读(1200) | 评论(0) | 转发(0) |
0

上一篇:LINUX学习之路4

下一篇:LINUX学习之路7

给主人留下些什么吧!~~