1.路径表述
1.1相对路径
当前目录 ./
上一级 ../
上上级 ../../
1.2 绝对路径
从根目录开始 /
1.3 家目录
家目录可以用~表示
cd空格也表示返回家目录
2.pwd代表着查看当前路径
3.查看目录下的文件
ls列出所有文件
ll等价于ls -l 列出所有文件的详情
4.文件操作
mkdir :创建目录
mkdir -p 创建多级目录
touch:创建文件
5.用户操作
useradd:添加用户
passwd:设置或者修改密码
su:切换用户
6.编辑操作vi
6.1插入模式
按「i」切换进入插入模式「insert mode」,按"i"进入插入模式后是从光标当前位置开始输入文件;
按「a」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;
按「o」进入插入模式后,是插入新的一行,从行首开始输入文字
6.2 命令行模式
输入dd进行删除当前行操作
按i,o,a进入插入模式
输入冒号:进入尾行模式
6.3 尾行模式
w保存
q退出
q! 强制退出
set number显示行号
输入行数可以跳转到指定的行号
%s/str1/str2 进行字符串批量替换
7.查看文件
cat:展示所有内容
head:头部查看
tail:尾部查看
tail -100f:查看100行内容并进入等待模式,文件一旦有新的内容会显示出来
more:查看一部分内容,翻页可以使用空格键翻页
8.文件管理
8.1cp
-r 递归复制,复制文件夹
8.2mv
移动类似于剪切
文件的重命名
8.3rm
-r 递归删除
-f 不提示删除
rm -rf 不提示删除对应的文件夹,谨慎操作
复制别的命令如rm -rf /afjdakl/fdaslkfjl/fasdlk时要注意/后面有没有空格
9.echo:在控制台输出指定的文本
10.输出内容的重定向
> 将控制台的输出覆盖指定的文件,文件不存在会自动创建
>> 将控制台的输出追加到指定的文件,文件不存在会自动创建
11.管道符
连接多个命令,将前一个命令输出做为后续命令的输入
eg. 查看文件的第三行内容
先选到前三行,再选最后一行
head -3 text.txt | tail -1
管道符可以无限连用
args
正常情况将左边的内容做为右边输入
增加了xargs的参数之后将左边的内容做为右边命令的参数
12.find命令
find 位置 -name 匹配条件
eg find / -name text.txt
find ~ -name text.txt
find ~ -name text.*
13.grep 命令
查找包含条件的⾏
参数
-c 统计个数
-i 忽略⼤⼩写
-e 写多个条件
-E 正则
-r 递归查看⽂件
-v 反转,显示没有匹配到的
14.sed
做⽂件在线编辑
格式: sed 参数 动作 要操作的⽂件
⽂件多⾏的增加和删除
sed 2,5d 删除2~5⾏
sed 2,$d 删除2到尾⾏
sed 2d 只删除第⼆⾏
sed '2a 追加⽂本'
⽂件的替换与显示
sed '2,5c 替换⽂本'
sed '2,5p' 打印2~5⾏
-n静默模式,只会显示相关⾏
sed -n '2,5p' 只打印2~5⾏
数据查找
sed '/root/p' 查找包含root的⾏进⾏打印,p为打印命令
数据的查找替换
sed '/要执行的文件/{s/查找的内容/要替换的内容/;p}'
数据批量替换
sed 's/要替换的数据/替换之后的数据/g',g为全局操作标志
执⾏多个命令
-e 同时删除2~5⾏和10~15 :sed -e '2,5d' -e '10,15d'
如果我们希望修改原始⽂件在命令中加入 -i,也可以将执行命令后打印在控制台的内容导入或者覆盖原始文件
15.awk
针对数据进⾏分析和处理,逐⾏处理解析⽂本数据
默认awk对每⼀⾏⽂本通过\t分割
查看⽂本中的第⼀项,$+数字表示文本的第几个字段
awk '{print $1}' ⽂件名
查看多项
awk '{print $1"\t"$2}'
修改分隔符
⽤冒号分割 :awk -F ':' '{print $1}'
开始和结束增加⼀些语句,也可以用来编程
awk 'BEGIN {} {} END{}'
搜索
awk '/条件/{}'
awk中⼀些常量
$0 ⼀整⾏
NF 字段个数
NR 当前是第⼏⾏
FILENAME 读取的⽂件名字是谁
编程
统计⽂件夹个数
特殊API:substr() 字符串切割
要切割的字符串
起始位置
切割⻓度
ll | awk '{if(substr($0,1,1)=="d") {count++}} END {print count}'