Linux 文件与目录管理

一、目录与路径

1、绝对路径和相对路径

  绝对路径:一般有根目录/写起,例如/user/share/doc 这个目录

  相对路径:不是有/写起,例如有/user/share/doc 要到 /user/share/man 下面时,‘cd ../man’

2、目录的相关操作

  cd:切换目录

  pwd:显示当前目录

  mkdir:新建一个新的目录

  rmdir:删除一个空的目录

  mkdir -p /test/test/test 新建多重目录

  rmdir [-p] dirname 连上层空目录一起删除

  rmdir [-r] dirname 删除不为空的目录

 

3、文件与目录管理

3.1 查看文件与目录:ls

-a 列出目录下的所有文件,包括以 . 开头的隐含文件。
-b 把文件名中不可输出的字符用反斜杠加字符编号(就象在C语言里一样)的形式列出。
-c 输出文件的 i 节点的修改时间,并以此排序。
-d 将目录象文件一样显示,而不是显示其下的文件。
-e 输出时间的全部信息,而不是输出简略信息。
-f -U 对输出的文件不排序。
-g 无用。
-i 输出文件的 i 节点的索引信息。
-k 以 k 字节的形式表示文件的大小。
-l 列出文件的详细信息。
-m 横向输出文件名,并以“,”作分格符。
-n 用数字的 UID,GID 代替名称。
-o 显示文件的除组信息外的详细信息。
-p -F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通
文件;“/”表示目录;“@”表示符号链接;“|”表示FIFOs;“=”表示套
接字(sockets)。
-q 用?代替不可输出的字符。
-r 对目录反向排序。
-s 在每个文件名后输出该文件的大小。
-t 以时间排序。
-u 以文件上次被访问的时间排序。
-x 按列输出,横向排序。
-A 显示除 “.”和“..”外的所有文件。
-B 不输出以 “~”结尾的备份文件。
-C 按列输出,纵向排序。
-G 输出文件的组的信息。
-L 列出链接文件名而不是链接到的文件。
-N 不限制文件长度。
-Q 把输出的文件名用双引号括起来。
-R 列出所有子目录下的文件。
-S 以文件大小排序。
-X 以文件的扩展名(最后一个 . 后的字符)排序。
-1 一行只输出一个文件。

3.2 复制、移动与删除:cp,rm,mv

文件复制命令cp
    命令格式:cp [-adfilprsu] 源文件(source) 目标文件(destination)
              cp [option] source1 source2 source3 ...  directory
    参数说明:
    -a:是指archive的意思,也说是指复制所有的目录
    -d:若源文件为连接文件(link file),则复制连接文件属性而非文件本身
    -f:强制(force),若有重复或其它疑问时,不会询问用户,而强制复制
    -i:若目标文件(destination)已存在,在覆盖时会先询问是否真的操作
    -l:建立硬连接(hard link)的连接文件,而非复制文件本身
    -p:与文件的属性一起复制,而非使用默认属性
    -r:递归复制,用于目录的复制操作
    -s:复制成符号连接文件(symbolic link),即“快捷方式”文件
    -u:若目标文件比源文件旧,更新目标文件
    如将/test1目录下的file1复制到/test3目录,并将文件名改为file2,可输入以下命令:
    cp /test1/file1 /test3/file2
文件移动命令mv
    命令格式:mv [-fiv] source destination
    参数说明:
    -f:force,强制直接移动而不询问
    -i:若目标文件(destination)已经存在,就会询问是否覆盖
    -u:若目标文件已经存在,且源文件比较新,才会更新
    如将/test1目录下的file1复制到/test3 目录,并将文件名改为file2,可输入以下命令:
    mv /test1/file1 /test3/file2
文件删除命令rm
    命令格式:rm [fir] 文件或目录
    参数说明:
    -f:强制删除
    -i:交互模式,在删除前询问用户是否操作
    -r:递归删除,常用在目录的删除
    如删除/test目录下的file1文件,可以输入以下命令:
    rm -i /test/file1

二、文件内容查询

1、查看文件内容

在Linux系统下,有很多命令可以查看文本文件的内容:

cat:从第一行开始显示全部的文本内容;

cat demo.txt 
显示demo.txt文件全部内容
cat -b demo.txt 
显示demo.txt文件全部内容,非空的行输出行号,空行会输出,但不标记行号
cat -n demo.txt 
显示demo.txt文件全部内容,所有行都输出行号 

tac:从最后一行开始,显示全部分文本内容,与cat相反;

tac demo.txt 
从最后一行开始,倒序输出demo.txt的内容。

nl:显示文本时,可以输出行号;

nl demo.txt 
显示文件内容,顺便输出行号,默认情况下空行不记录行号
nl -b a demo.txt 
b a #空行也输出行号
b t #默认设置
n ln ##行号最左方显示
n rn ##行号最右方显示,且不加0(然并卵,我的机器上依然显示在左边)
n rz ##行号最右方显示,且加0(再次然并卵,但加了0了,如下图所示)
w ##设置行号字段占用的位数 

more:按页显示文本内容;

more demo.txt 
按一下空格则往下翻一页
按一下Enter则往下翻一行
按一下B键往上翻一页
不能往上一行一行的翻回去了
:f 可以显示文件名和现在的行数
q退出more

less:与more差不多,也是按页显示文本内容,区别是less可以一行一行的回退,more回退只能一页一页回退;

less demo.txt 
more命令的所有按键less都支持
↑↓箭头可以实现一行一行的上下翻
PageDown/PageUp可以实现一页一页的上下翻

head:从头开始显示文件指定的行数;

head demo.txt 
默认只显示文件的前10行文本内容
head -n 6 demo.txt 
-n 6 参数指定显示文件的前6行
head -n -4 demo.txt 
-n -4 负数表示除去文件结尾的4行,其他的从头开始的所有行都显示出来 

tail:显示文件指定的结尾的行数,但每一行的位置还是原文件中的位置,不会像tac那样与原文件相反。

tail demo.txt 
默认只显示从文件最后一行开始的10行文本内容
tail -n 5 demo.txt 
-n 5 参数指定显示文件的最后5行
tail -n -5 demo.txt 
**-n -5**tail命令不支持负数,执行结果同-n 5 

vi: NB的Linux文本编辑器。

vi demo.txt 进入Normal模式查看文本
i 进入Insert模式插入内容,编辑文本
nG n代表行号,在Normal模式输入nG则定位到第n行
:set number 在Normal模式输入则显示文本行号,空行也会显示行号
ESC 退出Insert模式至Normal模式
:wq 在Normal模式下保存退出。w保存;q退出;可以单独使用 

2、修改文件时间或创建新文件:touch

touch [-acdmt] 文件
参数:
-a:修改访问时间
-c:修改文件的时间,若该文件不存在则不创建新闻界
-d:后面可以接欲修改的日期而不用目前的日期,也可以使用 --date=“时间或日期”
-m:仅修改mtime
-t:后面可以接欲修改的时间而不用目前的时间,格式为[YYMMDDhhmm]

 



posted @ 2018-12-16 16:42  OneShit  阅读(175)  评论(0编辑  收藏  举报