导航:首页 > 器材知识 > 字符设备文件怎么输入

字符设备文件怎么输入

发布时间:2022-08-25 21:03:41

『壹』 块设备文件和字符设备文件的本质区别是什么

设备文件分为Block
Device Driver和Character Device Drive两类。 Device Drive又被称为字符设备或裸设备raw
devices; Block Device Driver通常成为块设备。而Block Device Driver是以固定大小长度来传送转移资料
;Character Device Driver是以不定长度的字元传送资料 。且所连接的Devices也有所不同,Block
Device大致是可以随机存取(Random Access)资料的设备,如硬碟机或光碟机;而Character
Device刚好相反,依循先後顺序存取资料的设备,如印表机 、终端机等皆是。

/dev/dsk对应的为块设备,文件系统的操作用到它,如mount。/dev/rdsk对应的为字符设备(裸设备,rdsk的r即为 raw),fsck
newfs等会涉及到。一般我们的操作系统和各种软件都是以块方式读写硬盘,这里的块是逻辑块,创建文件系统时可以选择,windows里叫簇。可看 newfs or
mkfs的manual。oracle是比较常见的字符方式读写硬盘。

字符设备还是块设备的定义属于操作系统的设备访问层,与实际物理设备的特性无必然联系。设备访问层下面是驱动程序,所以只要驱动程序提供的方式,都可以。也就是说驱动程序支持stream方式,那么就可以用这种方式访问,驱动程序如果还支持block方式,那么你想用哪种方式访问都可以,典型的比如硬盘式的裸设备,两种都支持块设备(block
device):是一种具有一定结构的随机存取设备,对这种设备的读写是按块进行的,他使用缓冲区来存放暂时的数据,待条件成熟后,从缓存一次性写入设备或从设备中一次性读出放入到缓冲区,如磁盘和文件系统等字符设备(Character
device):这是一个顺序的数据流设备,对这种设备的读写是按字符进行的,而且这些字符是连续地形成一个数据流。他不具备缓冲区,所以对这种设备的读写是实时的,如终端、磁带机等。

系统中能够随机(不需要按顺序)访问固定大小数据片(chunks)的设备被称作块设备,这些数据片就称作块。最常见的块设备是硬盘,除此以外,还有软盘驱动器、CD-ROM驱动器和闪存等等许多其他块设备。注意,它们都是以安装文件系统的方式使用的——这也是块设备一般的访问方式。

另一种基本的设备类型是字符设备。字符设备按照字符流的方式被有序访问,像串口和键盘就都属于字符设备。如果一个硬件设备是以字符流的方式被访问的话,那就应该将它归于字符设备;反过来,如果一个设备是随机(无序的)访问的,那么它就属于块设备。

这两种类型的设备的根本区别在于它们是否可以被随机访问——换句话说就是,能否在访问设备时随意地从一个位置跳转到另一个位置。举个例子,键盘这种设备提供的就是一个数据流,当你敲入“fox”这个字符串时,键盘驱动程序会按照和输入完全相同的顺序返回这个由三个字符组成的数据流。如果让键盘驱动程序打乱顺序来读字符串,或读取其他字符,都是没有意义的。所以键盘就是一种典型的字符设备,它提供的就是用户从键盘输入的字符流。对键盘进行读操作会得到一个字符流,首先是“f”,然后是“o”,最后是“x”,最终是文件的结束(EOF)。当没人敲键盘时,字符流就是空的。硬盘设备的情况就不大一样了。硬盘设备的驱动可能要求读取磁盘上任意块的内容,然后又转去读取别的块的内容,而被读取的块在磁盘上位置不一定要连续,所以说硬盘可以被随机访问,而不是以流的方式被访问,显然它是一个块设备。

内核管理块设备要比管理字符设备细致得多,需要考虑的问题和完成的工作相比字符设备来说要复杂许多。这是因为字符设备仅仅需要控制一个位置—当前位置—而块设备访问的位置必须能够在介质的不同区间前后移动。所以事实上内核不必提供一个专门的子系统来管理字符设备,但是对块设备的管理却必须要有一个专门的提供服务的子系统。不仅仅是因为块设备的复杂性远远高于字符设备,更重要的原因是块设备对执行性能的要求很高;对硬盘每多一分利用都会对整个系统的性能带来提升,其效果要远远比键盘吞吐速度成倍的提高大得多。另外,我们将会看到,块设备的复杂性会为这种优化留下很大的施展空间。

linux驱动程序中字符设备和块设备的三点区别

1.字符设备只能以字节为最小单位访问,而块设备以块为单位访问,例如512字节,1024字节等

2.块设备可以随机访问,但是字符设备不可以

3.字符和块没有访问量大小的限制,块也可以以字节为单位来访问

『贰』 看到书上介绍unix操作系统文件类型的设备文件,里面说把设备文件分为字符设备文件和块设备文件,这样

