Linux学习之旅(4)---文件的基本操作

内容整理自菜鸟教程和c语言中文网的Linux教程

Linux vi/vim

vi是Liunx系统自带的文书编辑器,但目前使用较多的是vim编辑器,vim具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。

vi/vim的使用

基本上vi/vim共分为3中模式,分别为命令模式(Command mode)、输入模式(Insert mode)底线模式(Last line mode)

命令模式:

用户启动vi/vim,初始状态便为命令模式。在命令模式下键盘上的动作会被识别为命令,而非输入字符。

以下是常用的命令:

移动光标的方法
h或向左箭头键(←)光标向左移动一个字符
j或向下箭头键(↓)光标向下移动一个字符
k或向上箭头键(↑)光标向上移动一个字符
l或向右箭头键(→)光标向右移动一个字符

如果需要需要移动多行,可以在字符前加数字。例如向下移动5行就输入5j。

移动光标的方法
ctrl+f屏幕向下移动一页
ctrl+b屏幕向上移动一页
ctrl+d屏幕向下移动半页
ctrl+u屏幕向上移动半页
+光标移动到非空格符的下一行
-光标移动到非空格符的上一行
n<space>n表示数字,space为空格。光标向右移动n的字符
0或Home移动到当前行的最前面的字符处
$或End移动到当前行的最后面的字符处
H光标移动到这个屏幕的最上方那一行的第一个字符
M光标移动到当前屏幕中央的那一行的第一个字符
L光标移动到当前屏幕最下方的那一行的第一个字符
G移动到当前文件的最后一行
nGn表示数字,移动到当前文件的第n行
gg移动到当前文件的第一行,相当于1g
n<Enter>n为数字。光标向下移动n行。
搜索与替换
/word向光标之下寻找名为“word”的字符串
?word向光标之上寻找名为“word”的字符串
n重复前一个搜寻的动作
N和n刚好相反,为反向进行前一个搜索动作

使用/word配合n和N。可以重复的找到一些搜寻的关键词。

搜索与替换   
:n1,n2s/word1/word2/gn1和n2为数字。将n1和n2之间的word1替换为word2 
:1,$s/word1/word2/g从第一行到最后一行将n1和n2之间的word1替换为word2,
:%s/word1/word2/g同上   
:1,$s/word1/word2/gc从第一行到最后一行将n1和n2之间的word1替换为word2,并询问用户
:%s/word1/word2/gc同上   
删除、复制与粘贴
x向后删除一个字符
X向前删除一个字符
nxn为数字,连续向后删除n个字符。
dd删除游标所在的一整行
ndd删除游标所在的向下n行
d1G删除光标所在位置到第一行的所有数据
dG删除光标所在位置到最后一行的所有数据
d$删除光标所在位置到该行的最后一个字符
d0删除光标所在位置到该行的最前面的一个字符
复制和删除的操作差不多就是将d换成y
yy复制光标所在那一行(其他类似)
p(小)将以复制的数据在光标的下一行粘贴
P(大)将以复制的数据在光标的上一行粘贴
J将光标所在行与下一行结合为同一行
u复原前一个动作
ctrl+r重做上一个动作
.(小数点)重复前一个动作

输入模式:

在命令模式下按下“i”就会进入输入模式。在输入模式中将相当于进入了windows中的记事本。

进入输入或取代编辑模式
i进入输入模式:从目前光标所在位置输入
I进入输入模式:从目前光标所在行的第一个非空格字符除开始输入
a进入输入模式:从目前光标的所在位置的下一个字符开始输入
A进入输入模式:从目前光标的所在行的最后一个字符处开始输入
o进入输入模式:从目前光标所在行的下一行处输入新的一行
O进入输入模式:从目前光标所在行的上一行处输入新的一行
r进入取代模式:r只会取代光标所在位置的那一个字符一次
R进入取代模式:R一直取代光标所在位置的字符,直到按下Esc为止
Esc退出编辑模式,回到一般模式。

在输入模式中vi/vim左下角会显示【INSERT】(输入)或【REPLACE】(替换)的字样。

底线命令模式:

在命令模式下按下“:(英文冒号)”就会进入底线命令模式。底线命令模式可以输入单个或者多个字符的命令,可用的命令非常多。在底线命令模式中,基本的命令有:

指令行的存储、离开、等指令
w保存
w!强制保存,一般需要管理员权限
q退出(不保存)
q!强制退出,不保存
wq退出并保存
ZZ(大写)若文件没有更改,则不存储离开,若文件已经被改动则存储后离开
w[filename]另存为
r[filename]将另一个文件的数据追加到游标所在行的后面
n1,n2w[filename]将n1到n2的内容存储成filename这个文件
!command暂时离开vi到 指令模式执行command的显示结果
set nu显示行号
set nonu取消行号

创建文件

vim 文件名

如果存在该文件则打开,如果不存在该文件则创建该文件。

查看文件内容

cat filename 
cat -b filename //加上-b会显示行号

统计单词数目

wc filename

用于显示文件中的行数、单词数、和字符数。

第一行为行数、第二行为单词数、第三行为字符数、第四行为文件名。

复制文件

cp source_file destination_file

将source_file的内容复制到destination_file中。

文件重命名

mv oleFileName newFileName

mv命令还是一个移动文件命令,不但可以更改文件的路径,也可以更改文件名。

删除文件

rm 文件名1 文件名2 ......

可以和删除一个或者多个文件。

元字符

元字符是具有特殊含义的字符。*和?都是元字符:

(1)*可以匹配0个或者多个任意字符。

(2)?匹配一个字符。

和正则表达式是一样的。

ls ch*.doc//显示当前目录下所由一ch开头以.doc结尾的文件。

隐藏文件

隐藏文件的第一个字符为英文句号或者点号(.),Linux程序(包括Shell)通常使用隐藏文件来保存配置信息。

ls -a //显示当前目录的下所有文件

一个点号(.)表示当前目录,两个点号表示(..)上一层目录。

标准的Linux流

一般情况下,每个linux程序运行时,都会创建三个文件流(三个文件):

(1)标准输入流(stdin):stdin的文件描述符为0,Linux程序默认从stdin读取数据。

(2)标准输出流(stdout):stdout的文件描述符为1,Linux程序默认向stdout输出数据。

(3)标准错误流(stderr):stderr的文件描述符为2,Linux程序会向stderr流中写入错误信息。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值