1前言
免费学习资料摘要(包括视频、技术学习路线图、文件等)
1.1课程介绍
1.2学习方向
1.3应用领域
这个领域是现有Linux应用程序中最薄弱的部分。传统的Linux由于界面简单、复杂、应用程序软件少等缺点被windows压制,但近年来随着Ubuntu、Fedora、Debian、Manjaro等优秀桌面环境的兴起,主要硬件应运而生。
服务器领域
linux 在服务器领域的应用是最强的。
linux 免费、稳定、高效等特点在这里得到了很好的体现,近些年来 Linux 服务器市场得到了飞速的提升,尤其在一些高端领域尤为广泛。
嵌入式领域
近些年来 linux 在嵌入式领域的应用得到了飞速的提高
linux 运行稳定、对网络的良好支持性、低成本,且可以根据需要进行软件裁剪,内核最小可以达到几百 KB 等特点,使其近些年来在嵌入式领域的应用得到非常大的提高
主要应用:机顶盒、数字电视、网络电话、程控交换机、手机、PDA、智能家居、智能硬件等都是其应用领域。以后在物联网中的应用会更加广泛
1.4 学习阶段
linux 环境下的基本操作命令,包括 文件操作命令(rm mkdir chmod, chown) 编辑工具使用(vi Vim)linux 用户管理(useradd userdel usermod)等
linux 的各种配置(环境变量配置,网络配置,服务配置)
linux 下如何搭建对应语言的运行环境(大数据,JavaEE, Python 等)
能编写 shell 脚本,对 Linux 服务器进行维护。
能进行安全设置,防止攻击,保障服务器正常运行,能对系统调优。
深入理解 Linux 系统(对内核有研究),熟练掌握大型网站应用架构组成、并熟悉各个环节的部署和维护方法。
1.5 学习建议
高效而愉快地学习
先建立一个整体框架,然后细节
不需要掌握所有的 Linux 指令,要学会查询手册和百度
先 know how ,在 know why
计算机是一门”做中学”的学科,不是会了再做,而是做了才会.
适当地囫囵吞枣
Linux 不是编程,重点是实际操作,各种常用指令要玩得溜
2 linux入门
2.1 linux简介
Linux 内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。
Linux 是一套免费使用和自由传播的类 UNIX 操作系统,是一个基于 POSIX 和 unix 多用户、多任务、支持多线程和多 CPU 的操作系统。
Linux 能运行主要的 UNIX 工具软件、应用程序和网络协议。它支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
Linux 是一款操作系统,免费,开源, 安全,高效,稳定, 处理高并发非常强悍,现在很多的企业级的项目都部署到 Linux/unix 服务器运行。
其内核于1991年10月5日首次发布
2 linux发行版
目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux、SolusOS 等。
这些发行版的关系如下图
和unix的关系
unix怎么来的
4 linux怎么来的
20世纪80年代,计算机硬件的性能不断提高,PC的市场不断扩大,当时可供计算机选用的操作系统主要有Unix、DOS和iOS这几种。
Unix价格昂贵,不能运行于PC;
DOS显得简陋,且源代码被软件厂商严格保密;
MacOS是一种专门用于苹果计算机的操作系统。
此时,计算机科学领域迫切需要一个更加完善、强大、廉价和完全开放的操作系统。由于供教学使用的典型操作系统很少,因此当时在荷兰当教授的美国人AndrewS.Tanenbaum编写了一个操作系统,名为MINIX,为了向学生讲述操作系统内部工作原理。
MINIX虽然很好,但只是一个用于教学目的的简单操作系统,而不是一个强有力的实用操作系统,然而最大的好处就是公开源代码。
全世界学计算机的学生都通过钻研MINIX源代码来了解电脑里运行的MINIX操作系统,芬兰赫尔辛基大学大学二年级的学生Linus Torvalds就是其中一个,在吸收了MINIX精华的基础上,Linus于1991年写出了属于自己的Linux操作系统,版本为Linux0.01,是Linux时代开始的标志。他利用Unix的核心,去除繁杂的核心程序,改写成适用于一般计算机的x86系统,并放在网络上供大家下载,1994年推出完整的核心Ver,至此,Linux逐渐成为功能完善、稳定的操作系统,并被广泛使用。
5 与windows比较
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LGCtodW4-1653304158045)(file:///D:/%E5%A4%A7%E5%AD%A6/%E4%B8%9C%E8%BD%AF%E5%9F%B9%E8%AE%AD/linux%E6%95%99%E7%A8%8B_file)]
安装虚拟机和CentOS
3.1 VMware 和 centos介绍
VMWare虚拟机软件是一个“虚拟PC”软件,它使你可以在一台机器上同时运行二个或更多Windows、DOS、LINUX系统。与“多启动”系统相比,VMware采用了完全不同的概念。多启动系统在一个时刻只能运行一个系统,在系统切换时需要重新启动机器
下载:
CentOS是免费的、开源的、可以重新分发的开源操作系统 ,CentOS(Community Enterprise Operating System,中文意思是社区企业操作系统)是Linux发行版之一。
CentOS Linux发行版是一个稳定的,可预测的,可管理的和可复现的平台,源于Red Hat Enterprise Linux(RHEL)依照开放源代码(大部分是GPL开源协议 )规定释出的源码所编译而成。
自2004年3月以来,CentOS Linux一直是社区驱动的开源项目,旨在与RHEL在功能上兼容。
下载:
安装vmware
安装centos
联网和使用终端
设置共享目录
linux目录结构
树状目录
linux 的文件系统是采用基层式的树状目录结构,在此结构中的最上层是根目录"/",然后在此目录下再创建其他的目录。
深刻理解 linux树状文件目录是非常重要的,这里我给大家说明一下。
记住一句经典的话:在 Linux 世界里,一切皆是文件。
详细介绍
/bin:
bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令。
/boot:
这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。
/dev:
etc 是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录。/home:
用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录是以用户的账号命名的,如上图中的 alice、bob 和 eve。
/lib:
lib 是 Library(库) 地缩写这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。
/lost+found:
这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
/media:
linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下。
/mnt:
系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容了。
/opt:
opt 是 optional(可选) 的缩写,这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
/proc:
proc 是 Processes(进程) 的缩写,/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all /root:
该目录为系统管理员,也称作超级权限者的用户主目录。
/sbin:
s 就是 Super User 的意思,是 Superuser Binaries (超级用户的二进制文件) 的缩写,这里存放的是系统管理员使用的系统管理程序。
/selinux:
这个目录是 Redhat/CentOS 所特有的目录,selinux 是一个安全机制,类似于 windows 的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。
/srv:
该目录存放着一些服务启动之后需要提取的数据。
/sys:
这是 Linux2.6 内核的一个很大的变化。该目录下安装了 2.6 内核中新出现的一个文件系统 sysfs 。
sysfs 文件系统集成了下面3种文件系统的信息:针对进程信息的信息 proc 文件系统、针对设备的 devfs 文件系统以及针对伪终端的 devpts 文件系统。
该文件系统是内核设备树的一个直观反映。
当一个内核对象被创建的时候,对应的文件和目录也在内核对象的子系统中被创建。
/tmp:
tmp 是 temporary(临时) 缩写这个目录是用来存放一些临时文件的。
/usr:
usr 是 unix shared resources(共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。
/usr/bin:
系统用户使用的应用程序。
/usr/sbin:
超级用户使用得是比较高级的管理程序和系统守护程序。
/usr/src:
内核源代码默认的放置目录。
/var
var 是 variable(变量) 的缩写,这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
/run:
是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。
在 Linux 系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。
/etc:
上边也提到了,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。
/bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在 /bin/ls 目录下的。
值得提出的是 /bin、/usr/bin 是给系统用户使用的指令(除 root 外地通用用户),而/sbin, /usr/sbin 则是给 root 使用的指令。
/var:
这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在 /var/log 目录下,另外 mail 的预设放置也是在这里。
远程登录linux
5.1 为什么要远程登录
说明: 公司开发时候, 具体的情况是这样的
linux 服务器是开发小组共享的.
正式上线的项目是运行在互联网的.
因此程序员需要远程登录到 centos 进行项目管理或者开发.
画出简单的网络拓扑示意图(帮助理解)
远程登录客户端有 Xshell, xftp , 我们学习使用 Xshell 和 Xftp , 其它的远程工具大同小异
5.2 安装和使用xshell
Xshell 是目前为止最好的远程登录到 Linux 操作的软件,流畅的速度并且完美解决了中文乱码的问题, 是目前程序员首选的软件。
Xshell [1] 是一个强大的安全终端模拟软件,它支持 SSH1, SSH2, 以及 Microsoft Windows 平台的 TELNET 协议。
Xshell 可以在 Windows 界面下用来访问远端不同系统下的服务器,从而比较好地达到远程控制终端的目的。
特别说明:如果希望安装好 XShell 就可以远程访问 Linux 系统的话,需要有一个前提,就是Linux 启用了 SSHD 服务,该服务会监听 22 号端
5.3 安装和使用xftp
Xftp是一个功能强大的SFTP、FTP 文件传输软件。使用了 Xftp 以后,MS Windows 用户能安全地在 UNIX/Linux 和 Windows PC 之间传输文件。Xftp 能同时适应初级用户和高级用户的需要。它采用了标准的 Windows 风格的向导,它简单的界面能与其他 Windows 应用程序紧密地协同工作,此外它还为高级用户提供了众多强劲的功能特性。
5.4 开通sshd服务
监听22端口
5.5 乱码问题
6 关机、重启、登录与注销
6.1 关机与重启
登录与注销
7 常用指令
7.1 文件目录类
cd 基本语法 cd [参数] •功能描述: 切换到指定目录 change directory •常用参数 绝对路径/xx/xx 和相对路径 ./ ../ cd ~ 或者 cd :回到自己的家目录 cd .. 回到当前目录的上一级目录 •如何理解绝对路径和相对路径 •应用实例 假设你现在/usr/lib目录 案例 1:使用绝对路径切换到 root 目录 案例 2: 使用相对路径到/root 目录 案例 3:表示回到当前目录的上一级目录 案例 4:回到家目录
时间日期类
搜索查找类
案例:1 使用find按文件名来查找语法:find / -name 文件名 ,这里可用通配符*
2 如果想按文件的修改时间来查找可以使用-mtime参数,后面接时间参数 -代表时间内 +代表时间以前
3 如果想按文件大小来进行查找可以直接使用-size 参数后面加上文件大小即可 (+n 大于 -n 小于 n 等于)
4 如果想针对文件类型进行查找可以直接使用-type参数 ,文件的类型有 文件f 目录d 设备b,c 链接l 等
5 在查找的时候还可以把两个查找类型进行结合起来使用,使用-a代表并且 -o代表或者
6 查找当前目录下所有.txt文件并打印出详细的文件信息
locate
locaate 指令可以快速定位文件路径。locate 指令利用事先建立的系统中所有文件名称及路径的locate 数据库实现快速定位给定的文件。locate 指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新 locate 时刻。
grep和管道符号|
压缩和解压类
细节说明:
当我们使用 gzip 对文件进行压缩后,不会保留原来的文件
帮助信息类
用户管理
介绍
Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
在实际的项目中,由于要涉及到多个部门共同参与(如前端、后端、数据组。。。),这时就需要为每位开发人员创建一个用户,为了方便给不同的人分配不同的权限,可以将用户分为不同的组,之后对各个组分配权限就很方便了。
对于创建的每一个用户,都会在/home文件夹下默认创建一个以用户名命名的文件夹,用于该用户文件的存放。
用户操作
以下均是
添加用户
修改密码
passwd 用户名
注:如果没有带用户名,则是给当前登录的用户修改密码
删除用户
查询用户信息
切换用户
注意:
从权限高的用户切换到权限低的用户,不需要输入密码,反之需要。
当需要返回到原来用户时,使用 exit 指令
查看当前登录用户
用户组操作
1 创建令孤冲、张无忌、任盈盈 账号
useradd lhc useradd zwj useradd ryy
2 分别给设置密码
passwd lhc passwd zwj passwd ryy
3 创建华山派 、武当、魔教 三个组
groupadd hs_g groupadd wd_g groupadd mj_g
4 令孤冲归到华山派,张无忌-》武当, 任盈盈-》魔教
usermod -g hs_g lhc usermod -g wd_g zwj usermod -g mj_g ryy
5 令孤冲搬家,搬到衡山
mkdir /home/hengshan usermod -d /home/hengshan lhc
6 令孤冲叛变,投入魔教
usermod -g mj_g lhc
7 把张无忌所在的武当组删除
userdel zwj groupdel wd_g
8 最后看一下
/etc/passwd 和 、/etc/shadow的变化 tail -n 15 /etc/passwd
新增组
groupadd 组名
删除组
groupdel 组名
修改用户的组、初始目录
usermod – g 新的组名 用户名 usermod – d 目录名 用户名
用户和组的相关文件
/etc/passwd文件 用户(user)的配置文件,记录用户的各种信息 每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录 Shell
特殊账号:
/etc/shadow
口令配置文件
密码生成的算法:
/etc/group文件
组(group)的配置文件,记录 Linux 包含的组的信息
每行含义:组名:口令:组标识号:组内用户列表权限管理
9.1 介绍
Linux中所有内容都是以文件的形式保存和管理,即:一切皆文件。
- 普通文件是文件。
- 目录(在win下称为文件夹)是文件。
- 硬件设备(键盘、硬盘、打印机)是文件。
Linux下有两种用户:超级用户(root)、普通用户。
- 超级用户:可以再linux系统下做任何事情,不受限制,命令提示符是"#"
- 普通用户:在linux下做有限的事情, 命令提示符是"$"
linux文件对不同用户可以分别设置权限,管理员(root)有所有权限。
文件访问者的分类
- 文件和文件目录的所有者:u—User
- 文件和文件目录的所有者所在的组的用户:g—Group
- 其它用户:o—Others
查看文件类型和所有者
一般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者,当然后期可以改
使用命令查看: ls -l
权限说明
修改文件权限-chmod
9.4.1 第一种方式:+ 、-、= 变更权限
使用chmod命令来改变文件的权限,
注:只有文件的拥有者和root用户才能调用chmod命令改变权限
u:所有者 g:所有组 o:其他人 a:所有人(u、g、o 的总和)
chmod u=rwx,g=rx,o=x 文件目录名
chmod o+w 文件目录名
chmod a-x 文件目录名
练习:
第二种方式:通过数字变更权限
规则:r=4 w=2 x=1 ,rwx=4+2+1=7
chmod u=rwx,g=rx,o=x 文件目录名
相当于 chmod 751 文件目录名
练习2:
假设有一个文件a.txt , 它的权限 731
rwx-wx--x
问题解决:
两个用户
chenqf
chenqf2
同属于一个组
java_g
有这么一个文件( ls -lh)
-rw-r---w-. 1 chenqf java_g 11 5月 17 17:15 a.txt
此时, 用户chenqf2拥有可读权限,但是cat /home/chenq 查看时权限,什么原因?怎么办?
原因是因为:
chenqf2用户 没进入 chenqf家目录的权限
怎么办?
让chenqf2拥有进入chenqf家目录的权限, 就是让家目录所有者的同一组成员拥有可执行权限
chmod g+x chenqf
修改文件所有者-chown
修改文件所在组-chgrp
chgrp newgroup file
实战练习:
练习1:
练习文件权限管理[课堂练习]
建立两个组(神仙,妖怪)
建立四个用户(唐僧, 悟空,八戒,沙僧)
给四个用户设置密码
把悟空,八戒放入妖怪组, 唐僧、沙僧 在神仙
用悟空( 切换用户 )建立一个文件 (monkey.java 该文件要输出 i am monkey) echo ‘i am monky’ > monkey.java
给八戒一个可以rw 的权限
八戒修改 monkey.java 加入一句话( i am pig)
设置唐僧、沙僧对该文件没有权限
把 沙僧 放入妖怪组
让沙僧 修改 该文件 monkey, 加入一句话 (“我是沙僧,我也是妖怪!”);
练习2:
用 root 登录,建立用户 lucy,自己设定密码
用 lucy 登录,在主目录下建立目录 ff/gg/hh
在 hh 中建立一个文本文件 , 向 输出 hello,kitty
改变 的权限为当前用户可读可写可执行,组用户可读可执行,其他用户只读
删除新建立的目录 ff/gg/hh
删除用户 lucy 及其主目录中的内容
重新启动 linux 或关机
10 vi和vim
10.1 vi和vim介绍
所有的 Linux 系统都会内建 vi 文本编辑器。
Vim 具有程序编辑的能力,可以看做是 Vi 的增强版本,可以主动的以字体颜色辨别语法的正确
性,方便程序设计。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
10.2 三种模式
命令模式: 启动 vim编辑器 后默认进入命令模式,该模式中主要完成如光标移动、字符串查找,以及删除、复制、粘贴文件内容等相关操作;
编辑模式: 该模式中主要的操作就是录入文件内容,可以 对文本文件正文进行修改、或者添加新的内容。处于输入模式时,vi编辑器的最后一行会出现"–INSERT–"的状态提示信息;
末行模式: 该模式中可以设置vi编辑环境、保存文件、退出编辑器,以及对文件内容进行查找、替换等操作。处于末行模式时,vim编辑器的最后一行会出现冒号:提示符。
包含视频、技术学习路线图谱;C/C++Linux服务器开发/后台架构师【零声教育】-学习视频教程-腾讯课堂
技术点包含了C/C++,Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK等方面。
后台私信《资料》免费领取
1.《免费yy账号和密码怎么设置密码?总结很全面速看!Linux45分钟速成》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《免费yy账号和密码怎么设置密码?总结很全面速看!Linux45分钟速成》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/gl/3267724.html