Linux常用命令2

注意:虚拟机中无法联网时候记得去设置里面修改虚拟机的网卡设置,将桥接模式改为NAT模式即可.

网络-UDP

网络-TCP

多任务-进程

多任务-线程

多任务-协程

正则表达式

网络协议HTTP

案例-web服务器

MySQL服务器

Python语法高级-装饰器 工作中常用

Python语法高级专题

案例-minweb框架

1.>操作系统(OS):管理硬件和控制软件的程序.是直接运行在裸机上面的程序.

主要作用是向下控制硬件和向上支持软件的运行.

2.>不同应用领域的操作系统:

桌面操作系统
服务器操作系统
嵌入式操作系统(比如电视盒子,路由器的系统)
移动设备操作系统(iOS,Android)

软件分类:
系统软件,操作系统,数据库


3.>解释器也是一个程序,也是需要在操作系统上面来运行的.


4.>Linux系统发展史:
73年,使用C语言开发了Unix.最开始的Unix是使用汇编语言开发的.
91年,Linux在赫尔辛基大学期间开发了Linux系统.
94年,Linux发布了Linux 1.0系统.

5.>内核:是一个操作系统的核心,是基于硬件的第一层软件扩充,提供操作系统

最基本的功能,是操作系统工作的基础.

负责管理系统的进程,内存,设备驱动程序,文件和网络系统,决定着系统的
性能和稳定性.

6.>内核版:只有核心功能.

7.>发行版:提前装了应用软件的内核版.Ubuntu就是一个发行版.

8.>虚拟机:只通过软件模拟的具有完成硬件系统功能的.运行在一个完全隔离环境中的

完整计算机系统.


Ubuntu:ls命令下的蓝色标记的是目录,也就是一个文件夹.

Linux 没有盘符概念,只有一个根目录/.

所有的目录都挂载在根目录下面,都是它的子目录.

/home:家目录,是当前用户的数据.

~表示当前用户的主目录.(家目录)

/home/用户名:当前用户的家目录.

到达当前用户的主目录:

1.>cd ../.. : 相对路径1

2.>cd ~ : 相对路径2

3.>cd : 相对路径3

4.>cd /home/python : 绝对路径的方式

终端快捷键:
命令行字体放大:Ctrl shift +

字体减小:Ctrl -

清屏:Ctrl + l -->实际上的效果是将光标跳转到最后一行,之前的反转到

前面的那一屏了.

主要是以后工作的时候这么使用,不能不学.

二八原则:常用的一定是极少的.

带着目的去敲.

命令简介:

ls:list的缩写,列举当前目录下所有的文件信息(文件和目录)

ls -la:查看当前目录下所有文件的详细信息

pwd:print work directory的简写,查看当前所在目录.

cd 目录名称:change directory,切换工作目录.

切换到用户主目录:cd ~或者cd

cd 空格 ..:返回上一级目录

cd 空格 .:当前目录,当前路径

cd -:进入上次的目录

touch 文件名称:新建文件

mkdir 目录名称:创建目录

rm 文件名:remove 删除文件,默认无法删除目录

rm -r 目录名:删除目录.

cp 源目录/源文件 指定位置:copy的简写,将指定文件复制到指定的位置.

mv 源目录/源文件 指定位置:move的简写,将指定文件移动到指定位置.移动,剪切.

mv 原文件名 新文件名: 对文件重命名

tree:查看指定目录的目录结构.

clear:清屏


补充: ll等价于 ls -la

Linux对大小写敏感.

绝对路径:以根目录 / 出发的就是绝对路径.
相对路径:相对当前路径出发的就是相对路径.

命令自动补齐: Tab键 能够结合命令使用时候自动补齐.


Linux 终端命令格式:

command [-options] [parameter]
做啥(动作) 怎么做(方式) 对谁做(操作的对象)
command:命令名
[-options]:选项,可用来对命令进行控制,也可以省略
[parameter]:传给命令的参数,可以是0个,一个,或者多个.

[]:代表可选,意思就是可要可不要.

