【044】Python全栈日记-Linux(二)

本篇学习

用户管理、权限管理

文档的压缩和打包、程序包管理

ssh服务、远程连接

 

 

一、用户管理

用户:资源获取标识符,资源分配,安全权限模型的核心要素之一

密码:来实现用户认证的

 

在linux中每个用户都有自己的用户标识号和组标识号

uid:用户标识号  

gid:组标识号(默认情况下,用户gid和uid一样)

组:就是几个用户凑成一组就可以享受组内用户的权限

 

用户分为三种:

①超级用户root:权限特别大(uid=0 gid=0 ,生产环境建议不要使用)

②普通用户:( uid>=500,ubuntu一般>=1000 ,一般权限系统管理,权限有限)

③程序用户 :(1<=uid<500 服务资源使用,不能登录系统 ,其shell为/usr/sbin/nologin)

 

1、id命令

id命令:id [USERNAME] 

获取指定用户的UID、GID

默认为获取当前用户的UID  GID

 

 

2、用户账号文件

账号文件放在/etc/下名字为passwd

作用:保存用户名称,宿主目录、登陆Shell等基本信息,每一行对应一个用户的账号记录。

Root账户一般在第一位,我们创建的文件一般在后面

共7个字段:root:x:0:0:root:/root:/bin/bash

“:”是分隔符

第一段root:用户账号名

第二段x:密码占位符

第三段0:uid

第四段0:gid

第五段root:用户备注(可以是空的)

第六段/root:用户宿主目录

第七段/bin/bash :登陆的shell(若为/sbin/nologin则不能登陆)

 

 

3、sudo提权      

当当前普通用户权限比较低需要执行高权限命令时(运行后会提醒权限不足),在知道超级用户(root)密码情况下,可以使用sudo命令进行提权。

 

 

4、用户密码文件

Passwd用来存储用户账号基本信息

而/etc/下的shadow文件用来存储用户密码

 

/etc/shadow

作用:保存用户的帐号、密码、有效期等信息,每一行对应一个用户名的密码和信息。

这个文件权限很高,需要借助sudo查看

用户名:加密密码:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

 

 

5、添加和删除用户

(1)添加用户命令格式

useradd [-u UID] [-g GID] [-d HOME] [-M] [-s] 用户名 

在ubuntu版本里,默认不创建家目录,普通用户的家目录是home,root用户家目录是root

 

Useradd常用指令

【1】-m 强制创建用户家目录(最好用上,要不你找不到你创建的用户目录)

【2】-u 自定义UID

【3】-g 自定义GID,前提是这个GID已经存在

【4】-M 不要创建用户家目录(系统帐号默认值)

【5】-s 自定义shell,若没有默认为/bin/sh(ubuntu系统)

 

 

(2)删除用户的语法

userdel [-r] 用户名

-r 同时删除用户的家目录(就是home下的目录)

如果删除用户时忘记删除家目录,可以使用rm -rf删除

 

 

6、给用户设置密码(超级用户)

我们创建了一堆用户却都没有设置密码,设置密码方法如下

passwd  xxxxxx

 

 

7、添加、删除用户组

给用户定义组的时候只能选择以有的组,那如何创建一个组呢?

 

语法格式

groupadd [-g GID] 用户组名

-g自定义用户组标识符GID,不加-g则按照系统默认创建组,从500开始

 

groupdel 用户组名

删除用户组

 

通过/etc/group文件查看用户组,如

cat /etc/group

 

 

 

 

 

二、权限管理:

 

owner,:拥有者、所属主

group:拥有组、所属组

other:其他人

1、权限:

Read:读 r

write :写 w

execute:执行 x

 

(1)对文件来说不同权限可以:

r:可以使用内容查看类的命令来显示其相关内容

w: 可以使用编辑器修改其内容

x:可以将其发起一个进程

 

(2)对目录来说不同权限可以:

r:可以使用ls命令查看目录内容的文件信息

w:可以创建、删除文件

x:可以使用ls -l命令来查看目录内容的文件信息,并且可以使用cd命令切换此目录为工作目录:

 

 

2、用户的不拥有某位权限,则使用-占位

图中:

红色的代表拥有者的权限可读可写可执行

蓝色的代表所属组的权限可读可执行

绿色代表其他的权限为可读可执行

 

r-x:读和执行的权限

r--:只读权限

rw-:读写权限

 

 

3、也可以使用3个8进制数来表示权限

R__:4  _w_:2   __x::1   rw_:6   rwx:7  _wx:3  r_x:5

属主可读可写可执行,属组可读可写,其他人只读:rwxrw_r__也可表达为764

 

 

4、修改文件的属主和属组 :仅管理员可执行,chown,chgrp

(1)chown:

格式:chown [options] [UserName]:[GroupName] FILE.

UserName:拥有者

GroupName:所属组

-R:递归修改

所以chown既可以修改属主也可以修改属组

 

