2021-09-15大数据学习日志——Linux终端命令

Posted 成长的小狮子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2021-09-15大数据学习日志——Linux终端命令相关的知识,希望对你有一定的参考价值。

01_学习Linux命令的原因

  • Linux刚面世时并没有图形界面,所有的操作全靠命令完成,如:磁盘操作 文件存取 目录操作 进程管理 文件权限设定等

  • 在企业中Linux服务器维护工作都是通过SSH客户端(如:SesureCRT)远程连接Linux服务器来完成的,并没有图形界面 所有的维护工作都需要使用命令来完成

  • 在职场中, 作为一名程序员, 必须要或多或少的掌握一些Linux常用的终端命令

  • Linux发行版本的命令大概有200多个 但是常用的命令只有10多个而已

==学习终端命令的技巧== 

        不需要死记硬背, 对于常用命令, 用的多了, 自然就记住了

        不要尝试一次学会所有的命令, 有些命令是非常不常用的,临时遇到, 临时百度就可以

02_终端命令格式

什么是命令?

命令也成为指令, 在Linux终端(命令行)中输入的能够被Linux系统识别的内容,成为命令

标准的Linux命令格式

指令主体 (空格) [-选项] (空格) [操作对象]

说明:

  • 指令主体: 或者目录名称最长可以 256 个字符

  • 选项: 可用来对命令进行控制, 也可以省略(可以包含多个选项)

  • 操作对象: 传给命令的参数 可以是零个 一个或者多个

例如:让张三同学去楼下小卖铺买一瓶农夫山泉纯净水,在这个指令中:

“买东西”是指令的主体,纯净水是操作的对象,农夫山泉是操作的选项

03_Linux命令:操作目录(创建, 切换, 查看, 删除)

Linux下文件和目录的特点

  • Linux文件或者目录名称的最大长度为256个字符

  • 以 ==. ==开头的文件为隐藏文件,普通情况下查看目录下的文件内容时不显示隐藏文件

  • ==.== 代表当前目录 

  • ==..== 代表上一级目录

3.1 查看目录下内容

显示文件列表, 使用命令:ls

命令格式: ls [-选项] [路径]

ls是英文单词list的缩写, 其功能为列出目录中的内容 

如果只是用ls命令,只能看到当前目录下非隐藏文件

ls常用选项

常用命令

ls 查看当前目录内容(缺点:隐藏文件看不到)

ls -l 以列表的形式显示文件的详细信息(缺点:文件大小显示的不符合我们习惯)

ls -l 也可以使用 ll代替 两者效果一致

ls -a 查看当前目录内容 包括隐藏文件

ls -al 查看目录内容的详细信息(查看文件类型 权限 大小等)

或者使用 ll -a

ls -lh 查看目录内容的详细信息 以K, M, G的方式显示文件大小

或者使用 ll -h

ls /usr 查看root目录下所有内容

3.2 切换目录

目录切换, 使用命令:cd

cd是英文单词 change directory 的缩写, 其功能为更改当前目录

注意:==Linux所有的 目录 和 文件名 都是大小写敏感的==

可以通过cd aaa/ 切换到当前目录下的 aaa目录下

示例:

cd 回到用户主目录

cd aaa 切换到当前目录下的aaa目录(相对路径)

cd /root/aaa 切换到指定目录(绝对路径)

cd .. 回到上一级目录

cd ../.. 回到上上一级目录

cd ../dir 回到上一级的dir目录

3.3 创建目录

创建目录,使用命令: mkdir (英文单词 make directory的缩写)

注意:新建目录中不能与当前目录中 已有的目录或文件 同名

命令格式: mkdir 目录名 创建没有层级关系的目录

mkdir test #在当前目录下创建一个名为test的新目录

命令格式:mkdir -p 目录1/目录2/目录3/... 创建有层级的目录

mkdir -p /root/ccc/ddd #在root目录下 创建ccc目录  在ccc目录下创建ddd目录

3.4 删除目录

删除目录 使用命令 rm (英文单词remove的缩写)

命令格式

==rm [选项] 目录名==

注意:rm命令既用于删除目录 也用于删除文

rm常用选项:

示例: rm -r 目录 删除目录有提醒