command --help:查看相应命令的使用说明.

man:manual的缩写,名片手册.
man 命令:比如 man ls 就是介绍ls命令的使用.

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

Linux命令选项:

Linux文件或者目录名称最长可以有256个字符.

.代表当前目录

..代表上一级目录

以.开头的文件是隐藏文件,需要使用-a选项才能显示.

ls是list的简写,列出目录下的内容,类似于DOS下的dir命令.

ls命令选项:

-a:all的意思:查看所有文件. 包括<隐藏文件 就是以.开头的文件>,显示指定目录下的隐藏文件.

-l:list的意思:以列表形式查看文件详细信息.

-al:将以上两个选项合并.

-h:以人类更好理解的方式展示文件大小.要和l合用.配合-l显示文件的大小单位.

如果没有强调过选项的顺序,那么选项的顺序可以随意.

默认查看的都是当前目录.

第一个字母 - 代表普通文件,如果是d代表目录,也就是文件夹.

linux中所有的东西都是文件.一切皆文件.everything is file

mkdir选项:

-p: <自动创建子目录所需的父目录> 例如:mkdir -p 1/2/3: 直接创建多级目录.1目录下2目录下3. p的意思是parent.也可以这么写:mkdir 1/2/3 -p

rm选项:

-r:递归删除目录<及其子目录>.先要删除文件夹里的文件,才能去删除文件.
-i:以进行交互式方式进行.就是每次操作都需要进行确认等等.i是interface交互的意思.
-f:忽略所有提示,直接删除文件.如果文件不存在 ,不提示. f表示file是文件的意思.
-d:删除空目录. d表示directory目录的意思

rm -rf /:千万不能试这个,会把系统根目录下面的所有文件都删除,不会有任何提示.

一般建议使用 rm -ir 文件夹名


cp选项:

1.>拷贝文件:cp 源目录/文件名 目标目录
2.>拷贝目录:cp -r 源目录/文件名 目标目录

-a:复制目录,保留文件原有属性
-i:交互式,会提示是否执行.默认会直接覆盖.
-r:递归复制.会将源目录下的所有文件和子目录全部递归的复制到目的目录中.
-v:显示拷贝之后的路径描述.visable:显示源文件和目的文件的对应关系.

mv选项:

剪切文件:
mv 源目录/文件名 目标目录
剪切目录:
mv 源目录/文件夹名 目标目录

重命名:
mv 旧文件名 新文件名
mv 旧文件夹名 新文件夹名
剪切并改名:
mv 源路径/源名称 目的路径/新名称

扩展:
cp 复制并改名:
cp 源路径/源名称 目的路径/新名称


xmind:Tab键->创建子目录 Enter键->创建同级目录.

预习:

Linux命令选项的使用:

1.>重定向命令:>

理解:就是将本来往终端输出的内容重新定向,输出到文件中.多用于输出内容较多的场景.
这样就不会在终端显示输出内容了.

Linux中允许将命令执行结果重定向到一个文件,这样就可以将本该显示在终端上的内容保存到指定的文件中.

比如:ls > test.txt(test.txt如果不存在,则创建,存在 就覆盖其内容)

注意: > :覆盖输出重定向 会覆盖掉原来的内容,只保留最后一次的内容.
>> :追加输出重定向 则会追加到文件的尾部.(就是不覆盖,继续在上一个文件内容的尾部继续添加)

示例:ls / >> 1.txt:将根目录下的文件信息追加输出重定向到 1.txt文件中

2.>查看或者合并文本内容:cat 查看的是文本文件. 注意: 二进制文件和其他类型的文件无法查看.
cat + 文件名:查看文件 默认在终端输出
cat + 文件1 + 文件2 + 文件3 + ...:将多个文件合在一起输出

cat:本意是英文合并的意思.


合并文件:
cat + 文件1 +文件2 + ... > 文件3:将文件1和文件2等等的内容合并到文件3中.
>表示:先清空,然后添加.
>>表示:直接添加,不去清空.

cat 能够将文件全部显示到终端.但是不能保证屏幕能装得下.直接全部显示完

