为您找到与linux文本快捷键相关的共200个结果:
相信很多人都知道什么是系统文件,但很少人知道文本流是什么,其实文本流不难理解,下面小编就给大家详细介绍下Linux文本流,一起来学习下吧。
文本流
文件用于数据的存储,相当于一个个存储数据的房子。我们之前说,所谓的数据是0或者1的序列,但严格来说,Linux以字节(byte)来作为数据的单位,也就是说这个序列每八位(bit)为一个单位(八位二进制对应的十进制范围为0到255)。使用ASCII编码,可以将这样一个字节转换成为字符。所以,在Linux中,我们所说的数据,完全可以用字符表达出来,也就是说文本(text)的形式。
实际上,如果以bit为单位处理字符的话,机器会更容易读懂和传输,效率会更高。但为什么Linux依然以字节为单位进行处理呢?原因在于,相对于以bit为单位处理数据,以byte为单位可以更容易将数据转化为字符。相对于枯燥的0和1,字符更容易被人读懂 (human readable)。然而,并不是所有的数据都是设计来让人读懂的,比如可执行文件包含的各种字符对于人来说并没有什么意义 (因为可执行文件是为了让机器读懂的)。但Linux依然以字节为单位处理所有文件,这是为了让所有文件能够共用一套接口 (virtual file system),从而减少Linux设计的复杂度。
(“everything is a file”是通常所流传的UNIX设计的哲学之一,但Linus对此作出纠正,改为“everything is a stream of bytes”。)
然而,数据不是在找到了自己的房子(file)之后就永远的定居下来。它往往要被读入到内存 (就像是到办公室上班),或者被传送到外部设备(好像去酒店休假),或者搬到别的房子中。在这样的搬迁过程中,数据像是一个个排着队走路的人流,我们叫它文本流(text stream,或者byte stream)。然而,计算机不同设备之间的连接方法差异很大,从内存到文件的连接像是爬山,从内存到外设像是游过一条河。为此,Linux还定义了流 (stream),以此作为修建连接各处的公路的标准。Stream的好处在于,无论你是从内存到外设,还是从内存到文件,所有的公路都是相同的 (至于公路下面是石头还是土地,都可以不用操心)。
我们再回味一下“everything is a stream of bytes”这句话。信息包含在文本流中,不断在计算机的各个组件之间流动,不断地接受计算机的加工,最终成为用户所需要的某种服务。
(说句题外话,如果看过骇客帝国的话,一定会对文本流印象深刻。)
标准输入,标准输出,标准错误与重新定向
当Linux执行一个程序的时候,会自动打开三个流,标准输入(standard input),标准输出(standard output),标准错误(standard error)。比如说你打开命令行的时候,默认情况下,命令行的标准输入连接到键盘,标准输出和标准错误都连接到屏幕。对于一个程序来说,尽管它总会打开这三个流,但它会根据需要使用,并不是一定要使用。
想象一下敲击一个
代码如下:
$ls
键盘敲击的文本流(“ls”,是回车时输入的字符,表示换行)命令行 (命令行实际上也是一个程序)。命令行随后调用/bin/ls得到结果(“a.txt”),最后这个输出的文本流(“a.txt”)流到屏幕,显示出来,比如说:
代码如下:
a.txt
假设说我们不想让文本流流到屏幕,而是流到另一个文件,我们可以采用重新定向(redirect)的机制。
代码如下:
$ls 》 a.txt
重新定向标准输出。这里的》就是提醒命令行,让它知道我现在想变换文本流的方向了,我们不让标准输出输出到屏幕,而是要到a.txt这个文件 (好像火车轨道换轨)。此时,计算机会新建一个a.txt的文件,并将命令行的标准输出指向这个文件。
有另一个符号:
代码如下:
$ls 》》 a.txt
这里》》的作用也是重新定向标准输出。如果a.txt已经存在的话,ls产生的文本流会附加在a.txt的结尾,而不会像》那样每次都新建a.txt。
我们下面介绍命令echo:
代码如下:
$echo IamVamei
echo的作用是将文本流导向标准输出。在这里,echo的作用就是将IamVamei输出到屏幕上。如果是
代码如下:
$echo IamVamei 》 a.txt
a.txt中就会有IamVamei这个文本。
我们也可以用《符号来改变标准输入。比如cat命令,它可以从标准输入读入文本流,并输出到标准输出:
代码如下:
$cat 《 a.txt
我们将cat标准输入指向a.txt,文本会从文件流到cat,然后再输出到屏幕上。当然,我们还可以同时重新定向标准输出:
代码如下:
$cat 《 a.txt 》 b.txt
这样,a.txt的内容就复制到了b.txt中。
我们还可以使用》&来同时重新定向标准输出和标准错误。假设我们并没有一个目录void。那么
代码如下:
$cd void 》 a.txt
会在屏幕上返回错误信息。因为此时标准错误依然指向屏幕。当我们使用:
代码如下:
$cd void 》& a.txt
错误信息被导向a.txt。
如果只想重新定向标准错误,可以使用2》:
代码如下:
$cd void 2》 a.txt 》 b.txt
标准错误对应的总是2号,所以有以上写法。标准错误输出到a.txt,标准输出输出到b.txt。
管道 (pipe)
理解了以上的内容之后,管道的概念就易如反掌。管道可以将一个命令的输出导向另一个命令的输入,从而让两个(或者更多命令)像流水线一样连续工作,不断地处理文本流。在命令行中,我们用|表示管道:
代码如下:
$cat 《 a.txt | wc
wc命令代表word count,用于统计文本中的行、词以及字符的总数。a.txt中的文本先流到cat,然后从cat的标准输出流到wc的标准输入,从而让wc知道自己要处理的是a.txt这个字符串。
Linux的各个命令实际上高度专业化,并尽量相互独立。每一个都只专注于一个小的功能。但通过pipe,我们可以将这些功能合在一起,实现一些复杂的目的。
总结
文本流,标准输入,标准输出,标准错误
cat, echo, wc
》, 》》, 《, |
上面就是Linux文本流的详细介绍了,本文主要介绍了标准输入、标准输出、标准错误和重定向,那么你对Linux文本流有一定的了解了吗?
浏览量:2
下载量:0
时间:
Linux系统操作中,相信很多人都没有使用快捷键的习惯,觉得鼠标点方便些,其实在某些操作中,使用快捷键能节省不少时间,下面读文网小编就给大家详细介绍下Linux系统快捷键,一起来看看吧。
ctrl + a 将光标移动到命令行开头相当于VIM里shift+^
ctrl + e 将光标移动到命令行结尾处相当于VIM里shift+$
ctrl + f 光标向后移动一个字符相当于VIM里l
ctrl + b 光标向前移动一个字符相当于VIM里h
ctrl + 方向键左键 光标移动到前一个单词开头
ctrl + 方向键右键 光标移动到后一个单词结尾
ctrl + x 在上次光标所在字符和当前光标所在字符之间跳转
alt + f 跳到光标所在位置单词尾部
浏览量:2
下载量:0
时间:
awk是Linux中的文本处理工具,类似于shell编程语言,拥有属于自己的语言,下面读文网小编就给大家介绍下Linux中awk文本处理工具的用法,感兴趣的朋友可以来了解一下。
ARGC:命令行参数个数
ARGV:命令行参数排列
ENVIRON:UNIX环境变量
ERRNO:UNIX系统错误消息
FILENAME:awk浏览的文件名
OFMT:数字的输出格式 %.6g
FNR:浏览文件的记录数
FS:设置输入域分隔符,等价于命令行 -F选项
NF:浏览记录的域的个数
NR:已读的记录数,就是行号,从1开始
FNR:当前记录数
OFS:输出域分隔符
ORS:输出记录分隔符
RS:控制记录分隔符
$0:当前记录(作为单个变量)
$1~$n:当前记录的第n个字段,字段间由FS分隔
浏览量:2
下载量:0
时间:
现在有很多软件能够将文本文件转换成PDF文件,其实在Linux系统中,不用使用软件也能将文本文本转换成PDF,只需轻松两步,下面读文网小编就给大家介绍下Linux将文本文件转换成PDF文件的方法。
问题:我想要将一个纯文本文件转换成PDF文档。在Linux命令行下是否有一个简单的方法将文本文件转换成PDF文件?
当你有一大堆文本文件要维护的时候,把它们转换成PDF文档会好一些。比如,PDF更适合打印,因为PDF文档有预定义布局。除此之外,还可以减少文档被意外修改的风险。
要将文本文件转换成PDF格式,你要按照下面的两步。
准备工作
首先你要安装两个需要的包。
在 Debian、Ubuntu 或者 Linux Mint上:
$ sudo apt-get install enscript ghostscript
在 Fedora、CentOS/RHEL上:
$ sudo yum install enscript ghostscript
在 Arch Linux上:
$ sudo pacman -S enscript ghostscript
将文本文件转换成PDF格式
准备工作完成之后,按照下面的两步从文本文件生成一个PDF文件
首先,使用enscript命令行工具将文本文件转换成postscript格式。
$ enscript -p output.ps input.txt
最后将postscript格式文件转换成PDF文件。
$ ps2pdf output.ps output.pdf
上面就是Linux将文本文件转换成PDF的步骤介绍了,这里需要使用到命令行工具,如果对命令行不是很了解的朋友,也可下载相关工具进行转换。
浏览量:2
下载量:0
时间:
最近有网友想了解下linux Bash 快捷键大全的知识,所以读文网小编就整理了相关资料分享给大家,具体内容如下.希望大家参考参考!!!
以上介绍的大多数 Bash 快捷键仅当在 emacs 编辑模式时有效,若你将 Bash 配置为 vi 编辑模式,那将遵循 vi 的按键绑定。
Bash 默认为 emacs 编辑模式。如果你的 Bash 不在 emacs 编辑模式,可通过 set -o emacs 设置。
^S、^Q、^C、^Z 是由终端设备处理的,可用 stty 命令设置。
浏览量:2
下载量:0
时间:
了解下面这些CorelDRAW 文本编辑操作中的快捷键,能帮助我们在设计工作中事半功倍。下面读文网小编给大家整理了一些关在coreldraw文本快捷键的使用。希望大家喜欢。
显示所有可用/活动的 HTML 字体大小的列表 【Ctrl】+【Shift】+【H】
将文本对齐方式更改为不对齐 【Ctrl】+【N】
在绘画中查找指定的文本 【Alt】+【F3】
更改文本样式为粗体 【Ctrl】+【B】
更改文本样式为斜体 【Ctrl】+【I】
将文本对齐方式更改为行宽的范围内分散文字 【Ctrl】+【H】
将文本对齐方式更改为左对齐 【Ctrl】+【L】
将文本对齐方式更改为右对齐【Ctrl】+【R】
更改选择文本的大小写 【Shift】+【F3】
将字体大小减小为上一个字体大小设置。 【Ctrl】+小键盘【2】
将字体大小减小为字体大小列表中上一个可用设置【Ctrl】+小键盘【4】
将字体大小增加为字体大小列表中的下一个设置【Ctrl】+小键盘【6】
将字体大小增加为下一个字体大小设置。 【Ctrl】+小键盘【8】
将文本对齐方式更改为居中对齐 【Ctrl】+【E】
将文本对齐方式更改为两端对齐 【Ctrl】+【J】
将所有文本字符更改为小型大写字符 【Ctrl】+【Shift】+【K】
删除文本插入记号右边的字 【Ctrl】+【Del】
删除文本插入记号右边的字符 【Del】
添加/移除文本对象的首字下沉格式 (切换) 【Ctrl】+【Shift】+【D】
选定“文本”标签,打开“选项”对话框 【Ctrl】+【F10】
更改文本样式为带下划线样式 【Ctrl】+【U】
显示非打印字符 【Ctrl】+【Shift】+【C】
向上选择一段文本 【Ctrl】+【Shift】+【↑】
向上选择一个文本框 【Shift】+【PageUp】
向上选择一行文本 【Shift】+【↑】
向上选择一段文本 【Ctrl】+【Shift】+【↑】
向上选择一个文本框 【Shift】+【PageUp】
向上选择一行文本 【Shift】+【↑】
向下选择一段文本 【Ctrl】+【Shift】+【↓】
向下选择一个文本框 【Shift】+【PageDown】
向下选择一行文本 【Shift】+【↓】
选择文本结尾的文本 【Ctrl】+【Shift】+【PageDown】
选择文本开始的文本 【Ctrl】+【Shift】+【PageUp】
选择文本框开始的文本 【Ctrl】+【Shift】+【Home】
选择文本框结尾的文本 【Ctrl】+【Shift】+【End】
选择行首的文本 【Shift】+【Home】
选择行尾的文本 【Shift】+【End】
选择文本插入记号右边的字 【Ctrl】+【Shift】+【←】
选择文本插入记号右边的字符 【Shift】+【←】
选择文本插入记号左边的字 【Ctrl】+【Shift】+【→】
选择文本插入记号左边的字符 【Shift】+【→】
将文本插入记号向上移动一个段落 【Ctrl】+【↑】
将文本插入记号向上移动一个文本框 【PageUp】
将文本插入记号向上移动一行 【↑】
将文本插入记号移动到文本结尾 【Ctrl】+【PageDown】
将文本插入记号向下移动一个段落 【Ctrl】+【↓】
将文本插入记号向下移动一个文本框 【PageDown】
将文本插入记号向下移动一行 【↓】
将文本插入记号移动到文本开头 【Ctrl】+【PageUp】
将文本插入记号移动到文本框结尾 【Ctrl】+End
将文本插入记号移动到文本框开头 【Ctrl】+【Home】
将文本插入记号移动到行首 【Home】
将文本插入记号移动到行尾 【End】
将文本插入记号向左移动一个字 【Ctrl】+【→】
将文本插入记号向左移动一个字符 【→】
将文本插入记号向右移动一个字 【Ctrl】+【←】
将文本插入记号向右移动一个字符 【←】
显示所有可用/活动字体粗细的列表 【Ctrl】+【Shift】+【W】
显示一包含所有可用/活动字体尺寸的列表【Ctrl】+【Shift】+【P】
显示一包含所有可用/活动字体的列表【Ctrl】+【Shift】+【F】
显示所有绘画样式的列表【Ctrl】+【Shift】+【S】
看过“coreldraw文本快捷键的使用 “的认还看了:浏览量:2
下载量:0
时间:
tr命令可以用来对文本进行压缩删除以及替换等多种操作,十分强大,下面读文网小编介绍了Linux系统中文本操作命令tr的使用讲解,希望大家喜欢。
可以把tr看作为一个简化的sed工具,tr表示为:translate。tr命令主要用于实现以下两个功能
替换操作的字符串转换。
删除操作的字符串转换,可以很容易的删除一些控制字符或者是空行。
tr命令能够实现的功能,都能够用sed命令来实现。但就具体的替换功能来说,tr用起来更容易,也比较简单。
一,命令格式
[html]
tr [option] ["string1"] ["string2"] < file
常用的选项有:
默认选项。就是没有任何选项的时候,tr默认为替换操作,就是将string1在文件中出现的字符替换为string2中的字符,这里要注意的是替换关系。
-c选项,用string1中字符的补集替换string1,这里的字符集为ASCII。
-d选项,删除文件中所有在string1中出现的字符。
-s选项,删除文件中重复并且在string1中出现的字符,只保留一个。
-c选项在使用时,只是将string1替换为现在的补集,如在使用
C代码
[html]
[root@localhost client]# echo "hello world,root,2012" | tr -c "0-9" "*"
*****************2012*
可以看出,我们使用0-9,添加-c选项后,会把0-9替换为其补集,这时补集自然不包含0-9,而包含很多其它的字符,接下来就把所有的其它字符都替换成*号,但不包含数字。
如果只需要替换数字的话:
C代码
[html]
[root@localhost client]# echo "hello world,root,2012" | tr "0-9" "*"
hello world,root,****
二,字符串的取值范围
指定string或string2的内容时,只能使用单字符或字符串范围或列表。
[a-z] a-z内的字符组成的字符串。
[A-Z] A-Z内的字符组成的字符串。
[0-9] 数字串。
octal 一个三位的八进制数,对应有效的ASCII字符。
[O*n] 表示字符O重复出现指定次数n。因此[O*2]匹配OO的字符串。
三,控制字符的不同表达方式
速记符 含义 八进制方式
a Ctrl-G 铃声 07
Ctrl-H 退格符 10
f Ctrl-L 走行换页 14
Ctrl-J 新行 12
Ctrl-M 回车 15
Ctrl-I tab键 11
v Ctrl-X 30 注意这些控制字符,如果想在linux下输入,如我们可能需要输入^M这种字符,只需ctrl+V+M同时按下即可。
四,字符替换
这是tr的默认操作,先看下面的命令和输出
C代码
[html]
[root@localhost client]# echo "hello world" | tr "a-z" "A-Z"
HELLO WORLD
[root@localhost client]# echo "hello world" | tr "a-l" "A-Z"
HELLo worLD
[root@localhost client]# echo "hello world" | tr "a-z" "A-H"
HEHHH HHHHD
第一行输出就是将小写换成大写。
第二行输出将小写中的a-l分别换成A-L,而将小写中的l以后的字符都不替换。
第三行输出将小写中的a-h换成A-H,而h以后的字符都换成H,因为后者的替换空间没有前面的字符空间大,所以就重复后面的H,相当于后面的字符是A-HHH......HHHHH。
如果我们想要进行大小写转换,可以按下面的输入:
C代码
[html]
tr "a-z" "A-Z" < inputfile
五,去除重复字符
这个时候,所用的选项是-s选项,如:
C代码
[html]
[root@localhost client]# echo "hello world,root" | tr -s "ao"
hello world,rot
[root@localhost client]# echo "hello world,root" | tr -s "lo"
helo world,rot
[root@localhost client]# echo "hello world,root" | tr -s "a-z"
helo world,rot
[root@localhost client]# echo "hello world,root" | tr -s "0-9"
hello world,root
第一行表示将输入字符串中的包含在"ao"字符集中的重复字符去掉,只留一个。因为"hello world,root",只有o满足条件,所以将root变成rot,把中间的两个o变成一个。
第二行将hello和root两个字符都压缩了。
第三行表示将a-z中的除复字符都去掉。
第三行表示将字符串中的重复的且重复字符在0-9字符集中的字符去掉,这里没有。
如果我们想要去掉空行,可以这样操作:
[html]
tr -s "" < inputfile 或者 tr -s "