在UNIX系统中抄文件分为四袭种:
1普通文件(ordinary file),
分为: (1) 文本文件
(2) 二进制文件
2 目录文件(directory)
3 特殊文件(special file),分为:
(1)块设备文件
(2)字符设备文件
4 符号链接文件
(symbolic links)

其中特殊文件也称设备文件,代表着某种设备,一般放在/dev目录下,如/dev/cd0表示光驱。
特殊文件分为块设备文件和字符设备文件,块设备文件以区块为输入输出单元,如磁盘;
字符设备文件是以字符作为输入输出单元,如串口。符号连接文件包含一指针,这指针会指向文件的所在。
字符设备特殊文件进行I/O操作不经过操作系统的缓冲区,而块设备特殊文件用来同外设进行定长的包传输。字符特殊文件与外设进行I/o操作时每次只传输一个字符。而对于块设备特殊文件来说,它用了cache机制,在外设和内存之间一次可以传送一整块数据。

不同的传输方式当然可以实现减少时间开销了!

希望对您有帮助!

『叁』 linux命令怎么打开字符设备文件

在Linux中使用ls-l命令来列出文件时,b、c字母开头的文件,分别表示区块(block)设备和字符(character)设备,是特殊类型的文件。也就是说Linux字符设备文件以c字母做为开始标志 。

可以执行如下命令,查看到大量字符设备的文件:

ls-l/dev | more

执行结果如下图所示:

『肆』 字符型驱动设备是怎么创建设备文件的,发分别列举手动和自动

1手动mknod
2 自动调用函数

『伍』 关于Linux操作系统的一些命令是什么

Linux系统中的命令实在是太多了,简单包括两类命令,一类是内部命令,指的是Shell自身提供的功能,一类是外部命令,指的是第三方的控制台应用程序。

一般来说,没必要完全学习所有的命令,大体上有个印象,用到的时候去查一下帮助文档,久而久之,自然熟练。

下面是网友整理的20个最常用的Linux命令:

1. ls命令
ls命令是列出目录内容(List Directory Contents)的意思。运行它就是列出文件夹里的内容,可能是文件也可能是文件夹。

2. lsblk命令
"lsblk"就是列出块设备。除了RAM外,以标准的树状输出格式,整齐地显示块设备。

3. md5sum命令
“md5sum”就是计算和检验MD5信息签名。md5 checksum(通常叫做哈希)使用匹配或者验证文件的文件的完整性,因为文件可能因为传输错误,磁盘错误或者无恶意的干扰等原因而发生改变。

4. dd命令
“dd”命令代表了转换和复制文件。可以用来转换和复制文件,大多数时间是用来复制iso文件(或任何其它文件)到一个usb设备(或任何其它地方)中去,所以可以用来制作USB启动器。

6. history命令
“history”命令就是历史记录。它显示了在终端中所执行过的所有命令的历史。

7. sudo命令
“sudo”(super user do)命令允许授权用户执行超级用户或者其它用户的命令。通过在sudoers列表的安全策略来指定。

8. mkdir命令
“mkdir”(Make directory)命令在命名路径下创建新的目录。然而如果目录已经存在了,那么它就会返回一个错误信息"不能创建文件夹,文件夹已经存在了"("cannot create folder, folder already exists")

9. touch 命令
“touch”命令代表了将文件的访问和修改时间更新为当前时间。touch命令只会在文件不存在的时候才会创建它。如果文件已经存在了,它会更新时间戳,但是并不会改变文件的内容。

10. chmod 命令
“chmod”命令就是改变文件的模式位。chmod会根据要求的模式来改变每个所给的文件,文件夹,脚本等等的文件模式(权限)。

11. chown命令
“chown”命令就是改变文件拥有者和所在用户组。每个文件都属于一个用户组和一个用户。在你的目录下,使用"ls -l",你就会看到像这样的东西。

12. apt命令
Debian系列以“apt”命令为基础,“apt”代表了Advanced Package Tool。APT是一个为Debian系列系统(Ubuntu,Kubuntu等等)开发的高级包管理器,在Gnu/Linux系统上,它会为包自动地,智能地搜索,安装,升级以及解决依赖。

13. tar命令
“tar”命令是磁带归档(Tape Archive),对创建一些文件的的归档和它们的解压很有用。

14. cal 命令
“cal”(Calender),它用来显示当前月份或者未来或者过去任何年份中的月份。
16. cat命令
“cat”代表了连结(Concatenation),连接两个或者更多文本文件或者以标准输出形式打印文件的内容。

17. cp 命令
“”就是复制。它会从一个地方复制一个文件到另外一个地方。

18. mv 命令
“mv”命令将一个地方的文件移动到另外一个地方去。

19. pwd 命令
“pwd”(print working directory),在终端中显示当前工作目录的全路径。

20. cd 命令
最后,经常使用的“cd”命令代表了改变目录。它在终端中改变工作目录来执行,复制,移动,读,写等等操作。