3.>分屏显示: more + 文件名
查看内容时,在信息过长无法在一屏上显示时,会出现快速滚屏,使得用户无法看清文件的内容,此时使用more命令,每次只显示一页,按下空格键可以显示下一页,按下q退出显示,按下h键可以获取帮助.

空格:下一页
q:退出
h:获取帮助

4.>管道:|
管道:一个命令的输出可以通过管道作为另一个命令的输入.
其实就是一个命令输入后不等结果输出就直接送给下一个命令当做输入继续执行.

管道我们可以理解为显示生活中的管子,管子的一头塞东西进去,另一头取出来,这里|的左右分为两端,左端塞进东西,右端取出东西.

| 起到了连接符的作用.

more 一般结合|使用

示例: ls- l | more: 将ls -l 命令的结果当做more的输入<就是将ls -l的结果分屏显示>

示例:获取当前目录下的文件夹(目录)

ls -al | grep -n '^d' 以d开头的就是文件夹(目录)


5.>建立链接文件:ln link的简写,链接的意思.

Linux链接文件类似于windows下的快捷方式.
链接文件分为软链接和硬链接.
软链接:软链接不占用磁盘空间,源文件删除则软链接失效.
硬链接:硬链接只能链接普通文件,不能链接目录.(目录就是文件夹)

软链接:ln -s 源文件 链接文件(目标文件)<软链接文件>
修改之后也会影响源文件,只是存的一个符号,并不存具体数据.类似引用.
特点:
1.可以通过目标文件修改源文件
2.软链接文件大小和源文件大小没有关系,一般都是很小xx字节.
3.在软链接文件中不保存文件数据,只保存文件相关的位置信息.
4.一旦源文件删除,软链接文件就失效.
5.可以链接目录,可以跨越磁盘分区.


硬链接:ln 源文件 目标文件 源文件的别名
特点:
1.可以通过硬链接文件修改源文件数据
2.硬链接文件大小和源文件大小一致.
3.一旦源文件删除, 硬链接文件仍可以使用
4.硬链接就是源文件的一个别名
5.不可以跨磁盘分区
6.备份

ls -l 中有一项数据就是显示 数据的别名数量<硬链接数> 3就是

drwxrwxr-x 3 python python 4096 8月 31 08:11 1

验证:
ls -i 文件 查看一个文件的 iNode 编号
通过查看iNode编号查看硬链接和源文件是同一个文件,只是名字不同而已.
<不同的文件iNode编号不同,如果编号相同说明是同一份文件数据>

格式:

软链接:ln -s 源文件 链接文件(目标文件)<软链接文件> 记着:软链接又叫符号链接 软链接 s:符号的意思,symbol的第一个字母

硬链接:ln 源文件 链接文件

如果 没有 -s 选项代表建立一个硬链接文件,两个文件占用相同大小的硬盘空间,即使删除了源文件,链接文件还是存在,所以-s选项是更常见的形式.

注意:如果软链接文件和源文件不在同一个目录,源文件要使用绝对路径,不能使用相对路径.

删除软连接就好比删除了快捷方式,不会影响源文件.

对硬链接进行修改等操作,源文件也会发生相应的改变.

可以使用gedit通过软链接来修改源文件.

删除源文件后,再打开软链接后,看不到数据.

但是通过硬链接仍然可以看到源文件里面的数据.相当于硬链接是源文件的备份.

6.>文本搜索:grep(全局 正则 表达式 输出 四个单词的简写) 知道一部分线索,进行搜索.

根据一定的线索在文件中搜索数据

格式: grep 选项 线索 文件名

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

grep一般格式为:

grep [-选项] '需要搜索的内容' 文件名

例如:grep 'a' 1.txt: 就是在1.txt文件中查找a这个字符.

常用选项说明:

-v:显示不包含匹配文本的所有行(相当于求反)
-n:显示匹配行及行号 number的第一个字母
-i:忽略大小写 ignore的第一个字母

示例:grep -ni 'asd' file.txt

