目录
1.创建文件--------touch
在Linux中如果要创建文件可以使用 touch 命令来创建
例如:touch /root/file1 表示在/root下创建一个文件file1
touch /root/file{2..5} 创建多个文件 file2 file3 file4 file5
touch /root/file{6,7} 创建文件file6和file7
touch file8 file9 创建文件file8和file9
touch /root/file[6-9] 创建文件 “file[6-9]” ,注意!!这种创建的会将[ ]里面的内容当作文件的名称去创建
我们可以用 stat 命令去查看创建好的文件的信息,比如我们去查看file1
如果我们重复创建了文件file1(即已经有某个文件时) 的话,不会报错。只会修改文件的访问时间和改时间。但是创建时间不会改变。如下图所示:
如上图所示对比,只有创建时间未发生改变
2.查看文件
2.1浏览文件的内容
2.1.1 cat命令
使用 cat 命令查看文件的所有内容,一般用这个命令来查看文件内容较少的文件
常用选项与用法:
-b 显示没有空行的行号
-n 显示行号
例如: cat /etc/passwd 查看 /etc 下 passwd 文件的内容
cat -A /etc/passwd 加上 -A 选项会在每一行的行末显示 $ 符号
cat -n /etc/passwd 加上 -n 选项显示行号,可以清晰看到内容一共有多少行
cat -b file1 加上 -b 选项只显示没有空行的行号,有空行不会显示行号
2.1.2 head命令
使用 head 命令用于显示一个文件前面10行的数据
常用的选项与用法:
-c 输出每行的指定个数的字符
-n 输出指定的行数,默认是10行
例如:head /etc/passwd 表示显示/etc/passwd这个文件前面10行的数据
head -c 5 /etc/passwd 表示查看前5个字符
[root@localhost ~]# head -c 5 /etc/passwd #查看前5个字符
root:
head -c -5 /etc/passwd 如果 -c 选项后面跟的是负数,那么会从后往前去截取剩下的部分
head -n 2 /etc/passwd 当 -n 选项后跟数字2表示显示前2行内容
head -n -2 /etc/passwd 如果是负数2就会从后往前截取掉 -2 行及以上的内容
-2行的最后一行
#dnsmasq:x:979:977:Dnsmasq DHCP and DNS server:/var/lib/dnsmasq:/usr/sbin/nologin
#完成的倒数3行
#dnsmasq:x:979:977:Dnsmasq DHCP and DNS server:/var/lib/dnsmasq:/usr/sbin/nologin
#tcpdump:x:72:72::/:/sbin/nologin
#redhat:x:1000:1000:redhat:/home/redhat:/bin/bash
2.1.3 tail 命令
使用 tail 命令用于显示文件的最后10行的内容
常用选项与用法:
-c 显示指定字符
-n 显示指定行数
-f 显示追加的内容
例如:tail /etc/passwd 显示的是/etc/passwd这个文件最后10行的内容
tail -n 3 /etc/passwd 显示最后3行的内容
tail 3 /etc/passwd 可以省略负数前面的-n选项, 也表示显示最后3行的内容
tail -n -3 /etc/passwd 在tail命令中指定负数的行数是无效的,仍然显示的最后3行的内容
-f 选项显示追加的内容 ,用于获取文件中最新的数据,当使用了这个选项的时候文件会处 于一种堵塞的状态,如果要结束这种状态使用ctrl+c
2.1.4 more和less命令
使用 more 或者 less 命令用于分页显示文件中的内容
例如:more passwd 或者 less passwd 则分页显示 passwd 文件中的内容
使用more命令时按空格键是向下翻页 ,按q是退出,这个命令不能向前翻页 ,如果想向前去翻页,需要使用less命令
使用less命令时按g回到第一页,G回到最后一页,按空格键向下翻页 ,按向下或向上箭头可以往下或往上翻一行,按q是退出
2.2 过滤文件的内容------grep
使用grep命令过滤文件内容
常用的选项与用法:
-c 仅显示找到的行数
-i 忽略大小写
-n 显示行号
-v 反向选择(它只会列出没有关键字的行)
-A -A 2 表示的是搜索的时候显示匹配到的哪一行及以下的2行
-B -B 2 表示的是搜索的时候显示匹配到的哪一行及以上的2行
-C -C 2 表示的是搜索的时候显示匹配到哪一行及以上和以下的2行
例如: grep root /etc/passwd 表示在 /etc/passwd 这个文件中查找含有root这个关键字的行
grep -v /sbin/nologin /etc/passwd 在 /etc/passwd 这个文件中查找不包含 /sbin/nologin 这个关键字的行
grep -v -c /sbin/nologin /etc/passwd 在 /etc/passwd 这个文件中查找不包含 /sbin/nologin 这个关键字的行的行数
grep -A 2 /sbin/nologin /etc/passwd 在/etc/passwd这个文件中查找 /sbin/nologin 这个关键字的行以及后2行
grep -C 2 /sbin/nologin /etc/passwd 在/etc/passwd这个文件中查找 /sbin/nologin 这个关键字的行以及前后2行,注意!! -A和-B不能一起连用
grep -i Root /etc/passwd 在etc/passwd这个文件中,不区分大小写的查找 Root 这个关键字的所有行
grep -i -n Root /etc/passwd 在etc/passwd这个文件中不区分大小写的查找Root这个关键字的所有行的行号
是特殊字符的时候:
grep h 文件名称 | 查找(匹配)文件中含有h这个字符的所有行 |
grep ^[q] 文件名称 | 查找(匹配)文件中以q开头的行 |
grep ^[qf] 文件名称 | 查找(匹配)文件中以q或者f开头的行 |
grep ^[ ^qf] 文件名称 | 查找(匹配)文件中以q或者f开头以外的行 |
grep ^[ 0-9] 文件名称 | 查找(匹配)以数字开头的行 |
grep h$ 文件名称 | 查找(匹配)以h结尾的行 |
grep ^h$ 文件名称 | 查找(匹配只有h结尾的行 |
例如:grep h /etc/passwd 表示在 /etc/passwd 文件中查找包含 h 字符的行
grep ^[h] /etc/passwd 在/etc/passwd文件中查找以 h 开头的行
grep h$ /etc/passwd 在/etc/passwd文件中查找以 h 结尾的行
grep ^[^h] /etc/passwd 在/etc/passwd文件中查找以 h 开头以外的行
grep [0-9] /etc/passwd 在/etc/passwd文件中查找包含数字的所有行
2.3 文件内容的统计-------wc
使用wc命令主要用于统计文件中的字节数,字数,行数等信息
常用的选项与用法:
-l 统计行数
-c 统计文件的大小
-m 统计字符的个数
-w 统计单词(字段)的个数
例如:wc -l file1 表示统计 file1 文件中的行数
wc -w file1 表示统计 file1文件中的文件字数(按空格分割计数)
wc -c file1 表示统计 file1 文件中的文件字节数
wc -l access.log 快速查看日志行数
2.4 切割显示--------cut
使用cut命令用于提取文本行中指定字段的工具,常常用来处理结构化数据
常用的选项与用法:
-d 指定分隔符,如果分隔符是空格的话需要用引号引起来
-f 指定的是第几个字段
-c 指定的是第几个字符
例如:cat /etc/passwd 查看文件里的内容,可以看到 /etc/passwd 这个的内容的分隔符是 :通过 冒号把内容进行了分割,分割成了7个部分
cut -d : -f 1 /etc/passwd 查看 /etc/passwd 这个文件中的第1列内容
cut -d : -f 1-3 /etc/passwd 查看/etc/passwd这个文件中的第1列到第3列的内容
cut -d : -f 1,3 /etc/passwd 查看/etc/passwd这个文件中的第1列和第3列的内容
cut -c 4 /etc/passwd 查看/etc/passwd这个文件中的第四个字符,这时不需要加-d选项
2.5 排序显示---------sort
常用选项与用法:
-b 忽略缩进和空格
-f 忽略大小写
-n 以数值型进行排序
-r 反向排序
-k 指定的字段范围
-t 指定间隔符
-u 去除重复行
例如:cut -d : -f 3 /etc/passwd | sort -n 查看/etc/passwd文件的第3列并以数值型进行排序
sort -t : -k 3 /etc/passwd 对/etc/passwd这个文件中第三个字段进行排序
sort -t : -k 3 -n /etc/passwd 对/etc/passwd这个文件中第三个字段进行数值型排序
sort -t : -k 3 -r /etc/passwd 对/etc/passwd这个文件中第三个字段进行反向排序
2.6 去重显示---------uniq
使用 uniq 命令对文本的内容中连续的重复行进行去重或统计重复行数量,常常配合 sort 命令使用
常用选项与用法:
-c 统计重复行出现的次数
-f 忽略前多少个字段
-s 忽略前多少个字符
-d 仅显示重复行
例如:uniq file1 表示去掉 file1 文件中重复行的内容
uniq -c file1 显示文件 file1 中重复行的行数
uniq -f 1 file1 忽略第一个字段,按后续字段判断重复
uniq -s 3 file1 忽略前三个字符,按后续内容判断重复
uniq -d file1 只输出文件 file1 中重复过的行
3.编辑文件
3.1 数据流
在Linux中,对于数据流来说可以分为:标准输入、标准输出、标准的错误输出
标准输入(Standard Input)简写stdin,文件描述符 0 ,默认对应键盘输入,进程从stdin读取数据
标准输出(Standard Output)简写stdout,文件描述符 1 ,默认对应终端屏幕显示,进程将正常结果输出到stdout
标准错误输出(Standard Error) 简写stderr,文件描述符 2 ,默认也对应终端屏幕,进程将错误信息输出到stderr
3.2 重定向
输出重定向操作符:> >>
> :覆盖式重定向,将命令输出写入文件,若文件存在则清空原有内容后写入;若不存在则创建新文件
例如:
首次执行:echo english > file1 将english输入到文件file1中
再次执行:echo world > file1 这时文件file1中的english内容会被情况,文件内容变为world
>>:追加式重定向,将命令输出追加到文件末尾,不影响原有内容;若文件不存在则创建新文件
例如:
首次执行:echo hello >> file2 将hello输入到文件file2中
再次执行:echo world >> file2
这时文件内容为 hello
world
输入重定向操作符:< <<
<:从文件读取输入,将文件内容作为命令的标准输入(stdin)
例如:cate < file1 表示读取文件 file1,等价于 cat file1
sort < file1 表示对文件file1内容排序
本质:相当于将文件内容 “喂” 给命令
<<:从标准输入读取多行文本(Here Document),允许直接在命令行中输入多行文本作为输入
3.3 echo
使用echo命令主要用于输出文本或变量内容
输出普通字符串
-n 不自动换行
-e 解析转义字符
例如:echo -n helloworld 输出后不换行,下一个命令输出会接在后面
echo -e "hello\nworld" 其中 \n 表示换行,输出两行文本。如果使用单引号 \n 不解析, 如果没有引号,空格会截断参数
echo -e "hello\tworld" 其中 \t 表示制表符
4.删除文件--------rm
使用 rm 命令对文件进行删除
常用的选项与用法:
-f 表示强制删除
-r 表示递归删除,一般在删除目录的时候需要指定这个选项
-d 表示删除空目录
-v 表示删除的时候会显示详细的过程
例如:rm -d dir1 删除空目录dir1,删除一个空目录的时候需要使用 -d 选项来删除,否则会报错
rm -r dir2 删除非空目录dir2
rm -df dir* 批量删除,使用 * 符号表示删除所有能匹配上的目录
rm -rf dir3 直接删除dir3及其所有内容,不会提示确认操作,直接强制删除
rm -d 安全系数较高,避免删除非空目录,但是功能有限
rm -r 用于删除非空目录及其所有内容(包括子目录,文件),但会提示确认每个操作
rm -rf 直接删除目录及其所有内容,无提示,需谨慎使用!!!