[步骤] sftp 的搭建

步骤目录:

步骤一:创建 sftp 用户的组

步骤二:创建用于 sftp 的主目录
2.1 创建用于 sftp 的主目录
2.2 设置用于 sftp 的主目录的所属组和所属主
2.3 设置用于 sftp 的主目录的权限

步骤三:开启 sftp 服务
3.1 修改 sshd 配置文件
3.2 重启 sshd 服务

步骤四:创建 sftp 用户
4.1 创建 sftp 用户
4.1.1 创建 sftp 用户
4.1.2 给 sftp 用户设置密码
4.2 创建 sftp 用户的主目录
4.2.1 创建 sftp 用户的主目录
4.2.2 设置 sftp 用户的主目录的所属组和所属主
4.2.3 设置 sftp 用户的主目录的权限
4.3 创建 sftp 用户有写入权限的目录
4.3.1 创建 sftp 用户有写入权限的目录
4.3.2 设置 sftp 用户有写入权限的目录的所属组和所属主
4.3.3 创建 sftp 用户有写入权限的目录的权限

步骤五: sftp 的使用
5.1 登陆 sftp
5.2 sftp 可使用的命令
5.2.1 查看当前目录下的所有文件和目录
5.2.2 创建某一个目录
5.2.3 从被远程的主机上下载一个文件
5.2.4 将本地的一个文件上传到被远程的主机上

具体的操作步骤:

步骤一:创建 sftp 用户的组

# groupadd sftp

步骤二:创建用于 sftp 的主目录
2.1 创建用于 sftp 的主目录

# mkdir /sftp

(补充:这里以创建 /sftp 目录为例)

2.2 设置用于 sftp 的主目录的所属组和所属主

# chown root:sftp /sftp

(补充:这里以给 /sftp 设置 root 主和 sftp 组为例)

2.3 设置用于 sftp 的主目录的权限

# chmod 755 /sftp

(补充:这里以给 /sftp 目录权限为例)

步骤三:开启 sftp 服务
3.1 修改 sshd 配置文件

# vim /etc/ssh/sshd_config

将以下内容:

......
Subsystem       sftp    /usr/libexec/openssh/sftp-server
......

修改为:

......
# Subsystem       sftp    /usr/libexec/openssh/sftp-server
......

并添加以下内容:

......
Subsystem       sftp    internal-sftp
Match Group sftp
ChrootDirectory /sftp/%u
ForceCommand    internal-sftp
AllowTcpForwarding no
X11Forwarding no


补充:这里以
(1)sftp 的所属组是 sftp
(2)以 /sftp/%u 作为 sftp 的家目录
为例

3.2 重启 sshd 服务

# systemctl restart sshd

步骤四:创建 sftp 用户
4.1 创建 sftp 用户
4.1.1 创建 sftp 用户

# useradd -g sftp -s /bin/false sftpuser

(补充:这里以创建名为 sftpuser ,所属组为 sftp,解释器是 /bin/false 的用户为例)

4.1.2 给 sftp 用户设置密码

# passwd sftpuser

(补充:这里以给 sftpuser 用户设置密码为例)

4.2 创建 sftp 用户的主目录
4.2.1 创建 sftp 用户的主目录

# mkdir /sftp/sftpuser

(补充:这里以创建 /sftp/sftpuser 目录为例)

4.2.2 设置 sftp 用户的主目录的所属组和所属主

# chown root:sftp /sftp/sftpuser

(补充:这里以给 /sftp/sftpuser 设置 root 主和 sftp 组为例)

4.2.3 设置 sftp 用户的主目录的权限

# chmod 755 /sftp/sftpuser

(补充:这里以给 /sftp/sftpuser 目录权限为例)

4.3 创建 sftp 用户有写入权限的目录
4.3.1 创建 sftp 用户有写入权限的目录

# mkdir /sftp/sftpuser/write

(补充:这里以创建 /sftp/sftpuser/write 目录为例)

4.3.2 设置 sftp 用户有写入权限的目录的所属组和所属主

# chown sftpuser:sftp /sftp/sftpuser/write

(补充:这里以给 /sftp/sftpuser/write 设置 sftpuser 主和 sftp 组为例)

