黑马程序员Python教程_600集Python从入门到精通教程(懂中文就能学会)

Linux 命令
ls 查看当前文件夹下的内容
pwd 查看当前所在文件夹
cd 切换文件夹
touch 如果文件夹不存在,新建文件夹
mkdir 创建目录
rm 删除指定文件名
clear 清屏
-------------------------------------------
ctrl + shift + = 放大终端窗口的字体显示
ctrl + - 缩小终端窗口的字体显示
command [-options] [parameter]
command:命令名
[-options]:选项(可省略)
parameter:传给命令的参数
【】代表可选
command --help

man command

man 是 manual 的缩写
~表示根目录下的家目录
使用man的操作键:
空格键 显示手册页的下一屏
回车键 一次滚动手册页的一行
b 回滚一屏
f 前滚一屏
q 退出
/world 搜索字符串
=========================
文件和目录命令
自动补全
在敲出文件/目录/命令的前几个字母后,按下tab键
- 如果输入的没有歧义,系统会自动补全
- 如果还存在其他文件/目录/命令,系统会提示可能存在的命令
曾经使用过得命令
- 按上下光标键可以在曾经使用过得命令来回切换
- 如果想要退出选择,且不想执行当前选中的命令,按ctrl+C
Linux 文件和目录特点
- 文件或目录名称最长可达256个字符
- 以 . 开头的文件为隐藏文件,需要 -a 参数才显示
- . 代表当前目录, .. 代表上一级目录
相对路径和绝对路径
- 相对路径 在输入路径时,最前面不是 / 或者 - ,表示相对 当前目录 所在的目录位置
- 绝对路径 在输入路径时,最前面是 / 或者 - ,表示从 根目录/家目录 开始的具体目录位置
~~~~~~~~~~~~~~~~~~~~~~~~~
查看目录内容
ls 常用选项
-a 显示指定目录下所有子目录与文件包括隐藏文件
-l 以列表方式显示文件的详细信息
-h 配合-l显示文件大小
最左边一列 d 代表目录,- 代表文件
最右边一列蓝色的是目录,白色的是文件

