Fork me on GitHub
Jovelin's Blog

Python The old farmer


  • 首页

  • 归档

  • 分类

  • 标签

  • 关于

Python 网络通信-udp、tcp 与 socket

发表于 2018-07-08 | 分类于 Python | 热度: °C
字数统计: 3,673 | 阅读时长 ≈ 14

前言:

  1. UDP 和 TCP 及 socket 介绍;
  2. 网络七层协议(四/五层模型);
  3. IP 地址与端口;
  4. Python3 编码转换;
  5. Socket 套接字;
  6. UDP 协议;
  7. TCP 协议。
阅读全文 »

反问学习法(what、why、where),十万个为什么

发表于 2018-07-06 | 分类于 学习方法 | 热度: °C
字数统计: 716 | 阅读时长 ≈ 2

why.jpg

不知道你们有没有这样的感受,就是当学完了一个知识点,可能知道怎么用、知道写代码的步骤(像套模板一样,按照案例、步骤一步步码出来),反正就是代码我能写出来,但是这个知识点是什么?为什么用它?在哪里使用这个知识点?往往就不是很清楚,有点印象、模模糊糊,理解不透彻。

阅读全文 »

Linux 终端命令

发表于 2018-07-03 | 分类于 Linux | 热度: °C
字数统计: 3,069 | 阅读时长 ≈ 12

Linux 终端命令

01. 终端命令格式

command [-options] [parameter]
command:命令名,相应功能的英文单词或单词的缩写
[-options]:选项,可用来对命令进行控制,也可以省略
[parameter]:传给命令的参数,可以是 零个、一个 或者 多个

02. 查阅命令帮助信息

2.1 --help
command --help
显示 command 命令的帮助信息

2.2 man
man command
查阅 command 命令的使用手册

man 是 manual 的缩写,是 Linux 提供的一个手册,包含了绝大部分的命令、函数的详细使用说明

使用 man 时的操作键:
空格键:显示手册页的下一屏
Enter 键:一次滚动手册页的一行
b:回滚一屏
f:前滚一屏
q:退出
/word:搜索 word 字符串

Linux 基本命令(一)

Linux 文件或者目录名称最长可以有 265 个字符,“.”代表当前目录,“..”代表上一级目录,以“.”开头的文件为隐藏文件,需要用 -a 参数才能显示。


1. 查看文件信息:ls
-a 显示指定目录下所有子目录与文件,包括隐藏文件
-l 以列表方式显示文件的详细信息
-h 配合 -l 以人性化的方式显示文件大小(字节大小以 K 显示)

$ ls -a
$ ls -l
$ ls -l -h
$ ls -alh

2. 清屏:clear
clear 作用为清除终端上的显示(类似于 DOS 的 cls 清屏功能),也可使用快捷键:Ctrl + L

3. 切换工作目录: cd
cd 切换到当前用户的主目录(/home/用户目录),用户登陆的时候,默认的目录就是用户的主目录。
cd ~ 切换到当前用户的主目录(/home/用户目录)
cd . 切换到当前目录
cd .. 切换到上级目录
cd - 可进入上次所在的目录

4. 显示当前路径:pwd

5. 创建目录:mkdir
通过mkdir命令可以创建一个新的目录。参数 -p 可递归创建目录。

$ mkdir newdir1
$ mkdir -p newdir2/a/b/c

6. 删除文件:rm
可通过rm删除文件或目录。使用rm命令要小心,因为文件删除后不能恢复。
为了防止文件误删,可以在rm后使用-i参数以逐个确认要删除的文件。

-i 以进行交互式方式执行
-f 强制删除,忽略不存在的文件,无需提示
-r 递归地删除目录下的内容,删除文件夹时必须加此参数

$ rm -if newfile.txt
$ rm -ir newdir1

7. 拷贝:cp
cp 命令的功能是将给出的文件或目录复制到另一个文件或目录中,相当于 DOS 下的 copy 命令。

-a 该选项通常在复制目录时使用,它保留链接、文件属性,并递归地复制目录,简单而言,保持文件原有属性。
-f 已经存在的目标文件而不提示
-i 交互式复制,在覆盖目标文件之前将给出提示要求用户确认
-r 若给出的源文件是目录文件,则 cp 将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名。
-v 显示拷贝进度

