BigBrother的大数据之旅Day 2 Linux(2)

1vi和vim

vim是vi的升级版,加入了高亮更适合编程,是liunx中的文本编辑器

1.1vim + 文件: 打开文件,光标移动到末

1.2 vim +数字 文件: 打开文件,光标移动到数字行

1.3 vim + /p 文件:打开文件,并查找出p

1.4 vim模式

命令模式(编辑模式):键盘中输入的字符被当成命令

输入模式:键盘中输入的字符被当做内容

末行模式:复杂命令

下图为三种模式的切换
在这里插入图片描述

1.5删除操作

x 删除单个字母

3x 删除3个字母

dd 删除一行

dw 删除一个单词 , 加入p命令,是剪切的命令

d$从当前位置删除到行尾

d^从当前位置删除到行首

d命令的实质为 剪切

下面是末行模式

14,25d : 删除14到25行

.,25d: 从当前行到25行

.,.+5d: 从当前行删除6行

1.6 复制

yw: 复制一个单词

yy: 复制一行

1.7 粘贴 p命令

1.8 插入操作

a : 在光标后添加

i: 在光标当前位置添加

o: 在下一行添加(也就是在当前行添加一个空行)

O: 在当前行的上一行添加一个空行

1.9 移动光标(编辑模式)

w: 到下一个单词

^: 行中第一个字母(内容行首)

$: 绝对行尾

G: 文章末尾

gg: 文章开头

3gg: 移动到第三行

ctrl+ f /b 翻屏

1.10 撤销&重做

u 撤销

ctrl+r 重做 撤销的操作

1.11 查找和替换

%s/after/before/gi : %s 全文查找 ; 把after 替换为before ; gi 忽略大小写

/after : 查找 after

–n,N :上下查看查找到的内容

1.12 末行模式的一些命令

•set命令:

set nu number : 设置行号

set nonu nonumber : 取消设置行号

set readonly

tips: 要让行号永久生效需要修改下面的文件并加入set命令

vi /etc/vimrc 添加 set num

2 正则表达式

​ 正则表达式分为: 基础和扩展两种

正则表达式由普通字符和元字符组成

–普通字符具有自身的字符意义

–元字符具有特殊意义(元字符分为:匹配操作符 和 重复操作符)

•基础匹配操作符

-\ 转意操作符,恢复元字符原有的字面意义

-. 匹配任意单个字符

-[][]中包含一个字符序列来匹配单个字符

-^ 匹配一行字符串的起始位置

-$ 匹配一行字符串的结束位置

-< 匹配一个单词的起始位置

-> 匹配一个单词的结束位置

•基础重复操作符

–* 重复前面的项零次或多次

•扩展匹配操作符

–| 连接操作符:或

–() 选择操作符

–\n 引用操作符

•扩展重复操作符

-? 重复前面的项零次或一次

-+ 重复前面的项一次或多次

-{n} 重复前面的项n次

-{n,} 重复前面的项n次到多次

-{n,m} 重复前面的项n次到m次

注意一点: . 是匹配任意字符*

单使用grep是不支持扩展操作符的,需要加\而不是/,下图中 | 是或者的意思,如果不想加入\进行转义,可以加入-E的参数
在这里插入图片描述在这里插入图片描述

3 cut 分割命令

cut -d: -f1,7 文件 依据冒号分割 文件,并取出第一列和第七列

echo “hello world” | cut -d’ ’ -f1
输出结果为:hello

4 wc 命令

wc 统计数量

wc -c 文件 根据字节统计文件

wc -l 文件 统计文件的行

补充: 使用cat -A 可以查看文件中的末尾的隐藏信息,可以看出最后一个字符为 , 难 怪 在 正 则 表 达 式 中 ,难怪在正则表达式中 ,标识末尾.当使用wc计算文件时会把$也计算上.
在这里插入图片描述

在这里插入图片描述

5 sort 命令

•sort:排序文件的行,默认字典排序,默认使用ascii排序(), 字母在前,数字在后

–n:按数值排序(number) , 数值排序为,1,8,11,不带参数n排序为字典排序,1,11,8

–r:倒序

–t:自定义分隔符

–k:选择排序列(key)

–u:合并相同行

–f:忽略大小写

sort -nr 文件 根据文件中的值排序,逆序

sort -t: -k3 -nr 文件 -t:依据 : 分割文件; -k3 然后对第三列进行排序;-nr 根据选中的第三行的数值进行排序,逆序

在这里插入图片描述

6 权限

添加用户 useradd -g root zs 添加用户zs 所属的组为root

useradd ls 添加用户 , 默认为同名用户的组

/root 为root用户的家目录

/home/下的与用户同名的文件夹 为普通用户的家目录,其他用户无法进去(root除外,权限对root来说形同虚设)

chmod g+w 文件 给文件的所属组添加写的权限

chmod u/g/o+/_r/w/x 文件或者目录

家目录比较特殊,理论上来说,不让其他用户进入,所以一般不要不执行文件放到这个目录

目录的读权限必须依靠执行权限

为什么执行 程序要加 一个 ./?

上篇文章说过外部命令的执行会查找 $PATH , 当执行命令的时候,如果直接敲命令,假如hadopp,那么会去path中去找,如果敲./hadoop是指定了命令的全路径.

7 查看进程

7.1 ps

-a 列出所有用户的进程

-aux = -ef

ps -f 比 ps 多pid

7.2 netstat

-p 显示pid/pname

-l 显示监听的端口号

–tcp / --udp 查看tcp或者udp协议的进程

常用ntpl的参数和nupl

8 用户管理

8.1添加用户

useradd

8.2删除用户三步

a,userdel 用户名

b,删除家目录

c,删除邮件目录 /var/spool/mail/

8.3组管理

添加组:groupadd 组名

添加用户到组: usermod -G 组 用户;usermod -G share str 把用户str 添加到share组

在这里插入图片描述

图中把tiantain用户加入到share组,但是记得这里是添加,原来tiantain用户属于的tiantain组,现在还是一样,只不过有添加到了share组

id 用户,查看用户信息包括用户名和组等信息

8.4改变文件或者目录的所有者或者组

chown 用户:组 目录(文件), -R为递归

9 awk

必须使用""不能用’’

10 作业

10.1 jdk的安装

  1. rpm -ivh jdk-8u171-linux-x64.rpm

  2. 安装之后到 /usr/java/jdk1.8.0_171-amd64 目录查看

  3. 配置环境变量: vi ~/.bash_profile

    1. export JAVA_HOME=/usr/java/jdk1.8.0_171-amd64
      export PATH= P A T H : PATH: PATH:JAVA_HOME/bin
      在这里插入图片描述

    2. source ~/.bash_profile

      该方法配置用户环境变量,可以防止多用户环境变量冲突另一种方法为修改/etc下的profile文件,那种为修改系统变量

10.2一些命令

1、新建一个没有家目录的用户hadoop;

2、复制/etc/skel为/home/hadoop;

3、改变/home/hadoop及其内部文件的属主属组均为hadoop;

4、/home/hadoop及其内部的文件,属组和其它用户没有任何权限

useradd -M hadoop

cp -R /etc/skel/ /home/hadoop/

chown -R hadoop:hadoop hadoop/

chmod -R 700 hadoop/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值