目录
1. 查看文件内容的命令(cat、more、less、head、tail)
3. 压缩解压缩、归档命令(gzip、bzip2、gunzip、bunzip、zip、tar)
一、Linux树形目录
Linux目录是树形目录结构,我们只有了解这些目录才能对其进行管理。那么从根目录开始有哪些常见目录子呢?
/root | root用户的家目录/宿主目录 |
/home | /xxx普通用户的家目录 |
/bin | 用于存放二进制系统文件(外部命令文件,所有用户都能执行的目录) (/bin是/usr/bin的软链接文件) |
/sbin | 用于存放二进制系统文件(默认情况下只有管理员可执行的命令文件,普通用户提权才可以使用,/sbin是/usr/sbin的软链接文件) |
/boot | 存放系统内核文件、系统镜像文件、启动文件目录 |
/grub | 启动菜单文件 |
/dev | 存放设备文件(光盘、光驱等) |
/etc | 存放系统程序和大部分应用程序(rpm、yum安装)的配置文件 |
/lib | 存放系统程序的动态链接共享库文件,类似于Windows里的DLL文件,目录同时也是个软链接目录,对应usr/lib |
/var | 存档可变化的文件,包括各种日志文件或数据 |
/usr | 存放系统用户工具和程序 |
/media | 可拆卸的媒介默认的挂载点,如优盘光驱等 |
/mnt | 用于临时挂载储存设备的目录(可以被指定为挂载目录) |
/opt | 存放第三方应用程序安装包的目录 |
/tmp | 存放系统的临时文件,/tmp目录下的临时文件会被系统定期删除或关机时自动删除(重要文件数据不要存放到这个目录) |
/proc | 包含虚幻的文件,是虚拟的文件系统,不占用磁盘空间。相当于一种映射,会把内核、CPU等系统状态的信息映射到/proc目录找那个(了解) |
二、文件/目录的管理命令
1. 查看文件内容的命令(cat、more、less、head、tail)
命令 | 选项/格式 |
cat 查看篇幅短小的文件 |
cat [选项] <文件> [-n] 即number,对所有输出的行数编号; [-b] 即number-nonblank,对于空白行不编号; [-s] 即squeeze-blank,将所有的连续的多个空行替换为一个空行 |
more 分页查看大文件 |
more <文件> =cat <文件> | more 回车、空格往下翻,b/q上下翻页,到底就退出;配合管道符号时不能向上翻页 |
less 分页查看大文件 |
less <文件> =cat <文件> | less 上下方向键、pageup/pagedn翻页;“ / ”可查找内容,n查看下一个内容,N查看上一个内容 |
head 查看前几行内容 |
head [选项] <文件> [-n] k/+k 查看前k行的内容; [-n] -k 查看除了后k行的全部内容; cat -n <文件名> | head -5 查看前5行内容,并对输出的行数编号 |
tail 查看后几行内容 |
tail [选项] <文件> [-n] +k/-k 都是查看后k行的内容; [-f] 即follow,实时追踪文件内容,适合用于排障; [-nf] 实时追踪文件后n行内容,只要文件有一变化就同步刷新显示 |
【示例1】如何查看某文件中第10-20行的内容?
cat -nb local.txt | head -20 | tail -10
#查看local.txt文件中前20行内容的后10行的全部内容,非空行进行输出时显示编号
2. 统计和检索文件内容的命令(wc、grep)
命令 | 选项/格式 |
wc 统计文件的内容 |
wc [选项]<文件> -l 即lines,输出换行符统计数(根据空格、换行或者制表符确认文件的单词数,并输出文件名);cat <文件> | wc - l 仅显示行数不输出文件名; -w 即words; -c 即bytes、chars字节字符,表示统计字节数,一个中文字符等于两个字节,一个英文字符一个字节,隐藏的换行符占一个字节(echo输入内容有隐藏的换行符,echo -n输入没有隐藏换行符); -lwc组合使用,表示输出文件的行数、单词数、字节数,并且输出文件名; wc后不带选项默认等于wc -lwc |
grep【☆】 检索和过滤文件内容 |
grep <xx指定字符> <文件> #输出文件中包含xx字符的行 grep [选项] <文件> -i 即ignore-case,查找时不区分大小写; -v 即invert match,反向匹配,除了...的行都显示,如grep -i -v OS 文件名,表示除了有OS的行都显示; -c 即count,统计匹配的总行数,如grep -c centos CentOS-Base.repo 文件中有centOS的行内容; -n 即line-number,统计匹配的行内容,显示行号; -o 即only-matching,即精确匹配,即“仅匹配”之意; -e 即each,实现可多个查找条件的匹配,条件都要匹配;两个-e的命令表示“或”; -E 支持使用扩展正则表达式,相当于使用egrep命令; -w 即word-regexp,只显示全字符合的列,以完整单词去匹配; -l 即列出文件内容符合要求的文件名,如grep -l -R "bbbb" ./ ,表示是要递归查找当前目录下包含bbbb字符串的文件; -l -R 字符串 /指定目录,表示查找目录下包含某个字符串的文件有哪些; -A n 即#显示匹配行和它下面的n行; -B n 即#显示匹配行和它上面的n行; -C n 即#匹配行和它前后各n行; "^..." #正则表达式,表示输出以……开头的行; "...$" #正则表达式,表示输出以……结尾的行; "^$" #表示空行; “[....]”正则表达式; |
【示例2】查看local.txt中以xxx开头的并且以xxx结尾的行内容,并且显示所在行号
cat -n local.txt | grep "^xxx" | grep "xxx$"
【示例3】查看local.txt中内容,但不想显示空行,也不想查看以xxx开头的行内容
cat local.txt | grep -v "^xxx" | grep -v "^$"
【示例4】查看loca.txt中包含one和two的行内容
grep -e one -b two local.txt
或grep -e one local.txt | grep two
【示例5】查看当前目录下包含abc123内容的所有文件
grep -lR abc123 ./
【示例6】统计local.txt中包含abc123的行数
grep -o abc local.txt | wc -l
【示例6】查看local.txt中updates上下5行的内容
grep -C 5 pdates local.txt
3. 压缩解压缩、归档命令(gzip、bzip2、gunzip、bunzip、zip、tar)
gzip、bzip2 压缩命令 |
gzip -1 <文件>......gzip -9 <文件> #数字代表压缩比(0-9),-1压缩速度最快,性能消耗最小,压缩比最低;-9压缩速度快最慢,性能消耗最大,压缩比最高。-6是默认的压缩比,性能最优。 gzip/bzip -9 <文件> #压缩; gzip -d XXX.gz #解压缩XXX压缩包 bzip2 -d XXX.bz2 #解压缩XXX压缩包 |
gunzip、bunzip 解压缩命令 |
gunzip/bunzip2 <文件.gz> #解压缩.gz的压缩包 gunzip -d XXX.gz #压缩 bunzip2 -d XXX.bz2 #压缩 |
zip 压缩命令 |
zip [选项 ] <XXX.zip> <要压缩的文件/目录> <要压缩的文件/目录>,压缩; unizp <被压缩的文件/目录.zip>,解压缩 |
tar 归档命令【☆】 制作压缩包 |
tar命令的选项可以不加横杠- tar [选项] <归档文件> <归档文件> <归档文件>... -c 即create#创建.tar格式的包文件; -x 即extract#解开.tar格式的包文件,默认本地; -C 即#解压.tar格式的包文件,指定释放的目标文件夹; -f 即file#表示使用tar归档文件来制作压缩或解压缩; -t 即#列出包内文件; -v 即verbose#输出压缩和解压缩的详细信息,包含那些目录和文件; -P 即paths,打包时保留源文件及目录的绝对路径; -p 即preserve-permissions,压缩时保留源文件及目录的权限; -y 即#调用 bzip2程序进行压缩或解压; -z 即#调用 gzip程序进行压缩或解压; -j 即#调用 bzip2程序压缩; -J 即#调用xz程序压缩(了解); |
【示例1】调用gzip程序压缩opt目录下所有txt格式的文件和abc整个目录内容到压缩包text.tar.gz。
tar -czvf XXX.tar.gz text.tar.gz /opt/*.txt abg/
【示例2】调用gz解压缩到指定目录
tar xf XXX.tar.gz -C<指定目录>
4. vi和vim文件编辑器
vi编辑器可创建和修改长文本文件,vim是vi文本编辑器的增强版,有的发行版本或最小化安装的操作系统需要自行安装vim,使用方法与vi基本一致,输入vi/vim <文件名>直接编辑。
1. vi编辑器中三种模式的基本操作
功能 | 操作键 |
打开新文件 | :e <其它文件名> |
上下翻页 | Page Down键或 Ctrl+F,向下翻页 Page Up键或 Ctrl+B,向上翻页 |
快速跳转 |
Home键或^键、数字0键,跳转到本行的行首 End键或$键,跳转到本行的行尾 1G 或 gg,转到文件内容的第 1 行 G,跳转到文件的最后一行 #G,跳转到文件中的第#行(其中“#”号用具体数字替换) M,跳转至当前页的中间位置 |
删除 d=delete |
x或Delete键,删除光标处的单个字符 dd,删除当前光标所在行(有剪切功能) #dd,删除从光标处开始的#行内容 d^,删除当前光标之前到行首的所有字符 d$,删除当前光标处到行尾的所有字符 dw,删除光标处的整个单词 |
替换字符 R=replace |
R 或 Shift+r,替换当前光标处字符 |
查找 |
/word,从当前光标处开始向后进行查找字符串“word” ?word,从当前光标处开始向前进行查找 |
复制 剪切 文件内容替换 |
yy,复制当前行整行的内容到剪贴板 -------------------------------------------------------------------------------------------------------- p,粘贴到光标所在行之下 :8,11 co 4,将8-11行的内容复制黏贴到第4行下面 ------------------------------------------------------------------------------------------------------- :8,11 m 4,将8-11行的内容剪切到第4行下面 :r <其它文件名>,在光标所在下一行插入其他文件内容 ------------------------------------------------------------------------------------------------------- :s /old/new,将当前行中查找到的第一个字符串“old” 串替换为“new” |
撤销 | u,按一次取消最近的一次操作;重复u键,撤销多步操作 U,用于取消最后一次操作所在行所做的所有编辑 |
切换至输入模式 | a,在当前光标位置之后插入内容 i,在当前光标位置之前插入内容 o,在光标所在行之下插入一个新行内容 O,在光标所在行之上插入一个新行内容 A,在所在行的行尾插入内容 I,在所在行的行首插入 |
②输入模式
ESC键退出输入模式,进入命令模式
③末行模式
剪贴内容 |
:s/OLD/NEW/g, 将光标处所在行的所有OLD字符串替换成NEW字符串; :r,文件路径 在光标处所在行下面插入指定的文件内容; :N,M co,将第 N 行到第 M 行的内容复制到第 # 行下面; |
撤销 | u,按一次取消最近的一次操作;重复u键,撤销多步操作 U,用于取消最后一次操作所在行所做的所有编辑 |
保存退出 | :w,保存修改的内容 :w 新文件名,另存为其它文件 :q :q! ,放弃对文件内容的修改并退出 ZZ或:wq、:x,保存当前的文件内容并退出vi编辑器 |
高亮字符 | :shift 3,高亮字符串 :noh,取消高亮 |
显示行号 | :set nu,显示行号 :set nonu,不显示行号 |
2.命令模式、输入模式、末行模式之间如何切换?
命令模式 ——i a o 等 ——> 输入模式
<—— ESC ——
命令模式 —— : ——> 末行模式
<—— ESC ——