4.3.3 创建 sftp 用户有写入权限的目录的权限

# chmod 755 /sftp/sftpuser/write

(补充:这里以给 /sftp/sftpuser/write 目录权限为例)

步骤五: sftp 的使用
5.1 登陆 sftp

# sftp sftpuser@127.0.0.0.1

(补充:这里以使用 sftpuser 用户登陆 IP 地址为 127.0.0.1 的 sftp 为例)

5.2 sftp 可使用的命令
5.2.1 查看当前目录下的所有文件和目录

sftp> ls

5.2.2 创建某一个目录

sftp> mkdir test

(补充:这里以创建 test 目录为例)

5.2.3 从被远程的主机上下载一个文件

sftp> get test.txt

(补充:这里以下载 test.txt 文件为例)

5.2.4 将本地的一个文件上传到被远程的主机上

sftp> put local.txt

(补充:这里以上传 local.txt 文件为例)

[命令] Linux 命令 xargs (替代参数)

内容目录:

内容一:理解 xargs 的作用
1.1 Linux 命令可接收的内容
1.2 Linux 命令对可接收内容的态度
1.3 xargs 的作用
1.4 理解 xargs 作用的案例
1.4.1 准备一个用于测试的文件
1.4.2 测试没有 xargs 命令的情况

内容二:xargs 的使用案例
2.1 案例一:xargs 对参数进行分行
2.2 案例二:xargs 指定分割参数的分割符
2.3 案例三:xargs 不输出参数,而是将参数传输给后面的命令,并让此命令使用此参数执行
2.4 案例四:xargs 只输出前几个参数

具体的内容:

内容一:理解 xargs 的作用
1.1 Linux 命令可接收的内容

1) 第一种内容是输入
2) 第二中内容是参数

1.2 Linux 命令对可接收内容的态度

1) 有些命令既可以接收输入也可以接受参数
2) 有些命令只能接收输入
3) 有些命令只能接收参数

1.3 xargs 的作用

当管道符号 “|” 将前一个命令的输出结果转换为下一个命令的输入时,再将此输入转换为参数

1.4 理解 xargs 作用的案例
1.4.1 准备一个用于测试的文件

# echo "This is a test file" > test.txt

1.4.2 测试没有 xargs 命令的情况

# echo test.txt | cat
test.txt

(补充:此时 test.txt 对于 cat 而言是输入)

1.4.3 测试有 xargs 命令的情况

# echo test.txt | xargs cat
This is a test file

(补充:此时 test.txt 对于 cat 而言是参数)

内容二:xargs 的使用案例
2.1 案例一:xargs 对参数进行分行

# echo aa bb cc dd ee | xargs -n 2
aa bb
cc dd
ee

(补充:这里是设置每 2 个参数为一行)

2.2 案例二:xargs 指定分割参数的分割符

# echo aa@bb@cc@dd@ee | xargs -d @
aa bb cc dd ee

(补充:这里是将 @ 设置为分割符)

2.3 案例三:xargs 不输出参数,而是将参数传输给后面的命令,并让此命令使用此参数执行

# echo aa@bb@cc@dd@ee | xargs -d @ -p echo
echo aa bb cc dd ee
 ?...y
aa bb cc dd ee

(补充:这里需要在提示是否执行 echo aa bb cc dd ee 时输入 y 以确认)

2.4 案例四:xargs 只输出前几个参数

# echo aa bb cc dd ee | xargs -E cc echo
aa bb

(补充:这里只输出在 cc 之前的参数)

(注意:当使用了 -d 参数后,-E 参数会实效)

[命令] Linux 命令 vim (文件编辑)

内容目录:

内容一:vim 简介
1.1 vim 模式
1.2 使用 vim
1.2.1 通过 vim 打开某一个文件
1.2.2 通过 vim 打开某一个文件,并自动进入到某一行

