一年好景君须记,最是橙黄橘绿时。这篇文章主要讲述Linux 常见必备相关的知识,希望能为你提供帮助。
一、学习Linux须知常识
1、Linux 是什么?Linux 是一个操作系统。
我们的 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版本控制工具。
2、shell(壳)Shell 是指“提供给使用者使用界面”的软件(??命令解析器?
?),类似于 DOS 下的 command(命令行)和后来的 cmd.exe 。它之所以被称作 Shell 是因为它隐藏了操作系统底层的细节。
有壳就有核,这里的核就是指 UNIX/Linux 内核,Shell 是指“提供给使用者使用界面”的软件(命令解析器)
??shell 既是用户交互的界面,也是控制系统的脚本语言。?
?
3、Unix 和 Linux:Linux产品成功的模仿了UNIX系统和功能。
4、Linux系统分为两种:1.RedHat系列:Redhat、Centos、Fedora等
2.Debian系列:Debian、Ubuntu等
5、查看系统版本信息1、步骤1:??cat /etc/os-release?
?
2、步骤2:分别对于redhat、debain版本:
cat /etc/redhat-release
cat /etc/debian_version
6、远程服务器是 centos7.6,通过xshell 连接远程,使用命令cat /etc/redhat-release 发现:[root@iZwz9535z41cmgcpkm7i81Z ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
7、后缀是.rpm1、rpm 是Linux软件扩展名,是Red Hat Linux提供的一种包封装格式。现在许多Linux发行版本都使用。
2、后缀为.deb是Debain Linux提供的一种包封装格式。
3、后缀为.tar.gz、tar.Z、tar.bz2或.tgz是使用Unix系统打包工具tar打包的。
4、后缀为.bin 的一般是一些商业软件
■ RPM软件包管理器,通常也被称为红帽软件包管理器
与直接从源代码安装相比,软件包管理易于安装和卸载;易于更新已安装的软件包;易于保护配置文件;易于跟踪已安装文件。
几乎所有的Linux发行版本都使用某种形式的软件包管理安装、更新和卸载软件。
● rpm 命令:
rpm 最初是 Red Hat Linux 发行版专门用来管理 Linux 各项套件的程序,现在许多Linux发行版本都使用。
□ 使用举例:
● 命令语法:rpm [选项] [参数]
-a 查询所有套件
-q 使用询问模式,当遇到任何问题时,rpm指令会先询问用户
-l 显示套件的文件列表
-i 安装软件
-t 测试安装,不是真的安装
-p 显示安装进度
-f 忽略任何错误
-U 升级安装
-v 检测套件是否正确安装
8、yum 或者 apt(1) yum 或 apt:
(2) yum 详细介绍:
■ yum 是什么?Yellow dog Updater Modified的简称,起初是由yellow dog这一发行版的开发者研发,用python写成,最初叫做yup(yellow dog updater),
后来被改名为 yum。
■ yum 特点
■ yum 的作用?简洁的配置文件(/etc/yum.conf,/etc/yum.repos.d 下的文件)?
?
(3) yum 的核心是仓库
yum的关键之处是要有可靠的repository(软件仓库)
软件仓库,它可以是http或ftp站点, 也可以是本地软件池,但必须包含rpm的header,
??header包括了rpm包的各种信息,包括描述,功能,提供的文件,依赖性等?
?。
正是收集了这些 header并加以分析,才能自动化地完成余下的任务。
(4) yum配置文件介绍[yum.conf 和 CentOS-Base.repo]:
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 wont see if the metadata
# is newer on the remote and so youll "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 dont keep old packages around. If you dont like this checking
# interupting your command line usage, its 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
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:
root@f1cfb81dedfd:/etc/apt# mkdir cat sources.list.backup
root@f1cfb81dedfd:/etc/apt# cp sources.list ./sources.list.backup
root@f1cfb81dedfd:/etc/apt/sources.list.backup# cd ../
deb https://mirrors.aliyun.com/debian bullseye main
deb https://mirrors.aliyun.com/debian-security bullseye-security main
deb https://mirrors.aliyun.com/debian bullseye-updates main
apt-get update -y
2)系统是 redhat:
root@f1cfb81dedfd:/etc/yum.repos.d# mv /etc/yum.repos.d /etc/yum.repos.d.backup
root@f1cfb81dedfd:/etc/yum.repos.d#
(6) yum的常用命令:
-y(当安装/卸载/更新过程提示选择全部为"yes")
■ yum源改变了(例如修改了yum的配置文件),需要清除下数据再重新建立缓存
9、centos 安装的vim 编译器的常用快捷键:
1)vim 文件名
● vim的常用模式有分为命令模式,插入模式,正常模式,可视模式。
(或者在正常模式,进入命令模式后,按 :wq )进行保存,然后再退出vim。
2)Insert 键,处于插入状态模式
3)Esc 键,处于正常状态模式
4)shift + zz (按住shift,点击两次z),在正常状态模式下,实现保存并退出操作
保存并退出 卡了,就再次切换模式为插入模式,然后再切回来正常模式,shift+zz
10、echo 命令的作用,除了打印作用,还可以实现覆盖或者追加内容到文件(1)echo 的打印作用:
[root@iZwz9535z41cmgcpkm7i81Z shan]# echo hello
hello
(2)echo的覆盖作用:
[root@iZwz9535z41cmgcpkm7i81Z shan]# touch test.txt
[root@iZwz9535z41cmgcpkm7i81Z shan]# vim test.txt
# test.txt 的内容:
# name
my name is kangkang
# age
18
# love
my love is i believe.
[root@iZwz9535z41cmgcpkm7i81Z shan]# echo ru guo ni shuo yes,jiu keyi la>
test.txt
[root@iZwz9535z41cmgcpkm7i81Z shan]# cat test.txt
ru guo ni shuo yes,jiu keyi la
(3)echo 的追加作用:
[root@iZwz9535z41cmgcpkm7i81Z shan]# touch test2.txt
[root@iZwz9535z41cmgcpkm7i81Z shan]# vim test2.txt
# test2.txt 的内容:
# subjectName
tomorrow i need to study english.
# class
3
# score
just-so-so.
[root@iZwz9535z41cmgcpkm7i81Z shan]# echo time is today>
>
test2.txt
[root@iZwz9535z41cmgcpkm7i81Z shan]# cat test2.txt
#subjectName
tomorrow i need to study english.
# class
3
# score
just-so-so.
time is today
11、功能相似的命令的联系与区别1、su 命令 和 sudo命令
su和sudo是两个常用的切换到root超级用户命令。功能上类似,但使用上还是有不少差异。2、bash 命令 和 sh 命令
二、Linux 命令的学习(一)学习Linux 的准备工作1、在线学习linux
2、连接远程服务器学习【下文的案例就是使用xshell连接远程服务器】
自己购买一台云服务器,通过xshell 连接远程服务器,然后动手使用linux命令,例如使用linux部署一个项目。
3、本地安装虚拟机,然后通过虚拟机安装Linux的发行版软件(centos或ubuntu)
(二) Linux 学习建议1、 建议:命令多动手敲,不熟悉命令不建议复制粘贴的懒惰行为。
2、 ??动手敲一遍使用linux命令部署一个项目,到这里,就具备了linux的基本命令的掌握,足够学习docker等其他板块啦,遇到不会的动手百度或翻看手册。?
?
3、linux手册:??https://www.linuxcool.com/??
(三) 使用Linux命令部署项目(方式2:使用xshell连接远程服务器)● ssh 命令,连接远程的服务器??ssh ip地址?
?
● pwd 命令,查看所在目录的位置??ssh 121.5.151.236?
?,若是使用虚拟机运行centos,则ssh命令不用执行,这个ssh命令跳过。?pwd?
?
● ifconfig 命令,查看网络设备信息??ifconfig?
?
【Linux 常见必备】◇ 看到有网卡在工作中即可up、running
[root@mysql ~]# ifconfig
eth0: flags=4163<
UP,BROADCAST,RUNNING,MULTICAST>
mtu 1500
inet 192.168.0.111netmask 255.255.255.0broadcast 192.168.0.255
inet6 fe80::8c18:4c0c:35b:f89cprefixlen 64scopeid 0x20<
link>
ether 00:0c:29:bf:7a:4btxqueuelen 1000(Ethernet)
RX packets 396bytes 43132 (42.1 KiB)
RX errors 0dropped 0overruns 0frame 0
TX packets 189bytes 25028 (24.4 KiB)
TX errors 0dropped 0 overruns 0carrier 0collisions 0
......
# eth0:网卡名称
# UP:表示网卡是开启状态
# BROADCAST:表示网卡支持广播
# RUNNING:表示网卡的网线已经被接上,在工作中
# MULTICAST:表示网卡支持组播
# Link encap:网卡的接口类型,这里是以太网
# HWaddr:网卡的硬件地址,俗称的MAC地址
# inet addr:IPv4地址,如果是IPv6会写成inet6 addr
# Bcast:广播地址
# Mask:子网掩码
# MTU:网络最大传输单元
# Metric:到达网关的度量值,参考:http://m.chinabyte.com/network/191/12287691_gfh.shtml
# RX packets:网络从启动到现在为止接收的数据包大小,单位是字节,error 发生错误的数据包,dropped 被丢弃的数据包
# TX packets:网络从启动到现在为止发送的数据包大小,单位是字节,error 发生错误的数据包,dropped 被丢弃的数据包
# collisions:发生碰撞的数据包,如果发生太多次,表明网络状况不太好
# txqueuelen:传输数据的缓冲区的储存长度
# RX bytes:总接收字节总量
推荐阅读
- git 最基本使用
- VUE git 约定规范 Commitizen和 GIT HOOKS
- git 分支
- lammps教程(一次提交多个in文件计算的简单方法)
- ansible使用
- (5.3)苹果系统中数据隐藏lnvisiletter使用方法隐藏原理分析
- Mac 上制作 SSL 证书
- 现代化云桌面之Windows 365介绍篇
- 使用APICloud AVM框架开发预约应用