0


学习大数据DAY21 Linux基本指令2

**思维导图 **

**搜索查看查找类 **

**find 从指定目录查找文件 **

-name <查询方式> 按照指定的文件名查找模式查找文件

-mtime n 查找 n 天以前被修改过的所有文件。

-exec<执行指令>:假设 find 指令的回传值为 True,就执行该指令;

-size <文件大小> 按照指定的文件大小查找文件

find /root -name "*.pdf"

find /root -name "*.pdf" -a -size +1M

find /root -mtime +7 #七天前被修改过的文件

find /root -name "*.sql" -exec ls -l {} ; #查找文件并以 ls -l 形式显示

find /root -name "*.pdf" -exec rm -f {} ;

**head 与 tail 查看行 **

head -n 文件名 (不加默认开头十行)

tail -n 文件名 (不加默认结尾十行)

head 3.txt

tail 3.txt

head -n +3 3.txt

#只显示前三行

tail -n -3 3.txt

#只显示后三行

**cat 查看内容 **

cat(英文全拼:concatenate)命令用于连接文件并打印到标准输出设备上。

-n 显示行号包括空行

-b 跳过空白行编号

-s 将所有的连续的多个空行替换为一个空行(压缩成一个空行)

cat 1.log 2.log

cat -sb test.log

**more 查看大内容 **

more 分屏查看文件(敲空格查看下一页)

**grep 过滤查找 **

以行为单位进行查找,显示结果为满足的行

-c 统计满足的行数

-v 反转不包含

grep "p" 1.txt 单文件搜索包含 p 的行

grep "P" 1.txt b.txt 多文件搜索

grep -v "p" 1.txt 单文件搜索不包含 p 的行

grep -c "p" 1.txt #统计出现多少行

grep "n$" 1.txt #现实以 n 结尾的行

grep "^n" 1.txt #现实以 n 开头的行

**history 查看已经执行过的历史命令 **

history

history 5 最近五个命令

**wc 统计文件 **

查看文件的字节数 wc -c t2.txt

查看文件的行数 wc -l t2.txt

**du 查看空间 **

du -h 人性化方式(带单位)

du -s 只统计每个参数所占用空间总的大小

du -sh /etc

**管道符号 | 配合命令使用 **

管道符 | 表示将前一个命令的处理结果输出传递给后面的命令处理

和 >> 指令

输出重定向(覆盖写), >> 追加(追加写)

示例:

ls -l | grep -c "^d"

ls -l | grep "^d" | wc -l

history | grep -c "ls"history | grep "ls" | grep "s$" > ttt.txt

cat a.txt b.txt >> ttt.txt

cat a.txt b.txt | grep "s" >> ttt.txt

**上机练习 4 **

上机练习 4

1.将/etc/passwd 文件拷贝到/root/目录下,并改名为 ptest

mv /etc/passwd /root/

cd /root

mv passwd ptest

2.查看 ptest 的前八行数据

head -n +8 ptest

3.过滤查看 ptest 文件中包含 root 的行

grep "root" ptest

4.查看/home 目录占用空间

du -sh /home

5./root 中新建文件 test.log,插入内容如下:

@directory-client

@gnome-apps

@gnome-desktop

cd /root

touch test.log

vim test.log

i

插入

ESC

:wq!

6.将 test.log 和 ptest 合并到/root 目录下的 test1.log

cd /root

cat test.log ptest >>test1.log

7.将/root 目录下的 ptest 加上行号输出到 test2.log

cat -sb ptest >>test2.log

8.查找并显示根目录下大于 1M 的 png 文件

find /root -name "*.png" -a -size +1M

9.统计系统上使用 ls 命令的次数

history | grep -c "ls"

10.将/root/ptest 中出现了 root 的行存储到 test.txt 文件

grep "root" /root/ptest >> test.txt

11.根据名称查找 /root 下的 txt 文件

find /root -name "*.txt"

12.查找整个 linux 系统下大于 20M 的文件 (+n 大于 -n 小于 n 等于)

find / -type f -size +20M13.查找/root/xxx/yyy/zzz 下所有.txt 文件并把他们删掉

find /root/xxx/yyy/zzz -name "*.txt" -exec rm -f {} ;

14.统计 ptest 文件的字节数

wc -c /root/ptest

15.统计 ptest 文件以 s 开头的行的数量

grep "^s" ptest |wc -l

