学习Linux须知1.0之Linux相关概念、工具(yum、vi

2022-05-24  本文已影响0人  一乐乐

温馨提示:重点掌握的前面都标注了 ☆

一、Linux 是什么?

Linux 是一个操作系统。

图片.png

我们的 Linux 主要是系统调用和内核那两层。

当然直观地看,我们使用的操作系统还包含一些在其上运行的应用程序,比如文本编辑器、浏览器、电子邮件等。

Linux 本身只是操作系统的内核。

内核是使其它程序能够运行的基础。它实现了多任务和硬件管理,用户或者系统管理员交互运行的所有程序实际上都运行在内核之上。

其中有些程序是必需的,比如说,命令行解释器(shell),它用于用户交互和编写 shell 脚本。

Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX(可移植操作系统接口) 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统。

Linux 能运行主要的 UNIX 工具软件、应用程序和网络协议。它支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。


Linux之父 Linus 没有自己去开发这些应用程序,而是使用已有的自由软件。这减少了搭建开发环境所需花费的工作量。实际上,他经常改写内核,使得那些程序能够更容易地在 Linux 上运行。许多重要的软件,包括 C 编译器,都来自于自由软件基金 GNU 项目。GNU 项目开始于 1984 年,目的是为了开发一个完全类似于 UNIX 的免费操作系统。为了表扬 GNU 对 Linux 的贡献,许多人把 Linux 称为 GNU/Linux(GNU 有自己的内核)。

Linux之父 芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写linux的内核。他还独自开发了git版本控制工具。




二、Unix 和 Linux 的关系:

Linux产品成功的模仿了UNIX系统和功能。Linux是免费的,Unix是收费的。




三、shell(壳)和 bash 的关系:

1、Shell 是指"提供给使用者使用界面"的软件(命令解析器),类似于 DOS 下的 command(命令行)和后来的 cmd.exe 。它之所以被称作 Shell 是因为它隐藏了操作系统底层的细节。

有壳就有核,这里的核就是指 UNIX/Linux 内核,Shell 是指"提供给使用者使用界面"的软件(命令解析器)

shell 既是用户交互的界面,也是控制系统的脚本语言。

Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。

Shell 既是一种命令语言,又是一种程序设计语言。

Ken Thompson 的 sh 是第一种 Unix Shell,Windows Explorer 是一个典型的图形界面 Shell。

■ Shell 脚本(shell script):

简单说,shell script是利用shell的功能所写的一个程序,这个程序是使用纯文本文件,将一些shell的语法与指令写在里面,然后用正规表示法,管道命令以及数据流重导向等功能,以达到我们所想要的处理目的。

■ Shell 环境:

Linux 的 Shell 种类众多,常见的有:

2、bash:

Bash,也就是 Bourne Again Shell,由于易用和免费,Bash 在日常工作中被广泛使用。

同时,Bash 也是大多数 Linux 系统默认的 Shell。




☆ 四、Linux 目录结构介绍

图片.png

/bin: bin是Binary的缩写, 这个目录存放着最经常使用的命令。

/boot: 这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。(不 要动)

/dev : dev是Device(设备)的缩写, 存放的是Linux的外部设备,在Linux中访问设备的方式和访问 文件的方式是相同的。

/etc: 这个目录用来存放所有的系统管理所需要的配置文件和子目录。 [管理配置]

/home:用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。 [默认/home 是空的,需要自己手动创建一个目录,在/home目录下创建的目录相当于c盘Users下的目录]

/lib: 这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。 (不要动)

/lost+found: 这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。(存放 突然关机的一些文件)

/media:linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备 挂载到这个目录下。

/mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上, 然后进入该目录就可以查看光驱里的内容了。(我们后面会把一些本地文件挂载在这个目录下)

/opt:这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。 [安装程序]

/proc: 这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。(不用管)

/root:该目录为系统管理员,也称作超级权限者的用户主目录。 [系统管理员]

/sbin:s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。 [超级用户管理的程序]

/srv:该目录存放一些服务启动之后需要提取的数据。 [服务器启动提取的数据]

/sys:这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。 [文件系统]

/tmp:这个目录是用来存放一些临时文件的。用完即丢的文件,可以放在这个目录下,安装包!

/usr:这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows 下的program files目录。 [程序目录]

/usr/bin: 系统用户使用的应用程序。 [应用程序]

/usr/sbin: 超级用户使用的比较高级的管理程序和系统守护程序。 [高级程序、守护程序]

/usr/src: 内核源代码默认的放置目录。

/var:这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件 [修改的目录、日志]

/run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被 删掉或清除。

/www:存放服务器网站相关的资源,环境,网站的项目。




☆ 五、Linux系统分为两种:

1、RedHat系列:Redhat、Centos、Fedora等

2、Debian系列:Debian、Ubuntu等

一般你所见到的是Linux,比如 Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、 Arch Linux、SolusOS等,他们都是Linux不同的发行版本。




☆ 六、查看系统版本信息

1、步骤1:cat /etc/os-release

2、步骤2:分别对于redhat、debain版本:




七、后缀是.rpm

1、rpm 是Linux软件扩展名,是Red Hat Linux提供的一种包封装格式。现在许多Linux发行版本都使用。

2、后缀为.deb是Debain Linux提供的一种包封装格式。

3、后缀为.tar.gz、tar.Z、tar.bz2或.tgz是使用Unix系统打包工具tar打包的。

4、后缀为.bin 的一般是一些商业软件

  • 通过扩展名可以了解软件格式,进而了解软件安装。

1、 RPM软件包管理器(红帽软件包管理器)

与直接从源代码安装相比,软件包管理易于安装和卸载;易于更新已安装的软件包;易于保护配置文件;易于跟踪已安装文件。

几乎所有的Linux发行版本都使用某种形式的软件包管理安装、更新和卸载软件。

2、rpm 命令:

rpm 最初是 Red Hat Linux 发行版专门用来管理 Linux 各项套件的程序,现在许多Linux发行版本都使用。

rpm的命令是以 rpm 开头的!

使用举例:

3、命令语法:rpm [选项] [参数]




☆ 八、yum 或者 apt

☆ 1、yum 或 apt 的关系:

RedHat系列的包管理工具是 yum

Debian系列的包管理工具是 apt-get

2、yum 详细介绍:

(1) yum 是什么?

Yellow dog Updater Modified的简称,起初是由yellow dog这一发行版的开发者研发,用python写成,最初叫做yup(yellow dog updater),

后来被改名为 yum。

(2) yum 特点

(3) yum 的作用

3、 yum 的核心---仓库

yum的关键之处是要有可靠的repository(软件仓库)

软件仓库,它可以是http或ftp站点, 也可以是本地软件池,但必须包含rpm的header

header包括了rpm包的各种信息,包括描述,功能,提供的文件,依赖性等

正是收集了这些 header并加以分析,才能自动化地完成余下的任务。

4、yum 配置文件介绍---yum.conf 和 CentOS-Base.repo:

(1) yum 主配置文件 /etc/yum.conf

[root@iZwz9535z41cmgcpkm7i81Z etc]# cat yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever  # yum缓存的目录,yum在此存储下载的rpm包和数据库,一般是/var/cache/yum
keepcache=0    # 是否保存缓存,为0,让缓存一直为空
debuglevel=2   # debuglevel:除错级别,0-10,默认是2
logfile=/var/log/yum.log    # yum的日志文件,默认是/var/log/yum.log
exactarch=1    #  准确匹配,精确匹配硬件平台,只有完全相同才更新。有两个选项1和0,代表是否只升级和你安装软件包cpu体系一致的包
obsoletes=1    # 当使用升级模式时,一些包没有用了,可以删除(取值1)
gpgcheck=1     # 安装时是否检查RPM包的PGP签名
plugins=1      # Yum插件是否可用
installonly_limit=5   # 安装限制           # bugtracker_url:bug 跟踪路径
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?   category=yum   # 目录
distroverpkg=centos-release   # 定从哪里获取系统版本相关的信息


#  This is the default, if you make this bigger yum won't see if the metadata
# is newer on the remote and so you'll "gain" the bandwidth of not having to
# download the new metadata and "pay" for it by yum not having correct
# information.
#  It is esp. important, to have correct metadata, for distributions like
# Fedora which don't keep old packages around. If you don't like this checking
# interupting your command line usage, it's much better to have something
# manually check the metadata once an hour (yum-updatesd will do this).
# metadata_expire=90m

# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d

(2) yum源的默认配置文件 /etc/yum.repos.d/CentOS-Base.repo

[root@iZwz9535z41cmgcpkm7i81Z yum.repos.d]# cat CentOS-Base.repo
[base]
name=CentOS-$releasever - Base
failovermethod=priority
baseurl=http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.cloud.aliyuncs.com/centos/RPM-GPG-KEY-CentOS-7
 
#released updates 
[updates]
name=CentOS-$releasever - Updates
failovermethod=priority
baseurl=http://mirrors.cloud.aliyuncs.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.cloud.aliyuncs.com/centos/RPM-GPG-KEY-CentOS-7
 
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
failovermethod=priority
baseurl=http://mirrors.cloud.aliyuncs.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.cloud.aliyuncs.com/centos/RPM-GPG-KEY-CentOS-7
 
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
failovermethod=priority
baseurl=http://mirrors.cloud.aliyuncs.com/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.cloud.aliyuncs.com/centos/RPM-GPG-KEY-CentOS-7
 
#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib
failovermethod=priority
baseurl=http://mirrors.cloud.aliyuncs.com/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.cloud.aliyuncs.com/centos/RPM-GPG-KEY-CentOS-7

☆ 5、yum 包管理工具

和maven、npm一样,凡是看到,涉及到自动管理包,必须考虑的是下载速度的提速。

■ 配置一下阿里云镜像加速:

(1) 系统是 debain:

(2) 系统是 redhat:

☆ 6、yum的常用命令:

参数 -y(当安装/卸载/更新过程提示选择全部为"yes")

■ yum源改变了(例如修改了yum的配置文件),需要清除下数据再重新建立缓存




☆ 九、文本编译器 vim 常用快捷键:

● vim的常用模式有分为 命令模式(正常模式),插入模式,底线命令模式。

  • 正常模式/命令模式:主要用来浏览文本内容。一开始打开vim都是正常模式。按 Esc键 任何情况,都可以返回正常模式
  • 底线命令模式:在正常模式下,按冒号:即可切换到底线命令模式。
  • 插入编辑模式:用来向文本中添加内容的。在正常模式下,按 Insert 键,即可进入插入编辑模式
  • 注意:退出vim,如果使用vim修改任何文本后需要保存并退出,需要在正常/命令模式下(Esc键),输入 shift+zz

(或者在正常模式,进入底线命令模式(输入:)后,然后在冒号后面输入wq,回车,保存并退出vim。)

1、vim 文件名

2、Insert 键,处于插入状态模式

3、Esc 键,处于正常状态模式

4、shift + zz (按住shift,点击两次z),在正常状态模式下,实现保存并退出操作

保存并退出 卡了,就再次切换模式为插入模式,然后再切回来正常模式,shift+zz

5、在正常模式下,关于vim的一些快捷键:

---------------- 当前行的复制粘贴功能 ---------------

● 复制当前行:双击 y

● 粘贴双击y的内容:p

一般情况任意内容的复制粘贴,使用鼠标的右键功能(注意,使用右键的粘贴功能会自动切换到插入模式)

--------------------- 撤销、反撤销 --------------------

● 撤销:u

● 反撤销:Ctr+r

------------------------ 删除 ------------------------

● 删除当前行:双击d

● 删除当前光标前面所有内容: 按d,然后双击g

● 删除当前光标后面所有内容: 按d,然后按G

------------------ 快速定位到段首、段尾 ------------------

● 快速定位到段首:双击 gg

● 快速定位到段尾: 双击 GG


------------------------- 搜索功能 -----------------------

★ 搜索快捷键【也是在正常模式下】:

☆ 从当前位置向下查找:/ [/关键词,然后回车]

☆ 从当前位置向上查找:? [?关键词,然后回车]

● 查找下一个位置:#

● 查找上一个位置:*

------------------------------ vim 退出高亮模式 --------------------

在正常模式,输入:切换到命令模式,然后在冒号的后边,接着输入noh




十、防火墙

1、防火墙是什么和分类:

■ 防火墙是什么?

所谓"防火墙"是指一种将内网和公网(公众访问网)分开的方法,它实际上是一种建立在现代通信网络技术和信息安全技术基础上的应用性安全技术,隔离技术。

■ 防火墙分类?

2、防火墙的作用:

对于公司,最重要的功能--安全:保护(局域网)、过滤、防止恶意攻击;然后还可以配置地址转换功能,让内部ip无法访问互联网,节约ip成本。

3、Linux 软件防火墙iptables 或 FirewallD

Iptables:是centos6自带的防火墙工具,对服务器自身、网络通信流量进行控制,用于过滤数据包,属于网络层防火墙。

FirewallD:是centos7自带的防火墙工具,但是也同样支持iptables。能够允许哪些服务可用,哪些端口可用,属于更高一层的防火墙。

iptables 与 firewalld 都不是真正的防火墙, 它们都只是用来定义防火墙策略的防火墙管理工具。

4、centos7的FirewallD

● 查看防火墙的状态:systemctl status firewalld

● 开启防火墙: systemctl start firewalld

● 关闭防火墙:systemctl stop firewalld


● 查看防火墙规则:
# 查看默认的zone=public所有信息:
firewall-cmd --list-all

# 查看zone=public的端口的信息:
firewall-cmd --list-ports --zone=public


● 开启端口6379: firewall-cmd --zone=public --add-port=6379/tcp --permanent

● 关闭端口6379: firewall-cmd --zone=public --remove-port=6379/tcp --permanent

● 重新加载:开启端口/关闭端口,必须重新加载或重启服务器才生效,重新加载命令: firewall-cmd --reload

■ 命令含义:
--zone #作用域
--add-port # 添加端口,格式为:端口/通讯协议
--permanent #永久生效,没有此参数重启后会失效


如果本文对你有帮助的话记得给一乐点个赞哦,感谢!

上一篇 下一篇

猜你喜欢

热点阅读