ls 通配符的使用
~~~~~~~~~~~~~~~~~~~~~~~~~
切换目录
注意:Linux 所有的目录和文件名都是大小写敏感的
cd 切换到当前用户的主目录
cd~ 切换到当前用户的主目录
cd. 保持当前目录不变
cd.. 切换到上级目录
cd- 在最近两次工作目录之间来回切换
~~~~~~~~~~~~~~~~~~~~~~~~~
创建和删除操作
1.touch
创建文件或修改文件时间
- 如果文件不存在,可以创造一个空白文件
- 如果文件已存在,可以修改文件的末次修改日期
2.mkdir
创建一个新目录
新建目录名称不能与当前目录中已有目录或文件同名
mkdir -p 可以递归创建目录
3.rm
删除文件或目录
使用rm命令要小心,因为文件删除后不能恢复
rm -f 强制删除,忽略不存在的文件,无需提示
rm -r 递归删除目录内容,删除文件夹用到
~~~~~~~~~~~~~~~~~~~~~~~~~
拷贝和移动文件
tree 以树状图列出目录结构
copy 复制文件和目录
move 移动/重命名文件或目录
1.tree
tree 命令可以以树状图列出文件目录结构
tree -d 只显示目录
2.cp
功能是将给出的文件或目录复制到另一个文件或目录中,相当于 DOS 下的 cope 命令
cp -f 已经存在的目标文件直接覆盖,不会提示
cp -i 覆盖文件前提示
cp -r 递归复制目录下的所有子目录和文件
3.mv
mv 命令可以用来移动文件或目录,也可以给文件或目录重命名
mv -i 覆盖文件前提示
在终端中对文件的操作不能撤回
ctrl+s 保存 ctrl+v 输出保存内容
~~~~~~~~~~~~~~~~~~~~~~~~~
查看文件内容
cat 查看文件内容,创建文件,文件合并,添加文件内容
more 分屏显示文件内容
grep 搜索文本文件内容
1.cat
cat会一次显示所有的内容,适合查看内容较少的文本文件
Linux 中还有一个nl的命令和cat -b的效果等价
cat -b 对非空输出行编号
cat -n 对输出的所有行编号
2.more
more命令可以分屏显示文件内容,每次只显示一页内容
适合于查看内容较多的文本内容
使用more的操作键:
空格键 显示手册页的下一屏
回车键 一次滚动手册页的一行
b 回滚一屏
f 前滚一屏
q 退出
/world 搜索字符串
空格键与 f 的效果一样
3.grep
grep 允许对文本文件进行模式查找,模式查找又被称为正则表达式
双击文件打开界面,Ctrl+F可搜索指定的字符串
grep -n 显示匹配行及行号
grep -v 显示不包含匹配文本的所有行
grep -i 忽略大小写
搜索带空格的字符串两遍都要打双引号
常用的两种模式查找
^a 行首,搜索以a开头的行
a$ 行尾,搜素以a结束的行
~~~~~~~~~~~~~~~~~~~~~~~~~
6.其他命令
1.echo 文字内容
- echo 会在终端中显示参数指定的文字,会和重定向联合使用
2.重定向>和>>
- Linux 允许将命令执行结果重定向到一个文件
- 将本应显示在终端上的内容输出/追加到指定文件
其中
- >表示输出,会覆盖文件原有内容
- >>表示追加,会将内容追加到已有文件的末尾
3.管道 |
- Linux 允许将一个命令的输出可以通过管道作为另一个命令的输入
- | 的左右分为两端,左端塞东西(写),右端取东西(读)
常用的管道命令:
- more:分屏显示内容
- grep:在命令执行结果的基础上查询指定的文本
=========================
远程管理常用命令
01.关机/重启
1.1 shutdown
- shutdown 命令可以安全关闭或者重新启动系统
- sudo shutdown now 可以越过权限
shutdown -r 重新启动
- 不指定选项和参数,默认表示1分钟后关闭电脑
- 远程维护服务器时,最好不要关闭系统,而应该重新启动系统
- 常用命令实例
#重新启动操作系统,now 表示现在
$shutdown -r now
#立刻关机,now表示现在
$shutdown now
#系统将会在今天的20:25会关机
$shutdown 20:25
#系统再过十分钟后自动关机
$shutdown +10
#取消之前的关机计划
$shutdown -c
~~~~~~~~~~~~~~~~~~~~~~~~~
02.查看或配置网卡信息
ifconfig 查看/配置计算机网卡信息
ping 检测目标IP地址连接是否正常
2.1 网卡和IP地址
网卡
- 网卡是一个专门负责网络通讯的硬件设备
- IP地址是设置在网卡上的地址信息
可以把电脑比作电话,网卡相当于SIM卡,IP地址相当于电话号码
IP 地址
- IP地址是保证电脑之间正常通讯的重要的设置
每台电脑的IP地址不能相同,否则无法正常通讯
2.2 ifconfig
如果输入 ifconfig 报错的记得先安装输入 sudo apt install net-tool
#查看网卡配置信息
$ifconfig
#查看网卡对应的IP地址
$ifconfig | grep inet
一台计算机中可能有一个物理网卡和多个虚拟网卡,在Linux中物理网卡的名字通常以ensxx表示
- 127.0.0.1 被称为本地回环/环回地址,用来检测本机网卡是否正常
2.3 ping
#检测目标主机是否连接正常
$ping IP地址
#检测本地网卡工作正常
$ping 127.0.0.1
在 Linux 中,想要终止一个终端程序的执行,绝大多数可以使用Ctrl+c
原理:给目标IP地址发送数据包,对方再返回一个数据包,根据返回的数据包以及时间,可以确定目标主机的存在
03.远程登录和复制文件
ssh 用户名@ip 关机/重新启动
scp 用户名@ip:文件名或路径 远程复制文件
3.1 ssh 基础

