Linux复习笔记

Linux复习笔记

Linux基本知识复习笔记

文件和目录管理

Linux文件系统类型

图片.png

目录树结构

Linux目录是使用 / 正斜杠分割,而windows则是 \ 反斜杠
图片.png

Linux文件结构

linux的文件结构是树状结构,而且每个枝叶可以被挂载到不同的物理设备上
图片.png

绝对路径和相对路径

  • 绝对路径:从根目录开始的路径
  • 相对路径:从当前目录开始的路径,可向上也可向下
1
2
cd /home # 绝对路径
cd someuser # 相对路径

常见命令总览

目录树中走动

  • cd

  • pwd

  • ls

    创建、删除、移动、复制

  • touch

  • mkdir

  • rmdir

  • rm

  • cp

  • mv

    文件查看

  • cat

  • tac

  • more

  • less

  • head

  • tail

    通配符

  • 问号 ? 代表一个字符

  • 星号* 代表零个或多个字符

  • 中括号 [] 标识多个可能的选择,如[a-i]

  • 感叹号 ! 将不需要的内容排除在外,如[!a]

    pwd

显示当前路径的绝对路径

mkdir

主要有两个选项 -m-p

  • -m :mode,设置目录权限,和chmod中使用的一样。
  • -p :parents,当目录已存在时不报错,并且在必要的时候级联创建目标目录的父目录。

rmdir

rmdir 只能用于删除空目录,如果需要删除有文件的目录需要使用 rm 命令。
rmdir 也有 -p 选项,但也只能用于删除空目录。

rm

  • -r :用于删除目录,会提示输入确认信息
  • -f :表示强制删除,不会询问是否删除

禁忌

1
rm -rf /

ls

列出目录中的内容

  • -l : 长格式显示详细信息,每行列出的信息依次是:文件类型与权限、链接数、拥有者、拥有组、大小、时间信息、文件名
  • -a : 显示所有子目录与文件,包括隐藏文件
  • -d : 如果参数是目录,只显示其名称而不显示其下的内容
  • -t : 按时间排序(和-c -u 搭配使用;我经常用 ll -tc)
  • -c : 按照文件修改时间排序
  • -u : 按照文件上次存取时间排序
  • -i : 在输出的第一列显示inode号
  • -R : 对子目录递归执行 ls
  • -F : 以不同标记注明文件类型

文件类型

Linux中文件后缀名(扩展名)只能用来标识文件类型,并没有实际约束力

  • 占用存储空间的类型
    • 文件
    • 目录
    • 符号链接。符号链接记录的是路径,路径不长时存在inode里面。
  • 其他四种
    • 套接字
    • 块设备
    • 字符设备
    • 管道

图片.png

常见扩展名

  • 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

可用于查看文件内容,从键盘读取数据,合并文件等

1
cat [OPTION]... [FILE]...
  • -b : 不显示空行
  • -E : 每一行行尾加上 “$”
  • -T :
    Tab->“ˆI”
  • -n : 显示行号
  • -s : 连续空行-> 一个空行
  • -v : 显示除了 Tab 和 Enter 以外的所有字符
  • -A : 相当于 –vET

tac

反向cat

which

在PATH中查找,返回绝对路径
图片.png

whereis

  • 查找二进制文件、源文件和帮助手册文件路径
  • 模糊查找,首先会去掉filename中的前缀空格和以.开头的任何字符,然后再在数据库(var/lib/slocate/slocate.db)中查找与上述处理后的filename相匹配的二进制文件、源文件和帮助手册文件,使用之前可以使用updatedb命令手动更新数据库。

图片.png

locate

  • 也是从数据库建立的索引中查找,不同的是该命令查找所有部分匹配的文件,使用之前可以使用updatedb命令手动更新数据库
  • 不限类型的模糊查找默认情况下(当filename中不包含通配符),locate会给出所有与filename*相匹配的文件的路径。

图片.png

find

1
2
find    [option]    [path1  path2  ......]    [filename]
find / -name dust -exec rm -rf {} \;

遍历当前工作目录及其子目录,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

图片.png

用户和用户组管理

todo

磁盘管理

todo

文本编辑工具Vim

todo

文档的压缩和打包

todo

包管理器

todo

shell基础知识

todo

正则表达式

定义

正则表达式通常缩写为 regex ,全称是regular expressions
用于字符串的处理:查找、删除、删除特定模式(pattern)的字符串

组成

普通字符+元字符

例如

* 通配符
图片.png

两种较为流行的正则表达式引擎

  • POSIX基础正则表达式(basic regular
    expression,BRE)引擎(sed)
    • 星号*,点.,开头^ ,行尾$ ,方括号[],反斜线\,尖括号<>
  • POSIX扩展正则表达式(extended
    regular expression,ERE)引擎(egrep,gawk)
    • 问号?,加号+,转义波形括号{}, 圆括号(),竖线 |

egrep命令

egrep=grep -E #使用扩展正则表达式

1
egrep ’abc’ a.txt

grep参数

  • -v :反向匹配,输出不匹配的
  • -n : 显示行号
  • -c :count,只显示匹配到了多少行
  • -e : 指定多个匹配模式,及一条命令应用多个正则表达式

举例
1
2
3
4
5
harley1 harley2 harley3
> harley[123]

H+任意个小写字母+y
> H[[:lower:]]*y

基本匹配符

图片.png

匹配行或词

  • grep Harley data
  • grep ‘ˆHarley’ data harley开头的
  • grep ‘Harley$’ data harley结尾的
  • grep ‘ˆHarley$’ data 整行只有harley
  • grep ‘<kn’ data kn开头的单词
  • grep ‘ow>’ data ow结尾的单词
  • grep ‘<know>’ data 单词know
  • grep ‘\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

正则预定义符号及范围标识符

图片.png

  • 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

** 以上均只会匹配单个字母

重复操作符

图片.png

sed流编辑器

sed = stream
editor

它编辑的对象通常是Unix管道中的文本流
诞生于1973 – 1974年,发明人是贝尔实验室的Lee E. McMahon
(毕业于哈佛大学)

简单原理

  1. 读入一行,去掉尾部换行符,存入pattern space,执行编辑命令。

  2. 处理完毕,除非加了-n参数,把现在的pattern space打印出来,在后边打印曾去掉的换行符。

  3. 把pattern space内容给hold space,把pattern space置空。

  4. 接着读下一行,处理下一行。

    sed的操作

  5. 一次从输入中读取一行数据。

  6. 根据所提供的编辑器命令匹配数据。

  7. 按照命令修改流中的数据。

  8. 将新的数据输出到STDOUT。

命令格式

1
sed options script file

可用选项

图片.png

-e与不加-e的区别

引用自CSDN

-e : 可以在同一行里执行多条命令
不加 -e 只有 ‘s/11/00/g’ 进行了操作

加上 -e 时 ‘s/11/00/g’ 与 ‘s/22/99/g’ 都进行了操作

在命令行中定义编辑器命令

1
2
3
$ echo "This is a test" | sed 's/test/big test/'
This is a big test
$ sed 's/dog/cat/' data1.txt

在命令行使用多个编辑器命令

1
$ sed -e 's/brown/green/; s/dog/cat/' data1.txt

从文件中读取编辑器命令

1
2
3
4
5
6
$ cat script1.sed
s/brown/green/
s/fox/elephant/
s/dog/cat/

$ sed -f script1.sed data1.txt

替换命令s

图片.png
图片.png

shell脚本

todo

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×