**解压安装类 **

**zip unzip 压缩解压 **

压缩文件和目录

zip 文件名.zip 将要压缩的内容

解压缩文件

unzip 文件名.zip

常用选项

-r:递归压缩,即压缩目录

-d<目录> :指定解压后文件的存放目录

zip test.zip -r a/b 注:绝对路径压缩会带前面的路径文件夹

unzip linux.x64_11gR2_database_1of2.zip -d /opt/app/database/

**tar 压缩解压 **

-z

调用 gzip 程序进行压缩或解压

-c

创建(Create).tar 格式的包文件

-x

解开.tar 格式的包文件

-C

</解压时指定释放的目标文件夹 指定目录

-v

输出详细信息(Verbose)

-f

表示使用归档文件(一般都要带上表示使用 tar,放在最后)

压缩:tar [选项] ... 归档文件名(压缩包名字) 源文件或目录

解压:tar [选项] ... 归档文件名 [-C 目标目录]

tar -zcvf abc123.tar.gz abc.txt 123.txt 压缩成 abc123.tar.gz 的命令

tar -zcvf abc123.tar.gz m

tar -zxvf abc123.tar.gz -C test/ 解压到指定目录

**Yum 包管理 **

Yum 是一个 Shell 前端软件包管理器。基于 RPM 包管理,能够从指定的服务器自

动下载

RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。

查询 yum 服务器是否有需要安装的软件 yum list | grep xxx

查询指定的 yum 包信息 yum info xxx安装指定的 yum 包 yum install xxx

卸载指定的 yum 包 yum remove xxx

查看已安装的软件包 yum list installed

yum install ntpdate # 安装网络对时

**用户权限类 **

**基本介绍 **

登录时尽量少用 root 帐号登录,因为它是系统管理员,最大的权限,避免操作

失误。可以利用普通用户登录,登录后再用 su - 用户名命令来切换

**用户及用户组 **

类似于角色,系统可以对有共性的多个用户进行统一的管理。

新增用户组 groupadd xiaoshou

添加用户 useradd xiaomei

添加用户时加上组 useradd -g xiaoshou xiaomei

指定/修改密码 passwd xiaomei

查询用户信息 id xiaomei

切换用户 su - xiaomei

查看当前用户 whoami

修改用户的组 usermod -g 用户组 用户名

删除用户 userdel xiaomei (exit 退出后再删除)

删除组 groupdel xiaoshou

**用户和组的相关文件 **

/etc/passwd 文件

用户(user)的配置文件,记录用户的各种信息

每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录

Shell

/etc/group 文件

组(group)的配置文件,记录 Linux 包含的组的信息

每行含义:组名:口令:组标识号:组内用户列表

**rwx 权限详解 **

[ r ]代表可读(read): 可以读取

[ w ]代表可写(write): 可以修改

[ x ]代表可执行(execute):可以被执行

-rwxrw-r--. 1 root root 1213 Feb 2 09:39 abc

10 个字符确定不同用户能对文件干什么

第一个字符代表文件类型:文件( - ),目录( d ),链接( l )第一组 rwx : 文件拥有者的权限是读、写和执行

第二组 rw- : 与文件拥有者同一组的用户的权限是读、写但不能执行

第三组 r-- : 不与文件拥有者同组的其他用户的权限是读不能写和执行

可用数字表示为: r=4,w=2,x=1

因此 rwx=4+2+1=7

**chmod 修改权限 **

通过 chmod 指令,可修改文件或目录的权限

-R 表示递归里面的所有文件及目录

  • 、-、= 变更权限

u:所有者 g:所有组 o:其他人 a:所有人(u、g、o 的总和)

chmod u=rwx,g=rx,o=x 文件目录名

chmod o+w 文件目录名

chmod a-x 文件目录名

$ chmod u+x file

给 file 的属主增加执行权限

$ chmod 751 file

$ chmod u=rwx,g=rx,o=x file

上例的另一种形式

$ chmod 444 file

同上例

$ chmod a-wx,a+r

file

同上例

$ chmod -R u+r directory

递归地给 directory 目录下所有文件和子

目录的属主分

配读的权限

**chown 修改文件所有者 **

chown [-R] 所有者 文件或目录

-R 表示递归里面的所有文件及目录

chown test02 /root/test.txt

chown -R 用户:组 /usr/local/mysqlchown meimei:students 1.txt

**上机练习 5 **

