写在前面
分享我在学习Linux入门时的笔记,主要通过慕课网学习并记录了如下笔记。适合初学者了解Linux的一些基本知识、指令。
链接:Linux达人养成计划1
正菜
一、文件搜索命令
1. locate命令
和find相比,locate搜索速度非常快;find占用系统资源大。
-
locate
不是遍历整个系统的文件,而是搜索/var/lib/mlocate
下的数据库,所以比较快;但是这个数据库不是实时更新的,而是一天更新一次,所以新建文件是搜索不到的,如果想要搜索到,可以使用updatedb
命令更新数据库即可。 - 缺点:只能按照文件名搜索
- 特点:搜索时遵守配置文件的要求(当配置文件中
PRUNJE_BIND_MOUNTS = “YES”
时,配置文件的要求才生效),可以打开配置文件查看内容
2. 命令搜索命令 whereis 和 which
-
whereis
命令只能搜索系统命令,不能搜索普通文件;
whatis
命令名——显示命令的功能
whoami
—— 用于打印当前有效的用户名称
-
举个栗子
- 当一个命令有别名时才能搜索到,但不是所有命令都有别名(简略名/全名)
- 注意:which和whereis命令都只能搜索存在文件支持的“外部”命令,而cd命令是shell内置的命令(shell会内置一些比较简单的命令,一些比较复杂的命令需要后来安装),不需要文件支持,这一类命令使用which和whereis搜索不到,只能搜索到帮助文档所在位置!
3. PATH环境变量(Windows中的环境变量也是这样)
在Linux中,要想执行脚本或者执行命令,需要用绝对路径。比如,执行ls命令,需要输入/bin/ls,这样很不方便!环境变量可以避免每次都输绝对路径!
环境变量之间以冒号 : 分割;
- 当不输入绝对路径,只输入一个命令ls时,系统会在环境变量的各个目录下搜索是否有对应的脚本或执行命令,如果找得到,就执行命令;否则就报错,比如lssss;如果是自己写的脚本或者命令,要想使用的时候不用每次都输入绝对路径,就必须将路径提前添加到环境变量中!
4. 文件搜索命令find
- Linux中的通配符
*
匹配任意内容
?
匹配任何一个字符
[]
匹配任何一个中括号中的字符
- 注意,若使用通配符,要将文件名和通配符都用双引号引起来;注意:通配符完全匹配!
-
find /home –name "ab[cd]"
——搜索/home
目录下文件名是abc或者abd的文件; -
find /home –name "*[cd]"
——搜索/home
目录下文件名以c或者d结尾的文件;
-
find / -nouser
—— 寻找没有所有者的文件:搜索结果很可能是垃圾文件,但是有两种情况例外,
①/proc 、 /sys
中的文件,由内核产生,可能没有所有者
②外来文件(U盘、光盘等),因为Windows中产生的文件忽略了所有者
-
默认按照天来查找,其实还可以按照分钟来查找
-
举个栗子
从查找结果来看:按照字节大小查找只能使用小写的k,按照兆字节大小来查找只能使用大写的M;如果什么大小单位都不加,默认单位是硬盘单个扇区的数据块(不是格式化那里说的那个4kb大小的数据块哦),单个数据块大小512kb。
- 第二条命令中:
find 命令_1 -exec 命令_2 {} \;
是标准写法,有-exec后面就要加{} ;
表示对于命令_1的查找结果用命令_2进行处理,例:
5. 字符串搜索命令grep——搜索文件内容中符合条件的字符串
-
命令格式
-
举个栗子
-
find命令和grep命令的区别
- 完全匹配:find /root -name install.log,查找结果不会有install.log.log,只会有install.log。 这叫做完全匹配;匹配符适用完全匹配
- 包含匹配:grep “size” anaconda-ks.cfg,查找结果是所有包含字符串“size”的行。正则表达式适用包含匹配
原创文章,转载请注明出处:http://www.jianshu.com/p/11186e17235c