(2)chgrp

只修改组可以使用chgrp

 

(3)chmod

修改文件权限:chmod

格式:

【1】操作三类用户的权限:使用8进制形式

chmod [-R] OCTAL-MODE(8进制)file ...

 

【2】操作指定类别用户的权限:使用u,g,o,a来赋权,基于=或者+/-来进行

u:属主

g:属组

o:其他

a:所有

=:操作指定类型用户的权限

+/-:操作置顶类型用户的单个权限

 

使用指定类型的方法(=)

使用+/-进行权限操作

使用a来修改所有(属主、属组、其他)的权限

 

 

 

 

 

 

三、归档和压缩

 

(1)压缩:

gzip [-x]  bzip2 [-x] 

x为1到9  压缩级别,9为最大压缩,占用最多cpu

压缩针对于文件,不能对目录进行压缩,压缩和解压缩不会保留源文件。

 

使用gzip的方式进行压缩,通常后缀名为.gz

使用bzip2的方式,通常后缀名为.bz2

解压缩 gunzip (或gzip -d)  bunzip2 (或bzip2 -d)

 

gzip:

bzip2:

 

 

(2)归档

归档就是把很多文件归为一个普通文件

tar  -选项 归档文件名 源文件名或目录

归档文件名就是你归为的普通文件的名字(含目录)

归档或解归档会保留源文件,

 

释放归档

tar  -选项 归档文件名  [-C 目标目录]

 

选项:-f:必接选项,而且,必须放在选项的最后面。

      -c:创建一个新的归档,不能和-x连用

      -x:释放归档,不能和-c连用

      -z:归档的同时,可以使用gzip格式进行压缩或解压缩

      -j:归档的同时,可以使用bzip2格式进行压缩或解压缩

      -v:可视化

 

归档:

把etc文件进行归档到/var/下

 

 

解归档:可以不加解压缩命令,默认解压缩

 

 

 

四、创建链接

ln命令

这是linux中一个非常重要命令,它的功能是为某一个文件或目录在另外一个位置建立一个同步的链接,类似Windows下的超级链接。

 

这个命令最常用的参数是-s,具体用法是:

sudo ln -s 源文件 目标文件

 

不加-s是克隆文件,会复制一个和复制的文件一模一样的文件,包括其中的元数据。

链接文件不会对源文件有任何影响,但源文件出现移动或破损或者删除,链接文件无效

 

举例:

当前目录是/home,而我经常要访问/usr/local/linux/work

那么我就可以使用在home下建立一个文件linkwork,

然后sudo ln -s /usr/local/linux/work  /home/linkwork

即建立两者之间的链接。

 

 

五、测试网络连通性

ping命令

-c:指定次数

-W:指定超时时间

 

 

 

六、安装程序(软件)

程序包管理器(dpkg和apt-get)

包之间可能存在依赖关系,dpkg不能解决依赖关系,apt-get可以解决依赖关系。

 

1、dpkg方式安装程序

安装和卸载二进制程序deb包

安装: dpkg [-i|--install] deb包名

卸载: dpkg -r deb [-P | --purge] 包名,purge:同时卸载相关配置文件

 

查询已经安装的deb包

dpkg  选项 包名关键字 

 

选项: 

(1)--info:查看指定软件的详细信息

(2)-l:查询软件包的简明信息(不指定即查询系统内安装的所有软件包)

 

(3)-L: 查询程序安装生成的文件和目录

 

(4)-S: 查询文件是由哪个程序包安装生成的

我们在查询文件时需要先确认文件位置,以ss为例:

说明ss是由iproute2这个安装生成的。

 

 

2:apt-get方式安装程序

优点:解决依赖关系(方便、快捷)

 

(1)注意事项:

①需要连接互联网,而且需要连接到系统指定的镜像站点。

系统指定的资源镜像站点保存在/etc/apt/source.list

②通常情况下,需要更新镜像站点的资源列表,因为系统提供的资源列表都是外国网站,我们所在的天朝局域网速度可能比较慢。推荐切换为阿里源:

 

用geidt或者vim打开/etc/apt/source.list,把里面的东西删除,把整个阿里源粘贴进去,保存。

