Linux文件与目录操作基础常用命令

一、文件与目录操作基础常用命令

1.查看文件情况

ls

  • Is:显示文件或目录

  • ls -l:列出文件详细信息

  • ls -a:列出隐藏文件和目录

  • ls -lh:以人类可读的格式显示文件大小

  • ls -F:区分Linux中的目录和文件

  • ls -lr:按字母顺序对文件和目录进行排序

  • ls -X:按字母顺序对文件扩展名进行排序

  • ls -R:递归列出文件

  • ls -ltr:按修改时间倒序显示文件

  • ls -tl:按时间和日期对文件进行排序

  • ls -lS:按降序显示文件大小

  • ls -i:显示文件和目录的 inode 编号

  • ls -m:逐个列出目录内容,并用逗号分隔

  • ls -Q:列出目录内容,所有目录内容都用双引号括起来

  • ls -g:在长列表格式中省略组所有权

  • ls *.文件类型: 列出特定文件类型

  • ls -n:列出文件的UID和GID

  • ls -l /tmp:列出目录 /tmp 下的文件

    #创建 ls 命令别名
    alias ls="ls -l"
    #删除先前定义的别名
    unalias ls
    

2.查看文件内容

cat

基本语法:

$ # 输出 FILE 文件的全部内容
$ cat [OPTION] FILE

[!IMPORTANT]

  • 输出 file.txt 的全部内容

    $ cat file.txt
    
  • 查看 test1.txt 与 test2.txt 连接后的内容

    $ cat test1.txt test2.txt
    

[!note]

cat 是 concatenate(连接)的缩写,cat 工具实际的功能是连接多个文件,然后输出。当只有一个文件的时候,cat 就会直接输出这个文件,

less

less 命令用于查看文件内容。它可以显示大型文本文件,并允许用户在文件中上下翻页、搜索和跳转等操作。相比于使用 cat 命令直接输出文件内容,less 提供了更好的交互体验和更多的功能选项。

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

  • ctrl + B - 向后移动一屏

  • ctrl + D - 向前移动半屏

  • ctrl + U - 向后移动半屏

  • j - 下一行

  • k - 上一行

  • G - 移动到最后一行

  • g - 移动到第一行

  • q - 退出 less 命令

  • v - 使用配置的编辑器编辑当前文件

  • h - 显示 less 的帮助文档

  • &pattern - 仅显示匹配模式的行,而不是整个文件

    示例
    1. 查看文本文件

      $ less /path/to/file
      $ #/path/to/file是要查看的文本文件的路径。
      
    2. 显示行号

      $ less -n /path/to/file
      $ # -n表示显示行号。
      
    3. 搜索文本

      $ # 使用/或?命令来搜索文本。
      $ 
      $ / hello
      $ # /表示正向搜索,?表示反向搜索。按n键可以跳转到下一个匹配  项,按N键可以跳转到上一个匹配项。
      
    4. 标记文本

      $ # 使用m命令来标记文本的某一行
      $ 
      $ m 10
      $ # m表示标记,10表示要标记的行号。
      

      标记之后,可以使用’命令来跳转到标记的行

      $ ' a
      $ # '表示跳转到标记,a表示标记的名称。
      

3.创建目录

mkdir

$ # 创建一个目录,名为 DIR_NAME
$ mkdir [OPTION] DIR_NAME...
mkdir创建一个空目录
mkdir -p如果中间目录不存在,则创建;如果要创建的目录已经存在,则不报错
mkdir -v每次创建新目录都显示信息

4.创建文件

touch

$ # 创建一个文件,名为 FILE_NAME
$ touch FILE_NAME...

5.编辑文件

vim编辑器

1>vim的三种模式

命令模式:不能对文件直接编辑,只能通过快捷键进行一些操作(如移动光标、复制、粘贴等),打开vim后默认进入命令模式;

末行模式:可在末行输入一些命令对文件进行操作(如搜索、替换、保存、退出、高亮等);

编辑模式:可对文件内容进行编辑;

2>vim的进入和退出
进入