- ssh 客户端是一种使用Secure Shell(SSH)协议连接到远程计算机的软件程序
- SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议
1)域名和端口号
域名
- 由一串用点分隔的名字组成,例如:www.itcast.cn
- 是IP地址的别名,方便用户记忆
端口号
- IP地址:通过IP地址找到网络上的计算机
- 端口号:通过端口号可以找到计算机运行的应用程序。SSH服务器的默认端口号是22,如果是默认段口号,在连接的时候,可以省略
- 常见服务端口号列表:
SSH 22
Web 80
HTTPS 443
FTP 21
2)SSH客户端的简单使用
ssh [-p port] user@remote
- user是在远程机器上的用户名,如果不指定的话默认为当前用户
- remote是远程机器的地址,可以是IP/域名/别名
- port是SSH Server 监听的端口,默认值22
注意:
- 使用exit退出当前用户的登录
- ssh终端命令只能在Linux或者Unix系统下使用
- 在windows系统中,可安装PuTTY或者XShell使用ssh客户端
- 在工作中,ssh服务器的端口号很有可能不是22,则需要使用 -p 选项指定正确的端口号
3.2 scp
- scp就是secure cope,是一个在 Linux下进行远程拷贝文件的命令
- scp的地址格式与ssh基本相同,需要注意,在指定端口是用的是大写的-p而不是小写
注意:':'后面的路径如果不是绝对路径,则以用户的家目录作为参考路径
#把本地当前目录下的01.py文件复制到远程家目录下的 Desktop/01.py
$ scp -p port 01.py user@remote:Desktop/01.py
#把远程家目录下的Desktop/01.py文件复制到本地 当前目录下的01.py
$ scp -p port user@remote:Desktop/01.py 01.py
#把当前目录下的demo文件夹复制到远程家目录下的Desktop
$ scp -r demo user@remote:Desktop
#把远程家目录下的Desktpop复制到当前目录下的demo文件夹
$ scp -r user@remote:Desktop demo
注意:
- scp 终端命令只能在Linux或者Unix系统下使用
- 如果在Windows系统中,可以安装PuTTY,使用pscp命令行工具或者安装FileZilla使用FTP进行文件传输
- FileZilla在传输文件时,使用FTP服务而不是ssh服务,因此端口号应该设置为21
3.3 SSH 高级
1)免密码登录
步骤
- 配置公钥 执行 ssh-keygen 即可生成SSH钥匙,一路回车即可
- 上传公钥到服务器,执行 ssh-copy-id -p port user@remote,让远程服务器记住公钥
有关ssh配置信息都保存在用户家目录的 .ssh目录

