Linux学习

linux.jpg

Linux命令查看网站

Linux命令大全
Linux命令手册
Linux命令大全(手册)

Linux命令

文件及目录管理命令

mkdir

作用:创建目录
常用参数:

-p 递归创建多级目录
-m 建立目录的同时设置目录的权限
-z 设置安全上下文
-v 显示目录的创建过程

rm

作用:删除
常用参数:

-f 忽略不存在的文件,不会出现警告信息
-i 删除前会询问用户是否操作
-r/R 递归删除
-v 显示指令的详细执行过程

mv

作用:移动文件、文件名重命名
常用参数:

-i 若存在同名文件,则向用户询问是否覆盖
-f 覆盖已有文件时,不进行任何提示
-b 当文件存在时,覆盖前为其创建一个备份
-u 当源文件比目标文件新,或者目标文件不存在时,才执行移动此操作

cp

作用:复制文件
常用参数:

-f 若目标文件已存在,则会直接覆盖原文件
-i 若目标文件已存在,则会询问是否覆盖
-p 保留源文件或目录的所有属性
-r 递归复制文件和目录
-d 当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接原始文件或目录
-l 对源文件建立硬连接,而非复制文件
-s 对源文件建立符号连接,而非复制文件
-b 覆盖已存在的文件目标前将目标文件备份
-v 详细显示cp命令执行的操作过程
-a 等价于“dpr”选项

touch

功能:1.更新文件时间标签 2.创建空文件

dd

作用:复制文件并对原文件的内容进行转换和格式化处理
常用参数:

bs=<字节数> 将 ibs(输入)与 obs(输出)设成指定的字节数;
cbs=<字节数> 转换时,每次只转换指定的字节数;
conv=<关键字> 指定文件转换的方式;
count=<区块数> 仅读取指定的区块数;
ibs=<字节数> 每次读取的字节数;
obs=<字节数> 每次输出的字节数;
of=<文件> 输出到文件;如果不指定of,默认就会将stdout作为默认输出。
if=<文件> 输入文件;如果不指定if,默认就会从stdin中读取输入。
seek=<区块数> 一开始输出时,跳过指定的区块数;
skip=<区块数> 一开始读取时,跳过指定的区块数;

示例
以上命令可以看出dd命令来测试内存操作速度

1
2
3
4
5
6
$ dd if=/dev/zero of=test.txt bs=5M count=1   #/dev/zero 是一个字符设备,会不断返回0值字节(\0)。
记录了1+0 的读入
记录了1+0 的写出
5242880字节(5.2 MB)已复制,0.0135829 秒,386 MB/秒
$ du -sh test.txt
5.0M test.txt

file

作用:探测给定文件的类型
常用参数

-b 列出辨识结果时,不显示文件名称
-i 显示MIME类别

查找文件及目录

find

作用:查找文件及目录
常用参数

-amin <分钟>、-atime <24小时数> 访问时间,用户最近一次访问时间。
-cmin <分钟>、-ctime <24小时数> 修改时间,文件最后一次修改时间。
-mmin <分钟>、-mtime <24小时数> 变化时间,文件数据元(例如权限等)最后一次修改时间。
-name <范本样式> 指定字符串作为寻找文件或目录的范本样式,可使用正则表达式进行匹配
-iname <范本样式> 此参数的效果和指定“-name”参数类似,但忽略字符大小写的差别
-size <文件大小> 查找符合指定的文件大小的文件
-type <文件类型> 只寻找符合指定的文件类型的文件
-empty 寻找文件大小为0 Byte的文件,或目录下没有任何子目录或文件的空目录

示例
根据文件或者正则表达式进行匹配

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 在/home目录下查找以.txt结尾的文件名
find /home -name "*.txt"
find /home -iname "*.txt" #忽略大小写

# 当前目录及子目录下查找所有以.txt和.pdf结尾的文件
find . \( -name "*.txt" -o -name "*.pdf" \)
find . -name "*.txt" -o -name "*.pdf"

# 匹配文件路径或者文件
find /usr/ -path "*local*"

