第二章 shell及常用命令
1. shell 充当用户与硬件之间的编译官
命令 参数 对象
打 狠狠地 小刚
参数 长格式 短格式
两个长格式不能合并
两个短格式可以合并
一个长格式与一个短格式不能合并
2. echo 命令
用于在终端输出字符串或变量提取后的值
date "+%Y-%m-%d %H:%M:%S"或date +"%Y-%m-%d %H:%M:%S" 格式化显示时间
3. ps 查看进程
运行状态
R 正在运行中的进程
S sleeping 等待为用户提示服务的进程
D die 不可中断的进程。进程不响应系统异步信号,即便用 kill 命令也不能将其中断。
Z zombie 僵死进程。没有提供服务,但是会一起消耗系统资源的进程
T stop
4. pidof 查看服务对应的进程号
服务名称 查看服务对应的进程号
5. kill 结束进程
进程号 结束进程 -9 强制终止
6. killall 结束所有进程
服务名称 结束服务的所有进程
7. ifconfig 查看网络接口信息
8. uname 查看内核信息
uname
uname -r
uname -a
9. uptime 查看系统负载状态
1分钟/5分钟/15分钟内的平均负载值 (CPU处理需要等待的队列长度,数值越低,负载越小)。一般情况下越过了5就可能出问题(经验值,并不是超5就一定出问题,也不是临界值)。
10. free 查看内存
查看内存使用量情况
free -h
11. who 查看登录的用户终端信息
12. last 登录记录
查看服务器的登录记录,里面的信息可以被修改,因此不太可靠,可供参考
13. history 历史命令
查看执行命令的历史记录,可用!加序号快速使用历史命令
14. sosreport
用于收集系统配置及架构信息并输出诊断文档,格式为 sosreport。可供远程调试用。
15. cat
cat命令用于查看纯文本文件(内容较少的),格式为“cat [选项] [文件]”
cat -n 显示行号
16. more 带翻页
more 命令用于查看纯文本文件(内容较多的),格式为“more [选项]文件”,more自带翻页
17. head 查看前n行
head 命令用于查看纯文本文档的前 N 行,格式为“head [选项] [文件]”。
head -n 10 file 查看前10行
18. tail 查看后几行
tail 命令用于查看纯文本文档的后 N 行或持续刷新内容,格式为“tail [选项] [文件]”。
tail -n 20 file 查看最后20行
tailf -f 持续刷新文件内容
19. tr 替换
tr 命令用于替换文本文件中的字符,格式为“tr [原始字符] [目标字符]”。
cat /home/file |tr [a-z] [A-Z] 将文件中的字母全部转为大写并显示到屏上。
20. wc 文本统计
wc 命令用于统计指定文本的行数、字数、字节数,格式为“wc [参数] 文本”。
-l 只显示行数 ,空行也是一行
-w 只显示单词数
-c 只显示字节数
21. stat
stat 命令用于查看文件的具体存储信息和时间等信息,格式为“stat 文件名称”。
atime 最后一次查看文件内容的时间
mtime 最后一次去修改文件内容的时间
ctime 最后一次去修改文件属性信息的时间
22. diff 文件比较
diff 命令用于比较多个文本文件的差异,格式为“diff [参数] 文件”
来使用 diff --brief 命令显示比较后的结果,判断文件是否相同
使用带有-c 参数的 diff 命令来描述文件内容具体的不同
23. touch
touch 命令用于创建空白文件或设置文件的时间,格式为“touch [选项] [文件]”。
-a 仅修改“读取时间”(atime)
-m 仅修改“修改时间”(mtime)
-d 同时修改 atime 与 mtime
mkdir 新建目录
mkdir -p 新建多级目录
24. cp 复制
cp 复制文件或目录
-p 保留原始文件的属性
-d 若对象为“链接文件”,则保留该“链接文件”的属性
-r 递归持续复制(用于目录)
-i 若目标文件存在则询问是否覆盖
-a 相当于-pdr(p、d、r 为上述参数)
25. mv 移动/重命名
mv 移动/重命名
26. rm 删除
rm 删除文件或目录
-r 递归操作,删除目录
-f 强制删除,不提示确认信息
27. file 查看文件类型
file 命令用于查看文件的类型,格式为“file 文件名”
28. dd
dd 命令用于按照指定大小和个数的数据块来复制文件或转换文件,格式为“dd [参数]”
dd 实际就是一个复制功能
if input file
of out file
bs block size
count 次数
dd if=test1.sh of=test2.sh bs=100 count=2 取出test1中100字节的内容到test2
dd if=/dev/zero of=test bs=100 count=1 从黑洞文件中取出100字节的内容填充到test中,test中无内容,但是它的大小为500字节。
dd if=/dev/cdrom of=RHEL-server-7.0-x86_64-LinuxProbe.Com.iso 创建镜像文件
29. tar 打包压缩
tar 打包压缩
c 打包
z 压缩 gzib .tar.gz
j 压缩 bzip2 .tar.bz2
v 显示过程
f 指定包的名称
x 解压
-C 指定解压目录
tar -xvf 不加压缩类型,可以自动分辨压缩类型解压
30. grep 按行提取
grep 按行提取(搜索)
grep 关键词 文件名
-b将可执行文件(binary)当作文本文件(text)来搜索
-c仅显示找到的行数
-i忽略大小写
-n显示行号
-v反向选择—仅列出没有“关键词”的行
31. cut 按列提取
cut 命令用于按“列”提取文本字符,格式为“cut [参数] 文本”。
cut -d: -f1 /etc/passwd 提取以:分隔的第一列的信息,将所有用户的名称提取了出来
32. find 搜索
find 搜索文件
-name 匹配名称
-perm 匹配权限(mode 为完全匹配,-mode 为包含即可)
-user 匹配所有者
-group 匹配所有组
-mtime -n +n 匹配修改内容的时间(-n 指 n 天以内,+n 指 n 天以前)
-atime -n +n 匹配访问文件的时间(-n 指 n 天以内,+n 指 n 天以前)
-ctime -n +n 匹配修改文件权限的时间(-n 指 n 天以内,+n 指 n 天以前)
-nouser 匹配无所有者的文件
-nogroup 匹配无所有组的文件
-newer f1 !f2 匹配比文件 f1 新但比 f2 旧的文件
--type b/d/c/p/l/f 匹配文件类型(后面的字幕参数依次表示块设备、目录、字符设备、管道、链接文件、文本文件)
-size 匹配文件的大小(+50KB 为查找超过 50KB 的文件,而-50KB 为查找小于50KB 的文件)
-prune 忽略某个目录
-exec …… {}\; 后面可跟用于进一步处理搜索结果的命令
find 结果中的报错:
find: ‘/proc/2631/task/2631/fd/6’: No such file or directory
find: ‘/proc/2631/task/2631/fdinfo/6’: No such file or directory
find: ‘/proc/2631/fd/6’: No such file or directory
find: ‘/proc/2631/fdinfo/6’: No such file or directory
/proc/中是一些虚拟文件,这些报错不影响
Linux系统上的/proc目录是一种文件系统,即proc文件系统。与其它常见的文件系统不同的是,/proc是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,用户可以通过这些文件查看有关系统硬件及当前正在运行进程的信息,甚至可以通过更改其中某些文件来改变内核的运行状态。
基于/proc文件系统如上所述的特殊性,其内的文件也常被称作虚拟文件