非对称加密算法
使用公钥加密的数据,需要私钥解密
使用私钥加密的数据,需要公钥解密
2)配置别名
每次都输入ssh -p port user@remote很麻烦,配置别名则方便的多,ssh mac 来代替上面那一串,在~/.ssh/config里面可追加以下内容
Host mac
HostName ip
User ithema
Port 22
保存之后,即可用ssh mac实现远程登录,scp同样可以使用
输入gedit config 可以打开文件config的图形界面
=========================
用户权限相关命令
01.用户和权限
1.1基本概念
- 用户是系统的重要一环,用户管理包括用户与组管理
- 每个系统都必须拥有一个账号,对于不同系统资源有不同的使用权限
- Linux中,可以指定每一个用户针对不同文件或目录的不同权限
读 read r 4
写 write w 2
执行 excute x 1
1.2 ls -l扩展
1.权限
2.硬链接数
3.拥有者
4.组
5.大小
6.时间
7.名称
1.3 chmod 简单使用
chmod可以修改用户/组对文件/目录的权限
chmod +/- rwx 文件名|目录名
1.4 超级用户
- Linux 系统中的root账号 通常用于系统的维护和管理,对操作系统所有资源具有所有访问权限
- 大多数版本的Linux中,都不推荐直接使用root登录系统
- Linux安装过程中,系统会自动创建账号,这个默认的用户被称为标准用户
sudo
- su是substitute user 的缩写,表示使用另一个用户的身份
- sudo命令用来以其他身份来执行命令,预设的身份为root
- 用户使用sudo时,必须先输入密码,之后有5分钟有效期限,超过期限必须输入密码
- 若未经授权的用户企图使用sudo,则会发出警告邮件管理员
02.组管理 终端命令
groupadd 组名 添加组
groupdel 组名
cat /etc/group 确认信息
chgrp -R 组名 文件/目录名 递归修改文件/目录的所属组
- 组信息保存在 /etc/group文件中
- 创建组/删除组/修改其他用户密码的终端命令都需要通过sudo执行
- /etc 目录是专门用来保存系统配置信息的目录
~~~~~~~~~~~~~~~~~~~~~~~~~
03.用户管理 终端命令
3.1创建用户/设置密码/删除用户
useradd -m -g 组 新建用户名 添加新用户
passwd 用户名 设置用户密码
userdel -r 用户名 删除用户
cat/etc/passwd | grep 用户名 确认用户信息
说明:
useradd
- -m 自动建立用户家目录
- -g 指定用户所在的组,否则建立一个同名的组
passwd
- 如果是普通用户,直接用passwd修改密码
userdel
- -r 选项会自动删除用户家目录
cat/etc/passwd | grep
- 新建用户后,用户信息保存在/etc/passwd文件
提示
- 创建用户时,如果忘记添加-m选项指定新用户的家目录。最简单的方法是删除用户,重新创建
- 创建用户时,默认创建一个和用户名同名的组名
- 用户信息保存在/etc/passwd文件中
3.2查看用户信息
id 查看用户UID和GID信息
who 查看当前所有登录的用户列表
whoami 查看当前登录用户的账户名
passwd 文件
/etc/passwd 文件存放的用户信息,由6个分号组成的7个信息,分别为:
1.用户名
2.密码(x表示加密)
3.UID(用户标识)
4GID(组标识 )
5.用户全名或本地账号
6.家目录
7.登录使用的Shell(登录后使用的终端命令)
ubuntu 默认是dash
usermod
- usermod 可以用来设置用户的主组/附加组和登录Shell
- 主组:通常在新建用户时指定,在etc/passwd 的第四列GID对应的组
- 附加组:在etc/group中最后一列表示该组的用户列表,用于指定用户的附加权限
提示:设置用户的附加组后,需要重新登录才生效!
#修改用户的主组(passwd 中的GID)
$usermod -g 组 用户名
#修改用户的附加组
$usermod -G 组 用户名
#修改用户登录 Shell
$usermod -s /bin/bash
注意:默认使用useradd添加的用户是没有权限使用sudo以root身份执行命令的,可以使用以下命令,将用户添加到sudo附加组中
usermod -G sudo 用户名
which
/etc/passwd 是用于保存用户信息的文件
/usr/bin/passwd 是用于修改用户密码的程序
which 命令可以查看执行命令所在位置
$which ls
#输出
#/bin/ls
$which useradd
#输出
#/usr/sbin/useradd
bin和sbin
- 在Linux中,绝大多数可执行文件都保存在/bin、/sbin、/usr/bin、/usr/sbin
- /bin(binary)
- /sbin(system binary)
- /usr/bin(usercommands for applications)
- /usr/sbin(super user commands for applications)
- /bin是二进制执行文件目录,主要用于具体应用
- /sbin是系统管理员专用的二进制代码存放目录
- /usr/bin 后期安装的一些软件
- /usr/sbin 超级用户的一些管理程序
cd这个终端命令是内置在系统内核中的,没有独立文件,因此用which无法找到cd命令的位置
3.3切换用户
su - 用户名 切换用户且切换目录
exit 退出当前登录账户
su 不接用户名,可以切换到root,但不推荐使用,不安全
-可以切换到家目录,否则只会切换用户,不会切换目录
exit示意图