基本语法:

$ vim  文件名称

如果文件已存在,则直接打开;

如果文件不存在,则vim编辑器会自动在内存中创建一个新文件

其他语法:

1:vim +数字 文件路径 //打开指定文件并将光标移动到指定行(数字对应的行数)

2:vim +/关键词 文件路径 //打开指定文件并高亮显示关键词

3:vim 文件路径1 文件路径2 文件路径3 //可同时打开多个文件,文件之间可切换操作

vim +10 test.txt
vim +/fofowall test.txt
vim test1.txt test2.txt
退出

:q //键盘输入英文:号进入末行模式,输入字母q再回车

3>vim模式切换
1.切换到命令模式

​ 用vim指令打开文件时默认为命令模式;

​ 按一下键盘ESC键可从编辑模式切换到命令模式;

​ 按一下或连按两下ESC键或用键盘删除末行模式下的英文符号:可从末行模式切换到命令模式

2.切换到编辑模式

​ 命令模式下键盘输入字母i或a(还有其他字母也可以这两个比较常用)可切换到编辑模式以编辑

3.切换到末行模式

​ 命令模式下键盘输入英文符号:可切换到末行模式;

[!注意]

vim刚打开文件时默认为命令模式,命令模式可切换到末行模式或编辑模式,但末行模式与编辑模式之间不能直接相互切换;

4>命令模式
1.光标移动
  • ^ **//**光标移动到光标所在行的行首
  • $ **//**光标移动到光标所在行的行尾
  • gg **//**光标移动到文件的首行
  • G **//**光标移动到文件的尾行
  • ctrl+b **//**向上翻屏
  • ctrl+f **//**向下翻屏
  • 数字G **//**光标移动到指定行(数字对应的行数)
  • 数字+键盘方向键上**/**下 **//光标以光标所在行为准向上/**下移动指定行(对应的数字)
  • 数字+键盘方向键左**/**右 **//光标以光标所在位置为准向左/**右移动指定个字符(对应的数字)
  • :数字 **//**键盘输入英文符号:+数字再回车,光标移动到指定行(末行模式)
2.剪切和删除
  • dd **//**剪切光标所在行,光标所在行的下面行会上移填补剪切行
  • 数字dd **//**输入数字+字母dd,从光标所在行起向下剪切指定行,后面行会上移填补剪切部分
  • D **//**剪切光标所在行但后面行不会上移填补剪切行,剪切行变空
3.复制和粘贴
  • yy **//**复制光标所在行
  • 数字yy **//**从光标所在行开始向下复制指定行,包括了光标所在行
  • ctrl+v **//**键盘ctrl+v进入可视化复制,用键盘的方向键控制复制区域,然后键盘输入字母yy即可完成复制
  • p **//**在光标处粘贴复制的内容
4.撤销和恢复
  • :u **//**键盘输入符号:和字母u再回车(末行模式),撤销上一步操作
  • ctrl+r **//**取消之前的撤销操作
5>末行模式
1.保存
  • :w **//**键盘输入英文符号:+字母w再回车,保存当前文件
  • :w 文件路径 **//**键盘输入英文符号:+字母w+空格+文件路径再回车,另存为指定文件
2.退出
  • :q **//**退出当前文件
  • :wq **//**键盘输入英文符号:+字母wq再回车,保存当前文件并退出
  • :q! **//**键盘输入英文符号:+字母q+英文符号!再回车,不保存对文件的修改并退出
3.外部命令
  • :q外部命令 **//**键盘输入英文符号:+字母q+外部命令再回车,外部命令如 ls 命令等,不退出文件的同时执行外部命令,执行后按任意键可以切换回文件
4.显示行号
  • :set nu **//**显示文件每行的行号,显示行号是暂时的下次打开该文件不会再显示
  • :set nonu **//**取消行号显示
