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 同样可以使用

posted @ 2019-09-23 15:28  叶聪  阅读(225)  评论(0)    收藏  举报