Linux基础
linux目录结构
目录 | 描述 |
---|---|
/ | 根目录 |
/bin | 系统的常用命令s目录. 包括控制台命令, 系统可执行文件, 系统的核心二进制文件等 |
/sbin | 存放系统管理常用命令 |
/etc | 发布目录, 相当于 windows 系统中的 windows 目录, 保存系统中的所有核心内容. 用于保存系统数据文件、启动文件和脚本等 |
/usr | 用户目录, 相当于windows系统中的program files目录. 常用于安装系统所有用户共 用的软件,资源的 |
/root | root 根用户的用户目录. 相当于 windows 系统中的 C:/users/administrator 目录 称为用户主目录 |
/home | 保存其他用户主目录的目录 如: Linux系统中有oldlu用户. 那么一定有/home/oldlu目录存在. 代表用户的主目录 |
/var | 系统运行过程的数据目录 |
/boot | 存放系统核心文件 |
/dev | 存放与设备有关的文件 |
/lib | 存放用于编译某些程序时要用的函数库 |
/media | 用于系统自动挂载存储设备时(例如光驱、U盘)使用的目录 |
linux命令
1、帮助命令
2、文件目录相关
2.1 文件(夹)操作
2.2 查看文本内容命令
2.3 文件与目录权限修改
2.4 搜索文件或目录
2.4.1 grep
- grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来
- grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。
语法:grep [-option]
常用参数:
-c:只输出匹配行的计数。
-I:不区分大小写(只适用于单字符)。
-h:查询多文件时不显示文件名。
-l:查询多文件时只输出包含匹配字符的文件名。
-n:显示匹配行及行号。
-s:不显示不存在或无匹配文本的错误信息。
-v:显示不包含匹配文本的所有行
pattern正则表达式主要参数:
\: 忽略正则表达式中特殊字符的原有含义。
^:匹配正则表达式的开始行。
$: 匹配正则表达式的结束行。
\<:从匹配正则表达式的行开始。
\>:到匹配正则表达式的行结束。
[ ]:单个字符,如[A]即A符合要求 。
[ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求
。:所有的单个字符。
* :有字符,长度可以为0。
示例:
打印testfile文件中所有以north开头的单词的行
grep '\<north' testfile
打印testfile文件所有包含单词north的行
grep '\<north\>' testfile
显示aa文件中,所有包含每个字符串至少有5个连续小写字符的字符串的行
grep ‘[a-z]\{5\}’ aa
显示在aa,bb,cc文件中匹配test的行
grep 'test' aa bb cc
wc统计文件信息
查看系统中有多少个用户 :
wc -l /etc/passwd
2.4.2 find
- find命令可以对指定目录以及其所有子目录进行文件搜索
语法: find [path] [-option] filename
参数:
-name:按
find /etc -name "*.conf" 查找/etc目录及其子目录下所有名字结尾为.conf 的文件
-user:按文件属主来查找文件
find /etc -user root 查找/etc目录及其子目录下所有为root用户的文件夹和文件
2.4.3 locate
- 由于find命令在查找数据时比较消耗硬盘(find命令直接查找硬盘数据),可以使用另一个locate命令
- locate命令查找文件特别快,比find命令要快很多
语法: locate filename
示例:
locate passwd
- 如果locate出现以下错误, 则先执行updatedb命令手动更新数据库,然后再执行locate命令:updatedb
- locate效率高的原因
locate的快速是因为从已建立的数据库/var/lib/mlocate中查找数据,而不是直接在硬盘上进行,所以自然很快。但是locate命令也有限制,比如,有时候我们可能会找到一些已经被删除的文件,或者刚刚新建的文件我们找不到。这是由数据库文件的更新机制导致的。基本上Linux每次启动会更新数据库文件,但是我们最新创建或者删除的文件并没有被数据库记录,导致查询结果有问题。针对此,我们也可以用updatedb命令手动更新数据库。
2.4.4 whereis
语法: whereis [-option] filename
参数:
-b 定位可执行文件。
-m 定位帮助文件。
-s 定位源代码文件。
-u 搜索默认路径下除可执行文件、源代码文件、帮助文件以外的其它文件。
-B 指定搜索可执行文件的路径。
-M 指定搜索帮助文件的路径。
-S 指定搜索源代码文件的路径。
示例:whereis passwd
whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。
和find相比,whereis查找的速度非常快,这是因为linux系统会将 系统内的所有文件都记录在一个数据库文件中,当使用whereis和下面即将介绍的locate时,会从数据库中查找数据,而不是像find命令那样,通 过遍历硬盘来查找,效率自然会很高。
但是该数据库文件并不是实时更新,默认情况下时一星期更新一次,因此,我们在用whereis和locate 查找文件时,有时会找到已经被删除的数据,或者刚刚建立文件,却无法查找到,原因就是因为数据库文件没有被更新
2.4.5 which
which命令用于查找可执行文件的位置,该命令通过环境变量PATH所设置的路径进行搜索
语法: which filename
示例: which passwd
cd 这个常用的命令找不到。 为什么呢?这是因为 cd 是bash 内建的命令。 但是 which 默认是找 PATH 内所规范的目录,所以找不到。