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

Linux系统编程Day3-- Linux常用操作(续)

往期内容回顾:

        Linux常用操作

        Linux系统的概念,主要内容

本期内容我们将继续介绍一下Linux的基本操作:

一、rm 以及 rmdir 的介绍

        1、rmdir 的简单操作

rmdir [目录名]

        rmdir只能删除空目录。如果目录里有文件或子目录,会报错:

rmdir: failed to remove 'testdir': Directory not empty

        2、rm的简单操作

rm [选项] 文件或目录名

删除单个文件:

rm file.txt

rm -r —— 删除目录及其所有内容(递归)

rm -r mydir/

这个命令会递归地删除目录 mydir 及其中的所有文件和子目录。

rm -rf —— 强制删除(常用于危险操作)

rm -rf mydir/
  • -r:递归删除目录及其内容

  • -f:强制删除,不提示是否删除(不会报错,也不会确认)

危险示例(不要执行):

rm -rf /
rm -rf /etc

这些命令会直接破坏整个系统。

删除多个目录或文件

rm -rf dir1 dir2 file1.txt file2.log

二、man命令的介绍

        1、什么是man命令

        man 是 manual(手册) 的缩写,用于在 Linux/Unix 系统中查看命令、函数、配置文件等的详细使用说明。是初学者和系统管理员必备的工具之一。

基本语法使用:

man [选项] 命令名或函数名

示范:

man ls        # 查看 ls 命令的帮助手册
man mkdir     # 查看 mkdir 命令的用法
man 3 printf  # 查看 C 语言中 printf 函数的手册(在第3节)

man手册分为多个章节,c语言的printf在章节3,所以使用为 man 3 printf。

2、man手册的章节结构

        man 手册分为多个 章节(sections),不同内容放在不同章节中:

章节

内容

1

用户命令(常用 Linux 命令)

2

系统调用(Linux 内核接口)

3

库函数(如 C 标准库)

4

设备文件(通常在 /dev 下)

5

配置文件格式

6

游戏和娱乐

7

杂项(如宏、协议)

8

系统管理命令(如 mount、ifconfig)

⚠️ 例如 man 1 printf 与 man 3 printf 是不同内容!

2、常用快捷键(在 man 页面内使用)

快捷键

功能

q

退出 man 页面

↑ ↓

上下滚动一行

PageUp/PageDown

上下翻页

/关键字

搜索关键字(例如 /file)

n

跳转到下一个匹配项

h

查看 man 使用帮助


三、cp命令的介绍

        1、cp命令是什么?

        cp 是 Linux 中用于 复制文件或目录 的命令。其基本功能是将源文件或目录复制到目标位置,支持多种选项来控制行为。

cp的使用

cp [选项] 源路径 目标路径

源路径:要复制的文件或目录;目标路径:复制到的目的文件或目录。

1. 复制一个文件到当前目录下:

cp file1.txt file2.txt

将 file1.txt 复制为 file2.txt

2. 复制文件到某个目录:

cp file1.txt /home/user/docs/

3. 复制多个文件到某个目录:

cp file1.txt file2.txt file3.txt /home/user/docs/

4. 复制整个目录(需要加 -r 或 -R):

cp -r mydir/ backup/

        复制 mydir 目录及其所有内容到 backup/ 目录中


2、cp命令的常用选项

选项

说明

-r 或 -R

递归复制整个目录及其内容

-i

交互模式,若目标文件已存在,会提示是否覆盖

-f

强制复制,即使目标文件存在也直接覆盖

-u

只复制 源文件较新 或目标文件不存在的情况

-v

显示详细复制过程(verbose)

-a

保留文件属性(archive),等价于 -dR --preserve=all

--preserve=mode,ownership,timestamps

保留权限、所有权和时间戳等信息

例如:

cp -iv file1.txt file2.txt

        如果 file2.txt 已存在,会提示是否覆盖,并显示操作过程。


四、mv命令的介绍

        1、mv命令的作用

        mv 命令主要有两个用途:移动文件或目录 到新的位置或者重命名文件或目录

mv的语法使用:

mv [选项] 源路径 目标路径
  • 源路径:要移动或重命名的文件/目录。

  • 目标路径:如果是已存在的目录,表示把文件/目录移动进去。

    如果是新名称,则是对文件/目录重命名。

mv的使用示例:

1. 重命名一个文件:

mv oldname.txt newname.txt

2. 移动一个文件到另一个目录:

mv file.txt /home/user/docs/

3. 移动多个文件到一个目录:

mv file1.txt file2.txt file3.txt /home/user/docs/

4. 重命名一个目录:

mv olddir newdir

5. 移动目录:

mv mydir/ /home/user/backup/

        2、mv命令的常用选项

选项

含义

-i

若目标文件存在,会提示用户是否覆盖(interactive)

-f

