Linux操作系统常用指令大全:文件操作篇

Linux操作系统指令

上篇:Linux操作系统指令(一) 系统管理篇

mkdir命令

语法: mkdir [选项] dirname…
功能:在当前目录下创建一个名为 “dirname”的目录
常用选项:

-p, --parents **可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录; ****

举例:

mkdir –p test/test1 : 递归建立多个目录  

rmdir命令 && rm 命令

rmdir是一个与mkdir相对应的命令。 mkdir是建立目录,而rmdir是删除命令。

  • 语法:
 rmdir [-p] [dirPath]
  • 适用对象:具有当前目录操作权限的所有使用者

  • 功能:删除空目录

  • 常用选项:

    • -p 当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除。

rm命令可以同时删除文件或目录

  • 语法:

     rm [-f-i-r-v] [dirName/dir]
    

    参数信息:

    • -f 即使文件属性为只读,也直接删除
    • -i 删除前逐一询问确认
    • -r 删除目录及其下所有文件
  • 适用对象:所有使用者

  • 功能:删除文件或目录

cp命令

此cp非彼cp!!owo

语法: cp [选项] 源文件或目录 目标文件或目录

功能: 复制文件或目录

说明: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息。

常用选项:

  • -f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在
  • -i 或 --interactive 覆盖文件之前先询问用户
  • -r递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
  • -R 或 --recursive递归处理,将指定目录下的文件及子目录一并处理

举例:

# 拷贝文件

cp test.c new.c # 在当前文件夹拷贝生成一个new.c文件

cp test.c … # 在上级目录拷贝生成一个test.c文件

cp test.c …/new.c # 在上级目录拷贝生成一个new.c文件

# 拷贝文件夹

cp -r test new # 拷贝当前目录下的test文件夹到new文件夹内,如果源文件夹的文件不属于用户则提示

cp -rf test new # 拷贝当前目录下的test文件夹到new文件夹内,并忽略用户所属

mv命令

mv命令是move的缩写,可以用来移动(剪切)文件或者将文件重命名。

语法: mv [选项] 源文件或目录 目标文件或目录

功能:

  1. 视mv命令中第二个参数类型的不同(是目标文件还是目标目录), mv命令将文件重命名或将其移至一个新的目录中。
  2. 当第二个参数类型是文件时, mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。
  3. 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个, mv命令将各参数指定的源文件均移至目标目录中。

常用选项:

  • -f : force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
  • -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖

举例:

mv test.c newFolder/ # 移动test.c文件到newFolder内

mv test newFolder # 移动test文件夹,到newFolder文件夹内。

mv test.c newName.c # 重命名test.c文件名称为newName.c

cat命令

功能: 正序查看目标文件的内容,且输出末尾是文本的结尾。

语法: cat [选项] [文件]

其中:

  • -b 对非空输出行编号
  • -n 对输出的所有行编号
  • -s 不输出多行空行

扩展:逆序查看目标文件内容

tac [选项] [文件] (名字都是倒过来的)

more命令

语法: more [选项][文件]
功能: more命令,功能类似 cat,但它是从开头开始查看逐渐下翻,并支持一次查看n行,但不支持上翻
常用选项:

  • -n 对输出的所有行编号
  • q 退出more

举例:

more test.c # 从开头开始阅读test.c文件,并加载屏幕所能到达的最大行数,按回车每次加载1行

more -5 test.c # 从开头开始阅读test.c文件,一次阅读5行,看完按回车行数+5

#跳过查看

more -5 test.c # 规定行数,否则就会加载最大行

/100

# 从开始看,看的过程输入/100可以直接翻阅到第100行,如果超过文件行数则提示错误。

less命令

功能:less与more类似,但使用less可以随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前不会加载整个文件

语法: less [参数] 文件

参数:

  • -i 忽略搜索时的大小写
  • -N 显示每行的行号
  • /字符串:向下搜索“字符串”的功能
  • ?字符串:向上搜索“字符串”的功能
  • n:重复前一个搜索(与 / 或 ? 有关)
  • N:反向重复前一个搜索(与 / 或 ? 有关)
  • q:quit

