从零开始学Python
太原理工大学机器人团队20日打卡day2
day2我的进程是学完Linux剩余的基础操作,我习惯于学东西时候快速学习,然后节省时间用来练习。二倍速过后,只需要理解各个原理,具体的细节还是主要在于平时练习时候的打磨。我学习最大的驱动力之一就是任务驱动。为了完成这个任务,我会去学很多平时看起来不可能用到的知识,不过这必然有利于我个人形成一个更庞大的知识框架,有利于在未来岗位中更快的学习新的知识。
同样,为了提高阅读流畅度,同时也有利于我写作时候思维的流畅度,首先在本文开头标注自己写作顺序。本文写作顺序如下:
1、用户权限
2、组管理
3、用户管理
4、系统信息
5、打包压缩及软件安装
其中没有提到的是文件软连接和硬链接以及其具体实现,我个人不习惯使用这种方法于是跳过了。
1、用户权限
1.1基本概念
-
用户是Linux系统工作中的重要一环,用户管理包括用户与组管理
-
在 Linux 系统中,不论是由本机或是远程登录系统,每个系统都必须拥有一个账号,并且对于不同的系统资源拥有不同的使用权限
-
在 Linux 中,可以指定 每一个用户 针对 不同的文件或者目录 的 不同权限
-
对 文件/目录 的权限包括:
-
权限 英文 缩写 数字代号 读 read r 4 写 write w 2 执行 excute x 1
1.2ls -l 拓展
ls -l可以具体查看文件夹下文件的具体信息,其中从左到右依次是
权限 – 硬链接数 – 拥有者 – 组 – 大小 – 时间 – 名称
而权限的具体内容是
1.3chmod简单使用
- chmod 可以修改用户/组对文件/目录的权限
- 命令格式如下
chmod +/-rmx 文件名|目录名
Notes:以上方式会一次性修改所有权限
2、组管理
Notes:创建/删除 组的命令都需要用sudo执行
命令 | 作用 |
---|---|
groupadd 组名 | 添加组 |
groupdel 组名 | 删除组 |
cat /etc/group | 确认组信息 |
chgrp -R 组名 文件/目录名 | 递归修改文件/目录的所属组 |
- 组信息保存在 /ete/group 文件中
- /etc 目录是专门用来保存系统配置信息的目录
3、用户管理
Note:创建用户/删除用户/修改其他用户密码的终端命令都需要通过 sudo 执行
3.1创建用户/设置密码/删除用户
命令 | 作用 | 说明 |
---|---|---|
useradd -m -g 组 新建用户名 | 添加新用户 | -m 自动建立用户家目录 -g指定用户所在的组,否则会建立一个同名的组 |
passwd | 设置用户密码 | 如果是普通用户,直接用passwd可以修改自己的账户密码 |
userdel -r 用户名 | 删除用户 | -r 选项会自动删除用户家目录 |
cat /etc/passwd | grep 用户名 | 确认用户信息 | 新建用户后,用户信息会保存在 /etc/passwd 文件中 |
Notes:
- 创建用户时,如果忘记添加 -m 选项指定新用户的家目录 —— 最简单的方法就是删除用户,重新创建
- 创建用户时,默认会创建一个和用户名同名的组名
- 用户信息保存在 /etc/passwd 文件中
3.2查看用户信息
命令 | 作用 |
---|---|
id [用户名] | 查看用户UID 和 GID 信息 |
who | 查看当前所有登录的用户列表 |
whoami | 查看当前登录用户的账户名 |
passwd文件
/etc/passwd文件存放的是用户信息。其中具体为:
- 用户名
- 密码(x,表示加密的密码)
- UID(用户标识)
- GID(组标识)
- 用户全名或本地帐号
- 家目录
- 登录使用的 Shell,就是登录之后,使用的终端命令, ubuntu 默认是 dash
usermod
- usermod 可以用来设置 用户 的 主组 / 附加组 和 登录 Shell,命令格式如下:
- 主组:通常在新建用户时指定,在 etc/passwd 的第 4 列 GID 对应的组
- 附加组:在 etc/group 中最后一列表示该组的用户列表,用于指定 用户的附加权限
Note:设置了用户的附加组之后,需要重新登录才能生效!
# 修改用户的主组(passwd 中的 GID)
usermod -g 组 用户名
# 修改用户的附加组
usermod -G 组 用户名
# 修改用户登录 Shell
usermod -s /bin/bash 用户名
Note:默认使用useradd添加的用户是没有权限使用sudo以root身份执行命令的,可以使用以下命令,将用户添加到速冻附加组中
usermod -G sudo 用户名
which
提示
- /etc/passwd 是用于保存用户信息的文件
- /usr/bin/passwd 是用于修改用户密码的程序
- which 命令可以查看执行命令所在位置
bin 和 sbin
- 在 Linux 中,绝大多数可执行文件都是保存在 /bin 、 /sbin 、 /usr/bin 、 /usr/sbin
- /bin ( binary )是二进制执行文件目录,主要用于具体应用
- /sbin ( system binary )是系统管理员专用的二进制代码存放目录,主要用于系统管理
- /usr/bin ( user commands for applications )后期安装的一些软件
- /usr/sbin ( super user commands for applications )超级用户的一些管理程序
Note:
- cd这个命令是内置在系统内核中的,没用独立的文件,因此用which无法找到cd命令的位置
3.3切换用户
命令 | 作用 | 说明 |
---|---|---|
su - 用户名 | 切换用户并切换目录 | -可以切换到用户家目录,否则保持位置不变 |
exit | 退出当前登录账户 |
3.4修改文件权限
命令 | 作用 |
---|---|
chown | 修改拥有者 |
chgrp | 修改组 |
chmod | 修改权限 |
- 命令格式如下:
# 修改文件|目录的拥有者
chown 用户名 文件名|目录名
# 递归修改文件|目录的组
chgrp -R 组名 文件名|目录名
# 递归修改文件权限
chmod -R 755 文件名|目录名
4、系统信息
4.1时间和日期
命令 | 作用 |
---|---|
date | 查看系统时间 |
cal | calendar查看日历,-y 选项可以查看一年的日历 |
4.2磁盘信息
命令 | 作用 |
---|---|
df -h | disk free 显示磁盘剩余空间 |
du -h [目录名] | disk usage 显示目录下的文件大小 |
- 选项说明
参数 | 说明 |
---|---|
-h | 以人性化的方式显示文件大小 |
4.3进程信息
命令 | 作用 |
---|---|
ps aux | process status 查看进程详细状况 |
top | 动态显示运行中的进程并且排序 |
kill [-9] 进程代号 | 终止指定代号的进程,-9表示强制终止 |
ps默认只会显示当前用户通过终端启动的应用程序
- ps选项说明
选项 | 含义 |
---|---|
a | 显示终端上的所有进程,包括其他用户的进程 |
u | 显示进程的详细状态 |
x | 显示没有控制终端的进程 |
Note:使用 kill 命令时,最好只终止当前用户开启的进程,而不要终止 root 身份开启的进程,否则可能导致系统崩溃
- 要退出 top 直接输入 q
5、打包压缩及软件安装
5.1打包/解包
- tar 是 Linux 中最常用的 备份工具,此命令可以 把一系列文件 打包到 一个大文件中,也可以把一个 打包的大文件恢复成一系列文件
- tar 的命令格式如下
# 打包文件
tar -cvf 打包文件.tar 被打包的文件/路径...
# 解包文件
tar -xvf 打包文件.tar
- tar 选项说明
选项 | 含义 |
---|---|
c | 生成档案文件,创建打包文件 |
x | 解开档案文件 |
v | 列出归档解档的详细过程,显示进度 |
f | 指定档案文件名称,f 后面一定是 .tar文件,所以必须放选项最后 |
5.2压缩/解压缩
5.21gzip
- tar 与 gzip 命令结合可以使用实现文件 打包和压缩
- tar 只负责打包文件,但不压缩
- 用 gzip 压缩 tar 打包后的文件,其扩展名一般用 xxx.tar.gz
在 Linux 中,最常见的压缩文件格式就是xxx.tar.gz
- 在 tar 命令中有一个选项 -z 可以调用 gzip ,从而可以方便的实现压缩和解压缩的功能
- 命令格式如下
# 压缩文件
tar -zcvf 打包文件.tar.gz 被压缩的文件/路径...
# 解压缩文件
tar -zxvf 打包文件.tar.gz
# 解压缩到指定路径
tar -zxvf 打包文件.tar.gz -C 目标路径
选项 | 含义 |
---|---|
-c | 解压缩到指定目录。注意:该目录必须存在 |
5.22bzip2(two)
- tar 与 bzip2 命令结合可以使用实现文件 打包和压缩(用法和 gzip 一样)
- tar 只负责打包文件,但不压缩,
- 用 bzip2 压缩 tar 打包后的文件,其扩展名一般用 xxx.tar.bz2
- 在 tar 命令中有一个选项 -j 可以调用 bzip2 ,从而可以方便的实现压缩和解压缩的功能
- 命令格式如下:
# 压缩文件
tar -jcvf 打包文件.tar.bz2 被压缩的文件/路径...
# 解压缩文件
tar -jxvf 打包文件.tar.bz2
5.3软件安装
5.31通过apt安装/卸载软件
- apt 是 Advanced Packaging Tool ,是 Linux 下的一款安装包管理工具
- 可以在终端中方便的 安装/卸载/更新软件包
# 1. 安装软件
$ sudo apt install 软件包
# 2. 卸载软件
$ sudo apt remove 软件名
# 3. 更新已安装的包
$ sudo apt upgrade
5.32配置软件源
- 如果希望在 ubuntu 中安装软件,更加快速,可以通过设置镜像源,选择一个访问网速更快的服务器,来提供软件下载/安装服务
- 提示:更换服务器之后,需要一个相对比较长时间的更新过程,需要耐心等待。更新完成后,再安装软件都会从新设置的服务器下载软件了
所谓镜像源,就是所有服务器内容都是相同的(镜像),但是根据所在位置不同,国内服务器通常速度会更快一些!
# 1.安装软件
$ sudo apt install 软件包
# 2. 卸载软件
$ sudo apt remove 软件名
# 3. 更新已安装的包
$ sudo apt upgrade
5.32配置软件源
- 如果希望在 ubuntu 中安装软件,更加快速,可以通过设置镜像源,选择一个访问网速更快的服务器,来提供软件下载/安装服务
- 提示:更换服务器之后,需要一个相对比较长时间的更新过程,需要耐心等待。更新完成后,再安装软件都会从新设置的服务器下载软件了
所谓镜像源,就是所有服务器内容都是相同的(镜像),但是根据所在位置不同,国内服务器通常速度会更快一些!
以上就是本人的学习总结。一天花了几个小时听了以后再写笔记时候反而觉得没有什么太多的东西,可见课程设计主要是实战演练。也就是说,Linux实际上内容不多,而要通过合适的排列组合将这些命令组合到一起,是有一定难度,而这部分难度也正是最有区分度的东西。不然只背命令的话,我想随便拉一个社会科学工作者都比我强的多的多。