学习视频链接
Python基础之Linux基础入门(Ubuntu)_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV17x411972F
乌班图安装 SSH 教程
如何在Ubuntu上开启SSH服务_枫★曦的博客-CSDN博客_ubuntu如何开启ssh服务https://blog.csdn.net/md521/article/details/52597398
目录
一、Linux基本知识
1.1 Linux内核版和发行版本
1、内核版本
不同硬件,例如AMD CPU和Intel CPU 执行同一个命令可能使用不同的函数,Linux内核可以兼容各种硬件,让不同硬件上执行同一个命令的不同函数统一成一个函数(系统函数)。
2、发行版本
通过调用Linux内核提供的系统函数,制作桌面环境、办公套件、媒体播放器、数据库等应用软件。
1.2 Linux文件目录结构
1、单用户操作系统和多用户操作系统
(1) 单用户操作系统:指一台计算机在同一时间只能由一个用户使用,一个用户独自享用系统的全部硬件和软件资源(Windows XP之前都是单用户操作系统)
(2) 多用户操作系统:指一台计算机在同一时间可以由多个用户使用,多个用户共同享用系统的全部硬件和软件资源(Unix和Linux的设计初衷就是多用户操作系统)
2、Windows下的文件系统
3、Linux下的文件系统
1.3 常用Linux命令的基本使用
1、命令
序号 | 命令 | 对应英文 | 作用 |
01 | ls | list | 查看当前文件夹下的内容 |
02 | pwd | print wrok directory | 查看当前所在文件夹 |
03 | cd [目录名] | change directory | 切换文件夹 |
04 | touch [文件名] | touch | 如果文件不存在,新建文件 |
05 | mkdir [目录名] | make directory | 创建目录 |
06 | rm [文件名] | remove | 删除指定的文件名 |
07 | clear | clear | 清屏 |
2、小技巧
ctrl + shift + = 放大终端窗口的字体显示
ctrl + - 缩小终端窗口的字体显示
二、Linux终端命令
2.1 Linux终端命令格式
1、基本使用
command [-options] [parameter]
command:命令名,相应功能的英文单词或单词的缩写
[-options]:选项,可用来对命令进行控制,也可以省略
Parameter:传给命令的参数,可以是零个、一个或者多个
2、查询命令帮助信息
(1) command --help
(2) man command
2.2 文件和目录常用命令
查看目录内容 | ls |
切换目录 | cd |
创建和删除操作 | touch、rm、mkdir |
拷贝和移动文件 | cp、mv |
查看文件内容 | cat、more、grep |
其他 | echo、重定向 > 和 >>、管道 | |
2.3 ls命令说明
1、隐藏文件的创建
touch .note.txt
2、命令选项
参数 | 含义 |
-a | 显示指定目录下所有子目录与文件,包括隐藏文件 |
-l | 以列表方式显示文件的详细信息 |
-h | 配合-l以人性化的方式显示文件大小 |
3、ls通配符的使用
通配符 | 含义 |
* | 代表任意个数个字符 |
? | 代表任意一个字符,至少1个 |
[] | 表示可以匹配字符组中的任意一个 |
[abc] | 匹配a、b、c 中的任意一个 |
[a-f] | 匹配从a到f范围内的任意一个 |
案例:
2.4 rm命令说明
选项 | 含义 |
-f | 强制删除,忽略不存在的文件,无需提示 |
-r | 递归地删除目录下的内容,删除文件夹 时必须加此参数 |
# rm [-rf] 文件名
rm -rf test.c
2.5 拷贝和移动文件
序号 | 命令 | 对应英文 | 作用 |
01 | tree [目录名] | tree | 以树状图列出文件目录结构 |
02 | cp 原文件 目标文件 | copy | 复制文件或者目录 |
03 | mv 原文件 | move | 移动文件或者目录 / 文件或者目录重命名 |
1、tree
2、cp 原文件 目标文件
cp test.txt ./test/test.txt
3、mv 原文件 目标文件
(1) 重命名
(2) 移动文件夹
因为终端命令不能撤回,所以用下面的方式比较安全
2.6 查看文件内容
序号 | 命令 | 对应英文 | 作用 |
01 | cat 文件名 | concatenate | 查看文件内容、创建文件夹、文件合并、追加文件内容等功能 |
02 | more 文件名 | more | 分屏显示文件内容 |
03 | grep 搜索文本 文件名 | grep | 搜索文本文件内容 |
使用more的操作键盘:
操作键 | 功能 |
空格键 | 显示手册页的下一屏 |
Enter键 | 一次滚动手册页的一行 |
b | 回滚一屏 |
f | 前滚一屏 |
q | 退出 |
/word | 搜索word字符串 |
cat
选项 | 含义 |
-b | 对非空输出行编号 |
-n | 对输出的所有行编号 |
grep
图形界面Ctrl + F 能查询关键词
选项 | 含义 |
-n | 显示匹配行及行号 |
-v | 显示不包含匹配文本的所有行(相当于求反) |
-i | 忽略大小写 |
grep允许对文本文件进行模式查找,所谓模式查找,又被称为正则表达式,常用的两种模式查找如下:
选项 | 含义 |
^a | 行首,搜索以a开头的行 |
ke$ | 行尾,搜索以ke结束的行 |
2.7 其他命令
> 覆盖 >> 追加
2、管道 |
(1) Linux允许将一个命令的输出可以通过管道做为另一一个命令的输入
(2) 可以理解现实生活中的管子,管子的一头塞东西进去,另-头取出来,这里T的左右分为两端, 左端塞东西(写),右端取东西(读)
三、远程管理命令
3.1 关机 / 重启
关机:shutdown 时间
重启:shutdown -r 时间
shutdown:默认一分钟后关闭
shutdown -c:取消关机
shutdown -r now:立刻重启
shutdown 20:25今天的这个时间会关闭
shutdown +10:十分钟后关闭
3.2 查看或配置网卡信息
1、网卡:
网卡是一个专门负责网络通讯的硬件设备
IP地址是设置在网卡上的地址信息
2、IP地址:
每台联网的电脑上都有IP地址,是保证电脑之间正常通讯的重要设置
注意:每台电脑的IP地址不能相同,否则会出现IP地址冲突,并且没有办法正常通讯(家用网络都是大内网 或者 动态IP)
3、查看或配置网卡信息
ifconfig 查看/配置计算机当前的网卡配置信息
ping ip 检测到目标ip地址的连接是否正常
下面有两个网卡
第一个网卡的地址是172.16.140.138
第二个网卡的地址是127.0.0.1用于测试网卡是否正常工作
发送64bit的文件到指定ip的机器上,指定机器返回一个64bit的包,一次来回用时0.716ms
查看本地网卡工作是否正常:
3.3 远程登录和复制文件
1、SSH介绍
通过SSH客户端我们可以连接到运行了SSH服务器的远程机器上
SSH客户端是一种使用Secure Shell (SSH) 协议连接到远程计算机的软件程序
SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议
利用SSH协议可以有效防止远程管理过程中的信息泄露
通过SSH协议| 可以对所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗
SSH的另一项优点是传输的数据可以是经过压缩的,所以可以加快传输的速度
2、域名和端口号
(1) 域名
ip地址的别名,方便记忆
例如:www.baidu.com
(2) 端口号
通过端口号可以找到计算机上运行的应用程序
常见服务器端口号:
3、SSH客户端的简单使用
(1) ssh [-p port] user@remote
user 远程机器上的用户名
remote 远程机器的地址,可以是IP/域名,或者是后面会提到的别名
port是SSH Server监听的端口,如果不指定,就为默认值22
(2) 注意:
ssh这个终端命令只能在Linux 或者UNIX系统下使用
如果在Windows系统中,可以安装PuTTY或者XShell客户端软件即可
3.4 SCP
1、简介:
scp就是secure copy,是一个在Linux下用来进行远程拷贝文件的命令
它的地址格式与ssh基本相同,需要注意的是,在指定端口时用的是大写的-P而不是小写的
3.5 SSH高级
提示:有关SSH配置信息都保存在用户家目录下的.ssh目录下
连接了一次其他电脑就在.SSH文件夹下保存信息了,下次访问更加便捷
1、免密码登录
设置步骤:
第一步:先输入这个命令:
生成了两个加密文件
第二步:把id_rsa.pub发送到服务器端的SSH
2、配置别名
每次都输入ssh -p port user@remote,时间久了会觉得很麻烦,特别是当user,remote和port 都得输入,而且还不好记忆。
而配置别名可以让我们进一步偷懶,譬如用:ssh mac来替代上面这么一长串,那么就在
~/. ssh/config里面追加以下内容:
四、用户权限相关命令
4.1 用户和权限的基本概念
1、基本概念
(1) 用户是Linux系统工作中重要的一环,用户管理包括用户与组管理
(2) 在Linux系统中,不论是由本机或是远程登录系统,每个系统都必须拥有一个账号,并且对于不同的系统资源拥有不同的使用权限
(3) 在Linux中,可以指定每一个用户针对不同的文件或者目录的不同权限
(4) 对文件/目录的权限包括:
序号 | 权限 | 英文 | 缩写 | 数字代号 |
01 | 读 | read | r | 4 |
02 | 写 | write | w | 2 |
03 | 执行 | excute | x | 1 |
2、组
在实际应用中,可以预先针对组设置好权限,然后将不同的用户添加到对应的组中,从而不用依次为每一个用户设置权限
3、ls -l 拓展
-:文件 d:文件夹 r:可读 w:可写 x:可执行
第一组权限对应 文件和目录的拥有者,第二组权限对应 文件和目录拥有者所在的组,第三组权限对应 其他用户
4、chmod简单使用
4.2 超级用户
Linux系统中的root 账号通常用于系统的维护和管理,对操作系统的所有资源具有所有访问权限
在大多数版本的Linux中,都不推荐直接使用root账号登录系统
在Linux安装的过程中,系统会自动创建一个用户账号,而这个默认的用户就称为“标准用户”
1、sudo
su是substitute user的缩写,表示使用另个用户的身份
sudo命令用来以其他身份来执行命令,预设的身份为root
用户使用sudo时,必须先输入密码,之后有5分钟的有效期限,超过期限则必须重新输入密码
若其未经授权的用户企图使用sudo,则会发出警告邮件给管理员
2、组管理终端命令
提示:创建组/删除组 的终端命令都需要通过sudo执行
序号 | 命令 | 作用 |
01 | groupadd组名 | 添加组 |
02 | groupdel组名 | 删除组 |
03 | cat/etc/grou | 确认组信息 |
04 | chgrp组名 文件/目标名 | 修改文件/目录的所属组 |
提示:
组信息保存在/etc/group文件中
/etc目录是专门用来保存系统配置信息的目录
3、实战项目
(1) 要求
在python用户的桌面文件夹下创建python学习目录
新建dev组
将python学习目录的组修改为dev
(2) 实战代码
4.3 用户管理终端命令
提示:创建用户/删除用户/修改其他用户密码的终端命令都需要通过sudo执行
1、创建、查看和删除用户:
用户信息保存在下列文件夹中:
忘记使用 -m 解决方法:删除用户,重新创建
2、查看用户信息
序号 | 命令 | 作用 |
01 | id[用户名] | 查看用户 UID 和 GID 信息 |
02 | who | 查看当前所有登录的用户列表 |
03 | whoami | 查看当前登录用户的账户名 |
(1) ID
直接输入 id 查询正在使用的用户的信息:
定义一个用户,把用户放到不同组里面,有不同的权限:
(2) who 查看当前所有登录的用户列表 whoami 查看当前登录用户的账户名
(:0) 表示这个用户是用这台电脑登录的
此时用 xshell 远程连接 ubunu,就增加了一个用户,该用户使用后面的 IP 地址访问的乌班图
3、usermod 修改用户权限
(1) 可以用来设置用户的注组 / 附加组和登录 Shell,命令格式如下:
# 修改用户的主组(passwd 中的 GID)
usermod -g 组 用户名
# 修改用户的附加组
usermod -G 组 用户名
# 修改用户登录 Shell
usermod -s /bin/bash
(2) 主组和附加组
主组:通常在新建用户时指定,在 etc/passwd 的第 4 列 GID 对应的组(如果不使用 -g 系统就会默认建立一个跟用户同名的组,设为用户的主组)
附加组:在 etc/group 中最后一列表示该组的用户列表,用于指定用户的附加权限
(3) 案例1:
下面可以看到 python 用户具有 sudo 等权限
可以给用户添加附加组
(4) shell介绍
上面 linux 命令行称为 shell,python为当前登录的用户名,ubuntu为当前电脑的名字
乌班图的 shell 目录如下:
xshell 的 shell 目录如下:
两个目录不太一样,原因在于 xshell 登录的用户的 shell 终端命令为 dash,现在修改这个用户的登录 shell 为 bash
修改之后重新登录的效果如下:
接着查看配置文件:cat /etc/passwd
4、which查看命令所在位置
(1) 两个指令的作用
/etc/passwd 是用于保存用户信息的文件
/usr/bin/passwd 是用于修改用户密码的程序
(2) which 演示
(3) bin 和 sbin
在Linux中,绝大多数可执行文件都是保存在/bin、 /sbin、 /usr/bin、 /usr/sbin
/bin (binary) 是二进制执行文件目录,主要用于具体应用
/sbin ( system binary ) 是系统管理员专用的二进制代码存放目录,主要用于系统管理
/usr/bin ( user commands for applications ) 后期安装的一些软件
/usr/sbin ( super user commands for applications ) 超级用户的一些管理程序
5、su切换用户
序号 | 命令 | 作用 | 说明 |
01 | su - 用户名 | 切换用户,并且切换目录 | - 可以切换到用户家目录,否则保持位置不变 |
02 | exit | 退出当前登录账户 |
su 不接用户名,可以切换到 root,但是不推荐使用,因为不安全
exit 示意图如下:
4.4 chmod 拓展
1、命令格式:
# 递归修改文件权限
chmod -R 755 文件名|目录名
2、chmod 在设置权限时,可以简单地使用三个数字分别对应拥有者/组和其他用户权限
# 直接修改文件|目录的 读|写|执行 权限,但是不能精确到 拥有者|组|其他
chmod +/-rwx 文件名|目录名
常见数字组合有(u 表示用户 / g 表示组/ 0 表示其他)
777 ===> u = rwx, g = rwx, o = rwx
755 ===> u = rwx, g = rx, o = rx
644 ===> u = rw, g = r, o = r
3、chmod演练目标
(1) 将 01.py 的权限修改为 u = rwx, g = rx, o = r
(2) 将123.txt 的权限修改为 u = rw, g = r, o = -
(3) 将 test 目录以及目录下的所有文件权限修改为 u = rwx, g = nwx, o = rx
五、系统信息相关命令
本节内容主要是为了方便通过远穗终端维护服务器时,查看服务器上当前系统日期和时间 / 磁盘空间占用情况 / 程序执行情况
本小结学习的终端命令基本都是查询命令,通过这些命令对系统资源的使用情况有个了解
5.1 时间和日期
序号 | 命令 | 作用 |
01 | date | 查看系统时间 |
02 | cat | calendar 查看日历,-y 选项可以查看一年的日历 |
5.2 磁盘信息
序列 | 命令 | 作用 |
01 | df -h | disk free 显示磁盘剩余空间 |
02 | du -h [目录名] | disk usage 显示目录下的文件大小 |
选项说明 -h 以人性化的方式显示文件大小
5.3 进程信息
所谓进程,通俗地说就是当前正在执行的一个程序
序号 | 命令 | 作用 |
01 | ps aux | process status 查看进程的详细状况 |
02 | top | 动态显示运行中的进程并且排序 |
03 | kill [-9] 进程代号 | 终止指定代号的进程,-9 表示强行终止 |
1、ps
选项 | 含义 |
a | 显示终端上的所有进程,包括其他用户的进程 |
u | 显示进程的详细状况 |
x | 显示没有控制终端的进程 |
2、top
按 q 退出
3、kill
kill -9 9160 强行关闭
六、其他命令
6.1 查找文件
1、find 命令功能非常强大,通常用来在特定的目录下搜索符合条件的文件
序号 | 命令 | 作用 |
01 | find [路径] -name "*:py" | 查找指定路径下扩展名是.py的文件,包括子目录 |
2、演练
6.2 软链接
序号 | 命令 | 作用 |
01 | ln -s 被链接的源文件 链接文件 | 简历文件的软链接,用通俗的方式讲类似于Windows下的快捷方式 |
1、注意:
(1) 没有 -s 选项建立的是一个硬链接文件
两个文件占用相同大小的硬盘空间,工作中几乎不会建立文件的硬链接
(2) 源文件要使用绝对路径,不能使用相对路径,这样可以方便移动链接文件后,仍然能够正常使用
2、案例
如果移动文件,相对路径可能会找不到源文件
先移动:mv 01* demo
软链接的大小和路径有关
使用这个命令可以查看软链接地址
3、硬链接
没有使用 -s 选项就创建硬链接
硬链接的源文件被删除了,任然可以使用,不变红。软链接变红,打不开该链接了/
4、分析
在Linux中,文件名和文件的数据是分开存储的
6.3 打包压缩
打包压缩是由常工作中备份文件的一种方式
在不同操作系统中,常用的打包压缩方式是不同的
Windows 常用 rar
Mac 常用 zip
Linux 常用 tar.gz
1、打包 / 解包
tar是Linux中最常用的备份工具,此籲令可以把一系列文件打包到一个大文件中,也可以把一个打
包的大文件恢复成一系列文件
tar的命令格式如下:
# 打包文件
tar -cvf 打包文件.tar 被打包的文件/路径...
# 解包文件
tar -xvf 打包文件.tar
选项 | 含义 |
c | 生成档案文件,创建打包文件 |
x | 解开档案文件 |
v | 列出归档解档的详细过程,显示进度 |
f | 指定档案文件名称,f后面一定是.tar文件,所以必须放选项最后 |
打包:
解包:
2、压缩/解压缩
tar 只负责打包文件,但不压缩
用 gzip 压缩 tar 打包后的文件,其扩展名一般用 xxx.tar.gz
# 压缩文件
tar -zcvf 打包文件.tar.gz 被压缩的文件/路径
# 解压缩文件
tar -zcvf 打包文件.tar.gz
# 解压缩到指定路径
tar -zxvf 打包文件.tar.gz -C 目标路径
压缩:
解压:
3、bzip2
(1) tar 与 bzip2 命令结合可以使用实现文件打包和压缩(用法和 gzip 一样)
tar 只负责打包文件,但不压缩
用 bzip2 压缩 tar 打包后的文件,其扩展名一般用 xxx.har.bz2
(2) 在 tar 命令中有一个选项 -j 可以调用 bzip2, 从而可以方便的实现压缩和解压缩的功能
(3) 命令格式如下:
# 压缩文件
tar -jcvf 打包文件.tar.bz2 被压缩的文件/路径...
# 解压缩文件
tar -jxvf 打包文件.tar.bz2
解压到指定文件夹中:
6.4 软件安装
1、通过apt安装/卸载软件
apt 是 Advanced Packaging Tool,是 Linux 下的一款安装包管理工具
可以在终端中方便的安装/卸载/更新软件包
# 1、安装软件
sudo apt install 软件包
# 2、卸载软件
sudo apt remove 软件名
# 3、更新已安装的包
sudo apt upgrade
2、配置软件源
如果希望在 ubuntu 中安装软件,更加快速,可以通过设置镜像源,选择一个访问网速更快的服务器,来提供软件下载/安装服务
提示:更换服务器之后,需要一个相对比较长时间的更新过程,需要耐心等待。 更新完成后,再安装软件都会从新设置的服务器下载软件了
所谓镜像源,就是所有服务器的内容是相同的(镜像),但是根据所在位置不同, 国内
服务器通常速度会更快一些!
设置下载源参考