内容二:vim 在命令模式下的操作
2.1 在命令模式下让光标移动
2.1.1 在命令模式下让光标网上移动
2.1.2 在命令模式下让光标网下移动
2.1.3 在命令模式下让光标网左移动
2.1.4 在命令模式下让光标网右移动
2.1.5 在命令模式下让光标移动到文件的指定行数
2.1.6 在命令模式下让光标移动到文件首尾
2.1.6.1 在命令模式下让光标移动到文件首部
2.1.6.2 在命令模式下让光标移动到文件尾部
2.2 在命令模式下删除数据
2.2.1 在某一行的范围内删除数据
2.2.1.1 在某一行的范围内删除一个字符
2.2.1.1.1 在光标所在行的范围内删除光标之后的一个字符
2.2.1.1.2 在光标所在行的范围内删除光标之前的一个字符
2.2.1.2 在某一行的范围内删除多个字符
2.2.1.2.1 在光标所在行的范围内删除光标之后的多个字符
2.2.1.2.2 在光标所在行的范围内删除光标之前的多个字符
2.2.1.2.3 在光标所在行的范围内删除光标之前的所有字符
2.2.1.2.4 在光标所在行的范围内删除光标之后的所有字符
2.2.2 进行整行的删除
2.2.2.1 删除光标所在行
2.2.2.2 从光标所在行开始删除多行
2.2.2.3 从光标所在行开始删除此行和后面的所有行
2.2.2.4 从光标所在行开始删除此行和前面的所有行
2.2.3 重复相同的删除操作
2.3 在命令模式下复制数据
2.3.1 在某一行的范围内复制数据
2.3.1.3 在光标所在行的范围内复制光标之前的所有字符
2.3.1.4 在光标所在行的范围内复制光标之后的所有字符
2.3.2 进行整行的复制
2.3.2.1 复制光标所在行
2.3.2.2 从光标所在行开始复制多行
2.3.2.3 从光标所在行开始复制此行和后面的所有行
2.3.2.4 从光标所在行开始复制此行和前面的所有行
2.4 在命令模式下复制数据
2.4.1 从光标所在行开始向上复制
2.4.2 从光标所在行开始向上复制
2.5 在命令模式下进入其他模式
2.5.1 在命令模式下进入输入模式
2.5.2 在命令模式下进入末行模式
2.5.3 在命令模式下进入视图模式
2.5.3.1 以行的方式进入视图模式
2.5.3.2 以字符的方式进入视图模式
2.5.3.3 vim 字符模式的使用案例
2.5.4 在命令模式下进入替换模式
2.6 在命令模式下的其他操作
2.6.1 将光标所在行与下面的行合并
2.6.2 重复上一动作
2.6.3 撤销上一个动作
2.6.4 保存此文当并退出 vim 模式

内容三:vim 在末行模式下的操作
3.1 在末行模式下对当前内容进行保存并退出 vim 模式
3.2 在末行模式下的行号设置
3.2.1 设置行号
3.2.2 取消行号
3.3 在末行模式下搜索
3.3.1 在末行模式下搜索关键字
3.3.1.1 向下查找匹配的关键字
3.3.1.2 向上查找匹配的关键字
3.3.2 在末行模式下搜索行号
3.4 在末行模式下替换关键字的案例
3.5 在末行模式进入命令模式
3.6 在末行模式下的其他设置

内容四:vim 在输入模式下的操作
4.1 在输入模式下输入内容
4.2 在输入模式下进入命令模式

具体的内容:

内容一:vim 简介
1.1 vim 模式简介

1) 命令模式:主要用于对文件进行批量编辑
2) 末行模式:主要用于保存退出文件
3) 输入模式:主要用于编辑文件

1.2 使用 vim
1.2.1 通过 vim 打开某一个文件

# vim <file>

(补充:此时将自动进入命令模式)

1.2.2 通过 vim 打开某一个文件,并自动进入到某一行

# vim +<line number> <file>

(补充:此时将自动进入命令模式)

内容二:vim 在命令模式下的操作
2.1 在命令模式下让光标移动
2.1.1 在命令模式下让光标网上移动

按下 “上方向键”

或者:

按下 “k”

或者:

按下 “<任意数字>” 再按下 “上方向键”

(注意:此方法会向上方移动对应数字个光标位)

2.1.2 在命令模式下让光标网下移动

按下 “下方向键”

或者:

按下 “j”

或者:

按下 “<任意数字>” 再按下 “下方向键”