$ cp -ivr newdir1 newdir2

8. mv:移动、重命名
用户可以使用mv命令来移动文件或目录,也可以给文件或目录重命名。

-f 禁止交互式操作,如有覆盖也不会给出提示
-i 确认交互方式操作,如果mv操作将导致对已存在的目标文件的覆盖,系统会询问是否重写,要求用户回答以避免误覆盖文件
-v 显示移动进度

$ mv -iv newdir1 newdir3

9. 创建文件: touch
用户可以通过touch来创建一个空的文件

$ touch hello.txt

10. 查看文件树状图:tree
通过使用 tree 命令来查看我们的文件树状图,那么如果我们的电脑里面没有安装tree的软件的话,那么就会执行命令失败,出现如下的问题:-bash: tree: command not found

Mac 上安装 tree 安装包:
$ brew install tree

11. echo
echo 命令用于在 shell 中打印 shell 变量的值,或者直接输出指定的字符串。

12. gedit
gedit 命令可以打开 linux 下记事本,类似 windows 下的 notepad (txt-记事本)

Linux 基本命令(二)

1. 输出重定向命令:>
Linux 允许将命令执行结果重定向到一个文件,本应显示在终端上的内容保存到指定文件中。

# test.txt 如果不存在,则创建,存在则覆盖其内容
$ ls > test.txt
$ echo 111 > test.txt
$ tree > test.txt

注意:>输出重定向会覆盖原来的内容,>>输出重定向则会追加到文件的尾部。

2. 查看或者合并文件内容:cat

# 查看文件所有内容,并全部显示
$ cat 文件
# 1.txt 2.txt文件内容保存到3.txt
$ cat 1.txt 2.txt > 3.txt
# 1.txt 2.txt文件内容追加到3.txt
$ cat 1.txt 2.txt >> 3.txt

3. 分屏显示:more
分屏显示文件内容,每次只显示一页

more 文件名

f/空格:翻到下一页
b:翻到上一页
回车:显示下一行
q:退出当前显示
h:查看帮助

4. 管道:|
一个命令的输出可以通过管道做为另一个命令的输入

$ ls /bin | more

查看 bin 目录下的文件信息,让显示在终端的数据保存在管道里面,然后通过 more 分屏显示管道里面的数据
经常和 grep/xargs 连用

$ grep -i '-' 1.txt | more

5. 文本搜索:grep
Linux 系统中 grep 命令是一种强大的文本搜索工具,grep 允许对文本文件进行模式查找。
如果找到匹配模式,grep 打印包含模式的所有行。

grep [-选项] '搜索内容串' 文件名

-v 显示不包含匹配文本的所有行(相当于求反)
-n 显示匹配行及行号
-i 忽略大小写

grep 常用正则表达式:

^a 行首,搜寻以 a 开头的行;grep -n '^a' 1.txt
ke$ 行尾,搜寻以 ke 结束的行;grep -n 'ke$' 1.txt
[Ss] 匹配 [] 里中一系列字符中的一个;grep -n '[Ss]igna' 1.txt
. 匹配一个非换行符的字符;grep -n 'e.e' 1.txt

6. 建立链接文件:ln
1. 软链接
适合做快捷方式
源文件删除,软链接失效

$ ln -s 源文件/文件夹 软链接名

软链接文件和源文件不在同一个目录,源文件要使用绝对路径
软链接可以对文件或文件夹进行操作
创建软链接,文件/目录硬链接数不会增加

2. 硬链接
适合做数据备份
源文件删除,硬链接不失效

$ ln 源文件 硬链接名

硬链接只能对文件进行操作
创建硬链接,文件的硬链接数会增加

7. 查找文件:find
find 命令功能非常强大,通常用来在特定的目录下搜索符合条件的文件,也可以用来搜索特定用户属主的文件。

find ./ -name test.sh 查找当前目录下所有名为test.sh的文件
find ./ -name '*.sh' 查找当前目录下所有后缀为.sh的文件
find ./ -name '[A-Z]*' 查找当前目录下所有以大写字母开头的文件
find /tmp -size 2M 查找在/tmp 目录下等于2M的文件
find /tmp -size +2M 查找在/tmp 目录下大于2M的文件
find /tmp -size -2M 查找在/tmp 目录下小于2M的文件
find ./ -size +4k -size -5M 查找当前目录下大于4k,小于5M的文件
find ./ -perm 777 查找当前目录下权限为 777 的文件或目录
find 目录 -type f/d 查找指定目录下的文件/文件夹

