目录
一:文本处理三剑客
功能概述:
grep:文本过滤器,仅仅是过滤文本,没有编辑功能
sed:Stream EDitor,流编辑器,可以按照特定规则按行编辑数据(sed是不处理原数据的,编辑完的行默认是打印到屏幕,所以sed运行完原文件内容是不变的)
awk:报告生成器,可以根据特定字符分割行(如空格、冒号、顿号等),然后按照你设定的格式显示。(如果对处理的数据需要生成报告之类的信息,或者你处理的数据是按列进行处理的,最好使用 awk)
适合场景:
grep 更适合单纯的查找或匹配文本(尤其擅长过滤)
sed 更适合编辑匹配到的文本(尤其擅长替换)
awk 更适合格式化文本,对文本进行较复杂格式处理(擅长取列)
1.grep命令
格式:grep [options] [regex] [file]
options选项:
-i : 忽略大小写。不会区分大小写字符。
-v : 不匹配。通常,grep 程序会打印包含匹配项的文本行。这个选项导致 grep 程序只会打印不包含匹配项的文本行。
-c : 打印匹配的数量(或者是不匹配的数目,若指定了-v 选项),而不是文本行本身。
-l : 打印包含匹配项的文件名,而不是文本行本身。
-L : 相似于-l 选项,但是只是打印不包含匹配项的文件名。
-n : 在每个匹配行之前打印出其位于文件中的相应行号。
-h : 应用于多文件搜索,不输出文件名。
2.sed命令
格式:sed [options] [commands] [file(s)]
options选项:
-n:抑制输出源文件内容,则只有经过sed匹配的那一行才会被打印出来
-i:修改源文件,sed默认是不会修改原文件的,加上-i选项会直接修改源文件
-e:该选项允许在同一行里执行多条命令。
commands选项(重点):
p:打印行
s:替换匹配到的关键字
c:替换行
i:在行前插入一行内容
a:在行后插入一行内容
d:删除行
3.awk
格式:awk [option] 'pattern {action}' [file(s)]
内置变量:
NR:读取到所有记录(包括多个文件)的行数
NF:当前行中的字段个数(列数)
FS:输入字段分隔符(默认值为空格)
OFS:输出字段分隔符(默认值为空格)
函数: length长度,gsub替换,substr截取,split分割,system用别的命令
二:su、sudo
1、su
su用于用户之间的切换。但是切换前的用户依然保持登录状态。如果是root 向普通或虚拟用户切换不需要密码,反之普通用户切换到其它任何用户都需要密码验证。
su test:切换到test用户,但是路径还是/root目录
su - test : 切换到test用户,路径变成了/home/test
su : 切换到root用户,但是路径还是原来的路径
su - : 切换到root用户,并且路径是/root
su不足:如果某个用户需要使用root权限、则必须要把root密码告诉此用户。
退出返回之前的用户:exit
2、sudo
sudo是为所有想使用root权限的普通用户设计的。可以让普通用户具有临时使用root权限的权利。只需输入自己账户的密码即可。
进入sudo配置文件命令:
vi /etc/sudoer或者visudo
案例:
允许hadoop用户以root身份执行各种应用命令,需要输入hadoop用户的密码。
hadoop ALL=(ALL) ALL
案例:
只允许hadoop用户以root身份执行ls 、cat命令,并且执行时候免输入密码。
配置文件中:
hadoop ALL=NOPASSWD: /bin/ls, /bin/cat
三:系统服务
service iptables status --查看iptables服务的状态
service iptables start --开启iptables服务
service iptables stop --停止iptables服务
service iptables restart --重启iptables服务
chkconfig iptables off --关闭iptables服务的开机自启动
chkconfig iptables on --开启iptables服务的开机自启动
四:网络管理Linux常用命令
1、主机名配置
[root@node1 ~]# vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=node1
2、IP 地址配置
[root@node1 ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
3、域名映射
/etc/hosts文件用于在通过主机名进行访问时做ip地址解析之用。所以,你想访问一个什么样的主机名,就需要把这个主机名和它对应的ip地址。
[root@node1 ~]# vi /etc/hosts
#### 在最后加上
192.168.52.201 node1
192.168.52.202 node2
192.168.52.203 node3
五:其他Linux常用命令
动态查看进程变化
命令:top 动态查看CPU,内存,等情况
查看当前目录
命令:pwd 查看当前目录路径
查看文件大小
命令:du -sh 直观查看文件或者文件夹大小
查看分区
命令:df -Th 查看linux系统里的正在使用的分区的信息
查看进程
命令:ps -ef 查看所有正在运行的进程
结束进程
命令:kill pid 或者 kill -9 pid(强制杀死进程) pid:进程号
网络通信命令
ifconfig:查看网卡信息
命令:ifconfig 或 ifconfig | more
ping:查看与某台机器的连接情况
命令:ping ip
netstat -an:查看当前系统端口
命令:netstat -an
搜索指定端口
命令:netstat -an | grep 8080
配置网络
命令:setup
重启网络
命令:service network restart
关闭防火墙
命令:chkconfig iptables off
或者:
iptables -L;
iptables -F;
service iptables stop
清屏
命令:ctrl + l