0%

Linux命令说明(三)

Linux命令说明

  • echo 文字内容
  • > 和 >> 重定向
  • | 管道
  • shutdown 关机与重启
  • ifconfig 查看/配置计算机当前的网卡配置信息
  • ping ip地址 检测到目标ip地址的连接是否正常
  • ssh 用户名@ip 关机/重新启动
  • scp 用户名@ip:文件名或路径 用户名@ip:文件名或路径 远程赋值文件

echo

  • echo会在终端中显示参数指定的文字,通常会和重定向联合使用
1
echo hello world

重定向>和>>

  • Linux允许将命令执行结果重定向到一个文件
  • 将本应显示在终端上的内容输出/追加到指定文件中
  • 其中
    • >表示输出,会覆盖文件原有的内容
    • >>表示追加,会将内容追加到已有文件的末尾
1
2
3
echo hello world >> 1.txt
ls -lh > 1.txt
tree > 1.txt

管道 |

  • Linux允许将一个命令的输出可以通过管道作为另一个命令的输入
  • 可以理解为现实生活中的管子,管子的一头塞东西进去,另一头取出来,这里|的左右分为两端,左端塞东西(写),右端取东西(读)
  • 常用的管道命令有:
    • more 分屏显示内容
    • grep 在命令执行结果的基础上查询指定的文本
1
2
ls -lha / | grep .txt
tree ~ | grep .txt

shutdown

  • shutdown命令可以安全关闭或者重新启动系统
  • -r 重新启动

提示:

  • 不指定选项和参数,默认表示1分钟之后关闭电脑
  • 远程维护服务器时,最好不要关闭系统,而应该重新启动系统
  • 常用命令示例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 重新启动操作系统,其中now表示现在
$ shutdown -r now

# 立刻关机
$ shutdown now

# 系统在今天约20:25会关机
$ shutdown 20:25

# 系统再过十分钟后自动关机
$ shutdown +10

# 取消之前指定的关机计划
$ shutdown -c

ifconfig

  • ifconfig可以查看/配置计算机当前的网卡配置信息
1
2
3
4
5
# 查看网卡配置信息
$ ifconfig

# 查看网卡对应的IP地址
$ ifconfig | grep inet

提示:一台计算机中有可能会有一个物理网卡多个虚拟网卡,在Linux中物理网卡的名字通常以ensXX表示

  • 127.0.0.1被称为本地回环/环回地址,一般用来测试本机网卡是否正常

ping

1
2
3
4
5
# 检测到目标主机是否连接正常
$ ping IP地址

# 检测本地网卡工作正常
$ ping 127.0.0.1
  • ping一般用于检测当前计算机到目标计算机之间的网络是否通畅、数值越大、速度越慢
  • ping的工作原理与潜水艇的声呐相似,ping这个命令就是取自声呐的声音
  • 网络管理员之间也常将ping用作动词——ping一下计算机X,看他是否开着
  • 原理:网络上的机器都有唯一确定的IP地址,我们给目标IP地址发送一个数据包,对方就要返回一个数据包,根据返回的数据包以及时间,我们可以确定目标主机的存在

提示: 在Linux中,想要终止一个终端程序的执行,绝大多数都可以使用CTRL + C

ssh

在Linux中SSH是非常常用的工具,通过SSH客户端我们可以连接到运行了SSH服务器的远程机器上

  • SSH客户端是一种使用Secure Shell (SSH)协议连接到远程计算机的软件程序
  • SSH是目前较可靠,专为远程登录回话和其他网络服务提供安全性的协议
    • 利用SSH协议可以有效防止远程管理过程中的信息泄露
    • 通过SSH协议可以对所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗
  • SSH的另一项优点是传输的数据可以是经过压缩的,所以可以加快传输的速度
  • 免密码登录
  • 配置别名

提示:有关SSH配置信息都保存在用户家目录下的.ssh目录下

域名和端口号

域名
  • 由一串用点分隔的名字组成,例如:www.baidu.com
  • IP地址的别名,方便用户记忆
端口号
  • IP地址:通过IP地址找到网络上的计算机
  • 端口号:通过端口号可以找到计算机上运行的应用程序
    • SSH服务器的默认端口号22,如果是默认端口号,在连接的时候,可以省略
  • 常见服务端口号列表:
    • SSH服务器 22端口
    • Web服务器 80端口
    • HTTPS 443端口
    • FTP服务器 21端口

SSH客户端的简单实用

1
ssh [-p port] user@remote
  • user是在远程机器上的用户名,如果不指定的话默认为当前用户
  • remote是远程机器的地址,可以是IP/域名,或者是别名
  • port是SSH Server监听的端口,如果不指定,就为默认值22

提示:

  • 使用exit退出当前用户的登录

注意:

  • ssh这个终端命令只能在Linux或者UNIX系统下使用
  • 如果在Windows系统中,可以安装PuTTY或者XShell客户端软件即可

提示:

  • 在工作中,SSH服务器的端口号很有可能不是22,如果遇到这种情况就需要使用-p选项,指定正确的端口号,否则无法正常连接到服务器

免密码登录

  • 配置公钥
    • 执行ssh-keygen即可生成SSH钥匙
  • 上传公钥到服务器
    • 执行ssh-copy-id -p port user@remote,可以让远程服务器记住我们的公钥

配置别名

每次都输入ssh -p port user@remote,时间久了会觉得很麻烦,而且还不好记忆。

配置别名可以让我们进一步偷懒,譬如用:ssh test来替代上面这么一长串,那么就在~/.ssh/config里面追加以下内容:

1
2
3
4
Host test
HostName ip地址
User 登录用户名
Port 端口号

scp

  • scp就是secure copy,是一个在Linux下用来进行远程拷贝文件的命令
  • 它的地址格式与ssh基本相同,需要注意的是,在指定端口时用的是大写的-P而不是小写的
1
2
3
4
5
6
7
8
9
10
11
12
13
# 把本地当前目录下的1.txt文件复制到远程home目录下的Desktop/1.txt
# 注意:':'后面的路径如果不是绝对路径,则以用户的home目录作为参考路径
$ scp -P port 1.txt user@remote:Desktop/1.txt

# 把远程home目录下的Desktop/1.txt文件复制到本地当前目录下的1.txt
$ scp -P port user@remote:Desktop/1.txt 1.txt

# 加上-r选项可以传送文件夹
# 把当前目录下的demo文件夹复制到远程home目录下的Desktop
$ scp -r demo user@remote:Desktop

# 把远程home目录下的Desktop复制到当前目录下的demo文件夹
$ scp -r user@remote:Desktop demo
  • -r 若给出的源文件是目录文件,则scp将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名
  • -P 若远程SSH服务器的端口不是22,需要使用大写字母-P选项指定端口