8. 归档管理:tar
1. 归档+打包
tar
归档:tar -cvf test.tar *.txt
把所有.txt文件打包为test.tar
解档:tar -xvf test.tar -C指定文件夹
将test.tar解档到指定目录
gzip
压缩:gzip -r test.tar test.tar.gz
将test.tar压缩为test.tar.gzip
解压:gzip -d test.tar.gz test.tar
将test.tar.gz解压为test.tar
bzip2
压缩:bzip2 -r test.tar test.tar.bz2
将test.tar压缩为test.tar.bz2
解压:bzip2 -d test.tar.bz2 test.tar
将test.tar.bz2解压为test.tar
2. gzip格式
tar 归档+压缩:tar -zcvf test.tar.gz *.txt
所有.txt后缀的文件压缩为test.tar.gz
tar 解档+解压:tar -zxvf test.tar.gz -C 指定文件夹
解压test.tar.gz到指定的文件夹

3. bzip2格式
tar 归档+压缩:tar -jcvf test.tar.bz2 *.html
所有.html后缀的文件压缩为test.tar.bz2
tar 解档+解压:tar -jxvf test.tar.bz2 -C 指定文件夹
解压test.tar.bz2到指定的文件夹
4. zip格式
zip 压缩:zip -r test.zip *.py
zip格式压缩所有.py文件
unzip 解压:unzip -d 指定文件夹 test.zip
解压test.zip到指定文件夹

常用参数
-c 生成档案文件,创建打包文件
-v 列出归档解档的详细过程,显示进度
-f 指定档案文件名称,f后面一定是.tar文件,所以必须放选项最后
-t 列出档案中包含的文件
-x 解开档案文件
-d 解压
-r 压缩所有子目录
-z 指定压缩包的格式为:file.tar.gz

9. 查看命令位置:which
$ which ls

10. 修改文件权限:chmod
文件权限
r 可读 数字代号: 4
w 可写 数字代号: 2
x 可执行 数字代号: 1
- 无任何权限 数字代号: 0

用户
u 当前用户(user)
g 同组用户(group)
o 其他用户(other)
a 所有用户(all)

设置权限
+ 添加权限
- 删除权限
= 设置权限

字母法设置权限
chmod u/g/o/a +/-/= rwx 文件
chmod a= 1.txt
所有用户没有权限
chmod a=rwx 1.txt
所有用户都有全部权限
chmod u+x 1.txt
给当前用户添加可执行的权限

数字法设置权限
chmod 777 文件名
给所有用户添加全部权限
chmod 751 文件名
给当前用户rwx权限,本组用户rx权限,其他用户x权限

11. 切换账号
切换到管理员账号
sudo -s
切换到其他账号
su 其他账号名

12. 设置用户密码:passwd
sudo passwd 新密码

13. 退出登录账户:exit

14. 查看登录用户:who
who 查看当前系统登录的所有用户名
who -q 只显示用户登录的账号和登录的用户数量
who -u 只显示列标题
whoami 只显示当前用户登录的用户名

15. 关机重启
shutdown
shutdown -r now
重启系统,并给其他用户提示
shutdown -h now
立刻关机
shutdown -h 20:25
系统在今天的20:25 关机
shutdown -h +10
系统再过十分钟,自动关机
shutdown -c
取消关机

init
init 0 系统关机
init 6 系统重启

reboot
重新启动系统

软件操作的相关命令

sudo apt-get update  更新源

sudo apt-get install package 安装包

sudo apt-get remove package 删除包

sudo apt-cache search package 搜索软件包

sudo apt-cache show package 获取包的相关信息,如说明、大小、版本等

sudo apt-get install package --reinstall 重新安装包

sudo apt-get -f install 修复安装

sudo apt-get remove package --purge 删除包,包括配置文件等

sudo apt-get build-dep package 安装相关的编译环境

sudo apt-get upgrade 更新已安装的包

sudo apt-get dist-upgrade 升级系统

sudo apt-cache depends package 了解使用该包依赖那些包

sudo apt-cache rdepends package 查看该包被哪些包依赖

