想做一个Python工程师,都有哪些技能是必备的?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了想做一个Python工程师,都有哪些技能是必备的?相关的知识,希望对你有一定的参考价值。
Python转行难吗
参考技术A 跟大家分享一份系统的python学习路线图!第一阶段Python基础与Linux数据库。
这是Python的入门阶段,也是帮助零基础学员打好基础的重要阶段。你需要掌握Python基本语法规则及变量、逻辑控制、内置数据结构、文件操作、高级函数、模块、常用标准库模块、函数、异常处理、mysql使用、协程等知识点。
学习目标:掌握Python基础语法,具备基础的编程能力;掌握Linux基本操作命令,掌握MySQL进阶内容,完成银行自动提款机系统实战、英汉词典、歌词解析器等项目。
第二阶段WEB全栈。
这一部分主要学习Web前端相关技术,你需要掌握html、CSS、javascript、jQuery、BootStrap、Web开发基础、VUE、Flask Views、Flask模板、 数据库操作、Flask配置等知识。
学习目标:掌握WEB前端技术内容,掌握WEB后端框架,熟练使用Flask、Tornado、Django,可以完成数据监控后台的项目。
第三阶段数据分析+人工智能。
这部分主要是学习爬虫相关的知识点,你需要掌握数据抓取、数据提取、数据存储、爬虫并发、动态网页抓取、scrapy框架、分布式爬虫、爬虫攻防、数据结构、算法等知识。
学习目标:可以掌握爬虫、数据采集,数据机构与算法进阶和人工智能技术。可以完成爬虫攻防、图片马赛克、电影推荐系统、地震预测、人工智能项目等阶段项目。
第四阶段高级进阶。
这是Python高级知识点,你需要学习项目开发流程、部署、高并发、性能调优、Go语言基础、区块链入门等内容。
学习目标:可以掌握自动化运维与区块链开发技术,可以完成自动化运维项目、区块链等项目。
按照上面分享的Python学习路线图学习完后,你基本上就可以成为一名合格的Python开发工程师。 参考技术B
一阶段为Python语言,需要熟练掌握Python多线程并发编程技术,可以编写爬虫程序和语音识别软件;
二阶段为Linux初级,需要熟练掌握Linux操作系统管理技术,可以搭建几乎所有Linux环境服务器;
三至五阶段为Django、Flask、Tornado学习,需要掌握三大Python后端框架,解决一切前后端Web开发问题;
六阶段为docker容器及服务发现,需要掌握Docker网络和服务发现的工作原理,了解一系列解决方案;
七阶段为爬虫,需要掌握分布式多线程大型爬虫技术,能开发企业级爬虫程序;
八阶段为数据挖掘和人工智能,可成为Python数据挖掘分析师,进入人工智能领域,成为IT市场前沿人才。
测试工程师必备技能之Linux系统指令大全
linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX(可移植的操作系统接口) 和 UNIX 的多用户、
多任务、支持多线程和多 CPU 的操作系统 ==》多测师_王sir原创
OS(Operating System):常见的操作系统有哪些?
centOS 6.5
redhat 4.9
ubuntu 14
linux 客户端连接工具:
SSH,Xshell(Xmanager 的一个组件),CRT
在Xshell上输入"ssh +ip地址"可快速连接至虚拟机上
注:如SSH连接失败先执行下一步在连接。
解决方法:确定SSHD服务开启没;
开启命令:/etc/init.d/sshd restart
Linux常用指令归纳:
注:当有#符号时,表示此时为超级用户;当有$符号时,表示此时为普通用
常用指令
pwd :显示当前所在目录的绝对路径
/ :根目录
. :当前目录
.. :当前目录父目录(上一级目录
~ :表示家目录 宿主目录
ls 显示文件或目录(但是不包含隐藏的文件)
-rtl 根据时间排序显示
-l 列出文件详细信息l(list) ll=ls -l
-a 列出当前目录下所有文件及目录,包括隐藏的a(all)
cd /root/
第一个/斜杠为根目录的意思
第二个/斜杠为XX目录下的文件或者目录
用ll查看文件最前面显示d 表示是目录 directory
前面显示尾- 表示为普通文件
ll 查看当前目录下面的文件以及目录(显示详细的信息)
ls -l 查看当前目录下面的文件以及目录(显示详细的信息) ll就等于ls -l
ls 查看当前目录下面的文件以及目录(不显示详细的信息)
ls -a 查看当前目录下面的文件以及目录(包含隐藏的)
ls -rtl 查看当前目录下面的文件以及目录(按照时间排序的)
man ls 查看ls命令后面可以接哪些参数 退出命令行模式按住q quit退出
mkdir 创建目录
-p a/b/c 创建连接目录
cd 进入目录
touch 创建空文件
1.vim + 文件名
2.在空白界面输入i,当左下角有insert出现,此时进入到编辑模式
3.输入要编辑的内容,按住Ctrl+c,然后再按住caps lock+大写的ZZ
注意点:千万不要按Ctrl+z和Ctrl+s==》会生成临时文件,导致文件
不能编辑
touch和vim创建文件的区别:
touch创建文件,文件内容可以为空
vim创建文件,文件内容不能为空,不然不能创建。
less 查看文件内容
more 查看文件内容
cat 查看文件内容
一个重定向符号 >
cat aa.txt > cc.txt
当目标文件不存在的时候,则新建目标文件,并且把源文件的内容复制到目标文件中
cat aa.txt > bb.txt
当目标文件存在的时候,则直接会把目标文件的内容进行覆盖
俩个重定向符号 >>
cat aa.txt >> dd.txt
当目标文件不存在的时候,则新建目标文件,并且把源文件的内容复制到目标文件中
cat aa.txt >> ee.txt
当目标文件存在的时候,则直接会在目标文件的最尾处进行追加。
cp 拷贝
[root@localhost xiaowang]# cp xiaoliu wzq ---将xiaoliu文件拷贝到wzq目录下
绝对路径是从根目录/出发
.代表的是当前目录
./当前目录下面
相对路径的写法
cp bb.txt aa/bb.txt
cp bb.txt ./aa/dd.txt
绝对路径的写法
cp bb.txt /dcs2/aa/cc.txt
mv 移动或重命名
mv的用法:
1.移动
把文件移动到目录中去,把文件移动到文件中
2.重命名
当当前目录不存在则直接重命名
当当前目录存在相同文件名,则会进行覆盖。
rm 删除文件,不能删除目录
-rf 强制删除(文件和目录都可以删除)
-i 提示性删除(不能删除目录)
-r 逐级删除直到全部删除( 从里到外的删除)
find 在文件系统中搜索某文件
[root@localhost /]# find /wangzhiqiang/xiaowang/ -type d 按文件目录类型查找
/wangzhiqiang/xiaowang/
/wangzhiqiang/xiaowang/wzq
[root@localhost /]# find /wangzhiqiang/xiaowang/ -type f 按文件查找
/wangzhiqiang/xiaowang/a
/wangzhiqiang/xiaowang/c
/wangzhiqiang/xiaowang/b
[root@localhost /]# find /wangzhiqiang/ -size +1M 按文件大小,查找大于1M的文件
/wangzhiqiang/apache-tomcat-7.0.56/webapps/cms.war
/wangzhiqiang/apache-tomcat-7.0.56/webapps/cms/WEB-INF/lib/druid-0.2.15.jar
/wangzhiqiang/apache-tomcat-7.0.56/webapps/cms/WEB-INF/lib/aspectjweaver-1.6.11.jar
[root@localhost wangzhiqiang]# find /wangzhiqiang/ -mtime +1 ---目录下文件的“更改时间”在 1 天之前的绝对路径
[root@localhost wangzhiqiang]# find . -mtime -1 ---目录下文件的“更改时间”在 1 天之内的绝对路径
./xiaowang
./xiaowang/yy/qq
[root@localhost /]# find /wangzhiqiang/xiaowang/ -name laowang 根据名字查找
/wangzhiqiang/xiaowang/laowang
[root@localhost xiaowang]# find /wangzhiqiang/xiaowang/ -name laol*
/wangzhiqiang/xiaowang/laoliu "*"表示 0 个或多个字符匹配
[root@localhost /]# find / -name laol?? "?"表示单个字符匹配,
/wangzhiqiang/xiaowang/laoliu
[root@localhost /]# ps -ef |grep 80 只查80端口(重点)
[root@localhost /]# cat /etc/passwd |grep wangzhiqiang 只查“wangzhiqiang”用户
wangzhiqiang:x:500:500:wangzhiqiang:/home/wangzhiqiang:/bin/bash
grep:文本搜索工具 根据用户指定模式搜索
[root@localhost /]# grep ‘m...l‘ /etc/passwd 匹配任意单个字符
mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash
wc 统计文本中行数、字数、字节或者字符数
-l 统计行数
-c 统计字节数
nl 显示多少行,将详细信息也显示
rmdir 删除空目录(只能删除空目录 )
pwd 显示当前目录
ln 创建链接文件
-s 软链接(接绝对路径,可以针对文件和目录创建软链接)
-d 硬链接(只能针对文件,不能对目录操作,相当于就是备份)
eg: [root@localhost xiaowang]# ln -s wzq zhiqiang
lrwxrwxrwx. 1 root root 3 May 3 05:24 zhiqiang -> wzq
cat、more、less 分页显示文本文件内容
3个查看文件内容的命令:
cat 文件名 查看文件的所有内容并且全部显示在控制台
less 文件名 查看文件显示部分内容 按space键向下翻页,按b键向上翻页
按住Ctrl+z键 结束
more 文件名 以百分比的形式显示文件中的内容 按住enter键百分比增加
按住Ctrl+z键 结束
linux 如何显示一个文件的某几行(中间几行)
head、tail 显示文件头、尾内容
head 文件名 ==》默认查看文件的前面10行
tail 文件名 ==》默认查看文件的后面10行
head -n 5 head_tail.txt ==》查看前面5行
tail -n 5 head_tail.txt ==》查看倒数的5行
tail -n +5 head_tail.txt ==》从第5行开始显示到最后
cat head_tail.txt|head -n 10 ==》显示前面10行
cat head_tail.txt|head -n 10|tail -n +5 ==》显示5-10行
cat head_tail.txt|head -n 10|tail -n 6 ==》显示5-10行
cat head_tail.txt|tail -n +5|head -n 6 ==》显示5-10行
cat head_tail.txt|tail -n 26|head -n 6 ==》显示5-10行
date 显示时间
date -s ‘2016-09-01 11:27:00‘ root 用户修改系统时间
系统管理命令
who 显示在线登陆用户
whoami 显示当前操作用户
hostname 显示主机名
uname 显示系统信息
getconf LONG_BIT 显示内核信息
top 动态显示当前耗费资源最多进程信息
eg:[root@localhost /]# top -d 10 每隔10s刷新一次
ps 显示瞬间进程状态
ps –aux 列出目前所有的正在内存当中的程序 (a:显示其它用户启动进程 x:查看系统中属于自己的进程 u:启动这个进程的用户和它启动的时间)
free -m 查看服务器内存使用
du 查看目录大小 du -h /home带有单位显示目录信息
df 查看磁盘大小 df -h 带有单位显示磁盘信息
ifconfig 查看网络情况
[root@localhost xiaowang]# ifconfig eth0 192.168.1.111 netmask 255.255.255.0 改临时IP
service network restart:重启网卡
ping 测试网络连通
netstat -anp 查看所有端口号(LISTEN表示端口被占用当中,最后一列显示被哪个服务所占用,显示的 LISTENING 并不表示端口被占用,不要和 LISTEN 混淆)
-at 列出tcp所有的端口号
[root@localhost bin]# netstat -anp|grep 8080
tcp 0 0 :::8080 :::* LISTEN 3442/java
显示8080端口正被java程序所占用
netstat -nultp 查看当前所有已经使用的端口情况
lsof –i :8080 通过端口号查看应用程序,,,
ps -ef|grep 8080 通过端口号和服务进程的名称查看应用程序 grep是关键字搜索
注:端口号的作用,主要是区分服务类别和在同一时间进行多个会话。
clear 清除当前屏幕的信息
reset 清除屏幕上显示的所有信息
history 打印历史命令
-c 清除历史命令
alias 对命令重命名 如:alias if=ifconfig,另外解除使用unalias
unalias 取消别名: unalias if
kill 杀死进程,可以先用ps 或 top命令查看进程的id,然后再用kill命令杀死进程。
Kill -9 不建议使用;当使用kill无法将进程杀死才使用该命令;
fdisk 格式化文件系统
reboot 重启
shutdown -h now 立即关机
shutdown -h 120 2 分钟后关机
init 0 关机
打包压缩相关命令
linux中的打包命令:(tar、tar.gz、zip包都可以对目录进行打包操作)
tar包打包命令:tar -cvf aa.tar aa.txt
解压前删除源文件:rm -i aa.txt
tar包解压命令:tar -xvf aa.tar
tar.gz打包命令:tar -zcvf aa.tar.gz aa.txt
解压前删除源文件:rm -i aa.txt
tar.gz包解压命令:tar -zxvf aa.tar.gz
zip对文件进行打包
zip打包命令:zip aa.zip aa.txt
解压前删除源文件:rm -i aa.txt
.zip包解压命令:unzip aa.zip
zip对目录进行打包:zip -r bb.zip bb
解压前删除源目录:rm -r bb
zip对目录进行解压:unzip bb.zip
gzip打包命令:gzip aa.txt
解压命令:gunzip aa.txt.gz
注意点:
1.打包完成后源文件不存在,解压包之后之前的压缩包不存在
2.gzip命令不能对目录进行打包操作、只能对文件
rpm -ivh xxxx.rpm :安装 rpm 包 i:安装 v:进度 h:进度条
yum install lrzsz : yum install :在线安装指令 lrzsz: l:linux rz:本地往linux中上传文件, sz:linux往本地下载文件 lrzsz:上传和下载的工具
mysql:rpm -aq|grep -i mysql :查询已经安装的mysql的程序包
用户及用户组管理
cat /etc/passwd 存储用户账号
cat /etc/group 存储组账号
cat /etc/shadow 存储用户账号的密码
cat /etc/gshadow 存储用户组账号的密码
useradd +用户名 增加用户名
adduser+用户名 增加用户名
passwd +用户名 修改用户的密码
彻底删除一个用户:
cd /usr/sbin
(某些系统版本为bin文件夹)
在这里输入: ./userdel -r 用户名 (前面的./一定要加上)
groups+用户名:查用户属于哪个组
userdel +用户名 删除用户名
groupadd 组名 添加用户组
groupdel 组名 删除用户组
passwd root 给root设置密码
把用户加入到组:
gpasswd -a 用户 组名 把XX用户添加到XX组
把用户从组删除
gpasswd -d 用户 组名 把XX用户从XX组删除
三剑客(针对文件和目录):
chmod 修改文件权限, chown 改变文件的属主 chgrp 改变文件属组
d:文件类型(表示目录) l:表示链接文件 -:表示普通文件
前三位:rwx:文件属主有读写执行的权限
中间三位:r-x:用户所在的组用户只有读,执行权限
后三位:--x :其它用户只有执行的权限
eg: drwxr-xr-x. 4 root root 4096 May 2 06:14 wangzhiqiang
d:文件类型(表示目录)
前三位:rwx:文件属主有读写执行的权限, (u:用户自己(文件属主))
中间三位:r-x:用户所在的组用户只有读和执行的权限,(g:用户所在组)
后三位:--x :其它用户只有执行的权限, (o:其它用户)
rwx read=4 write=2读,写,execute=1 执行
Eg:drwxr-x--x. 2 root root 4096 May 13 23:39 bin
rwx read=4 读,write=2 写,execute=1 执行
[root@localhost xiaowang]# chmod -R 777 yy 修改yy目录以及yy目录下所有文件的权限
drwxrwxrwx. 2 root root 4096 May 2 06:35 qq
[root@localhost dcs36]# chmod 777 a 修改 a目录的权限但是a目录下面文件的权限不变
读写执行权限详细解释:
drwxr-x--x. 2 root root 4096 Feb 22 23:00 dcs36
1.表示root用户对dcs36目录有读写执行的权限
2.表示和root用户在同一个组的其他用户对dcs36目录
有读和执行的权限,但是没有写的权限。
3.其他用户(去掉root用户和root用户在同一个组的其他用户)对
dcs36目录只有执行的权限。
读(r):可以对文件执行 cat、more、less、head、tail 等文件查看命令。
写(w):可以对文件执行 vim修改文件数据的命令。但不能删除文件本身。
执行(x):对文件拥有了执行权限。比如shell脚本运行./+文件名.sh。
[user39@localhost bin]$ sh startup.sh user39这个用户去进行启动脚本显示拒绝访问
Using CATALINA_BASE: /apache-tomcat-7.0.56
Using CATALINA_HOME: /apache-tomcat-7.0.56
Using CATALINA_TMPDIR: /apache-tomcat-7.0.56/temp
Using JRE_HOME: /usr
Using CLASSPATH: /apache-tomcat-7.0.56/bin/bootstrap.jar:/apache-tomcat-7.0.56/bin/tomcat-juli.jar
touch: cannot touch `/apache-tomcat-7.0.56/logs/catalina.out‘: Permission denied
/apache-tomcat-7.0.56/bin/catalina.sh: line 385: /apache-tomcat-7.0.56/logs/catalina.out: Permission denied
先创建一个组:
组中是没有用户的,这时候再添加一个和组同名的用户会报错如下:
[root@localhost bin]# groupadd dcs21
[root@localhost bin]# cat /etc/group
[root@localhost bin]# useradd dcs21
useradd: group dcs21 exists - if you want to add this user to that group, use -g.
[root@localhost bin]# useradd dcs21 -g dcs21 #这里指的是创建一个用户dcs21并把这个用户添加到dcs21这个空的组当中。
[root@localhost bin]# cat /etc/group
[root@localhost bin]# groups dcs21
dcs21 : dcs21 #添加了之后显示dcs21用户已经属于dcs21组了
cat /etc/group|grep xiaoqiang 查看xiaoqiang组的gid即小组的id
awk -F":" ‘{print $1"/t/t"$4}‘ /etc/passwd | grep ‘506‘
通过组id 506查到组内的用户
如下:
[root@localhost xiaoqiang]# awk -F":" ‘{print $1"/t/t"$4}‘ /etc/passwd | grep ‘506‘
xiaoqiang/t/t506
xiaoyi/t/t506
xiaosan/t/t506
方法一:sftp: 是一个交互式文件传输程式。它类似于 ftp, 但它进行加密传输,比FTP有更高的安全性。
sftp root@+对方IP 在sftp环境下操作自己的机器需要在指令前加“l”如‘lls’
passwd:对方密码
登入后如下:
sftp>
eg:sftp> get /var/www/fuyatao/index.php /home/fuyatao/
这条语句将从远程主机的 /var/www/fuyatao/目录下将 index.php 下载到本地 /home/fuyatao/目录下。
sftp>put /home/fuyatao/downloads/Linuxgl.pdf /var/www/fuyatao/
这条语句将把本地 /home/fuyatao/downloads/目录下的 linuxgl.pdf文件上传至远程主机/var/www/fuyatao/ 目录下。
方法二:scp:可以在2个linux之间复制文件(直接在本地root目录下输入以下命令)
eg:scp /wangzhiqiang/xiaowang/yy root@IP(对方的IP): /home/xiaoliu 将本机下的“yy”文件拷贝到对方的“xiaoliu”目录下
eg:scp root@ IP(对方的IP): /home/xiaoliu /yy /wangzhiqiang/xiaowang 将对方下的“yy”文件拷贝到本机的“xiaowang”目录下
VIM 编辑
Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。 VIM是纯粹的自由软件。
多种不同的模式:
命令模式
输入模式/插入模式
末行模式:vim有许多内置命令,此模式即为其命令的接口
i:insert, 在当前光标所在处前面,转换为输入模式
I:在当前光标所在行行首,转换为输入模式
a: append, 在当前光标所在处字符后方,转换为输入模式
A:在当前光标所在行行尾,转换为输入模式
o(new line): 在当前光标所在行的下方新建一个空白行,并转换为输入模式
O:在当前光标所在行的上方新建一个空白行,并转换为输入模式
cc删除当前行并进入编辑模式
c$ 擦除从当前位置至行末的内容,并进入编辑模式
s 删除当前字符并进入编辑模式
S 删除光标所在行并进入编辑模式
:w 将缓冲区写入文件:,即保存修改
:wq 保存修改并退出,( 强制性写入文件并退出。即使文件没有被修改也强制写入,并更新文件的修改时间)
:x 保存修改并退出(写入文件并退出。仅当文件被修改时才写入,并更新文件修改时间,否则不会更新文件修改时间)
:q 退出,如果对缓冲区进行过修改,则会提示””
:q! 强制退出,放弃修改
dd 删除光标所在行
x 删除当前字符
X 删除前一个字符
D 删除光标以及光标后所有内容
yy 复制一行,此命令前可跟数字,表示复制多行,如6yy,表示从当前行开始复制6行移动光标按p进行粘贴
:10,20y :复制第 10 行至第 20 行之间的内容,按下‘P’
p 粘贴粘贴板的内容到当前行的下面(小写)
P 粘贴粘贴板的内容到当前行的上面(大写)
0 跳转至光标绝对行首
$ 跳转至光标绝对行尾
k,j,h,l上,下,左,右
H 移动光标到当前屏幕上最上边的一行
M 移动光标到当前屏幕上中间的一行
L 移动光标到当前屏幕上最下边的一行
编辑
r 替换一个字符
:/wang 根据字符查找
:nohl 取消标记
J 将下一行和当前行连接为一行
u 撤销 相对于Windows的Ctrl+Z
:10,20w /xiaowang 将10到20行的内容单独创建到根目录下新建的“xiaowang”文件里
:set nu :显示行号
:set nonu :不显示行号
:%s/xiaobai/sky/g(等同于 :g/vivian/s//sky/g) 替换每一行中 所有 xiaobai 为 sky
清除文件内容而不清除文件:true >文件名(在vim外面操作)
:%s/xiaobai/sky/ 后面不加g 只把第一行的第一个xiaobai改为sky 后面的不进行更改
true >bb.txt /dev/null(在vim外面操作)
以上是关于想做一个Python工程师,都有哪些技能是必备的?的主要内容,如果未能解决你的问题,请参考以下文章