部分内容来自网上,由于不清楚具体来源,此不标注。
SSH设置
SSH免密登录
- 生成私钥,把pub存入authorized_keys
- 更改.ssh权限为700;更改authorized_keys权限为600
- 注意getenforce是否为disabled(
/etc/selinux/config
;shutdown -r now
)
将本机(Ubuntu16.04)作为SSH Server
对于Ubuntu16.04而言,只安装了openssh-client
表示其只能通过本机来连接至其他服务器上,而本身不能被用作server,因此我们需要安装某些文件来使其成为一个server
方法:
- 先使用
sudo apt update
更新软件源 - 由于16.04中安装
openssh-server
时会提示错误,错误如下:
大意是需要安装某个旧版本的openssh-client
,其他提示但是不用安装表明我们不用管这些了,所以安装旧版本的client,方法是sudo apt install openssh-client=版本号
这样子就会删除原版本,变为旧版本 - 此时可以顺利安装server,一路选择
y
- 此时我们还不能通过SSH连接本机,因为Ubuntu中还有一个防火墙,使我们无法通过端口来连接,查看ufw状态
sudo ufw status
- 那么现在要通过ufw把我们的端口添加进去,只要使用简单的
sudo ufw allow 22
就可以把默认的22端口添加进去了,这样就可以连接了! - 可能我们会想22端口大家都知道,这样就不是很安全,所以我们更改为任意的一个叫做52222的端口,修改方式
sudo gedit /etc/ssh/sshd_config
在这里面有一个what ports…we listen for
把里面的端口22改成port 52222就可以了 - 别忘了把端口22去除,方法,先使用
sudo ufw status numbered
得到序号,然后使用sudo ufw delete
序号即可 - 其实端口修改仍然可以被暴力破解。此时使用公钥与密钥的方式可以解决。具体方式附网址http://blog.csdn.net/permike/article/details/52386868
Hadoop添加新节点
-
添加环境变量,
hadoop_env.sh
-
装入hadoop
-
更改hosts(+master)
-
文件夹(datanode)
-
slaves
-
关闭防火墙
firewall-cmd --state
systemctl stop firewalld.service
systemctl disable firewalld.service
-
然后在namenode
start-all.sh
创建独立的Python环境
python3 -m venv /path/to/new/virtual/environment
这样就可以在给定目录下创建一个虚拟环境
然后使用
source /path/to/new/virtual/environment/bin/activate
激活该环境
在该环境下的pip3安装我们想要安装的包
最后使用deactivate
退出该环境
ntfs的挂载
- 首先卸载被挂载机上的ntfs
fuser -m -k /path
umount /path
- 更改挂载机的exports文件
vim /etc/exports
exportfs -arv
这样可以重载exports而不用重启ntfs服务
- 在被挂载机上
showmount -e 挂载机ip
mount -t nfs -o nfsvers=3,vers=3 10.157.72.101:/path /path_local
- 更改一下权限即可
Vim使用快捷键
# 重新加载当前文档,并丢弃已有改动
:e!
# 显示当前的文档名称
:f
# 改变当前的文档名称,此时所作的改动全部写入改动后的文件
:f new_filename
# 显示行数
:set number
# 保存从n1行到n2行的内容
:n1,n2w filename
# 打开vim的历史命令窗
q:
# 另存为操作
:saveas new_filename
# 打开文件系统
:Sex
# 左移字符/右移字符
3h/5l
# 移至第一个非空白字符处
Enter/-
# 移动到单词的开头且不忽略标点,忽略标点使用大写
w/b
# 移动到本行行首行尾
^/$
# 光标移至第n列
n|
# 光标移至第n行
nG
# 移动到文件头部
gg
# 移动到文件尾部
G
# 下翻一屏
ctrl+f
# 上翻一屏
ctrl+b
# 下滚一行
ctrl+e
# 上滚一行
ctrl+y
# 到文件%n的位置
n%
# 进行标记操作,使用m{a-z}进行局部标记,使用m{A-Z}进行全局标记,使用`{a-z}回到标记处,使用:delmarks!删除所有标记
# 插入操作,在光标前插入8个'='作为分割线
8i>'='>ESC
# 在当前光标后插入
a
# 在非空白行首/行尾插入
I/A
# 插入shell命令的文本
:r !date
# 复制整行文本
yy
# 复制可视模式下的文本
y
# 从光标当前位置复制到行尾
y$
# 从光标当前位置复制到行首
y0
# 复制光标以下所有行,可以先使用gg到行首再yG全选,此时退出也可粘贴
yG
# 从光标当前位置删除到行尾
d$
# 从光标当前位置删除到行首
d0
# 删除整行文本
dd
# 在光标之后粘贴
p
# 在光标之前粘贴
P
# 在后面的文本中查找
/something
# 忽略大小写
/\csomething
# 在前面的文本中查找
?something
# 向后查找下一个
n
# 向前查找下一个
N
# 使用正则表达式进行查找
/pattern/
\d表示十进制数
\s表示空格
\S表示非空字符
\a表示英文字母
\|表示或
\.表示.
\{m,n\}表示m到n个字符
Ex:
/ge.*/ #查找以ge开头的字符串
/ge\a*/ #查找以ge开头的单词
/ge\a*\|un\a*/ #查找以ge开头或者以un开头的单词
# 使用new_pattern替换当前行第一个old_pattern
:s/old_pattern/new_pattern
# 使用new_pattern替换当前行所有的old_pattern
:s/old_pattern/new_pattern/g
# 使用new_pattern替换n1行到n2行所有的old_pattern
:n1,n2s/old_pattern/new_pattern/g
# 使用new_pattern替换文件中所有的old_pattern
:%s/old_pattern/new_pattern/g
# 在每一行的行首插入xxx内容,因为^表示行首
:%s/^/xxx/g
# 在当前行行首插入xxx内容
:s/^/xxx
# 以上替换操作末尾加上c则会使每一个替换都被确认;加上i则忽略大小写
# 使用range在匹配到某个模式后执行命令
[range]g/pattern/command
Ex:
%g/^ xyz/normal dd # 这里指针对所有开头为" xyz"的行进行删除操作
# 查找某一字串出现的次数
:%s/unmap//gn # 指"unmap"出现了多少次
# 顺序编辑多个文件
vim a.txt b.txt c.txt
# 使用:n编辑下一个文件/:N编辑上一个文件
# 分屏编辑两个文件
vim -o file1 file2 # 水平分割
vim -O file1 file2 # 垂直分割
ctrl+w w # 切换到下一个窗口
ctrl+w p # 切换到前一个窗口
# 使用~快速反转光标处大小写
# 可视模式选中后使用U/u改变为大/小写
# 使用r替换光标处的字符
# 使用R进入替换模式
# 撤销一个改动
u
# 撤销当前行中所有的改动
U
# 重做一个改动
ctrl+r
# 回到4min前
:earlier 4m
# 前进55s
:later 55s
# 大致有三种文件格式:unix, dos, mac. 三种格式的区别主要在于回车键的编码:dos 下是回车加换行,unix 下只有换行符,mac 下只有回车符
:set ff
# 使用自动补全
ctrl+n # 向下进行自动补全
ctrl+p # 向上进行自动补全
ctrl+e # 退出当前菜单
ctrl+x>ctrl+f # 补全路径
# 在normal模式下缩进
>>
# 光标以下n行缩进
[n]>>
# 在normal模式下缩出
<<
# 临时调用shell命令
:! cmd
# 长期调用shell命令,用exit返回vim
:sh
# 将命令的返回结果插入文件当前位置
:r !cmd
# 将文件的m行到n行之间的内容做为命令输入执行命令
:m,nw !cmd
# 显示工作目录
:pwd
# 改变工作目录,可tab补全
:cd pwd
# 向下搜索光标所在词
*
# 向上搜索光标所在词
#
# 统计字数
g ctrl+g
# 简单计算器: 在插入模式下,输入ctrl+r=,然后输入表达式,就能在光标处得到计算结果