当前位置: 首页 > news >正文

【Linux】常用命令(一)

【Linux】常用命令 一

  • 1. ls
    • 1.1 ls -a 显示所有文件及其目录
    • 1.2 ls -A 不显示当前目录和父目录
    • 1.3 ls -d 显示目录本身,而不是显示其内部内容
    • 1.4 ls -i 显示文件的inode属性信息
      • 1.4.1 实际用途场景
    • 1.5 ls -l 显示文件的详细属性信息
    • 1.6 ls -R 递归显示所有子文件
    • 1.7 ls -S 按照文件大小(Size)排序列出当前目录下的文件,默认从大到小排列
    • 1.8 ls -t 最后修改时间排序,最后修改的排到最前面
    • 1.9 ls -lh --time-style=long-iso
  • 2. cp命令
  • 3. grep强大的文本搜索工具
  • 4. sed命令 批量编辑文本文件
  • 附录

1. ls

ls命令来自于英文单次list的缩写,中文译为“列出”,其功能是显示目录中的文件及其属性信息。

1.1 ls -a 显示所有文件及其目录

可以看到包含了 . 与 ./以及当前目录下的所有文件
在这里插入图片描述

1.2 ls -A 不显示当前目录和父目录

可以看到就没有. 与 ./
在这里插入图片描述

1.3 ls -d 显示目录本身,而不是显示其内部内容

在这里插入图片描述

1.4 ls -i 显示文件的inode属性信息

在这里插入图片描述
inode属性信息:
在 Linux/Unix 文件系统中,每个文件(或目录)在磁盘上都有一个唯一的 inode(索引节点)编号,它存储了该文件的元信息,例如:

  • 文件类型(普通文件、目录、链接等)
  • 权限(rwx)
  • 所有者、组
  • 文件大小
  • 创建、修改、访问时间
  • inode ≠ 文件名,文件名是目录中的映射。
  • 数据块的物理位置(内容不在 inode 中,但 inode 指向内容)

ls -i 可以让你看到文件/目录的唯一标识(inode 号),帮助你判断“两个文件是不是一个”、或者“怎么删除一个删不了的文件”。

1.4.1 实际用途场景

  1. 判断两个文件是不是同一个 (硬链接判断)
ln file1.txt file2.txt   # 创建硬链接
ls -i file1.txt file2.txt输出:
1234567 file1.txt
1234567 file2.txt
  1. 删除“奇怪名字”的文件
    比如你有一个乱码文件,rm 都删不了(因为文件名输入不出来):
$ ls -i
1237890  ?????# 删除
find . -inum 1237890 -exec rm -i {} \;

例子
在这里插入图片描述

1.5 ls -l 显示文件的详细属性信息

在这里插入图片描述

$ ls -l
-rw-r--r--  1 fanzhen  users  1024 Jul 24 10:00  notes.txt
drwxr-xr-x  2 fanzhen  users  4096 Jul 23 08:30  documents/
字段说明
-rw-r--r--权限字符串(文件类型 + 权限)
1硬链接数量(对目录来说是子目录+1)
fanzhen文件拥有者(用户名)
users所属用户组
1024文件大小(以字节为单位)
Jul 24 10:00最后修改时间
notes.txt文件名
drwxr-xr-x这是一个目录(以 d 开头),权限为 rwx 给 owner,r-x 给 group 和其他人

1.6 ls -R 递归显示所有子文件

在这里插入图片描述

1.7 ls -S 按照文件大小(Size)排序列出当前目录下的文件,默认从大到小排列

1.8 ls -t 最后修改时间排序,最后修改的排到最前面

1.9 ls -lh --time-style=long-iso

在这里插入图片描述

2. cp命令

cp命令来源自英文单次copy的缩写,中文译为“复制”,其功能是复制文件或者目录。


基本语法:

cp [选项] 源文件 目标文件
cp [选项] 源文件... 目标目录/

常用参数

参数含义
-a归档模式,等价于 -dR --preserve=all,即递归复制目录,保持链接、文件属性、时间戳、权限等元信息。适合备份。
-b备份模式,如果目标文件存在,则先备份一份(通常在后面加 ~ 作为扩展名)。
-d复制符号链接本身,而不是其指向的目标。
-f强制复制,如果目标文件无法打开则尝试先删除后复制(不提示)。
-i交互模式,覆盖文件前询问确认(如:overwrite 'file'?)。
-l不复制,创建硬链接(link)到目标,而非复制数据。
-p保留原文件的属性(如时间、权限、所有者等),常用于保留元数据。
-r递归复制目录,包括目录下的所有子目录和文件(-R 是更通用写法)。
-s不复制,创建符号链接(软链接) 到目标。
-v显示详细信息,输出复制的文件路径,适合调试或查看进度。

  1. cp cp file.txt /tmp/ 将file.txt文件复制到/tmp/目录下
  2. 复制并显示过程 cp -v