grep搜索的内容字符串可以是正则表达式.

正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符以及这些特定字符的组合,组成一个规则字符串,这个规则字符串用来表达对字符串的一种过滤逻辑.


grep常用的正则表达式:

^a:行首,搜索以a开头的行,例如:grep -n '^a' 1.txt
k$:行尾,搜索以k结尾的行,例如:grep -n 'k$' 1.txt
[]:匹配其中任意一个字符
.:匹配除 之外的人一个任意字符
*:任意多次

注意事项:正则和grep一起使用

grep '^www.*cn$' 1.txt
以上的意思是匹配以www.开头,cn结束的行, 中间的数据是任意个 任意字符.在正则中*表示任意多次.


[Ss]igna[Ll]:匹配[]里一系列字符中的一个,搜索匹配单词signal,signaL,
或者Signal,或者SignaL---> grep -n '[Ss]igna[Ll]' 1.txt

. 匹配一个非换行符的字符,匹配e和e之间有任意一个字符,可以匹配eee,eae,eve,但是不匹配ee,eaae ---> 比如:grep -n 'e.e' 1.txt

7.>查找文件:find 根据文件名查找 就是找文件

根据文件特征:比如文件名-name,文件大小 -size 等在当前文件系统中搜索文件

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

格式:find 路径 选项 特征

示例:搜索当前目录及子目录中 所有的py程序

find . -name '*.py'
find . -name '[A-Z]*.py'

查找当前目录及其子目录下文件大小大于20字节的:

find . -size +20
查找当前目录及其子目录下文件大小大于20K字节的:
find . -size +20k

常用用法:
name:表示文件名

find ./ -name test.sh: 查找当前目录下所有名称为test.sh的文件
find ./ -name '*.sh':查找当前目录下所有后缀名为.sh的文件
find ./ -name "[A-Z]*":查找当前目录下所有以大写字母开头的文件

注意:命令之间的连接记得有一个空格.

8.>通配符:

通配符是一种特殊字符,用来模糊搜索文件.

使用特殊字符匹配一些字符.

注意:
1.> *:代表0个或者多个任意字符

ls -a *.txt

2.> ?:代表任意1个字符

ls ?.txt

3.>[列举的字符]:代表的任意一个字符

ls [135].txt

-号连接范围:[0-9]表示0到9中的任意一个字符
[00-99]:这样的表示是错误的,只能是单个字符

示例:
ls [1,A].txt:表示1.txt或者A.txt
ls [1A].txt:表示1.txt或者A.txt
ls [0-9].txt:表示0-9开头的.txt文件

[]里面只取一个字符

例如: find .-name *.txt
ls 1?3.txt

小结: ls,find 命令一般会结合通配符使用.

9.> 打包及压缩:tar 归档 备份

计算机的数据经常需要备份,tar是Unix/Linux 中最常用的备份工具,此命令可以把一系列文件归档到一个大文件中,也可以把档案文件解开开始恢复数据.

其实就类似于window下面的很多文件放到一个文件夹里面,然后进行压缩.需要进行查看里面文件内容的时候再进行解压操作.

使用格式: tar [选项] 打包之后的文件名 文件名1,文件名2,文件名3...

常用参数:

-c:生成档案文件,创建打包文件 create的第一个字母
-v:列出归档解档的详细过程 visable:可视
-f:指定档案文件名称,f后面一定是.tar文件,所以必须放到选项最后.
-x:解开档案文件
-z:压缩

打包并不会压缩,得加z才行

行业默认顺序是-zcvf

注意:除了f需要放在参数的最后,其他参数的顺序任意.

示例:tar -zcvf test.tar.gz *.txt:

打包并且gzip压缩 当前目录下所有的文本文件

注意:
tar选项的-可以不写
f必须在最后,因为f后面必须连接归档的文件名称.

tar -cvf test.tar *:意思就是将当前目录下的所有文件归档到test.tar文件中.

10.>打包格式:gz压缩格式

