操作系统发展史
----------------------------------------------------------------------
Unix、mini-UNIX、Linux都是用C语言开发的
Unix作者是肯·汤普逊和丹尼斯·里奇,发布时间是1973年
mini-Unix作者是塔能鲍姆 发布时间1987年
Linux内核的作者是林纳斯,发布时间是1991年
Linux在服务器、嵌入式、桌面领域都有应用,主要在服务器领域
Linux 免费、稳定、高效、开源
文件系统区别
--------------------------------------------------------
Windows操作系统有可能会有多个盘符(C、D、E、F)
Linux操作系统没有多个盘符,只有一个根目录(/)
<常用linux选项>
----------------------
1> ls选项
2> mkdir选项
3> rm选项
4> cp选项
8> mv选项
-----------------------------------------
1. 重定向命令:>, >>
2. 查看或者合并文件内容:cat
3. 分屏显示:more
4. 管道:|
5. 建立链接文件:ln
6. 文本搜索:grep
7. 查找文件:find
8. 通配符
9. 打包及压缩:tar
10. 修改文件权限:chmod
11. 查看命令位置:which
12. 切换到管理员账号:sudo -s
13. 查看当前用户:whoami
14. 设置用户密码:passwd
15. 退出登录账户: exit
16. 查看所有的登录用户:who
17. 关机重启:reboot、shutdown
远程登录和远程拷贝
-----------------------
远程登录: ssh 用户名@IP
远程拷贝: scp -r 目标用户名@目标主机IP地址:/目标文件的绝对路径 /保存到本机的绝对/相对路径
1. scp可以实现Ubuntu远程连接和文件上传和下载
2. 在windows系统上远程连接Ubuntu需要安装OpenSSH软件
3. FileZilla工具通过SFTP协议实现文件上传和下载
软件安装与卸载
-------------------------------------------------------------------------
sudo apt-get update 更新源
sudo apt-get install package 安装包
sudo apt-get remove package 删除包
1.1 下载deb扩展名的安装包直接双击安装
1.2 通过apt-get工具安装,90%都是以这种方式安装
2.1 通过Ubuntu软件中心更改
2.2 手动更新sources.list文件并且需要执行sudo apt-get update 进行更新
编辑器vim
------------------------------
命令行模式
编辑模式
末行模式
进入插入模式:
进入命令模式:
ESC:从插入模式或末行模式进入命令模式
移动光标:
删除命令:
撤销命令:
重复命令:
文本行移动:
复制粘贴:
可视模式:
替换操作:
查找命令:
替换命令:
<替换示例> 把abc全部替换成123
<示例1> 末行模式下,将当前文件中的所有abc替换成123 :%s/abc/123/g
<示例2> 末行模式下,将第一行至第10行之间的abc替换成123 :1, 10s/abc/123/g
<符号说明> %表示整个文件, 1, 10表示1到10行范围内, s表示替换, g表示全局
cp: 拷贝
--------------------------------------------------------------------------
cp 文件名 路径: 把文件拷贝到指定路径
cp 路径/文件名 路径: 把指定路径的文件拷贝到指定路径
cp 文件名 路径/新的文件名 : 先把文件拷贝到指定目录然后再重命名
cp 文件夹 路径 -r: 拷贝文件夹 -r:以递归的方式把文件夹下的所有文件拷贝过去
命令的格式
--------------------------------------------------------------------------
命令名 选项 参数, 提示:有些命令选项可以放到参数的后面,但是:scp 选项必须要放到命令名的后面
ls 选项
-------------------------------------------------------------------
-l: 以列表的方式取显示
-a: 显示隐藏文件
-h: 显示文件大小的单位
-------------------------------------------------------------------
ll: 是ls -al的缩写, 显示隐藏文件并且以列表方式显示 , l --> ls
rm选项
---------------------------------------------------------------------
--r: 以递归的方式删除文件夹里面的所有内容
--i: 显示删除的时候提醒信息
--v: 显示删除后的描述信息
--d: 删除空目录
--f: 如果文件或者目录存在则删除,否则就不删除也不会报错
cp选项
---------------------------------------------------------------------
-i:拷贝文件的时候如果指定目录有该文件需要显示提醒信息
-v:显示拷贝文件的路径描述
-r:以递归的方式拷贝文件夹里面的所有内容
mkdir 选项
----------------------------------------------------------------------
-p: 把依赖文件夹提取创建好,比如: mkdir 123/456/789 -p
mv选项
------------------------------------
-i:移动文件显示提醒信息
-v:显示移动后的路径描述
<杂>
---------------------------------
重定向(>,>>): 在终端显示的内容信息重写规定方向,保存到指定文件里面,以后查看数据是文件查看就可以了
总结: ls, cat, tree都可以使用重定向
gedit:文本编辑工具,可读可编辑
cat: 内容在终端显示,不能进行编辑,提示:适合查看小型文件,大型文件使用分屏方式显示(more)
文件合并: cat 1.txt 2.txt > 3.txt
管道: 可以理解成是一个容器,存放在终端显示的内容
总结: ls /bin | more , cat, tree, ls都是可以结合管道使用完成分屏显示的
---------------------------
f: 表示下一页
空格: 表示下一页
回车: 表示下一行
b: 表示上一页
q: 退出
链接
--------------------------------------------------------------------
软连接:可以理解成快捷方式,把原文件删除掉通过软链接无法打文件的数据, 提示:创建软连接不会对硬链接数加1
硬连接: 同一个数据有多个文件名在使用,某个文件删除掉,还可以通过其它文件名访问这个文件的数据, 提示:创建硬链接硬链接数会加1
提示:如果创建的软链接没有和原文件在同一个目录里面,那么需要使用绝对路径创建软连接
grep: 根据指定的内容在文件中进行查找
------------------------------------------------------
grep "a" 8.txt : 根据指定内容在文件中进行查找
-n:行号, -i:忽略大小写 -v: 取反
总结:
grep支持的正则表达式有 ^ $ . 和 [ ]
find:在指定目录查找对应的文件
----------------------------------------------------------------------
find . -name ".txt": 在当前目录查找后缀是.txt的文件, -name根据文件名查找
find . -perm 666: 在当前目录查找文件权限是可读可写的, -perm根据权限查找
总结:
find支持的通配符有 ? [ ]
通配符
--------------------------------------------------------
通配符包括 ? _ 和 [ ] , 主要用来进行模糊查询. 其中 [ ] 表示匹配任意列举中的一个字符.
ls支持的通配符有 _ ? 和 [ ]
-----------------------------------------------------------------------
打包 tar -cvf test.tar *.txt, -c: 表示要打包, -v:显示文件打到包里面 -f:表示文档名称,提示-f必须放到所有选项的后面
解包 tar -xvf test.tar , -x:表示解包
-----------------------------------------------------------------
打包及压缩合并的命令:tar -zcvf test.tar.gz *.txt
解压缩及解包合并的命令:tar -zxvf test.tar.gz ->得到对应的文件
指定解压缩的路径 tar -zxvf test.tar.gz -C ../BBB, -C:指定解压缩后的路径
-----------------------------------------------------------------
tar -jcvf test.bz2 *.txt -> test.bz2
tar -jxvf test.bz2 -> 得到对应的文件
-C: 指定解压缩的路径: tar -jxvf test.bz2 -C ../BBB
------------------------------------------------------------------
zip test *.txt -> test.zip ,提示:压缩包的后缀不需要指定默认是.zip
unzip test.zip -> 得到是压缩包里面的文件
unzip -d ./123 test.zip -> 解压到指定路径 , -d:表示解压的路径
chmod:修改权限
----------------------------------------------------------------------
-r(4):可读 -w(2):可写 -x(1):可执行
u:当前用户 g: 同组用户 o: 其它用户 a:所有用户
+:添加权限, -:撤销权限 , = : 赋值权限
chmod 000 1.txt : 全部没有权限
chmod a=- 1.txt chmod a= 1.txt : 全部没有权限
chmod 777 1.txt chmod a=rwx 1.txt : 都权限,可读可读可执行
chmod 664 1.txt chmod u=rw,g=rw,o=r 1.txt 设置不同用户不同权限
<杂>
-------------------------------------------------------------------------
cp选项(补充说明): -a表示保留文件原有权限,-a包含-r,也就是使用-a也可以拷贝文件夹
which : 查看命令的路径
sudo -s: 切换到管理员账号
passwd:修改密码
who :当前那些用户登陆
whoami:当前电脑登陆的用户是谁
exit:退出
ssh: 远程登陆 44.1 ssh : 可以远程登陆服务端可以通过vim修改文件
scp: 远程拷贝
----------------------------------------------------------------------
scp 1.txt [email protected]:/home/python/Desktop ,把本地文件拷贝到服务器端
scp -r test [email protected]:/home/python/Desktop,把本地文件夹拷贝到服务器端
scp [email protected]:/home/python/Desktop/1.txt . , 把服务端的文件拷贝的本地
scp -r [email protected]:/home/python/Desktop/test . , 把服务端的文件夹拷贝的本地
apt list 支持的安装包
vim的使用
------------------------------------------------------------------------
命令模式, 编辑模式, 末行模式, 命令模式是编辑模式和末行模式的中转站
vim常用命令
----------------------------------------------------------
1. i: 进入编辑模式
2. yy: 复制光标所在行 复制多行: 数字+yy
.3. p: 粘贴, 粘贴多次: 数字+p
4. dd(删除、剪切), 剪切或者删除多行:数字+dd
5. V: 选中多行
6. 上下左右: k:上, j:下, l:右 ,h:左 等同于方向键
7. x: 从前往后删除一个字母
8. X: 从后往前删除一个字母
9. u: 撤销
10. shift + >: 往右缩进
11. shift + <: 往左缩进
12. .:重复上一次操作
13. G: 回到最后一行
14. gg: 回到第一行 1G
15. 18G: 回到指定行
16. shift + 4:回到行末
17. shift + 6:回到行首
18. 搜索: :/1 n:查看下一个搜索到的内容, N:查看上一个搜索到的内容
19. 替换: :%s/1/2/g %: 整个文件, s:替换 g:全局
20. ctr+f: 下一页
21. ctr+b: 上一页
22. :wq, :x: 保存退出
Linux命令(ping, ifconfig)
--------------------------------
查看或配置网卡信息:ifconfig
测试远程主机连通性:ping
<小结>
1.ping 127.0.0.1 检查本地网卡是否正常
2.ping www.baidu.com 检查是否能上公网
3.ping 当前局域网的ip地址 检查是否在同一个局域网内
端口
------------------------------------------
端口是传输数据的通道
端口号是标识端口的一个编号
在linux系统中,端口号有65536(2的16次方)个
<知名端口号(Well Known Ports)>
知名端口号: 系统程序使用的端口号
知名端口号是众所周知的端口号,范围从0到1023
80端口分配给HTTP服务
21端口分配给FTP服务
<动态端口号(Dynamic Ports)>
动态端口号: 程序员开发应用程序使用端口号, 之所以称为动态端口,是因为它一般不固定分配某种服务,而是动态分配。
动态端口的范围是从1024到65535
当这个程序关闭时,同时也就释放了所占用的端口号
<怎样查看端口号>
用 netstat -an 查看程序所使用的端口号
lsof -i [tcp/udp]:2425 查看端口号对应的应用程序
提示: 如果端口号找不到应用程序,使用管理员权限加上sudo
<总结>
网络通信的流程是先通过ip地址找到网络中的设备,再通过端口号来找到对应的端口,
然后通过端口把数据传输给对应的应用程序