强制执行,不提示,直接覆盖目标文件(force)

-u

仅在源文件比目标文件新,或目标文件不存在时才移动(update)

-v

显示移动过程(verbose

示例:覆盖前提示 + 显示移动过程

mv -iv data.txt /backup/

3、注意事项

  • mv 会 覆盖目标文件,除非加了 -i。

  • mv 不会保留文件副本(和 cp 不同),是“剪切”操作。

  • 当你重命名一个文件时,如果目标名已存在,会覆盖原有内容(除非用 -i)。


五、cat的命令介绍

        1、cat命令简介

        cat 是 concatenate(连接) 的缩写,用于:

  • 1、查看文件内容

  • 2、将多个文件合并输出

  • 3、创建新文件(简单方式)

  • 4、将文件内容输出到另一个文件(重定向)

  • 基本语法使用:

    cat [选项] [文件...]

    1、显示文件内容

    cat file.txt
    cnt=0; 
    while [ $cnt -le 10000 ]; 
    do echo "hello world [$cnt]";
    let cnt++; 
    done > your.txt

    一个简单的脚本--> 输入 1w行“hello world” 到your.txt的文件中。

    2、显示多个文件内容(按顺序)

    cat file1.txt file2.txt

    将两个文件连接起来依次输出。

    3、将多个文件合并为一个新文件

    cat file1.txt file2.txt > merged.txt

    将两个文件合并并输出到 merged.txt。

    4、将内容追加到已有文件

    cat file3.txt >> file1.txt

    把 file3.txt 内容追加到 file1.txt 末尾。

    5、创建新文件(快速)

    cat > newfile.txt

    输入内容,按下 Ctrl+D 结束输入并保存:

    This is my content.
    

    6、在终端中显示带行号的内容

    cat -n file.txt#利用 | 和 head,tail 关键字cat your.txt | head -n 5 //查看前五行
    cat your.txt | tail -n 5 //查看后五行
    7、配合 grep 搜索关键词

    cat file.txt | grep "error"

    2、cat的常用选项

    选项

    说明

    -n

    显示所有行号

    -b

    显示非空行行号

    -s

    压缩空行(多个空行合并为一个)

    -E

    显示行尾 $

    -T

    显示制表符(Tab)为 ^I


    3、注意事项:

  • cat 不适合用于查看大文件(可以用 less 或 more)。

  • 若目标文件已存在,使用 > 重定向会直接覆盖它。

  • 若你要输入多行文本,用 cat > 创建文件是个快速方法。


六、less 与more的用法介绍

       1、 less与more命令的作用

命令

作用

more

逐屏查看文件内容,从上往下,较为简单

less

也用于分页查看,功能更强大,支持前后翻页、搜索、高亮等功能

        2、more命令详解

 基本用法:

more filename

常用操作键

按键

功能说明

空格

显示下一屏

Enter

向下滚动一行

b

返回上一屏(某些版本支持)

/pattern

搜索 pattern

q

退出

        3、less 命令详解(推荐使用)

 基本用法:

less filename

常用操作键:

按键

功能说明

空格

下一页

b

上一页

↑ / ↓

上下滚动一行

G

跳转到文件末尾

g

跳转到文件开头

/pattern

向下搜索匹配字符串

?pattern

向上搜索

n

下一个搜索结果

N

上一个搜索结果

q

退出查看


4、less vs more 对比总结

特性

more

less

支持前后翻页

❌(一般不支持向上)

搜索功能

基本支持

强大,支持向前/向后搜索

高亮显示搜索

✅(配合终端支持)

加载速度

快速,一次性读入

按需加载,更适合大文件

支持多文件

✅(可以用 less file1 file2)


5、实用技巧

        1. 快速查看命令输出(分页):

ps aux | less

        2. 搜索日志中的关键词:

less /var/log/syslog

        3. 查看多个文件:

less file1.txt file2.txt

七、head 和 tail 的介绍

        1、head 命令介绍

  显示文件开头的前几行。

head -n N filename  # 显示前 N 行,默认是前 10 行

        2、tail命令介绍

显示文件结尾的最后几行。

tail -n N filename  # 显示最后 N 行,默认是后 10 行

        3、如何获取文件中间的行呢?

head -n 70 filename | tail -n 21

💡 说明:利用 管道符|        

command1 | command2|command3 | ...
  • head -n 70 先取出前 70 行;

  • tail -n 21 从这 70 行中再取出最后 21 行(即第 50~70 行)。

举个例子:查看逆序查看1010行文件的倒数前三行

head -1010 your.txt | tail -10 | tac |head -3

输出描述:

hello yajun [1009]

hello yajun [1008]

hello yajun [1007]

4、写一个c语言脚本结合管道|去将文件【1008-1010】三行逆序输出且将小写字母转化成为大写字母。

代码实现:

#include<stdio.h>
#include<ctype.h>int main(){int c;while((c = fgetc(stdin)) != EOF){fputc(toupper(c),stdout);// fputc(c+32,stdin);}
}

