大数据Linux基本命令二

vim编辑器(文本编辑器):

vi可以执行输出、删除、查找、替换、块操作等众多文本操作。而且用户可以根据自己的需要对其进行定制

vi的工作模式 

大数据Linux基本命令二_第1张图片

 

命令模式中的基本操作

插入命令:

i:再当前字符的左边插入

I:在当前行首插入

a:再当前字符的右边插入

A:在当前行尾插入

o:在当前行下面插入新行

O:在当前行上面插入新行

删除命令:

dd:删除当前行

ndd:删除当前行光标所在的位置后面的字符

D:删除当前行光标所在的位置后面的字符

x:向后删除光标所在位置的字符

X:向前删除光标前面的字符

nX:删除前面的n个字符,光标所在的字符将不会被删

复制和粘贴命令:

yy或Y:复制当前行

nyy或nY:复制以下n行

p:在光标后面插入buffer中的内容

P:在光标前面插入buffer中的内容

替换和撤销命令:

r:渠道光标所在处的字符

R:从光标所在处开始替换字符,按esc结束

u:撤销上一步操作

定位命令:

h:左移一个字符

l:右移一个字符

j:下移一行

k:上移一行

$:移至行尾

0:移至行首

gg:移到第一行

G移到最后一行

nG:移到第n行

末行模式中的基本操作:

查找操作:set nu 设置行号

set nonu 取消行号

n 移到第n行

/查找关键字

替换操作:

s/old/new 将当前行中查找的第一个字符"old" 串替换为"new"

s/old/new/g 将当前行中查找的所有字符串"old"替换为"new"

#,# s/old/new/g 在行号"#,#" 范围内替换所有的字符串"old"为"new"

% s/old/new/g 在整个文件范围内替换所有的字符串"old"替换为"new"

%s/old/new 查找文件中所有行第一次出现的old,替换为new 

其他命令:

W[文件路径] 保存当前文件

q如果未对文件做改动则退出

q!放弃存储名退出

wq 或x 保存退出

可视模式:

v:可视模式(一个一个选择)

V:可视行模式(一行一行选择)

Ctrl+v:可视块模式

在所有可视模式中。d和x可以用删除选定的内容

用户和组

用户:

用户在系统中是分角色的,通过UID来识别角色

root用户,系统唯一,可以操作系统任何文件和命令,拥有最高权限,UID=0

虚拟用户(系统账户),不具有登录系统能力,但却是系统运行不可缺少的用户。如:bin、daemon、ftp、mail等,UID为1---499之间

普通真实用户,可以登录系统,权限有限 靠管理员创建,UID为500-60000之间

为了更好的管理用户,出现组group 

基本组(私有组)当用户创建文件和文件夹时,默认属于私有组

附加组(公共组)

用户管理:

用户账号文件: --/etc/passwd

每行对应一个用户的账号记录,一行有7个段位,用:隔开

每行的具体信息

 

大数据Linux基本命令二_第2张图片

 

用户密码文件:--/etc/shadow(用于保存密码子串、密码有效期等信息)

每一行对应一个用户的密码记录

大数据Linux基本命令二_第3张图片

用户管理命令:

添加用户账号:

命令格式:useradd[选项] 用户名

常用选项

-u:指定UID标记号

-d:指定数主目录,缺省为/home/用户名

-e:指定账号失效时间,格式YYYY-MM-DD

-g:指定用户的基本组名

-G:指定用户的附加组名

-M:不为用户建立并初始化宿主目录

-s:指定用户的登录Shell

-n:取消建立以用户名称为名的群组

设置密码:

命令格式:passwd[选择]<用户名>

-d:清空用户名的密码,使之无需密码即可登录

-l:锁定用户账号(usermod中为 -L)

-S:查看用户账号的状态(是否被锁定)

-u:解锁用户账号(usermod中为 -U)

-x:最大密码使用时间(天)

-n:最小密码使用(天)

大数据Linux基本命令二_第4张图片

 

修改已有用户的属性:

usernod [选项] <用户名>

常用命令选项:

-l:更改用户的账号名称

-L:锁定用户账户

-U:解锁用户账户

-u -d -e -g -G -s 和useradd命令中的含义相同

删除用户账号:

命令格式:userdel [选项] 用户名

常用命令选项 -r: 把用户的宿主目录一并删除

组管理:

组管理配置文件:

用户组文件:/etc/group

大数据Linux基本命令二_第5张图片

用户组密码文件:/etc/gshadow

大数据Linux基本命令二_第6张图片

用户组 

用户组密码,如果是空或者有"!",表示没有密码

用户组管理者

组成员,用逗号","隔开

组管理命令

添加组账号:

命令格式: groupadd[选项]<用户名>

常用命令选项:

-g:指定新建工作组的id

-r:创建系统工作组,系统工作组的id小于500

-o:允许添加组id号不唯一的工作组

修改用户组的属性:

命令格式 groupmod[选项]<用户名>

常用命令选项:

-g:设置想要使用的GID

-o:使用已经存在的GID

-n:设置想要使用的群组名称

设置组账号密码、添加/删除组成员:

命令格式 gpasswd [选项] 组账号名

常用命令选项:

-a:向组内添加一个用户

-d:从组内删除一个用户

-M:定义组成员列表,以逗号分隔

删除组账号:

命令格式:groupdel<组账号名>

注意:只能删除那些没有被任何用户指定为主组的组

显示用户所属组: groups 用户名

 

文件即目录权限管理

权限和权限值

权限:

读(r)写(w)执行(x)

4         2           1

设置文件或目录权限