『陆』 如何查找目录下包含某个字符串的所有文件

查找目录下的所有文件中是否含有某个字符串
find .|xargs grep -ri "IBM"

查找目录下的所有文件中是否含有某个字符串,并且只打印出文件名
find .|xargs grep -ri "IBM" -l

1、正则表达式
(1)正则表达式一般用来描述文本模式的特殊用法,由普通字符(例如字符a-z)以及特殊字符(称为元字符,如/、*、?等)组成。
(2)基本元字符集及其含义
^ :只匹配行首。 如^a 匹配以a开头的行abc,a2e,a12,aaa,......
$ :只匹配行尾。 如^a 匹配以a结尾的行bca,12a,aaa,.......
* :匹配0个或多个此单字符。 如(a)* 匹配 空,a,aa,aaa,....
[] :只匹配[]内字符。可以是一个单字符,也可以是字符序列,用","将里面要匹配的不同字符串分开。也可以使用-来表示[]内字符序列的范围,如[1-5]表示[12345]
\ :只用来屏蔽一个元字符的特殊含义。 如\*,\',\",\|,\+,\^,\. 等
.:(点)只匹配任意单字符。
pattern\{n\}:只用来匹配前面pattern出现的次数.n为次数。如a\{2\}匹配aa.
pattern\{n,\}:含义同上,但次数最少为n.如a\{2,\}匹配aa,aaa,aaaa,.....
pattern\{n,m\}:含义同上,但次数在n和m之间。如a\{2,4\}匹配aa,aaa,aaaa三个
(3)举例说明:
^$ :匹配空行
^.$ :匹配包含一个字符的行
\*\.pas :匹配以*.pas结尾的所有字符或文件
[0123456789]或[0-9] :假定要匹配任意一个数字
[a-z] :任意小写字母
[A-Za-z] :任意大小写字母
[S,s] :匹配大小写S
[0-9]\{3\}\.[0-9]\{3\}\.[0-9]\{3\}\.[0-9]\{3\} :匹配IP地址 [0-9]\{3\}三个0-9组成的字符串;\. :匹配点(注意这里点是特殊的字符,所以要用"\"来屏蔽其含义)

2、find介绍
(1)查找具有某些特征文件的命令,可遍历当前目录甚至于整个文件系统来查看某些文件或目录,其遍历大的文件系统时一般放在后台执行。
(2)find命令的一般形式
find pathname -options [-print -exec -ok]
-pathname :find命令所查找的目录路径。如用"."来表示当前的目录,用/来表示系统根目录
-print :find命令将匹配的文件输出到标准输出
-exec: find命令对匹配的文件执行该参数所给出的shell命令,相应的命令形式为
'command'{} \; (注意{}和\之间的空格)
-ok 和 -exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。
options有如下几种:
-name :按照文件名查找文件
-perm :按照文件权限来查找文件
-user :按照文件属主来查找文件
-group :按照文件所属的组来查找文件
-mtime -n +n 按照文件的更改时间来查找文件,-n表示文件更改时间距现在n天以内,+n表示文件更改时间距现在n天以前。find命令还有-atime 和-ctime选项,但它们都和-mtime选项相似。
-size n[c]查找文件长度为n块的文件,带有c时表示文件长度以字节计。
-nogroup 查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在
-newer file1 !file2查找更改时间比文件file1新但比文件file2旧的文件
-depth 先查找指定目录有无匹配文件,若无则再在子目录中查找
-type 查找某一类型的文件,如
b :块设备文件
d:目录
e:字符设备文件
p;管道文件
l:符号链接文件
f:普通文件
(3)find命令举例
find -name "*.txt" -print 查找txt结尾的文件并输出到屏幕上
find /cmd ".sh" -print 查找/cmd目录下所有sh文件,并输出
find . -perm 755 -print 查找当前目录下权限为755的文件,并输出
find `pwd` -user root -print 查找当前目录下属主为root的文件,并输出
find ./ -group sunwill -print 查找当前目录下所属主是sunwill的文件
find /var -mtime -5 -print 查找/var目录下更改时间为5天内的所有文件
find /var -mtime +5 -print 查找/var目录下更改时间为5天以前的所有文件
find /var -newer "myfile1" ! -newer "myfile2" -print 查找/var目录下比myfile1新,但是比myfile2旧的所有文件。
find /var -type d -print 查找/var目录下所有目录
find /var -type l -print 查找/var目录下所有的符号链接文件。
find . -size +1000000c -print 查找当前目录下大于1000000字节的文件
find / -name "con.file" -depth -print 查找根目录下有无"con.file",若无则在其子目录中查找
find . -type f -exec ls -l {} \; 查找当前目录下是否有普通文件,若有则执行ls -l
(4)xargs命令
在 使用find命令的-exec选项处理匹配到的文件时,find命令将所有匹配到的文件一起传递给exec。不幸的是,有些系统对能够传递给exec的命 令长度有限制,这样find命令运行几分钟之后就算出现溢出错误。错误信息通常是“参数列太长”或“参数列溢出”。这就是xargs的用处所在,特别是与 find命令一起使用,exec会发起多个进程,而xargs会多个,只有一个
find ./ -perm -7 -print | xargs chmod o-w 查找权限为7的文件并传递给chmod处理

3、grep介绍
(1)grep 的一般格式为 grep [options] 基本正则表达式 [文件]
字符串参数最好采用是双引号括,一是以防被误解为shell命令,二是可以用来查找多个单词组成的字符串
-c:只输出匹配行的记数
-i:不区分大小写(只适用于单个字符)
-h:查询多个文件时不显示文件名
-H:只显示文件名
-l:查询多文件时只输出包含匹配字符的文件名
-n:只显示匹配行及其行号
-s:不显示不存在或无匹配文本的错误信息。
-v:显示不包含匹配文本的所有行。
(2)举例说明:
grep ^[^210] myfile 匹配myfile中以非2、1、0开头的行
grep "[5-8][6-9][0-3]" myfile 匹配myfile中第一位为5|6|7|8,第二位6|7|8|9,第三位为0|1|2|3的三个字符的行
grep "4\{2,4\}" myfile 匹配myfile中含有44,444或4444的行
grep "\?" myfile匹配myfile中含有任意字符的行
(3)grep命令类名
[[:upper:]] 表示[A-Z]
[[:alnum:]] 表示[0-9a-zA-Z]
[[:lower:]] 表示[a-z]
[[:space:]] 表示空格或者tab键
[[:digit:]] 表示[0-9]
[[:alpha:]] 表示[a-zA-Z]
如:grep "5[[:digit:]][[:digit:]]" myfile 匹配myfile中含有5开头接下去两位都是数字的行。
4.awk介绍
可以从文件或字符串中基于指定规则浏览和抽取信息,是一种自解释的变成语言。
(1)awk命令行方式 awk [-F filed-spearator] 'command' input-files
awk脚本:所有awk命令插入一个文件,并使awk程序可执行,然后用awk命令解释器作为脚本的首行,以便通过键入脚本名称来调用它。awk脚本是由各种操作和模式组成。
模式部分决定动作语句何时触发及触发事件。(BEGIN,END)
动作对数据进行处理,放在{}内指明(print)
(2)分隔符、域和记录
awk执行时,其浏览域标记为$1,$2,...$n.这种方法成为域标识。$0为所有域。
(3)举例说明:
awk '{print $0}' test.txt |tee test.out 输出test.txt中所有行$0表示所有域
awk -F : '{print $1} test.txt |tee test.out' 同上。。只是分隔符为":"
awk 'BEGIN {print "IPDate\n"}{print $1 "\t" $4} END{print "end-of-report"}' test.txt
开始时打印“IPDate”结束时打印“end-of-report”中间打印主体信息,比如总共匹配三条信息,则输出如下:
IPDate
1 first
2 second
3 third
end-of-report
(4)匹配操作符 ~ 匹配,!~ 不匹配
cat test.txt |awk '$0~/210.34.0.13/' 匹配test.txt中为210.34.0.13的行
awk '$0!~/210.34.0.13' test.txt 匹配test.txt中不是210.34.0.13的行
awk '{if($1=="210.34.0.13") print $0}' test.txt 匹配 test.txt中第一个域为210.34.0.13的行。

5、sed介绍
sed不与初始化文件打交道,它操作的只是一个拷贝,然后所有的改动如果没有重定向到一个文件,将输出到屏幕。
sed是一种很重要的文本过滤工具,使用一行命令或者使用管道与grep与awk相结合。是一种非交互性文本流编辑。
(1)调用sed的三种方式
使用sed命令行格式为:sed [options] sed命令 输入文件
使用sed脚本文件格式为:sed[options] -f sed脚本文件 输入文件
sed脚本文件[options] 输入文件
--不管是使用shell命令行方式或脚本文件方式,如果没有指定输入文件,sed从标准输入中接受输入,一般是键盘或重定向结果。
(2)sed 命令的options如下
-n:不打印
-c:下一命令是编辑命令
-f:如果正在调用sed脚本文件
(3)sed在文件中查询文本的方式
--使用行号,可以是一个简单的数字,或是一个行号的范围
--使用正则表达式
(4)读取文本的方式
x x为一行号
x,y 表示行号范围从x到y
/pattern/ 查询包含模式的行
/pattern/pattern/ 查询包含两个模式的行
pattern/,x 在给定的行号上查询包含模式的行
x,/pattern/ 通过行号和模式查询匹配行
x,y! 查询不包含指定行号x和y的行
(5)基本sed编辑命令
p 打印匹配行
d 删除匹配行
= 显示文件行号
a\ 在定位行号后附加新文本信息
i\ 在定位行号后插入新文本信息
c\ 用新文本替换定位文本
s 使用替换模式替换相应模式
r 从另一个文件中读文件
w 写文本到一个文件
q 第一个模式匹配完成后推出或立即退出
l 显示与八禁止ASCII代码等价的控制字符
{} 在定位行执行的命令组
n 从另一个文件中读文本下一行,并附加在下一行
g 将模式2粘贴到/pattern n/
y 传送字符
(6)举例说明:
sed -n '2p' test.txt 打印第二行的信息(注意:-n是不打印不匹配的信息,若没加-n,则打印文件的所有信息而不是匹配信息)
sed -n '1,4p' test.txt 打印第一行到第四行的信息
sed -n '/los/p' test.txt模式匹配los,并打印出来
sed -n '2,/los/p' test.txt 从第二行开始。。知道匹配第一个los
sed -n '/^$/p' test.txt 匹配空行
sed -n -e '/^$/p' -e '/^$/=' test.txt 打印空行及行号
sed -n '/good/a\morning' test.txt 在匹配到的good后面附加morning
sed -n '/good/i\morning' test.txt 在匹配到的good前面插入morning
sed -n '/good/c\morning' test.txt 将匹配到的good替换成morning
sed '1,2d' test.txt 删除第1和2行
sed 's/good/good morning/g' test.txt 匹配good并替换成goodmorning
send 's/good/& hello /p' test.txt 匹配到good就在其后面加上hello
send 's/good/ hello &/p' test.txt 匹配到good就在其前面加上hello

6.合并与分割(sort,uniq,join,cut,paste,split)
(1)sot命令
sort [options] files 许多不同的域按不同的列顺序排序
-c 测试文件是否已经排序
-m 合并两个排序文件
-u 删除所有同样行
-o 存储sort结果的输出文件名
-t 域分隔符,用非空格或tab开始排序
+n :n 为列号,使用此列号开始排序
-n 指定排序是域上的数字分类项
-r 比较求逆
sort -c test.txt 测试文件是否分类过
sort -u test.txt 排序并合并一样的行
sort -r test.txt 以相反的顺序排列
sort -t "/" +2 test.txt 以"/"分隔,第二个域开始分类
(2)uniq命令
uniq [options ] files 从一个文本文件中去除或禁止重复行
-u 只显示不重复行
-d 只显示有重复数据行,每种重复行只显示其中一行
-c 打印每一重复行出现次数
-f :n为数字,前n个域被忽略
uniq -f 2 test.txt 忽略前2个域
(3)join 命令
join [options] file1 file2 用来将来自两个分类文本文件的行连在一起
-an,n为一数字,用于连接时从文件n中显示不匹配行
-onm ,连接域,n为文件号,m为域号
-jnm,n为文件号,m为域号,使用其他域作连接域
-t ,域分隔符。用来设置非空格或tab键的域分隔符。
(4)split命令
split -output_file_size intput_filename output_filename
用来将大文件分割成小文件。
-b n,每个分割文件的大小n
-C n,每个分割文件一行最多n字节
-l n,每个分割文件的行数
-n,同-l n
split -10 test.txt 将test.txt分割成10行的小文件
(5)cut 命令
cut -c n1-n2 filename 显示每行从开头算起 n1 到 n2 的文字。

cut -c 3-5 test.txt 显示test.txt中每行从第3到第5个字符

『柒』 Linux下字符设备文件的概念及举例

不是后缀,记住linux不使用后缀来识别文件类型
你使用 ls -al
drwxr-xr-x. 4 root root 100 Apr 26 15:05 cpu
lrwxrwxrwx. 1 root root 13 Apr 26 15:05 fd -> /proc/self/fd
brw-rw----. 1 root disk 7, 0 Apr 26 15:05 loop0
crw-rw----. 1 root lp 6, 2 Apr 26 15:05 lp2
你仔细看第一位 d代表文件目录文件,l代表链接文件,b代表块设备文件,c代表字符设备文件
`-'
regular file

`b'
block special file

`c'
character special file

`C'
high performance ("contiguous data") file

`d'
directory

`D'
door (Solaris 2.5 and up)

`l'
symbolic link

`M'
off-line ("migrated") file (Cray DMF)

`n'
network special file (HP-UX)

`p'
FIFO (named pipe)

`P'
port (Solaris 10 and up)

`s'
socket

`?'
some other file type

『捌』 如何在Linux下查找文件内容包含某个特定字符串的文件

如何在Linux下查找文件内容包含某个特定字符串的文件?

我的目录下面有test1和test2两个文件夹,里面都含有很多文件,其中test2里面还包含一个test文件夹

我想请问的是,如何通过查找关键字test从而找到test1跟test2还有test,并且不显示其他文件

我尝试过用find/path-nametest查找,结果出来的是/path/test2/test
lstest*查找,结果连同test1跟test2里面的子文件都显示出来,罗列了一大堆
我还尝试了用findtest*查找,结果跟用上面的一样,只是罗列的方式不一样而已

『玖』 "Linux的常用的文件类型分为哪六种各自的标志符是什么

在Linux中,有一句经典的话叫做一切皆文件”。

文件分类:

(1)普通文件(regular):存在于外部存储器中,用于存储普通文件。

(2)目录文件(directory):用于存放目录项,是文件系统管理的重要文件类型。

(3)管道文件(pipe):一种用于进程间通信的特殊文件,也称为命名管道FIFO。

(4)套接字文件(socket):一种用于网络间通信的特殊文件。

(5)链接文件(link);用于间接访问另外一个目标文件,相当于widows快捷方式。

(6)字符设备文件(character):字符设备在应用层的访问结构。

(7)块设备文件(block):块设备在应用层的访问接口。

在linux终端下输入ls -l命令,学习linux每条文件信息的最左边的一个字符即表示了该文件的类别:

b:块设备文件

c:字符设备文件

d:目录文件

l:链接文件

p:管道文件

-:普通文件

s:套接字文件

『拾』 如何搜索所有含有这个字符串的文件

查找目录所文件否含某字符串

查找目录所文件否含某字符串
find .|xargs grep -ri "IBM"
查找目录所文件否含某字符串,并且打印文件名
find .|xargs grep -ri "IBM" -l
1.则表达式
(1)则表达式般用描述文本模式特殊用由普通字符(例字符a-z)及特殊字符(称元字符/、*、?等)组
(2)基本元字符集及其含义
^ :匹配行首 ^a 匹配a行abc,a2e,a12,aaa,......
$ :匹配行尾 ^a 匹配a结尾行bca,12a,aaa,.......
* :匹配0或单字符 (a)* 匹配 空a,aa,aaa,....
[] :匹配[]内字符单字符字符序列用","面要匹配同字符串使用-表示[]内字符序列范围[1-5]表示[12345]
\ :用屏蔽元字符特殊含义 \*,\',\",\|,\+,\^,\. 等
.:(点)匹配任意单字符
pattern\{n\}:用匹配前面pattern现数.n数a\{2\}匹配aa.
pattern\{n,\}:含义同数少n.a\{2,\}匹配aa,aaa,aaaa,.....
pattern\{n,m\}:含义同数nm间a\{2,4\}匹配aa,aaa,aaaa三
(3)举例说明:
^$ :匹配空行
^.$ :匹配包含字符行
\*\.pas :匹配*.pas结尾所字符或文件
[0123456789]或[0-9] :假定要匹配任意数字
[a-z] :任意写字母
[A-Za-z] :任意写字母
[S,s] :匹配写S
[0-9]\{3\}\.[0-9]\{3\}\.[0-9]\{3\}\.[0-9]\{3\} :匹配IP址 [0-9]\{3\}三0-9组字符串;\. :匹配点(注意点特殊字符所要用"\"屏蔽其含义)
2.find介绍
(1)查找具某些特征文件命令遍历前目录甚至于整文件系统查看某些文件或目录其遍历文件系统般放台执行
(2)find命令般形式
find pathname -options [-print -exec -ok]
-pathname :find命令所查找目录路径用"."表示前目录用/表示系统根目录
-print :find命令匹配文件输标准输
-exec: find命令匹配文件执行该参数所给shell命令相应命令形式
'command'{} \; (注意{}\间空格)
-ok -exec作用相同种更安全模式执行该参数所给shell命令执行每命令前都给提示让用户确定否执行
options几种:
-name :按照文件名查找文件
-perm :按照文件权限查找文件
-user :按照文件属主查找文件
-group :按照文件所属组查找文件
-mtime -n +n 按照文件更改间查找文件-n表示文件更改间距现n内+n表示文件更改间距现n前find命令-atime -ctime选项都-mtime选项相似
-size n[c]查找文件度n块文件带c表示文件度字节计
-nogroup 查找效所属组文件即该文件所属组/etc/groups存
-newer file1 !file2查找更改间比文件file1新比文件file2旧文件
-depth 先查找指定目录匹配文件若则再目录查找
-type 查找某类型文件
b :块设备文件
d:目录
e:字符设备文件
p;管道文件
l:符号链接文件
f:普通文件
(3)find命令举例
find -name "*.txt" -print 查找txt结尾文件并输屏幕
find /cmd ".sh" -print 查找/cmd目录所sh文件并输
find . -perm 755 -print 查找前目录权限755文件并输
find `pwd` -user root -print 查找前目录属主root文件并输
find ./ -group sunwill -print 查找前目录所属主sunwill文件
find /var -mtime -5 -print 查找/var目录更改间5内所文件
find /var -mtime +5 -print 查找/var目录更改间5前所文件
find /var -newer "myfile1" ! -newer "myfile2" -print 查找/var目录比myfile1新比myfile2旧所文件
find /var -type d -print 查找/var目录所目录
find /var -type l -print 查找/var目录所符号链接文件
find . -size +1000000c -print 查找前目录于1000000字节文件
find / -name "con.file" -depth -print 查找根目录"con.file",若则其目录查找
find . -type f -exec ls -l {} \; 查找前目录否普通文件若则执行ls -l
(4)xargs命令
使用find命令-exec选项处理匹配文件find命令所匹配文件起传递给exec幸些系统能够传递给exec命 令度限制find命令运行几钟算现溢错误错误信息通参数列太或参数列溢xargs用处所特别与 find命令起使用,exec发起进程xargs
find ./ -perm -7 -print | xargs chmod o-w 查找权限7文件并传递给chmod处理
3.grep介绍
(1)grep 般格式 grep [options] 基本则表达式 [文件]
字符串参数采用双引号括防误解shell命令二用查找单词组字符串
-c:输匹配行记数
-i:区写(适用于单字符)
-h:查询文件显示文件名
-H:显示文件名
-l:查询文件输包含匹配字符文件名
-n:显示匹配行及其行号
-s:显示存或匹配文本错误信息
-v:显示包含匹配文本所行
(2)举例说明:
grep ^[^210] myfile 匹配myfile非2、1、0行
grep "[5-8][6-9][0-3]" myfile 匹配myfile第位5|6|7|8第二位6|7|8|9第三位0|1|2|3三字符行
grep "4\{2,4\}" myfile 匹配myfile含44,444或4444行
grep "\?" myfile匹配myfile含任意字符行
(3)grep命令类名
[[:upper:]] 表示[A-Z]
[[:alnum:]] 表示[0-9a-zA-Z]
[[:lower:]] 表示[a-z]
[[:space:]] 表示空格或者tab键
[[:digit:]] 表示[0-9]
[[:alpha:]] 表示[a-zA-Z]
:grep "5[[:digit:]][[:digit:]]" myfile 匹配myfile含5接两位都数字行
4.awk介绍
文件或字符串基于指定规则浏览抽取信息种自解释变语言
(1)awk命令行式 awk [-F filed-spearator] 'command' input-files
awk脚本:所awk命令插入文件并使awk程序执行用awk命令解释器作脚本首行便通键入脚本名称调用awk脚本由各种操作模式组
模式部决定作语句何触发及触发事件(BEGIN,END)
作数据进行处理放{}内指明(print)
(2)隔符、域记录
awk执行其浏览域标记$1,$2,...$n.种域标识$0所域
(3)举例说明:
awk '{print $0}' test.txt |tee test.out 输test.txt所行$0表示所域
awk -F : '{print $1} test.txt |tee test.out' 同隔符":"
awk 'BEGIN {print "IPDate\n"}{print $1 "\t" $4} END{print "end-of-report"}' test.txt
始打印IPDate结束打印end-of-report间打印主体信息比总共匹配三条信息则输:
IPDate
1 first
2 second
3 third
end-of-report
(4)匹配操作符 ~ 匹配,!~ 匹配
cat test.txt |awk '$0~/210.34.0.13/' 匹配test.txt210.34.0.13行
awk '$0!~/210.34.0.13' test.txt 匹配test.txt210.34.0.13行
awk '{if($1=="210.34.0.13") print $0}' test.txt 匹配 test.txt第域210.34.0.13行
5.sed介绍
sed与初始化文件打交道操作拷贝所改没重定向文件输屏幕
sed种重要文本滤工具使用行命令或者使用管道与grep与awk相结合种非交互性文本流编辑
(1)调用sed三种式
使用sed命令行格式:sed [options] sed命令 输入文件
使用sed脚本文件格式:sed[options] -f sed脚本文件 输入文件
sed脚本文件[options] 输入文件
--管使用shell命令行式或脚本文件式没指定输入文件sed标准输入接受输入般键盘或重定向结
(2)sed 命令options
-n:打印
-c:命令编辑命令
-f:调用sed脚本文件
(3)sed文件查询文本式
--使用行号简单数字或行号范围
--使用则表达式
(4)读取文本式
x x行号
x,y 表示行号范围xy
/pattern/ 查询包含模式行
/pattern/pattern/ 查询包含两模式行
pattern/,x 给定行号查询包含模式行
x,/pattern/ 通行号模式查询匹配行
x,y! 查询包含指定行号xy行
(5)基本sed编辑命令
p 打印匹配行
d 删除匹配行
= 显示文件行号
a\ 定位行号附加新文本信息
i\ 定位行号插入新文本信息
c\ 用新文本替换定位文本
s 使用替换模式替换相应模式
r 另文件读文件
w 写文本文件
q 第模式匹配完推或立即退
l 显示与八禁止ASCII代码等价控制字符
{} 定位行执行命令组
n 另文件读文本行并附加行
g 模式2粘贴/pattern n/
y 传送字符
(6)举例说明:
sed -n '2p' test.txt 打印第二行信息(注意:-n打印匹配信息若没加-n则打印文件所信息匹配信息)
sed -n '1,4p' test.txt 打印第行第四行信息
sed -n '/los/p' test.txt模式匹配los并打印
sed -n '2,/los/p' test.txt 第二行始知道匹配第los
sed -n '/^$/p' test.txt 匹配空行
sed -n -e '/^$/p' -e '/^$/=' test.txt 打印空行及行号
sed -n '/good/a\morning' test.txt 匹配good面附加morning
sed -n '/good/i\morning' test.txt 匹配good前面插入morning
sed -n '/good/c\morning' test.txt 匹配good替换morning
sed '1,2d' test.txt 删除第12行
sed 's/good/good morning/g' test.txt 匹配good并替换goodmorning
send 's/good/& hello /p' test.txt 匹配good其面加hello
send 's/good/ hello &/p' test.txt 匹配good其前面加hello
6.合并与割(sort,uniq,join,cut,paste,split)
(1)sot命令
sort [options] files 许同域按同列顺序排序
-c 测试文件否已经排序
-m 合并两排序文件
-u 删除所同行
-o 存储sort结输文件名
-t 域隔符用非空格或tab始排序
+n :n 列号使用列号始排序
-n 指定排序域数字类项
-r 比较求逆
sort -c test.txt 测试文件否类
sort -u test.txt 排序并合并行
sort -r test.txt 相反顺序排列
sort -t "/" +2 test.txt "/"隔第二域始类
(2)uniq命令
uniq [options ] files 文本文件除或禁止重复行
-u 显示重复行
-d 显示重复数据行每种重复行显示其行
-c 打印每重复行现数
-f :n数字前n域忽略
uniq -f 2 test.txt 忽略前2域
(3)join 命令
join [options] file1 file2 用自两类文本文件行连起
-ann数字用于连接文件n显示匹配行
-onm 连接域n文件号m域号
-jnmn文件号m域号使用其域作连接域
-t 域隔符用设置非空格或tab键域隔符
(4)split命令
split -output_file_size intput_filename output_filename
用文件割文件
-b n每割文件n
-C n每割文件行n字节
-l n每割文件行数
-n同-l n
split -10 test.txt test.txt割10行文件
(5)cut 命令
cut -c n1-n2 filename 显示每行算起 n1 n2 文字
cut -c 3-5 test.txt 显示test.txt每行第3第5字符
Linux查找文件内容用命令:

1、文件内容查找匹配指定字符串行:
$ grep "查找字符串" 文件名

2、文件内容查找与则表达式匹配行:
$ grep –e 则表达式 文件名

3、查找区写:
$ grep –i "查找字符串" 文件名

4、查找匹配行数:
$ grep -c "查找字符串" 文件名

5、文件内容查找匹配指定字符串行:
$ grep –v "查找字符串" 文件名

6、根目录始查找所扩展名.log文本文件并找包含ERROR行
find / -type f -name "*.log" | xargs grep "ERROR"

7、例 :查找/SqLogs/access.log文件包含".exe" 或者"TCP_DENIED"记录
1:grep /SqLogs/access.log –e ".exe
grep /SqLogs/access.log –e "TCP_DENIED
2:find /SqLogs –type f –name access.log | xargs grep ".exe"
find /SqLogs –type f –name access.log | xargs grep "TCP_DENIED"
公司通SQUID代理服务器共享网候某些原新版本应用程序或者财务报税软件使用所查看 access.log文件查找原由于LOG文件太虽每都执行压缩重建LOG文件几十MLOG文件内容太直接打查看再查找浪费间麻烦前用
tail –n 100 /SqLogs/access.log命令找起麻烦面两命令帮我忙短间帮我找问题所享给家

阅读全文

与字符设备文件怎么输入相关的资料

热点内容
steam令牌换设备了怎么办 浏览:246
新生测听力仪器怎么看结果 浏览:224
化学试验排水集气法的实验装置 浏览:156
家用水泵轴承位置漏水怎么回事 浏览:131
羊水镜设备多少钱一台 浏览:125
机械制图里型钢如何表示 浏览:19
测定空气中氧气含量实验装置如图所示 浏览:718
超声波换能器等级怎么分 浏览:800
3万轴承是什么意思 浏览:110
鑫旺五金制品厂 浏览:861
苏州四通阀制冷配件一般加多少 浏览:153
江北全套健身器材哪里有 浏览:106
水表阀门不开怎么办 浏览:109
花冠仪表盘怎么显示时速 浏览:106
洗砂机多少钱一台18沃力机械 浏览:489
超声波碎石用什么材料 浏览:607
组装实验室制取二氧化碳的简易装置的方法 浏览:165
怎么知道天然气充不了阀门关闭 浏览:902
公司卖旧设备挂什么科目 浏览:544
尚叶五金机电 浏览:59