Linux文件操作

head

head命令用于显示文件的前几行内容,可以通过-num参数展示文件前num行的内容。

root@ubuntu:~# ls
bb.txt cc.txt snap
root@ubuntu:~# head cc.txt
Hello
Ubuntu
add test
root@ubuntu:~# head -2 cc.txt
Hello
Ubuntu

tail

tail命令用于显示文件的后几行内容,可以通过-num参数展示文件后num行的内容。

root@ubuntu:~# tail cc.txt
Hello
Ubuntu
add test
root@ubuntu:~# tail -2 cc.txt
Ubuntu
add test

more

如果一个文件的内容过多,需要分成好几页显示的时候,就可以使用more命令,默认会显示第一页的内容,可以通过enter键查看下一行,空格键查看下一页,b查看上一页,q键退出查看。

cp

cp命令用于复制文件或者文件夹,复制的同时也可以进行改名操作,如:cp XXX YYY表示将XXX复制为YYY,如果不需要改名,那么YYY只需要写到具体路径即可,XXXYYY可以是文件名也可以是一个路径。

将文件1.txt复制为2.txt

root@ubuntu:~# ls
1.txt snap
root@ubuntu:~# cp 1.txt 2.txt
root@ubuntu:~# ls
1.txt 2.txt snap

将文件1.txt复制到Music文件夹下且不重命名,这是只需要写具体路径Music/即可:

root@ubuntu:~# ls
1.txt Music snap
root@ubuntu:~# cp 1.txt Music/
root@ubuntu:~# cd Music/
root@ubuntu:~/Music# ls
1.txt

将文件1.txt复制到Music文件夹下同时重命名为2.txt

root@ubuntu:~# ls
1.txt Music snap
root@ubuntu:~# cp 1.txt ./Music/2.txt
root@ubuntu:~# cd Music/
root@ubuntu:~/Music# ls
2.txt

mv

mv命令用于移动文件,mv XXX YYY表示将XXX移动到YYY,这里的移动类似于windows下的剪切操作,XXXYYY和上面的cp操作一样可以是路径也可以是文件名,如果是路径则表示,将XXX路径下的文件移动到YYY路径下,这里将/root目录下的文件1.txt移动到Music目录下且不重命名:

root@ubuntu:~# pwd
/root
root@ubuntu:~# ls
1.txt Music snap
root@ubuntu:~# mv 1.txt Music/
root@ubuntu:~# ls
Music snap
root@ubuntu:~# cd Music/
root@ubuntu:~/Music# ls
1.txt

/root目录下的文件1.txt移动到Music目录下且重命名为2.txt

root@ubuntu:~# pwd
/root
root@ubuntu:~# ls
1.txt Music snap
root@ubuntu:~# mv 1.txt Music/2.txt
root@ubuntu:~# cd Music/
root@ubuntu:~/Music# ls
2.txt

除此之外,mv还可以实现文件重命名的效果,只需要将当前路径下的文件移动到当前文件夹下并重命名就可以实现:

root@ubuntu:~# ls
1.txt Music snap
root@ubuntu:~# mv 1.txt 3.txt
root@ubuntu:~# ls
3.txt Music snap

tar

tar命令用于打包文件。

常用的两个命令分为两组:

(1) tar -zcvftar -zxvf

tar -zcvf用于将文件打成tar包并压缩为.gz文件。

tar -zxvf用于对打包后的压缩包文件进行解压。

  • 参数详解:

    z参数用于表示使用gzip格式压缩或者解压一个文件

    c参数用于创建一个压缩文件

    v参数用于显示压缩或者解压的详细过程

    f参数用于指定压缩或者解压的文件名

(2) tar -jcvftar -jxvf

这一组命令与上一组命令唯一不同的地方在于这里使用的参数是jj参数是指压缩或者解压的格式是bzip2格式。

两组命令的使用场景:

(1)如果压缩文件是以.tar.gz结尾使用tar -zxvf命令进行解压。

(2)如果压缩文件是以.tar.bz2结尾使用tar -jxvf命令进行解压。

如果想将文件解压到指定的目录下可以再添加-C参数。

文件检索

find

find命令用于按照指定的条件查找文件,一般使用格式为find 查找路径 [可选参数] 查找文件

可选参数:

-name指定需要查找的文件名。

-size匹配指定文件大小的文件,比如查找大于100KB的文件使用参数+100,小于100KB的文件使用参数为-100

在当前目录下查找文件名为4.txt的文件,如果存在则会显示文件名,不存在则不显示:

root@ubuntu:~# ls
1.txt 2.txt 3.txt 4.txt Music snap
root@ubuntu:~# find . -name "4.txt"
./4.txt
root@ubuntu:~# find . -name "5.txt"
root@ubuntu:~#

grep

grep命令用于在某个文本中使用关键词进行搜索,一般使用格式为find [可选参数] 目标文本 查找的文件名

可选参数:

-n用于显示查找到的文本在文件的第几行。

root@ubuntu:~# cat 1.txt
aaaaaaaaa
bbbbbbbb
ccccccc
dddddd
eeeee
ffff
ggg
hh
i
root@ubuntu:~# grep ddd 1.txt
dddddd
root@ubuntu:~# grep -n ddd 1.txt
4:dddddd