sudo apt-get source package 下载该包的源代码

sudo apt-get clean && sudo apt-get autoclean 清理无用的包

sudo apt-get check 检查是否有损坏的依赖

总结

1.必须学会使用的

命令行安装工具:(例如: tree/greenlet/gevent...)
sudo apt-get install 包名
sudo gedit 文件名

基本命令:cd ls

2.大纲要求会的(以后上班有可能用的到)

a. cp/rm/mkdir/mv/touch/find
b. putty/filezilla 等远程操控及文件传输软件的使用
c. vim 能够修改内容(最简单形式)
d. 命令 | grep 内容:从前面命令中获取指定内容
e. passwd/who/ln

Linux 系统介绍

发表于 2018-07-02 | 分类于 Linux | 热度: °C
字数统计: 1,396 | 阅读时长 ≈ 5

操作系统

  • 操作系统(Operation System,OS)

操作系统作为接口的示意图.png

1.1 操作系统的作用
1. 是现代计算机系统中 最基本和最重要 的系统软件
2. 是配置在计算机硬件上的第一层软件,是对硬件系统的首次扩展
3. 主要作用是管理好硬件设备,并为用户和应用程序提供一个简单的接口,以便于使用
4. 而其他的诸如编译程序、数据库管理系统,以及大量的应用软件,都直接依赖于操作系统的支持

1.2 不同应用领域的主流操作系统
1. 桌面操作系统
2. 服务器操作系统
3. 嵌入式操作系统
4. 移动设备操作系统

1> 桌面操作系统
Windows 系列
用户群体大
macOS
适合于开发人员
Linux
应用软件少

2> 服务器操作系统
Linux
安全、稳定、免费
占有率高
Windows Server
付费
占有率低
002_机房照片

3> 嵌入式操作系统
Linux
微型化
可裁剪性
实时性
高可靠性
易移植性
例如: mp3、mp4、车载导航、智能家电...(工厂控制设备,智能仪表,智能玩具...)

linux在开发,或者删减部分功能适应硬件,或者使用c语言直接开发的特定设备简单系统...

4> 移动设备操作系统
iOS
Android(基于 Linux)

1.3 虚拟机
虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统

1. 虚拟系统通过生成现有操作系统的全新虚拟镜像,具有真实操作系统完全一样的功能
2. 进入虚拟系统后,所有操作都是在这个全新的独立的虚拟系统里面进行,可以独立安装运行软件,保存数据,拥有自己的独立桌面,不会对真正的系统产生任何影响
3. 而且能够在现有系统与虚拟镜像之间灵活切换的一类操作系统

Linux 下的文件系统

  • 在 Linux 下,我们是看不到这些驱动器盘符,我们看到的是文件夹(目录)

  • Ubuntu 没有盘符这个概念,只有一个根目录 /,所有文件都在它下面

003-Linux的树形示意图.png

用户目录

  • 位于 /home/user,称之为用户工作目录或家目录,表示方式:
/home/user
~

