在Linux中创建、查看和编辑文件

文化   2024-08-09 21:32   北京  


正文共:1888 字 16图  预估阅读时间:3 分钟

1、创建、查看、编辑文件

输入:对一个文件输入,除了键盘输入外,还可以通过一个文件输入。

输出:执行一个命令,会有相应的输出到屏幕上。输出有标准的正确输出和错误输出。

重定向:把一个输出结果,再输出到另一个文件或一个终端。

1.1、重定向

Linux中有三种标准输入输出:

  • STDIN(Standard Input):标准输入,默认从键盘读取信息。

  • STDOUT(Standard Output):标准输出,默认将输出结构输出至终端。

  • STDERR(Standard Error):标准的错误信息,默认也会显示在终端上。

由于STDOUT与STDERR都是默认显示在终端上,为了区分:

0:表示STDIN,标准输入。

1:表示STDOUT,标注输出,默认为1。

2:表示STEDERR,标准错误。

&:表示所有的正确和错误输出。

例:将ls显示内容写入到f1文件。

“>”:不在屏幕上打印内容,将内容写到文件中,这种方式称为重定向。如果命令错误,则不会向文件中写入。

禁止覆盖重定向现有文件,如果还是要强制覆盖,使用“>|”。

set -C

允许覆盖重定向:

set +C

1.2、输出重定向

1.2.1、标准正确输出重定向

“1>“:覆盖式重定向。不带前面的1,默认为正确输出。

“1>>”:以追加的方式重定向。

1.2.2、标准错误输出重定向

“2>“:覆盖。

“2>>“:追加。

1.2.3、怎么同时把标准正确和错误的输出重定向到同一个文件?

例:”echo hello > /mnt/f1 2>&1”这个命令等价于”echo hello &> /mnt/f1”,最常见的是前面一种,因为第二种“&>“只能在bash中识别。

1.3、输入重定向

从一个文件的标准输出,再把这个输出作为输入到另一个文件。

1.3.1、cat

cat 默认将键盘的输入,输出到屏幕上。

通过键盘输入,重定向到f1这个文件,以ctrl+d结束。

cat > /tmp/f1

把/etc/passwd这个文件内容作为输出给cat,然后重定向到f1这个文件。

cat > /tmp/f1 < /etc/passwd

1.3.2、tr

tr用来从标准输入中通过替换或删除操作进行字符转换,默认为替换,-d表示删除指定字符,-s表示删除所有重复出现的字符序列,只保留第一个。

将文件中小写字母换成大写,这个操作不会更改文件内容。

tr ‘a-z’ ‘A-Z’ < /mnt/f1

替换字符,将a替换1,b替换2,c替换3。

tr abc 123 < /tmp/f1

1.4、管道

1.4.1、|

把管道符前面的命令的标准输出,当作后面命令的输入。在操作之前,建议将系统文件先复制一份,以免影响系统的运行。

然后执行(在这里grep作用是搜索文件匹配指定模式的行,然后输出到屏幕):

cat /mnt/passwd | grep root

例:将f1文件中的数据变为大写重定向到f2,在这里不能重定向到原文件,只能重定向到新文件。

cat /mnt/f1 | tr ‘a-z’ ‘A-Z’ > /mnt/f2

1.4.2、tee

tee命令读取标准输入,把这些内容同时输出到标准输出和(多个)文件中,需要注意的是:在使用管道时,前一个命令的标准错误输出不会被tee取代。

tee,默认覆盖保存。-a,追加保存。

echo hello | tee /mnt/f1

1.5、read命令

接受标准输入(键盘)的输入,得到输入后,read命令将数据放入到一个标准变量中。

将键盘的输入,存放到name这个变量中:read name。

取变量的值:echo $name。

-p,打印一句话,然后等用户输入:read -p “Input your name:“ name。

1.6、vi和vim

vi和vim都是文本编辑器,vim是vi的升级版。vim会高亮显示,vi不会。

1.6.1、命令行模式

首先使用”vi /mnt/passwd”,进入passwd文件,默认进入的就是命令行模式。

1.6.2、编辑模式

从命令行进入编辑模式的方式:

回到命令行模式,按esc键,切换到其他模式必须先回到命令行模式,再切换。图形化下用鼠标复制粘贴内容,要先进入编辑模式,否则会掉东西。

1.6.3、末行模式

进入vim内置的命令行接口(在命令行模式下:)

例:全局替换,将所有root替换为ROOT。

:1,$s/root/ROOT/g

1.6.4、visual可视模式

最主要的功能:可以分区块的选中文件内容。

v:选中连续字符,然后可以用x删除,d剪切,y复制。

V:选中整行。

Ctrl+v:选中区块,注意:XShell不支持。

在连续的多行前面添加一个#号:1、必须使用vim,进入文件后,ctrl+v。按下大写l,然后使用#,最后esc退出。

注意:一个文件,不能同时被多个人编辑,会造成文件损坏。正在编辑的文件,会在文件当前目录产生一个.swap缓存文件,,如果当另一个程序打开此文件时,发现了这个.swap文件,表示此文件已经在被编辑,不允许同时编辑如果这时。如果意外退出vim,可通过这个缓存文件找到之前编辑的内容。比如,正在用vim编辑的文件,ctrl+z,将该操作放到后台;jobs,查看后台运行程序,找到刚才的命令编号;kill -9 %1,杀掉该命令,模拟意外中断。这时,再用vim打开该文件,会有提醒:有多人打开这个文件;2、这个文件上次编辑时,意外中断。可以按提示,R恢复文件,D删除缓存文件等。

1.6.5、同时编辑多个文件

vim f1 f2

:file:列出打开的所有文件。

:n:切换到下一个文件。

:N:切换到上一个文件。

:wall:保存所有。

:qall:退出所有。

-o:多个文件同时打开,水平分割显示。

-O:多个文件同时打开,垂直分割线显示。

1.6.6、定制vim

配置文件:/etc/vimrc

~/.vimrc

注意,用户家目录下的.vimrc,默认没有需要自己创建。

vim ~/.vimrc

默认开启行标:

set nu

开启括号匹配,高亮显示。

set showmatch

忽略大小写:set ic

一个tab宽度为4的空格宽度:

set ts=4

用space代替tab:

set expandtab

开启自动缩进:

set ai

缩进时,默认8个空格,使用4个空格:

set sw=4

长按二维码
关注我们吧

       

           
更多推荐
           

在Linux中命令行管理文件和帮助

在VMware安装一台CentOS虚拟机

访问Liunx命令行
       

铁军哥
高级网络规划设计师,中国电信高级技术规划工程师,天翼云认证高级解决方案架构师,H3C认证网络工程师。 继续加油,努力传播知识,影响更多人!
 最新文章