一、基础知识
1、Linux简介
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
简单点说,linux就是一个操作系统,和windows、mac的os x 一样。
Linux的版本号又分为两部分:内核(Kernel)版本和发行(Distribution)版本。内核版本的序号由3部分数字构成,其形式:2.4.20
Linux国外主要发行版本
1.Red Hat Linux
2.SuSE Linux
3. Turbo Linux
4. Ubuntu
Linux国内主要发行版本
1.红旗Linux【红旗Linux是由北京中科红旗软件技术有限公司开发的一系列Linux发行版,包括桌面版、工作站版、数据中心服务器版、HA集群版和红旗嵌入式Linux等产品。目前在中国各软件专卖店可以购买到光盘版,同时官方网站也提供光盘镜像免费下载。红旗Linux是中国较大、较成熟的Linux发行版之一】
2.中标普华Linux【上海中标软件有限公司发布的面向桌面应用的操作系统产品】
3. 蓝点Linux【蓝点软件技术(深圳)有限公司研发,早期研发个人桌面linux,但现蓝点(BluePoint)主要产品:防毒及邮件过滤 , 防火墙】
Linux内核版本号的含义:Linux内核版本由3个数字组成:r.x.y,
r:目前发布的Kernel主版本
x:偶数是稳定版本,奇数是开发中的版本
y:错误修补次数
一般来说,x位为偶数的版本表明这是一个可以使用的稳定版本,如: 2.6.18;x位为奇数的版本一般加入了一些新内容,不一定稳定,是测试 版本,如:2.7.22。
查询内核版本命令: uname -r
2、Linux特点
1、开源的
2、强大的数据库支持
支持Oracle、Sqlite、Sybase、DB2、MySQL、PostgreSQL
3、强大的网络功能
可以充当应用服务器、文件服务器、打印服务器、邮件服务器、新闻 服务器等
4、支持多用户
Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响【win只能一个用户连接,如果一个用户连接了win,其他人都不能再连接了;而linux支持多个用户可以同时连接同一台linux服务器】
5、支持多种文件系统
6、良好的可移植性
Linux是世界上唯一能够在嵌入式设备、个人计算机、服务器、小型机甚至大型机上运行的操作系统
7、可靠性高
3、Linux远程登录工具
1、telnet远程登录
2、SSH远程登录
SSH远程登录常用工具:secureCRT/xshell/ssh命令远程登录等
注:win下用ssh命令连接远程服务器,即命令: ssh 用户名&IP【需安装OpenSSHWindows包才有SSH命令】
4、Linux上传下载工具
1、Xftp、FileZilla、Winscp等工具
2、RZ、SZ命令
Rzsz需要在linux下安装:
a、Rzsz命令安装:使用yum安装,yum –y install lrzsz【需要网络】
b、编译安装:http://blog.chinaunix.net/uid-20639775-id-154615.html【不需网络】
缺点:RZsz命令只能上传文件,不能上传文件夹,如果上传文件夹必须将其压缩才可以上传
5、Linux系统管理
1)、注销、重启命令
a、注销:exit(常用于字符界面,图形界面只关闭终端窗口)
logout(仅文本终端)
b、重启命令
reboot
-w:不实际关机,用户登录信息写入/var/log/wtmp
-d:不将用户登录信息写入/var/log/wtmp
-f:强制重启
reboot 可以不接参数【直接重启】
shutdown
shutdown -r 延时分钟数 “提示信息”
shutdown -r now(now表示立即执行)
不能单独用,至少2个参数
c、关机
halt
-w:不实际关机,用户登录信息写入/var/log/wtmp -d:不将用户信息写入/var/log/wtmp
-f:强制关机
-p:关机后,关闭电源
可以不接参数
poweroff
除了无-p参数,其他与halt同
init 0
shutdown
shutdown -h 延时分钟数 “提示信息”
shutdown -h now(now表示立即执行)
不能单独用,至少2个参数
2)、图形化界面和文本界面
a、 /etc/inittab文件中的initdefault参数可以修改默认启动图形化界面还是文本界面,3为默认进入文本界面,5为默认进入图形化界面。
原因:虚拟机里只安装了文本界面,未安装图形化界面,如果initdefault改为5,重启虚拟机时,会一直按图形化界面启动但是系统又未安装图形化界面,所以启动不起来
b、文本界面下输入init5或者startx切换图形化界面;图形化界面下输入init3切换文本界面
c、一般默认进入文本界面
6、Linux用户、组
1)、Linux用户
a、添加用户
useradd -d 家目录 -g 组名 -G 组集合(逗号间隔) -p 密码 -s 用户shell程序 用户名
useradd -d /usr/local/nginx/ -g nginx -G nginx,oracle -p123456 -s /bin/bash test4
若没有使用-p,可以使用命令加密:passwd 用户名
passwd test4
可以不加参数直接useradd test5,添加一个用户,默认使用bash shell,家目录在/home/下
看Linux中有哪些用户:进入home目录,在该目录下ls
b、修改用户
usermod -l 新用户名 -d 新家目录 旧用户名
usermod –l tom –d /usr/local/tomcat test4
家目录要存在,且为绝对路径
Usermod中同样可以使用useradd参数
c、删除用户
userdel -r 用户名
userdel –r test3
-r用于删除家目录及其所有文件
注:-c comment 指定一段注释性描述。
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
-g 用户组 指定用户所属的用户组。
-G 用户组,用户组 指定用户所属的附加组。
-s Shell文件 指定用户的登录Shell。
-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
d、切换用户su
用法: su root 或者 su - root
这两者的区别是su root不会重新加载切换用户的用户变量,su - root会重新加载用户的用户变量
注:$和#,$代表普通用户,#代表root用户
e、获取超级用户权限sudo
用法:sudo reboot
有一些命令是普通用户没有权限操作的,所以要用sudo来获取超级用户权限
如果普通用户要使用sudo命令,需要在/etc/sudoers文件中配置才可以使用,例如要besttest用户可以使用sudo获取root用户权限,使用root用户编辑/etc/sudoers文件,找到 root ALL=(ALL) ALL 这一行,在它下面加入bestest ALL=(ALL) NOPASSWD:ALL然后保存即可。NOPASSWD代表该用户使用sudo的时候不用输入密码
2)、Linux组
a、增加组groupadd
groupadd -g 组ID -r 组名
Groupadd –g 451 –r besttest
-r:建立系统组,组ID小于499
新组ID在500-60000之间,小于500的为系统组
所有参数均可省(除了组名)
groupadd dba 添加一个dba组
b、修改组groupmod
groupmod –g 组新id –n 组新名 组旧名
groupmod –g 561 –n test besttest
c、删除组groupdel
groupdel 组名
groupdel test
7、Linux网络配置
1)、设置ip地址【设置静态IP】
1、在/etc/sysconfig/network-scripts/ifcfg-eth0文件中设置
2、Linux下ip地址信息以及ip获取方式都是存放在ifcfg-eth0这个文件下的,如果有多块网卡的话就是ifcfg-eth0、ifcfg-eth1依次
2)、设置临时ip地址
命令:ifconfig eth0 192.168.1.102 【eth0指定第1块网卡】
注:临时设置ip地址可以使用ifconfig 网卡 ip地址临时设置ip地址,重启后会失效
注:如果没有ifconfig命令,可以用ip a来查看ip地址
自动获取ip地址命令:dhclient
3)、设置dns【上网的话需要配置DNS,解析成IP地址】
修改文件:/etc/resolv.conf
一般不要设置静态IP地址和DNS,因为如果网络发生变化需要重新设置IP和DNS,可用命令dhclient自动获取ip地址。
全局网络配置文件:/etc/sysconfig/network
主要有两个配置项 NETWORKING(网络工作状态)和HOSTNAME(主机名)
修改主机名的话修改HOSTNAME的值即可
查看ip地址,ifconfig命令
重启、启动、停止网络命令:service network restart/start/stop
4)、VMware的3种网络类型
1、VMnet0:用于虚拟桥接网络下的虚拟交换机【桥接方式】
2、VMnet1:用于虚拟Host-Only网络下的虚拟交换机【仅主机模式】
3、VMnet8:用于虚拟NAT网络下的虚拟交换机【NAT模式】
VMware Network Adapter VMnet1:Host用于与Host-Only虚拟网络进行通信的虚拟网卡
VMware Network Adapter VMnet8:Host用于与NAT虚拟网络进行通信的虚拟网卡。
虚拟机有三种连接方式:桥接方式、NAT模式、Host-only模式(仅主机模式);三者区别:
桥接方式:去局域网获取IP,不同的网络,IP地址会变
NAT模式和Host-only模式都是把电脑本身当成转换器去获取IP,所以不同网络IP地址不变,如果想IP地址不变可以选择NAT模式或Host-only模式,但是Host-only模式有时会上不了网,所以建议用NAT模式连接
8、Linux文件系统
- 树状结构,/为最高的根目录
- root:root用户的个人文件夹(家目录)
- bin:存放多数用户可用的命令
- boot:存放启动文件和配置信息,系统启动时会用
- dev:存放设备文件,/dev/hdc代表光驱
- etc:存放服务配置文件
- home:其他用户的家目录
- lib:存放程序运行所需要的库文件
- media:可移动设备的挂载目录
- mnt:设备挂载目录
- usr:用户程序存放目录
- var:存放经常改动的数据文件
- tmp:存放临时文件
- sbin:存放维护系统所需命令,一般仅root可用
- proc:存放核心运行时产生的文件,这些文件位于内存而非硬 盘中
- sys:与proc类似,设计比proc更清晰,文件位于内存
- srv:服务需要的数据的存放目录
- lost+found:文件系统修复时找回的丢失文件
- opt:额外软件安装目录
- misc:不方便归类的杂项文件
- selinux:SELinux文件系统实例
9、文本编辑器VI
vi是Linux/Unix底下最常用的文本编辑器,可以理解为和Windows下的txt一样。
vim:vim是vi的升级版本,它不仅兼容vi的所有命令,而且还加入了一些新的特性,可以把vim理解为vi的升级版
1)、vi有两种模式:命令模式和编辑模式
a、命令模式
- 进入vi时的默认模式,此模式下所有的用户输入都视为命令
- 用户在此模式下进行搜索、复制、替换
b、编辑模式
- 用户在此模式下可以编辑文本内容
2)、vi模式切换
默认进入命令模式,切换成编辑模式按键如:i(当前位置) 、a(下一位置)、o(下一行);
编辑模式切换成命令模式:esc[在键盘的左上角]
3)、VI对文件的编辑方式
1)、 光标定位
- M 移动光标到页面中央
- L移动光标到页面尾处
- H移动光标到页面开始处
- Ctrl+f向后翻页
- Ctrl+b向前翻页
- 0移动光标到行首
- $移动光标到行尾
- /:从上往下开始查找【格式:/查找的内容】
- ?:从下往上开始查找【格式:?查找的内容】
- Ctrl + d:往下翻半屏内容
- Ctrl + u:往上翻半屏内容
- Shift + g:到文件末尾
- u复原前一个动作
- . 重复前一个动作
- nyy 复制光标所在的向下n行内容
- yw复制光标后的单词,以空格为分界
- p在光标处粘贴复制的内容
- ndd删除光标所在向下n行的内容
- r:替换当前位置字符
- x:删除当前位置字符
- dd:删除整行
- :1,3y 复制第一行到第三行
- :1,3d 删除第一行到第三行
- :1,3s/str/str_new/g 替换第一行到第三行中的字符串
- :1,3s/str/str_new 替换第一行到第三行中的字符串第一个字符
- :1,3 g/str /d 删除第一行到第三行中含有这个字符串的行
- set number:显示行号
- set nonu:取消显示行号
2)、 撤销和重复
• u复原前一个动作
• . 重复前一个动作
3)、 复制 粘贴 删除 替换
• nyy 复制光标所在的向下n行内容
• yw复制光标后的单词,以空格为分界
• p在光标处粘贴复制的内容
• ndd删除光标所在向下n行的内容
• r:替换当前位置字符
• x:删除当前位置字符
• dd:删除整行
• :1,3y 复制第一行到第三行
• :1,3d 删除第一行到第三行
• :1,3s/str/str_new/g 替换第一行到第三行中的字符串
• :%s/str/str_new/g 替换文件中所有【将文件中所有str字符串替换成str_new】
• :1,3s/str/str_new 替换第一行到第三行中的字符串第一个字符
• :1,3 g/str /d 删除第一行到第三行中含有这个字符串的行
4)、 设置行号
• set number:显示行号
• set nonu:取消显示行号
5)、 搜索字符串
- 输入/+要查找的字符串
- /bestest
- 按n键重新查找下一个
6)、 退出
• q 退出vi
• q! 不保存退出
• wq 保存退出
• e!不保存修改的文件
• w 保存
• !强制,后面加叹号的话表示强制
二、Linux常用命令
1、帮助命令
whatis命令:简单描述命令功能
-help选项:命令使用摘要及参数列表
man命令:命令说明文件
info命令:更详细的说明文件
说明/usr/share/doc/
2、文件管理命令
1、alias给命令起别名、unalias取消别名
alias给命令起别名,想要用该命令可以直接用别名即可
格式:alias 命令别名='命令'
unalias取消别名(格式:unalias 别名)
eg:启动/停止lampp时总是要到它响应的目录下,这时可起个别名,直接用别名启动、停止lampp,简化操作,具体如下图:
上图方式只在本次启动有效,如果虚拟机注销,此别名失效;要想让其一直有效可以在用户的家目录下编译.bashrc文件【该文件是用户环境变量文件】,添加命令别名后用source命令使其生效,如下图:
输入alias查询系统别名
2、ls查看
- ls:列举指定目录下的子目录和文件
- 用法:ls [-arltrx] [name……]
- 主要参数:
- -a, --all:不隐藏任何以“.” 字符开始的项目。 -i, --inode:列出每个文件的inode号。 -l:使用较长格式列出信息。
- -t 以时间排序。
- -r, --reverse:依相反次序排列。
- -R, --recursive:同时列出所有子目录层。 -s, --size:以块大小为序。
- ls -l 显示文件信息【例如:大小、权限等】
- 命令可以和通配符"*"一起使用:eg:ls p* :查看当前目录下所有p开头的文件
3、cd进入目录
- cd回车:退到当前用户个人目录
- cd / :退到最根目录
- cd ../xx:退到上级目录的xx目录
- cd .:停留在当前目录
- cd .. :返回上级目录
- cd –:回到上一次操作的目录
- cd ~: 回到用户家目录
4、cp: 复制文件夹/文件
• cp:复制指定文件到另一文件或目录
• 用法:cp [-abrifLP] [source] [dest]
• 主要参数:
• -a:尽可能的将文件的属性、权限的内容都照原状复制
• -b:如果目的文件存在,就创造一个备份
• -r:若源中有子目录,则将子目录下的文件及目录亦全部复制至目的目录
• -i:若目的地有重复的文件,询问是否覆盖
• -f:若目的地有重复的文件,则覆盖原有文件
• -L:复制符号链接,自动修改链接以保证链接有效
• 举例:
• cp -rf a.txt /tmp
注:复制时如果使用-rf时若有重复文件,依然提示是否覆盖,原因:使用alias下查看cp别名,会发现alias cp='cp -i'默认cp命令加了-i,如果不想提示是否覆盖,可以unalias cp。
5、scp:在两台电脑间复制
6、mv移到文件/还有改名的功能
• mv:用来为文件或目录改名,或者将文件由一个目录移入另一个目录中
• 用法:mv[options] 源文件或目录 目标文件或目录
• 主要参数:
• -i:交互方式操作。如果mv操作将导致对已存在的目标文件的覆 盖,此时系统询问是否重写,要求用户回答“y”或“n”,这样可 以避免误覆盖文件。
• -f:禁止交互操作。mv操作要覆盖某个已有的目标文件时不给任 何指示,指定此参数后i参数将不再起作用。
• 举例:将/usr/local/tomcat下所有文件移动到 /tmp/tomcat下
• mv /usr/local/tomcat/* /tem/tomcat
• 将a.txt改名为b.txt
• mv a.txt b.txt
注:mv[options] 源文件/目录 目标【与源文件/源目录路径相同名称不同】---->改名
mv[options] 源文件/目录 目标【与源文件/源目录路径、名称均不同】---->移动并改名
mv[options] 源文件/目录 目标【与源文件/源目录路径不同、名称相同】----->移动
7、rm删除文件/文件夹
• rm:用来删除文件或目录
• 用法:rm [-ifr] name
• 主要参数:
• -r:删除目录及子目录,目录下如果有子目录及文件也会被删除
• -f:不询问直接删除
• -i:删除前逐一询问确认
• 注意: 删除的文件非常难恢复,没有windows的回收站
• 举例:删除/tmp/logs下所有文件
• rm -rf /tmp/logs/*
• rmdir:用来删除一个空文件夹
• 主要参数 -p 删除指定目录后,若该目录的上层目录已变成空目录,则将其一并删除
• rmdir不能删除非空目录
8、pwd列出当前目录
9、mkdir创建文件夹
- mkdir:创建文件夹
- 用法:mkdir [options] name
- 主要参数:
- -p:如果创建的文件夹父目录不存在会连父目录一起创建
- -m :配置文件案的权限喔!直接设定,不需要看预设权限 (umask)的脸
10、rmdir删除空文件夹
• rmdir:用来删除一个空文件夹
• 主要参数 -p 删除指定目录后,若该目录的上层目录已变成空目录,则将其一并删除
• rmdir不能删除非空目录
11、cat查看文件内容
• cat:用于连接并显示指定的一个和多个文件的有关信息
• 用法:cat [options] 文件1 [文件2]……
• 主要参数:
• -n:由第一行开始对所有输出的行数编号。
• -b:和-n相似,只不过对于空白行不编号。
• -s:当遇到有连续两行以上的空白行时,就代换为一行的空白行。
• 举例:
•将几个文件处理成一个文件,并将这种处理的结果保存到一个单独的输出文件
• cat a.txt b.txt > c.txt
• 对行进行编号
• cat -b a.txt
• cat 可以不添加任何参数直接使用
12、more/less分屏显示文件内容
• more和less:分屏显示文件内容,可以逐页或者逐行 显示文件内容
• 用法:more [参数] 文件 less [参数] 文件
• 举例:less a.txt more a.txt
• 回车为显示下一行
• 空格为转到下页
• G 移动到最后一行 #less
• g 移动到第一行 #less
注:more/less查看内容后也可以“/+搜索内容”搜索
13、tail动态查看文件内容
• tail:查看文件末尾内容
• 用法:tail [参数] [文件]
• 主要参数:
• -f 动态读取
• 举例
• 动态查看日志 tail -f err.log
• 查看末尾10行日志 tail -10 err.log
• 动态查看末尾5行日志 tail -5f err.log
14、head显示文件的开头至标准输出中
• head:显示文件的开头至标准输出中
• 用法:head [参数]... [文件]...
• 主要参数:
• -n<行数> 显示的行数
head 是从头开始显示内容,head -10 filename:显示前10行内容
cat、more/less、tail的区别:
cat会将文件内容全部显示出来,如果文件内容较多只能看到最后的部分
more/less是一页一页的显示,即分屏显示文件内容
tail查看文件末尾内容,也可以动态查看文件内容;cat、more、less不能动态查看
15、ln创建文件链接
ln创建文件链接,即添加快捷键
• ln:创建文件链接
• Linux中,每一个文件都对应于文件系统上的唯一索引节点
• 硬链接:
• 一个文件可以有多个文件名,每一个文件名都是一个硬链接,它们指向目标文件所在文件系统中的索引节点,硬链接指向的是同一个物理位置,所以同一文件系统中的文件间才能建立硬链接
• 硬链接可以看做文件别名,所有硬链接都删除时,文件才被真正删除
• 目录不可以建立硬链接,否则目录遍历会陷入死循环
• ln 源文件 硬链接目标文件
• 软连接【即添加快捷键】
• 包含目标文件或目录的路径信息
• 软连接可以跨越文件系统,也可以连接目录
• 相当于Windows的快捷方式
• ln -s 源文件 软连接目录或文件【即添加快捷键】
16、du文件和目录的磁盘使用空间
• 用法:du [选项][文件]
• 主要参数:
• -s或--summarize 仅显示总计,只列出最后加总的值
• -h或--human-readable 以K,M,G为单位,提高信息的 可读性
• -k或--kilobytes 以KB(1024bytes)为单位输出
• -m或--megabytes 以MB为单位输出
• -S或--separate-dirs 显示个别目录的大小时,并不含其子 目录的大小
常用du -sh [文件]查看大小
17、lsof列出当前系统打开文件的工具
• lsof:列出当前系统打开文件的工具
• 用法:lsof [options] filename
• 常用参数:
• lsof filename 显示打开指定文件的所有进程
• lsof -c string 显示COMMAND列中包含指定字符的进程所有打 开的文件
• lsof -u username 显示所属user进程打开的文件
• lsof +d DIR/ 显示目录下被进程打开的文件
• lsof +D DIR/ 上,但是会搜索目录下的所有目录,时间相对较长
lsof输出说明:
• COMMAND:进程的名称
• PID:进程标识符
• USER:进程所有者
• FD:文件描述符,应用程序通过文件描述符识别该文件。如cwd、 txt等
• TYPE:文件类 型,如DIR、REG等
• DEVICE:指定磁盘的名称
• SIZE:文件的大小
• NODE:索引节点(文件在磁盘上的标识)
• NAME:打开文件的确切名称
18、chmod赋权限
• chmod:用来给文件或者文件夹赋权限
• 用法:chmod [选项][文件]
• chmod有两种方式,数字方式和文本方式:
• 数字方式:
[n][n][n] r=4 w=2 x=1
rwx:4+2+1; r-x:4+1; rw-:4+2
• 文本方式
u -- 该档案的拥有者;
g -- 与该档案的拥有者属于同一个群体(group)者;
o -- 其他以外的人;
a -- 所有
+ -- 增加权限
- -- 去掉权限
-R 递归,主要用于一个目录,把该目录下所有的文件/文件夹赋权限
注:给文件赋权限不需要加-R,给文件夹赋权限时需加-R,如果给文件夹赋权限未加-R,那文件夹的权限修改了但该文件夹下的文件权限未被修改
示例:
• 给text文件赋予rwxr-xr-x权限
chmod 755 text
• 给text及其子目录底下所有文件赋予rwxr-xr-x权限
chmod -R 755 text
• 为文件abc的组拥有者增加rw权限
chmod g+rw abc
• 为abc文件的用户拥有者去除x权限
chmod u-x abc
• 指定文件abc的其他用户权限为rw-
chmod o=rw-
• 为文件abc及其子目录底下的所有文件的全体用户增加x权限
chmod -R a+x abc
19、chgrp改变文件所属组
• chgrp:改变文件所属组
• 用法:chgrp [选项] [组] [文件]
• 主要参数:
• -R 递归
• 注意:改变所属组的使用权限必须是超级用户
20、chown改变文件所有者和所属组
• chown:改变文件所有者和所属组
• 用法:chown [选项] 用户或组 文件名
• 主要参数: -R 递归式地改变指定目录及其所有子目录、文件 的文件主
• 注意:使用权限是超级用户
举例: chown -R test:test foo
21、wc统计文件中的行数、字节数、字数
• wc:统计指定文件中的行数、字节数、字数,并将统计结果显示输出
• 用法:wc [选项] [文件]
• 主要参数:
• -c 统计字节数。
• -l 统计行数。
• -m 统计字符数。这个标志不能与 -c 标志一起使用。
• -w 统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串。
• -L 打印最长行的长度。
• -help 显示帮助信息
• 可以不加任何参数使用
22、clear清屏
23、history查看历史命令
3、搜索命令
1、grep显示文件中的匹配行【即查找文件的内容】
- grep:显示文件中的匹配行
- 用法:grep [参数] 字符串 文件名
- 主要参数:
- 无参:显示匹配行内容
- -c:显示匹配行数【即总共匹配了几行】
- -e 字符串:匹配特殊字符串,如-开头
- -i:忽略大小写
- -v:输出不匹配行
- -w:匹配指定字符串
- 可以和别的命令通过"|"管道符连接使用
- 示例:
- grep -c “foo” a.txt【例1】
- ps -ef|grep httpd |grep -v "grep"【例2】
- grep常和其他命令结合使用,例如例2
2、find查询文件或文件夹
- find:查找目录下的文件
- 用法: find 目标目录 搜索参数 操作参数
- 主要参数:
- -name 文件名:可以跟通配符
- -amin 分钟数:文件最后访问时间为指定分钟之前,负数表示之后
- -atime 天数:文件最后访问时间为指定天数之前,负数表示之后
- -cmin 分钟数:文件最后修改时间为指定分钟之前,负数表示之后
- -ctime 天数:文件最后修改时间为指定天数之前,负数表示之后
- -user 用户名:属于用户的目录和文件
- -type 文件类型
- 示例:
- find / -name besttest
3、定位文件位置
- locate 命令其实是“find -name”的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库( /var/lib/locatedb)【此数据库存放了Linux系统所有的目录】,这个数据库中含有本地所有文件信息,locate命令需要安装,系统本身不自带
- whereis 命令只能用于程序名的搜索,而且只搜索二进制文件(参数 -b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省 略参数,则返回所有信息。同locate一样,查询数据库( /var/lib/locatedb)文件
- which 在PATH变量指定的路径中,搜索某个系统命令的位置,并且 返回第一个搜索结果。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令
- 区别:locate可以搜索所有文件,whereis是搜索程序名,如果是一个普通的文件是找不到的,which命令只查找环境变量中path里面的路径
- 示例:locate besttest.txt
- whereis mysql
- which locate