[root@node1 ~]# rm -r test #删除当前目录下 test目录
rm:是否删除目录 "test"?#给出提示信息, 确认是否删除 

y删除 n 不删除 ctrl + c 退出删除

示例:rm -rf 目录 直接删除目录 (没有提示,不管当前目录下是否有内容)

3.5 查看当前所在目录

查看当前所在目录: pwd

04_Linux命令:操作文件(创建, 移动, 复制, 重命名, 查看内容)

4.1 创建文件

创建文件, 使用命令 touch

命令格式: touch 文件

示例:

touch hello.txt

touch /root/world.txt

4.2 移动文件

移动文或目录, 使用命令: mv (英文move的缩写)

将文件移动另一个目录中: ==mv 文件 目录==

mv world.txt ccc

将目录移动到另一个目录中:

==mv 被移动目录 目标目录==

[root@node1 ~]# mv ccc /root/aaa
[root@node1 ~]# ll /root/aaa

4.3 重命名

mv命令除了可以用来移动文件或者目录之外 还可以给文件或者目录重命名

命令格式 ==mv 旧文件名 新文件名==

[root@node1 ~]# mv hello.txt java.txt
[root@node1 ~]# ll

命令格式 ==mv 旧目录名 新目录名==

[root@node1 ~]# mv aaa hello
[root@node1 ~]# ll

4.4 复制文件

赋值文件使用命令: cp 命令格式 : ==cp 文件或者目录(源) 文件或目录(目标)==

                                                     ==cp -r == 复制层级目录

示例:

将java.txt文件复制到hello文件夹

[root@node1 ~]# cp java.txt hello
[root@node1 ~]# ll hello/

将 java.txt复制到 php.txt

[root@node1 ~]# cp java.txt php.txt
[root@node1 ~]# ll

将 /root/hello目录复制到 /tmp下

[root@node1 ~]# cp -r /root/hello /tmp 
[root@node1 ~]# ls /tmp

4.5 查看文件内容

使用cat命令可以查看文件中存储的具体内容

命令格式: cat 文件

[root@node1 ~]# cat /root/initial-setup-ks.cfg 

05_压缩和解压命令

5.1 打包

生活中的示例: 将冬天的衣服放到袋中

在Linux中可以把多个文件打包成一个大文件, 且打包后的文件需以 .tar 结尾

tar是Linux中的打包命令


==tar -cvf 打包名.tar 被打包的目录==

==tar -cvf 打包名.tar 被打包的文件1 被打包的文件2 被打包的文件3==


tar的选项说明  

练习题:

练习一

进入 /root/hello下 创建1.txt 2.txt 3.txt

将 1.txt 2.txt 3.txt 打包成123.tar文件

[root@node1 ~]# cd /root/hello/ #进入hello目录
[root@node1 hello]# touch 1.txt 2.txt 3.txt #创建 1.txt 2.txt 3.txt 文件
[root@node1 hello]# ll
[root@node1 hello]# tar -cvf 123.tar 1.txt 2.txt 3.txt #将 1.txt 2.txt 3.txt 压缩为 123.tar
[root@node1 hello]# ll

练习二

将/root/hello中的ccc目录 打包成 ccc.tar 文件

[root@node1 hello]# tar -cvf ccc.tar ccc #将ccc压缩为ccc.tar
[root@node1 hello]# ll

5.2 解压

生活中的事例: 从袋子中把冬天的衣服取出来

在Linux中,使用tar命令进行解压


==tar -xvf 打包名.tar #解压到当前目录下==

==tar -xvf 打包名.tar -C 解压到指定位置==


tar的选项说明

练习题:

练习一:

将 123.tar 解压到当前目录中

[root@node1 hello]# rm -rf 1.txt 2.txt 3.txt #将之前创建的三个文件删除掉
[root@node1 hello]# ll
[root@node1 hello]# tar -xvf 123.tar #将123.tar中的三个文件解压到当前目录中
[root@node1 hello]# ll

练习二:

将 ccc.tar 解压到 /root/hello/bbb 目录中

[root@node1 hello]# tar -xvf ccc.tar -C /root/hello/bbb #将ccc.tar解压到/root/hello/bbb中
[root@node1 hello]# ll bbb/

5.3 压缩和解压

