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),不同内容放在不同章节中:
⚠️ 例如 man 1 printf 与 man 3 printf 是不同内容!
章节
内容
1
用户命令(常用 Linux 命令)
2
系统调用(Linux 内核接口)
3
库函数(如 C 标准库)
4
设备文件(通常在 /dev 下)
5
配置文件格式
6
游戏和娱乐
7
杂项(如宏、协议)
8
系统管理命令(如 mount、ifconfig)
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、在终端中显示带行号的内容
7、配合 grep 搜索关键词cat -n file.txt#利用 | 和 head,tail 关键字cat your.txt | head -n 5 //查看前五行 cat your.txt | tail -n 5 //查看后五行
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
显示周数