1.将 /root/xxx 压缩成 a.tar.gz

tar -zcvf a.tar.gz

  1. 将 a.tar.gz 解压到/root/ceshi/

-zxvf a.tar.gz -C /root/ceshi/

  1. 增加用户组 students

groupadd students

  1. 添加新用户 kunkun 及 meimei 并直接加到 students 组

useradd -g students kunkun

useradd -g students meimei

  1. 指定 kunkun 密码, 然后切换到这个用户

passwd kunkun

su - kunkun

  1. 到该用户的家目录新建一个 student.txt

root 账号:chmod 777 /home/

su - kunkun

touch /home/student.txt

  1. 查询并写入该用户的用户信息到 student.txt, 退出 exit

管理员账号:su - kunkun

id kunkun>/home/student.txt

  1. 使用 root 账号新建文件 1.txt 及 2.txt 对文件/root/1.txt 为所有用户分

配读写执行权限

touch {1..2}.txt

chmod a-x /root/1.txt

  1. 对文件/root/2.txt 设置权限为 rwxr-xr--

chmod 754 /root/2.txt

  1. 对文件/root/2.txt 设置属组权限增加写的权限

chmod g+w /root/2.txt

  1. 给/root/1.txt 文件修改 kunkun 用户及 students 用户组权限

chown kunkun:students /root/1.txt

  1. /root/下创建文件夹 open,里面批量创建文件 open1.log...open100.log

mkdir /root/open

touch open{1..100}.log

  1. 对文件夹 open 设置为 meimei 用户及 students 用户组权限

chown meimei:students /root/open

  1. 对文件夹 open 设置权限为 rwxr-xr-x

chmod 755 /root/open

  1. 查看/etc/group 及/etc/passwd 文件内容重定向到/root/open.txt 中

touch open.txt

cat /etc/group /etc/passwd>/root/open.txt

  1. 删除用户 kunkun 和 meimei,查看/etc/passwd 的后 3 行数据追加到/root/open.txt 中

userdel kunkun

userdel meimei

tail -n -3 /etc/passwd > /root/open.txt

  1. 删除用户组,查看/etc/group 的后 3 行数据追加到/root/open.txt 中

groupdel students

tail -n -3 /etc/group > /root/open.txt

  1. 删除 home 下两个用户的文件夹及里面的内容

rm -rf /home/kunkun

rm -rf /home/meimei

  1. 神仙妖怪大战,使用拼音来化名,例如:shaseng 为沙僧

●建立两个组 (神仙, 妖怪),建立用户 (悟空, 八戒, 沙僧),把悟空和八戒放

入妖怪,沙僧放入神仙

groupadd god

groupadd monster

useradd -g monster Wukong

useradd -g monster Bajie

useradd -g god Shasheng

●设置三个用户的密码

passwd Wukong

passwd Bajie

passwd Shasheng (这里设置密码要求太严苛了,我就懒得设了)

●用悟空在自己的家目录下建立一个文件 monkey.txt,该文件要输出 i am a

monkey

chmod 777 /home/

su - Wukong

touch /home/monkey.txt

vim monkey.txt

i

输入

ESC

:wq!

●用 root 账号给八戒一个对悟空文件夹及内容可以 rwx 的权限

chown Bajie /home/Wukong

●八戒修改 monkey.txt 加入一句话( i am a pig )

su - Bajie

vim /home/Wukong/monkey.txt

●测试一下沙僧对该文件有没有权限访问

su - Shasheng

more /home/Wukong/monkey.txt

●把沙僧放入妖怪组

usermod -g monster Shasheng

●让沙僧修改该文件 monkey.txt,加入一句话 ("我是沙僧,我是妖怪!")

chown Shasheng /home/Wukongsu - Shasheng

vim /home/Wukong/money.txt

o

输入

ESC

:wq!

**自主发挥: **

建立一个学习小组,加上组员。

groupadd BringHonor

useradd -g BringHonor HuYingJing

useradd -g BringHonor QinYuXiao

useradd -g BringHonor ShiHaiHong

useradd -g BringHonor MoDeYu

vim 编辑更完整版

标签: 学习 大数据 linux

本文转载自: https://blog.csdn.net/shh2000424/article/details/140618136
版权归原作者 工科小石头 所有, 如有侵权,请联系我们删除。

“学习大数据DAY21 Linux基本指令2”的评论:

还没有评论