python体验和励志公式
在Linux终端下直接输入python会显示电脑中python的版本,同时进入python的编辑环境
代码演示
# 每天进步0.01,坚持365天后你就会有一个质的飞跃
1.01 ** 365 # **表示指数运算,运算的结果为37.8
# 三天打鱼两天晒网的最终结果就是一事无成
1.01 ** 3 * 0.99 ** 2 # 结果为1.0098
格式:command [-option] [parameter]
command:命令名
option:选项,对命令进行控制
parameter:传给命令的参数
[]:表示可以省略
举例:rm -rf yfx(表示强制删除yfx目录以及该目录下的所有子目录)
两种方式查看命令帮助信息
command --help
man command:进入帮助界面后的快捷操作
q:退出帮助界面
回车键:多输出一行帮助信息
空格键/f:向后切换一页
b:向前切换一页
各参数及其含义
隐藏文件的作用
一般以.开头的隐藏文件都是一些软件的配置文件
各种通配符及其含义
*:表示任意个数的字符(注意以下都只在当前目录下匹配(子目录无法匹配),最多可显示一层子目录)
ls 1*:表示列出以1开头的所有文件和文件夹
ls 1*.txt:表示列出以1开头的且后缀名为txt所有文件
ls *1:表示列出所有以1结尾的文件和文件夹
ls *1.txt:表示列出所有以1结尾且后缀名为txt的文件
注意:一般是文件夹的后面会显示一个冒号,如果该文件下有文件会在换行后显示,但是只能显示一层子文件,同时查询也无法查询子文件中所包含的内容(即若子文件包含查询的内容但子文件在当前目录下的第一层文件不包含查询的内容,则子文件也不会显示)
ls *1* :表示列出所有包含1的文件和文件夹
ls *1*.txt :表示列出所有包含1且后缀为txt的文件
?:代表任意一个字符,但只能表示一个字符
[]:表示可以匹配字符组中的任意一个
ls [123]abc.txt:表示列出所有以abc结尾且后缀为txt同时以123中任意一个开头的文件(注意,[]的位置可以在开头、中间和结尾,但是只能取其中的一个值,即[]只占一位,不能同时取123)
ls [1-3]abc.txt:表示列出所有以abc结尾且后缀为txt同时以123中任意一个开头的文件(注意,这里的-表示为范围)
cat:将文件中的内容一次性全部显示出来,通常用于查看内容比较小的文件
more:将文件中的内容通过分屏的方式显示出来,通常用于查看内容比较多的文件,对于显示的内容可以通过b,回车,空格,f,q等来完成查看等相关操作
grep:查找指定文件内容(grep 查找文件内容 查找文件名)
-n:显示指定文件内容所在的行号(这里-b不能表示显示(不包括空行)指定文件内容所在的行号,-n显示的内容行号包括空行)(grep 123 -n 222.txt)
-v:显示不包含指定文件内容所在的行号
-i:表示忽略大小写进行文件内容的查找(grep abc -ni 222.txt)
说明:当查找的内容有空格时,要在查找的内容前面加上引号(grep “hello world” -ni 222.txt)
grep允许对文本文件进行模式查找(例如搜寻以a开头的行),所谓模式查找就是正则表达式
a$:查找以a结尾的行(grep -n a$ 123.txt)
^a:查找以a开头的行(grep -n ^a 123.txt)
echo和重定向
echo:显示参数指定的文字,通常和重定向联合使用
echo hello world:终端会显示hello world
重定向>和>>:用于将指定的文字覆盖或追加到指定的目录中,其中>会以覆盖原文件内容的形式追加到指定文件中,>>会以追加到原文件的形式追加到指定文件中,不会覆盖原文件的内容
echo hello world >> a.txt:将hello world追加到a.txt文件的末尾,不会覆盖之前a.txt文件中的内容(如果文件不存在会自动出创建该文件)
echo hello world > a.txt:将hello world添加到a.txt文件中,会覆盖之前a.txt文件中的内容
ls -lh >> q.txt:将ls -lh命令的结果追加到q.txt文件的末尾(Linux中通常将命令的结果追加到指定文件中)
管道|
说明:Linux允许将一个命令的输出通过管道作为另一个命令的输入
举例:
ls -lh ~ | more:将ls -lh ~的结果进行分屏输出
ls -lh ~ | grep -i do:在ls -lh ~的结果中不分大小写的查找含有do的行
用ping命令来测试本地网卡是否正确
ping 172.0.0.1:过程分析,本机向网卡发送一个固定字节的信息,网卡在接受到信息后回向本机回复一个固定字节的信息,最终终端会显示是否收到网卡发送的接受信息以及接受信息所用的时间,时间越短说明网速越好(ping的工作原理皆是如此)
使用格式:ssh [-p port] user@remote
mac电脑远程连接ubuntu
ssh -p 22 [email protected]
连接问题处理:connect to localhost port 22: Connection refused
查询网址:https://blog.csdn.net/c1481118216/article/details/52385056
如果远程连接mac电脑时出现连接问题:connect to localhost port 22: Connection refused,则可能是mac的远程登陆端口没有打开:系统偏好设置->共享->远程登陆勾选->允许访问选择所有用户
当远程操作其它电脑时出现权限不够的问题时,可以在命令行前面加上sudo就可以获得一定的权限(表示以超级用户的权限执行)
在客户端中为服务器创建别名,方便客户端快速连接服务器
在客户端的.ssh文件夹下新建一个文件config,在文件中输入以下信息
Host 服务器别名
HostName 服务器的IP地址
User 服务器名称
Port 22
现在在客户端就可以直接输入ssh 服务器别名直接远程登陆服务器,就不需要再输入其它信息
对文件/用户的权限包括:
权限 | 缩写 | 数字代号 |
---|---|---|
读 | r | 4 |
写 | w | 2 |
执行 | x | 1 |
组:为了方便对用户权限的设置,设定组的概念,对组进行相关权限的设置,然后将需要设定相关权限的用户划分到这些组中来设定用户的权限
drwxr-xr-x 2 dedicationyu dedicationyu 4096 1月 20 18:09 1
说明:
drwxr-xr-x:是对应的读、写、执行权限;一共10个字母,将这10个字母分割成4份;第一个d表示对应的文件是文件夹还是文件;第二个rwx表示该文件所属的用户(dedicationyu)所拥有的权限(可读、可写、可执行,有时s也表示可执行);第三个r-x表示该文件所属的组的所拥有的权限(可读、不可写、可执行);第四个r-x表示除了所在用户和所在组之外的其它用户的权限(可读、不可写、可执行);2表示硬链接数,通俗来说就是有多少种方式可以访问到当前的目录/文件(一般文件的访问方式都是一种,而目录访问方式的多少取决于子目录的多少)第一个dedication表示文件所属用户的名称;第二个 dedication表示文件所处的组的名称;4096表示文件的大小;1月20日18:09分表示文件的修改时间;1是文件名
一般命令格式(无法指定特定的用户相关的权限):
chmod +/-rwx 文件名/目录名
chmod -w 1.txt:表示禁止文件的可写权限
chmod +x 1.txt:表示增加文件的可执行权限
说明:一般文件如果有可执行权限那么文件一般在终端中的颜色是绿色的,用./1.txt来执行当前文件(一般向代码就可以执行);对于目录而言(文件夹),如果没有可执行权限就无法针对该目录使用任何命令,如果没有可读权限就无法查看该目录下所包含的内容,如果没有可写命令就无法在该目录下创建新文件
常用命令格式:
chmod -R 755 文件名/目录名递归修改文件权限(r:4,w:2,x:1)
这里的755分别代表拥有者用户、拥有者所在组、其它用户的权限
格式
命令 | 作用 |
---|---|
groupadd 组名 | 添加组 |
groupdel 组名 | 删除组 |
cat /etc/group | 确认组信息 |
chgrp -R 组名 文件名/目录名 | 递归修改文件/目录所属的组 |
说明:对组的操作,因为在/etc目录下,不是用户的家目录下,所有对于组的相关操作都要在超级用户权限下进行,其中在ubuntu中用shift可以切换中英文
相关命令及作用(这些命令都需要超级用户的权限)
命令 | 作用 | 说明 |
---|---|---|
useradd -m -g 组 新建用户名 | 添加用户 | -m:自动建立用户家目录(如果没有使用-m那么在用户界面的目录下就没有这个用户的目录);-g:指定用户所在的组,否则用户会建立一个和用户同名的组 |
passwd 用户名 | 设置用户密码 | 如果是普通用户,直接用passwd可以修改自己的账户密码 |
userdel -r 用户名 | 删除用户 | -r 选项会自动删除用户家目录 |
cat /etc/passwd |grep 用户名 | 确认用户信息 | 新建用户后,用户信息回保存在/etc/passwd文件中 |
说明:再创建新用户是必须创建密码,因为通过其它客户端远程连接时必须要输入密码才能进行远程连接,如果不设置密码就无法被其它用户远程连接
GID:组代号
UID:用户代号
id 用户名:查看用户的相关代号
id devyfx
uid=1001(devyfx)gid=1001(dev)组=1001(dev)
说明:uid的信息是保存在/etc/passwd的文件中的,而gid的信息是保存在/etc/group中
cat -n /etc/passwd | grep devyfx
43 devyfx:x:1001:1001::/home/devyfx:/bin/sh
说明:43表示行号;devyfx表示用户名;x表示有密码且密码是加密的;1001表示用户代号;1001表示组代号;两个冒号中间的内容表示用户的拓展名如果没有显示则表示默认使用用户名;/home/devyfx表示用户所在的家目录;/bin/sh表示登陆使用的shell(终端),Ubuntu默认使用的是dash
cat -n /etc/group | grep dev
67 dev:x:1001
说明:分别表示组名,组加密,组代号
ls :会直接显示当前所在用户的组代号和用户代号等信息(即@后面的用户)
cat -n /etc/group | grep dedicationyu
adm:x:4:syslog,dedicationyu:表示dedicationyu这个用户具有adm这个管理员组的权限
cardom:x:4:decicationyu:表示dedicatioyu这个用户可以访问系统的光驱
sudo:表示dedicationyu表示dedicationyu这个用户可以使用sudo这个超级用户的权限来维护和管理系统
who:查看当前所有登陆的用户列表
dedicationyu :0 2020-01-20 10:41(:0)
说明:2020-01-20 10:41表示登陆到账号dedicationyu的时间(只要电脑不重启,时间就定格不变),括号中的内容为0表示dedicatioinyu这个账号是从当前电脑登陆的,如果不是从当前电脑登陆的就会显示一个IP地址
whoami:查看当前登陆用户的账户名
命令 | 作用 |
---|---|
date | 查看系统时间 |
cal | calendar的缩写,查看日历,-y选项可以查看一年的日历 |
命令 | 作用 |
---|---|
df -h | disk free 显示磁盘剩余空间 |
du -h [目录名] | disk usage显示目录下的文件大小 |
说明:-h这个选项可以用人性化的方式显示文件大小
相关命令介绍
命令 | 作用 |
---|---|
ps aux | process status 查看进程的详细状况 |
top | 动态显示运行中的进程并且排序 |
kill [-9] 进程代号 | 终止指定代号的进程,-9表示强行终止 |
ps命令介绍
只输入ps默认只会显示当前通过终端启动的应用程序
ps选项说明:
选项 | 含义 |
---|---|
a | 显示终端上的所有进程,包括其它用户的进程 |
u | 显示进程的详细状态 |
x | 显示没有控制终端的进程(不是通过终端启动的程序也会显示,即显示所有进程) |
说明:ps的这些选项都不需要加-,直接输入选项即可
相关参数说明:
PID:表示进程的代号
%CPU:表示cpu占有率
%MEN:表示内存占有率
top命令介绍
kill命令介绍
说明:find命令功能非常强大,常用于在特定的目录下查找符合条件的文件
格式:
命令 | 作用 |
---|---|
find [路径] -name “*.py” | 查找指定路径下拓展名为.py的文件,包括子目录(意思就是可以递归查找) |
格式说明:
格式:
命令 | 作用 |
---|---|
ln -s 被链接的源文件 链接文件 | 建立文件的软链接,用通俗的话讲就是Windows下的快捷方式,用软链接的方式快速打开软链接指向的文件 |
格式说明:
说明:在不通过的操作系统中,打包压缩的方式是不同的,在Windows中常用rar,在Linux中常用tar.gz,在Mac中常用zip
tar命令只负责打包不负责压缩:可以一系列文件打包成为一个大文件同时也可以将一个大文件恢复成一系列文件
打包和解包
# 打包文件
tar -cvf 打包文件.tar 被打包的文件/路径……
# 解包文件
tar -xvf 打包文件.tar
相关选项说明
选项 | 说明 |
---|---|
c | 生成档案文件,创建打包文件 |
x | 解开档案文件 |
v | 列出归档解档的详细过程,显示进度 |
f | 指定档案文件名称,f后面一定是.tar文件,所以必须放在选项最后 |
打包和解包演练
# 打包
tar -cvf py.tar 01.py 02.py 03.py
# 解包
tar -xvf py.tar
gzip压缩和解压缩
用gzip压缩的tar包其拓展名一般用.tar.gz,表示用tar对文件进行一个打包然后用gzip来压缩
在tar命令的选项中有一个选项-z可以调用gzip,从而方便实现压缩和解压缩功能,而不需要在终端下写入两个命令(先打包在压缩)
命令格式
# 压缩文件
tar -zcvf 打包文件.tar.gz 被压缩到文件/路径……
# 解压缩文件
tar -zxvf 打包文件.tar.gz
# 解压缩到指定路径
tar -zxvf 打包文件.tar.gz -C 目标路径
# 要解压缩到指定路径时,该路径必须存在
通配符可以适用于压缩和解压缩
bzip2压缩和解压缩
bzip2压缩到后缀名为***.tar.bz2
bzip2压缩文件的格式基本和gzip一样,只有一个地方不同,就是在tar的选项中有一个选项j是可以调用 bzip2的
命令格式
# 压缩文件
tar -jcvf 打包文件.tar.bz2 被压缩到文件/路径……
# 解压缩文件
tar -jxvf 打包文件.tar.bz2
# 解压缩到指定路径
tar -jxvf 打包文件.tar.bz2 -C 目标路径
# 要解压缩到指定路径时,该路径必须存在
职责以及切换方式
末行模式下的快捷键:
命令 | 功能 |
---|---|
w | 保存 |
q | 退出,如果没有保存则不允许退出 |
wq | 保存并退出 |
q! | 不保存退出 |
x | 保存并退出 |
重复次数:在命令模式下,先输入一个数字再跟上一个命令可以让该命令重复执行指定的次数
方向移动
命令 | 功能 |
---|---|
h | 向左 |
j | 向下 |
k | 向上 |
l | 向右 |
行内移动:
命令 | 功能 |
---|---|
w | 向后移动一个单词 |
b | 向前移动一个单词 |
0 | 行首(是真正意义上的行首) |
^ | 行首,第一个不是空白字符的位置(如果行首是空白字符则不会到行首) |
$ | 行尾 |
行数移动
命令 | 功能 |
---|---|
gg | 文件顶部 |
G | 文件末尾 |
数字gg | 移动到数字对应行数 |
数字G | 移动到数字对应行数 |
:数字(末行模式) | 移动到数字对应行数 |
屏幕移动
命令 | 功能 |
---|---|
ctrl+b | 向上翻页 |
ctrl+f | 向下翻页 |
H | 屏幕顶部 |
M | 屏幕中间 |
L | 屏幕底部 |
段落切换:python中用空行来区分不同的段落(即连续在一起的属于一个段落)
命令 | 功能 |
---|---|
{ | 切换到上一个段落 |
} | 切换到下一个段落 |
括号切换
命令 | 功能 |
---|---|
% | 括号匹配及切换(切换到下一个括号,但只能在一行内切换) |
标记:在开发时如果需要某一行代码需要稍后处理,可以使用m增加一个标记,后面使用’来快速回到标记处,同名的标记后写的会覆盖之前的标记
命令 | 功能 |
---|---|
mx | x可以是任意一个字母,用来标记行 |
'x | 快速定位到标记的行 |
在vi中要选择文本,需要先用visual命令切换到可视模式,按住esc可以返回到命令行模式
vi提供三种可视模式:
命令 | 模式 | 功能 |
---|---|---|
v | 可视模式 | 从光标位置开始按照正常模式选择文本 |
V | 可视行模式 | 选中光标经过到完整行 |
Ctrl + v | 可视块模式 | 垂直方向选中文本 |
可视模式下可以和移动命令联合使用,例如:ggVG能够选中全部文本
撤销和恢复撤销
命令 | 功能 |
---|---|
u | 撤销上一次命令 |
Ctrl + r | 恢复撤销的命令 |
删除文本
命令 | 功能 |
---|---|
x | 删除光标所在字符或者选中文字(数字+x可以删除从光标开始的之后数字个字符) |
d(移动命令) | 删除移动命令对应的内容 |
dd | 删除光标所在的行,可以ndd复制多行 |
D | 删除至行尾 |
说明:d,x这两个删除命令实际上是一个剪切操作,删除后使用p就可以粘贴删除的内容
常用结合命令的使用
命令
命令 | 功能 |
---|---|
y(移动命令) | 复制 |
yy | 复制一行,nyy可以复制多行 |
p | 粘贴 |
在其它软件中复制到的内容如果想粘贴到vi中不能使用p命令,必须进入编辑模式下右击选择粘贴
命令
命令 | 功能 | 工作模式 |
---|---|---|
r | 替换当前字符 | 命令模式 |
R | 替换当前光标后的字符 | 替换模式 |
命令
命令 | 功能 |
---|---|
>> | 向右增加缩进 |
<< | 向左增加缩进 |
. | 重复上次命令 |
在可视行模式下缩进只需要按一个>或者<就可以了
常规查找
命令 | 功能 |
---|---|
/str | 查找str,查找到指定内容后,使用n可以查找下一个出现的位置,使用N可以查找上一个出现的位置(会从文件开始出开始查找) |
单词快速匹配
命令 | 功能 |
---|---|
* | 向后查找当前光标所在单词 |
# | 向前查找当前光标所在单词 |
全局替换
可视区域范围的替换:/旧文本/新文本/g(选定可视化区域后执行替换前面会有<>,系统会默认输出不用理会在后面接着写替换的命令即可)
确认替换(替换前会向用户确认是否替换,推荐使用这种替换方式)::%s/旧文本/新文本/gc
命令 | 功能 |
---|---|
y | 替换 |
n | 不替换 |
a | 替换所有 |
q | 退出替换 |
l | 最后一个,并把光标移动到行首 |
^E | 向下滚屏 |
^Y | 向上滚屏 |
命令 | 功能 |
---|---|
i | 在当前字符前插入文本 |
I | 在行首插入文本 |
a | 在当前字符后添加文本 |
A | 在行末添加文本 |
o | 在当前行后面插入一空行 |
O | 在当前行前面插入一空行 |
末行命令拓展
命令 | 功能 |
---|---|
:e 文件名 | 会切换到指定的文件(当前文件必须保存否则不允许切换到指定文件),如果使用e .会打开内置的文件浏览器,浏览当前目录下的文件,然后在该目录下切换到指定的文件 |
:n 文件名 | 新建文件 |
:w 文件名 | 另存为,但是仍然要编辑当前文件,并不会切换文件,在实际开发中可以实时进行阶段性备份方便后期进行对比 |
分屏命令
命令 | 功能 |
---|---|
:sp[文件名] | 横向增加分屏,如果不知道切换到哪个文件可以使用:sp .进入到内置浏览器进行查看 |
:vsp[文件名] | 纵向增加分屏 |
切换分屏窗口(分屏窗口都是基于ctrl+W,也就是说以下所有命令执行前都要按ctrl+W)
命令 | 功能 |
---|---|
w | 切换到下一个窗口 |
r | 互换窗口 |
c | 关闭当前窗口,但是不能关闭最后一个窗口 |
q | 退出当前窗口,如果是最后一个窗口,则关闭vi |
o | 关闭其它窗口 |