目录操作
1. cd cd 目录路径(不是以/开头的都是相对路径,否则是绝对路径)
特别的路径:.当前目录,… 上层目录,- 前一个目录 ,~ 家目录,~ home home用户的目录
2. pwd 显示当前目录,语法: pwd [-P] 加上-P 表示显示真实目录而不是链接文件本身目录
3. mkdir 新建目录, 语法: mkdir [-p] 目录名 加上-p表示依序建立目录
4. rmdir 删除空目录,语法:rmdir [-p] 目录 加上-p表示如果上层目录为空也会被删除
5. ls 语法:ls [-aAdfFhilnrRSt] 文件名或目录; ls [–color={nerver,auto,always} ] 文件名或目录;ls [–full-time ] 文件名或目录;
参数说明
-a:全部包括隐藏文件
-A:全部包括隐藏但不包括. …
-d:列出目录
-f:不进行排序
-F: 给予附加数据结构
-h:人性化显示文件大小
-i:显示文件inode号码
-l:详细信息
-r:逆序显示
-R:该目录下的文件也显示
-S:按照文件大小排序
-t:根据时间排序
–full-time: 完成的时间模式输出时间
–time={atime ctime} atime读取内容的时间 ctime 文件属性改变的时间
6. cp 复制 语法:cp [-adfilprsu] 源文件 目标文件
参数:
-a: 相当于 -dr --preserve=all 保留源文件的信息
-d: 复制链接文件属性
-f: 强制覆盖目标文件
-i: 提示是否覆盖目标文件
-l: 进行硬链接文件建立
-p: 连同文件的属性一起复制过去
-r: 递归复制 复制目录
-s: 复制为快捷方式
7. rm 删除 语法:rm [-fir] 文件或目录
参数:
-f: 强制删除
-i: 删除前会询问是否删
-r: 删除目录
8. mv 移动/重命名 语法: mv [-fiu] 源文件 目标文件
参数:
-f: 强制覆盖
-i: 覆盖前会询问是否覆盖
-u: 若目标文件已经存在,且source比较新才会覆盖
9. cat 从第一行开始查看 语法 cat [-AbEnTv]
参数:
-A: === -vET 显示特殊字符
-b: 列行号 空白不算行号
-E:结尾$显示
-n: 显示行号,包括空白行
-T:tab 显示为^I
-v: 列出一些看不出来的字符
10. tac 从最后一行开始查看
11. nl 添加行号
12. more 一页页的看
按键意思:
空格: 下一页
enter: 下一行
/字符: 向下查找字符
:f 显示文件名和行数
q: 退出
b ctrl+b 往回翻页
13. less 一页页的
按键意思:
空格: 下一页
pagedown: 下一页
pageup: 上一页
/字符: 向下查找字符
?字符: 向上查找字符
n: 重复前一个查找
N:反向重复前一个查找
g: 前进到第一行
G:前进到最后一行
g: 离开
14. head 取出前几行 语法:head -n number 文件
15. tail 取出后几行 语法:head -n number 文件
16. touch 修改文件时间和创建新文件
17. which 脚本文件查找
18. whereis 脚本文件查找
19. locate 脚本文件查找
20. df 列出文件系统的整体磁盘使用量
语法: df [-ahikHTm] [目录或者文件名]
参数: -a : 所有
-k: 单位k
-m:单位M
-h:以人们交易阅读的单位显示
-H: 以M=1000k替换M=1024K
-T: 连同硬盘分区的文件系统名也列出
-i:以inode数量显示
21. du 查看文件系统的磁盘使用量
语法: du [-ahskm] 文件或者目录
参数: -a: 所有目录与文件
-h: 以人们交易阅读的单位显示
-s: 列出总量
-S: 不包括子目录的总结
-k: 单位k
-m:单位M
21.ln 新建链接
语法:ln [-sf] 源文件 目标文件
参数:-s: 符号链接 ,不带就是硬链接(区别:硬连接删除源文件和还存在,符号链接删除源文件后不存在(相当于快捷键))
-f: 覆盖目标文件
22.gzip 压缩 扩展名*gz 查看压缩文件zcat/zmore/zless/zgrep 替换compress
语法:gzip [-cdtv#] 文件名
参数:-c 输出压缩数据 默认压缩会把源文件删除 gzip -c text1.txt > text1.txz.gz 会保留源文件压缩成新的文件
-d 解压缩参数
-t 检验压缩的一致性
-v 显示压缩比等信息
-# #为数字1-9 表示压缩等级 默认6
23.bzip2 压缩 扩展名*bz2 查看压缩文件bzcat/bzmore/bzless/bzgrep 替换gzip
语法:bzip2 [-cdkzv#] 文件名
参数:-c 输出压缩数据
-d 解压缩
-k 保留原生文件
-z 压缩参数
-v 显示压缩比等信息
-# #为数字1-9 表示压缩等级 默认6
24.xz 压缩 扩展名*xz 查看压缩文件xzcat/xzmore/xzless/xzgrep 替换gzip
语法:xz [-dtlkc#] 文件名
参数:-c 输出压缩数据
-d 解压缩
-t 检验压缩的一致性
-l 列出压缩文件相关信息
-k 保留原生文件
-# #为数字1-9 表示压缩等级 默认6
25.tar 打包
压缩打包 tar -[z|j|J]cv -f filename.tar.bz2 要被压缩的文件或者目录
查询 tar -z|j|J]tv -f filename.tar.bz2
解压缩 tar -z|j|J]xv -f filename.tar.bz2 -C 放置解压后文件的位置
参数说明:-z 利用gzip压缩 -j 利用bzip2压缩 -J利用xz压缩
-c 建立打包文件
-v 查看被打包的文件
-t 查看打包文件的内容含有那些文件名
-x 解压文件
-f 文件名
-C 解压缩到那个目录
27.diff 对比文件
diff [-bBi] from-file to-file
b 忽略空白
B 忽略空行
i 忽略大小写
** 28. read ** 读取键盘输入变量
read [-pt] variable
-p 后面提示字符
-t 等待秒数
29.echo
echo [-e] string 字符串里的变量用${variable}
-e显示转义
echo "scale=100; a(1)*4" | bc -l // 计算圆周率 bc 需要安装
echo $? 查看命令是否执行成功, 成功返回1 失败返回0
30.find
find . -name '*' -delete // 删除当前目录下的所有文件
31. test
test -参数 文件名
-e 测试文件在不在存在
-f 测试文件是否存在且文件类型为file
-d 测试文件是存在且为目录
32. netstat
netstat -tuln 获取目前主机启动的
管道命令
管道命令仅会接受标准输出,管道命令必须要能够接受前一个命令到数据成为标准输入才能继续处理。常用有:less more head tail ,还有下面一些命令:
1. cut 选取一段信息
语法: cut -d ‘分割字符’ -f filelds
cat -c 字符区间
2. grep 分析一行数据,如果数据中有我们想要到数据,就拿出来
grep [-acinv] [–color=autp] ‘查找的字符’ filename
参数:-a:将二进制文件以文本文件查找
-c: 设置查找字符次数
-i: 忽略大小写
-n: 顺便列出行号
-v: 反向
正则查找字符串 grep -n ‘正则表达式’ 文件名
’the'
查找特定字符串 the't[ea]st'
表示集合 集合中任意一个匹配上 例如:test tast'[^a-z]'
表示除了a-z 范围的小写字符,例如: A-Z'^[a-z]'
表示以小写字母开头的字符串 ,例如:as (特别注意: ^在[]表示非 在[]外表示以什么开头)'\.$'
表示以.结尾,例如:go go let go.'^$'
表示查找空行g..d
表示g和d直接任意两个字符串 例如:good glad .表示任意一个字符串oo*
表示两个以上的o, 例如:gooooog *表示重复上一个字符至少一次g.*g
表示g和g中间有任意零个或者多个字符串go\{2\}
表示2个oogo\{2,5}
表示2到5个oogo\{2,\}
两个以上oo {}需要转义- | 或
egrep -v '^$|^#' regular_express.txt
删除空行和开头为#的行 - ‘+’ 一个以上
egrep -n 'go+d' regular_express.txt
例如:good god - ? 零个或一个
egrep -n 'go?d' regular_express.txt
例如: gd god - ()分组
egrep -n 'g(la|oo)d' regular_express.txt
例如:glad good - ()+ 多个复制组
echo 'AxyzxyzxyzxyzC' | egrep 'A(xyz)+C'
查找文件 grep '正则' 文件路径 2> /dev/null
第一层文件
查找文件 grep '正则' $(find 文件路径 -type f) 2> /dev/null
递归文件
查找文件 grep -l '正则' $(find 文件路径 -type f) 2> /dev/null
递归文件 仅仅列出文件名
3. sort 排序
sort [-fbMnrtuk] [file or stdin]
参数: -f 忽略大小写
-b 忽略最前面的空格
-M 以月份的名字来排序
-n 使用纯数字排序
-r 反向排序
-u 相同数据仅出现一行
-t 分隔符号
-k 以那个区间进行排序
4. uniq 去重
uniq [-ic]
-i 忽略大小写
-c 计数
5. wc 计算输出整体数据
wc [-lwm]
-l 仅列出行号
-w 仅列出多少字母 英文字母
-m 多少字符
分别是行数 字母数 字符数
6.tee 双向重定向
tee [-a] file
-a :以累加的方向,将数据写入file
一边写入文件,一边在屏幕显示。
7.tr 替换删除文字
tr [-ds] SET1
-d 删除SET1文字
-s 替换重复字符
删除:
替换:
小写转化为大写:
8. col
col [-xd]
-x 把tab键转换为对应的空格键
9. join 两个文件中有相同数据的那一行,才将它加在一起
-t 分隔符
10. paste 将两行贴在一起,中间以Tab分隔
-d 分隔符 默认是tab
- 如果file部分为-表示来自标准输入
12.xargs 生成命令的参数
参数: -0 将特殊字符还原为一般字符
-e 当数据分析到这个字符的时候停止
-p 执行命令前会询问
-n 后面接次数 要使用几个参数
13.减号 - 将前一个的命令的stdout当作后一个命令的stdin
14. sed
- | sed ‘2,5d’ 删除2-5行
- | sed ‘5a 字符串’ 在第五行添加字符串
- | sed ‘5a 字符串\ fdsf ?’ 换行添加字符串
- | sed ‘2,5c 字符串’ 把2-5行换成字符串
- | sed -n ‘5,7p’ 查看5-7行
- | sed ‘s/要被替换到字符串/新的字符串/g’
ifconfig eth0 | grep 'inet ' | sed 's/^.*inet //g' | sed 's/ *netmask.*$//g'
查ip - sed -i ‘s/要被替换到字符串/新的字符串/g’ 文件名 直接替换文件到字符串
- sed-i ‘$a 字符串’ 在行末增加字符串
15 lsof -i tcp:port 端口占用