Linux复习笔记
Linux基本知识复习笔记
文件和目录管理
Linux文件系统类型
目录树结构
Linux目录是使用 /
正斜杠分割,而windows则是 \
反斜杠
Linux文件结构
linux的文件结构是树状结构,而且每个枝叶可以被挂载到不同的物理设备上
绝对路径和相对路径
- 绝对路径:从根目录开始的路径
- 相对路径:从当前目录开始的路径,可向上也可向下
|
|
常见命令总览
目录树中走动
创建、删除、移动、复制
文件查看
通配符
pwd
显示当前路径的绝对路径
mkdir
主要有两个选项 -m
和 -p
-m
:mode,设置目录权限,和chmod中使用的一样。-p
:parents,当目录已存在时不报错,并且在必要的时候级联创建目标目录的父目录。
rmdir
rmdir
只能用于删除空目录,如果需要删除有文件的目录需要使用 rm
命令。rmdir
也有 -p
选项,但也只能用于删除空目录。
rm
-r
:用于删除目录,会提示输入确认信息-f
:表示强制删除,不会询问是否删除
禁忌
|
|
ls
列出目录中的内容
-l
: 长格式显示详细信息,每行列出的信息依次是:文件类型与权限、链接数、拥有者、拥有组、大小、时间信息、文件名-a
: 显示所有子目录与文件,包括隐藏文件-d
: 如果参数是目录,只显示其名称而不显示其下的内容-t
: 按时间排序(和-c -u 搭配使用;我经常用 ll -tc)-c
: 按照文件修改时间排序-u
: 按照文件上次存取时间排序-i
: 在输出的第一列显示inode号-R
: 对子目录递归执行ls
-F
: 以不同标记注明文件类型
文件类型
Linux中文件后缀名(扩展名)只能用来标识文件类型,并没有实际约束力
- 占用存储空间的类型
- 文件
- 目录
- 符号链接。符号链接记录的是路径,路径不长时存在inode里面。
- 其他四种
- 套接字
- 块设备
- 字符设备
- 管道
常见扩展名
- tar, .tar.gz, .tgz, .zip, .tar.bz表示压缩文件,创建命令为tar, gzip, unzip等
- .sh文件表示shell脚本文件
- .pl表示perl语言文件
- .py表示python语言文件
- .html, .htm, .php, .jsp, .do表示网页语言文件
- .conf表示系统服务的配置文件
- .rpm表示rpm安装包文件
链接文件
一份物理文件副本和多个虚拟副本
- symbolic link,软链接,符号链接
指向存放在虚拟目录结构中某个地方的另一个文件
内容不同
- hard link,硬链接
会创建独立的虚拟文件,其中包含了原始文件的信息及位置
再建一个inode连接到文件放置的块区域
touch
处理对象可以是文件或者是目录
如果文件不存在则常见一个空文件,如果存在那么会改变modify time
cat
可用于查看文件内容,从键盘读取数据,合并文件等
|
|
-b
: 不显示空行-E
: 每一行行尾加上 “$”-T
: Tab->“ˆI”-n
: 显示行号-s
: 连续空行-> 一个空行-v
: 显示除了 Tab 和 Enter 以外的所有字符-A
: 相当于 –vET
tac
反向cat
which
在PATH中查找,返回绝对路径
whereis
- 查找二进制文件、源文件和帮助手册文件路径
- 模糊查找,首先会去掉filename中的前缀空格和以.开头的任何字符,然后再在数据库(var/lib/slocate/slocate.db)中查找与上述处理后的filename相匹配的二进制文件、源文件和帮助手册文件,使用之前可以使用updatedb命令手动更新数据库。
locate
- 也是从数据库建立的索引中查找,不同的是该命令查找所有部分匹配的文件,使用之前可以使用updatedb命令手动更新数据库
- 不限类型的模糊查找默认情况下(当filename中不包含通配符*),locate会给出所有与*filename*相匹配的文件的路径。
find
|
|
遍历当前工作目录及其子目录,find命令是在硬盘上遍历查找,非常耗硬盘资源,查找效率相比whereis和locate较低。
-name
: 按照名字查找-regex
: 按照正则查找-type
:按照类型查找- b : 块设备
- c:字符设备
- d:目录
- p:管道(FIFO)
- f:普通文件
- l:符号链接,但是除非链接失效,否则当
-L
选项或者-follow
生效的时候是永远找不到的,因为会跳往链接目的地。 - s:套接字
- D:door(solaris系统独有)
- 一次寻找多个类型的文件可以使用
**,**
隔开
-context
:Selinux安全上下文-uid
:拥有者uid-used
:在n
天内被更改过-user
:文本所有者-writable
:当前用户是否可写入- 更多请见mandb
用户和用户组管理
todo
磁盘管理
文本编辑工具Vim
文档的压缩和打包
包管理器
shell基础知识
正则表达式
定义
正则表达式通常缩写为 regex ,全称是regular expressions
用于字符串的处理:查找、删除、删除特定模式(pattern)的字符串
组成
例如
*
通配符
两种较为流行的正则表达式引擎
- POSIX基础正则表达式(basic regular expression,BRE)引擎(sed)
- 星号*,点.,开头^ ,行尾$ ,方括号[],反斜线\,尖括号<>
- POSIX扩展正则表达式(extended regular expression,ERE)引擎(egrep,gawk)
- 问号?,加号+,转义波形括号{}, 圆括号(),竖线 |
egrep命令
egrep=grep -E #使用扩展正则表达式
|
|
grep参数
-v
:反向匹配,输出不匹配的-n
: 显示行号-c
:count,只显示匹配到了多少行-e
: 指定多个匹配模式,及一条命令应用多个正则表达式
举例
|
|
基本匹配符
匹配行或词
grep Harley data
grep ‘ˆHarley’ data
harley开头的grep ‘Harley$’ data
harley结尾的grep ‘ˆHarley$’ data
整行只有harleygrep ‘<kn’ data
kn开头的单词grep ‘ow>’ data
ow结尾的单词grep ‘<know>’ data
单词knowgrep ‘\bknow\b’ data
单体know(on systems that use the GNU utilities such as Linux and FreeBSD))
grep匹配词语(word)
grep -w ’know’ data
grep ‘<know>’ data
grep ‘\bknow\b’ data
正则预定义符号及范围标识符
grep ‘21[[:alpha:]]’ data
(brackets are part of the name)grep ‘[[:upper:]][[:upper:]][[:digit:]][[:lower::]]’data
grep ‘[3-7]’ data
grep 'X[ˆao]' data
grep ‘[ˆa-zA-Z]’ data
grep ‘[ˆ[:alpha:]]’ data
** 以上均只会匹配单个字母**
重复操作符
sed流编辑器
sed = stream editor
它编辑的对象通常是Unix管道中的文本流
诞生于1973 – 1974年,发明人是贝尔实验室的Lee E. McMahon (毕业于哈佛大学)
简单原理
- 读入一行,去掉尾部换行符,存入pattern space,执行编辑命令。
- 处理完毕,除非加了-n参数,把现在的pattern space打印出来,在后边打印曾去掉的换行符。
- 把pattern space内容给hold space,把pattern space置空。
- 接着读下一行,处理下一行。
sed的操作
- 一次从输入中读取一行数据。
- 根据所提供的编辑器命令匹配数据。
- 按照命令修改流中的数据。
- 将新的数据输出到STDOUT。
命令格式
|
|
可用选项
-e与不加-e的区别
引用自CSDN
-e : 可以在同一行里执行多条命令
不加 -e 只有 ’s/11/00/g' 进行了操作
加上 -e 时 ’s/11/00/g' 与 ’s/22/99/g' 都进行了操作
在命令行中定义编辑器命令
|
|
在命令行使用多个编辑器命令
|
|
从文件中读取编辑器命令
|
|
替换命令s
shell脚本
todo