09_文件和目录常用命令(掌握)
9.1 Linux使用技巧
-
自动补全
-
在敲出 文件/ 目录 / 命令 的前几个字母之后, 按下 tab键
-
如果还存在其他 文件 / 目录 / 命令, 再按一下tab键, 系统会提示可能存在的命令
-
-
曾经使用过的命令
-
使用 上 / 下 光标键可以在曾经使用过的命令之间来回切换
-
如果想要退出选择, 并且不想执行当前选中的命令, 可以按 ctrl + c
-
-
复制黏贴
-
在crt中使用ctrl + shift + c 复制
-
在crt中使用ctrl + shift + v 黏贴
-
-
ctrl + l 清屏
9.3 ls命令
ls 是英文单词list的简写, 其功能为列出目录的内容,是用户最常用的命令之一
因为需要编辑服务器上的文件, 所以需要先确认指定目录下是否存在
ls [目录] 如果目录省略 默认查看就是当前目录
如果目录不存在 就会报出一下错误
linux 下文件和目录的特点
-
linux文件 或者 目录 名称最长可以 256 个字符
-
以
.
开头的文件为隐藏文件, 需要用 -a 参数才能显示 -
.
代表当前目录 -
..
代表上一级目录
ls常用选项
如果 只使用ls命令 就只能看到当前目录下 非隐藏文件。
如果想增强功能,就需要学习更多的选项
-a | all | 显示指定目录下所有子目录与文件, 包含隐藏文件 |
-l | 以列表方式显示文件的详细信息 | |
-h | human-readable | 配合 -l 以人性化的方式显示文件大小 |
ll | 等价于 ls -l | 以列表方式显示文件的详细信息 |
* | 代表任意个数的任意字符 |
? | 代表任意一个字符, 且只能是一个 |
[abc] | 匹配a、b、c中任意一个 |
[a-f] | 匹配从a到f范围内的任意一个字符 |
pwd
可以查看当前所在的位置
cd
是英文单词 change directory 的缩写, 其功能为 更改当前的工作目录, 也是用户最常用的命令之一
注意: linux
的所有 目录 和 文件名 都是大小写敏感的
cd 目录 | 切换到指定目录下 |
cd .. | 切换到上级目录 |
cd - | 可以在最近打开的两个目录之间切换 |
cd 或者 cd~ | 回到家目录 |
10.3 相对路径与绝对路径(混淆)
-
相对路径
特征: 相对路径输入路径时, 最前面不是以 "/" 开始的, 表示相对 当前目录 所在的位置
相对于当前的目录开始查找, 一层一层的进行查找 不能跨层级
缺点: 参照工作目录 发生变化 相对路径也要发生变化
-
绝对路径
特征: 绝对路径 在输入路径时, 最前面是以 / 开始的, 表示从 根目录 开始的具体目录位置
优点: 定位准确, 不会因为 工作目录变化 而变化
据对路径 定位准确 在任何位置使用的时候 都可以找到对应的目录 永远从根节点开始查找, 与你现在在哪里无关
小结:
相对路径 在输入路径时, 最前面不是以 / 开始的 , 表示相对 当前目录 所在的目录位置
绝对路径 在输入路径时, 最前面是以 / 开始的, 表示 从 根目录 开始的具体目录位置
11_创建和删除操作
11.1 创建文件
命令格式:touch 文件
创建一个空白文件
touch 不存在的文件
11.2 创建目录
命令格式:mkdir 文件目录
创建单层目录,想要创建多层目录使用 -p 选项
-p | parent | 可以递归创建目录 |
建议: 不论创建单层还是多层 都加上 -p
11.3 删除文件或目录
通过 rm -rf 文件/目录 命令实现删除文件和目录的功能
rm 对应的英文是 remove 含义: 删除
案例1: 删除文件 (有提示)
rm 文件
-f | force (强制) | 强制删除,忽略不存在的文件, 无需提示 |
案例2: 删除文件 (取消提示)
rm -f 文件
案例3: 删除目录
-r | recursive (递归) | 递归地删除目录下的内容, *删除文件夹* 时必须加此参数 |
rm -rf 目录
递归配合强制删除进行使用(推荐使用)
常用通配符:*?[abc][a-z]
rm -rf *.txt
小结:
通过 rm -rf 文件/目录 完成删除 文件或目录的功能.
注意:使用rm命令要小心, 因为文件删除后不能恢复
记住:在企业开发中,自己只删除自己创建的文件
12_拷贝和移动文件
通过 cp 实现复制将指定的 文件 或 目录 复制到 一个 文件 或 目录中
案例1: 备份指定文件
cp 文件1 备份文件名
使用场景:当需要对服务器中的相关配置文件进行修改时,或其他软件中的配置文件进行修改时(例:mysql):
建议先对要修改的配置文件进行:cp操作 备份操作
案例3: 将文件复制到另一个文件中, 实现覆盖效果
cp 文件1 文件2(存在的)
案例2: 将文件复制到目录中
cp 文件1 目录/
命令 | 英文 | 作用 |
---|---|---|
-r | recursive (递归) | 递归复制目标目录的内容 |
案例4: 复制目录 到指定 目录中
cp -r 目录1/ 目录2/
12.2 移动文件
通过mv 命令可以用来 移动 文件 或 目录, 也可以给 文件或目录重命名
案例1: 将文件 移动 另一个目录中
mv 文件或者目录 目录/
案例3: 将目录移动到 另一个目录中
mv 被移动目录 目标目录
案例2: 重命名
mv 旧文件名 新文件名
13_查看文件内容
通过 cat 会一次显示所有的内容, 适合 查看内容较少 的文本文件
案例1: 显示文件内容
cat 文件名
-
通过 less [参数] 文件名 命令可以用于分屏显示文件内容, 每次只显示一页内容
-
less 命令适合查看 内容较多 的文本文件
空格键 | 显示下一屏幕 |
Enter 键 | 一次滚动一行 |
b | 回滚一屏 |
f | 向前一屏 |
q | 退出 |
/word | 搜索word字符串 |
通过 head 命令查看文档的前几行内容
案例1: 查看文件的前5行内容
-n | number | 表示显示前几行内容 |
tail命令用来查看文档(日志)的后几行内容
案例1: 查看文档的最后10行内容
案例2: 动态显示文档的最后内容,一般用来查看日志
tail -f 文件名(必须掌握)
监听文件的输入 只要文件有新的内容输入 就会打印出来
使用场景:在开发中当某个服务启动后,需要监控该服务中的相关参数信息时,会查看服务的日志文件信息
在开发中,通常会把一些日志信息,写入到一个log文件中。当遇到一些bug时,需要对当前的log文件进行日志的监控或查看。 会使用:tail -f log日志文件 监控日志中输出的信息,从而来排查bug
案例3: 动态显示文档的最后10行内容
tail -10f 文件名
小结:
通过 head 命令查看文档的前几行内容
head -n 数值 文件名 --查看文件的前n行信息
通过 tail -10f 文件 命令 查看文档(日志)的后几行内容
tail -数值 文件名 --查看文件的后n行信息
tail -f 文件名 --动态的查看文件中的信息 (会一直滚屏)
14_其他命令
通过 命令1 | 命令2 可以将命令1的结果 通过 命令2 作进一步的处理
案例1 : 过滤 /etc/ 目录下 以 pro 开头的文件
grep 命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来
ls /etc/ | grep ^pro
echo string 将字符串输出到控制台 , 通常会和 重定向 联合使用
# 如果字符串有空格, 为了避免歧义 请增加 双引号 或者 单引号
echo "hello world"
14.3 重定向 >(覆盖)和>>(追加)
默认情况下linux执行命令后,命令的结果会输出到控制台
通过 重定向 可以将结果 输出到文件
案例1: 将 111 覆盖 指定文件内容
echo 111 > 01.txt
结果 > 文件名 | > 表示输出, 会覆盖文件的原有内容 |
案例2: 将 命令的成功结果追加 指定文件的后面
ls >> 01.txt
命令 >> 文件名 | >> 表示追加, 会将内容追加到已有文件的末尾 |
案例3: 将 命令的失败结果 追加 指定文件的后面
cat 不存在的目录 &>> error.log
命令 &>> 文件 | &>> 表示不区分错误类型 通通放到 日志中 |
案例1:如果创建目录成功, 就提示*创建成功*
命令1 && 命令2如果 命令1执行成功了, 才执行 命令2
mkdir -p 正确目录 && echo "提示创建目录成功
案例2:如果创建目录失败, 就提示创建失败
命令1 || 命令2 | 如果 命令1 执行失败了, 才执行 命令2 |
mkdir 错误目录 || echo "提示创建目录失败"
14.5 软连接(创建快捷方式)
软链接也叫符号链接,相当于windows的快捷方式。主要使用场景:当文件存储的目录比较深时,为了快速的去访问藏的比较深的文件,可以给这类文件创建一个访问的快捷方式。
软链接类似一个文本文件,里面存放的是源文件的路径,指向源文件实体。删除源文件,软链接文件依然存放,但是无法访问指向的源文件路径内容了。失效的时候一般是红字白底闪烁提示。
命令格式: ln -s /源文件的绝对路径 快捷方式的访问路径
ln -s 目标文件绝对路径 快捷方式路径 | link | 给目标文件增加一个软链接, 通俗讲就是快捷方式 |
为/etc/profile 在root下添加软件profile
ln -s /etc/profile profile
小结:
注意: 必须 增加 -s , 否则 就变成了 硬链接。
硬链接的作用之一是允许一个文件拥有多个有效路径名,这样用户就可以建立硬链接到重要的文件,以防止“误删”源数据。
之所以文件建立了硬链接就会防止数据误删,是因为文件系统的原理是,只要文件的索引节点还有一个以上的链接(仅删除了该文件的指向),只删除其中一个链接并不影响索引节点本身和其他的链接(数据的实体并未删除),只有当最后一个链接被删除后,此时如果有新数据要存储到磁盘上,被删除的文件的数据块及目录的链接才会被释放,空间被新数据暂用覆盖。
15_Linux搜索命令
find是linux中最常见的搜索命令。
find命令在linux系统的整个目录结构中搜索文件,并对搜索结果执行指定的操作。
find的使用格式如下:
-
find <指定目录> <指定条件> <指定动作>
-
<指定目录>: 所要搜索的目录及其所有子目录。默认为当前目录
-
<指定条件>: 所要搜索的文件的特征
-
<指定动作>: 对搜索结果进行特定的处理
-
如果什么参数也不加,find默认搜索当前目录及其子目录,并且不过滤任何结果(也就是返回所有文件),将它们全都显示在屏幕上。
通过find命令 在特定目录下(包含它的后代目录) 搜索符合条件的文件。
find [路径] -name '*.txt' | 查找指定路径下扩展名是 .txt的文件, 包括子目录 |
案例1: 搜索root目录下, 文件是 01.txt的文件
# 方式一: 指定全目录
find /root -name '01.txt'
# 方式二: 当前目录
find . -name '01.txt'
# 方式三: 当前目录 可以 省略 不写
find -name '01.txt'
案例2: 搜索指定目录下, 文件名以.txt
结尾的文件
find -name '*.txt'
grep 命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来
ps -ef 查看所有进程
ps -ef | grep sshd 查找指定 ssh 服务进程
ps -ef | grep sshd | grep -v grep 查找指定服务进程,排除 gerp 本身
16_解压缩命令(重要)
解压缩命令能做什么呢?
1、从第三方下载软件压缩包, 解压缩后安装软件到服务器上;
2、通过打包压缩备份文件
tar 是linux中打包命令
# 将 一系列文件 打包成 一个大文件
tar -cvf 打包名.tar 被打包的目录
tar -cvf 打包名.tar 被打包的文件1 被打包的文件2 被打包的文件3
命令 | 英文 | 含义 |
---|---|---|
c | create | 生成档案文件, 创建打包文件 |
v | verbosely(啰嗦的) | 像 '唐僧' 一样报告进度 |
f | file | 指定档案的文件名称, f后面一定是 .tar 文件, 所以必须放到左后 |
#练习1: 将1.txt、2.txt、3.txt 打包成 test.tar文件
tar -cvf test.tar *.txt
在linux中,使用tar 命令进行解包
#练习1: 将1.txt、2.txt、3.txt 打包成 test.tar文件
tar -cvf test.tar *.txt
==注意:解包到指定位置的时候 一定记得加上 -C (C是大写)==
命令 | 英文 | 含义 |
---|---|---|
x | extract (提取) | 解包 |
C (大写C) | directory (目录) | 默认保存到当前目录, 通过-C 更改解压目录, 注意: 解压目录必须存在 |
练习1: 将 test.tar 解压到 当前目录中
tar xvf test.tar
练习2: 将 test.tar 解包到 指定目录
tar xvf test.tar -C 指定目录
不加上大写的 -C 会出现这个错误
在 Linux 中, 最常用的压缩文件格式是 xxx.tar.gz
在 tar 命令中有一个选项 -z 可以调用 gzip , 从而可以方便的实现压缩和解压缩的功能
# 压缩文件(记忆敲门:智闯潍坊)
tar -zcvf 打包压缩文件名.tar.gz 被压缩的文件/目录
# 解压缩文件(记忆敲门: 至孝潍坊)
tar -zxvf 打包文件.tar.gz
# 解压缩到指定路径
tar -zxvf 打包文件.tar.gz -C 目录路径
命令 | 英文* | 含义 |
---|---|---|
z | gzip | 使用gzip压缩和解压缩 |
j | bzip2 | 使用bzip2压缩和解压缩 |
练习题:
练习1: 将1.txt、2.txt、3.txt 打包压缩成 123.tar.gz文件(gzip压缩格式)
tar zcvf 123.tar.gz 1.txt 2.txt 3.txt
练习2: 将有内容的aaa目录 打包成 aaa.tar.gz 文件(gzip压缩格式)
tar zcvf aaa.tar.gz aaa/
练习3: 将 123.tar.gz 解压到 当前目录中(gzip压缩格式)
练习4: 将 aaa.tar.gz 解包到 指定目录中(gzip压缩格式)
知识点01:Linux用户与权限--用户与组概念、权限概念
用户、用户组
#用户 user
linux上可以创建不同的用户 不同用户具有不同的权限
权限最高的用户叫做root 超级管理员用户
可以通过root去管理其他用户及权限
#用户组 usergroup
多个用户组成一组 同一组的用户具有相同的权限
#一个文件归属可以分为3类
所属用户user
所属用户组group
其他用户组other
文件权限
- 读read r
- 写write w
- 执行execute x
权限的分配和管理
在linux上对应文件文件夹,划分3个归属
文件的拥有者 user
拥有者所在的用户组 group
其他用户组 others
如何去查看权限 ls -l
[root@node1 linux02]# ll
total 8
-rw-r--r--. 1 root root 47 May 18 11:23 1.txt
-rw-r--r-- 就是权限位
第一位 -文件 d文件夹 l链接
后面每3位一组
rw- u 读写
r-- g 读
知识点02:Linux用户与权限--用户与组的管理
必须是root用户才可以进行管理。
#1、增加一个新的用户组
groupadd 选项 用户组
可以使用的选项有:
-g GID 指定新用户组的组标识号(GID)。
# groupadd group1
此命令向系统中增加了一个新组group1,新组的组标识号是在当前已有的最大组标识号的基础上加1。
# groupadd -g 101 group2
此命令向系统中增加了一个新组group2,同时指定新组的组标识号是101。
#2、查看当前系统已有组信息
cat /etc/group
itheima:x:1001:lisi,wangwu
itheima组名
x 密码口号 一般都没有密码
1001 groupID gid 组编号
lisi,wangwu 归属该组的用户
#3、删除组
groupdel 组名
#4、修改文件归属的组
chgrp 组名 文件/目录名 针对文件夹加上-R可以实现递归修改
#1、创建用户
useradd 选项 新建用户名
-g 指定用户所属的群组。值可以是组名也可以是GID
-G 指定用户所属的附加群组。
#2、设置密码
[root@node1 linux02]# passwd 用户名
Changing password for user allen.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
#3、删除用户
userdel -r 用户名
此命令删除用户sam在系统文件中(主要是/etc/passwd, /etc/shadow, /etc/group等)的记录,同时删除用户的主目录。
#4、查看用户信息
cat /etc/passwd | grep 用户名
#5、修改文件所属的用户
chown allen 1.txt 如果是文件夹及其下面的所有要修改 加上-R参数
linux上root用户和非root用户区别
-
命令提示符不同: root# 普通用户$
-
home目录不同:
-
[root@node1 ~]# pwd
/root[allen@node1 ~]$ pwd
/home/allen
su命令:用于用户之间的切换。
# su 用户
[allen@node1 ~]$ ll /root
ls: cannot open directory /root: Permission denied
[allen@node1 ~]$ su root #普通用户切换成为root需要输入root密码
Password:
[root@node1 linux02]# su allen #root用户切换成为普通用户 不需要密码
[allen@node1 linux02]$
[allen@node1 linux02]$ exit #退出
exit
#弊端:虽然通过切换可以具有root权限,但是root密码已经泄露了 不安全。
#能不能实现一种 让普通用户临时具有root权限,但是又不泄露密码
sudo
-
功能:给普通用户临时授予root权限。
-
注意:能够分配sudo的只有root。
-
sudo的配置命令 visudo
-
sudo具体使用
-
step1:使用root用户编辑sudo配置文件
-
[root@node1 ~]# visudo
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
allen ALL=(ALL) ALL
allen ALL=(ALL) /usr/bin/ls #配置只允许执行指定的命令
step2:普通用户执行命令之前需要添加sudo关键字 申请sudo权限校验
知识点04:Linux用户与权限--权限相关管理命令
-
修改文件的权限
核心的命令 chmod 权限 文件|文件夹 (针对文件夹-R 递归修改)
-
方式1:老百姓喜闻乐见的形式 数字
read----->r 4
write---->w 2
execute-->x 1
没有权限 0
chmod 777 -R 文件|文件夹
方式2: 字母 +-形式
user->u group->g others->o all->a
+ 增加权限
- 减少权限
chmod o-x 1.txt
chmod a-w 1.txt
方式3: 等号赋值形式
chmod u=rwx 1.txt
知识点05:Linux系统信息查看--时间、内存磁盘、进程
[root@node1 linux02]# date
Tue May 18 14:44:13 CST 2021
[root@node1 linux02]# date +"%Y-%m-%d %H:%M:%S"
2021-05-18 14:44:53
[root@node1 linux02]# cal
May 2021
Su Mo Tu We Th Fr Sa
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
#关于时间日期的同步 同步网络授时
#大数据都是集群环境 基本要求:集群的时间同步问题
df -h #disk free 显示磁盘剩余空间
[root@node1 linux02]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 12M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/centos-root 38G 1.5G 36G 5% / #重点关注这一行
/dev/sda1 1014M 152M 863M 15% /boot
/dev/mapper/centos-home 19G 33M 19G 1% /home
tmpfs 378M 0 378M 0% /run/user/0
tmpfs 378M 0 378M 0% /run/user/1000
#内存使用情况
[root@node1 linux02]# free -h
total used free shared buff/cache available
Mem: 3.7G 257M 3.0G 11M 467M 3.2G
Swap: 3.9G 0B 3.9G
#在安装了jdk的情况下 有一个命令专门用于查看本机运行的java进程。
jps
[root@node1 ~]# jps #必须在安装好jdk之后可以使用
-bash: jps: command not found
#查看本机运行的所有进程
ps -ef | grep 进程名
#通常根据查询的进程号 结合kill -9 进程号 杀死进程
知识点06:大数据集群环境搭建--分布式与集群概念初识
-
分布式、集群
分布式:多台不同的服务器中部署不同的服务模块,通过远程调用协同工作,对外提供服务。
集群:多台不同的服务器中部署相同应用或服务模块,构成一个集群,通过负载均衡设备对外提供服务。
-
共同点:多台机器。 相对的概念叫做单机系统。
-
注意:在口语中经常混淆分布式和集群的概念的。都是汲取两者的共同点。
比如:搭建一个分布式hadoop集群。
背后意思:不要搭建单机版本的 搭建多台机器版本的。
集群架构
-
主从架构
主角色:master leader 大哥
从角色:slave follower 小弟
主从角色各司其职,需要共同配合对外提供服务。
常见的是一主多从 也就是一个大哥带着一群小弟共同干活。
主备架构
主角色:active
备角色:standby
主备架构主要是解决单点故障问题的 保证业务的持续可用。
常见的是一主一备 也可以一主多备。
已完成当天:::::::::::::::