3.4修改文件权限
chown 修改拥有者
chgrp 修改组
chmod 修改权限
命令格式如下:
$修改文件/目录的拥有者
#chown 用户名 文件名/目录名
$递归修改文件 | 目录的组
#chgrp -R 组名 文件名/目录名
$递归修改文件权限
#chmod -R 755 文件名/目录名
chmod在设置权限时,三个数字分别对应拥有者/组/其他用户的权限
直接修改文件|目录的 读|写|执行 权限,但不能精确到 拥有者|组|其他
chmod +/- rwx 文件名/目录名
系统信息相关命令
01.时间和日期
date 查看系统时间
cal calender 查看日历,-y选项可查看一年的日历
02.磁盘信息
df -h disk free显示磁盘剩余空间
du -h disk usage显示目录下的文件大小
0.3进程信息
- 进程就是当前正在执行的一个程序
ps aux process status查看进程的状况
top 动态显示运行中的进程并且排序
kill[-9]进程代号 终止指定代号进程-9表示强行终止
ps默认只会显示当前用户通过终端启动的应用程序
ps选项说明功能
a 显示终端上的所有进程,包括其他用户的进程
u 显示进程的详细状态
x 显示没有控制终端的进程
提示:kill命令时,最好只终止由当前用户开启的进程,而不要终止root身份开启的进程,否则导致系统崩溃
- 要退出top可以直接输入q
其他命令
01.查找文件
- find用来在特定的目录下搜索符合条件的文件
命令:find [路径] -name "*.py"
作用:查找指定路径下扩展名是.py的文件包括子目录
- 如果省略路径则表示在当前文件夹下查找
$文件包含1的文件
#find -name "*1*"
$以.txt为扩展名的文件
#find -name "*.txt"
$以数字1开头的文件
#find -name "1*"
02.软连接
命令:ln -s 被链接的源文件 链接文件
作用:建立文件的软链接,如windowsde的快捷方式
- 没有 -s 选项建立的是硬链接文件
- 两个文件占用相同大小的硬盘空间,几乎不会建立文件的硬链接
- 源文件要使用绝对路径,不能使用相对路径
- 硬链接---有多少种方式可以访问文件或目录

- 在Linux中,文件名和文件的数据是分开存储的
- 在Linux中,只有文件的硬链接数=0才会被删除
- 可用 ls -l 查看文件的硬链接数量
03.打包压缩
windows常用rar
Mac常用zip
Linux常用tar.gz
3.1打包/解包
$打包文件
#tar -cvf 打包文.tar 被打包的文件/路径
$解包文件
#tar -xvf 打包文件.tar
tar选项说明
c 生成档案文件,创建打包文件
x 解开档案文件
v 列出归档解档的详细过程,显示进度
f 指定档案文件名称
f 选项必须放最后,其他选项顺序随意
3.2压缩/解压缩
1)gzip
1.tar与gzip命令结合可以实现文件打包和压缩
2.gzip压缩tar打包后的文件,扩展名一般用xxx.tar.gz
3.tar命令中选项 -z 可以调用gzip
-C 解压缩到指定目录 注意:要解压缩的目录必须有
$压缩文件
#tar -zcvf 打包文件.tar.gz 被压缩文件/路径
$解压压缩文件
#tar -zxvf 打包文件.tar.gz
$解压压缩到指定路径
#tar -zxvf 打包文件.tar.gz -C 目标路径
2)bzip
- tar与bzip2命令结合可以实现文件打包和压缩
- bzip2压缩tar打包后的文件,扩展名一般用xxx.tar.bz2
- tar命令中选项 -j 可以调用把bzip2
$压缩文件
#tar -jcvf 打包文件.tar.bz2 被压缩的文件/路径
$解压缩文件
#tar -jxvf 打包文件.tar.bz2 -C 被解压的文件/路径
04.软件安装
4.1通过apt安装/卸载软件
- apt是Advanced Packaging Tool
$安装软件
#sudo apt install 软件包
$卸载软件
#sudo apt remove 软件名
$更新已安装的包
#sudo apt upgrade
安装演练
$小火车
#sudo apt install sl
$查看当前进程排名的软件
#sudo apt install htop
oneko
4.2配置软件源
镜像源就是所有服务器的内容是相同的