Linux就该这么学--第二章
- 常用系统工作命令
• man [命令]
◇ 常用按键:
▪ 空格键 or Page down 向下翻一页
▪ Page up :向上翻一页
▪ home:前往首页
▪ end:前往尾页
▪ /关键词:从上至下搜索关键词
▪ ?关键词:从下至上搜索关键词
▪ n:定位到下一个搜索到的关键词
▪ N:定位到上一个搜索到的关键词
▪ q:退出
• echo [字符串|$变量]:在终端输出字符串或者变量值
• date [选项] [+指定的格式]:显示和设置系统的时间或日期
◇ 选项:
▪ -s 设置日期和时间
◇ 指定的格式:
▪ %j 今年中的第几天
▪ %Y 年
▪ %m 月
▪ %d 日
▪ %H 时
▪ %M 分
▪ %S 秒
• reboot:重启系统
• poweroff:关闭电脑
• wget [参数] 下载地址:下载网络文件
◇ 参数:
▪ -b 后台下载
▪ -c 断点续传
▪ -P 指定目录
▪ -t 最大尝试次数
▪ -p 下载页面内全部资源
▪ -r 递归下载
• ps [参数]:查看系统中的进程状态
◇ 参数:
▪ -a 显示所有进程
▪ -u 用户以及其他详细信息
▪ -x 显示没有控制终端的进程
◇ 进程状态:
▪ R 运行 正在为用户服务
▪ S 中断 等待为用户服务
▪ D 不可中断 不响应系统或者在为用户服务
▪ Z 僵死 不受系统控制,没有为用户服务(在kill或者killall之后加参数-9进行强杀)
▪ T 停止 停止为用户服务
• top:动态的监视进程活动与系统负载等信息
top -H -p 18605 查看某个进程(18605)内部线程占用情况分析
可以结合pidof使用,例如top -H -p `pidof sshd`
◇ 名词解释:
▪ 第一行(和uptime的信息一样)
- up:开机了多长时间
- users:开启的终端的数量
- load average:负载在1、5、15分钟内的负载情况,从右往左看负载的波动,如果数值达到5以上可能导致服务器崩溃
▪ 第二行
- Tasks:所有进程数
- running:正在运行的进程数
- sleeping:睡眠进程数
- stopped:停止进程数
- zombie:僵死进程数
▪ 第三行
- us:当前CPU使用的百分比
- id:CPU的空闲率
▪ 第四行
- 内存情况
▪ 第五行
- 虚拟内存情况
• pidof [参数] [服务名称]:查询指定服务的PID
• kill [参数] [进程PID]:终止指定PID的进程
默认参数下,kill 发送SIGTERM(15)信号给进程,告诉进程被关闭,请自行停止运行并退出。
kill -9 发送SIGKILL(9)信号给进程,告诉进程被终结了,请立刻退出,表示“无条件终止”。
• killall [参数] [进程名称]:终止指定名称的进程 - 系统状态检测命令
• ifconfig [网络设备] [参数]:获取网卡配置和网络状态等信息
(安装yum install net-tools)
◇ 名词解释:
▪ inet:ip地址
▪ ether:mac地址
▪ RX、TX:收发包数和累计流量
◇ 常用组合
▪ 配置网卡的IP地址
ifconfig eth0 192.168.0.1 netmask 255.255.255.0
▪ 配置网卡的硬件地址
ifconfig eth0 down
ifconfig eth0 hw ether xx:xx:xx:xx:xx:xx
ifconfig eth0 up
▪ 将网卡禁用\启用\重启
ifconfig eth0 down\up\reload
▪ 设置最大传输单元
ifconfig eth0 mtu 1500
▪ 添加多个IP
ifconfig eth0:0 192.168.1.100 netmask 255.255.255.0 up
ifconfig eth0:1 192.168.2.100 netmask 255.255.255.0 up
▪ 删除IP
ifconfig eth0 del 192.168.1.100
▪ 启用和禁用arp
ifconfig eth0 arp\-arp
▪ 启用和禁用混杂模式
ifconfig eth0 promisc\-promisc
• uname [-a]:查看系统内核和系统版本信息(系统,主机名称,内核版本号,系统打包时间,系统位数)
• uptime:查看当前系统时间、系统已运行时间、启用终端数量、平均负载信息(和top的第一行一样)
• free [-h]:当前系统内存的使用信息
◇ 名词解释:
▪ total 内存总量
▪ used 已用量(表示总计分配给缓存(包含buffers 与cache )使用的数量,但其中可能部分缓存并未实际使用)
▪ free 可用量
▪ shared 进程共享的内存量(共享内存,一般系统不会用到)
▪ buffers 磁盘缓存的内存量 (系统分配但未被使用的buffers 数量)
▪ cached 缓存的内存量 (系统分配但未被使用的cache 数量)
◇ 结果解释:
▪
▪ user2(-/+ buffers/cache这行的userd值):实际使用的buffers 与cache 总量,也是实际使用的内存总量
▪ free2:未被 使用的buffers 与cache 和未被分配的内存之和,这就是系统当前实际可用内存
▪ 计算公式:
- total1 = used1 + free1
- total1 = used2 + free2
- used1 = buffers1 + cached1 + used2
- free2 = buffers1 + cached1 + free1
▪ 区别:
- cached是cpu与内存间的,buffer是内存与磁盘间的,都是为了解决速度不对等的问题
- buffer是即将要被写入磁盘的,而cache是被从磁盘中读出来的(网络存储上读取文件,是不是cache的值会很高?)
• who [参数]:查看当前登入主机的用户终端信息
• last [参数]:查看所有系统的登录记录
• history [-c]:显示历史执行过的指令
◇ 默认显示1000条,条数可以在/etc/profile文件中的HISTSIZE参数上设置
◇ -c 时是清空所有历史
◇ !编码数字 执行“编码数字”那条指令
• sosreport:收集系统配置及架构信息并输出诊断文档,格式为sosreport - 工作目录切换
• pwd:显示用户当前所处的目录
• cd [目录名称]
◇ - 返回上次所处的目录
◇ .. 进入上级目录
◇ ~ 进入当前登录用户的家目录,或者使用~username
• ls [选项] [目录]:显示目录中的文件信息
◇ 选项:
▪ -a 全部文件
▪ -l 查看文件的属性、大小等信息
▪ -d 查看目录属性信息
- 文本文件编辑
• cat [选项] [文件]:查看纯文本文件(内容较少的)
◇ 选项:
▪ -n 显示行号
• more [选项] [文件]:查看纯文本文件(内容较多的),空格或enter进行翻页
• head [选项] [文件]:查看纯文本文件的前n行
◇ 选项:
▪ -n n 查看前n行
• tail [选项] [文件]:查看纯文本文件的后n行或者持续刷新的内容
◇ 选项:
▪ -n n 查看后n行
▪ -f 查看持续刷新的文件
• tr [原始字符] [目标字符]:替换文本文件中的字符
• wc [参数] [文本]:用于统计指定的文本的行数、字数、字节数
◇ 参数:
▪ -l 统计行数
▪ -w 统计单词(字)数
▪ -c 统计字节数
• stat [文件]:查看文件的具体存储信息和时间等信息
◇ 名词解释:
▪ Access:最后一次访问时间(仅仅访问,未改写),atime
▪ Modify:最后一次对文件内容修改,mtime
▪ Change:最后一次权限、所有者等属性修改,ctime
• cut [参数] [文本]:按列提取文本字符
◇ 参数:
▪ -f n 查看第n列
▪ -d 符号 设置间隔符
• diff [参数] [文件]:用于比较多个文本文件的差异
◇ 参数:
▪ --brief 确认两个文件是否相同
▪ -c 详细比较出多个文件之间的差异 - 文件目录管理命令
• touch [参数] [文件]:创建空白文件或者设置文件的时间
◇ 参数:
▪ -a 仅修改读取文件时间(atime)
▪ -m 仅修改修改文件时间(mtime) ctime 修改权限的时间
▪ -d 同时修改atime和mtime
• mkdir [参数] [目录]:创建空白目录
◇ 参数:
▪ -p 递归创建目录
• cp [参数] [源文件] [目的文件]:用于复制文件或目录
◇ 参数:
▪ -p 保留原始文件的属性
▪ -d 保留链接文件的属性
▪ -r 递归复制(用于目录)
▪ -i 询问是否覆盖
▪ -a 相当于-pdr
• mv [选项] 源文件 [目标路径|目标文件名]:剪切文件或将文件重命名
• rm [选项] [文件]:删除文件或目录
◇ -f 强制删除
◇ -r 删除目录
• dd [参数]:按照指定大小和个数的数据块来复制文件或转换文件
◇ 参数:
▪ if=输入的文件名称
▪ of=输出的文件名称
▪ bs=设置每个块的大小
▪ count=设置要复制块的个数
count=n 是仅仅处理n块数据后就不再工作了,n不加单位时默认为字符
◇ 其他说明:
▪ 设备文件/dev/zero不会占用系统存储空间,但是会提供源源不断地数据,可以作为dd命令的输入文件
dd if=/dev/zero of=560_file count=1 bs=560M
▪ dd可以用来将光盘文件直接压制成ISO文件
dd if=/dev/cdrom of=RHEL.iso
▪ 复制一部分内容
dd if=anaconda-ks.cfg of=xiaozhi bs=100 count=1 #从anaconda-ks.cfg复制前100个字符到文件xiaozhi
• file [文件名]:用于查看文件的类型
- 打包压缩和搜索命令
• tar [参数] [文件]:对文件打包压缩或解压
◇ 参数:
▪ -c 创建压缩文件
▪ -x 解开压缩文件
▪ -t 查看压缩包中有哪些文件
▪ -z 用Gzip格式压缩或解压(.tar.gz)
▪ -j 用bzip2格式压缩或解压(.tar.bz2)
▪ -v 显示压缩或解压的过程
▪ -f 目标文件名,必须放到参数的最后一位
▪ -p 保持原始的权限和属性
▪ -P 使用绝对路径来压缩
▪ -C 指定解压到的目录
• grep [参数] [文件]:在文本中搜索关键词并显示结果
◇ 参数:
▪ -b 将可执行文件当做文本来搜索
▪ -c 仅显示找到的总行数
▪ -i 忽略大小写
▪ -n 显示行号
▪ -v 反向选择,仅列出没有匹配到关键词的行
▪ -A 2 'root' /etc/passwd 过滤root所在后两行 (显示错误相关信息)
▪ -B 5 'root' /etc/passwd 过滤root所在前5行
▪ -w 过滤单词,(不连贯)
▪ -r 递归
• find [查找路径] [寻找条件] [操作]:按照指定条件查找文件
◇ 参数:
▪ -name 匹配名称
▪ -perm 匹配权限,mode为完全匹配,-mode为包含
▪ -user 匹配所有者
▪ -nouser 匹配无所有者文件
▪ -group 匹配所有组
▪ -nogroup 匹配无所有组文件
▪ -atime -n +n 匹配访问文件的时间,-n指n天以内,+n指n天以前
▪ -mtime -n +n 匹配修改文件内容的时间,-n指n天以内,+n指n天以前
▪ -ctime -n +n 匹配修改文件权限的时间,-n指n天以内,+n指n天以前
▪ -newer f1 !f2 匹配比文件f1新但比f2旧的文件
▪ -size +50KB -100KB 匹配大于50KB且小于100KB的文件
▪ -prune 忽略某一个目录
▪ -type b/d/c/p/l/f 匹配文件类型:块设备、目录、字符设备、管道、链接文件、文本文件(短命令)
▪ -exec ... {} ... \; 后面可跟用于进一步处理搜索结果的命令。{}表示find搜索到的每个文件,命令的结尾必须是\;
find / -user linuxprobe -exec cp -a {} /root/findresults/ \;
将用户linuxprobe的文件复制到目录/root/findresults