①..列出文件清单命令:ls
ls命令能够列出当前目录下的所有内容.ls 命令的执行方式为:
# ls [-选项] [文件名或者目录名]
进入到Linux命令行中后,我们至少要知道当前所处的位置有哪些内容,这些信息就可以使用ls命令来获得.
在Linux中,ls命令是最常使用的命令之一,因为在命令行下要随时查看目录内容.如果不加任何选项的话,ls命令仅列出当前目录下的文件和目录名,例如,想要查看/etc目录下的内容,可以使用下列命令:
# ls /etc
如果想要列出当前目录下所有文件,则可以使用下列命令:
# ls -a
功能:在标准输出上显示文件.
语法:cat [-vTEuAte] 文件
例子: cat example.txt
功能:在终端屏幕按屏显示文本文件.
语法: more [-pcdls] 文件
例子: more example.c
more -dc example.c
more -c -10 example.c
less命令的功能几乎和more命令一样,也是用来按页显示文件,不同之处在于less命令在显示文件时允许用户既
可以向前又可以向后翻阅文件.
功能:显示指定文件的前若干行.缺省设置为显示10行
语法:head [-n] 文件
例子: head example.c
功能:显示指定文件的末尾若干行.缺省设置为显示10行
语法:tail [+ / - num ] [参数] 文件
+num 从第num行以后开始显示.- num 从距文件尾num行处开始显示.
例子: tail example.c
功能:
这组命令以指定模式搜索文件,并通知用户在什么文件中搜索到与指定的模式匹配的字符串,并打印出所有包含该字符串的文本行,在该文本行的最前面是该行所在的文件名.grep命令一次只能搜索一个指定的模式;egrep命令检索扩展的正则表达式(包括表达式组和可选项);fgrep命令检索固定字符串,它不识别正则表达式,是快速搜索命令.
语法:
例子: grep "text file" example
grep data *
grep goto *.c
文件搜索命令(只能搜索文件)
locate 文件名
在后台数据库中按文件名搜索,搜索速度快?? /var/lib/mlocate(locate文件数据库)? 这个数据库默认一天更新一次,强制更新命令:updatedb
按照/etc/updatedb.conf配置文件里面规则进行搜索
搜索命令的命令:whereis
whereis 命令名?????? 作用:搜索命令所在路径及帮助文档所在位置
-b(只查找可执行文件)?? -m(只查找帮助文件)
which? 文件名? 作用:搜索命令所在路径及别名
PATH环境变量:定义的是系统搜索命令的路径
find [搜索范围] [搜索条件]
find? /root? -nouser(搜索没有所有者的文件)
find? /var/log? -mtime +10 (查找10天前修改的文件)??? atime(文件访问时间)? ctime(改变文件属性的时间)? mtime(修改文件内容的时间)
ls -i 文件名(查看该文件的i节点)
grep [选项] 字符串 文件名
-i (忽略大小写)? -v(排除指定字符串)
Linux中的通配符:
*? :匹配任意内容? ? ? ? :匹配任意一个字符 ? ? ? [] ? 匹配任意一个中括号内的字符
在 Linux 中查找文件有两种方法.一种是使用 find 命令,另外一种是使用 locate 命令.
①.、Find 命令
使用 Linux find 命令可以用不同的搜索标准如名字、类型、所属人、大小等来搜索目录树.基本语法如下:
#?find?path?expression?search-term?
下面是使用 find 命令根据文件名来查找特定文件的一个例子:
#?find?-name?test.file?
命令会搜索整个目录树来查找名为 test.file 的文件,并且会提供其存放位置.你可以使用你 Linux 上一个存在的文件名来尝试一下.
find 命令有时会花费几分钟来查找整个目录树,尤其是如果系统中有很多文件和目录的话.要显著减少时间,你可以指定搜索的目录.比如,如果你知道 /var 中存在 test.file,那就没有必要搜索其它目录.这样,你可以使用下面的命令:
#?find?/var?-name?test.file?
find 还可以根据时间、大小、所属人、权限等选项搜索文件.要了解更多关于这些选项的信息,你可以使用查看** Linux find 命令**的手册.
#?man?find?
要在Linux中使用locate命令,首先需要安装它.
如果你正在使用 Ubuntu,运行下面的命令来安装 locate:
#?apt-get?update?#?apt-get?install?mlocate?
如果你使用的是 CentOS ,运行下面的命令来安装 locate:
#?yum?install?mlocate?
locate 是一种比 find 更快的方式,因为它在数据库中查找文件.要更新搜索数据库,运行下面的命令:
#?updatedb?
使用 locate 查找文件的语法:
#?locate?test.file?
就像 find 命令一样,locate 也有很多选项来过滤输出.要了解更多你可以查看Linux Locate 命令的手册.
#?man?locate?
从文件中搜索并显示文件名
当你从不止一个的文件中搜索时,默认它将显示文件名:
代码如下:
grep
word
文件名
root
/etc/*
示例输出:
/etc/bash.bashrc:
See
man
sudo_root
for
details.
*
cd
/
run-parts
--report
/etc/cron.hourly
test
-x
/usr/sbin/anacron
||
(
/etc/cron.daily
)
/etc/cron.weekly
/etc/group:root:x:0:
grep:
/etc/gshadow:
Permission
denied
/etc/logrotate.conf:
create
utmp
每行开始的第一个部分是文件名(如:/etc/crontab、/etc/group).使用
-l
选项可以只显示文件名:
string
filename
/etc/aliases
/etc/arpwatch.conf
/etc/at.deny:
/etc/bash.bashrc
/etc/bash_completion
/etc/ca-certificates.conf
/etc/crontab
/etc/group
你也可以逆转输出;使用
-L
选项来输出那些不匹配的文件的文件名:
/etc/apm
/etc/apparmor
/etc/apparmor.d
/etc/apport
/etc/apt
/etc/avahi
/etc/bash_completion.d
/etc/bindresvport.blacklist
/etc/blkid.conf
/etc/bluetooth
/etc/bogofilter.cf
/etc/bonobo-activation
/etc/brlapi.key
/etc/brlapi.key
/etc/brlapi.key
根据文件内容查找文件
输入以下命令:
'string'
*.txt
'main('
*.c
'#include'
'getChar*'
-i
'ultra'
*.conf
-iR
其中
:
忽略模式(匹配字符串
valid、
VALID、
ValID
)和输入文件(匹配
file.c
FILE.c
FILE.C)的大小写.
-R
递归读取每个目录下的所有文件.
高亮匹配到的模式
在搜索大量文件的时候你可以轻松地高亮模式:
$
--color=auto
'getChar();'
为查找到的模式显示文件名和行号
你也许需要显示文件名和行号:
-iRnH
其中,
-n
在输出的每行前面添加以
开始的行号.
-H
为每个匹配打印文件名.要搜索多个文件时这是默认选项.(LCTT
译注:-h
选项强制隐藏文件名;另外
和
选项用于仅显示匹配/不匹配的文件名,而
-h用于控制在显示匹配行前显示/不显示文件名,注意区分.)
$grep
-nH
'DIR'
输出样例:
你也可以使用
find
命令:
.
-name
|
xargs
main(
find ./ -name "*.m" -exec grep -l 'myCenter' {} \;
grep加入-l选项,就能将找到的文件名列出
linux中的find命令——查找文件名
①在某目录下查找名为"elm.cc"的文件
find /home/lijiajia/ -name elm.cc
find /home/lijiajia/ -name '*elm*'
find /home/lijiajia/ -name 'elm*'
find /home/lijiajia/ -name '*elm'
find /home/lijiajia/ -amin -10 #查找在系统中最后10分钟访问的文件
find /home/lijiajia/ -empty #查找在系统中为空的文件或者文件夹
find /home/lijiajia/ -group cat # 查找在系统中属于groupcat 的文件(试了,命令不对.)
find /home/lijiajia/ -nouser #查找在系统中属于作废用户的文件(不明白是什么意思)
find /home/lijiajia/ -amin 10 #查找在系统中最后10分钟访问的文件
find /home/ftp/pub -user lijiajia #查找在系统中属于lijiajia这个用户的文件
(PS:以上都是在 /home/lijiajia/文件夹下进行的操作)
find /tmp -user tom -or -user george #查找/tmp目录中属于tom或者george这两个用户的文件
find /tmp ! -usr fred #查找/tmp目录中不属于fred的文件
find /home/lijiajia/ -name 'elm.cc' -ls #在目录下查找名为"elm.cc"的文件,并显示这些文件的信息
find,用于在文件树中查找文件并作相应的处理
-name:按照文件名查找文件
-perm:按照文件权限查找文件
-user:按照文件属主来查找文件
-size:按照指定的文件大小查找文件【+n:大于,-n:小于,n:等于】
-group:按照文件所属的组来查找文件
-mtime-n+n:按照文件更改时间来查找文件,-n表示n天之内,+n表示n天以前
例如:
find -name ".log":查找当前目录以".log"结尾的文件
find -type f -name "*.log":查找当前目录下以".log"结尾的普通文件
find -type d | sort:查找当前所有目标目录并排序
locate指令,可以快速定位文件路径,利用事先建立的系统中的所有文件名称和路径的locate数据库,无需遍历整个文件系统,查询速度较快,为了保证查询准确性,需要定期更新.<
updatedb:第一次运行前,创建locate数据库
grep,用于过滤/搜索指定字符串.可以使用正则表达式,能配合多种命令使用.
用法:grep 【选项】 查找内容 源文件
-A:显示符合的行及之后的内容
-B:显示符合的行及之前的内容
-C:显示符合的行及前后的内容
-c:计算符合的行数目
-n:显示匹配行和行号
-i:忽略大小写
规则表达式
:'grep'表示匹配所有以grep开头的行
'表示匹配所有以grep结尾的行
.:'gr.p'表示匹配'gr'后面接任意字符然后是'p'
:'grep'表示匹配一个或多个空格后紧跟grep的行
[]:[Gg]rep表示匹配Grep与grep
[]:[A-FH-Z]rep表示匹配不以A-F、H-Z开头并紧跟rep的行
例如(grep命令大多数时候多要和别的命令一起使用才有意义):
ps -ef | grep -c SVN:查找指定的进程的个数
cat test.txt | grep -E 'ed|at':显示包含ed或at的行