(注意:此方法会向下方移动对应数字个光标位)

2.1.3 在命令模式下让光标网左移动

按下 “左方向键”

或者:

按下 “h”

或者:

按下 “任意数字” 之后再按 “左方向键”

(注意:此方法会向左方移动对应数字个光标位)

2.1.4 在命令模式下让光标网右移动

按下 “右方向键”

或者:

按下 “l”

或者:

按下 “<任意数字>” 之后再按 “右方向键”

(注意:此方法会向右方移动对应数字个光标位)

2.1.5 在命令模式下让光标移动到文件的指定行数

按下 “<任意数字>” 之后再按 “G”

(注意:此方法会让光标移动到对应数字的行)

2.1.6 在命令模式下让光标移动到文件首尾
2.1.6.1 在命令模式下让光标移动到文件首部

按下 “g” 再按下 “g”

2.1.6.2 在命令模式下让光标移动到文件尾部

按下 “G”

2.2 在命令模式下删除数据
2.2.1 在某一行的范围内删除数据
2.2.1.1 在某一行的范围内删除一个字符
2.2.1.1.1 在光标所在行的范围内删除光标之后的一个字符

按下 “x”

2.2.1.1.2 在光标所在行的范围内删除光标之前的一个字符

按下 “X”

2.2.1.2 在某一行的范围内删除多个字符
2.2.1.2.1 在光标所在行的范围内删除光标之后的多个字符

按下 “<任意数字>” 之后再按 “x”

(注意:此方法会在光标所在行的范围内从光标所在位置开始向后删除对应数字个字符)

2.2.1.2.2 在光标所在行的范围内删除光标之前的多个字符

按下 “<任意数字>” 之后再按 “X”

(注意:此方法会在光标所在行的范围内从光标所在位置开始向前删除对应数字个字符)

2.2.1.2.3 在光标所在行的范围内删除光标之前的所有字符

同时按下 “d” 和 “0”

2.2.1.2.4 在光标所在行的范围内删除光标之后的所有字符

同时按下 “d” 和 “$”

2.2.2 进行整行的删除
2.2.2.1 删除光标所在行

按下 “d” 之后再按 “d”

2.2.2.2 从光标所在行开始删除多行

按下 “<任意数字>” 之后再按 “d” 之后再按 “d”

(注意:此方法会从光标所在行开始向后删除到对应数字个行)

2.2.2.3 从光标所在行开始删除此行和后面的所有行

按下 “d” 之后再按 “G”

2.2.2.4 从光标所在行开始删除此行和前面的所有行

按下 “d” 之后再按 “1” 之后再按 “G”

或者:

按下 “d” 之后再按 “g” 之后再按 “g”

2.2.3 重复相同的删除操作

按下 “c”

2.3 在命令模式下复制数据
2.3.1 在某一行的范围内复制数据
2.3.1.3 在光标所在行的范围内复制光标之前的所有字符

同时按下 “y” 和 “0”

2.3.1.4 在光标所在行的范围内复制光标之后的所有字符

同时按下 “y” 和 “$”

2.3.2 进行整行的复制
2.3.2.1 复制光标所在行

按下 “y” 之后再按 “y”

2.3.2.2 从光标所在行开始复制多行

按下 “<任意数字>” 之后再按 “y” 之后再按 “y”

(注意:此方法会从光标所在行开始向后复制对应数字个行)

2.3.2.3 从光标所在行开始复制此行和后面的所有行

按下 “y” 之后再按 “G”

2.3.2.4 从光标所在行开始复制此行和前面的所有行

按下 “y” 之后再按 “1” 之后再按 “G”

或者:

按下 “y” 之后再按 “g” 之后再按 “g”

2.4 在命令模式下复制数据
2.4.1 从光标所在行开始向上复制

按下 “p”

2.4.2 从光标所在行开始向上复制

按下 “P”

2.5 在命令模式下进入其他模式
2.5.1 在命令模式下进入输入模式

1) 按下 “i”,在光标所在位置进入输入模式
2) 按下 “a”,在光标所在位置的后一个字符进入输入模式
3) 按下 “A”,在光标所在行的行尾进入插入模式
4) 按下 “I”,在光标所在行的行首进入插入模式
5) 按下 “o”,在光标所在行的下一行行首进入输入模式