wc

wc命令用于统计文件中的行数或者单词数,命令分别为wc -l 文件名wc -w 文件名

root@ubuntu:~# cat 1.txt
first line
second line
aaaa
bbbb
ddd
ff
root@ubuntu:~# wc -l 1.txt
6 1.txt
root@ubuntu:~# wc -w 1.txt
8 1.txt

tree

tree命令用于以树状图的方式展示指定目录下的文件结构,命令格式为tree 指定目录

使用此命令前需要先进行安装,我这里使用的是Ubuntu 20,所以使用的命令是sudo apt-get install tree,如果是Centos则可以使用yum install tree命令进行安装。

root@ubuntu:~# pwd
/root
root@ubuntu:~# tree
.
├── 1.txt
├── 2.txt
├── 3.txt
├── 4.txt
├── Music
└── snap
└── firefox
├── 1540
├── 1747
├── common
└── current -> 1747 7 directories, 4 files

Linux文件权限

chmod

在说文件权限之前,先介绍一下Linux下关于文件的一些知识:

root@ubuntu:~# ll
total 48
drwx------ 6 root root 4096 Aug 29 15:29 ./
drwxr-xr-x 19 root root 4096 Jul 18 21:50 ../
-rw------- 1 root root 76 Aug 29 10:06 .bash_history
-rw-r--r-- 1 root root 3106 Oct 15 2021 .bashrc
drwx------ 3 root root 4096 Jul 8 03:01 .cache/
-rw------- 1 root root 20 Jul 8 03:08 .lesshst
-rw-r--r-- 1 root root 161 Jul 9 2019 .profile
drwx------ 2 root root 4096 Jul 8 02:41 .ssh/
-rw------- 1 root root 2713 Aug 29 15:29 .viminfo
-rw-r--r-- 1 root root 40 Aug 29 15:29 1.txt
-rw-r--r-- 1 root root 0 Aug 29 15:22 2.txt
-rw-r--r-- 1 root root 0 Aug 29 15:06 3.txt
-rw-r--r-- 1 root root 0 Aug 29 15:22 4.txt
drwxr-xr-x 2 root root 4096 Aug 29 15:18 Music/
drwx------ 3 root root 4096 Jul 8 03:05 snap/

我们使用ll查看文件的时候,可以看到文件的详细信息,文件详细信息的第一列是文件的格式,d表示该文件是一个目录,-表示该文件是一个普通文件,c表示为串行端口设备,如键盘鼠标等。

详细信息中的第二到第四个字符是文件所有者对该文件拥有的权限,r表示读权限,通常使用数字4表示,w表示写文件,通常使用数字2表示,x表示执行权限,通常使用数字1表示,如果拥有对应权限就会有对应的字符,如果是-表示没有对应权限。

接下来的三个字符是当前用户所在组对该文件拥有的权限,再接着的三个字符是其他用户对该文件的权限。

这时我们想对文件的权限进行修改时就可以通过chmod命令加上需要修改的权限对应的数字组合进行修改,比如我想修改4.txt的属性为只允许我自己拥有读写权限,其余人没有任何权限,就可以使用chomd 600 文件名,600中的64+2得来,即读权限+写权限,6对应的是前三个字符当前用户的权限,第二个0对应的是当前用户所属组的权限,第三个0对应的是其他用户对于这个文件的权限。

root@ubuntu:~/Music# ll
total 12
drwxr-xr-x 2 root root 4096 Aug 29 15:37 ./
drwx------ 6 root root 4096 Aug 29 15:37 ../
-rw-r--r-- 1 root root 40 Aug 29 15:29 1.txt
-rw-r--r-- 1 root root 0 Aug 29 15:22 2.txt
-rw-r--r-- 1 root root 0 Aug 29 15:06 3.txt
-rw-r--r-- 1 root root 0 Aug 29 15:22 4.txt
root@ubuntu:~/Music# chmod 600 4.txt
root@ubuntu:~/Music# ll
total 12
drwxr-xr-x 2 root root 4096 Aug 29 15:37 ./
drwx------ 6 root root 4096 Aug 29 15:37 ../
-rw-r--r-- 1 root root 40 Aug 29 15:29 1.txt
-rw-r--r-- 1 root root 0 Aug 29 15:22 2.txt
-rw-r--r-- 1 root root 0 Aug 29 15:06 3.txt
-rw------- 1 root root 0 Aug 29 15:22 4.txt

