/root:系统管理员root的宿主目录
/home:普通用户的宿主目录
/boot:系统内核、启动文件
/dev:设备文件
/etc:配置文件
/bin:所有用户可执行的命令
/sbin:管理员可执行的管理命令
/usr:应用程序
/var:日志文件等
[root@localhost ~]# cat /etc/hosts
[root@localhost ~]# cat /etc/sysconfig/network
[root@localhost ~]# cat /etc/redhat-release /proc/version
-n 后面接数字,代表显示几行的意思
-c 指定显示头部内容的字符数
-v 总是显示文件名的头信息
-q 不显示文件名的头信息
[root@linuxcool ~]# head -n 3 install.log
Installing libgcc-4.4.7-23.el6.x86_64
warning: libgcc-4.4.7-23.el6.x86_64: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Installing setup-2.8.14-23.el6.noarch
显示文件file的最后10行:
[root@linuxcool ~ ] tail file
显示文件file的内容,从第20行至文件末尾:
[root@linuxcool ~ ] tail +20 file
显示文件file的最后10个字符:
[root@linuxcool ~ ] tail -c 10 file
一直变化的文件总是显示后10行:
[root@linuxcool ~ ] tail -f 10 file
-w 统计字数,或--words:只显示字数。一个字被定义为由空白、跳格或换行字符分隔的字符串
-c 统计字节数,或--bytes或--chars:只显示Bytes数
-l 统计行数,或--lines:只显示列数
-m 统计字符数
-L 打印最长行的长度
[root@linuxcool ~]# cat test.txt
hello world
hello world
hello world
hello world
hello world
[root@linuxcool ~]# wc -w test.txt
10 test.txt
统计字节数:
[root@linuxcool ~]# wc -c test.txt
60 test.txt
统计字符数:
[root@linuxcool ~]# wc -m test.txt
60 test.txt
统计行数:
[root@linuxcool ~]# wc -l test.txt
4 test.txt
打印最长行的长度:
[root@linuxcool ~]# wc -L test.txt
23 test.txt
-i 搜索时,忽略大小写
-c 只输出匹配行的数量
-l 只列出符合匹配的文件名,不列出具体的匹配行
-n 列出所有的匹配行,显示行号
-h 查询多文件时不显示文件名
-s 不显示不存在、没有匹配文本的错误信息
-v 显示不包含匹配文本的所有行
-w 匹配整词
-x 匹配整行
-r 递归搜索
-q 禁止输出任何结果,已退出状态表示搜索是否成功
-b 打印匹配行距文件头部的偏移量,以字节为单位
-o 与-b结合使用,打印匹配的词据文件头部的偏移量,以字节为单位
参考实例
支持多文件查询并支持使用通配符:
[root@linuxcool ~]# grep zwx file_* /etc/hosts
file_1:zwx
file_1:zwx
file_1:zwxddkjflkdjfdlkfjlsdkj
file_2:zwx
file_4:dkfjlzwxejfkje
file_4:zwx djfkdjf
file_4:zwxedkfgj
输出匹配字符串行的数量:
[root@linuxcool ~]$ grep -c zwx file_*
file_1:2
file_2:1
file_3:0
列出所有的匹配行,并显示行号:
[root@linuxcool ~]# grep -n zwx file_*
file_1:1:zwx
file_1:4:zwx
file_1:10:zwxddkjflkdjfdlkfjlsdkj
file_2:2:zwx
file_4:3:dkfjlzwxejfkje
file_4:4:zwx djfkdjf
file_4:5:zwxedkfgj
显示不包含模式的所有行:
[root@linuxcool ~]# grep -vc zwx file_*
file_1:7
file_2:4
file_3:5
file_4:2
不再显示文件名:
[root@linuxcool ~]# grep -h zwx file_*
zwx
zwx
zwxddkjflkdjfdlkfjlsdkj
zwx
dkfjlzwxejfkje
zwx djfkdjf
zwxedkfgj
只列出符合匹配的文件名,不列出具体匹配的行:
[root@linuxcool ~]# grep -l zwx file_*
file_1
file_2
file_4
不显示
不存在或无匹配的文本信息:
[root@linuxcool ~]# grep -s zwx file1 file_1
file_1:zwx
file_1:zwx
file_1:zwxddkjflkdjfdlkfjlsdkj
[root@linuxcool ~]# grep zwx file1 file_1
grep: file1: No such file or directory
file_1:zwx
file_1:zwx
file_1:zwxddkjflkdjfdlkfjlsdkj
递归搜索,不仅搜索当前目录,还搜索子目录:
[root@linuxcool ~]# grep -r zwx file_2 *
file_2:zwx
anaconda-ks.cfg:user --name=zwx --gecos="zwx"
file_1:zwx
file_1:zwx
file_1:zwxddkjflkdjfdlkfjlsdkj
file_2:zwx
file_4:dkfjlzwxejfkje
file_4:zwx djfkdjf
file_4:zwxedkfgj
initial-setup-ks.cfg:user --name=zwx --gecos="zwx"
匹配整词,以字面意思去解释他,相当于精确匹配:
[root@linuxcool ~]# grep zw* file_1
zwx
zwx
zdkfjeld
zw
ze
zwxddkjflkdjfdlkfjlsdkj
[root@linuxcool ~]# grep -w zw* file_1
zw
匹配整行,文件中的整行与模式匹配时,才打印出来:
[root@linuxcool ~]# grep -x zwx file_*
file_1:zwx
file_1:zwx
file_2:zwx
不输出任何结果,已退出状态表示结果:
[root@linuxcool ~]# grep -q zwx file_1
[root@linuxcool ~]# echo $?
0
[root@linuxcool ~]# grep -q zwx file_5
[root@linuxcool ~]# echo $?
1
[root@linuxcool ~]# grep -q zwx file5
grep: file5: No such file or directory
[root@linuxcool ~]# echo $?
2
查找一个文件中的空行和非空行:
[root@linuxcool ~]# grep -c ^$ file_1
4
[root@linuxcool ~]# grep -c ^[^$] file_1
15
匹配任意或重复字符用“.”或“*”符号来实现:
[root@linuxcool ~]# grep ^z.x file_1
zwx
zwx
zwxddkjflkdjfdlkfjlsdkj
[root@linuxcool ~]# grep ^z* file_6
zwx
dfkjd
zzdfjkd
zz dfdww
haha
-a 使用ASCII文字模式
-d 解开压缩文件
-f 强行压缩文件
-l 列出压缩文件的相关信息
-c 把压缩后的文件输出到标准输出设备,不去更动原始文件
-r 递归处理,将指定目录下的所有文件及子目录一并处理
-q 不显示警告信息
[root@linuxcool ~]# gzip *
把上例中每个压缩的文件解压,并列出详细的信息:
[root@linuxcool ~]# gzip -dv *
递归地解压目录:
[root@linuxcool ~]# gzip -dr rancher.gz
-c 将压缩与解压缩的结果送到标准输出
-d 执行解压缩
-f bzip2在压缩或解压缩时,若输出文件与现有文件同名,预设不会覆盖现有文件。若要覆盖,请使用此参数
-k bzip2在压缩或解压缩后,会删除原始的文件。若要保留原始文件,请使用此参数
-s 降低程序执行时内存的使用量
-t 测试.bz2压缩文件的完整性
-v 压缩或解压缩文件时,显示详细的信息
-z 强制执行压缩
压缩文件:
[root@linuxcool ~]# bzip2 a.txt
检查文件完整性:
[root@linuxcool ~]# bzip2 -t a.txt.bz2
-A 新增文件到以存在的备份文件
-B 设置区块大小
-c 建立新的备份文件
-C <目录> 切换工作目录,先进入指定目录再执行压缩/解压缩操作,可用于仅压缩特定目录里的内容或解压缩到特定目录
-d 记录文件的差别
-x 从归档文件中提取文件
-t 列出备份文件的内容
-z 通过gzip指令压缩/解压缩文件,文件名最好为*.tar.gz
-Z 通过compress指令处理备份文件
-f<备份文件> 指定备份文件
-v 显示指令执行过程
-r 添加文件到已经压缩的文件
-u 添加改变了和现有的文件到已经存在的压缩文件
-j 通过bzip2指令压缩/解压缩文件,文件名最好为*.tar.bz2
-v 显示操作过程
-l 文件系统边界设置
-k 保留原有文件不覆盖
-m 保留文件不被覆盖
-w 确认压缩文件的正确性
-p 保留原来的文件权限与属性
-P 使用文件名的绝对路径,不移除文件名称前的“/”号
参考实例
将所有.jpg的文件打成一个名为all.tar的包:
[root@linuxcool ~]# tar -cf all.tar *.jpg
打包文件之后删除源文件:
[root@linuxcool ~]# tar -cvf linuxcool.tar linuxcool --remove-files
打包文件以后,以 gzip 压缩:
[root@linuxcool ~]# tar -zcvf log.tar.gz linuxcool.log
vi命令是linux系统字符界面下的最常用的文本编辑器。
vi编辑器是所有linux的标准编辑器,用于编辑任何ASCⅡ文本,对于编辑源程序尤其有用。iv编辑器功能非常强大,可以对文本进行创建,查找,替换,删除,复制和粘贴等操作。
在linux系统shell提示符中输入vi和文件名后,就进入vi编辑界面。如果系统内还不存在该文件,就等于新建文件,如果系统内存在给文件,就意味着编辑该文件。
vi编辑器的三种工作模式
命令模式(vi 文件名,就进入了命令模式。退出命令模式,可以在未行模式中输入q)
命令模式可以使用以下命令:
dd:删除一行
u:撤回
yy:复制- -行
P:小写的p,将复制的行粘贴在光标所在行的下一行
P:大写的p,将复制的行粘贴在光标所在行的上一行
x:删除光标所在处字符(按着不动,先删光标后面,在删前面) #常用
r:替换光标所在处字符
ZZ:保存退出
在此模式下可像在记事本中- -样,修改文件内容。
a:将在光标所在位置之后插入文本(append)
A:将在光标所在行未插入文本
i:将在光标所在位置之前插入文本(insert)
|:将在光标所在行的第一个非空字符前插入文本
o:将在光标所在行的下-行开始插入文本(open)
0:将在光标所在行的上一行开始插入文本
g:按2次,光标移动到文本首行
G:按1次,光标移动到文本末行
可以使用以下命令:
:q退出命令模式.
:w保存修改内容
:wq保存退出
:q!不保存退出
:set nu显示行号
:/abc查找abc这个字符,按n查找下一个,按N查找上一个
文件内容替换
:S /old/new将当前行中查找到的第一个字符"old" 串替换为"new"
:s /old/new/g将当前行中查找到的所有字符串"old" 替换为"new"
:#,# s/old/new/g在行号"#,#"范围内替换所有的字符串"old" 为"new"
:% s/old/new/g在整个文件范围内替换所有的字符串"old" 为"new"
:s /old/new/c在替换命令末尾加入c命令,将对每个替换动作提示用户进行确认