一、常用的shell命令
1、ls [目录] --显示文件夹下有哪些内容的命令
- 1• ls -a [目录]
• 显示当前目录下的所有文件,包括隐藏文件
• ls -l []
• 以长格式显示文件的所有(详细)信息,简写为: ll
• ls -h []
• 显示文件大小的单位,便于阅读 - h human-readable
2、新建文件夹和文件
• mkdir 目录1 目录2
• mkdir –p /…/A/B/C
–在指定文件新建A文件夹 并在A文件夹下新建B 在新建C
• mkdir -m 权限值 目录
• 新建文件 touch 文件
3、删除文件夹和文件
• 删除空文件 rmdir 目录
- rmdir –p /mnt/A/B/C
–删除mnt下的A、B、C 目录,但是C必须是空目录,他是先删除C然后若此时B为空了就删除B 反之不删除B A同样的判断
• 删除文件:
rm 1.txt 删除1.txt文件,有提示
rm –f 1.txt 无提示
rm –r B 删除B目录
rm –rf B 删除B目录,无提示 - 复制文件:
• cp 源文件路径/文件名 /目标路径/文件名
• cp –R A files 把当前A目录复制到files路径下
• 移动(剪切):mv 源文件 目标文件(可以改名)
• mv 1.txt A/ 移动不改名
• mv 1.txt A/2.txt 移动改名
• mv 2.txt 3.txt 文件重命名 - 文件内容查看命令:
• cat 文件名(文件路径) 查看文件内容 一次性显示完
• cat –n 显示行号
• more文件名(文件路径)分屏显示 会自动退出
• less 文件名(文件路径)分屏显示 不会自动退出
• head/tail
• 默认情况下(可以改) head 显示文件前十行 tail显示后十行
• head -5 文件路径 查看前5行
• wc
• –l 统计行数 • –w 统计单词数 • –c 统计字节数 - find 命令:搜索文件与目录
- 作用:是在某个指定的路径下找我们需要的文件或目录,目标是文件或目录。 类似于在 Windows 系统中执行的“搜索”操作。
- 语法:find [查找范围] [查找条件表达式]
• -name 按名称查找,允许使用通配符
• -type 按文件类型查找文件类型包括:普通文件(f)、目录(d)、块设备 文件(b)、字符设备文件(c)
• -size 按文件大小查找,使用“+”、“-”号设置超过或小于指定的大小 作为查找条件。常用的容量单位包括 k(注意是小写)、M、G
• # find /etc -size +1024k -name “init*”
文本三剑客-全
grep 命令:查找文件内容
- 作用:是在某个文件中找我们所需要的某部分内容,目标是字符串。则类似于在
WORD 中执行的“查找”操作。
• 语法:grep [选项] 查找条件 目标文件
• 常用选项
• -c :计算找到 ‘搜寻字符串’ 的次数
• -i :忽略大小写的不同,所以大小写视为相同
• -n :顺便输出行号
• -v :反向选择,亦即显示出没有 ‘搜寻字符串’ 内容的那一行!
• --color=auto :可以将找到的关键词部分加上颜色的显示!
• 注
• grep 不支持通配符,而是使用正则表达式:
• ^ 表示以什么字符开头
$ 表示以什么字符结尾
如:“^word”表示以“word”开头
“word$”表示以“word”结尾
“^$”表示空行
Sed-利用脚本来处理文本文件
常用选项
-e 指定要执行的命令,只有一个编辑命令时可省略。
-n只输出处理后的行,读入时不显示。
-i 直接编辑文件,而不输出结果。
指令编辑
编辑指令格式: [地址 1][地址2]操作[参数]
这里的“地址”可以是正则表达式,也可以是数字、$,如果没有地址就代表是所有的行
常用操作
p:输出指定行
d:删除指定的行
s:字串替换,格式: 行范围 s/旧字符串 / 新字符串 /g
r:读取指定文件
w:保存为文件
i:插入,在当前行前面插入一行或多行
用法示例
1>输出指定的行:
sed -n 'p' /etc/passwd //将所有内容输出
sed -n '6, 8p' /etc/passwd //将第6 ~ 8行内容输出
sed -n 'p;n' /etc/passwd //将所有奇数行输出
sed -n 'n;p' /etc/passwd //将所有偶数行输出
sed -n '1,10{
p;n}' /etc/passwd //将 1 ~ 10行中的奇数行输出
sed -n '1,10{
n;p}' /etc/passwd //将 1 ~ 10行中的偶数行输出
sed -n '10,${
n;p}' /etc/passwd //将第10行到末尾之间的奇数行输出
sed -n '$p' /etc/passwd //将最后一行输出
sed -n '1,+4p' /etc/passwd //将第1行开始,连续4行进行输出(1~5行)
sed -n '/root/p' /etc/passwd //将匹配包含root 的行进行输出
sed -n '10,/nom/p' /etc/passwd //将从第10行至第一个包含nom的行进行输出
sed -nr '/ro{
1,}t/p' /etc/passwd //匹配不少于1次前导字符o,加-r参数支持扩展正则表达式
sed -n '/root\|ntp/p' /etc/passwd //输出包含root或者ntp 的行
注意,如果遇到特殊符号的情况,拓展正则还需要转义字符”\”
sed -n '/nom/=' /etc/passwd //将包含nom所在的行行号输出,"=” 号
sed -e '5q' /etc/passwd //输出前5行信息后退出,q退出
sed -e '=' -e '5q' /etc/passwd //输出前5行信息并输出行号后退出,q退出
2>插入符合条件的行
# sed '/root/i admin:x<