Linux终端命令2
Linux终端命令
1. 查看文件内容
| 序号 | 命令 | 对应英文 | 作用 |
| 1 | cat 文件名 | concatenate | 查看文件内容、创建文件、文件合并、追加文件内容等功能 |
| 2 | more 文件名 | more | 分屏显示文件内容 |
| 3 | grep 搜索文本文件名 | grep | 搜索文本文件内容 |
1.1 cat
• cat 命令可以用来查看文件内容、创建文件、文件合并、追加文件内容 等功能
• cat 会一次显示所有内容,适合 查看内容较少 的文本文件
• -b:对非空输出行编号
• -n:对输出的所有行编号
# Linux中还有一个 nl 的命令和 cat -b 的效果等价
1.2 more
• more 命令可以用于分屏显示文件内容,每次只显示一页内容
• 适合于 查看内容较多 的文本文件
使用 more 的操作键:
| 操作键 | 功能 |
| 空格键 | 显示下一屏 |
| Enter键 | 一次向下滚动一行 |
| b | 回滚一屏 |
| f | 前滚一屏 |
| q | 退出 |
| /word | 搜索 word 字符串 |
1.3 grep
• Linux系统中 grep 命令是一种强大的文本搜索工具
• grep 允许对文本进行 模式查找,所谓模式查找,有被称为正则表达式
• -n:显示匹配行及行号
• -v:显示不包含匹配文本的所有行(相当于求反)
• -i:忽略大小写
• 常用的两种查找模式:
^a: 行首,搜寻以 a 开头的行
b$: 行尾,搜寻以 b 结尾的行
2. 重定向
2.1 echo 文字内容
• echo 会在终端中显示参数指定的文字,通常会和 重定向 联合使用
2.2 重定向 > 和 >>
• Linux 允许将命令执行结果 重定向 到一个 文件
• 将本应显示在终端上的内容 输出/追加 到指定文件中
其中:
>: 表示输出,会 覆盖 文件原有的内容
>>: 表示追加,会将内容 追加 到已有文件的末尾
# 例如: ls -lh > a:将 ls -lh 的输出结果覆盖文件a;tree >> a:将tree的输出结果追加到文件a的末尾
2.3 管道 |
• Linux 允许将 一个命令的输出 可以 通过管道 作为 另一个命令的输入
• 可以理解现实生活中的管子,管子的一头塞东西进去,另一头取出来,这里 | 的左右分为两端,左端塞东西(写),右边取东西(读)
• 常用的管道命令有:
more:分屏显示内容
grep:在命令执行结果的基础上查询指定文本
# 例如: ls -lha ~ | more; ls -lha ~ | grep Do
3. 远程管理命令
3.1 关机或重新启动
shutdown 选项 时间
• shutdown 命令可以 安全关闭 或者 重新启动系统
• -r:重新启动
• 不指定选项和参数,默认表示 1分钟 之后关闭电脑
• 远程维护服务器时,最好不要关闭系统,而应该重新启动系统
• 常用命令示例:
# 重新启动操作系统,其中 now 表示现在
$ shutdown -r now
# 立刻关机,其中 now 表示现在
$ shutdown now
# 系统在今天 20:26 会关机
$ shutdown 20:26
# 系统再过十分钟关机
$ shutdown +10
# 取消之前指定的关机计划
$ shutdown -c
3.2 查看或配置网卡信息
ifconfig # 作用:查看/配置计算机当前的网卡配置信息 ping ip地址 # 作用:检测到目标 ip 地址的连接是否正常
3.2.1 网卡和ip
• 网卡是一个专门负责网络通讯的硬件设备
• IP地址 是设置在网卡上的地址信息
# 我们可以把电脑比作电话,网卡 相当于 SIM卡,IP地址 相当于 电话号码
• 每台联网的电脑都有IP地址,是保证电脑之间正常通讯的重要设置
• 每台电脑的IP地址不能相同,否则会出现IP地址冲突,并且没有办法正常通讯
3.2.2 ifconfig
• ifconfig 可以查看/配置计算机当前的网卡配置信息
# 查看网卡配置信息 $ ifconfig # 查看网卡对应的 IP 地址 $ ifconfig | grep inet
• 一台计算机中有可能会有一个 物理网卡 和 多个虚拟网卡,在Linux中物理网卡的名字通常以 ensXX 表示
• 127.0.0.1 被称为 本地回环/环回地址,一般用来测试本机网卡是否正常
3.2.3 ping
# 检测到目标主机是否连接正常 $ ping IP地址 # 检测本机网卡工作正常 $ ping 127.0.0.1
• ping 一般用于检测当前计算机到目标计算机之间的网络 是否通畅,数值越大,速度越慢
· ping 的工作原理与潜水艇的声纳相似,ping 这个命令就是取自 声纳的声音
· 原理:网络上的机器都有 唯一确定的IP地址,我们给目标IP地址发送一个数据包,对方就要返回一个数据包,根据返回的数据包以及时间,我们可以确定目标主机的存在
4. 远程登录和复制文件
ssh 用户名@ip # 对应英文secure shell 作用:关机/重新启动 scp 用户名@ip:文件名或路径 用户名@ip:文件名或路径 # 对应英文secure copy 作用:远程复制文件
4.1 ssh基础
在Linux中SSH是非常常用的工具,通过 SSH客户端 我们可以连接到运行了 SSH服务器的远程计算机上
• SSH客户端是一种使用 Secure Shell(SSH) 协议连接到远程计算机的软件程序
• SSH 是目前较可靠, 专为远程登录会话和其他网络服务 提供安全性的协议
· 利用 SSH协议 可以有效防止远程管理过程中的信息泄露
· 通过 SSH协议 可以对所有传输数据进行加密,也能够防止 DNS 欺骗和 IP 欺骗
• SSH的另一项优点是传输的数据可以是经过压缩的,所以可以加快传输的速度
4.1.1 域名和端口
域名:
• 有一串 用点分割 的名字组成,例如:www.baidu.com
• 是 IP地址 的别名,方便用户记忆
端口号:
• IP地址:通过 IP地址 找到网络上的计算机
• 端口号:通过 端口号 找到 计算机上运行的应用程序
· SSH服务器的默认端口是22,既然是默认端口号,可以不写
4.1.2 SSH客户端的简单使用
ssh [-p port] user@remote # user 是在远程机器上的用户名,如果不指定的话默认为当前用户 # remote 是远程机器的地址,可以是 IP/域名,或者是别名 # port 是 SSH Server监听的端口,如果不指定,就默认为 22 # ssh这个终端命令只能在 Linux或者 Unix 系统下使用 # 如果在 Windows 系统中,可以安装 PuTTY 或者 XShell客户端软件即可 # 注意:如果SSH服务端的端口号很有可能不是22,如果是这种情况就需要使用 -p 选项指定端口号
4.1.3 Windows下 SSH 客户端的安装
• PuTTY:https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
• XShell:https://www.netsarang.com/
4.1.4 scp
• scp 就是 secure copy,是一个在 Linux 下用来进行 远程拷贝文件 的命令
• 他的 地址格式与 ssh 基本相同,需要注意的是,在指定端口时用的是大写的 -P 而不是小写的 -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,则需要使用之制动端口
# scp 这个终端命令只能在 Linux 或者 UNIX 系统下使用
# 如果在 Windows 系统中,可以安装PuTTY,使用 pscp 命令行工具或者安装 Filezilla 使用 FTP 进行文件传输
• Filezilla 官网:https://www.filezilla.cn/download/client
• Filezilla 在传输文件时,使用的是 FTP服务 而不是 SSH服务 ,因此端口号应该设置为21
# 如果首次安装Ubuntu,可能连接失败,那么需要在Ubuntu上安装FTP服务,sudo apt-get install vsftpd
5. SSH高级
5.1 免密码登
• 配置公钥
> 执行 ssh-keygen 即可生成 ssh 钥匙
• 上传公钥到服务器
> 执行 ssh-copy-id -p port user@remote,可以让远程服务器记住全面的公钥
# 有关 SSH 配置信息都保存在用户家目录下的 .ssh 目录下
• 本地 使用 私钥 对数据进行加密 / 解密
• 服务器 使用 公钥 对数据进行加密 / 解密
5.2 配置别名
每次都输入 ssh -p port user@remote,时间久了会觉得麻烦,而且不好记忆,而 配置别名 可以让我们进一步偷懒,譬如用:ssh alias 来代替上面这一长串,那么就在~/.ssh/config 里面追加一下内容
Host alias
HostName ip地址
User username
Port 22
保存之后,即可使用 ssh alias 实现远程登录了, scp 同样可以使用

浙公网安备 33010602011771号