源可以参考这个(https://www.cnblogs.com/Lin-Yi/p/7072748.html

一定要全都粘贴进去,你也可以使用其他的源

 

然后更新deb包源文件列表和程序包,让新的源生效

sudo apt-get update

 

 

(2)构建apt-get步骤:

虚拟机先切换桥接模式,过一会ping www.baidu.com,看看网连上了么

 

apt-get详细指令:   安装的deb包一定要是包名关键字,而非包全名

 

安装:apt-get [-y] install 包1 包2....

选项:-y 自动回应 yes

 

我们试试安装mysql

sudo apt-get install mysql-server

输入有,回车就行了,等待安装

安装好后,就可以正常mysql -uroot -p登陆了,密码为空

 

卸载:apt-get [-y] remove [--purge] 包1 包2.... 

默认不会删除程序的配置文件,予以保留,但如果接上--purge,则会删除,推荐删除 

卸载程序并卸载依赖程序包:apt autoremove 包1 包2...... 

 

更新软件列表:apt-get  [选项] update

更新软件:apt-get upgrade(将系统内低版本的软件更新为更高版本更新的软件)

 

 

 

 

七、安装xshell和lrzsz远程文件传输工具

我们在实际工作中很少使用本机进行操作的,机器都是放在机房,而我们在监控台通过远程对linux系统操作,xshell就是一个安装在win下的远程程序,可以在网上下载。

 

1、ssh协议(远程连接协议)

要想通过远程连接linux,就得现在linux中安装ssh服务

通过:sudo apt-get install openssh-server 安装ssh

安装完毕在win下安装xhsell进行连接

 

在linux中通过ip a 命令查看当前ip

然后可以直接输入ssh ip进行连接,输入linux用户和密码就登陆进去了。

也可以点击新建,然后输入主机ip进行连接,端口默认22.

 

Xshell连接:

②:安装lrzsz工具

sudo apt-get install lrzsz

在Linux系统内,可以基于ssh协议使用lrzsz工具进行远程文件传输,大部分情况可替代FTP。

 

安装lrzsz你就可以把win下的文件直接拖入xshell连接的linux。

 

 

 

 

 

八、Linux操作系统上ipython和jupyter的安装使用

如果说pycharm时python程序员的屠龙刀,那jupyter就是python程序员的倚天剑

1、ipython

ipython:属于交互式的加强型的python的解释器,高性能的并行计算工具。比Python自带的解释器好用,功能更加的强大。

 

ipython优势:

①支持变量自动补全,自动缩进

②内置很多功能模块和函数(很好用)

③可以灵活的嵌入shell解释器

 

安装ipython

  

安装后输入ipython3使用

在ipython中你不仅可以使用python的指令,还可以使用linux的指令

输入exit()退出

 

 

2、jupyter

Jupyter:基于web程序的交互式笔记本,功能特别强大。

支持运行 40 多种编程语言,支持实时代码,编写出漂亮的代码文档。

可以把代码、图像、注释、公式、作图集于一体,实现可读性数据分析的灵活的工具,

用途为数据转换、数值模型、数据统计分析、机器学习等。

 

通常Python编程过程中,我们一般使用Python的IDE工具(例如pycharm),

但在实际的Python实际简单测试中(小单元或代码段),通常开启ipython,速度和效率比较高。

在生产环境,模块化开发,代码多了测试不方便,就在ipython进行测试和查询帮助。

 

因为jupyter是在ipython基础上使用的,所以必须先安装ipyhton

 
安装jupyter(按照步骤安就对了,老师并没有说为啥)

①:使用apt-get安装jupyter-notebook    

sudo apt-get –y install jupyter-notebook

②:对jupyter进行全局预配置           

sudo jupyter-notebook --generate-config

③:为jupyter设置登录密码            

sudo jupyter-notebook password

④:指定可以登录jupyter的网络地址并且进行登录(0,0,0,0就是允许所有IP登陆) 

例如:sudo jupyter-notebook --allow-root --ip=0.0.0.0

运行完别关闭这个地方

 

⑤:使用浏览器进行登录验证,不要使用360浏览器。

我们可以在win下浏览器(linux中的也可以)中输入我们linux的ip加上端口8888进行jupyter的使用

 

我win下的chrome

然后输入你创建的jupyter密码

进入jypyter,这里可以查看linux下的文件,

右上角的new可以启动ipython来进行python的编写,功能强大。

 

 

 

 

 

 

作业:

1:创建两个用户,第一个要求用户名为ujiuye001,登录的shell为/bin/bash,允许其有家目录。密码youjiuye123,uid号为600,属组为root。将用户ujiuye001的家目录权限更改为755。

第二个用户,要求用户名为hadoop,不允许其有家目录不能登录系统。

2:复制/etc/fstab到/root目录,并要求属主为root,仅有读写权,属组为haha,仅有读权,其他人没有任何权限。

3:将/usr/lib/firefox/omni.ja复制到/var/snap下,然后最大比例压缩为.gz后缀的文件

4:将/etc打包,放置于/tmp目录下,并且命名为backup.tar.bz2

5:将backup.tar.bz2释放在/usr/src下,并将源文件进行解压。

6:测试网络连通性,连通www.baidu.com,ping通5次即可。

7:为/etc/fstab创建软链接文件,名称为lian,放置于当前登录用户的家目录中。

8:查询指令文件ss,属于哪个程序包安装生成

9: 查询程序nginx和oneko是否被安装到系统,如果没有使用apt-get工具安装程序nginx 和 oneko,并查询nginx程序的文件路径  (三条命令)

oneko

 

 

 

 

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值