Linux 主要目录速查表

  • /:根目录,一般根目录下只存放目录,在 linux 下有且只有一个根目录,所有的东西都是从这里开始
    当在终端里输入 /home,其实是在告诉电脑,先从 /(根目录)开始,再进入到 home 目录
  • /bin、/usr/bin:可执行二进制文件的目录,如常用的命令 ls、tar、mv、cat 等
  • /boot:放置 linux 系统启动时用到的一些文件,如 linux 的内核文件:/boot/vmlinuz,系统引导管理器:/boot/grub
  • /dev:存放linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备,常用的是挂载光驱mount /dev/cdrom /mnt
  • /etc:系统配置文件存放的目录,不建议在此目录下存放可执行文件,重要的配置文件有
    • /etc/inittab
    • /etc/fstab
    • /etc/init.d
    • /etc/X11
    • /etc/sysconfig
    • /etc/xinetd.d
  • /home:系统默认的用户家目录,新增用户账号时,用户的家目录都存放在此目录下
    • ~ 表示当前用户的家目录
    • ~edu 表示用户 edu 的家目录
  • /lib、/usr/lib、/usr/local/lib:系统使用的函数库的目录,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助
  • /lost+fount:系统异常产生错误时,会将一些遗失的片段放置于此目录下
  • /mnt: /media:光盘默认挂载点,通常光盘挂载于 /mnt/cdrom 下,也不一定,可以选择任意位置进行挂载
  • /opt:给主机额外安装软件所摆放的目录
  • /proc:此目录的数据都在内存中,如系统核心,外部设备,网络状态,由于数据都存放于内存中,所以不占用磁盘空间,比较重要的文件有:/proc/cpuinfo、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/* 等
  • /root:系统管理员root的家目录
  • /sbin、/usr/sbin、/usr/local/sbin:放置系统管理员使用的可执行命令,如 fdisk、shutdown、mount 等。与 /bin 不同的是,这几个目录是给系统管理员 root 使用的命令,一般用户只能”查看”而不能设置和使用
  • /tmp:一般用户或正在执行的程序临时存放文件的目录,任何人都可以访问,重要数据不可放置在此目录下
  • /srv:服务启动之后需要访问的数据目录,如 www 服务需要访问的网页数据存放在 /srv/www 内
  • /usr:应用程序存放目录
    • /usr/bin:存放应用程序
    • /usr/share:存放共享数据
    • /usr/lib:存放不能直接运行的,却是许多程序运行所必需的一些函数库文件
    • /usr/local:存放软件升级包
    • /usr/share/doc:系统说明文件存放目录
    • /usr/share/man:程序说明文件存放目录
  • /var:放置系统执行过程中经常变化的文件
    • /var/log:随时更改的日志文件
    • /var/spool/mail:邮件存放的目录
    • /var/run:程序或服务启动后,其 PID 存放在该目录下

Unix 家谱

003_unix家谱.jpg

Mac 上搭建 Hexo+GitHub+Coding 个人博客

发表于 2017-06-28 | 分类于 Hexo | 热度: °C
字数统计: 2,380 | 阅读时长 ≈ 9

前言:

  1. Hexo;
  2. NexT 主题;
  3. github;
  4. coding;
  5. 阿里云域名。
阅读全文 »

认识 Python

发表于 2017-06-22 | 分类于 Python 基础 | 热度: °C
字数统计: 3,844 | 阅读时长 ≈ 14

1. Python 的起源

人生苦短,我用 Python

Python 的创始人为吉多·范罗苏姆(Guido van Rossum)

阅读全文 »

计算机组成原理

发表于 2017-06-22 | 分类于 Python 基础 | 热度: °C
字数统计: 850 | 阅读时长 ≈ 3

什么是计算机?

计算机(computer)俗称电脑,是现代一种用于高速计算的电子机器,可以进行数值计算,又可以进行逻辑判断,还具有存储记忆功能,且能够按照程序的运行,自动、高速处理数据。

计算机是20世纪最先进的科学技术发明之一。

阅读全文 »

Python 基础学习大纲

发表于 2017-06-21 | 分类于 Python 基础 | 热度: °C
字数统计: 560 | 阅读时长 ≈ 2

学习目标

1.掌握 Python 基础语法, 具备基础的编程能力;

2.建立起编程思维以及面向对象程序设计思想。

3.能够熟练使用 Python 技术完成较小程序的开发以及简单小游戏程序的开发。

阅读全文 »

Pycharm for Mac 快捷键

发表于 2017-06-20 | 分类于 Pycharm | 热度: °C
字数统计: 203 | 阅读时长 ≈ 1

Pycharm for Mac 快捷键

ctrl + r 运行

ctrl + d 调试

ctrl + shift + r 从编辑器运行上下文环境配置

ctrl + shift + d 从编辑器调试上下文环境配置

阅读全文 »

写作都需要的中文排版指南

发表于 2017-01-20 | 分类于 写作排版 | 热度: °C
字数统计: 1,077 | 阅读时长 ≈ 4

本文适用于所有编辑、作家、撰稿人、公众号作者、博主等,甚至适合所有人,因为人的一生难免避免不了写作。

阅读全文 »
1234
曹永林

曹永林

31 日志
16 分类
35 标签
RSS
GitHub Coding 简书
推荐阅读
  • NexT
  • GitChat
  • CSDN
  • SegmentFault
  • the5fire
  • 崔庆才
  • 廖雪峰
© 2018 曹永林
访问用户:
|
访问量:
|
博客全站共 52.5k 字
|

Hosted by Coding Pages