Linux快速入门(三)Linux文件管理的更多相关文章

  1. Linux快速入门教程-进程管理ipcs命令学习

    使用Linux系统必备的技能之一就是Linux进程管理,系统运行的过程正是无数进程在运行的过程.这些进程的运行需要占用系统的内存等资源,做好系统进程的管理,对于我们合理分配.使用系统资源有非常大的意义 ...

  2. Linux快速入门打开你的学习之道

    Linux快速入门打开你的学习之道 相信看到这篇文章的你一定是想要学习Linux,或者已经在学习Linux的人了,那我们就可以一起探讨一下,学习Linux如何快速入门呢? 首先,希望大家弄清楚自己为什 ...

  3. Linux快速入门01-基础概念

    4年多前,刚到上海时报过一个关于Oracle的培训班,在那里接触到了Linux,不过一直都没真正去试着使用它.现在经过慢慢的成长,越来越觉得,Linux是每一个服务端工程师必须掌握的系统,即使是现在最 ...

  4. Linux快速入门02-文件系统管理

    继续进入Linux文件系统的学习,加油,早日突破MS压在自己身上的那道束缚. Linux系列文章 快速入门系列--Linux--01基础概念 快速入门系列--Linux--02文件系统管理 快速入门系 ...

  5. Linux快速入门03-系统管理

    这部分将涉及常用的各类linux命令和一些系统高级管理特性,尤其是shell script的创建,这部分在系统自动化运维时会很有作用. Linux系列文章 快速入门系列--Linux--01基础概念 ...

  6. Linux快速入门04-扩展知识

    这部分是快速学习的最后一部分知识,其中最重要的内容就是源码的打包和软件的安装的学习,由于个人的Linux学习目的就是自己能在阿里云Ubuntu上搭建一个简单的nodejs发布环境. Linux系列文章 ...

  7. NOI Linux 快速入门指南

    目录 关于安装 NOI Linux 系统配置 网络 输入法 编辑器 1. gedit 打开 配置 外观展示 2. vim 打开 配置 使用 makefile 编译运行 1. 编写 makefile 2 ...

  8. Linux Bash Shell快速入门 (三)

    forfor 循环结构与 C 语言中有所不同,在 BASH 中 for 循环的基本结构是: for $var in dostatmentsdone 其中 $var 是循环控制变量, 是 $var 需要 ...

  9. linux快速入门 1.1命令行操作

    http://lovesoo.org/linux-command-line-operation.html 1.1命令行操作 目录: <wp_nokeywordlink>Shell简介 &l ...

  10. Linux快速入门

    一.Linux介绍 1.Linux是基于Unix的开源免费的操作系统 2.Linux的分类: (1)Linux根据市场需求不同,基本分为两个方向: 1)图形化界面版:注重用户体验,类似window操作 ...

随机推荐

  1. NC20277 [SCOI2010]字符串

    题目链接 题目 题目描述 lxhgww最近接到了一个生成字符串的任务,任务需要他把n个1和m个0组成字符串,但是任务还要求在组成的字符串中,在任意的前k个字符中,1的个数不能少于0的个数.现在lxhg ...

  2. NC15976 小C的周末

    题目链接 题目 题目描述 愉快的周末到了,小C和他的N-1个朋友买了M个游戏,游戏编号从1~M.每个游戏都是多人游戏,他们打算周末一起打游戏. 小C的每个朋友都决定好了要玩哪一款游戏(会有一组人打同一 ...

  3. 深入 Nginx 之架构篇[转]

    前言 最近在读 Nginx 相关的书籍,做一下读书笔记. Nginx 作为业界知名的高性能服务器,被广泛的应用.它的高性能正是由于其优秀的架构设计,其架构主要包括这几点:模块化设计.事件驱动架构.请求 ...

  4. Kafdrop

    Kafdrop 是一个用于查看 Kafka 主题和浏览消费者组的 Web UI docker run -d --rm -p 9000:9000 \ -e KAFKA_BROKERCONNECT=hos ...

  5. 从零开始手写 redis(四)监听器的实现

    前言 java从零手写实现redis(一)如何实现固定大小的缓存? java从零手写实现redis(三)redis expire 过期原理 java从零手写实现redis(三)内存数据如何重启不丢失? ...

  6. oracle sqlplus命令详解(官方示例)

    以为内容选自Oracle官方文档,只讲command-line: 规范:<变量名> , {举例} , a | b 枚举可选值,(XX)描述 ------------------------ ...

  7. 《深入理解Java虚拟机》(七) volatile 变量

    目录 概述 一.内存模型 物理机内存模型 Java内存模型 Java内存模型中有如下的规定: 操作 二.Volatile变量 volatile修改变量后保证所有线程对其可见性 volatile禁止指令 ...

  8. Youpk 脱壳机脱壳原理分析

    Youpk 是一个针对整体加固和Dex抽取加固壳的脱壳机 主要是基于虚拟机的,也就是基于VA的脱壳机, 相对FART出来的更晚一些, 厂商针对少一些, 脱壳位置相对更底层一些,还提供了Dex修复的工具 ...

  9. 一秒出图?SDXL-Turbo实时AI绘画整合包下载

    SDXL Turbo是一种快速生成的AI构图模型,它基于一种称为对抗性扩散蒸馏的新训练方法,该方法允许在1到4个步骤中以高图像质量对大规模基础图像扩散模型进行采样,并将其与对抗性损失相结合,以确保即使 ...

  10. MySQL的随机排序(random orderby)

    MySQL的随机排序(random orderby)是指在查询数据库时,将结果集以随机的方式排列.这种排序方式可以用于有趣的应用场景,例如实现随机音乐播放.广告推荐等. 要实现MySQL的随机排序,可 ...