131 python|第四部分:Linux操作系统
点击关注「缓缓而行」,让我们一起探索python学习之路~
前言:本篇文章进行Linux操作系统的梳理,目录如下:
01 Linux操作系统认知
1.1 操作系统
1.2 Linux操作系统介绍
1.3 文件系统
02 Linux常用命令
2.1 终端与命令行
2.2 Linux常用命令
03 Linux服务器环境
3.1 vi编译器
3.2 添加用户
3.3 软件安装
3.4 ssh服务
3.5 终端启动python服务
引 言
作为程序员不会linux,就像数学系的人没学数分,物理系四大力学没学全,化学没学物化一样,会让人感觉你是一个假程序员。
呵呵哒
我们今天就来认识一下Linux操作系统~
01 Linux操作系统认知
1.1 操作系统
01.定义
操作系统是管理计算机硬件与软件资源的计算机程序,同时也是计算机系统的内核与基石。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入设备与输出设备、操作网络与管理文件系统等基本事务。
02.操作系统分类
桌面系统:Windows,MacOS为主,图形界面良好,运行在个人电脑上,比如台式机、笔记本。
服务器系统:Linux(市场占有率约80%),Unix(MacOS内核为Unix)为主,安全、稳定,费用低占用量大,公司运行大型后端程序时需要用到服务器。
嵌入式系统:Linux(比如鸿蒙)为主,主要用于小型智能设备,比如智能手机,机器人等。
在Windows、Linux和Unix三大操作系统中,Linux是唯一一个开源的操作系统。python开发属于后端开发,主要运行在服务器上,而且Linux的占有率比较高,所以学习Linux操作系统是有必要的。
1.2 操作系统介绍
01.Linux起源
林纳斯经常要用他的终端仿真器(Terminal Emulator)去访问大学主机上的新闻组和邮件,为了方便读写和下载文件,他自己编写了磁盘驱动程序和文件系统,这些在后来成为了Linux第一个内核的雏形。当时,他年仅21岁。
在自由软件之父理查德·斯托曼(Richard Stallman)某些精神的感召下,林纳斯以Linux的名字把这款类Unix的操作系统加入到了自由软件基金(FSF)的GNU计划中,并通过GPL的通用性授权,允许用户销售、拷贝并且改动程序,但你必须将同样的自由传递下去,而且必须免费公开你修改后的代码。
短短几年间,在Linux身边已经聚集了成千上万的狂热分子,大家不计得失的为Linux增补、修改,并随之将开源运动的自由主义精神传扬下去。(百度)
02.Linux系统特点
开源免费
支持多种硬件平台
支持多用户
具有非常强大的网络功能
03.Linux应用领域
Linux 服务器
服务器
桌面应用
嵌入式系统
04.Linux系统构成
内核:Linux操作系统的核心代码,与硬件进行交互。
文件系统:通常指管理磁盘数据的系统,可以把数据以目录或者文件的形式存储,每个文件系统都有特定的格式和功能。
命令解释器:用户通过解释器和操作系统交互,解释器接收用户的命令,然后调用操作系统功能。
应用软件:包含桌面系统和基础的软件操作工具等。
05.Linux发行版本
1.3 文件系统
01.文件系统结构
Linux的系统目录功能 | |
目录 | 功能 |
/bin目录 | 包含了引导启动或普通用户所需的命令,都是二进制文件的可执行程序,是比较重要的系统文件。(bin是binary二进制的简称) |
/sbin目录 | 类似/bin,存储二进制文件,必要时才允许普通用户使用。 |
/etc目录 | 存放系统配置文件,如用户信息文件,系统初始化文件等。 |
/root目录 | 超级用户的目录 |
/lib目录 | 存放根文件系统程序运行所需的共享文件,包含了可以被许多程序共享的代码,使执行文件变得更小,节省空间。 |
/dev目录 | 设备驱动程序,用户通过这些文件访问外部设备。 |
/usr文件系统 | 所有程序都安装在这里,本地安装的都放在/usr/local下,占很多内存,好处是升级系统时无须重新安装全部程序。 |
/var文件系统 | 包含系统一般运行时要改变的数据,通常这些数据所在的目录大小是要经常变化和扩充的。 |
/home | 普通用户的默认目录,该目录下用户拥有一个以用户名命名的文件夹。 |
02.绝对路径&相对路径
路径 | 定义 | 特点 |
绝对路径 | 文件在文件系统中以根目录为起始点的准确位置描述。 | 以‘/’作为路径描述的开头 |
相对路径 | 相对于用户当前位置为起始点,对一个文件位置的逐层描述。 | . 表示当前目录,.. 表示上一级目录,../..表示上一级的上一级目录 |
相对位置实例:
1.当前位置在var文件夹下,想要进入到lib文件夹../usr/lib
注:向上一层找不写名字,向下层找写名字
2.当前位置在usr文件夹下,想要进入到bin文件夹
./local/bin 或者 local/bin
02 Linux常用命令
2.1 终端与命令行
01.命令使用场景
完成linux服务器操作维护功能,一般由运维工程师进行远程操作,没有图形界面,需要通过命令完成。
后端工程师写的代码运行在服务器上,掌握命令有助于将来对项目的部署和控制。
02.终端与命令行
2.终端快捷键
1.打开终端:ctrl alt t 另打开一个终端,位置在根目录
2.关闭终端:ctrl d 或者命令行输入exit
3.终端字体大小调整:
ctrl shift + 放大ctrl - 缩小
2.2 Linux常用命令
01.命令格式
command [-options] [parameter]command:命令名称,一般是英文单词或单词缩写[-options] :命令选项(可省略),辅助命令进行细化[parameter]:传给命令的参数,可以为0或者多个
2.常用快捷键
清屏:ctrl l
调取历史命令:上下箭头自动补全:Tab
02.帮助命令
实例:man pwd 查看pwd的意思
03.基础操作命令
ls 后也可以跟相对路径或者绝对路径,查看指定文件夹内容
ls -l 查看文件的详细内容
ls -a 隐藏文件
在终端中显示隐藏文件
写命令时,如果有选项,也有参数,顺序是 命令 选项 参数。
2.cd[目录名] 切换文件夹
3.touch[文件名] 如果文件不存在,创建文件
4.rm[文件名] 彻底删除指定文件(夹)
5.mkdir[目录名] 创建目录
6.cp 复制一个文件 ;mv 移动/剪切一个文件
复制文件夹需要加-r;移动文件夹不需要加
还可以复制/移动其他文件(夹)到当前位置
另存为/重命名
7.通配符
作用:对一类文件名称的书写进行简化,使用户不必一一输入文件名。
星号 * :匹配任意长度的字符串
问号?:匹配一个长度的字符串
方括号[...]:匹配指定的一个字符方括号[-]:匹配指定的一个字符范围
*实例:
?实例:
[...]实例:
[-]实例:
2.3 文件操作
cat[文件名] 查看文件内容、创建文件、文件合并、追加文件内容等。
head[文件名] 显示头部内容tail[文件名] 显示尾部内容
grep[搜索文本][文件名] 搜索文本文件内容
find[目录]-name[文件名] 在一个目录及其子目录下查找文件
wc[文件名] 查看文件行数、单词数等信息
管道:可以把一系列命令连接起来,第一个命令的输出作为第二个命令 的输入,依次类推。举例如下,除此之外可以根据需求搭配。
2.4 压缩解压
01.压缩目的&原理
02.命令
zip test.zip filelist
unzip test.zip
unzip -d /home/huanhuan test.zip
tar:对gz或者bz2文件进行压缩解压压缩:-c归档,-j压缩格式为bz2,-z压缩格式为gz格式,-f指定压缩包的名称 tar -czf file.tar.gz file1 file2 解压:-x 解压,-v显示解压文件 tar -xvf file.tar.gz
注:对文件夹进行压缩解压不需要加-r
2.5 权限管理
sudo实例:
chmod:修改文件权限注:打开终端第一次使用管理员权限sudo时,需要输入密码。chmod在设置权限时,可以用字母,也可以用三个数字分别对应拥有者/组/其他用户的权限。
方法1:通过字母设置权限chmod augo+/-rwx 文件名/目录名
a: all u:user g:group o:otherr:read w:write x:execute(执行)
方法2:通过数字设置权限
图源:张纪勇
依次去掉文件的读写权限,文件会被移除相应的功能:
去掉写功能:
去掉读功能:
获取管理员权限后可进行操作:
不常用:
06.显示展示命令
date:显示当前时间df:显示磁盘剩余空间 搭配-Th以兆或G来显示硬盘大小whoami:显示当前用户history[num]:显示历史命令记录(默认显示500条)
输出重定向:把原本向终端显示的内容写入到文件>
>>
07.其他命令
shutdown -r now 立即重启
shutdown now 立即关机
shutdown +10 10分钟后关机
shutdown -c 取消关机计划
ln:创建链接 搭配-s创建软链接,类似快捷方式,跨目录创建要使用绝对路径。
修改原文件:
tree:获得树形结构
03 Linux服务器环境
3.1 vi 编辑器
01.认识vi
通过vi最初打开一个文件(如果文件已存在表示打开,文件不存在表示新建打开)的时候处于命令模式(输入命令),此时无法写入文件,按i可以切换到编辑模式(写入文件)。
命令模式是使用vi的入口,在其他图形编辑器下通过快捷键或者鼠标实现的操作,都通过vi的命令模式实现。通过命令对文件进行常规的编辑操作,例如:定位、翻页、复制、粘贴、删除……
编辑模式进行文字编辑
末行模式执行保存、退出等操作,是vi的出口。
02.命令
底行模式命令:
w:保存q:退出,如果没有保存则不允许退出q!:强行退出,不保存退出wq:保存并退出w!:强制保存
命令模式命令:行内移动:
w:向后移动一个单词
b:向前移动一个单词
0:行首
$:行尾
行数移动:gg:文件顶部
G:文件末尾:数字 :移动到数字对应行数
撤销和恢复撤销:
u:撤销上次命令
ctrl r :恢复撤销的命令
删除文本:
x:删除光标所在字符,或选中文字cc:删除光标所在行,并进入插入模式
剪切、复制、粘贴:yy:复制一行, nyy 复制多行dd:剪切光标所在行, ndd 剪切多行p:粘贴
替换:r:替换当前字符(命令模式)R:替换当前行光标后的字符(替换模式):%s/str/replace/g:替换str为replace(底行模式)
查找:
/str:查找 str/ 查找到指定内容之后,使用‘n’查找下一个出现的位置:set nu :显示行号:set nu !:取消行号显示
3.2 添加用户
01.概念
2.用户组:对用户管理更加方便,将不同用户添加到对应的组中,方便用户设置权限。
3.root用户:用于系统的维护和管理,对操作系统的所有资源具有访问权限,一般不会用到。
02.用户管理命令
groupadd 组名 :添加组
groupdel 组名:删除组
useradd -m 用户 -g 组:添加用户
passwd 用户名:设置用户密码
userdel -r 用户:删除用户
注:useradd中 -m表示添加用户时添加主目录,-g表示选择添加组,不写默认创建用户同名组。
创建用户实例:
1.创建用户并设置密码(sudo表示使用管理员权限)
2.为新用户添加sudo权限
3.设置命令解释器
linux 操作系统缺省的shell 是Bourne Again shell(简称Bash) ,它是 Bourne shell(sh)的扩展,在sh的基础上增加、增强了很多特性,如命令补全、命令编辑和命令历史表等功能.
luotaijia
新创建的用户和密码信息存储在/etc/passwd 文件中,什么时候需要设置命令解释器呢?当切换新用户后,如果终端命令行只有一个$提示,可以vi打开这个文件,将该用户的内容进行修改。目的是把sh解释器更改为bash解释器。
文件中存储了很多用户信息,并非所有用户都是用来登录的,很多用户属于虚拟用户,是专门针对某一程序所使用的。
4.新老用户切换
鼠标右键可以做出界面调整
5.删除用户 -r表示彻底删除,如果删除失败,说明使用用户后未注销,需要重启后再删除,或者执行以下操作:
删除用户命令:
无法删除可执行:
报错:userdel: user 用户名 is currently used by process 2314
执行:sudo kill -9 2314
3.3 软件安装
linux下安装的软件包格式为deb格式软件包,由于当时Linux系统中软件包存在复杂的依赖关系,所以通常使用网络安装。
更新软件源:apt update(如果长时间没有进行更新,在安装软件前可以先进行本步骤)
安装软件:apt install 软件名卸载软件:apt remove --purge 软件名删除缓存的软件安装包:apt clean安装本地软件包:dpkg -i卸载软件:dpkg -P
注:安装软件包通常需要管理员权限软件包下载位置:/var/cache/apt/archives
更新软件源:
安装软件(测试用例)
卸载软件(测试用例)
查看已安装软件包
删除缓存的软件包
网络安装apt可以直接处理依赖关系,而本地安装dpkg成功的前提是,把当前要安装的软件依赖的东西提前安装好。需要注意的是,在linux操作系统中,如果一个软件安装了一部分,转而去安装其他软件是不行的,要么把之前的卸载掉,要么安装完。
安装软件实例(以有道词典为例)
网页下载安装包(可以从“下载”处剪切到自己指定的文件夹)
安装本地软件包(不推荐)依赖关系太多,未安装成功
像上面这种情况,可以通过apt在线解决已有的依赖关系
安装成功
或者也可以直接卸载
3.4 ssh服务
4
01.概念
02.安装启动
查看ssh服务状态:ps -e | grep sshps -e指的是查看当前计算机下所有启动的服务进程
03.常用命令
注:ssh命令在linux和MacOs下是自带的,windows下需要安装一些辅助软件。用户名@ip被称为ssh地址。查看当前服务器地址:ifconfig
1)复制本地文件到远程: scp -r 本地文件地址 远程主机用户名@远程主机ip:远程主机文件存放地址(可以写成绝对路径/home/地址)在本地用户名终端窗口操作:
2)复制远程文件到当前目录下:scp -r 远程主机用户名@远程主机ip:远程主机文件地址 .在远程主机用户名终端窗口操作:
ssh的登录、拷贝和秘钥下次再进行梳理。
3.5 在终端启动python服务
1.编写python程序,在第一行增加解释器声明
注:#!/usr/bin/python3要放在第一行,而且和后面的内容有一行空行2.修改文件的权限,使其有可执行权限
3.通过指定文件位置执行代码(也可以通过创建软链接的方式执行)
预告:下篇文章将进行数据管理的学习
参考资料
[1] 学Python一定要掌握Linux?https://blog.csdn.net/sinat_38682860/article/details/84036609[2] 操作系统https://baike.so.com/doc/5354536-5590000.html[3] #!/bin/sh与#!/bin/bash的区别http://blog.chinaunix.net/uid-27037833-id-3431985.html
花样早餐展位