Ⅰ linux下shell脚本命令
Shell脚本基本知识
概述:shell其实是内核与用户之间的一个接口,
shell脚本
如果有一系列经常使用的linux命令,你可以把它们存储在一个文件肿。shenll可以读取这个文件,并执行其中的命令。这样的文件成为脚本文件。
执行shell脚本
要创建一个shell脚本,你要使用任何编辑器比如vi在文本文件中编写他。
为了使用bash shell赖执行脚本magic,其命令是:bash magic或者./magic
echo命令:
echo “this is an example of the echo command!”
屏幕上就会回显“this is an example of the echo command!”
#符号
用于在shell脚本肿可以包含注解入口
echo “hello”
#this is a comment line. this would not proce any output!
echo “world!”
第二行是一个注解的例子。它将被shell忽略,而且不产生任何消息
变量:
可以在任何时间通过简单的赋值来创建。
语法:
<variable name>-<value>
Linux 中的所有变量都被当作字符串
引用变量:
$符号用于引用一个变量的内容
variable1 = ${variable2}
读入值给变量
在执行shell脚本时,shell还允许用户直接从键盘读入一个值给变量,还可以使用read命令来作。
$read fname
本地和全局shell变量
局部变量
当引用shell时,只有创建它的shell能够知道变量的存在
全局变量
称为子shell
shell中创建的变量局部于创建它的shell,除非使用export命令特别指出是全局的。
环境变量:
通过改变这些变量的值,用户能够定制此环境
一些环境变量的例子是HOME,PATH,PS1,PS2,LOGNAME,SHLVL,及SHELL
HOME变量
Linux系统中的每个用户都有一个相关的称作HOME的目录
当一个用户登录后,进入相应的HOME的目录
$ echo $HOME
PATH变量
包含一列用冒号定界的目录的路径名字,便于可执行程序的搜索。
PS1变量
PS1(Prompt String 1)变量包含了shell提示符,$符号
$ PS1 = “HELLO>”
HELLO>
PS2变量
是为第二个提示符设置值的环境变量
LOGNAME变量
包含用户的注册名字
$echo “${LOGNAME}”
SHLVL 变量
该变量包含当前工作的shell level
SHELL变量
环境变量存储了用户缺省的shell
env命令
可用来查看所有的已移出的环境变量表和它们各自的值!
命令替换
在单个命令行中使用多个命令的另外一种方法(非Pipes)是通过命令替换
echo “the data is `date`”
expr命令
用于求之算术表达式。该命令的输出被送到标准输出
$ expr 4 + 5
将在屏幕上显示9
算术展开:
你可以在$((…)) 中括一个表达式,用下面的命令来计算它的值;
$((expression))
example1
编写一个shell脚本用于计算呼叫中心未应答的询问的数量。该脚本应该接受一天那所报告的询问的总数和应答的询问的数量,以便计算未应答的询问的数量。
所有未应答的询问总数=所有询问的总数-应答的询问的数量
<!--[if !supportLists]-->※ <!--[endif]-->※※※※※※※※※※※※※※※※※※※※※※※
条件执行
test和[]
求值表达式,并返回true(0)或false()
数值测试:
-eq 等于则为真
-ne 不等于则为真
-gt 大于则为真
-ge 大于等于则为真
-lt 小于则为真
-le 小于等于则为真
if构造
Linux shell提供了循环和判定的构造,可以在shell脚本中使用
算术测试
结合if构造,它可以用于测试变量的数字值
串测试
test命令也可以用于字符串
= 等于则为真
!= 不相等则为真
-z 字符串 长度为零则为真
-n 字符串 长度不为零则为真
文件测试
test命令也可以用于检查文件的状态
-e 文件存在则为真
-r 文件存在并且可读则为真
-w 文件存在并且可写则为真
-x 文件存在并且可执行则为真
-s 文件存在并且至少有一个字符则为真
-d 文件存在并且为目录则为真
-f 文件存在并且为普通文件则为真
-c 文件存在并且为字符型文件则为真
-b 文件存在并且为块特殊文件则为真
-a并且 -o或者 !非
exit命令
用于终止shell脚本的执行并返回到$提示符下
case 。。。esac
shell脚本中使用的这个构造依据变量的值而执行一组特定指令
当变量的值和其中的一个值匹配的时候,就执行写在该值下的一组命令。
example3
迭代
while构造
while <条件>
do
<命令(s)>
done
只有条件为真的时候,才能执行do与done之间的命令
until构造
until循环构造的求值模式于while循环相反
until循环将继续执行直到求值的条件为真的时候
for构造
for variable_name in <list_of_values>
do
…
done
for循环取一列值作为输入并对循环中每个值执行循环
break和contineu命令
同其他语言中的用法
example4
控制进程的执行
请求后台处理
用于请求后台进程的符号是 (&)
$ wc tempfile &
[1] 2082
$ vi newfile
检查后台进程
ps(进程状态)命令为每个当前的活动的每个进程产生一行入口。
终止后台进程
可用kill,如下所示
kill 278
查看完成一个命令所花的时间
你可以使用time命令来查看一个命令从开始到结束所花的时间
time fine /etc –name “passwd” 2> /dev/null /dev/null表明忽略错误信息。
管道的介绍
垂直条(|)是管道字符
它只是shell:“|”前面命令的输出作为“|”之后命令的输入发送
ls –l | more
用管道组合命令,功能强大
Ⅱ 在linux的shell中/bin/true是什么意思
true命令啥都不做,只设置退出码为0。
在Linux底下,每个程序执行完毕都会返回一个退出码给调专用者,一般属情况下0表示成功,其他值表明有问题,当然某些程序的退出码有特殊含义。有些shell下true可能是个内建命令,至少bash下是。(do nothing, successfully。Exit with a status code indicating success. NOTE: your shell may have its own version of true, which usually supersedes the version described here. Please refer to your shell’s documentation for details about the options it supports.)
相对应的命令是false,也是啥都不干,但退出码设置为1。
Ⅲ linux中怎么查找文件夹是否存在
两个方式:find命令或者shell脚本。
1、find命令
find是linux下用于查找文件的通用方法。
find语法:
find
[指定查版找目录]
[查找规则]
[查找完权后执行的action]
例如:find
/tmp
-name
wa*
-type
l
,是在/tmp下查找名为wa开头且类型为符号链接的文件。找到就表示存在。
2、shell脚本
在进行文件的自动处理中常常需要自动判别,下面的脚本判断test.log是否存在,存在则显示文件存在,否则显示文件不存在。
例子:编辑一个脚本判断文件是否存在
vi
t.sh
#!/bin/bash
if
[
-e
/temp/test.log
];then
//这里是判断语句,-e表示进行比较结果为真则存在
echo
"文件存在"
else
echo
"文件不存在"
fi
保存退出
执行:
sh
t.sh
Ⅳ Linux系统test命令使用方法有哪些
1.判断一个命令的结果使用test,其返回0,或一个整数。返回0表示true,返回整数表示错误码
2.获取上一个命令的返回结果使用$?
3.例如
我的服务器上面存在/home/www这样一个文件夹,所以ls
/home/www这个命令的返回结果为0;
即echo
$?的返回值为0
我的服务器上面不存在/home/kkk这样一个文件夹,所以ls
/home/kkk这个命令的返回结果为这个命令执行后的错误码;
即echo
$?的返回结果为2。这个2表示文件或文件夹不存在。
4.常用的文件测试符
-e表示此文件名是否存在
-f表示此文件名是否是文件
-d表示此文件名是否是文件夹
-r表示此文件名是否可读
-w表示此文件是否可写
-x表示此文件是否可执行
-S表示此文件是否问socket
4.1在我的服务器上/home/www为一个文件夹
所以test
-e
/home/www的结果为0,即true,此文件名存在
所以test
-f
/home/www
的结果不为0,即false,此文件名不为文件
所以test
-d
/home/www的结果为0,即为true,此文件名为文件夹
4.2在我的服务器上/home/kkk这个文件名不存在
所以test
-e
/home/kkk的结果不为0,即false,此文件名不存在
所以test
-d
/home/kkk的结果不为0,即false,此文件名不问文件夹。
上面就是Linux逻辑命令之test命令的使用方法介绍了,如果你要判断一个条件是否成立,就会用过该命令,你学会了吗?
Ⅳ Linux命令应用大全的图书简介
作者: 张洪波,陈洪彬,吴君编著
出 版 社: 清华大学出版社
出版时间: 2009-1-1
字数: 866000
版次: 1
页数: 587
开本: 16开
印次: 1
纸张: 胶版纸
S B N : 9787302191025
包装: 平装
所属分类: 图书 >> 计算机/网络 >> 操作系统/系统开发 >> LINUX
定价:¥65.00 本书围绕Linux命令行下的命令进行深入而细致的讲解。本书的编写基于Linux Fedora 8操作系统2.6内核,几乎涵盖了Linux命令行下所有的命令,并介绍其对应的功能说明、语法说明、选项介绍、典型示例和相关命令,对每一个命令都做了较为详尽的介绍并结合大量的实例进行具体说明。读者可以通过对本书的学习,深入理解Linux命令。
本书所介绍的命令同时也适用于其他Linux版本,是Linux用户必备的参考用书。 第1章 系统管理命令
1.adser命令:增加一个系统用户
2.apmd命令:高级电源管理
3.apmsleep命令:产生配置脚本
4.apropos命令:查找用户手册的名字和相关描述
5.arch命令:输出主机的体系结构
6.batch命令:执行批处理
7.bg命令:将程序放在后台执行
8.cd命令:切换目录
9.chfn命令:设置finger信息
10.chsh命令:改变登录系统时的shell
11.clear命令:清除终端屏幕
12.date命令:显示或设置系统时间
13.echo命令:显示文本行
14.exec命令:执行命令后交出控制权
15.exit命令:退出shell
16.fc命令:修改或执行命令
17.fg命令:将后台任务拉到前台执行
18.fgconsole命令:打印虚拟终端的数目
19.finger命令:查找并显示用户的信息
20.free命令:显示内存信息
21.fuser命令:用文件或者套接口表示进程
22.fwhois命令:显示用户的信息
23.gcov命令:coverage测试工具
24.gdialog命令:从shell显示文本信息
25.gitps命令:显示程序情况
26.groupadd命令:创建一个新的群组
27.groupdel命令:删除一个群组
28.groupmod命令:改变系统群组的属性
29.halt命令:关闭系统
30.help命令:显示shell的内建命令的帮助信息
31.history命令:显示历史命令
32.htpasswd命令:创建和更新用户的认证文件
33.id命令:显示用户及群组的ID
34.info命令:读取目录信息
35.init命令:开关机设置
36.ipcs命令:显示进程间通信的信息
37.ipcrm命令:删除消息队列、旗语设置或者共享内存的ID
38.jobs命令:显示所有的后台程序
39.kill命令:终止执行中的程序
40.killall命令:终止同名的所有进程
41.last命令:显示目前和过去登录系统的用户相关信息
42.lastb命令:显示登录系统失败的用户相关信息
43.login命令:登录系统
44.logname命令:显示登录账号的信息
45.logrotate命令:处理log文件
46.logout命令:退出系统
47.lsmod命令:显示Linux内核模块信息
48.man命令:格式化和显示在线手册
49.manpath命令:设置man手册的查询路径
50.mkfontdir命令:创建字体文件目录
51.mount命令:挂载文件系统
52.mpost命令:系统的绘画工具
53.msgcat命令:合并消息目录
54.msgcomm命令:匹配两个消息目录
55.msgen命令:创建英语消息目录
56.msginit命令:初始化消息目录
57.newgrp命令:登录另一个群组
58.nohup命令:退出系统继续执行命令
59.ntsysv命令:设置系统的各种服务
60.open命令:开启虚拟终端
61.pgrep命令:基于名字和其他属性的查找或信号处理
62.pidof命令:查找运行程序的ID
63.pkill命令:终止程序
64.pmap命令:显示程序的内存信息
65.procinfo命令:显示系统状态
66.ps命令:报告程序状况
67.pstree命令:以树状图显示程序
68.pwck命令:检查密码文件
69.pwd命令:显示工作目录
70.reboot命令:重新启动
71.renice命令:调整优先级
72.rlogin命令:远程登录
73.rmmod命令:删除模块
74.rsh命令:远程登录的shell
75.rwho命令:查看系统用户
76.screen命令:多重视窗管理程序
77.shutdown命令:系统关机命令
78.sleep命令:休眠
79.su命令:变更用户身份
80.sudo命令:以其他的身份执行命令
81.suspend命令:暂停执行shell
82.swatch命令:系统监控程序
83.symlinks命令:维护符号链接的工具程序
84.tload命令:显示系统负载
85.top命令:显示进程信息
86.uname命令:显示系统信息
87.useradd命令:建立系统账号
88.userconf命令:用户账号设置
89.usermod命令:修改用户账号
90.userdel命令:删除用户账号
91.users命令:显示用户
92.vlock命令:锁定终端
93.w命令:显示登录系统的用户信息
94.wait命令:等待程序返回状态
95.watch命令:将结果输出到标准输出设备
96.whereis命令:查找文件
97.which命令:查找文件
98.who命令:显示系统用户信息
99.whoami命令:显示用户名
100.whois命令:显示指定用户信息
101.&命令:将任务放在后台执行
第2章 系统设置命令
1.alias命令:设置命令的别名
2.apmd命令:高级电源管理
3.at命令:指定执行命令的时间
4.atd命令:执行已经排队的任务
5.atq命令:检查排队的任务
6.atrm命令:删除已经排队的任务
7.atrun命令:执行已经排队的任务
8.aumix命令:设置音效设备
9.authconfig命令:配置系统的认证信息
10.bind命令:显示或者设置按键组合
11.chkconfig命令:设置系统的应用程序
12.chroot命令:改变根目录
13.clock命令:设置系统的RTC时间
14.crontab命令:设置计时器
15.declare命令:显示或者设定shell变量
16.depmod命令:模块关系
17.dircolors命令:ls命令对应的显示颜色
18.dmesg命令:显示开机信息
19.enable命令:可用的shell内置命令
20.eval命令:连接多个命令
21.export命令:设置或显示环境变量
22.false命令:不做任何事情,表示失败
23.fbset命令:设置帧缓冲区
24.hash命令:显示和清除哈希表
25.hostid命令:打印当前主机的标识
26.hostname命令:显示或设置当前系统的主机名
27.hwclock命令:显示和设定硬件时钟
28.insmod命令:载入模块
29.isosize命令:显示ISO9660文件系统信息
30.kbdconfig命令:设置键盘的类型
31.ldconfig命令:设置动态链接绑定
32.ldd命令:打印共享库文件的相互依赖关系
33.lilo命令:引导安装程序
34.liloconfig命令:设置程序的载入
35.losetup命令:设置循环设备
36.mev命令:监视鼠标情况
37.minfo命令:显示MS-DOS文件系统的各项参数
38.mkkickstart命令:建立安装的组态文件
39.mkraid命令:初始化/升级RAID设备阵列
40.modinfo命令:显示内核信息
41.modprobe命令:自动处理可载入的模块
42.mouseconfig命令:设置鼠标的相关参数
43.nice命令:设置优先权
44.passwd命令:设置密码
45.pwconv命令:开启用户的投影密码
46.pwunconv命令:关闭用户的投影密码
47.resize命令:设置终端视窗的大小
48.rpm命令:管理RPM包
49.runlevel命令:显示执行等级
50.set命令:设置shell
51.setconsole命令:设置系统终端
52.setenv命令:查询或显示环境变量
53.setserial命令:设置或显示串口的相关信息
54.setup命令:设置公用程序
55.sliplogin命令:将终端机之间的连接设为sliplogin连接
56.swapoff命令:关闭系统交换分区
57.swapon命令:启动系统交换分区
58.sysctl命令:设置系统核心参数
59.telinit命令:设置系统的执行级别
60.timeconfig命令:设置时区
61.ulimit命令:控制shell程序的资源
62.unalias命令:删除别名
63.unset命令:删除变量或函数
64.vmstat命令:显示虚拟内存的信息
65.yes命令:持续输出给定的字符串,每行显示一个字符串
第3章 磁盘的管理和维护命令
1.automount命令:为auto文件系统配置挂载点
2.badblocks命令:检查磁盘坏道
3.cfdisk命令:磁盘分区
4.dd命令:转换复制文件
5.df命令:显示磁盘信息
6.dirs命令:显示目录信息
7.命令:显示目录或者文件所占的磁盘空间
8.e2fsck命令:检查ext2文件系统
9.mkbootdisk命令:建立当前系统的启动盘
10.mke2fs命令:建立ext2文件系统
11.mkfs命令:建立各种文件系统
12.mkfs.minix命令:建立minix文件系统
13.mkinitrd命令:建立要载入ramdisk的映像文件
14.mkisofs命令:建立ISO9660映像文件
15.mkswap命令:设置交换分区
16.mt命令:磁带驱动操作
17.mzip命令:zip/jaz磁盘驱动器控制命令
18.quota命令:显示磁盘已使用的空间与限制
19.quotacheck命令:检查磁盘的使用空间与限制
20.quotaoff命令:关闭磁盘空间与限制
21.quotaon命令:开启磁盘空间限制
22.quotastats命令:显示磁盘空间的限制
23.raidstop命令:关闭软件控制的磁盘阵列
24.repquota命令:检查磁盘空间限制的状态
25.restore命令:还原mp操作备份的文件
26.rmt命令:远程磁带传输模块
27.sfdisk命令:硬盘分区工具程序
28.sync命令:将内存缓冲区的数据写入磁盘
第4章 文本编辑命令
1.awk命令:模式匹配语言
2.col命令:过滤控制字符
3.colrm命令:删除制定的列
4.comm命令:比较排序文件
5.ed命令:文本编辑器
6.egrep命令:输出某种匹配的行
7.ext2ed命令:ext2文件系统编辑
8.fgrep命令:匹配字符串
9.fmt命令:编排文本文件
10.gedit命令:gnome的文本编辑器
11.head命令:输出文件开头的部分信息
12.ispell命令:拼字检查程序
13.jed命令:编辑文本文件
14.joe命令:编辑文本文件
15.join命令:将两个文件中与指定栏位内容相同的行连接起来
16.less命令:一次显示一页文本
17.more命令:显示文本信息
18.nano命令:文本编辑器
19.pg命令:浏览文件
20.pico命令:
21.sed命令:利用script命令处理文本文件
22.sort命令:将文本文件内容加以排序
23.spell命令:拼字检查程序
24.tr命令:转换文件中的字符
25.uniq命令:检查文件中重复出现的行
26.vi命令:文字编辑器
27.vim命令:增强型vi编辑器
28.view命令:文字编辑器
29.wc命令:计算字数
第5章 文件传输命令
1.bye命令:终端FTP连接
2.fold命令:限制文件的列宽
3.ftp命令:文件传输协议
4.ftpcount命令:显示FTP用户登录数
5.ftpshut命令:定时关闭FTP服务器
6.ftpwho命令:显示FTP登录用户信息
7.ncftp命令:传输文件
8.ncftpget命令:下载文件
9.ncftpls命令:显示文件目录
10.ncftpput命令:上传文件
11.tftp命令:传输文件
12.uucico命令:UUCP文件传输
13.uucp命令:在Linux系统之间传输文件
14.uupick命令:处理文件
15.uuto命令:文件传输到远程主机
第6章 文件管理命令
1.aspell命令:检查文件的错误
2.attr命令:XFS文件系统对象的扩展属性
3.basename命令:显示文本或者目录的基本名称
4.chattr命令:改变文件的属性
5.chgrp命令:改变文件或者目录所属的群组
6.chmod命令:设置文件或者目录的权限
7.chown命令:改变文件的拥有者或群组
8.cksum命令:文件的CRC校验(该命令第一本没有)
9.cmp命令:比较文件的差异
10.cp命令:复制
11.csplit命令:分割文件
12.diff命令:生成差异信息
13.diffstat命令:diff结果的统计信息
14.dirname命令:显示文件的除名字外的路径
15.file命令:识别文件的类型
16.filterdiff命令:从diff文件中提取不同
17.find命令:查找文件或目录
18.findfs命令:通过列表或用户ID查找文件系统
19.git命令:在文字模式下管理文件
20.indent命令:调整C原始代码文件的格式
21.ln命令:链接文件或目录
22.lndir命令:连接目录的内容
23.locate命令:查找文件
24.lsattr命令:显示文件属性
25.mattrib命令:变更或显示MS-DOS文件的属性
26.mc命令:交互式文件管理程序
27.m命令:复制MS-DOS文件到Linux,或者将Linux文件复制到MS-DOS
28.md5sum命令:检查文件
29.mdel命令:MS-DOS文件删除
30.mdir命令:显示MS-DOS文件的目录
31.mkdir命令:建立目录
32.mktemp命令:建立暂存文件
33.mmove命令:移动MS-DOS文件
34.mread命令:复制MS-DOS文件
35.mren命令:更改MS-DOS文件
36.mshowfat命令:显示MS-DOS文件的记录
37.mtools命令:显示mtools支持的命令
38.mtoolstest命令:测试并显示mtools的相关设置
39.mv命令:移动或更改现有的文件或目录
40.od命令:输出文件内容
41.paste命令:合并文件的列
42.patch命令:修补文件
43.rcp命令:复制远程主机的文件或目录
44.rhmask命令:产生加密文件
45.rm命令:删除文件或目录
46.rmdir命令:删除目录
47.scp命令:远程复制文件
48.slocate命令:查找文件或目录
49.split命令:切割文件
50.stat命令:显示inode内容
51.sum命令:计算文件的校验码
52.tee命令:从标准输入读取并输出到标准输出和文件
53.tmpwatch命令:删除暂存文件
54.touch命令:更新文件或目录的时间
55.tree命令:以树状结构显示目录的内容
56.umask命令:指定在建立文件时预设的权限掩码
第7章 文件备份及压缩命令
1.ar命令:建立、修改或从档案文件中提取文件
2.bunzip2命令:解压缩.bz2类型的文件
3.bzip2命令:解压缩.bz2类型的文件
4.bzip2recover命令:对损坏的.bz2文件进行修复
5.compress命令:压缩文件
6.cpio命令:备份文件
7.mp命令:文件系统备份
8.fdisk命令:Linux分区控制表
9.fsck命令:检查文件系统并尝试修复错误
10.fsck.ext2命令:检查ext2文件系统
11.fsck.ext3命令:检查ext3文件系统
12.fsck.minix命令:检查minix文件系统并尝试修复错误
13.gunzip命令:解压缩文件
14.gzexe命令:压缩可执行文件
15.gzip命令:压缩文件
16.hdparm命令:显示和设定磁盘参数
17.lha命令:压缩或解压缩文件
18.tar命令:压缩/解压缩文件
19.umount命令:卸载文件系统
20.unarj命令:解压缩.arj文件
21.uncompress命令:解压缩.z文件
22.unzip命令:解压缩zip文件
23.zip命令:压缩文件
24.zipinfo命令:显示压缩文件的信息
第8章 网络通信及管理命令
第9章 程序编译命令
第10章 打印作业命令
第11章 电子邮件及新闻组命令
第12章 格式转换命令
第13章 系统软件工具
Ⅵ 在linux下shell脚本中if中用到or怎么写
1、没有参数的函数func(){echo "hello world"}func。
Ⅶ linux下如何做到从键盘输入字符不显示问题
应该是终端键盘布局(keyboard layout)设置不当吧。
因为我们通常用的键盘都是us104兼容的,所以很少需要手动设置。
补充:
我最近遇到一个类似的问题,那些方向键/PageUp/PageDown/NumLock/PrintScreen等不能正常工作。这个是由于x.org使用input hotplugging不当造成的。
你试试下面的办法,禁用input hotplugging,手动配置键盘:
$ su
# cd /etc/X11
# cp xorg.conf xorg.conf.bak
# nano xorg.conf
在这个文件开头添加:
Section "ServerFlags"
Option "AutoAddDevices" "False"
Option "AllowEmptyInput" "False"
EndSection
然后查看这个文件与键盘相关的部分是否使用了正确的驱动和布局:
Section "InputDevice"
Identifier "Generic Keyboard"
Driver "kbd"
Option "XkbRules" "xorg"
Option "XkbModel" "pc104"
Option "XkbLayout" "us"
EndSection
之后重启X。
如果你的发行版默认没有/etc/X11/xorg.conf文件,再发网络消息给我,或者添加在问题补充里面。
再补充:
详细步骤
先打开终端,一般在GNOME菜单的附件里面。
以下命令在终端中输入:
〔切换到root用户:〕
输入su,回车,输入root密码,回车
依次输入以下命令,忽略前面的#提示符:
〔备份原来的xorg.conf,然后用编辑器打开这个文件〕
# cd /etc/X11
# cp xorg.conf xorg.conf.bak
# nano xorg.conf
现在应该在nano编辑器里面了,你按照我前面说的该添加的添加,该检查的检查,之后保存文件。
退出终端,重启X。
Ⅷ Linux下怎样搜索文件
Linux下搜索文件,可以使用find命令。
1、find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。
2、命令一般格式:
find(选项)(参数)
3、常用参数说明
-amin<分钟>:查找在指定时间曾被存取过的文件或目录,单位以分钟计算;
-anewer<参考文件或目录>:查找其存取时间较指定文件或目录的存取时间更接近现在的文件或目录;
-atime<24小时数>:查找在指定时间曾被存取过的文件或目录,单位以24小时计算;
-cmin<分钟>:查找在指定时间之时被更改过的文件或目录;
-cnewer<参考文件或目录>查找其更改时间较指定文件或目录的更改时间更接近现在的文件或目录;
-ctime<24小时数>:查找在指定时间之时被更改的文件或目录,单位以24小时计算;
-daystart:从本日开始计算时间;
-depth:从指定目录下最深层的子目录开始查找;
-expty:寻找文件大小为0Byte的文件,或目录下没有任何子目录或文件的空目录;
-exec<执行指令>:假设find指令的回传值为True,就执行该指令;
-false:将find指令的回传值皆设为False;
-fls<列表文件>:此参数的效果和指定“-ls”参数类似,但会把结果保存为指定的列表文件;
-follow:排除符号连接;
-fprint<列表文件>:此参数的效果和指定“-print”参数类似,但会把结果保存成指定的列表文件;
-fprint0<列表文件>:此参数的效果和指定“-print0”参数类似,但会把结果保存成指定的列表文件;
-fprintf<列表文件><输出格式>:此参数的效果和指定“-printf”参数类似,但会把结果保存成指定的列表文件;
-fstype<文件系统类型>:只寻找该文件系统类型下的文件或目录;
-gid<群组识别码>:查找符合指定之群组识别码的文件或目录;
-group<群组名称>:查找符合指定之群组名称的文件或目录;
-help或——help:在线帮助;
-ilname<范本样式>:此参数的效果和指定“-lname”参数类似,但忽略字符大小写的差别;
-iname<范本样式>:此参数的效果和指定“-name”参数类似,但忽略字符大小写的差别;
-inum<inode编号>:查找符合指定的inode编号的文件或目录;
-ipath<范本样式>:此参数的效果和指定“-path”参数类似,但忽略字符大小写的差别;
-iregex<范本样式>:此参数的效果和指定“-regexe”参数类似,但忽略字符大小写的差别;
-links<连接数目>:查找符合指定的硬连接数目的文件或目录;
-iname<范本样式>:指定字符串作为寻找符号连接的范本样式;
-ls:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出;
-maxdepth<目录层级>:设置最大目录层级;
-mindepth<目录层级>:设置最小目录层级;
-mmin<分钟>:查找在指定时间曾被更改过的文件或目录,单位以分钟计算;
-mount:此参数的效果和指定“-xdev”相同;
-mtime<24小时数>:查找在指定时间曾被更改过的文件或目录,单位以24小时计算;
-name<范本样式>:指定字符串作为寻找文件或目录的范本样式;
-newer<参考文件或目录>:查找其更改时间较指定文件或目录的更改时间更接近现在的文件或目录;
-nogroup:找出不属于本地主机群组识别码的文件或目录;
-noleaf:不去考虑目录至少需拥有两个硬连接存在;
-nouser:找出不属于本地主机用户识别码的文件或目录;
-ok<执行指令>:此参数的效果和指定“-exec”类似,但在执行指令之前会先询问用户,若回答“y”或“Y”,则放弃执行命令;
-path<范本样式>:指定字符串作为寻找目录的范本样式;
-perm<权限数值>:查找符合指定的权限数值的文件或目录;
-print:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式为每列一个名称,每个名称前皆有“./”字符串;
-print0:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式为全部的名称皆在同一行;
-printf<输出格式>:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式可以自行指定;
-prune:不寻找字符串作为寻找文件或目录的范本样式;
-regex<范本样式>:指定字符串作为寻找文件或目录的范本样式;
-size<文件大小>:查找符合指定的文件大小的文件;
-true:将find指令的回传值皆设为True;
-typ<文件类型>:只寻找符合指定的文件类型的文件;
-uid<用户识别码>:查找符合指定的用户识别码的文件或目录;
-used<日数>:查找文件或目录被更改之后在指定时间曾被存取过的文件或目录,单位以日计算;
-user<拥有者名称>:查找符和指定的拥有者名称的文件或目录;
-version或——version:显示版本信息;
-xdev:将范围局限在先行的文件系统中;
-xtype<文件类型>:此参数的效果和指定“-type”参数类似,差别在于它针对符号连接检查。
4、示例
1)、在当前目录下搜索1.sh的文件。通过-name参数来指明要搜索的文件名
Ⅸ linux查找文件夹具体位置用什么命令
假设忘记了httpd.conf这个文件在系统的哪个目录下,则可以使用如下命令:
find/-namehttpd.conf
在find后面写上-name,表明要求系统按照文件名查找,最后写上httpd.conf这个目标文件名即可,命令反馈显示出查找结果列表:
etc/httpd/conf/httpd.conf
#这就是httpd.conf这个文件在Linux系统中的完整路径
#find()命令参数
-aminn
#查找系统中最后N分钟访问的文件
-atimen
#查找系统中最后n*24小时访问的文件
-cminn
#查找系统中最后N分钟被改变状态的文件
-ctimen
#查找系统中最后n*24小时被改变状态的文件
-empty
#查找系统中空白的文件,或空白的文件目录,或目录中没有子目录的文件夹
-false
#查找系统中总是错误的文件
-fstypetype
#查找系统中存在于指定文件系统的文件,例如:ext2.
-gidn
#查找系统中文件数字组ID为n的文件
-groupgname
#查找系统中文件属于gnam文件组,并且指定组和ID的文件。