shell命令3------文件管理与编辑

2017-09-13  本文已影响0人  我弟是个程序员

Linux下进行操作,与文件打交道是常用的操作,这一节要学习的是Linux下的文件操作

1.mkdir 命令

用于创建一个目录。是make directory的缩写。其命令格式:

mkdir [选项] 目录名
选 项 说 明
-m 对新建目录设置存取权限
-p 可以指定一个路径名,此时,若路径中的某些目录尚不存在,用此选项后,系统会自动创建那些尚不存在的目录,也就说,一次可以创建多个目录
2.more 命令

如果一个文本文件太长,一屏不能显示完全,就需要使用more命令。more命令读取文本文件时,每次显示一屏,并且在每屏后暂停,同时在屏幕底部显示单词“more”。如果此时按ENTER键,会接着显示文本的另一行,如果按空格键,就会显示文本文件的下一屏信息。格式如下:

more [选项] 文件名 
选 项 说 明
-d 在屏幕底部more提示符后显示友好信息,此信息是显示有关哪些键继续,哪些键退出,哪些键帮助等
-s 将输出文件的多个空行减少为一个空行输出。以文件的第一行为准
-p 清楚屏幕以前的信息,再显示文本信息
-c 显示问件时,没屏显示都清楚屏幕先前的信息然后从最顶端显示出来
> more tomcat.log  //以分屏展示信息
> more -c -10 tomcat.log  //显示tomcat.log文件内容,每10行显示一屏,同时清除屏幕。
3.cat 命令

可以用来将文件的内容输出到标准输出,同时cat还可以用于连接合并文件。格式如下:

cat [选项] 文件名

或者

cat file1 file2 >file
选 项 说 明
-A 将文件的制表符显示问“^I”,同时在每行的末尾显示“$”符号
-b 将文件所有非空行按顺序编号,编号从1开始
4.diff 命令

用来比较文件的差异。diff以逐行的形式比较文件的异同,如果指定比较的是目录,则只会比较目录下相同文件名的文件,不会比较其子目录。格式如下:

diff [选项] file1 file2
选 项 说 明
-c 显示全部内容,并标出不同之处
-b 忽略行尾空格,同时字符串中的一个或多个空格都将视为相同
-r 当file1、file2为目录时,比较子目录中的文件
-s 两个文件相同时,显示文件的相同信息
5.grep 命令

文本过滤工具,根据指定的字符串,对文件的每一行进行搜索,如果找到了这个字符串,就输出该行的内容。格式如下:

grep [选项] 需要查找的字符串文件名
选 项 说 明
-c 只显示符合条件的行数,不显示每行的具体信息
-i 搜索时,忽略大小写
-n 搜索结果中显示行号
-f file 事先将要搜索的样式写进一个文件,每行一个样式,然后以这个文件作为条件进行搜索
> grep -ni rpm install.log  //列出 install.log文件中含有rmp字符串的所有行,忽略大小写,并标识具体行号
6. rm 命令

用来删除某个目录及其下的所有文件及子目录。对于链接文件,只是断开了链接,原文件保持不变。格式如下:

rm [选项] 文件或目录
选 项 说 明
-r 告诉rm命令将选项中列出的全部目录以及子目录还有文件进行递归删除,如果选项中不加入“-r”选项,rm命令将不能删除目录
-f 忽略不存在的问题,也不给提示
-i 交互式删除,在删除前进行确认

注意,rm -rf 组合要慎用,多用 rm -i 进行交互式删除。

7.touch 命令

用来修改指定文件的访问时间和修改时间,若指定文件不存在则创建此文件。如果没有指定时间,则使用当前时间。格式如下:

touch [选项] 设定的时间文件
选 项 说 明
-a 改变文件的访问时间为系统时间,无需设置时间选项
-m 改变文件的修改时间为系统时间,无需设置时间选项
-c 如果文件不存在,不创建也不提示
-d 或 -t 使用指定的日期或时间
8.ln 命令

用来在文件或目录间创建链接。

