LINUX命令三

网络相关配置

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 -r

正则

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要先安装

猜你喜欢

转载自blog.csdn.net/chengge1124/article/details/81782513