学习linux是为了以后可以作为运维开发,运维开发脚本可以使用python来进行编写,linux也提供了非常方便的工具和开发环境。 Linux阶段也为5篇
①学习linux的优势
拓展性强 应用面广
②怎么学?
起步阶段基础要打稳;不以windows的工作方式来考虑问题;适当学好英语;尽量不使用图形界面
一、linux简介
Linux是当前最具发展潜力的计算机操作系统,Internet的旺盛需求正推动着Linux的热潮一浪高过一浪。它是自由传播的类UNIX操作系统,其中在中国推广使用的有Redhat Linux、Debian Linux等,现在还有国产的红旗Linux、中软Linux等不同版本。Linux具有自由与开放的特性,以及强大的网络功能,将有着无限广阔的发展前景。
1、Linux起源
(1)UNIX系统的出现
1969年在美国的贝尔实验室Thompson和Richie开发了名为UNIX的多用户多任务操作系统。Thompson 在1969 年夏假期间的一个月内开发出了UNIX 操作系统的原型。当时使用的是BCPL 语言(基本组合编程语言),在 1971年C语言出现后,大部分代码改用C语言,从而使其具有很强的可移植性。
(2)个人操作系统Windows的出现
从20世纪80年代开始,随着计算机硬件和软件技术的发展,计算机逐步进入千家万户。一系列适合个人计算机的操作系统也应运而生,其中微软公司的产品便是其中最杰出的代表。从MS-DOS到Windows,从Windows 95到Windows Vista,Windows系列操作系统提供给用户人性化的图形化用户界面,使得操作非常的简捷方便。但是这类操作系统在商业与技术上的垄断性在一定程度上也阻碍了信息技术的普及与发展。
(3) Linux系统的出现
1991年初,21岁的Linus Torvalds就读于芬兰的赫尔辛基大学(University of Helsinki),为完成自己操作系统课程的作业,基于Minix(一种免费的小型UNIX操作系统)编写一些程序。Linus决定自己开发终端仿真程序,仿真程序实现的是网络的登录和电子邮件的收发,无法下载和上传资料。Linus进而开发了磁盘管理和文件管理程序,以实现操作系统核心功能的完善。
2、Linux的版本
从Linux开发技术的角度看,Linux版本有两种:内核(Kernel)版本和发行(Distribution)版本。
从使用的语言划分,可以分为中文版和非中文版。
(1)Linux的内核版本
由3个部分数字构成,其形式如下: Major.minor.patchlevel
其中:
major:表示主版本号,通常在一段时间内比较稳定。
minor:表示次版本号,如果是偶数,代表这个内核版本是正式版本,可以公开发行;而如果是奇数,则代表这个内核版本是测试版本,还不太稳定仅供测试。
patchlevel:表示修改号,这个数字越大,则表明修改的次数越多,版本相对更完善。
(2)Linux发行版本
构成Linux发行版的基本软件和功能:
● 系统引导管理程序(Boot Manager)
● 用户界面
● X-Window系统
● 系统管理
● Internet服务
● 文件和打印服务
● 应用程序
● 工具和库程序
Linux发展到今天,产生了众多的发行版,其中影响比较大的Linux发行版本有:Red Hat Linux 、Centos Linux 、 DebianLinux 、Ubuntu Linux 、 Mandrake Linux、国内发行版本-红旗Linux
3、Linux的特点
Linux之所以能在短短的十几年间得到迅猛的发展,是跟Linux所具有的良好特性分不开的, 其具有以下主要特点:
●多用户
●多任务
●多平台
●漂亮的用户界面
●硬件支持
●强大的通信和联网功能
●应用程序支持
4、Linux的应用
目前全球Linux用户正在不断增加,许多知名企业和大学都是Linux的用户。IBM、HP、Dell、Oracle、AMD等大公司正大力支持Linux的发展,不断推出基于Linux平台的相关产品。
(1)Intranet
● 开放性和可扩展性
● 通用性
● 简易性和经济性
● 安全性
(2)服务器
基本上所有公司的服务器都是linux
● 网络服务
● 文件和打印服务
● 数据库服务
(3)嵌入式系统
● Linux具有很强的可移植性,支持各种不同电子产品的硬件平台。
● Linux内核可免费获得。
● Linux功能强大并且内核很小。
● Linux支持多种开发语言。
(4)集群计算机
所谓集群计算机(Cluster Computer)就是利用高速的计算机网络,将许多计算机连接起来,并加入相应的集群软件形成的具有超强可靠性和计算能力的计算机。
二、安装及虚拟机的安装介绍
在公司中使用的基本都是红帽系列的系统,多以centos为主,因为免费,redhat是收费的,centos和redhat是一家的,而且工作中基本都是使用字符界面。
但是我们学习通过在win下安装虚拟机运行ubantu来学习linux,乌班图有神似win的操作界面和方式,所以新手上手会很快。
具体的安装过程可以参照:()
除了版本旧点非常全面了,也可以自己在网上下载虚拟机和乌班图的系统,
提供一个虚拟机的序列号:FF31K-AHZD1-H8ETZ-8WWEZ-WUUVA
虚拟机最新下载地址:(https://www.cr173.com/soft/68480.html)
Ubantu最新下载地址:(https://www.ubuntu.com/download/desktop)
三、linux理论
1、Linux特点及哲学思想
①一切皆文件
②由众多目的的单一应用程序组成:一个程序只做一件事,且做好
③组合目的的单一的小程序完成复杂的任务
④尽量避免跟用户交互,没出错不会有任何多余提醒。
⑤使用文本文件保存配置信息*
2、终端、shell理论
终端:人机交互的最后一个界面,右键可以打开终端,代码都是在终端中完成。
就是我们写代码的界面,不管是写python还是写html的界面都是终端
shell:人机交互程序
Linux中的shell,是指一个面向用户的命令接口,表现形式就是一个可以由用户录入的界面,这个界面也可以反馈运行信息;
①图形shell (GUI) gnome
②字符界面shell (CLI) :sh dash ksh bash rbash ...
查看当前是哪个shell echo “$SHELL”
因为linux的核心就是一切皆文件,所以连shell也是一个放在bin下的文件。
3、Shell提示符
管理员:提示符 #
普通用户 提示符 $
环境变量:env命令(以后讲)
家目录:
超级用户家目录为/root,普通用户家目录为/home
4、文件与目录管理
(1)Linux目录层级:
① /bin:全局指令文件所在的路径
② /home:普通用户的家目录所在的路径
③ /root:超级用户家目录所在的路径
④ /boot:内核文件引导目录
⑤ /sbin:超级用户才可以使用的指令文件所在的目录,非超级用户使用,需要提权。 sudo
⑥ /tmp:临时文件所在的目录 通常情况下30天自动清除
⑦ /dev:设备文件所在的目录
⑧ /lib /lib64:公共共享库所在路径
⑨ /usr:第三方程序所在的目录 相当于windows的program files
⑩ /etc:程序配置文件所在的目录
⑪ /var:可变文件的目录
(2)目录说明
/bin:
bin是Binary的缩写, 这个目录存放着最经常使用的命令。
/boot:
这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件
/dev :
dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。
/etc:
这个目录用来存放所有的系统管理所需要的配置文件和子目录。
/home:
用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
/lib:
这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。
/lost+found:
这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
/media linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。
/mnt:
系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。
/opt:
这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
/proc:
这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件
/root:
该目录为系统管理员,也称作超级权限者的用户主目录。
/sbin:
s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
/usr:
这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与windows下的program files目录。
/srv:
该目录存放一些服务启动之后需要提取的数据。
/tmp:
这个目录是用来存放一些临时文件的。
/var:
这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件(一般是/var/log)。
5、相对路径和绝对路径
绝对路径:/var/log/sa:都是从根目录开始
相对路径:../../var/log/sa :从当前目录开始
四、三大基本命令
cd:change directory 切换目录
ls:list 打印清单(指定目录)
pwd:print work directory 打印当前工作路径
五、linux基本命令及操作
Linux的文件类型
通过ls -l 可以查看文件的一些信息
1、普通文件:-
通常情况下无色显示,除了压缩文件(红色)、破损文件(红色)、可执行文件(绿色)
2、目录文件:路径映射d ,通常情况下以蓝色显示
3、链接文件(符号链接):软连接l 相当于windows快捷方式,通常情况下青色显示
4、设备文件:字符设备:c 块设备:b 通常情况下黄色显示
5、套接字文件:s 进程间通信的特殊文件,通常情况下为紫色
六、命令操作
1、文件管理类
linux命令通用格式:命令字 [选项] [参数] (参数选项可有可无看应用情况)
引导短格式选项-(如ls –a)
引导长格式选项-- (如ls --help)
ls命令选项:
-a:显示指定路径下的隐藏文件
.开头为隐藏文件
-l:查看文件的基本属性信息
-d:查看目录本身相关属性信息
-h:以易于阅读的方式查看文件占用的磁盘空间
-R:递归显示目录及其子目录以及其下的文件
2、查看文本
查看文本文件:cat,more,less,tail,head
(1)cat:查看文本
cat [option] file
-n:显示出每行的行号
(2)more:分屏查看文本文件
more [option] file
空格往下翻屏、B键往上翻屏、回车往下翻行,q键退出
(3)less:分屏查看,操作方法同上,但上下箭头翻行,”/”可以搜索相关内容
tail [-#]:查看文本文件尾部信息,默认10行
head [-#]:查看文本文件头部信息,默认10行
3、复制:cp (copy)
Cp 文件 文件路径
把文件复制到的文件路径
如果说权限不够可以用在cp前加sudo提升权限
-r:递归复制目录及其下面的内容
-f:强行复制
4、移动
移动:mv
相当于windows剪切 (如果对目录进行移动,则会自动删除目录)
-f:强行移动,不提示
Mv也可用于改名
5、删除
删除:rm(非常危险,不会触发回收站)
-r:递归删除
-f:强行删除
6、创建空文本文件:touch (也可以更新时间戳)
7、创建空目录:mkdir
-p:递归创建目录
-v:可视化
递归创建:
8、元数据属性:stat
9、查看内容类型:file
10、文本编辑器:gedit(只能在图形使用,字符界面不可使用),vi nano
11、其他命令 du which lscpu systemctl 等(详细请见命令解释文档du --help或man du )
(1)du [-sh]:disk user(查看文件所占的磁盘空间)
(2)which:查询指令文件所在的目录
(3)lscpu:调用CPU的信息文本
(4)systemctl(重要) 调用脚本服务启停
语法:systemctl start/stop/restart/reload/status 服务名
12、shell的快捷操作
历史命令信息:history命令
Ctrl+c:取消正在执行的命令
Ctrl+l:清屏 相当于命令clear
Ctrl+a:跳至命令行首 相当于HOME键
Ctrl+e:跳至命令行尾 相当于END键
Ctrl+u:光标处删除至最左侧
Ctrl+k:光标删除至最右侧
Ctrl+z:将当前命令送至后台(fg调回命令)
!!执行上一次操作 !加命令开头关键字执行之前的那条命令(也可以接数字,例如!100)
TAB:命令和参数关键字补全 (有时候按两下)
前提条件,输入关键字要唯一
13、bash shell通配符
通配符:
*:匹配任意长度的任意字符
?:匹配任意单个字符
[]:匹配指定字符范围内的任意单个字符,不区分大小写
[[:upper:]]:大写字母 简化写法:[A-Z]
[[:lower:]]:小写字母
[[:alpha:]]:所有字母 [a-z]
[[:digit:]]:所有数字 [0-9]
[[:alnum:]]:字母+数字
[[:space:]]:空格
[[:punct:]]:标点符号 特殊字符
[^]:匹配指定字符范围外的任意单个字符
14、获取帮助:
帮助命令 help man (包括--help)
man 命令(先解压后显示)
help 命令名
命令名 –help
作业:
1:写出linux哲学思想的最重要三条
(1)一切皆文件
(2)由众多目的的单一应用程序组成
(3)组合目的的单一的小程序完成复杂的任务
2:写出/下的var目录代表的意义
这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。
3:基本命令的灵活使用
题①:要求从临时目录切换至/etc/firefox/pref目录,再切换至上级目录,显示当前路径,并查看目录中的所有内容。然后创建hadoop目录,进入目录,创建1.txt 空文本文件
②:拷贝当前用户家目录中的examples.desktop到/etc/emacs里,命名为example.txt,然后分页查看其内容
③:删除之前创建的hadoop目录。
④:在当前用户家目录下创建2.py文件,写入内容“print(‘hello world!)”进行保存,查看其所占的磁盘空间大小,再将其剪切至/home目录中。
⑤:复制文件2.py文件到临时目录,再在文本内容中的首行前加入