网络相关配置
ifconfig 查看ip信息
远程复制 scp /etc/h.txt 192.168.1.1:/tmp
配置ssh(之后访问无需密码):
1. ssh-keygen
2. ssh-copy-id -i 192.168.1.16
赋值变量 x=2
调用x echo $x
取消变量 unset x
设置别名 alias x=‘ls /’
将命令得到的结果赋值到变量 x=$(ls)
搜索文件 ls [a-z][0-9].txt []代表在中间取一个值, a-z代表aAbBcC.....z不包含Z
ls [!0-9],txt 查找不以数字开头的文件
执行历史命令 !638
查看上条命令执行是否成功 echo $? 成功则为0
# 注释
|| 前面命令成功,则后面不执行 ;只有前面命令失败后面才执行
&& 只有前面的命令执行成功才会执行后面的命令
\ 转义符号
? 匹配一个任意字符 例: ls ???.txt
固化命令:在登录时就加载出命令 在/etc/bashrc 文件中添加想要的命令
grep命令
grep -A 2 ‘fuck’ /etc/passwd 显示查询结果及后两行
grep -B 2 ‘fuck’ /etc/passwd 显示查询结果及前两行
grep -C 2 ‘fuck’ /etc/passwd 显示查询结果及前后两行
grep -c ‘fuck’ /etc/passwd 显示查询行数
grep -i ‘fuck’ /etc/passwd 无视大小写查询
grep -v ‘fuck’ /etc/passwd 取目标之外的剩余结果
grep -w ‘fuck’ /etc/passwd 单词匹配
grep -rl 'fuck' /etc/passwd 匹配文件内容中带fuck的文件路径
正则
grep '^root' 匹配以root开头的
grep 'root$' 匹配以root结尾的
grep 'a.b' .代表任意一个字符
grep 'ab*' *代表b有0个或者多个
grep 'ab?' 代表b有0个或者1个
egrep 'ab+' 必须用egrep +代表b有1个或者多个
egrep 'ab{2}' 2个b
egrep 'ab{2,4}' 2到4个b
egrep 'ab{2,}' 2个以上b
egrep '[abc\ / \-]' 含abc/-中一个字符的
[a-z] 代表所有的小写字母
[A-Z] 代表所有的大写字母
[a-Z] 代表所有的大小写字母
注意点如果要匹配的是-本身,则必须放到最后[asd\-]
echo ^[^0-9] 匹配不是数字开头的
sed命令
sed '3d' 删除第三行
sed '1,4d' 删除1-4行
sed '1;4d' 删除第1行和第4行
sed 's/sb/fuck' 把所有行的第一个sb换成fuck
sed 's/sb/fuck/g' 把所有行的所有sb换成fuck
sed '3p' 打印第三行
sed '3c 123456' 把第三行改成123456
sed '3a 123' 在第三行后插入123
sed '3i 123' 在第三行前插入123
sed'/^root/d' 加入正则法
sed -r '/^[0-9][a-Z]+sb$/ s/sb/SB/g' r为扩展模式
sed -ri 多加一个i则是直接将文件内容改掉,而不是仅仅输入到终端
sed -r 's/^([a-Z]+)([^a-Z])([a-Z]+)([^a-Z])/\3\2\1\4/' 将第一个单词和第三个单词换位置
sed -r 's/ //g' 将所有的空格去掉
sed -r ‘s/[0-9]//g’ 将所有的数字去掉
awk文本处理
awk -F: '{print $1,$7}' 打印以:为分隔符取第1段和第7段 (:后面加空格)
awk -F: '{print $1,$NF}' 打印以:为分隔符取第1段和最后一段
awk -F: 'NR<=3{print $1,NR}' 打印前三行的第一段
awk -F: 'NR<=3{print NR,"-----",$1}' 打印出前三段 1------root 的样式
awk -F: '/log$/{print $1}' 匹配有log的行,打印第1段
awk -F: '$1~/^r.*t$/{print $3}' 匹配第一段中以r开头t结尾的行,并打印出这些行的第三段
awk -F: '$1=="root"{print $3,NR}' 匹配第一段是root的行,并打印出这些行的第三段和行号
awk -v x=$count -F: '$3>=x{print NR,$1}' 匹配第三段大于参数x的行,打印行号和第一段
其他命令
cat a.txt |sort |uniq
排序 去重
du -sh 统计文件大小
find /file -name "*.txt" 查找file文件夹中以txt结尾的文件
find /file -size +30M 查找file文件夹中大于30M的文件
find /file -size +10M -30M 查找file文件夹中大于10M小于30M的文件
变量
linux 没有数据类型之分
set 显示所有变量
env 显示环境变量
变量关系操作
test
[] 括号里前后要空格
1.测试数值
[ $x -gt $y ] 判断x的值大于y
[ $x -ge $y ] 判断x大于等于y
[ $x -lt $y ] 判断x小于y
[ $x -le $y ] 判断x小于等于y
[ $x -eq $y ] 判断x等于y
[ $x -ne $y ] 判断x不等于y
[ $x -gt $y -a $a -eq $b ] 判断x大于y并且a等于b
[ $x -gt $y -o $a -eq $b ] 判断x大于y或者a等于b
2.测试文件状态
-d 目录
-f 普通文件-
-w 可写
-r 可读
-x 可执行
3.字符串测试
= 两字符串相等
!= 两字符串不相等
-z 空串
-n 非空串
赋值运算符
((x=x+1)) --------((x+=1))
echo $((x-=2))
expr $x + $y
echo "scale=2;20/100" | bc -l 保留两位小数 bc要先安装