在Linux中,最常用的压缩文件格式是 ==XXX.tar.gz==

在 ==tar==命令中有一个选项 ==-z== 可以调用==gzip==,从而可以方便的实现压缩和解压缩的功能

命令格式:


压缩文件

==tar -zcvf 打包压缩文件名.tar.gz 被压缩的文件/目录==

解压缩文件

==tar -zxvf 打包文件.tar.gz ==

解压缩到指定路径

==tar -zxvf 打包文件.tar.gz -C 目录路径==


tar的选项说明

练习题:

练习1: 将1.txt、2.txt、3.txt 打包压缩成 123.tar.gz文件(gzip压缩格式)

(tar -cvf 123.tar 1.txt 2.txt 3.txt tar -zcvf 123.tar.gz 1.txt 2.txt 3.txt)

练习2: 将有内容的ccc目录 打包成 ccc.tar.gz 文件(gzip压缩格式)

 练习3: 将 123.tar.gz 解压到 当前目录中(gzip压缩格式)

 练习4: 将 ccc.tar.gz 解包到 /root/hello/bbb 目录中(gzip压缩格式)

06_文件查找命令

6.1 find命令

find是linux中最常见的搜索命令, 用于查找符合条件的文件.

find 命令在Linux系统的整个目录结构中搜索文件, 并对搜索结果执行指定的操作.

find的使用格式如下:

==find <指定目录> <指定条件> <指定动作>==

  • <指定目录>: 所要搜索的目录及其所有的子目录. 默认为当前目录

  • <指定条件>: 所要搜索的文件的特征

  • <指定动作>:对搜索的结果进行特定的处理

如果什么参数都不添加, find默认搜索当前目录及其子目录,并且不过滤任何结果 (也就是返回所有的文件),将他们全部显示在屏幕上.

准备工作

# 新增目录 且 切换目录 且 新增文件
mkdir -p /export/aaa/bbb/ccc/ddd/eee/
touch /export/aaa/bbb/ccc/ddd/eee/abc.txt
touch /export/aaa/123.txt
touch /export/aaa/312.txt
cd /export

6.1.1 find命令的基本使用

通过find命令在特定的目录下(包括它的后代目录) 搜索符合条件的文件

find命令的基本使用格式:

说明:

  1. 如果省略路径, 表示在当前文件夹下查找

  2. '*' 表示任意

示例1:搜索指定目录下,文件是 abc.txt的文件

#方式1:指定全部录
find /export/ -name 'abc.txt'

#方式2:当前目录
find . -name 'abc.txt'

 示例2:搜索指定目录下,文件名 包含 1 的文件

# 创建测试文件
[root@node1 export]# touch  /export/12.txt /export/616.txt /export/321.txt 
# 实现
[root@node1 export]# find /export/ -name '*1*'

示例3:搜索指定目录下,所有以 .txt 为扩展名的文件

[root@node1 export]# find /export/ -name '*.txt'

示例:搜索指定目录下,所有以数字1开头的文件

[root@node1 export]# find /export/ -name '1*'

6.1.2 find命令扩展

在根目录下查找

find命令扩展

#在当前目录查找以.log结尾的文件, 并显示详细信息
[root@node1 export]# find . -name '*.txt' -ls 
#查找当前目录以.log结尾的普通文件
[root@node1 /]# find . -type f -name '*.log'
#查找当前目录中大于10M的以.tar.gz结尾的文件
[root@node1 /]# find . -type f -name '*.tar.gz' -size +1M  
./root/dir/redis-3.2.8.tar.gz

6.2 grep命令

grep命令: 用于==搜索关键字==

grep命令的作用之一:grep搜索文件中的关键字 (用于搜索文档内容中的关键字)

示例1:搜索存在关键字的行

#语法:grep 关键字 文件名
[root@node1 /]# grep of /etc/chrony.conf   #在chrony.conf文件中搜索关键字 of

示例2:搜索存在关键字的行且显示行号

#语法:grep -n 关键字 文件名
#-n number 显示匹配行和行号
[root@node1 /]# grep -n of /etc/chrony.conf #在chrony.conf文件中搜索关键字 of 并显示行号

示例3:忽略大小写 搜索 存在关键字 的行