# 基于正则表达式匹配文件路径
find . -regex ".*\(\.txt\|\.pdf\)$"
find . -iregex ".*\(\.txt\|\.pdf\)$"

否定参数

1
2
# 找出/home下不是以.txt结尾的文件
find /home ! -name "*.txt"

根据文件类型进行搜索
find . -type 类型参数

  • f 普通文件
  • l 符号连接
  • d 目录
  • c 字符设备
  • b 块设备
  • s 套接字
  • p 管道文件

根据文件时间戳进行搜索
find . -type f 时间戳
UNIX/Linux文件系统每个文件都有三种时间戳:
访问时间(-atime/天,-amin/分钟):用户最近一次访问时间。
修改时间(-mtime/天,-mmin/分钟):文件最后一次修改时间。
变化时间(-ctime/天,-cmin/分钟):文件数据元(例如权限等)最后一次修改时间。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#搜索最近七天内被访问过的所有文件
find . -type f -atime -7

#搜索恰好在七天前被访问过的所有文件
find . -type f -atime 7

#搜索超过七天内被访问过的所有文件
find . -type f -atime +7

#搜索访问时间超过10分钟的所有文件
find . -type f -amin +10

#找出比file.log修改时间更长的所有文件
find . -type f -newer file.log

根据文件大小进行匹配
find . -type f -size 文件大小单元
文件大小单元:

  • b —— 块(512字节)
  • c —— 字节
  • w —— 字(2字节)
  • k —— 千字节
  • M —— 兆字节
  • G —— 吉字节
1
2
3
4
5
6
7
8
# 搜索大于10KB的文件
find . -type f -size +10k

# 搜索小于10KB的文件
find . -type f -size -10k

#搜索等于10KB的文件
find . -type f -size 10k

删除匹配文件

1
2
# 删除当前目录下所有.txt文件
find . -type f -name "*.txt" -delete

借助exec选项与其他命令结合使用

1
2
3
4
5
6
7
8
9
10
# 找出当前目录下所有root的文件,并把所有权更改为用户tom
find .-type f -user root -exec chown tom {} \;
# {} 用于与-exec选项结合使用来匹配所有文件,然后会被替换为相应的文件名

# 找出自己家目录下所有的.txt文件并删除
find $HOME/. -name "*.txt" -ok rm {} \;
# -ok和-exec行为一样,不过它会给出提示,是否执行相应的操作。

# 将30天前的.log文件移动到old目录中
find . -type f -mtime +30 -name "*.log" -exec cp {} old \;

locate

作用:locate命令其实是find -name的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库/var/lib/locatedb,这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。

查看文件内容

cat

作用:连接文件并打印到标准输出设备上
常用参数:

-n 由1开始对所有输出的行数编号
-A 显示不可打印字符,行尾显示“$”

作用:用于显示文件的开头的内容,默认显示头10行。
常用参数:

-n <数字> 指定显示头部内容的行数
-v 显示文件名

tail

作用:用于显示文件的尾部内容,默认显示尾10行。
常用参数:

-f 显示文件最新追加的内容。
-n <数字> 输出文件的尾部N(N位数字)行内容
-v 显示文件名

more

作用:它以全屏幕的方式按页显示文本文件的内容
按键说明

按Space键 显示文本的下一屏内容。
按Enier键 只显示文本的下一行内容。
按斜线符/ 接着输入一个模式,可以在文本中寻找下一个相匹配的模式。
按H键 显示帮助屏,该屏上有相关的帮助信息。
按B键 显示上一屏内容。
按Q键 退出rnore命令。

查找文件内容

grep

作用:能使用正则表达式搜索文本,并把匹配的行打印出来。
常用参数

-v 反转查找
-r 递归搜索
-n 列出所有的匹配行,显示行号
-E 正则表达式,与egrep 效果相同
-i 忽略字符大小写
-e 匹配多个,grep -e “a” -e “b”
-q 静默输出,命令运行成功返回0,失败则返回非0值
-A < n > 匹配文本之后n行
-B < n > 匹配文本之前n行
-C < n > 匹配文本前后各n行

文本处理

xargs

作用:xargs能够处理管道或者stdin并将其转换成特定命令的命令参数