head命令

它是用来显示开头或结尾某个数量的文字区块, head 用来显示文件的开头至标准输出中

语法: head [参数]… [文件]…
功能:head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。
选项:

-n<行数> 显示的行数

举例:

head -5 test.c #输出test.c文件内的前5行内容(到标准输出内,说人话:输出到屏幕)

tail命令

head 与 tail 就像它的名字一样的浅显易懂,head 用来显示文件的开头至标准输出中,而 tail 就是看文件的结尾。tail 命令从指定点开始将文件写到标准输出(默认为后10行)。

语法: tail[必要参数][选择参数][文件]

功能: 用于显示指定文件末尾内容。不指定文件时,作为输入信息进行处理。常用查看日志文件。

参数:

  • f 循环读取
  • -n<行数> 显示行数。

使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容。

扩展:如何区间读取?

学习了4种读取方式,现在我们来尝试一下如何读取区间内的数据。

扩展知识点:

在Linux中,echo命令是输出内容到标准输出内,例如:

echo "Hello World"		
# output:
[root@]# echo "Hello World"
Hello World

echo 	
# output:
[root@]# echo 
...(空行)

这个时候我们默认将双引号内的字符串输入到标准输出中(屏幕),但如果我们需要将内容输出到某个文件内呢?很简单,这个时候我们引入了“输出重定向”。

echo "Hello World" > log.txt
# 这句话的意思是,将输出的内容,输出重定向流入log.txt文件内,不再流入标准输出器内(此刻的流是在语言层面上帮助理解,但不能认为操作系统该操作为“流”!!)
# 此时,我们会把Hello World文字输出到当前目录内的log.txt文件内,如果有当前文件则直接覆写,如果没有则创建之。

# 如果我们不想覆写写入文档内,那么我们只需要多加一个尖括号
echo "Hello World" >> log.txt
# 此时内容不再是覆写,而是“追加重定向”在文档尾部

前面我们谈到的cat可以从文件内读取信息到标准输出内,那如果我们不指定文件名是,例如这样:

cat
# 此时,我们系统会从我们的标准输入内读取信息(说人话:键盘,例如C/C++里的scanf, cin)

那刚刚上面我们能输出重定向,那现在我们能不能输出重定向呢?答案是可以的。

cat < test.c
# 此时,test.c的内容会直接流入cat内

有没有一种方法,是将内容临时存储并流入下一个单元内。很简单,我们可以利用“管道”。

cat file.txt | head -10
# 中间的 | 就是管道的意思。
# 这里的意思是,cat读取file.txt内的内容,并将内容通过管道 | 放入head 里,最后head在将其进行 -10 操作
# 系统像流水线一样将内容逐个处理完流入到最后一个处理单元内。
# 小tips: 使用管道时,默认隐式发生重定向!

现在基础补充完了,我们现在来圆规正转,如何读取区间内容。此时我们模拟读取一个文件内的80-100行内容;

  • 方法一:输出重定向到临时文件内,最后再读取临时文件

    head -100 file.txt > temp.txt		# 从头开始读100行,并重定向到temp.txt内
    tail -20 temp.txt					# 读取temp.txt内后20行内容
    
  • 方法二:利用管道,不使用临时文件。

    #方式一
    cat file.txt | head -100 | tail -20
    # 1. 先读取file.txt,流入管道
    # 2. head从管道内进行-100
    # 3. tail从管道内进行-20
    #方式二
    head -100 file.txt | tail -20
    

    灵魂画师:

    image-20220729020608459

结语

后续我们还会继续更新Linux操作系统相关笔记,如果你喜欢我们的文章一键三连哦,后续最新文章别忘了关注我们的公众号​“01编程小屋” 抢先阅读哦!关注小屋,学习编程不迷路。你的​支持就是我们坚持做下去的动力!

猜你喜欢

转载自blog.csdn.net/weixin_43654363/article/details/126415918