Linux文件管理

1:文件管理

ls

ls 命令是Linux下最常用的指令之一。ls命令为英文单词 list 的缩写,正如英文单词 list 的意思,其功能是列出指定目录下的内容及其相关属性信息。

默认状态下,ls命令会列出当前目录的内容。

而带上参数后,我们可以用ls做更多的事情。作为最基础同时又是使用频率很高的命令,我们很有必要搞清楚ls命令的用法,那么接下来一起看看吧!

语法格式: ls [选项] [文件]

常用参数:

-a 显示所有文件及目录 (包括以“.”开头的隐藏文件)
-l 使用长格式列出文件及目录信息
-r 将文件以相反次序显示(默认依英文字母次序)
-t 根据最后的修改时间排序
-A 同 -a ,但不列出 “.” (当前目录) 及 “..” (父目录)
-S 根据文件大小排序
-R 递归列出所有子目录
[root@hiszm hiszm]# ls
a  b
[root@hiszm hiszm]# ls
a  b
[root@hiszm hiszm]# ll
total 8
-rw-r--r-- 1 root root 6 Apr 23 09:41 a
-rw-r--r-- 1 root root 6 Apr 23 09:42 b
[root@hiszm hiszm]# ls -a
.  ..  a  b
[root@hiszm hiszm]# ls -AS
a  b
[root@hiszm hiszm]# pwd
/hiszm
[root@hiszm hiszm]# 

cp

cp命令可以理解为英文单词copy的缩写,其功能为复制文件或目录。

cp命令可以将多个文件复制到一个具体的文件名或一个已经存在的目录下,也可以同时复制多个文件到一个指定的目录中。

语法格式:cp [参数] [文件]

常用参数:

-f 若目标文件已存在,则会直接覆盖原文件
-i 若目标文件已存在,则会询问是否覆盖
-p 保留源文件或目录的所有属性
-r 递归复制文件和目录
-d 当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录
-l 对源文件建立硬连接,而非复制文件
-s 对源文件建立符号连接,而非复制文件
-b 覆盖已存在的文件目标前将目标文件备份
-v 详细显示cp命令执行的操作过程
-a 等价于“dpr”选项
[root@hiszm hiszm]# ls -lR
.:
total 8
-rw-r--r-- 1 root root  6 Apr 23 09:41 a
-rw-r--r-- 1 root root  6 Apr 23 09:42 b
drwxr-xr-x 2 root root 16 Apr 23 09:45 dir1

./dir1:
total 0
-rw-r--r-- 1 root root 0 Apr 23 09:45 f1
[root@hiszm hiszm]# pwd
/hiszm
[root@hiszm hiszm]# cp -R dir1 dir2
[root@hiszm hiszm]# ls -lR
.:
total 8
-rw-r--r-- 1 root root  6 Apr 23 09:41 a
-rw-r--r-- 1 root root  6 Apr 23 09:42 b
drwxr-xr-x 2 root root 16 Apr 23 09:45 dir1
drwxr-xr-x 2 root root 16 Apr 23 09:46 dir2

./dir1:
total 0
-rw-r--r-- 1 root root 0 Apr 23 09:45 f1

./dir2:
total 0
-rw-r--r-- 1 root root 0 Apr 23 09:46 f1
[root@hiszm hiszm]# cp a b dir1
[root@hiszm hiszm]# ls -lR
.:
total 8
-rw-r--r-- 1 root root  6 Apr 23 09:41 a
-rw-r--r-- 1 root root  6 Apr 23 09:42 b
drwxr-xr-x 2 root root 34 Apr 23 09:47 dir1
drwxr-xr-x 2 root root 16 Apr 23 09:46 dir2

./dir1:
total 8
-rw-r--r-- 1 root root 6 Apr 23 09:47 a
-rw-r--r-- 1 root root 6 Apr 23 09:47 b
-rw-r--r-- 1 root root 0 Apr 23 09:45 f1

./dir2:
total 0
-rw-r--r-- 1 root root 0 Apr 23 09:46 f1
[root@hiszm hiszm]# 

mkdir

mkdir命令是“make directories”的缩写,用来创建目录。

注意:默认状态下,如果要创建的目录已经存在,则提示已存在,而不会继续创建目录。 所以在创建目录时,应保证新建的目录与它所在目录下的文件没有重名。 mkdir命令还可以同时创建多个目录,是不是很强大呢?

语法格式 : mkdir [参数] [目录]

常用参数:

-p 递归创建多级目录
-m 建立目录的同时设置目录的权限
-z 设置安全上下文
-v 显示目录的创建过程
[root@hiszm hiszm]# mkdir dir3
[root@hiszm hiszm]# mkdir /dir4/dir5
mkdir: cannot create directory ‘/dir4/dir5’: No such file or directory
[root@hiszm hiszm]# mkdir -p /dir4/dir5
[root@hiszm hiszm]# mkdir dir5 dir6 dir7
[root@hiszm hiszm]# mkdir -m 700 dir8
[root@hiszm hiszm]# ls -lR
.:
total 8
-rw-r--r-- 1 root root  6 Apr 23 09:41 a
-rw-r--r-- 1 root root  6 Apr 23 09:42 b
drwxr-xr-x 2 root root 34 Apr 23 09:47 dir1
drwxr-xr-x 2 root root 16 Apr 23 09:46 dir2
drwxr-xr-x 2 root root  6 Apr 23 09:48 dir3
drwxr-xr-x 2 root root  6 Apr 23 09:49 dir5
drwxr-xr-x 2 root root  6 Apr 23 09:49 dir6
drwxr-xr-x 2 root root  6 Apr 23 09:49 dir7
drwx------ 2 root root  6 Apr 23 09:49 dir8

./dir1:
total 8
-rw-r--r-- 1 root root 6 Apr 23 09:47 a
-rw-r--r-- 1 root root 6 Apr 23 09:47 b
-rw-r--r-- 1 root root 0 Apr 23 09:45 f1

./dir2:
total 0
-rw-r--r-- 1 root root 0 Apr 23 09:46 f1

./dir3:
total 0

./dir5:
total 0

./dir6:
total 0

./dir7:
total 0

./dir8:
total 0
[root@hiszm hiszm]# 

mv

mv命令是“move”单词的缩写,其功能大致和英文含义一样,可以移动文件或对其改名。

这是一个使用频率超高的文件管理命令,我们需要特别留意它与复制的区别:mv与cp的结果不同。mv命令好像文件“搬家”,文件名称发生改变,但个数并未增加。而cp命令是对文件进行复制操作,文件个数是有增加的。

语法格式:mv [参数]

常用参数:

-i 若存在同名文件,则向用户询问是否覆盖
-f 覆盖已有文件时,不进行任何提示
-b 当文件存在时,覆盖前为其创建一个备份
-u 当源文件比目标文件新,或者目标文件不存在时,才执行移动此操作
[root@hiszm hiszm]# which mv
alias mv='mv -i'
	/usr/bin/mv
[root@hiszm hiszm]# ls
a  b  dir1  dir2  dir3  dir5  dir6  dir7  dir8
[root@hiszm hiszm]# mv a c
[root@hiszm hiszm]# ls
b  c  dir1  dir2  dir3  dir5  dir6  dir7  dir8
[root@hiszm hiszm]# mv b dir1
mv: overwrite 'dir1/b'? y
[root@hiszm hiszm]# ls
c  dir1  dir2  dir3  dir5  dir6  dir7  dir8
[root@hiszm hiszm]# ls /dir1
ls: cannot access '/dir1': No such file or directory
[root@hiszm hiszm]# ls dir1/
a  b  f1
[root@hiszm hiszm]# 

pwd

pwd命令是“print working directory”中每个单词的首字母缩写,其功能正如所示单词一样,为打印工作目录,即显示当前工作目录的绝对路径。

在实际工作中,我们经常会在不同目录之间进行切换,为了防止“迷路”,我们可以使用pwd命令快速查看当前我们所在的目录路径。

语法格式: pwd [参数]

常用参数:

-L 显示逻辑路径
[root@hiszm hiszm]# which pwd
/usr/bin/pwd
[root@hiszm hiszm]# pwd
/hiszm
[root@hiszm hiszm]# pwd -L
/hiszm
[root@hiszm hiszm]# pwd -l
-bash: pwd: -l: invalid option
pwd: usage: pwd [-LP]
[root@hiszm hiszm]# 

cat

Linux系统中有很多个用于查看文件内容的命令,每个命令又都有自己的特点,比如这个cat命令就是用于查看内容较少的纯文本文件的。cat这个命令也很好记,因为cat在英语中是“猫”的意思,小猫咪是不是给您一种娇小、可爱的感觉呢?

注意:当文件内容较大时,文本内容会在屏幕上快速闪动(滚屏),用户往往看不清所显示的具体内容。因此对于较长文件内容可以按Ctrl+S键,停止滚屏;以及Ctrl+Q键可以恢复滚屏;而按Ctrl+C(中断)键则可以终止该命令的执行。或者对于大文件,干脆用more命令吧!

语法格式:cat [参数] [文件]

常用参数:

-n 显示行数(空行也编号)
-s 显示行数(多个空行算一个编号)
-b 显示行数(空行不编号)
-E 每行结束处显示$符号
-T 将TAB字符显示为 ^I符号
-v 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外
-e 等价于”-vE”组合
-t 等价于”-vT”组合
-A 等价于 -vET组合
--help 显示帮助信息
--version 显示版本信息
[root@hiszm dir1]# ls
a  b  f1
[root@hiszm dir1]# cat a
11111
[root@hiszm dir1]# cat -n a
     1	11111
[root@hiszm dir1]# vi a
[root@hiszm dir1]# cat a
q5555
q123123
q
q
q123
q1
q
q123
qq
qq123
q1qq
qq111112313121
[root@hiszm dir1]# cat -n a
     1	q5555
     2	q123123
     3	q
     4	q
     5	q123
     6	q1
     7	q
     8	q123
     9	qq
    10	qq123
    11	q1qq
    12	qq111112313121
