目录与文件操作
目录与文件操作
Linux结构目录
1. /root:系统管理员root的宿主目录
2. /home:普通用户的宿主目录
3. /boot:系统内核、启动文件
4. /dev:设备文件
5. /etc:配置文件
6. /bin:所有用户可执行的命令
7. /sbin:管理员可执行的管理命令
8. /usr:应用程序
9. /var:日志文件等
查看及检索文件
查看文件
cat命令
1.一次显示整个文件。
cat filename
2.从键盘创建一个文件。
cat > filename
3.将几个文件合并为一个文件。
cat file1 file2 > file
more命令
more会以一页一页的显示方便使用者逐页阅读
less命令
less 可以随意浏览文件
命令格式:less 选项 文件
常用选项
详细选项
-b <缓冲区大小> 设置缓冲区的大小
-e 当文件显示结束后,自动离开
-f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件
-g 只标志最后搜索的关键词
-i 忽略搜索时的大小写
-m 显示类似more命令的百分比
-N 显示每行的行号
-o <文件名> 将less 输出的内容在指定文件中保存起来
-Q 不使用警告音
-s 显示连续空行为一行
-S 行过长时间将超出部分舍弃
-x <数字> 将“tab”键显示为规定的数字空格
-i 忽略搜索时的大小写
按键
/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
b 向后翻一页
d 向后翻半页
h 显示帮助界面
Q 退出less 命令
u 向前滚动半页
y 向前滚动一行
空格键 滚动一行
回车键 滚动一页
[pagedown]: 向下翻动一页
[pageup]: 向上翻动一页
head命令
head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。
命令格式:head 选项 文件
选项
-q 隐藏文件名
-v 显示文件名
-c<字节> 显示字节数
-n<行数> 显示的行数
tail命令
用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。
命令格式:tail 必要选项 选项 文件
选项
-f 循环读取
-q 不显示处理信息
-v 显示详细的处理信息
-c<数目> 显示的字节数
-n<行数> 显示行数
--pid=PID 与-f合用,表示在进程ID,PID死掉之后结束.
-q, --quiet, --silent 从不输出给出文件名的首部
-s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒
tail -n 5 log2014.log
-n<行数> 显示行数
统计和检索
wc命令
统计指定文件中的字节数、字数、行数,并将统计结果显示输出。
命令格式:wc 选项 文件
选项
-c 统计字节数。
-l 统计行数。
-m 统计字符数。这个标志不能与 -c 标志一起使用。
-w 统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串。
-L 打印最长行的长度。
-help 显示帮助信息
--version 显示版本信息
ls -l | wc -l
用来统计当前目录下的文件数
grep命令
在文件中查找并显示包含指定字符串的行
命令格式:grep 选项 查找条件 目标文件
常用选项
-i --ignore-case #忽略字符大小写的差别。
-v --revert-match #显示不包含匹配文本的所有行。
-n --line-number #在显示符合样式的那一行之前,标示出该行的列数编号。
grep -E -v -e "^$|^a" 指定文件:过滤指定文件中的空格和a开头的
详细选项
-a --text #不要忽略二进制的数据。
-A<显示行数> --after-context=<显示行数> #除了显示符合范本样式的那一列之外,并显示该行之后的内容。
-b --byte-offset #在显示符合样式的那一行之前,标示出该行第一个字符的编号。
-B<显示行数> --before-context=<显示行数> #除了显示符合样式的那一行之外,并显示该行之前的内容。
-c --count #计算符合样式的列数。
-C<显示行数> --context=<显示行数>或-<显示行数> #除了显示符合样式的那一行之外,并显示该行之前后的内容。
-d <动作> --directories=<动作> #当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作。
-e<范本样式> --regexp=<范本样式> #指定字符串做为查找文件内容的样式。
-E --extended-regexp #将样式为延伸的普通表示法来使用。
-f<规则文件> --file=<规则文件> #指定规则文件,其内容含有一个或多个规则样式,让grep查找符合规则条件的文件内容,格式为每行一个规则样式。
-F --fixed-regexp #将样式视为固定字符串的列表。
-G --basic-regexp #将样式视为普通的表示法来使用。
-h --no-filename #在显示符合样式的那一行之前,不标示该行所属的文件名称。
-H --with-filename #在显示符合样式的那一行之前,表示该行所属的文件名称。
-i --ignore-case #忽略字符大小写的差别。
-l --file-with-matches #列出文件内容符合指定的样式的文件名称。
-L --files-without-match #列出文件内容不符合指定的样式的文件名称。
-n --line-number #在显示符合样式的那一行之前,标示出该行的列数编号。
-q --quiet或--silent #不显示任何信息。
-r --recursive #此参数的效果和指定“-d recurse”参数相同。
-s --no-messages #不显示错误信息。
-v --revert-match #显示不包含匹配文本的所有行。
-V --version #显示版本信息。
-w --word-regexp #只显示全字符合的列。
-x --line-regexp #只显示全列符合的列。
-y #此参数的效果和指定“-i”参数相同。
-i --ignore-case #忽略字符大小写的差别。
-v --revert-match #显示不包含匹配文本的所有行。
查找条件
常用
^ #锚定行的开始 如:'^grep'匹配所有以grep开头的行。
$ #锚定行的结束 如:'grep$'匹配所有以grep结尾的行。
^$ 匹配空格
详细选项
^ #锚定行的开始 如:'^grep'匹配所有以grep开头的行。
$ #锚定行的结束 如:'grep$'匹配所有以grep结尾的行。
. #匹配一个非换行符的字符 如:'gr.p'匹配gr后接一个任意字符,然后是p。
*#匹配零个或多个先前字符 如:'*grep'匹配所有一个或多个空格后紧跟grep的行。
.* #一起用代表任意字符。
[] #匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep。
[^] #匹配一个不在指定范围内的字符,如:'[^A-FH-Z]rep'匹配不包含A-R和T-Z的一个字母开头,紧跟rep的行。
\(..\) #标记匹配字符,如'\(love\)',love被标记为1。
\< #锚定单词的开始,如:'\<grep'匹配包含以grep开头的单词的行。
\> #锚定单词的结束,如'grep\>'匹配包含以grep结尾的单词的行。
x\{m\} #重复字符x,m次,如:'0\{5\}'匹配包含5个o的行。
x\{m,\} #重复字符x,至少m次,如:'o\{5,\}'匹配至少有5个o的行。
x\{m,n\} #重复字符x,至少m次,不多于n次,如:'o\{5,10\}'匹配5--10个o的行。
\w #匹配文字和数字字符,也就是[A-Za-z0-9],如:'G\w*p'匹配以G后跟零个或多个文字或数字字符,然后是p。
\W #\w的反置形式,匹配一个或多个非单词字符,如点号句号等。
\b #单词锁定符,如: '\bgrep\b'只匹配grep。
^ #锚定行的开始 如:'^grep'匹配所有以grep开头的行。
$ #锚定行的结束 如:'grep$'匹配所有以grep结尾的行。
备份与恢复文档
压缩和解压缩
gzip和gunzip命令
gzip压缩完文件后会产生.gz的压缩文件,并删除原始的文件。
命令格式:gzip 选项 文件或目录
选项
详细选项了解
-a或--ascii 使用ASCII文字模式。
-c或--stdout或--to-stdout 把压缩后的文件输出到标准输出设备,不去更动原始文件。
-d或--decompress或----uncompress 解开压缩文件。
-f或--force 强行压缩文件。不理会文件名称或硬连接是否存在以及该文件是否为符号连接。
-h或--help 在线帮助。
-l或--list 列出压缩文件的相关信息。
-L或--license 显示版本与版权信息。
-n或--no-name 压缩文件时,不保存原来的文件名称及时间戳记。
-N或--name 压缩文件时,保存原来的文件名称及时间戳记。
-q或--quiet 不显示警告信息。
-r或--recursive 递归处理,将指定目录下的所有文件及子目录一并处理。
-S<压缩字尾字符串>或----suffix<压缩字尾字符串> 更改压缩字尾字符串。
-t或--test 测试压缩文件是否正确无误。
-v或--verbose 显示指令执行过程。
-V或--version 显示版本信息。
-num 用指定的数字num调整压缩的速度,-1或--fast表示最快压缩方法(低压缩比),-9或--best表示最慢压缩方法(高压缩比)。系统缺省值为6。
常用选项
-num 用指定的数字num调整压缩的速度,-1或--fast表示最快压缩方法(低压缩比),-9或--best表示最慢压缩方法(高压缩比)。系统缺省值为6。
解压缩命令格式:gunzip或gzip -d 压缩文件.gz
bzip2和bunzip2命令
bzip2压缩完文件后会产生.bz2的压缩文件,并删除原始的文件。
命令格式:bzip2 选项 文件或目录
选项
详细选项了解
-c或--stdout 将压缩与解压缩的结果送到标准输出。
-d或--decompress 执行解压缩。
-f或--force bzip2在压缩或解压缩时,若输出文件与现有文件同名,预设不会覆盖现有文件。若要覆盖,请使用此参数。
-h或--help 显示帮助。
-k或--keep bzip2在压缩或解压缩后,会删除原始的文件。若要保留原始文件,请使用此参数。
-s或--small 降低程序执行时内存的使用量。
-t或--test 测试.bz2压缩文件的完整性。
-v或--verbose 压缩或解压缩文件时,显示详细的信息。
-z或--compress 强制执行压缩。
-L,--license,
-V或--version 显示版本信息。
--repetitive-best 若文件中有重复出现的资料时,可利用此参数提高压缩效果。
--repetitive-fast 若文件中有重复出现的资料时,可利用此参数加快执行速度。
-压缩等级 压缩时的区块大小。
解压缩命令格式:bunzip2或bzip2 -d 压缩文件.bz2
tar归档和释放
用来压缩和解压文件。tar本身不具有压缩功能。他是调用压缩功能实现的
命令格式:tar 必要选项 选择选项 文件
选项
详细选项了解
详细选项
-A 新增压缩文件到已存在的压缩
-B 设置区块大小
-c 建立新的压缩文件
-d 记录文件的差别
-r 添加文件到已经压缩的文件
-u 添加改变了和现有的文件到已经存在的压缩文件
-x 从压缩的文件中提取文件
-t 显示压缩文件的内容
-z 支持gzip解压文件
-j 支持bzip2解压文件
-Z 支持compress解压文件
-v 显示操作过程
-l 文件系统边界设置
-k 保留原有文件不覆盖
-m 保留文件不被覆盖
-W 确认压缩文件的正确性
可选参数如下:
-b 设置区块数目
-C 切换到指定目录
-f 指定压缩文件
--help 显示帮助信息
--version 显示版本信息
常用选项
-j 支持bzip2解压文件
-z 支持gzip解压文件
-c 创建(Create).tar 格式的包文件
-C 解压时指定释放的目标文件夹
-x 从压缩的文件中提取文件
-v 显示操作过程
-f 指定压缩文件
-u 添加改变了和现有的文件到已经存在的压缩文件
制作归档备份文件
tar jcvf *.tar.bz2 -C 路径 用bzip2压缩并显示操作过程指定压缩文件 到路径
tar zcvf *.tar.gz -C 路径 用gzip压缩并显示操作过程指定压缩文件 到路径
从归档文件中恢复数据
tar jxvf *.tar.bz2 -C 路径 用bzip2解压缩并显示操作过程指定压缩文件 到路径
tar zxvf *.tar.gz -C 路径 用gzip解压缩并显示操作过程指定压缩文件 到路径
vi文本编辑器
命令模式
启动 vi 编辑器后默认进入命令模式。该模式中主要完成如光标移动、字符串查找,以及删除、复制、粘贴文件内容等相关操作。
1.模式切换
在命令模式中,按 a、i、o 等键可以快速切换至输入模式,同时确定插入点的方式和位置,以便录入文件内容。需要返回命令模式时,按 Esc 键即可。常见的几个模式切换键及其作用如下。
a:在当前光标位置之后插入内容。
A:在光标所在行的末尾(行尾)插入内容。
i:在当前光标位置之前插入内容。
I:在光标所在行的开头(行首)插入内容。
o:在光标所在行的后面插入一个新行。
O:在光标所在行的前面插入一个新行。
2.移动光标
光标方向的移动。直接按↑、↓、←、→四个方向键完成相应的光标移动。
翻页移动。
按 Page Down 键或 Ctrl+F 组合键向下翻动一整页内容。
按 Page Up 键或 Ctrl+B 组合键向上翻动一整页内容。
行内快速跳转。
按 Home 键或^键、数字 0 键将光标快速跳转到本行的行首。
按 End 键或$键将光标快速跳转到本行的行尾。
在上述按键操作中,Page Down、Page Up、Home、End 键及方向键同样也可在 vi
的输入模式中使用。
行间快速跳转。
使用按键命令 1G 或者 gg 可跳转到文件内容的第 1 行。
使用按键命令 G 可跳转到文件的最后一行。
使用按键命令#G 可跳转到文件中的第#行(其中“#”号用具体数字替换)。为了便于查看行间跳转效果,这里先学习如何在 vi 编辑器中显示行号。只要切换到末
行模式并执行如下的“:set nu”命令即可显示行号,执行“:set nonu”命令可以取消显示行号。
3.复制、粘贴和删除
删除操作。
按 x 键或 Delete 键删除光标处的单个字符。
使用按键命令 dd 删除当前光标所在行,使用#dd 的形式还可以删除从光标处开始的#行内容(其中“#”号用具体数字替换)。
使用按键命令 d^删除当前光标之前到行首的所有字符。
使用按键命令 d$删除当前光标处到行尾的所有字符。
复制操作。使用按键命令 yy 复制当前行整行的内容到剪贴板,使用#yy 的形式还可以复制从光标处开始的#行内容(其中“#”号用具体数字替换)。复制的内容需 要粘贴后才能使用。
粘贴操作。在 vi 编辑器中,前一次被删除或复制的内容将会保存到剪切板缓冲区中,按 p 键即可将缓冲区中的内容粘贴到光标位置处之后,按 P 键则会粘贴到光标位置处之前。
4.查找文件内容
在命令模式中,按/键后可以输入指定的字符串,从当前光标处开始向后进行查找(按? 键则向前查找)。完成查找后可以按 n、N 键在不同的查找结果中进行选择。例如,输入“/yum”,按 Enter 键后将查找出文件中的“yum”字符串并高亮显示,光标自动移动至第一个查找结果处,按 n 键可以移动到下一个查找结果,
5.撤销编辑及保存和退出
在对文件内容进行编辑时,有时候需要对一些失误的编辑操作进行撤销,这时可以使用 按键命令 u、U 键。其中,u 键命令用于取消最近一次的操作,并恢复操作结果,可以多次重复按 u 键恢复已进行的多步操作;U 键命令用于取消对当前行所做的所有编辑。
当需要保存当前的文件内容并退出 vi 编辑器时,可以使用按键命令 ZZ。
输入模式
该模式中主要的操作就是录入文件内容,可以对文本文件正文进行修改或添加新的内容。处于输入模式时,vi 编辑器的最后一行会出现“-- INSERT --” 的状态提示信息。
末行模式
该模式中可以设置 vi 编辑环境、保存文件、退出编辑器,以及对文件内容进行查找、替换等操作。处于末行模式时, vi 编辑器的最后一行会出现冒号“:”提示符。
1.保存文件及退出 vi 编辑器
保存文件。对文件内容进行修改并确认以后,需要执行如下的“:w”命令进行保存。
:w
若需要另存为其他文件,则需要指定新的文件名,必要时还可以指定文件路径。例如, 执行如下的“:w /root/newfile” 操作将把当前编辑的文件另存到/root 目录下, 文件名为newfile。
:w /root/newfile
退出编辑器。需要退出 vi 编辑器时,可以执行“:q”命令。若文件内容已经修改却没有保存,则仅使用“:q”命令将无法成功退出,这时需要使用如下的“:q!”命令强行退出(不保存即退出)。
:q!
保存并退出。既要保存文件又要退出 vi 编辑器可以使用一条末行命令“:wq”或“:x” 实现,其效果与命令模式中的 ZZ 命令相同,具体操作如下:
:wq或者:x
2.打开新文件或读入其他文件内容
打开新的文件进行编辑。在当前 vi 编辑器中,执行“:e 新的文件”形式的末行命令可以编辑(Edit)新文件。例如,执行如下的“:e~/initial-setup-ks.cfg”操作将直接打开当前用户宿主目录中的 initial-setup-ks.cfg 文件进行编辑。
:e ~/initial-setup-ks.cfg
在当前文件中读入其他文件内容。执行“:r 其他文件”形式的末行命令可以读入
(Read)其他文件中的内容,并将其复制到当前光标所在位置。例如,执行如下的
“:r/etc/filesystems”操作将把系统文件/etc/filesystems 中的内容复制到当前文件中。
:r /etc/filesystems
3.替换文件内容
在 vi 编辑器的末行模式中,能够将文件中特定的字符串替换成新的内容,当需要大批量修改同一内容时,使用替换功能将大大提高编辑效率。使用替换功能时的末行命令格式如 下:
: [替换范围] sub /旧的内容/新的内容[/g]
在上述替换格式中,主要关键字为 sub(Substitute,替换),也可以简写为 s。替换范围是可选部分,默认时只对当前行内的内容进行替换,一般可以表示为以下两种形式。
%:在整个文件内容中进行查找并替换。
n,m:在指定行数范围内的文件内容中进行查找并替换。
替换格式中最末尾的“/g”部分也是可选内容,表示对替换范围内每一行的所有匹配结果都进行替换,省略“/g”时将只替换每行中的第一个匹配结果。例如,若要将文档中第 5 行~
第 15 行中的“initdefault”字符串替换为“DEFAULT”,可以执行以下操作:
:5,15 s /initdefault/DEFAULT/g
当需要对整个文档范围进行查找替换操作时,需要使用“%”符号表示全部。例如,以下操作将会把当前文件中所有的“initdefault”字符串替换为“bootdefault”。
:% s /initdefault/bootdefault/g
f接目标字符:如f+,搜索同一行内下一个+位置
;的作用:跳转到下一个f搜索的位置
,的作用:跳转到上一个f搜索的位置
vim filename
然后用命令 :set ff
可看到dos或unix的字样,如果的确是dos格式的, 那么用set ff=unix把它强制为unix格式的,,然后存盘退出后就可运行。