tar这个命令并没有压缩功能,它只是一个打包的命令,但是在tar命令中增加一个选项
-z 可以调用gzip实现了一个压缩的功能,实行一个先打包后压缩的过程.

压缩用法: tar -zcvf 压缩包包名 文件1,文件2,文件3...

-z:指定压缩包的格式为:file.tar.gz

tar -zcvf test.tar.gz *:意思就是把当前路径下的所有文件以及文件夹打包并且压缩到 test.tar.gz文件中.

解包:
tar -xvf test.tar
解压缩和解包:
tar -zxvf test.tar.gz

解压用法: tar -zxvf 压缩包包名

-z:指定压缩包的格式为:file.tar.gz

tar -zxvf test.tar.gz: 意思就是将test.tar.gz文件解压并解包到当前路径下

解压到指定路径:-C (大写字母C)

tar -zxvf test.tar.gz -C Linux:解压到当前路径下的Linux目录下.

11.>bz2 压缩格式:

压缩用法:tar -jcvf 压缩包包名 文件1,文件2,文件3...
解压用法:tar -jxvf 压缩包包名

bzip2打包,压缩:
tar jcvf test.tar.bz2 *.txt

bzip2解压缩,解包:
tar jxvf test.tar.bz2

12.>zip压缩格式:

通过zip压缩文件的目标文件不需要指定扩展名,默认扩展名为zip

压缩文件:zip 目标文件(没有扩展名) 源文件

解压文件:unzip -d 解压后的目标目录文件 压缩文件

示例: unzip -d .. myzip.zip

13.>修改文件权限:chmod

chmod 修改文件权限有两种使用格式:字母法和数字法.

-rw-rw-r--
drwxrwxr-x

-:普通文件
d:目录

user u group g other o 包含前面三种的统称 all a
文件所属用户权限 同一组用户组的权限 其他
rwx rwx r-x


1.>字母法: chmod u/g/o/a +/-/= rwx 文件

字母含义:

u: user 表示该文件的所有者
g: group 表示与该 文件的所有者属于同一组(group)者,即用户组
o: other 表示其他以外的人.
a: all 表示以上这三者都是.

+: 增加权限
-: 撤销权限
=: 设置权限

r: read 表示可读取,对于一个目录,如果没有r权限,那么就意味着不能通过ls查看这个目录的内容
w: write 表示可以写入,对于一个目录,如果没有w权限,那么就意味着不能在目录下面创建新的文件.
x: execute 表示可执行,对于一个目录,如果没有x权限那么就意味着不能通过cd命令进入这个目录.

例如:

chmod u+x test.txt 就是给文件拥有者添加执行的权限
chmod g-w test.txt 就是给文件拥有者的同组者撤销写入权限
chmod o+x test.txt 就是给文件拥有者和同组者以外的其他人增加可执行权限

如果需要同时进行设定拥有者.同组者,以及其他人的权限,示例如下:

chmod u=rw,g=x,o=r test.txt
chmod u-w,g+x,o+r test.txt

意思就是给 test.txt 文件拥有者设置可读,可写权限,给同组者设置可执行,其他人设置可读权限.

2.>数字法:'rwx' 这些权限也可以使用数字来代替 工作的时候使用这个.

r: 读取权限,数字代号为4
w: 写入权限,数字代号为2
x: 执行权限,数字代号为1
-: 没有权限,数字代号为0

例如执行:chmod u=rwx,g=rx,o=r filename 就等价于 chmod u=7,g=5,o=4 filename,但是实际上写法应该是:chmod 751 filename即可.

751是8进制数字.

chmod 751 file:
文件所有者:读,写,执行权限
同组用户:读,执行权限
其他用户:执行权限

输入history 可以查看输入过的历史命令.

注意: 如果想递归所有目录加上相同权限,需要加上参数 -R .
比如:chmod 777 test -R 就是递归test目录下所有文件增加777权限.

14.>查看命令位置:which

就是查找指定命令相应的位置.

注意:
which cd 是查看不了命令所在的目录,原因是:

1.Linux命令是分为内置命令和外部命令
1.>内置命令是在系统启动时就载入内存的,执行效率高
2.>外部命令是系统的软件功能,只有在需要的时候才会载入
2.cd 属于内置命令.

15.>切换到管理员账号:sudo -s

whoami:查看当前用户

sudo -s: 切换到管理员账号root

注意: $ 符号表示普通用户, # 表示root管理员账户.

一般不需要使用管理员账户,需要使用管理员账户权限的时候在命令前面加上sudo.

16.>设置用户密码:passwd

在Linux中,超级用户可以使用passwd命令为普通用户设置或修改密码.

17.>退出登录账户:exit

如果是图形界面,退出当前终端
如果使用ssh远程登录,退出登录账户
如果是切换后的登录账户,退出并返回上一个登录账户.

18.>查看所有的登录账户:who

who命令用于查看当前所有登录系统的用户信息.

19.> 关机重启:reboot,shutdown

reboot: 重新启动操作系统
shutdown -r now: 重新启动操作系统,会有提示给其他登录这台机器的用户
shutdown -h now: 立刻关机,now相当于时间为0的状态
shutdown -h 20:25 : 系统在今天 20:25 会关机
shutdown -h +10: 系统再过10分钟后自动关机.

20.>远程登录:ssh 是一个服务,连接两台电脑之间的通信.专门为了电脑之间的远程登录会话而定制的. Secure Shell的简写.

客户端和服务器需要安装ssh服务

Mac 和 Ubuntu 已经自带 ssh客户端服务
window 需要手动安装ssh客户端服务

如果需要在Linux Ubuntu上面安装 sudo apt-get install openssh-server

注意:
虚拟机使用桥接方式
链接服务器需要知道ip地址
终端输入ifconfig
192.168.14.121

格式:ssh 用户名@ip地址
例如:ssh python@192.168.14.121

2.>使用ssh软件连接远程服务器:
xshell putty secureCRT
工作中常用这个方式,
MAC:brew install putty

21.>传输文件:scp 基于网络服务跨机器传输文件.

格式:scp -r 目标用户名@目标主机ip地址:/目标文件的绝对路径 /保存到本机的位置(绝对,相对路径均可)
注意:r的意思是递归的意思,recursion:英文递归的意思

示例:
scp -r itcast@192.168.1.100:/home/itcast/QQ_dir/ ./mytest/python

注意:在后续操作中输入'yes'的时候,只能输入yes而不能输入Y,或者y.

22.>软件安装和卸载:

1.>在线方式:sudo apt-get install /remove:安装/卸载
记得设置软件安装源.
sudo apt-get update
sudo apt-get install sl/openssh-server/tree
sudo apt-get remove sl/tree

2.>离线安装:deb
格式:sudo dpkg -i xxx.deb

dpkg:深度安装的包管理器


23.>vim 是 vi 的改进版:
三种工作模式

1.>命令模式 Esc 默认刚刚进来是命令模式,只能敲命令. 命令模式下输入“/字符串”,例如“/Section 3”。进行全文搜索

2.>编辑模式 i

3.>末行模式 :

命令模式进入编辑模式:
1.>i 光标前插入
2.>a 光标后插入
3.>I 行首插入
4.>A 行尾插入
5.>O 光标行的上一行插入
6.>o 光标行的下一行插入

末行模式操作:
:w ---> 保存
:q 或者 :q! ---> 退出或者强制退出
:wq ---> 保存并退出
:x ---> 等价于 :wq ,也是保存并退出

24.vim 高级用法

h:左
j:下
k:上
l:右

gg:第一行
G:最后一行

:27 直接跳转到27行.

x:删除光标后的一个字符
X:光标前一个字符

dd:剪切光标所在行

p:粘贴

d0:删除光标前所有
dw:删除光标开始位置的字

u:撤销

ctrl + r: 反撤销

.:重复上次命令

>>:文本右移
<<:文本左移

yy:复制多行

yy + 数字 + p: 复制指定行数并粘贴

v:可视模式

V:可视行模式

r:替换

R:替换光标行内容

n:下一个

N:上一个

%:全文查找