#语法: grep -i 关键字 文件名
#-i ignore-case 忽略大小写
grep -i se /etc/chrony.conf 

07_系统管理命令

7.1 ps命令

ps命令用来列出系统中当前正在运行的进程(process)

语法: ps [options]

示例: ps -ef #查看所有的进程

示例:

ps -u root #查看root用户下所有进程

7.2 管道命令

管道是Linux命令中重要的一个概念,其作用是将一个命令的输出用作另一个命令的输入

管道命令格式: 命令1 | 命令2 | ... 管道符: |

示例:

#示例1:ps -ef 查询所有正在运行的进程
#示例2:grep mysql 搜索关键字mysql
ps -ef | grep mysql #查询进程中名字叫mysql的进程

7.3 kill命令

kill命令用于终止正在执行中的程序

语法:==kill pid(系统进程ID)==

示例:

[root@node1 /]# ps -ef | grep mysql 查看mysql的进程id
[root@node1 /]# kill 11266 #杀死进程为 1538 的进程
[root@node1 /]# kill -9 11266 #杀死进程为 1538的进程 数字9代表传递给kill的一个信号  告知强制杀死

08_用户和权限

8.1基本概念

用户是Linux系统工作中重要的一环,用户管理包括==用户与组管理==

在Linux系统中, 不论是由本地或者是远程登录系统, 都必须拥有一个账号, 并且对于不同的系统资源拥有不同的使用权限

对文件/目录的权限包括:

 为了方便用户管理,Linux添加了组的概念

8.2 ls -l 扩展

ls -l 或 ll 可以查看文件夹下文件的详细信息,详细信息从左到右 依次是

8.3 用户管理

8.3.1 用户创建

 示例

[root@node1 ~]# useradd itheima
[root@node1 ~]# passwd itheima

8.3.2 用户删除

示例

[root@node1 ~]# userdel -r itheima

8.4 权限管理

8.4.1 用户权限解读

r: 对文件,是指可读取内容;对目录,是可以ls

w: 对文件,是指可修改文件内容;对目录,是指可以在其中创建或删除子节点(目录或文件)

x: 对文件,是指是否可以运行这个文件;对目录,是指是否可以cd进入这个目录

8.4.2 用户权限修改

在linux中,修改用户权限使用命令: ==chmod==

修改用户权限方式1

chmod u+x 文件|目录 # + 表示新增权限 u表示user(属主)
chmod u-wx 文件|目录 # - 表示删除权限
chmod -R u+wx 目录 # R 表示权限会覆盖到当前目录以及目录下的子目录及文件

修改用户权限方式2

# 精确到 拥有者|组|其他 权限
chmod u=rwx,g=wx,o=w 文件|目录 

修改用户权限方式3

chmod 755 文件|目录 # 7=4+2+1 rwx 5=4+1 rx 5=4+1 rx
chmod -R 755 目录

09_网络和服务管理命令

9.1 网络命令

9.1.1 hostname命令

在linux中查看主机名, 使用命令hostname

[root@node1 hello]# hostname

修改主机名称

修改方式一(临时修改)

[root@node1 hello]# hostname itheima

修改方式二(永久修改)

[root@node1 hello]# vim /etc/hostname  

注意:修改文件中的主机名称后, 需要重启服务器

9.2 ifconfig命令

在Linux中查看主机IP地址 使用命令ifconfig

[root@node1 hello]# ifconfig

修改主机的ip地址:vim /etc/sysconfig/network-scripts/ifcfg-ens33

10_服务管理命令

service命令是用来控制系统服务的实用工具,它以启动、停止、重新启动和关闭系统服务,还可以显示所有系统服务的当前状态

service network status #查看网络服务状态 
service network stop #停止网络服务
service network start #启动网络服务
service network restart #重启网络服务

以上是关于2021-09-15大数据学习日志——Linux终端命令的主要内容,如果未能解决你的问题,请参考以下文章

2021-09-14大数据学习日志——Linux系统目录

数据库终期大作业报告

hadoop学习;大数据集在HDFS中存为单个文件;安装linux下eclipse出错解决;查看.class文件插件

当时间管理碰上大数据,从此,悠悠时光也终不再那么漫长

Linux版本的Panalog大数据日志分析系统正式公测

大数据学习——日志分析