Linux相关知识点及远程管理常用命令。
小技巧
Ctrl
+Shift
+=
:放大终端窗口的字体显示Ctrl
+-
:缩小终端窗口的字体显示Ctrl
+Alt
+T
:打开终端
一、终端命令格式:
command [-options] [parameter]
command:命令名,相应功能的英文单词或单词的缩写
[-options]:选项,可用来对命令进行控制,也可以省略,选项可以联合一起使用
parameter:传给命令的参数,可以是0个、一个或者多个
[]:表示可有可无
-:-后面是选项
二、终端实用技巧
1>自动补全
在敲出 文件/目录/命令
的前几个字母之后,按下 tab
键
(1)如果输入的没有歧义,系统会自动补全
(2)如果还存在其他 文件/目录/命令
,再按一下 tab
键,系统会提示可能存在的命令
2>曾今使用过的命令
1、按 上/下
光标键可以在曾经使用过的命令之间来回切换
2、如果想要退出选择,并且不想执行当前选中的命令,可以按 Ctrl + C
(1)Linux`文件`或者`目录`名称最长可以有`256`个字符
(2)以`.`开头的文件为隐藏文件,需要用`-a`参数才能显示,一般配合`ls`使用
(3)`.`代表当前目录
(4)`..`代表上一级目录
三、ls通配符的使用
通配符 | 含义 |
---|---|
* | 代表任意个数字符 |
? | 代表任意一个字符,至少一个 |
[] | 表示可以匹配字符组中的任意一个 |
[abc] | 匹配a、b、c中的任意一个 |
[a-f] | 匹配从a到f范围内的任意一个 |
四、相对路径和绝对路径
- 相对路径在输入路径时,最前面不是
/
或者~
,表示相对当前目录所在的目录的位置- 绝对路径在输入路径时,最前面是
/
或者~
,表示从根目录/家目录开始的具体目录的位置
五、管道 |
- Linux允许将一个命令的输出可以通过管道做为另一个命令的输入
- 可以理解现实生活中的管子,管子的一头塞东西进去,另一头取出来,这里
|
的左右分为两端,左端塞东西(写),右端取东西(读)
管道分为匿名管道(pipe)和命名管道(named pipe)。
在进程中创建的管道是匿名管道,进程退出后管道会被销毁,匿名管道只能用于有亲缘关系的进程间通信。
命名管道被具象化为一个文件,在进程中可使用操作文件的方式向内存中写入或从内存中读出数据,命名管道与进程的联系较弱,相当于一个读写内存的接口,进程退出后,命名管道依然存在。
匿名管道的使用流程如下:
1、在进程中创建匿名管道 pipe()函数
2、在关闭进程中不使用的管道端口 close()函数
3、在待通信的进程中分别对管道的读、写端口进行操作 read()/write()函数
4、关闭管道 close*()函数
常用的管道命令有:more
分屏显示内容grep
在命令执行的结果的基础上查询指定的文本
例如:
ls -lha | more
ls -lha | grep Do
六、命令
clear
clear:清屏
echo
echo:在终端中显示参数指定的文字,通常和重定向联合使用
重定向>和>>
- Linux允许将命令执行结果重定向到一个文件
- 将本应显示在终端上的内容 输出/追加到指定文件中
>
表示输出,会覆盖文件原有的内容>>
表示追加,会将内容追加到已有的文件的末尾
七、远程管理常用命令
1、关机/重启
序号 | 命令 | 对应英文 | 作用 |
---|---|---|---|
01 | shutdown 选项 时间 | shutdown | 关机/重新启动 |
shutdown
命令可以安全 关闭或重新启动系统
选项 | 含义 |
---|---|
-r | 重新启动 |
> - **不指定选项和参数**,默认表示1分钟之后**关闭电脑**
> - 远程维护服务器时,最好不要关闭系统,而应该重新启动系统
- 常用命令示例
//重新启动操作系统,其中now表示现在
shutdown -r now
//立即关机,其中now表示现在
shutdown now
//系统在今天的20:25会关机
shutdown 20:25
//系统再过十分钟后自动关机
shutdown +10
//取消之前指定的关机计划
shutdown -c
2、查看或配置网卡信息
序号 | 命令 | 对应英文 | 作用 |
---|---|---|---|
01 | ifconfig | configure a network interface | 查看/配置计算机当前的网卡配置信息 |
02 | ping ip地址 | ping | 检测到目标ip地址的链接是否正常 |
2.1 网卡 和 IP 地址
网卡
- 网卡是一个专门负责网络通讯的硬件设备
- IP 地址是设置在网卡上的地址信息
我们可以把 电脑 比作 电话,网卡 相当于 SIM 卡,IP 地址 相当于 电话号码
IP 地址
- 每台联网的电脑上都有 IP 地址,是保证电脑之间正常通讯的重要设置
注意:每台电脑的 IP 地址不能相同,否则会出现 IP 地址冲突,并且没有办法正常通讯
2.2 ifconfig
ifconfig
可以查看/配置计算机当前的网卡配置信息
# 查看网卡配置信息
$ ifconfig
# 查看网卡对应的 IP 地址
$ ifconfig | grep inet
提示:一台计算机中有可能会有一个 物理网卡 和 多个虚拟网卡,在 Linux 中物理网卡的名字通常以
ensXX
表示
127.0.0.1
被称为 本地回环/环回地址,一般用来测试本机网卡是否正常
2.3 ping
# 检测到目标主机是否连接正常
$ ping IP地址
# 检测本地网卡工作正常
$ ping 127.0.0.1
ping
一般用于检测当前计算机到目标计算机之间的网络 是否通畅,数值越大,速度越慢
ping
的工作原理与潜水艇的声纳相似,ping
这个命令就是取自 声纳的声音- 网络管理员之间也常将
ping
用作动词 —— ping 一下计算机X,看他是否开着
原理:网络上的机器都有 唯一确定的 IP 地址,我们给目标 IP 地址发送一个数据包,对方就要返回一个数据包,根据返回的数据包以及时间,我们可以确定目标主机的存在
提示:在 Linux 中,想要终止一个终端程序的执行,绝大多数都可以使用
CTRL + C
3、远程登录和复制文件
序号 | 命令 | 对应英文 | 作用 |
---|---|---|---|
01 | ssh 用户名@ip | secure shell | 关机/重新启动 |
02 | scp 用户名@ip:文件名或路径 用户名@ip:文件名或路径 | secure copy | 远程复制文件 |
3.1 ssh
基础
在 Linux 中 SSH 是 非常常用 的工具,通过 SSH 客户端 我们可以连接到运行了 SSH 服务器 的远程机器上
- SSH 客户端是一种使用
Secure Shell(SSH)
协议连接到远程计算机的软件程序 SSH
是目前较可靠,专为远程登录会话和其他网络服务 提供安全性的协议- 利用
SSH 协议
可以有效防止远程管理过程中的信息泄露 - 通过
SSH 协议
可以对所有传输的数据进行加密,也能够防止 DNS 欺骗和 IP 欺骗
- 利用
SSH
的另一项优点是传输的数据可以是经过压缩的,所以可以加快传输的速度
1) 域名 和 端口号
域名
- 由一串 用点分隔 的名字组成,例如:
www.baidu.com
- 是 IP 地址 的别名,方便用户记忆
端口号
IP 地址:通过 IP 地址 找到网络上的 计算机
端口号:通过 端口号 可以找到 计算机上运行的应用程序
- SSH 服务器 的默认端口号是
22
,如果是默认端口号,在连接的时候,可以省略
- SSH 服务器 的默认端口号是
常见服务端口号列表:
序号 | 服务 | 端口号 |
---|---|---|
01 | SSH 服务器 | 22 |
02 | Web 服务器 | 80 |
03 | HTTPS | 443 |
04 | FTP 服务器 | 21 |
提示:有关 端口号的详细内容,在就业班会详细讲解!
2) SSH 客户端的简单使用
ssh [-p port] user@remote
user
是在远程机器上的用户名,如果不指定的话默认为当前用户remote
是远程机器的地址,可以是 IP/域名,或者是 后面会提到的别名port
是 SSH Server 监听的端口,如果不指定,就为默认值22
提示:
- 使用
exit
退出当前用户的登录注意:
ssh
这个终端命令只能在Linux
或者UNIX
系统下使用- 如果在
Windows
系统中,可以安装PuTTY
或者XShell
客户端软件即可提示:
- 在工作中,SSH 服务器的端口号很有可能不是 22,如果遇到这种情况就需要使用
-p
选项,指定正确的端口号,否则无法正常连接到服务器
3) Windows 下 SSH 客户端的安装
3.2 scp
- scp 就是
secure copy
,是一个在 Linux 下用来进行 远程拷贝文件 的命令 - 它的地址格式与 ssh 基本相同,需要注意的是,在指定端口时用的是大写的
-P
而不是小写的
# 把本地当前目录下的 01.py 文件 复制到 远程 家目录下的 Desktop/01.py
# 注意:`:` 后面的路径如果不是绝对路径,则以用户的家目录作为参照路径
scp -P port 01.py user@remote:Desktop/01.py
# 把远程 家目录下的 Desktop/01.py 文件 复制到 本地当前目录下的 01.py
scp -P port user@remote:Desktop/01.py 01.py
# 加上 -r 选项可以传送文件夹
# 把当前目录下的 demo 文件夹 复制到 远程 家目录下的 Desktop
scp -r demo user@remote:Desktop
# 把远程 家目录下的 Desktop 复制到 当前目录下的 demo 文件夹
scp -r user@remote:Desktop demo
选项 | 含义 |
---|---|
-r | 若给出的源文件是目录文件,则 scp 将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名 |
-P | 若远程 SSH 服务器的端口不是 22,需要使用大写字母 -P 选项指定端口 |
注意:
scp
这个终端命令只能在Linux
或者UNIX
系统下使用- 如果在
Windows
系统中,可以安装PuTTY
,使用pscp
命令行工具或者安装FileZilla
使用FTP
进行文件传输
FileZilla
FileZilla
在传输文件时,使用的是FTP 服务
而不是SSH 服务
,因此端口号应该设置为21
3.3 SSH 高级
提示:有关 SSH 配置信息都保存在用户家目录下的
.ssh
目录下
1)免密码登录
步骤
- 配置公钥
- 执行
ssh-keygen
即可生成 SSH 钥匙,一路回车即可
- 执行
- 上传公钥到服务器
- 执行
ssh-copy-id -p port user@remote
,可以让远程服务器记住我们的公钥
- 执行
示意图
非对称加密算法
- 使用 公钥 加密的数据,需要使用 私钥 解密
- 使用 私钥 加密的数据,需要使用 公钥 解密
2) 配置别名
每次都输入 ssh -p port user@remote
,时间久了会觉得很麻烦,特别是当 user
, remote
和 port
都得输入,而且还不好记忆
而 配置别名 可以让我们进一步偷懒,譬如用:ssh mac
来替代上面这么一长串,那么就在 ~/.ssh/config
里面追加以下内容:
Host mac
HostName ip地址
User itheima
Port 22
保存之后,即可用 ssh mac
实现远程登录了,scp
同样可以使用