linux 基础操作(三)

查看指定目录下的文件列表

[root@localhost home]# ls
beijing  oracle
[root@localhost home]# ls /
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  u01  usr  var
[root@localhost home]# ls /tmp
test  test.txt

mkdir 可以单独建立目录 dir1

[root@localhost tmp]# ls
test  test.txt
[root@localhost tmp]# mkdir dir1
[root@localhost tmp]# ls
dir1  test  test.txt

mkdir 也可以同时建立多个目录

[root@localhost tmp]# ls
dir1  test  test.txt
[root@localhost tmp]# mkdir dir2 dir3 dir4 dir5
[root@localhost tmp]# ls
dir1  dir2  dir3  dir4  dir5  test  test.txt
[root@localhost tmp]# 

使用绝对路径创建目录 test

[root@localhost /]# pwd
/
[root@localhost /]# mkdir /tmp/localTest
[root@localhost /]# cd /tmp
[root@localhost tmp]# ls
dir1  dir2  dir3  dir4  dir5  localTest  test  test.txt

rmdir 删除目录

[root@localhost tmp]# ls
dir1  dir2  dir3  dir4  dir5  localTest  test  test.txt
[root@localhost tmp]# rmdir localTest
[root@localhost tmp]# ls
dir1  dir2  dir3  dir4  dir5  test  test.txt
[root@localhost tmp]# rm -rf dir5
[root@localhost tmp]# ls
dir1  dir2  dir3  dir4  test  test.txt

删除多个目录

[root@localhost tmp]# ls
dir1  dir2  dir3  dir4  test  test.txt
[root@localhost tmp]# rm -rf dir4 dir3
[root@localhost tmp]# ls
dir1  dir2  test  test.txt
[root@localhost tmp]# rmdir dir2 dir1
[root@localhost tmp]# ls
test  test.txt

复制文件

cp 源文件 目标位置
[root@localhost tmp]# ls
test  test.txt
[root@localhost tmp]# cp test.txt test
[root@localhost tmp]# ls
test  test.txt
[root@localhost tmp]# cd test
[root@localhost test]# ls
test.txt

mv 移动文件或者重命名

移动文件

[root@localhost test]# ls
test.txt
[root@localhost test]# mv test.txt ../localTest.txt
[root@localhost test]# ls
[root@localhost test]# cd ../
[root@localhost tmp]# ls
localTest.txt  test  test.txt

重命名文件

利用 mv 重命名,就是说源文件和目标文件在同一目录就是文件重命名。

[root@localhost tmp]# ls
localTest.txt  test  test.txt
[root@localhost tmp]# mv test.txt table.txt
[root@localhost tmp]# ls
localTest.txt  table.txt  test

vi 编辑器

进入文件

vi filename

输入 q!是强制退出,同时没有保存当前文件内容。

:q! 不保存退出

如果文件没有进行修改,或者已经保存完毕也可以使用 q 退出。

保存退出使用 wq

:wq
相当于ZZ

保存强制退出 wq!

:wq! 所有者和root用户可以强制保存退出

如果文件已经有文件名,我们在末行模式直接输入 w 保存,如果没有文件名,输入 w 文件名进行保存。

例如: w test 其中 test 是文件名。

:w 保存不退出

在 vi 中也可以另存为,就是在保存完以后,我们再使用 w 另存为文件名。

:w /tmp/service 另存为/tmp/service

光标方向的移动

除了可以使用方向键,还可以使用以下命令
向上移动光标: k
向左移动光标: h
向右移动光标: l
向下移动光标: j

h、方向左键
j、方向下键
k、方向上键
l、方向右键
$、移至行尾
0、移至行首
H、移至屏幕上端
M、移至屏幕中央
L、移至屏幕下端
gg到第一行
G到最后一行
nG到第n行
:n到第n行

翻页命令

Ctrl+F 向前翻整页 Ctrl+U 向前翻半页
Ctrl+B 向后翻整页 Ctrl+D 向后翻半页

行内快数跳转

^ 移动到本行行首
$ 移动到本行行尾

显示行号和取消行号 (末行模式使用)

set nu 显示行号
set nonu 取消行号

:set nu

编辑操作