[fanzhen@hby-10-208-63-198 ~]$ cp -v  示例数据.txt  a
'示例数据.txt' -> 'a/示例数据.txt'
  1. 提示确认再覆盖 cp -i
[fanzhen@hby-10-208-63-198 ~]$ cp -v -i  示例数据.txt  a
cp: overwrite 'a/示例数据.txt'? y
'示例数据.txt' -> 'a/示例数据.txt'
  1. 复制整个目录 cp -r
    注意是现有的a目录 然后复制成为b目录
[fanzhen@hby-10-208-63-198 ~]$ cp -r -i -v  a b
'a' -> 'b'
'a/示例数据.txt' -> 'b/示例数据.txt'
  1. 完整备份目录(包括权限、时间等) ls -a
[fanzhen@hby-10-208-63-198 ~]$ cp -r -i -v  a b
'a' -> 'b'
'a/示例数据.txt' -> 'b/示例数据.txt'
[fanzhen@hby-10-208-63-198 ~]$ ls -lh
total 783M
drwxr-xr-x 2 fanzhen fanzhen          30 Jul 24 21:47 a
drwxr-xr-x 2 fanzhen fanzhen          30 Jul 24 21:50 b
drwxrwx--- 3 fanzhen znxt-usergroup   20 Mar  7 15:57 data00
  1. 备份模式,如果目标文件存在,则先备份一份 cp -b
$ echo "old" > a.txt
$ echo "new" > b.txt
$ cp -b b.txt a.txt原来的 a.txt 会被覆盖
同时自动生成一个 a.txt~,里面是旧的内容("old")$ cat a.txt
new
$ cat a.txt~
old
  1. cp -f 是 cp 命令中的 “强制覆盖” 选项,表示 不提示、直接覆盖目标文件,即使目标文件是只读的,也会强制替换。
$ echo "old data" > target.txt
$ chmod 444 target.txt   # 设置只读
$ echo "new data" > source.txt$ cp -f source.txt target.txt$ cat target.txt
new data
  1. cp -a 等价于组合使用 -dR --preserve=all,具体作用包括:
功能说明
递归复制目录自动复制整个目录及其子目录、文件(相当于 -R
保留符号链接不跟随符号链接(相当于 -d),复制符号链接本身
保留文件属性包括:权限、时间戳、属主、属组、上下文等(相当于 --preserve=all
保留文件节点如果是设备文件、FIFO、socket 文件,也会原样复制
尽量保持原始结构和元信息适合做备份、打包等操作

3. grep强大的文本搜索工具

常用到的参数

  1. -i 忽略大小写
  2. -n 显示所有匹配的行及其行号
  3. -C 10 显示配置行上下各10行
  4. -E 支持正则
  5. -r 递归查询
  6. -w 精确匹配词

使用举例

[fanzhen@hby-10-208-63-198 logs]$ grep -i -n -C 2 '获取模型列表' log.out

在这里插入图片描述

4. sed命令 批量编辑文本文件

附录

  1. 50个最常用的Unix/Linux命令 http://doc.vrd.net.cn/linux/linux-cmd.html
http://www.xdnf.cn/news/1181305.html

相关文章:

  • 洛谷P1512 伊甸园日历游戏
  • SQL基础⑫ | 视图篇
  • C++ - 仿 RabbitMQ 实现消息队列--服务端核心模块实现(三)
  • 基于深度学习的图像分类:使用MobileNet实现高效分类
  • Python进阶第三方库之Matplotlib
  • 深度学习(鱼书)day01--感知机
  • LeetCode 23:合并 K 个升序链表
  • 【C++】使用中值滤波算法过滤数据样本中的尖刺噪声
  • rust-方法语法
  • C++STL系列之set和map系列
  • 基于python django的农业可视化系统,以奶牛牧场为例
  • 用 Function Call 让 AI 主动调用函数(超入门级示例)|保姆级大模型应用开发实战
  • SpringBoot航空订票系统的设计与实现
  • 进阶系统策略
  • 技术赋能多元探索:我的技术成长与行业洞察
  • Linux应用开发基础知识——进程学习2(exec函数、system函数、popen函数)(三)
  • 斐波那契数列策略
  • 人形机器人_双足行走动力学:Maxwell模型及在拟合肌腱特性中的应用
  • Java学习----原型模式
  • 使用Claude Code从零到一打造一个现代化的GitHub Star项目管理器
  • day46day47 通道注意力
  • 无源域自适应综合研究【2】
  • C++ 性能优化
  • 力扣 hot100 Day54
  • pytest中使用skip跳过某个函数
  • 无人机速度模块技术要点分析
  • 第三章:掌握 Redis 存储与获取数据的核心命令
  • MNIST 手写数字识别模型分析
  • 秋叶sd-webui频繁出现生成后无反应的问题
  • 【Web APIs】JavaScript 节点操作 ⑧ ( 删除节点 - removeChild 函数 | 删除节点 - 代码示例 | 删除网页评论案例 )