Linux下,链接有两种方式,一种是硬链接,另一种是符号链接。默认情况下,ln命令产生的是硬链接。

ln [选项] 源文件目标链接名
选 项 说 明
-f 如果在目标位置存在与链接名相同的文件,这个文件将被删除
-s 进行软链接
-d 允许系统管理员硬链接自己的目录
-b 对将在链接时会被覆盖或删除的文件进行备份
ln命令

上面的命令首先切换到 /home目录下,新建了一个目录test,然后进行ln操作,将/home/personal/目录下的test.txt文件,硬链接到刚才创建的/home/test目录下,此时,该目录下也产生了一个test.txt文件,并且文件内容一样。如果你修改任意一个文件,另外一个文件也会变。

9.file 命令

用来显示文件的类型。对于长度为0的文件,将被识别为空文件;对于符号链接文件,默认情况下将显示符号链接引用的真是文件路径。格式如下:

file [选项] 文件名
选 项 说 明
-b 显示文件类型结果,不显示对应文件名称
-L 直接显示符号链接所指向文件的类型
-z 显示压缩文件的信息
-i 如果文件不是常规文件,则不进一步对文件类型进行分类
file命令
10. cp 命令

将给出的文件或 目录复制到另一个文件或是目录中。格式如下;

cp [选项] 源文件或目录 目标文件或目录
选 项 说 明
-a 在复制目录时使用。它保留所有的信息,包括文件链接、文件属性,并递归的复制目录
-r 若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件,此时目标文件必须是一个目录名
-d 复制时保留链接,这样不会失去链接文件
-p 保留文件的修改时间和存储权限
-i 如果已经有相同的文件名或目标文件,则提示用户是否覆盖
> cp -r ./* /tmp //将当前目录下的所有文件复制到tmp目录下,“./*”表示当前目录下的所有文件及目录

> cp -r /home/oracle /home/ixdba //将 /home/oracle 目录下及其子目录下的所有内容复制到 /home/ixdba 下
11.find 命令

用来在指定路径下查找指定文件。格式如下:

find path-name[-options] [-print -exec -ok命令 {} \;]

“-options”常见的几个格式:

选 项 说 明
-name '字符串' 查找文件匹配所给字符串的所有文件,字符串可以使用通配符 ?、 []、 *
-lname '字符串' 查找文件匹配所给字符串的所有符号链接文件,字符串可以使用通配符 ?、 []、 *
-path '字符串' 查找路径名匹配所给字符串的所有文件,字符串可以使用通配符 ?、 []、 *
-user '字符串' 查找用户名为所给字符串的所有文件
-group '字符串' 查找用户组名为所给字符串的所有文件
12.split 命令

用来分割文档,将一个文件分割成数个。格式如下:

split [选项] [input_file] [output_file]
选 项 说 明
-b size 制定分割出来的文件大小,size可以加入单位,b代表512字节,k代表1KB,m代表1MB
-n 分割的每个文件的长度,默认为1000行
-d 生成的文件序列以数字形式命名
-a 生成的文件序列的长度,默认长度为2
> split -b 10m access_log access_log_bak //设定每个分割文件的大小为10M,执行完毕后,生成的文件一次是access_log_bakaa,access_log_bakab等,每个文件大小是10M

>split -b 2M -d -a 3 /opt/etc.zip /opt/etc_zip_bak //执行完毕后,在/opt目录下生产etc_zip_bak001、etc_zip_bak002、etc_zip_bak3等文件
13.mv 命令

将文件或是目录改名,或是讲文件从一个目录移到另一个目录下。源文件和目标文件,都是文件或是目录,表示改名。源文件是文件,目标文件是目录,很显然时移动文件。格式如下:

mv [选项] 源文件或目录 目标文件或目录
选 项 说 明
-i 交互式操作,在对已存在的文件或目录覆盖时,系统会询问是否覆盖,y/n
-f 禁止交互操作,mv指令将要覆盖文件或目录时,不给任何提示,默认覆盖
上一篇 下一篇

猜你喜欢

热点阅读