格式: chmod [ugoa] [+-=] [rwx] file/dir

        chmod nnn file/dir

参数解释: u:属主 g:属组 o:其他用户 a:所有用户

+添加 -删除 =赋予权限

nnn:三位八进制的权限

常用命令选项 -R 递归修改指定目录下的所有子文件及文件夹的权限

设置文件或目录归属:

chown命令 格式 chown 属主 file/dir

                         chown :属组 file/dir

                         chown 属主:属组 file/dir

常用命令选项 -R 递归修改指定目录下的所有子文件及子目录的归属

 

高级文本处理命令:

sed

1、删除: d命令

sed'2d'huangbo.txt --删除huangbo.txt文件的第二行

sed'2,$d'huangbo.txt--删除huangbo.txt文件的第二行到末尾所有行

sed'$d'huangbo.txt--删除huangbo.txt文件的最后一行

sed'/test/d' huangbo.txt--删除huangbo.txt文件包含test的行

2、替换: s命令

格式: sed's/要替换的字符串/新字符串/g'

sed 's/test/mytest/g' huangbo.txt

在整行范围内把test替换为mytest。如果没有g标记,则只要每行第一个匹配的test替换成mytest

sed -n 's/^test/mytest/p' huangbo.txt

(-n)选项和p标志一起使用表示只打印那些发生替换的行。

没有-n 表示答应发生变化的行以及文本的全部内容

sed 's/^192.168.0.1/&localhost/' huangbo.txt 

追加在以192.168.0.1开头的行 变成 192.168.0.1localhost

 

选定行的范围

sed -n '5,/^test/p' .txt

sed -n '/^test/5p' .txt

打印从第5行开始到第一个包含以test开头的行之间的所有行

打印从以test开头往后的8行

sed '/test/,/check/s/$/sed test/' huangbo.txt

对于模板test和check之间的行,每行的末尾用字符串sed test替换

 

3、多点编辑:e 命令

sed -e '1.5d' -e 's/test/check/' huangbo.txt

(-e)选项允许在同一行执行多条命令,第一条命令删除1至5行,第二条命令用check替换test。

大数据Linux基本命令二_第7张图片

 

4、从文件读入:r命令

sed'/test/r file' huangbo.txt

file里的内容被读进来,显示在与test匹配的行下面,如果匹配多行,则file的内容将显示在所有匹配行的下面。

大数据Linux基本命令二_第8张图片

 

5、写入文件: w命令

sed -n '/test/w file' huangbo.txt

在huangbo.txt中所包含test的行都被写入file里

6、追加命令:a命令

sed '/^test/a\\--->this is a example' huangbo.txt

大数据Linux基本命令二_第9张图片

7、插入:i命令

sed '/test/i\\some this new ------' huangbo.txt

如果test被匹配,则把反斜杠后面的文本插入到匹配行的前面

大数据Linux基本命令二_第10张图片

8、退出:q命令

sed '10q' huangbo,txt

打印完第10行后,退出sed

awk

(优点:awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符,将每行切片,切开的部分再进行各种分析处理。)

awk'{pattern+action}'{filenames}

pattern 表示awk在数据中查找的内容,而action是在找到匹配内容时所执行的一系列命令。花括号({})不需要在程序中始终出现,但它们用于根据特定的模式对一系列指令进行分组。

pattern就是要表示的正则表达式,用斜杠括起来

2、只显示5个最近登录的账号

last -n 5 | awk '{print $1}'

awk 工作流程:读入有'\n'换行符分隔的一条记录,然后记录按指定的域分隔符,化分域,填充域, $0则表示所有域,$1表示第一个域,$n表示第n个域。默认域分隔符为空白键或"tab"键。

以上均为 awk+action的示例

awk '/root/' /etc/passwd

root:x:0:0:root:/root:/root:/bin/bash

这种是pattern的使用示例,匹配了pattern的行才会执行action

awk -F ':' '/root/{print$7}' /etc/passwd

这里指定了action{print$7}

大数据Linux基本命令二_第11张图片

 

awk -F ':' '{print "filename:" FILENAME ",linenumber:" NR ",columns:" NF      ",linecontent:"$0}' /etc/passwd 

uniq

功能说明:合并文件中相邻的行

语法:uniq[选项][文件]

常用选项:

-i:忽略大小写字符的不同

-c:进行重复出现行的计数

-d:仅显示重复出现的行

-u:仅显示重复一次的行列

使用last将账号列出,仅取出账号栏,进行排序

last | cut -d ' ' -f | sort | uniq -c | sort -n

只显示修改的:

cut和awk在分割时的区别

cut 是一个选取命令,它就是将一段数据经过分析,取出我们想要的。一般来说,选取信息通常是针对“行”来进行分析的,并不是整篇信息分析的

cut 语法

cut<选项> 文件

选项与参数:

-d:后面接分隔字符。与-f一起使用

-f:依据-d的分隔字符将一段信息分隔成为数段,用-f取出第几段的意思

-c:以字符(characters)的单位取出固定字符区间

-b:以字节为单位进行分割

echo $PATH | cut -d ':' -f 5取出一行第五个数据

echo $PATH | cut -d ':' -f 3,5取出第三个和第五个数据

echo $PATH | cut -d ':' -f 3- 找出第三个到最后一个

echo $PATH | cut -d ':' -f 1-3,5找出第一个到第三个还有第五个数据

cut -c 2-3 .txt 获得第二个字符到第三个字符之间的字符

cut -b 2,5 .txt获取第二个和第五个字节

你可能感兴趣的:(大数据Linux相关知识)