导语:Linux命令是竞赛必备技能,time命令用于查看程序运行时间,是性能测试的重要工具!
一、常用Linux命令
1.1 文件操作
| 命令 | 说明 | 示例 |
|---|
| ls | 列出文件 | ls, ls -l, ls -a |
| cd | 切换目录 | cd dir, cd .., cd ~ |
| pwd | 显示当前目录 | pwd |
| mkdir | 创建目录 | mkdir dir |
| rmdir | 删除空目录 | rmdir dir |
| touch | 创建文件 | touch file |
| rm | 删除文件 | rm file, rm -rf dir |
| cp | 复制文件 | cp src dest |
| mv | 移动文件 | mv src dest |
1.2 文件查看
| 命令 | 说明 | 示例 |
|---|
| cat | 查看文件内容 | cat file |
| less | 分页查看 | less file |
| head | 查看前n行 | head -n 10 file |
| tail | 查看后n行 | tail -n 10 file |
| wc | 统计行数 | wc -l file |
1.3 权限操作
| 命令 | 说明 | 示例 |
|---|
| chmod | 修改权限 | chmod 755 file |
| chown | 修改所有者 | chown user file |
1.4 搜索命令
| 命令 | 说明 | 示例 |
|---|
| grep | 搜索内容 | grep pattern file |
| find | 查找文件 | find . -name "*.cpp" |
1.5 压缩解压
| 命令 | 说明 | 示例 |
|---|
| tar | 打包压缩 | tar -czvf file.tar.gz dir |
| tar | 解压 | tar -xzvf file.tar.gz |
| zip | 压缩 | zip file.zip file |
| unzip | 解压 | unzip file.zip |
二、time命令
2.1 基本用法
time ./program
输出程序运行时间。
2.2 输出格式
real 0m0.123s # 实际时间(墙上时间)user 0m0.099s # 用户态CPU时间sys 0m0.024s # 系统态CPU时间
real:从程序开始到结束的实际时间
user:程序执行用户代码的CPU时间
sys:程序执行系统调用的CPU时间
2.3 统计信息
time -v ./program
输出详细统计信息:
Command being timed: "./program"User time (seconds): 0.099System time (seconds): 0.024Percent of CPU this job got: 99%Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.123Average shared text size (kbytes): 0Average unshared data size (kbytes): 0Average stack size (kbytes): 0Average total size (kbytes): 0Maximum resident set size (kbytes): 2432Average resident set size (kbytes): 0Major (requiring I/O) page faults: 0Minor (reclaiming a frame) page faults: 506Voluntary context switches: 1Involuntary context switches: 24Swaps: 0File system inputs: 0File system outputs: 0Socket messages sent: 0Socket messages received: 0Signals delivered: 0Page size (bytes): 4096Exit status: 0
2.4 指定输出文件
time -o output.txt ./program
将结果输出到文件。
2.5 自定义格式
time -f"real:%e user:%U sys:%S" ./program
常用格式符:
%e:实际时间(秒)
%U:用户态CPU时间(秒)
%S:系统态CPU时间(秒)
%P:CPU使用率
三、性能分析
3.1 时间复杂度验证
# 测试不同数据规模的运行时间for n in100010000100000; doecho"n=$n" time ./program $ndone
3.2 优化效果对比
# 对比优化前后的运行时间g++-O0 program.cpp -o program_o0g++-O2 program.cpp -o program_o2echo"O0:"time ./program_o0echo"O2:"time ./program_o2
3.3 内存使用
time -v ./program | grep"Maximum resident set size"
查看程序最大内存使用。
四、其他性能工具
4.1 /usr/bin/time
系统自带的time命令,功能更强大:
/usr/bin/time -v ./program
4.2 perf
性能分析工具:
perf stat ./program
输出:
Performance counter stats for './program': 123,456 cycles # 3.45 GHz 78,901 instructions # 0.64 insn per cycle 123 context-switches # 0.000 M/sec 0 CPU-migrations # 0.000 M/sec 456 page-faults # 0.000 M/sec 0.035467333 seconds time elapsed 0.034999999 seconds user 0.000000000 seconds sys
五、历年真题
真题1(文件操作)
列出当前目录文件的命令是?
A. cdB. lsC. pwdD. mkdir
答案与解析答案:B
解析:ls命令列出当前目录文件,cd切换目录,pwd显示当前目录,mkdir创建目录。
真题2(目录操作)
切换到上级目录的命令是?
A. cd .B. cd ..C. cd ~D. cd /
答案与解析答案:B
解析:cd ..切换到上级目录,cd .当前目录,cd ~用户目录,cd /根目录。
真题3(time命令)
time命令输出的real时间是?
A. 用户态CPU时间B. 系统态CPU时间C. 实际时间D. 总CPU时间
答案与解析答案:C
解析:real是实际时间(墙上时间),user是用户态CPU时间,sys是系统态CPU时间。</details>
真题4(time输出)
time命令的user时间表示什么?
A. 实际时间B. 用户态CPU时间C. 系统态CPU时间D. 等待时间
答案与解析答案:B
解析:user时间是程序执行用户代码的CPU时间,sys是执行系统调用的CPU时间。</details>
真题5(权限)
修改文件权限为755的命令是?
A. chown 755 fileB. chmod 755 fileC. chmod 777 fileD. chown 777 file
答案与解析答案:B
解析:chmod修改权限,chown修改所有者,755表示所有者可读可写可执行,其他用户可读可执行。
六、记忆口诀
Linux命令常用,ls列出文件cd切换目录;
pwd显示当前目录,mkdir创建目录rm删除;
cat查看文件grep搜索内容,find查找文件;
time命令查看运行时间,real实际时间user用户态sys系统态;
性能测试优化对比,Linux命令竞赛必备!
CSP初赛知识点系列:
1、竞赛与计算机发展历史
【CSP初赛系列1】CCF与NOI系列竞赛历史精讲
【CSP初赛系列2】CSP-J与CSP-S赛制详解
【CSP初赛系列3】GESP等级认证与大学生竞赛精讲
ICPC与CCPC竞赛精讲
【CSP初赛系列5】计算机发展历史精讲
【CSP初赛系列6】第一台电子计算机精讲
2、计算机系统基础
【CSP初赛系列7】计算机发展年代精讲
【CSP初赛系列8】冯诺依曼架构与硬件基础精讲
【CSP初赛系列9】计算机组成精讲
【CSP初赛系列9】输入输出设备精讲
【CSP初赛系列10】主频、IPC与CPU时间精讲
【CSP初赛系列11】CPU性能指标精讲
【CSP初赛系列12】MIPS与FLOPS性能指标精讲
【信奧初赛】位字节与字精讲
3、操作系统与Linux基础
【信奧初赛】内存管理精讲
【信奧初赛】文件系统精讲
【信奧初赛】g++编译选项精讲
【信奧初赛】GDB调试工具精讲
4、网络基础
【CSP初赛系列14】IP地址与网络基础精讲
【CSP初赛系列15】IP地址与DNS精讲
【CSP初赛系列16】IP地址分类精讲
【CSP初赛系列17】TCP协议与网络安全精讲
【CSP初赛系列18】TCP-IP协议栈精讲
IP地址分类精讲
TCP-IP协议栈精讲
HTTP与网页基础精讲
【CSP初赛系列19】HTTP与网页基础精讲
【CSP初赛系列20】DNS域名解析与HTTP协议精讲
信奥天天练 是一款专为信息学奥赛备考打造的微信小程序,汇集 CSP-J、CSP-S、GESP 三大赛事,支持随机练习、章节练习、真题考试、模拟考试,配合错题集、收藏夹与推荐书单,助你随时随地高效备考。学霸都在练 是一款专为中小学全学段打造的备考刷题小程序,覆盖小升初、中考、高考及学科竞赛,支持真题模考、章节练习、错题巩固、知识点速查,配套学习资料与刷题题库,助你随时随地高效提分。