5.搜索
  • /关键词 **//**按关键词查找,查找到的内容会被高亮显示
  • N**/**n **//光标移动到上/**下一个查找到的内容(命令模式)
  • :nohl **//**取消查找到的内容的高亮显示,若不取消内容会一直高亮显示
6.替换
  • 😒/搜索的内容/新内容 //用新内容替换光标所在行第一处被搜索到的内容
  • 😒/搜索的内容/新内容/g //用新内容替换光标所在行全部被搜索到的内容
  • :%s/搜索的内容/新内容 //用新内容替换整个文件每一行第一处被搜索到的内容
  • :%s/搜索的内容/新内容/g //用新内容替换整个文件全部被搜索到的内容
7.切换文件
  • :files **//**查看同时打开的所有文件的名称

在这里插入图片描述

%a表示它对应的文件是当前操作的文件,

#表示它对应的文件是上一个操作的文件,

  • :open 文件名 **//**切换到其他打开的文件进行操作
  • :bn **//**切换到下一个打开的文件
  • :bp **//**切换到上一个操作的文件
6>编辑模式

命令模式下键盘输入以下字母可进入编辑模式进行对应的操作:

选项含义
i在光标所在字符前开始插入
a在光标所在字符前开始插入
o在光标所在行的下面另起一行开始插入
I在光标所在行的行首开始插入,若行首有空格则在空格后插入
A在光标所在行的行尾开始插入
O在光标所在行的上面另起一行开始插入
S删除光标所在行并开始插入

退出编辑模式键盘按ESC键

7>其他
  • syntax on/off **//**开启/关闭代码着色

  • set nu/nonu **//**显示/不显示行号

配置分类:

临时配置:在末行模式下输入配置,此配置是暂时的,下次打开文件时不会生效;

个人配置:个人配置文件路径是~/.vimrc,即当前用户家目录下的隐藏文件.vimrc,此配置只对当前用户永久生效,若不存在.vimrc文件可自行创建编辑加入vim配置;

全局配置:全局配置文件路是/etc/vim/vimrc,此配置对所有用户永久生效,可编辑全局配置文件加入vim配置;

优先级:对于同一配置项,当个人配置存在此配置项时遵循个人配置,否则遵循全局配置;

  • :x **//**文件未被修改直接退出,文件被修改过保存并退出

:x和:wq的区别

​ 使用:wq,文件的修改时间一定会改变;

​ 使用:x,在文件未被修改的情况下,并不会改变文件的修改时间;

注意:一般不要使用 X ,X是给文件进行加密操作

vim 中计算器的使用

1.进入编辑模式

2.按下按键 “ctrl + R” ,然后输入 “ = ” ,此时光标变道最后一行

3.输入需要计算的内容,按下回车

异常退出

在编辑文件之后没有正常的去 wq (保存退出),而是遇到突然关闭终端或者断点的情况,则会显示:

在这里插入图片描述

解决办法:将交换文件(在编译过程中产生的临时文件)删除掉即可

  • rm -f passwd.swp

6.复制文件、文件夹

cp

$ # 将 SOURCE 文件拷贝到 DEST 文件,拷贝得到的文件即为 DEST
$ cp [OPTION] SOURCE DEST

$ # 将 SOURCE 文件拷贝到 DIRECTORY 目录下,SOURCE 可以为不止一个文件
$ cp [OPTION] SOURCE... DIRECTORY
常用选项含义
-r,-R,–recursive递归复制,常用于复制目录
-f, --force覆盖目标地址同名文件
-u, --update仅当源文件比目标文件新才进行复制
-l,–link创建硬链接
-s, --symbolic-link创建软链接

示例:

file1.txt 复制一份到同目录,命名为 file2.txt

$ cp file1.txt file2.txt

file1.txtfile2.txt 文件复制到同目录下的 file 目录中

$ cp file1.txt file2.txt ./file/

file 文件夹及其所有子文件复制到同目录下的 test 文件夹中

$ cp -r dir1 ./test/

7.移动文件和目录

$ # 将 SOURCE 文件移动到 DEST 文件
$ mv [OPTION] SOURCE DEST

$ # 将 SOURCE 文件移动到 DIRECTORY 目录下,SOURCE 可以为多个文件
$ mv [OPTION] SOURCE... DIRECTORY
常用选项含义
-f,–force覆盖目标地址同名文件
-u,–update仅当源文件比目标文件新才进行移动

8.删除文件和目录

$ # 删除 FILE 文件,FILE 可以为多个文件。
$ # 如果需要删除目录,需要通过 -r 选项递归删除目录
$ rm [OPTION] FILE...
常用选项含义
-f,–force无视不存在或者没有权限的文件和参数
-r,-R,–recursive递归删除目录及其子文件
-d, --dir删除空目录

示例:

删除 file1.txt 文件:

$ rm file1.txt

删除 test 目录及其下的所有文件:

$ rm -r test/

删除 test1/test2/file1.txt 这些文件、目录。其中,这些文件或者目录可能不存在、写保护或者没有权限读写:

$ rm -rf test1/ test2/ file1.txt

9.搜索文件和目录

$ # 在 PATH(路径)中根据 EXPRESSION(表达式)搜索文件
$ find [OPTION] PATH [EXPRESSION]
常用选项含义
-name ‘*.ext’文件名后缀为 ext。其中 * 是任意匹配符
-type f/d/l/p/s/c/b查找指定文件类型的文件
-size +1M大于 1M 的文件,+ 代表大于这个大小,对应地,- 代表小于之后的大小
-or或运算符,代表它前后两个条件满足一个即可
find -maxdepth 【数字】查找指定最大深度的文件
-maxdepth 【数字】-name 【文件名】查找指定最大深度的指定文件

注:(f:普通文件、d:文件夹、l:链接文件、p:管道文件、s: 槽、c:字符设备文件、b:块设备文件)

示例:

当前目录搜索名为 report.pdf 的文件:

$ find . -name 'report.pdf'

全盘搜索大于 1G 的文件:

$ find / -size +1G

用户目录搜索所有名为 node_modules 的文件夹:

$ find ~/ -name 'node_modules' -type d

10.统计文件大小

操作含义
wc统计文本中行数、字数、字符数
wc -l将每个文件的行数及文件名输出到屏幕上
wc -c统计字节

11.查看文件大小

$ #查看FILE文件大小
$ du [OPTION] FILE
选项含义
-a-all,显示目录中个别文件的大小
-b-bytes,显示目录或文件大小时,以byte为单位
-c-total,除了显示个别目录或文件的大小外,同花也显示所有文件或目录的总和
-k-kilobytes,以KB(1024bytes)为单位输出。
-m–megabytes ,以MB为单位输出。
-s-summarize,仅显示总计,只列出最后加总的值。
-hhuman-readable, 以K,M,G为单位,提高信息的可读性。

二、文件权限设置:chmod

Linux的基本权限有9个,分别是owner、group、others三种身份有各自的r(读)、w(写)、x(可执行)权限。

1、归属(所有权)
属主(owener):拥有该文件或目录的用户 --user – u

数组(group):拥有改文件或目录的组账号 --group – g

其他人(others):除了属主和数组的其他人 --others – o

2、访问权限
可读(read):允许查看文件内容,显示目录列表 -r —4

可写(write):允许修改文件内容,-w —2

vim 重定向,允许在目录中,可以在目录中创建、移动、删除文件或者子目录 -w

—mkdir 、touch 、rm 、vim 、mv、cp

可执行(execute):允许运行程序,切换目录 (cd) -x —1

  • 可以使用数字表示权限:

r->4

w->2

x->1

  • 当文件权限为“rwxrwxrwx”时,权限数字是:777

owner->4+2+1=7

group->4+2+1=7

others->4+2+1=7

3、给文件赋予权限的指令

$ chmod [权限数字] [文件名]

例如:给file文件授予可读可写可执行的权限:

$ chmod 777 file

2、owner、group和others三种身份各自的三个权限,用u、g、o代表三种身份,用a(all)代表所有身份,命令为:其中的权限为r|w|x。格式为:

设置权限:chmod u|g|o|a = 【设置权限】文件或目录

+添加权限:chmod u|g|o|a = +【添加权限】文件或目录

-减少权限:chmod u|g|o|a = -【减少权限】 文件或者目录

3、例如给文件的属主设置可读可写的权限:

$ chmod u=rwx file

三、 tar 操作存档、压缩文件

经常,我们希望将许多文件打包然后发送给其他人,这时候就会用到 tar 这个命令,作为一个存档工具,它可以将许多文件打包为一个存档文件。

通常,可以使用其自带的 gzip 或 bzip2 算法进行压缩,生成压缩文件:

$ tar [OPTIONS] FILE...
选项含义
-A将一个存档文件中的内容追加到另一个存档文件中
-r将一些文件追加到一个存档文件中
-c从一些文件创建存档文件
-t列出一个存档文件的内容
-v在打包、压缩或解压缩过程中显示详细信息
-x从存档文件中提取出文件
-f使用指定的存档文件
-C指定输出的目录
-z使用 gzip 算法处理存档文件
-j使用 bzip2 算法处理存档文件
-J使用 xz 算法处理存档文件
  • file1file2file3 打包为 target.tar
$ tar -c -f target.tar file1 file2 file3
  • target.tar 中的文件提取到 test 目录中:
$ tar -x -f target.tar -C test/
  • file1file2file3 打包,并使用 gzip 算法压缩,得到压缩文件 target.tar.gz
$ tar -cz -f target.tar.gz file1 file2 file3
  • 将压缩文件 target.tar.gz 解压到 test 目录中:
$ tar -xz -f target.tar.gz -C test/
  • archive1.tararchive2.tararchive3.tar 三个存档文件中的文件追加到 archive.tar
$ tar -Af archive.tar archive1.tar archive2.tar archive3.tar
  • 列出 target.tar 存档文件中的内容
$ tar -t -f target.tar

$ # 打印出文件的详细信息
$ tar -tv -f target.tar

注意:

组合 tar 的选项

与大部分 Linux 命令相同,tar 命令允许将多个单字母(使用单个 - 符号的)选项组合为一个参数,便于用户输入。例如,以下命令是等价的:

$ tar -c -z -v -f target.tar test/
$ tar -czvf target.tar test/
$ tar -f target.tar -czv test/

四、文件数据排序:sort

sort命令可以用于文件数据排序,然后将排序结果打印出来。默认是字典序排序。

$ sort [OPTION] [FILE]
选项含义
-r倒叙排序,相反的顺序进行排序
-k(数字)指定第几列排序(后面接数字)
-n按数值进行排序
-t指定分隔符,默认是空白
-u去重
-b忽略每行前面开始出的空格字符
-c检查文件是否已经按照顺序排序
-d排序时,处理英文字母、数字及空格字符外,忽略其他的字符
-f排序时,将小写字母视为大写字母
-i排序时,除了040至176之间的ASCII字符外,忽略其他的字符
-m将几个排序号的文件进行合并
-M将前面3个字母依照月份的缩写进行排序

示例:

  • sort:对b.txt文件进行排序:cat b.txt|sort

    [root@localhost shell-test]# cat b.txt|sort       
    	a	b cc	你好	数字	中国
    [root@localhost lianxi]# cat bb.txt|sort
    123
    22
    233
    4
    
  • sort -n:按数值进行排序。cat bb.txt|sort -n

    [root@sc-master lianxi]# cat bb.txt|sort -n
    4
    22
    123
    233
    
  • sort -r:倒叙排序。

    [root@localhost shell-test]# cat b.txt|sort -r 
    	中国	数字	你好	b cc	a
    
  • sort -k(数字) -n :指定第几列排序。

    [root@localhost lianxi]# cat b.txt|sort -k2
    	a	你好	数字	中国	b cc
    
  • sort -k(数字) -t:指定分隔符为“:”。分隔符按:指定第六列的排序。

    root@localhost lianxi]# cat /etc/passwd |sort -k6 -t
    

参考文档:

Linux中文件操作基本指令大全

Linux101

  • 25
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值