文件目录操作

cd

cd     进入用户主目录;
cd ~   进入用户主目录;
cd -   返回进入此目录之前所在的目录;
cd .   还在当前目录
cd ..  返回上级目录(若当前目录为“/“,则执行完后还在“/";".."为上级目录的意思);
cd /   进入根目录(“/“)

pwd     查看当前目录
1
2
3
4
5
6
7
8

vi

命令模式(Command mode)

a:在当前字符后添加文本;
A:在行末添加文本;
i:在当前字符前插入文本;
I:在行首插入文本;
o:在当前行后面插入一空行;
O:在当前行前面插入一空行;

x或X:删除一个字符,x删除光标后的,而X删除光标前的;
D:删除从当前光标到光标所在行尾的全部字符;
dd:删除光标行正行内容

# 如果修改过,保存当前文件,然后退出!效果等同于(保存并退出)
ZZ
# 不保存,强制退出。效果等同于 :q!
ZQ

# 翻页
Ctrl+u:向文件首翻半屏;
Ctrl+d:向文件尾翻半屏;
Ctrl+f:向文件尾翻一屏;
Ctrl+b:向文件首翻一屏;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

输入模式(Insert mode)

# 从编辑模式切换到命令模式
Esc
# 回车键,换行
Enter
# 退格键,删除光标前一个字符
Backspace
# 删除键,删除光标后一个字符
DEL
# 移动光标到行首/行尾
HOME/END
# 上/下翻页
Page Up/Page Down
1
2
3
4
5
6
7
8
9
10
11
12

底线命令模式(Last line mode)

# 保存并退出
:wq

# 保存
:w

# 强制保存
:w!

# 退出
:q

# 强制退出
:q!

# 显示行号
:set nu

# 不显示行号
:set nonu

# 光标跳转到指定行的行首
:行号

# 光标跳转到最后一行的行首
:$

# 从当前光标所在位置开始向文件尾部查找 
# 小写n匹配下一个
/word

# 从当前光标所在位置开始向文件头部查找
?word
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33

复制

复制一行

  • 把光标移动到要复制的行上 按yy
  • 把光标移动到要复制的位置 按p

从光标行复制到最后一行

$代表最后一行,也可以直接输入行号数字 .,10/y

  • 光标定位到起始行
  • shift+: 进入命令模式
  • 依次输入 .,$y (.光标位置 $代表最后一行 y复制)
  • 按回车 完成copy
  • 光标移动到要复制的位置 按p 粘贴

批量替换(#->$)

  • 光标定位到起始行
  • shift+: 进入命令模式
  • 依次输入 .,$s/#/$/ (.光标位置 $代表最后一行 s替换 把#替换成$)
  • 按回车 完成替换

cat、more、less

cat -n /etc/profile | more

# -n 显示行号

# 按Enter键:下一行
# 按Space键:下一页
# 按Q键:退出

cat -n /etc/profile | less

# 用PageUp键向上翻页,用PageDown键向下翻页
# 按Enter键:下一行。
# 按Q键:退出

# 查找指定内容PATH、"export PATH",有空格要用""
cat /etc/profile | grep PATH
cat /etc/profile | grep "export PATH"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

tail、head

# 查找文件的开头的内容
# 前5行
head -5 /etc/profile
head -n +5 /etc/profile
# 显示第一行到倒数5行
head -n -5 /etc/profile

# -n 头部内容的行数
# -v 显示文件名

# 查找文件的结尾的内容
# 最后5行
tail -5 /etc/profile
tail -n -5 /etc/profile
# 从第5行至文件末尾
tail -n +5 /etc/profile

# -n 结尾内容的行数
# -v 显示文件名
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

统计

# 统计某个字符串出现的次数
grep -o objStr filename|wc -l

# 如果是多个字符串出现次数,直接用\| 链接起来
grep -o 'objStr1\|objStr2' filename|wc -l

# wc命令介绍:l表示行数; w表示英文单词数; m表示字符数
wc [-lwm]

# 统计home目录下文件/目录数(只查一级)
# 查找文件数量
ls -l /home | grep '^-' | wc -l
# 查找目录数量
ls -l /home | grep '^d' | wc -l

# 统计home目录下所有文件/目录数(递归查所有, 含子子孙孙)
# 查找文件数量
ls -lR /home | grep '^-' | wc -l
# 查找目录数量
ls -lR /home | grep '^d' | wc -l
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

directory

# 批量创建目录
mkdir -p /opt/{install,package,source/{backend,frontend}}

# 远程拷贝source目录到node02相同路径
[root@node01 opt]# scp -r ./source/ node02:`pwd`
# 远程拷贝profile文件到node02的etc目录
[root@node01 ~]# scp /etc/profile node02:/etc
1
2
3
4
5
6
7
[root@localhost zookeeper]# scp -r ./apache-zookeeper-3.6.3-bin/ 172.16.2.141:`pwd`
ssh_exchange_identification: read: Connection reset by peer
lost connection

[root@localhost zookeeper]# scp -r ./apache-zookeeper-3.6.3-bin/ 172.16.2.141:`pwd`
ssh_exchange_identification: Connection closed by remote host
lost connection


vi /etc/hosts.allow
## 允许所有ip主机均能连接本机
sshd: ALL   
## 或者指定网段
sshd:192.168.*:allow
sshd:172.16.*:allow
sshd:10.*:allow
# 重启sshd
systemctl restart sshd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
总字数: 1,298 字  上次更新: 2023-03-14 00:25:11