然后再利用上面我们学过的head 和 tail 和管道符

head -1010 your.txt | tail -10 | tac | head -3 |./lower2upper

输出描述:

HELLO YAJUN [1009]

HELLO YAJUN [1008]

HELLO YAJUN [1007]


八、Date命令的介绍

        date 命令是 Linux 中用来显示或设置系统日期和时间的命令,常用于查看当前时间、格式化输出、生成时间戳、设置时间等操作。

1、基本语法

date [选项] [+格式]
  • 如果不加任何参数,date 会输出当前的系统时间和日期。

  • 加上 +格式 可以自定义输出格式。

2、常用格式化符号(用于+格式)

符号

含义

示例

%Y

年(四位)

2025

%y

年(后两位)

25

%m

月(01-12)

07

%d

日(01-31)

30

%H

时(00-23)

19

%M

分(00-59)

48

%S

秒(00-59)

00

%F

完整日期(%Y-%m-%d)

2025-07-30

%T

时间(%H:%M:%S)

19:48:00

%A

星期几(全称)

Wednesday

%a

星期几(三字母)

Wed

date "+%Y-%m-%d %H:%M:%S"

输出描述:

2025-08-01 21:35:47

date -d "yesterday"
date -d "yesterday" "+%Y-%m-%d"

输出描述:

Thu Jul 31 21:38:14 CST 2025

2025-07-31

3、显示时间戳

date -d "@1722350000"

输出描述:

Tue Jul 30 22:33:20 CST 2024

4、将时间戳转为日期

date -d "@时间戳"

date -d @1231312

Thu Jan 15 14:01:52 CST 1970


九、日历命令cal/ncal

        1、cal 命令简介

基本语法:

cal [选项] [月份] [年份]

 2、常用用法示例

cal//输出August 2025    
Su Mo Tu We Th Fr Sa1  23  4  5  6  7  8  9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31 

显示指定月份和年份

cal 12 2025//输出
December 2025   
Su Mo Tu We Th Fr Sa1  2  3  4  5  67  8  9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 

3、cal 与 ncal 的常用选项

选项

含义

-1

显示一个月

-3

显示前一个、当前、下一个月

-y

显示当前整年日历

-m 月份

指定月份(与年份组合使用)

-b

在 ncal 中使用横向布局

-w

显示周数

http://www.dtcms.com/a/309704.html

相关文章:

  • 【BUUCTF系列】[GXYCTF2019]Ping Ping Ping 1
  • 【Linux我做主】细说环境变量
  • 鸿蒙智能居家养老系统构思(续二)—— 适老化烹饪中心详细构思
  • 前端渲染三国杀:SSR、SPA、SSG
  • SpringBoot3.x入门到精通系列:1.4 项目结构与核心注解
  • 三十九、【扩展工具篇】Allpairspy 组合用例生成器:智能设计高效测试集
  • spring中自带的执行定时任务的注解是什么?
  • 铁皮矫平机是什么?
  • 掌握长尾关键词提升SEO
  • 4-verilog简单状态机
  • 使用mybatis生成器生成实体类mapper和查询参数文件,简单spring mvc 项目。使用log4j输出日志到控制台和文件中。使用配置文件注册Bean
  • 【U8+】删除部门的时候提示已经在总账(辅助总账)中使用,不可删除。
  • 从0到1学PHP(十三):PHP 安全编程:构建稳固的应用防线
  • (一)LoRA微调BERT:为何在单分类任务中表现优异,而在多分类任务中效果不佳?
  • 自动化测试准备工作:概念篇
  • Java HTTPS 请求失败排查与证书导入全过程
  • 从豆瓣小组到深度洞察:一个基于Python的舆情分析爬虫实践
  • 【05】VM二次开发——模块参数配置--带渲染/不带渲染(WinForm界面调用 模块参数配置)
  • JVM指针压缩的那些事
  • JVM学习日记(十三)Day13
  • C#线程同步(二)锁
  • 【工具变量大全】上市公司实证研究常用控制变量数据集(2001-2024年)
  • sqli-labs通关笔记-第26a关GET字符注入(多重关键字过滤绕过 手注法)
  • qt贝塞尔曲线演示工具
  • Product Hunt 每日热榜 | 2025-08-01
  • 5-EP4CE10F17C8-引脚配置
  • Fiddler中文版使用指南 提升开发流程的一站式抓包与调试体验
  • 大模型幻觉的本质:深度=逻辑层次,宽度=组合限制,深度为n的神经网络最多只能处理n层逻辑推理,宽度为w的网络无法区分超过w+1个复杂对象的组合
  • 搭建体育直播系统所需的核心数据接入
  • 深度解析:Nginx的卓越性能