切换命令模式和插入模式

esc

切换命令模式和编辑模式

进入输入模式命令
i 插入命令 a 附加命令 o 打开命令 c 修改命令

iao

r 取代命令 s 替换命令 Esc 退出命令

a-----在光标后附加文本
A-----在文本行行末附加文本
i------在光标前插入文本
I------在本行开始插入文本
o-----在光标下插入新行
O-----在光标上插入新行

输入模式的操作

Home 光标到行首
End 光标到行尾
Page Up 和 Page Down 上下翻页
Delect 删除光标位置的字符

删除操作 (命令模式使用)

x删除光标处的单个字符
dw删除当前字符到单词尾包括空格的所有字符
x删除光标所在处字符
nx删除光标所在处后n个字符
dd删除光标所在行
ndd删除n行
dG删除光标所在行到末尾的内容
D删除从光标所在处到行尾
:n1,n2d删除指定范围的行

#x 例如 3x 删除光标处向右的三个字符
#dd 例如 3dd 从当前行开始向下删除三行文本

撤销操作

u 命令取消最近一次的操作,可以使用多次来恢复原有的操作
U 取消所有操作
Ctrl+R 可以恢复对使用 u 命令的操作

复制操作

yy 命令复制当前整行的内容到 vi 缓冲区
yw 复制当前光标所在位置到单词尾字符的内容到 vi 缓存区,相当于复制一个单词
y$ 复制光标所在位置到行尾内容到缓存区
y^ 复制光标所在位置到行首内容到缓存区
#yy 例如: 5yy 就是复制 5 行
#yw 例如: 2yw 就是复制两个单词
如果要复制第 m 行到第 n 行之间的内容,可以在末行模式中输入 m, ny 例如: 3, 5y 复制第三行到第五行内
容到缓存区。

yy、Y复制当前行
nyy、nY复制当前行以下n行
dd剪切当前行
ndd剪切当前行以下n行
p、P粘贴在当前光标所在的行下或行上

vi 的查找和替换功能主要在末行模式完成

至上而下的查找

/ 要查找的字符窜,其中 / 代表从光标所在位置起开始查找,例如: / work

至下而上的查找

?要查找的字符窜 例如: / work

/string 向前搜索指定字符串,搜索时忽略大小写:set ic,搜索时区分大小写:set noic
n 搜索指定字符串的下一个出现位置(从前往后找)
N 搜索指定字符串的下一个出现位置(从后往前找)
:%s/old/new/g 全文替换指定字符串
:n1,n2s/old/new/g 在指定范围内替换指定字符串 g不询问,c询问
替换

:s/old/new 用 new 替换行中首次出现的 old
: s/old/new/g 用 new 替换行中所有出现的 old
:#,# s/old/new/g 用 new 替换从第#行到第#行中出现的 old
:% s/old/new/g 用 new 替换整篇中出现的 old
如果替换的范围较大时,在所有的命令尾加一个 c 命令,强制每个替换需要用户进行确认,例如
:s/old/new/c 或 s/old/new/gc

r取代光标所在处字符
R从光标所在处开始替换字符,按ESC结束
u取消上一步操作

恢复文件

vi 在编辑某一个文件时,会生成一个临时文件,这个文件以 . 开头并以 .swp 结尾。正常退出该文件自动删
除,如果意外退出例如忽然断电,该文件不会删除,我们在下次编辑时可以选择一下命令处理:
O 只读打开,不改变文件内容
E 继续编辑文件,不恢复.swp 文件保存的内容
R 将恢复上次编辑以后未保存文件内容
Q 退出 vi
D 删除.swp 文件
或者使用 vi -r 文件名来恢复未保存的内容

编辑文件之前最好备份

cp /test/testfile /test/testfiletmp
vi /test/testfile

应用

:r 文件名 导入文件
:!命令 在文本中执行命令
:r !命令 导入命令的结果
:map 快捷键 触发命令 定义快捷键
:map ^p I#<ESC> CTRL+V CTRL+P 或者 CTRL+V+P 移动到行首添加#然后进入命令模式
:map ^b 0x
unmap ^b 取消快捷键设置

上一篇 linux 基础操作(二)
下一篇 linux 基础操作(四)