[root@hiszm dir1]# cat -n a >b
[root@hiszm dir1]# cat b
     1	q5555
     2	q123123
     3	q
     4	q
     5	q123
     6	q1
     7	q
     8	q123
     9	qq
    10	qq123
    11	q1qq
    12	qq111112313121
[root@hiszm dir1]# 

tac

输出方向正好和 cat 相反

[root@hiszm dir1]# cat b
     1	q5555
     2	q123123
     3	q
     4	q
     5	q123
     6	q1
     7	q
     8	q123
     9	qq
    10	qq123
    11	q1qq
    12	qq111112313121
[root@hiszm dir1]# tac  b
    12	qq111112313121
    11	q1qq
    10	qq123
     9	qq
     8	q123
     7	q
     6	q1
     5	q123
     4	q
     3	q
     2	q123123
     1	q5555
[root@hiszm dir1]# 

more

语法

more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames..]

参数

  • -num 一次显示的行数
  • -d 提示使用者,在画面下方显示 [Press space to continue, 'q' to quit.] ,如果使用者按错键,则会显示 [Press 'h' for instructions.] 而不是 '哔' 声
  • -l 取消遇见特殊字元 ^L(送纸字元)时会暂停的功能
  • -f 计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上)
  • -p 不以卷动的方式显示每一页,而是先清除萤幕后再显示内容
  • -c 跟 -p 相似,不同的是先显示内容再清除其他旧资料
  • -s 当遇到有连续两行以上的空白行,就代换为一行的空白行
  • -u 不显示下引号 (根据环境变数 TERM 指定的 terminal 而有所不同)
  • +/pattern 在每个文档显示前搜寻该字串(pattern),然后从该字串之后开始显示
  • +num 从第 num 行开始显示
  • fileNames 欲显示内容的文档,可为复数个数
[root@hiszm dir1]# more a
q5555
q123123
q
q
q123
q1
q
q123
qq
qq123
q1qq
qq111112313121
[root@hiszm dir1]# 
[root@hiszm dir1]# more -5 a
q5555
q123123
q
q
q123
--More--(37%)

  • Enter 向下n行,需要定义。默认为1行
  • Ctrl+F 向下滚动一屏
  • 空格键 向下滚动一屏
  • Ctrl+B 返回上一屏
  • = 输出当前行的行号
  • :f 输出文件名和当前行的行号
  • V 调用vi编辑器
  • !命令 调用Shell,并执行命令
  • q 退出more

less

语法

less [参数] 文件 

参数说明

  • -b <缓冲区大小> 设置缓冲区的大小
  • -e 当文件显示结束后,自动离开
  • -f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件
  • -g 只标志最后搜索的关键词
  • -i 忽略搜索时的大小写
  • -m 显示类似more命令的百分比
  • -N 显示每行的行号
  • -o <文件名> 将less 输出的内容在指定文件中保存起来
  • -Q 不使用警告音
  • -s 显示连续空行为一行
  • -S 行过长时间将超出部分舍弃
  • -x <数字> 将"tab"键显示为规定的数字空格
  • /字符串:向下搜索"字符串"的功能
  • ?字符串:向上搜索"字符串"的功能
  • n:重复前一个搜索(与 / 或 ? 有关)
  • N:反向重复前一个搜索(与 / 或 ? 有关)
  • b 向上翻一页
  • d 向后翻半页
  • h 显示帮助界面
  • Q 退出less 命令
  • u 向前滚动半页
  • y 向前滚动一行
  • 空格键 滚动一页
  • 回车键 滚动一行
  • [pagedown]: 向下翻动一页
  • [pageup]: 向上翻动一页

命令格式:

head [参数] [文件]  

参数:

  • -q 隐藏文件名
  • -v 显示文件名
  • -c<数目> 显示的字节数。
  • -n<行数> 显示的行数。
[root@hiszm dir1]# head a
q5555
q123123
q
q
q123
q1
q
q123
qq
qq123
[root@hiszm dir1]# tail a
q
q
q123
q1
q
q123
qq
qq123
q1qq
qq111112313121
[root@hiszm dir1]# cat a
q5555
q123123
q
q
q123
q1
q
q123
qq
qq123
q1qq
qq111112313121
[root@hiszm dir1]# 

tail

命令格式:

tail [参数] [文件]  

参数:

  • -f 循环读取
  • -q 不显示处理信息
  • -v 显示详细的处理信息
  • -c<数目> 显示的字节数
  • -n<行数> 显示文件的尾部 n 行内容
  • --pid=PID 与-f合用,表示在进程ID,PID死掉之后结束
  • -q, --quiet, --silent 从不输出给出文件名的首部
  • -s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒
posted @ 2021-04-23 10:53  孙中明  阅读(103)  评论(0编辑  收藏  举报