Linux(基础)——学习笔记(目录/文件操作、打包/解压、zip命令)

参考/摘录书籍:鸟哥的Linux私房菜(基础学习篇) 著○鸟哥
参考图片:来自网络/自己提供
说明:本人相关博客仅供学习参考!

一、Linux简介

  Linux 就是一个操作系统,而不是应用程序。
Linux 的内核版本编号有类似如下的特点:

3.10.0-123.e.17.x86-64
//主版本.次版本.发布版本-修改版本

推荐学习版本:

推荐适用场景版本
以RPM软件管理为主RHELFedoraSUSECentOS
探讨更严谨的Linux版本Debian
考虑性能至上Gentoo

  “虚拟化”指的是:在一台物理主机上面模拟出多个逻辑上完全独立的硬件,这个假的虚拟出来的硬件主机,可以用来安装一台逻辑上完全独立的操作系统。

拓展点】(重点理解

  1. 各个组件或设备在Linux下面都是一个文件。

1.1 Linux 文件系统目录结构

在这里插入图片描述
【备注】该图片和下列解释来自菜鸟教程

目录名描述
/根目录【最重要】
/binbin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令。
/boot这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。
/devdev 是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备。
在 Linux 中访问设备的方式和访问文件的方式是相同的。
/etcetc 是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录。
/home用户的主目录。
在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
``

【扩展】

  1. .代表当前的目录,也可以使用./来表示;
  2. ..代表上一层目录,也可以使用../来表示;
  3. -代表前一个工作目录;
  4. ~代表目前使用者身份所在的家目录;(如果当前是root用户,则其家目录为/root ;如果当前是普通用户,则其家目录为/home/用户名

二、Linux使用

2.1 基础知识点

2.1.1 知识点

// Last login:这行表示我们这个用户的上次登录的时间和位置。
[root@linux ~]#  // 这行的root:表示登录的是root用户
// @:相当at
// Linux:表示所登录的服务器,一般为服务器名称
// ~:表示目前位于/root目录下
// #:表示root的提示符号,普通用户为$

2.1.2 常见命令

命令描述
date [pattern]查看当前系统时间
``

2.2 配置 IP

2.2.1 网络常用命令

命令说明
ip addr查看当前网卡名称
systemctl restart network重启所有网卡
Ctrl+C结束ping连接
ping ip -c 数量测试与某个IP地址的通信情况;
数量:表示要测试的通信次数。
`netstat -nltpgrep 端口号`
ps -ef查看当前系统的进程
`ps -efgrep 查询的字符串`

  关于centos7获取IP地址的方法主要有两种,1:动态获取ip;2:设置静态IP地址。登录到centos7后,可通过命令ip addr查看当前网卡名称。

2.2.2 动态获取IP【了解】

动态获取IP的前提是你的路由器已经开启了DHCP(动态主机配置协议)。通过 vi /etc/sysconfig/network-scripts/ifcfg-ens33修改网卡配置文件, 按下字母i才能修改.此配置文件默认配置信息说明:

TYPE="Ethernet"                # 网卡类型:为以太网
PROXY_METHOD="none"            # 代理方式:关闭状态
BROWSER_ONLY="no"              # 只是浏览器:否
BOOTPROTO="dhcp"               # 网卡的引导协议:DHCP[中文名称: 动态主机配置协议]
DEFROUTE="yes"                 # 默认路由:是, 不明白的可以百度关键词 `默认路由`
IPV4_FAILURE_FATAL="no"        # 是不开启IPV4致命错误检测:否
IPV6INIT="yes"                 # IPV6是否自动初始化: 是[不会有任何影响, 现在还没用到IPV6]
IPV6_AUTOCONF="yes"            # IPV6是否自动配置:是[不会有任何影响, 现在还没用到IPV6]
IPV6_DEFROUTE="yes"            # IPV6是否可以为默认路由:是[不会有任何影响, 现在还没用到IPV6]
IPV6_FAILURE_FATAL="no"        # 是不开启IPV6致命错误检测:否
IPV6_ADDR_GEN_MODE="stable-privacy"            # IPV6地址生成模型:stable-privacy [这只一种生成IPV6的策略]
NAME="ens33"                   # 网卡物理设备名称
UUID="f47bde51-fa78-4f79-b68f-d5dd90cfc698"    # 通用唯一识别码, 每一个网卡都会有, 不能重复, 否两台linux只有一台网卡可用
DEVICE="ens33"                 # 网卡设备名称, 必须和 `NAME` 值一样
ONBOOT="no"                    # 是否开机启动, 要想网卡开机就启动或通过 `systemctl restart network`控制网卡,必须设置为 `yes`

动态获取IP地址需要修改两处地方即可
(1)bootproto=dhcp (2)onboot=yes
修改后要按esc退出编辑(或只读)模式,输入:wq保存修改并退出. 再用systemctl restart network重启一下网络服务。最后用ip addr查看一下就可以看到已经获取了IP地址,且能够ping 外网。(Ctrl+c 结束ping连接)

2.2.3 静态 IP【掌握】

当我们希望IP不要总是改变的时候,就可以配置静态IP,修改网卡配置文件ifcfg-ens33, 编辑命令 vi /etc/sysconfig/network-scripts/ifcfg-ens33,
修改配置如下:

BOOTPROTO="static"    # 网卡引导协议为 静态
ONBOOT="yes"   #设置网卡启动方式为开机启动 并且可以通过系统服务管理器 systemctl 控制网卡

最后加上几行(IP地址、网关、dns服务器)

IPADDR=192.168.238.66
GATEWAY=192.168.238.2
DNS1=192.168.238.2  # 如果没有此配置,ping命令会报未知的 名称或服务

上面的IPADDR需要和虚拟网卡的ip在同一个网段里(但是不能使用同一个IP,会冲突),虚拟网卡的适配器叫VMware Network Adapter VMnet8
在这里插入图片描述
然后按esc 退出,输入:wq 保存,最后输入systemctl restart network 重启网卡。以上操作完成后查看ip地址及ping外网都可以了。

注意:如果ping外网不成功,会导致以后安装软件失败。可打开VmWare的虚拟网络编辑器,确保子网IP和上面配的IP地址在同一网段,网关也要正确:如下图
在这里插入图片描述

2.3 基础常见命令

类型命令描述
目录相关cd /切换到系统根目录(所有用户共享的目录)
cd test切换到当前目录下的test目录
cd ~切换到 当前用户的家目录
如果当前是root用户,其效果等同 cd /root
如果当前是普通用户,其效果等同 cd /home/用户名
注意:普通用户的家目录都在 home 目录下。
cd .切换到当前目录
cd ..切换到当前目录的父级目录
功能性命令clear清除终端上显示的屏幕内容(清屏)
touch 文件名创建一个空的文件
pwd显示当前目录(print working directory 的缩写)
ps -ef查看当前系统的进程
kill -9 进程的pid结束进程
``

2.4 目录的操作命令

2.4.1 创建目录或文件

创建目录的命令:
mkdir 目录名称 : 在当前文件夹中创建一个目录;
mkdir -p 多级目录 : 表示递归创建多级目录;

创建文件命令 :touch 文件名称 创建一个空文件;

【注意】

  1. touch 命令 创建多个空文件的时候文件之间用空格隔开;
  2. touch 命令 只能在当前文件夹中创建空文件;

2.4.2 查看目录结构

命令:ls [-alhd] [目录]

-alhd单个说明
-a显示指定目录下所有子目录与文件,包括隐藏文件
-l以列表方式显示文件的详细信息(ls -l 等同于 ll
-h可以配合 -l 以更加详细的方式显示文件大小
-d可以查看当前目录的属性

2.4.3 查询目录

命令:find 目录 -name '匹配内容'
在匹配内容字符串中可以用*表示任意个字符,?表示单个字符。
例如:查找 /root 下的与 test 相关的目录(文件) find /root -name ‘test

2.4.4 修改目录

命令:mv 旧目录名称 新目录名称

【注意】:mv 的语法不仅可以对目录进行重命名而且也可以对各种文件,压缩包等进行重命名的操作。

2.4.5 移动目录位置(剪切)

命令:mv 目录原位置 目录的新位置
例如:将当前文件夹中的b文件夹移动到父文件夹中 mv b ../

【注意】

  1. mv 语法不仅可以对目录进行剪切操作,对文件和压缩包等都可执行剪切操作。
  2. 文件进行剪切后目录原位置中就没有该文件了,该文件已经剪切到新位置了。
  3. 该命令还可以用来重命名文件,如:mv a.txt b.txt 将a.txt文件重命名为b.txt。

2.4.6 复制目录或文件

在这里插入图片描述
案例:复制apache-tomcat-8.5.14到当前文件夹中并重新命名为tomcat1;
   cp -pr apache-tomcat-8.5.14 tomcat1

【注意】

  1. 递归式复制指的是当要复制的目录下存在子目录,且子目录中存在子目录或文件的时候,将逐一复制它们。windows的复制默认是这样的。如果不递归复制,结果你得到的目录只包含空的子目录,其子目录下的内容将不会复制。
  2. cp 命令不仅可以拷贝目录还可以拷贝文件,压缩包等,拷贝文件和压缩包时不用写-r 递归。

2.4.7 删除目录或文件

命令:rm [-fir] 文件rmdir [-fir] 目录

参数名描述
-f就是 force (暴力) 的意思,忽略不存在的文件,不会出现警告讯息;
-i互动模式,在删除前会询问使用者是否动作;
-r递归删除(一定要慎用!!!)

【注意】

  1. 当使用 rm 删除命令的时候,不能删除目录;
  2. 当使用 rmdir 删除命令的时候,如果要删除的文件夹中有子文件夹或子文件,则不能删除,会提示要删除的文件夹不为空,此时可以使用 rmdir -r 目录 递归删除目录中的子文件或子文件夹。

2.4.8 搜索

命令:grep 要搜索的字符串 要搜索字符串所在的文件

例如:搜索/etc/sudo.conf 文件中包含字符串 to 的行;
grep to /etc/sudo.conf

1.默认关键字 to 是高亮显示的,如果未高亮,可以在文件后面加--color

2.5 文件内容查看

命令名称描述
cat由第一行开始显示文件内容;
tac从最后一行开始显示,可以看出 tac 是 cat 的倒着写!
nl显示的时候,顺道输出行号!
more一页一页的显示文件内容
less与 more 类似,但是比 more 更好的是,它可以往前翻页!(q 退出查看
head只看头几行
tail只看尾巴几行
od以二进制的方式读取文件内容!

2.5.1 在文件中搜索关键字

在文件中(非插入模式)输入命令:/关键字 即可查找在文件中匹配的关键字,按 n 查找下一个符合条件的关键字。
在这里插入图片描述

2.6 Vim

在实际开发中,使用 vim 编辑器主要作用就是修改配置文件
vim 文件------>进入文件----->命令模式------>按i进入编辑模式----->编辑文件------->按Esc进入底行模式----->输入:wqq!(wq :代表写入内容并退出;q! :代表强制退出不保存;)

常用命令:

命令描述
文件名 -s reloadreload会重新加载配置文件,服务不会中断。
提示:一般编辑好配置文件后,都会重新加载该文件。
``

2.7 建立链接文件 ln

Linux 中链接文件分为软链接和硬链接。
软链接:软链接相当于 Windows 下的快捷方式,源文件删除则软链接失效。
硬链接:硬链接只能链接普通文件,不能链接目录,硬链接会和源文件同步更新。

使用语法:
硬链接:ln 源文件 链接文件
软链接:ln -s 源文件或目录 链接文件或目录

【注意】

  1. 如果没有-s 选项代表建立一个硬链接文件,两个文件占用相同大小的硬盘空间,即使删除了源文件,链接文件还是存在。软链接可以链接目录,是常用的。硬链接不能连接目录
  2. 如果软链接文件和源文件不在同一个目录,源文件必须写绝对路径,否则软链接文件不能使用,硬链接没有这样的要求。

2.8 打包压缩解压

2.8.1 打包压缩

  Linux 中的打包文件一般是以.tar 结尾的,压缩的命令一般是以.gz 结尾的。
  一般情况下打包和压缩是一起进行的,打包并压缩后的文件的后缀名一般.tar.gz。(多个要压缩的文件名之间用空格隔开)

命令:tar -zcvf 打包压缩后的文件名 要打包压缩的源文件

参数描述
z调用 gzip 压缩命令进行压缩
c产生.tar 打包文件
v显示执行过程
f指定压缩后的文件名
# 单个文件压缩打包 
tar czvf my.tar.gz file1ip
# 多个文件压缩打包 
tar czvf my.tar.gz file1 file2 ···
# 单个目录压缩打包 
tar czvf my.tar.gz dir1io
# 多个目录压缩打包 
tar czvf my.tar.gz dir1 dir2

2.8.2 解压

命令:tar [-xvf] 压缩文件 -C 要解压到的目录

参数描述
x代表解压

【注意】-C 代表指定解压的位置。

2.9 zip命令

格式:

[root@ccbx ~]#zip [选项] 压缩包名 源文件或源目录列表(多个文件空格隔开)

例子1:
zip -v files.zip file1.txt file2.txt file3.txt ...

例子2:(注意 -r选项 递归压缩目录中文件)
zip -vr dir.zip dir1 dir2 dir3 ...
选项含义
-r递归压缩目录,及将制定目录下的所有文件以及子目录全部压缩。
-m将文件压缩之后,删除原始文件,相当于把文件移到压缩文件中。
-v显示详细的压缩过程信息。
-q在压缩的时候不显示命令的执行过程。
-压缩级别压缩级别是从 1~9 的数字,-1 代表压缩速度更快,-9 代表压缩效果更好。
-u更新压缩文件,即往压缩文件中添加新文件。

2.10 管道命令

  管道命令用"|"来表示,管道命令需要接收前一个命令的输出结果来进行操作,但不能处理前一个命令的错误。
示例:查看当前系统中所有的进程中包括 system 字符串的进程ps -ef | grep system

2.11 技巧

2.11.1 创建命令文件(.sh)

1) 创建一个批量开启 redis服务 的命令文件:

[root@localhost modules]# touch start-all-redis.sh
[root@localhost modules]# vim start-all-redis.sh 

cd ./redis-6379
./bin/redis-server redis.conf

cd ..
cd ./redis-6380
./bin/redis-server redis.conf

cd ..
cd ./redis-6381
./bin/redis-server redis.conf

cd ..
cd ./redis-6382
./bin/redis-server ./bin/redis.conf

#开启哨兵进程
cd ..
cd ./redis-6379
./bin/redis-sentinel sentinel01.conf

# 退回到执行文件的目录位置
cd ..

[root@localhost modules]# chmod u=rwx start-all-redis.sh
[root@localhost modules]# ./start-all-redis.sh

执行命令文件的效果:
在这里插入图片描述

2) 创建一个批量停止 redis 服务 的命令文件:

[root@localhost modules]# touch down-all-redis.sh
[root@localhost modules]# vim down-all-redis.sh

cd ./redis-6379/bin
./redis-cli -p 6379 shutdown

cd ../../
cd ./redis-6380/bin
./redis-cli -p 6380 shutdown

cd ../../
cd ./redis-6381/bin
./redis-cli -p 6381 shutdown

cd ../../
cd ./redis-6382/bin
./redis-cli -p 6382 shutdown

# 退回到当前目录
cd ../../

[root@localhost modules]# chmod u=rwx down-all-redis.sh
  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值