监视系统和进程操作
- w:了解系统中目前用户的操作
- FROM:用户连接到服务器的IP地址(或者主机名)
- LOGIN@:用户连接系统的时间 * IDLE:计算用户没运行任何命令的时长
- JCPU:该终端所有相关的进程使用的cpu(处理器)时间
- PCPU:当前进程使用的cpu时间
- WHAT:用户正进行的程序
- date:查看当前时间 ---- uptime:查看运行时间
- ps:显示进程的快照,静态
- 不加参数时只会列出当前运行ps命令的用户在当前终端中所运行的进程
ps -ef
:列出所有进程ps -efH
:以乔木状列出所有进程ps -u 用户名
:列出此用户运行的进程ps -aux
:通过cpu和内存使用来过滤进程- PID:进程号(唯一性)
- TTY:该进程运行所在的终端
- TIME:进程运行时长
- CMD:产生此进程的程序名
- PPID:程序的父进程号
- -pcpu:cpu使用率 -pmem:内存使用率
ps -aux --sort -pcpu | head
根据cpu使用率来降序排列进程ps -aux --sort -pcpu,+pmem | head
根据cpu和内存使用率来降序排列
- top:显示进程的动态列表(动态,可交互) 该命令无法显示全部的进程,只显示排在前面的进程 ** 默认的进程排序是根据处理器的比率**
- q:退出top
- B:加粗某些信息
- u:依照用户来过滤信息
- k:结束某个进程
- f:在列表中添加或删除某些列
- s:改变刷新页面的时间,默认为3/a
- kill 进程号(PID):结束一个进程,多个进程之间使用空格隔开
- kill -9 进程号:立即强制结束进程
- killall 程序名:结束多个进程
- poweroff:立即关机
- halt:关闭系统
- reboot:重启系统
RTFM-手册
man: man + 数字 + 命令/函数
- 若不加数字,man命令默认从数字较小的手册中寻找相关命令和函数
- 手册页不同区域:
- SYNOPSIS:概要 - 使用此命令的所有方法
- DESCRIPTION:描述-参数及其用法
- REPORTING BUGS:报告故障
- SEE ALSO:另见-拓展阅读
- SYNOPSIS区域的语法总结:
- 粗体:原封不动的输入
- 下划线的部分:用实际的内容替换
- [-hvc]:表示-h、-v、-c是可选的,非强制的
- a | b:可输入a或者b,但不能同时输入a和b
- option……:省略号表示前面的内容可以输入很多个
- whatis:是man命令的精简版,只能概述命令的作用
Vim
Vim三种工作模式: (默认是交互模式)
- 交互模式:(复制粘贴、撤销等)不可输入文本,但可进行交互操作
- 插入模式:(输入文本)
- i 进入此模式,Esc退出
- 命令模式:(保存退出、配置等)
进入此模式前需是交互模式:code
- :w 后可加文件名
- :q!表示不保存最近修改内容且强制退出
交互模式操作
- 0:将光标定位到行首
- $:将光标定位到行末
- w:隔单词移动
- x:删除字符 — 数字+x→删除字数
- r:替换
- R:切换到替换模式,一次性可替换多个字符
- u:撤销数字+u — ctrl + r:取消撤销
- n + gg:跳转到第n行
- shift + g:跳到最后一行
- gg:跳转到第一行
- / (?):查找
- n→下一个 N→上一个
- :r 文件名:合并文件
- :!+命令:运行外部命令
shell
shell变量
- #!/bin/bash 它可以保证此脚本会被我们制定的shell执行 ,非必要
- bash -x 文件:表示调用Bash来调试脚本文件 -x:以调试模式运行
- 双引号忽略大部分特殊字符,但美元符号($)、反引号(`)、反斜杠 () 等3种特殊字符除外
- 反引号要求Shell执行被它括起来的内容
- read:请求用户输入文本 read + 变量名
- read命令可一次性给多个变量赋值
- -p:显示提示信息
- -n:限制用户输入字符串的最大长度
- -t:限制输入的时间
- -s:隐藏输入内容
- let:操纵数字
- 环境变量(全局变量):shell的环境变量可以被此种shell的任意脚本程序使用
- env:显示目前所有的环境变量
- SHELL:目前使用的那种shell,变量名要大写
- export:定义环境变量
- 参数变量:
- $#:包含参数的数目
- $0:包含脚本的名字
- $1:第一个参数
- 数组:
- 定义数组时用 () 括起来
array=('value','value2')
- 访问数组元素:${array[2]}
- 给数组元素赋值:
array[3]='value3'
- * 一次性获取数组所有元素
${array[*]}
shell条件
-
规范:
- [ 条件测试 ] 两边必须各空一格,在shell中,判断符号两边也需要各空一格
- then后面的语句表示条件满足即执行,else则是条件不满足时
- fi表示if语句结束
-
测试字符串:
- $string1 = $string2 两个字符串是否相等
- $string1 != $string2 两个字符串是否不相等
- -z $string 字符串string是否为空
- -n $string 字符串string是否不为空
-
测试数字:
- $num1 -eq $num2 判断两个数字是否相等
- $num1 -ne $num2 判断两个数字是否不相等
- $num1 -lt $num2 判断num1是否小于num2
- $num1 -le $num2 判断num1是否小于或者等于num2
- $num1 -gt $num2 判断num1是否大于num2
- $num1 -ge $num2 判断num1是否大于或者等于num2
-
测试文件:
- -e $file 文件是否存在
if [ ! -e $file ]
- -d $file 文件是否是目录
- -f $file 文件是否是文件
- -L $file 文件是否是符号链接文件
- -r $file 文件是否可读
- -w $file 文件是否可写
- -x $file 文件是否可执行
- -e $file 文件是否存在
-
一次性测试多个条件:
- &&:逻辑与
- ||:逻辑或
-
反转测试:!
case语句
- in表示在……
- ;; 相当于break
- * 相当于else
- esac表示语句结束
shell循环
-
while循环:在……期间
-
until循环:直到……为止
-
for循环:
-
seq:序列循环