df 显示文件系统的磁盘统计信息
-a 包含全部的文件系统;
-h 以可读性较高的方式来显示信息;
du命令用于显示目录或文件的大小
-a 显示该目录下的所有文件大小
-h 提高信息的可读性
-b 以字节为单位进行显示
fdisk 硬盘分区命令
eg. fdisk /dev/sda1 编辑 /dev/sda1分区,执行之后按照提示可以硬盘进行分区
mkfs 格式化磁盘命令
-t 指定文件系统的类型; eg. mfks -t ext3 /dev/sda2
mount 挂载系统命令
mount <device> <mount point> 将设备device挂载到mount point下
-a 加载文件”/etc/fstab”中描述的所有文件系统
对应的卸载命令 umount <device>
fstab文件
配置文件/ etc / fstab包含自动执行分区安装过程的必要信息,语法如下:
[Device] [Mount Point] [File System Type] [Options] [Dump] [Pass]
字段的含义如下:
<Device> |
包含文件系统的设备/分区(通常为/dev或UUID) |
<[Mount Point> |
挂载点,可以从中访问设备/分区的内容(注意:swap没有挂载点) |
< File System Type > |
文件系统的类型 |
< Options > |
挂载访问设备/分区的选项 |
< Dump > |
启用或禁用设备/分区的备份(命令转储),此字段通常设置为0,禁用它 |
< Pass > |
控制fsck在引导时检查设备/分区错误的顺序,根设备应为1.其他分区应为2或0以禁用检查 |
ps 列出当前进程信息
进程的5种状态码:
D 不可中断 (收到信号不唤醒和不可运行, 进程必须等待直到有中断发生)
R 运行 (正在运行或在运行队列中等待)
S 中断 (休眠中, 受阻, 在等待某个条件的形成或接受到信号)
T 停止 (进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行)
Z 僵死 (进程已终止,但进程描述符存在,直到父进程调用wait()系统调用后释放)
-a 显示同一终端下的所有程序
-f 显示程序间的关系
-u 指定用户的所有进程
-x 显示所有程序,不以终端机来区分
ps aux (ps ef)
USER:该 process 属于那个使用者账号的
PID :该 process 的号码
%CPU:该 process 使用掉的 CPU 资源百分比
%MEM:该 process 所占用的物理内存百分比
VSZ :该 process 使用掉的虚拟内存量 (Kbytes)
RSS :该 process 占用的固定的内存量 (Kbytes)
TTY :该 process 是在那个终端机上面运作,若与终端机无关,则显示 ?, tty1-tty6 是本机上面的登入者程序,若为 pts/0 等等的,则表示为由网络连接进主机的程序。
STAT:该程序目前的状态,主要的状态有
R :该程序目前正在运作,或者是可被运作
S :该程序目前正在睡眠当中 (可说是 idle 状态),但可被某些讯号 (signal) 唤醒。
T :该程序目前正在侦测或者是停止了
Z :该程序应该已经终止,但是其父程序却无法正常的终止他,造成 zombie (僵尸) 程序的状态
START:该 process 被触发启动的时间
TIME :该 process 实际使用 CPU 运作的时间
COMMAND:该程序的实际指令
sed 流编辑器
- 逐行处理文件(或输入),并将结果发送到屏幕。具体过程如下:首先sed把当前正在处理的行保存在一个临时缓存区中(也称为模式空间),然
后处理临时缓冲区中的行,完成后把该行发送到屏幕上。sed每处理完一行就将其从临时缓冲区删除,然后将下一行读入,进行处理和显示。处理
完输入文件的最后一行后,sed便结束运行。sed把每一行都存在临时缓冲区中,对这个副本进行编辑,所以不会修改原文件。
- 相关命令:
a\ 在当前行后添加一行或多行。多行时除最后一行外,每行末尾需用“\”续行
c\ 用此符号后的新文本替换当前行中的文本。多行时除最后一行外,每行末尾需用”\”续行
i\ 在当前行之前插入文本。多行时除最后一行外,每行末尾需用”\”续行
d 删除行
p 打印行
s 用一个字符串替换另一个字符串
g 在行内进行全局替换
w将所选的行写入文件
y将字符替换为另一字符(不能对正则表达式使用y命令)
- 相关选项:
-e进行多项编辑,即对输入行应用多条sed命令时使用
-i 直接修改读取的文件内容,而不是输出到屏幕上
-r 让sed支持扩展的正则表达式(默认是基础的正则表达式)
-n 取消默认的输出(默认为输出所有行)
-f指定sed脚本的文件名
- 在字符替换中,可能会遇见引号,“/”等的替换,这时应该注意,sed的命令原型是:
sed -i "s/oldstring/goalstring/g" file
如果一个路径是data/path/abc,现在要将此路径换成一个字符串cde但是这时跟在s后边的其实是分隔符,用以将oldstring替换成cde;他可以使用任意字符,这时如果字符串中有“/”,就会发生混乱,在这个时候可以用#当做分隔符,就变成
sed -i "s#abc#cde#g" file
这时如果abc中包含“/”就可以随便替换了;
- 引号的替换:需要将引号转义,使用反斜杠“\”,比如替换" ' 'div' ' ",如果需要将它替换成‘div' ;可以使用sed -i s#\"\'\'#\'#g就能替换了。
awk命令
- AWK是一种处理文本文件的语言。它将文件作为记录序列处理。在一般情况下,文件内容的每行都是一个记录。每行内容都会被分割成一系列的域,因此,我们可以认为一行的第一个词为第一个域,第二个词为第二个,以此类推。
- AWK程序是由一些处理特定模式的语句块构成的。AWK一次可以读取一个输入行。对每个输入行,AWK解释器会判断它是否符合程序中出现的各个模式,并执行符合的模式所对应的动作。
- AWK程序是由一系列模式--动作对组成的,写做
pattern { action }
其中pattern表示AWK在数据中查找的内容,而action是在找到匹配内容时所执行的一系列命令。输入行被分成了一些记录:记录默认由换行符分割,因此输入会按照行进行分割。
- 程序使用给定的条件一个个的测试每条记录,并执行测试通过的条件所对应的action。pattern和action都可以省略不写。无pattern默认匹配全部的记录;而无action则是打印原始记录。
print命令
- print 命令用于输出文本。其输出的文本总是以"输出记录分隔符"(Output record separator, ORS)分割的,其默认值为换行符。该命令的最简形式为:
print 会输出当前记录的内容。
- AWK的内建变量包括域变量,例如$1, $2, $3..$n,以及$0。$0是指整个记录。
这些变量给出了记录中域的内容。 内建变量也包括一些其他变量:
NR:已输入记录的条数。
NF:当前记录中域的个数。记录中最后一个域可以以$NF的方式引用。
FILENAME:当前输入文件的文件名。
FS:“域分隔符”,用于将输入记录分割成域。其默认值为“空白字符”,即空格和制表符。FS可以替换为其它字符,从而改变域分隔符。
RS:当前的“记录分隔符”。默认状态下,输入的每行都被作为一个记录,因此默认记录分隔符是换行符。
OFS:“输出域分隔符”,即分隔print命令的参数的符号。其默认值为空格。
ORS:“输出记录分隔符”,即每个print命令之间的符号。其默认值为换行符。
OFMT:“输出数字格式”(Format for numeric output),其默认值为"%.6g"。
tail 动态跟踪文件内容
tail –f –n 10 等价于 tailf 命令 默认打印最后10行
随着文件的增长,输出附加数据;(动态输出最新的信息),适用于日志信息的输出
scp 远程安全拷贝
- scp是secure copy的简写,scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。linux的scp命令可以在linux服务器之间复制文件和目录。
-r 递归复制整个目录。
-v 详细方式显示输出。
Eg. scp –r root@192.168.120.204:/opt/soft/nginx-0.5.38.tar.gz /opt/soft/
- 命令格式:
scp local_file remote_username@remote_ip:remote_folder (or file)
或者
scp local_file remote_ip:remote_folder (or file)
第1个指定了用户名,命令执行后需要输入用户密码
第2个没有指定用户名,命令执行后需要输入用户名和密码
netstat 网络信息统计
-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态
-p 显示建立相关链接的程序名
-r 显示路由信息,路由表(与route命令功能相似)
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。
提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到
route 内核路由表设置
-c 显示更多信息
-n 不解析名字
-v 显示详细的处理信息
-F 显示发送信息
-C 显示路由缓存
-f 清除所有网关入口的路由表。
-p 与 add 命令一起使用时使路由具有永久性。
- 输出项说明:
Destination 目标网段或主机
Gateway 网关地址
Genmask 网络掩码
Flags 对于一个给定的路由器,可以打印出五种不同的标志(Flag):
U 该路由可以使用。
G 该路由是到一个网关(路由器)。如果没有设置该标志,说明目的地是直接相连的。
H 该路由是到一个主机,也就是说目的地址是一个完整的主机地址。如果没有设置该标志,说明该路由是到一个网络,而目的地址是一个网络地址:一个网络号,或者网络号与子网号的组合。
D 该路由是由重定向报文创建的。 M 该路由已被重定向报文修改。
Metric 路由距离,到达指定网络所需的中转数(linux 内核中没有使用)
Ref 路由项引用次数(linux 内核中没有使用)
Use 此路由项被路由软件查找的次数
Iface 该路由表项对应的输出接口
- 配置静态路由
# route [add | del] [-net | -host] target [netmask Nm] [gw Gw] [[dev] If]
add : 添加一条路由规则
del : 删除一条路由规则
-net : 目的地址是一个网络
-host : 目的地址是一个主机
target : 目的网络或主机
netmask : 目的地址的网络掩码
gw : 路由数据包通过的网关
dev : 为路由指定的网络接口
grep
grep –nr “tongyishu”在当前目录下的所有文件中递归搜索”tongyishu”字段
grep “tongyishu” filename 在指定文件中搜索”tongyishu“字段