2.5.2 在命令模式下进入末行模式

按下 “:”

2.5.3 在命令模式下进入视图模式
2.5.3.1 以行的方式进入视图模式

按下 “v”

或者:

按下 “V”

2.5.3.2 以字符的方式进入视图模式

同时按下 “ctrl” 和 “v”

2.5.3.3 vim 字符模式的使用案例

1) 在光标所在行行首,同时按下 “ctrl” 和 “v” 再选择对应的行首再按 “d” 或者 “x”,删除在这些行行首的字符
2) 在光标所在行行首,同时按下 “ctrl” 和 “v” 再选择对应的行首再按 “I” 再输入 <想要插入的内容> 再按 “ESC” ,在这些行行首插入这些内容
3) 在光标所在行行首,同时按下 “ctrl” 和 “v” 再按下再按 “I” 再按 “g” 再按 “g” 再输入 <想要插入的内容> 再按 “ESC” ,在光标所在行以及前面的所有行的行首插入这些内容
4) 在光标所在行行首,同时按下 “ctrl” 和 “v” 再按下再按 “I” 再按 “G” 再输入 <想要插入的内容> 再按 “ESC” ,在这光标所在行以及后面的所有行的行首插入这些内容

2.5.4 在命令模式下进入替换模式

按下 “R”

2.6 在命令模式下的其他操作
2.6.1 将光标所在行与下面的行合并

按下 “J”

2.6.2 重复上一动作

按下 “ctrl” 和 “r”

或者:

按下 “.“

2.6.3 撤销上一个动作

按下 “u”

2.6.4 保存此文当并退出 vim 模式

按下 “Z” 和 “Z”

内容三:vim 在末行模式下的操作
3.1 在末行模式下对当前内容进行保存并退出 vim 模式

1) :w #保存当前内容
2) :q #退出 vim 模式
3) :wq #保存当前内容并退出
4) 😡 #保存当前内容并退出
5) :q! #不保存当前内容并强制退出
6) :wq! #强制保存当前内容并退出

3.2 在末行模式下的行号设置
3.2.1 设置行号

:set nu #设置行号

3.2.2 取消行号

:set nonu #取消行号

3.3 在末行模式下搜索
3.3.1 在末行模式下搜索关键字
3.3.1.1 向下查找匹配的关键字

:/<关键字> 之后按 “n” 或者 “N” 查看下一个匹配的关键字

3.3.1.2 向上查找匹配的关键字

:?<关键字> 之后按 “n” 或者 “N” 查看下一个匹配的关键字

3.3.2 在末行模式下搜索行号

:<行号> 之后按“回车”

3.4 在末行模式下替换关键字的案例

1) :s /<旧关键字>/<新关键字> #以 <新关键字> 替换光标所在行的第一个 <旧关键字>
2) :s /<旧关键字>/<新关键字>/g #以 <新关键字> 替换光标所在行的所有 <旧关键字>
3) :1,5 s/<旧关键字>/<新关键字>/g #以 <新关键字> 替换从 1 到 5 行的所有 <旧关键字>
4) :,+5 s/<旧关键字>/<新关键字>/g #以 <新关键字> 替换从光标所在行开始 5 行的所有 <旧关键字>
5) :7,%s/<旧关键字>/<新关键字>/g #以 <新关键字> 替换倒数第 7 行到最后 1 行的所有 <旧关键字>
6) :%s/<旧关键字>/<新关键字>/g #以 <新关键字> 替换全文的所有 <旧关键字>

3.5 在末行模式进入命令模式

:按 “ESC”

3.6 在末行模式下的其他设置

1) :w /<新文件名>,将当前内容另存为另一个文件
2) :r /<文件名>,读取 <文件名> 里的内容到文本并直接插入到光标所在位置
3) :! <命令>,在 vim 的命末行模式时使用 Linux 命令

内容四:vim 在输入模式下的操作
4.1 在输入模式下输入内容

正常键入内容即可

4.2 在输入模式下进入命令模式

按 “ESC”